/ commands / plugin / UnifiedInstalledCell.tsx
UnifiedInstalledCell.tsx
  1  import { c as _c } from "react/compiler-runtime";
  2  import figures from 'figures';
  3  import * as React from 'react';
  4  import { Box, color, Text, useTheme } from '../../ink.js';
  5  import { plural } from '../../utils/stringUtils.js';
  6  import type { UnifiedInstalledItem } from './unifiedTypes.js';
  7  type Props = {
  8    item: UnifiedInstalledItem;
  9    isSelected: boolean;
 10  };
 11  export function UnifiedInstalledCell(t0) {
 12    const $ = _c(142);
 13    const {
 14      item,
 15      isSelected
 16    } = t0;
 17    const [theme] = useTheme();
 18    if (item.type === "plugin") {
 19      let statusIcon;
 20      let statusText;
 21      if (item.pendingToggle) {
 22        let t1;
 23        if ($[0] !== theme) {
 24          t1 = color("suggestion", theme)(figures.arrowRight);
 25          $[0] = theme;
 26          $[1] = t1;
 27        } else {
 28          t1 = $[1];
 29        }
 30        statusIcon = t1;
 31        statusText = item.pendingToggle === "will-enable" ? "will enable" : "will disable";
 32      } else {
 33        if (item.errorCount > 0) {
 34          let t1;
 35          if ($[2] !== theme) {
 36            t1 = color("error", theme)(figures.cross);
 37            $[2] = theme;
 38            $[3] = t1;
 39          } else {
 40            t1 = $[3];
 41          }
 42          statusIcon = t1;
 43          const t2 = item.errorCount;
 44          let t3;
 45          if ($[4] !== item.errorCount) {
 46            t3 = plural(item.errorCount, "error");
 47            $[4] = item.errorCount;
 48            $[5] = t3;
 49          } else {
 50            t3 = $[5];
 51          }
 52          statusText = `${t2} ${t3}`;
 53        } else {
 54          if (!item.isEnabled) {
 55            let t1;
 56            if ($[6] !== theme) {
 57              t1 = color("inactive", theme)(figures.radioOff);
 58              $[6] = theme;
 59              $[7] = t1;
 60            } else {
 61              t1 = $[7];
 62            }
 63            statusIcon = t1;
 64            statusText = "disabled";
 65          } else {
 66            let t1;
 67            if ($[8] !== theme) {
 68              t1 = color("success", theme)(figures.tick);
 69              $[8] = theme;
 70              $[9] = t1;
 71            } else {
 72              t1 = $[9];
 73            }
 74            statusIcon = t1;
 75            statusText = "enabled";
 76          }
 77        }
 78      }
 79      const t1 = isSelected ? "suggestion" : undefined;
 80      const t2 = isSelected ? `${figures.pointer} ` : "  ";
 81      let t3;
 82      if ($[10] !== t1 || $[11] !== t2) {
 83        t3 = <Text color={t1}>{t2}</Text>;
 84        $[10] = t1;
 85        $[11] = t2;
 86        $[12] = t3;
 87      } else {
 88        t3 = $[12];
 89      }
 90      const t4 = isSelected ? "suggestion" : undefined;
 91      let t5;
 92      if ($[13] !== item.name || $[14] !== t4) {
 93        t5 = <Text color={t4}>{item.name}</Text>;
 94        $[13] = item.name;
 95        $[14] = t4;
 96        $[15] = t5;
 97      } else {
 98        t5 = $[15];
 99      }
100      const t6 = !isSelected;
101      let t7;
102      if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
103        t7 = <Text backgroundColor="userMessageBackground">Plugin</Text>;
104        $[16] = t7;
105      } else {
106        t7 = $[16];
107      }
108      let t8;
109      if ($[17] !== t6) {
110        t8 = <Text dimColor={t6}>{" "}{t7}</Text>;
111        $[17] = t6;
112        $[18] = t8;
113      } else {
114        t8 = $[18];
115      }
116      let t9;
117      if ($[19] !== item.marketplace) {
118        t9 = <Text dimColor={true}> · {item.marketplace}</Text>;
119        $[19] = item.marketplace;
120        $[20] = t9;
121      } else {
122        t9 = $[20];
123      }
124      const t10 = !isSelected;
125      let t11;
126      if ($[21] !== statusIcon || $[22] !== t10) {
127        t11 = <Text dimColor={t10}> · {statusIcon} </Text>;
128        $[21] = statusIcon;
129        $[22] = t10;
130        $[23] = t11;
131      } else {
132        t11 = $[23];
133      }
134      const t12 = !isSelected;
135      let t13;
136      if ($[24] !== statusText || $[25] !== t12) {
137        t13 = <Text dimColor={t12}>{statusText}</Text>;
138        $[24] = statusText;
139        $[25] = t12;
140        $[26] = t13;
141      } else {
142        t13 = $[26];
143      }
144      let t14;
145      if ($[27] !== t11 || $[28] !== t13 || $[29] !== t3 || $[30] !== t5 || $[31] !== t8 || $[32] !== t9) {
146        t14 = <Box>{t3}{t5}{t8}{t9}{t11}{t13}</Box>;
147        $[27] = t11;
148        $[28] = t13;
149        $[29] = t3;
150        $[30] = t5;
151        $[31] = t8;
152        $[32] = t9;
153        $[33] = t14;
154      } else {
155        t14 = $[33];
156      }
157      return t14;
158    }
159    if (item.type === "flagged-plugin") {
160      let t1;
161      if ($[34] !== theme) {
162        t1 = color("warning", theme)(figures.warning);
163        $[34] = theme;
164        $[35] = t1;
165      } else {
166        t1 = $[35];
167      }
168      const statusIcon_0 = t1;
169      const t2 = isSelected ? "suggestion" : undefined;
170      const t3 = isSelected ? `${figures.pointer} ` : "  ";
171      let t4;
172      if ($[36] !== t2 || $[37] !== t3) {
173        t4 = <Text color={t2}>{t3}</Text>;
174        $[36] = t2;
175        $[37] = t3;
176        $[38] = t4;
177      } else {
178        t4 = $[38];
179      }
180      const t5 = isSelected ? "suggestion" : undefined;
181      let t6;
182      if ($[39] !== item.name || $[40] !== t5) {
183        t6 = <Text color={t5}>{item.name}</Text>;
184        $[39] = item.name;
185        $[40] = t5;
186        $[41] = t6;
187      } else {
188        t6 = $[41];
189      }
190      const t7 = !isSelected;
191      let t8;
192      if ($[42] === Symbol.for("react.memo_cache_sentinel")) {
193        t8 = <Text backgroundColor="userMessageBackground">Plugin</Text>;
194        $[42] = t8;
195      } else {
196        t8 = $[42];
197      }
198      let t9;
199      if ($[43] !== t7) {
200        t9 = <Text dimColor={t7}>{" "}{t8}</Text>;
201        $[43] = t7;
202        $[44] = t9;
203      } else {
204        t9 = $[44];
205      }
206      let t10;
207      if ($[45] !== item.marketplace) {
208        t10 = <Text dimColor={true}> · {item.marketplace}</Text>;
209        $[45] = item.marketplace;
210        $[46] = t10;
211      } else {
212        t10 = $[46];
213      }
214      const t11 = !isSelected;
215      let t12;
216      if ($[47] !== statusIcon_0 || $[48] !== t11) {
217        t12 = <Text dimColor={t11}> · {statusIcon_0} </Text>;
218        $[47] = statusIcon_0;
219        $[48] = t11;
220        $[49] = t12;
221      } else {
222        t12 = $[49];
223      }
224      const t13 = !isSelected;
225      let t14;
226      if ($[50] !== t13) {
227        t14 = <Text dimColor={t13}>removed</Text>;
228        $[50] = t13;
229        $[51] = t14;
230      } else {
231        t14 = $[51];
232      }
233      let t15;
234      if ($[52] !== t10 || $[53] !== t12 || $[54] !== t14 || $[55] !== t4 || $[56] !== t6 || $[57] !== t9) {
235        t15 = <Box>{t4}{t6}{t9}{t10}{t12}{t14}</Box>;
236        $[52] = t10;
237        $[53] = t12;
238        $[54] = t14;
239        $[55] = t4;
240        $[56] = t6;
241        $[57] = t9;
242        $[58] = t15;
243      } else {
244        t15 = $[58];
245      }
246      return t15;
247    }
248    if (item.type === "failed-plugin") {
249      let t1;
250      if ($[59] !== theme) {
251        t1 = color("error", theme)(figures.cross);
252        $[59] = theme;
253        $[60] = t1;
254      } else {
255        t1 = $[60];
256      }
257      const statusIcon_1 = t1;
258      const t2 = item.errorCount;
259      let t3;
260      if ($[61] !== item.errorCount) {
261        t3 = plural(item.errorCount, "error");
262        $[61] = item.errorCount;
263        $[62] = t3;
264      } else {
265        t3 = $[62];
266      }
267      const statusText_0 = `failed to load · ${t2} ${t3}`;
268      const t4 = isSelected ? "suggestion" : undefined;
269      const t5 = isSelected ? `${figures.pointer} ` : "  ";
270      let t6;
271      if ($[63] !== t4 || $[64] !== t5) {
272        t6 = <Text color={t4}>{t5}</Text>;
273        $[63] = t4;
274        $[64] = t5;
275        $[65] = t6;
276      } else {
277        t6 = $[65];
278      }
279      const t7 = isSelected ? "suggestion" : undefined;
280      let t8;
281      if ($[66] !== item.name || $[67] !== t7) {
282        t8 = <Text color={t7}>{item.name}</Text>;
283        $[66] = item.name;
284        $[67] = t7;
285        $[68] = t8;
286      } else {
287        t8 = $[68];
288      }
289      const t9 = !isSelected;
290      let t10;
291      if ($[69] === Symbol.for("react.memo_cache_sentinel")) {
292        t10 = <Text backgroundColor="userMessageBackground">Plugin</Text>;
293        $[69] = t10;
294      } else {
295        t10 = $[69];
296      }
297      let t11;
298      if ($[70] !== t9) {
299        t11 = <Text dimColor={t9}>{" "}{t10}</Text>;
300        $[70] = t9;
301        $[71] = t11;
302      } else {
303        t11 = $[71];
304      }
305      let t12;
306      if ($[72] !== item.marketplace) {
307        t12 = <Text dimColor={true}> · {item.marketplace}</Text>;
308        $[72] = item.marketplace;
309        $[73] = t12;
310      } else {
311        t12 = $[73];
312      }
313      const t13 = !isSelected;
314      let t14;
315      if ($[74] !== statusIcon_1 || $[75] !== t13) {
316        t14 = <Text dimColor={t13}> · {statusIcon_1} </Text>;
317        $[74] = statusIcon_1;
318        $[75] = t13;
319        $[76] = t14;
320      } else {
321        t14 = $[76];
322      }
323      const t15 = !isSelected;
324      let t16;
325      if ($[77] !== statusText_0 || $[78] !== t15) {
326        t16 = <Text dimColor={t15}>{statusText_0}</Text>;
327        $[77] = statusText_0;
328        $[78] = t15;
329        $[79] = t16;
330      } else {
331        t16 = $[79];
332      }
333      let t17;
334      if ($[80] !== t11 || $[81] !== t12 || $[82] !== t14 || $[83] !== t16 || $[84] !== t6 || $[85] !== t8) {
335        t17 = <Box>{t6}{t8}{t11}{t12}{t14}{t16}</Box>;
336        $[80] = t11;
337        $[81] = t12;
338        $[82] = t14;
339        $[83] = t16;
340        $[84] = t6;
341        $[85] = t8;
342        $[86] = t17;
343      } else {
344        t17 = $[86];
345      }
346      return t17;
347    }
348    let statusIcon_2;
349    let statusText_1;
350    if (item.status === "connected") {
351      let t1;
352      if ($[87] !== theme) {
353        t1 = color("success", theme)(figures.tick);
354        $[87] = theme;
355        $[88] = t1;
356      } else {
357        t1 = $[88];
358      }
359      statusIcon_2 = t1;
360      statusText_1 = "connected";
361    } else {
362      if (item.status === "disabled") {
363        let t1;
364        if ($[89] !== theme) {
365          t1 = color("inactive", theme)(figures.radioOff);
366          $[89] = theme;
367          $[90] = t1;
368        } else {
369          t1 = $[90];
370        }
371        statusIcon_2 = t1;
372        statusText_1 = "disabled";
373      } else {
374        if (item.status === "pending") {
375          let t1;
376          if ($[91] !== theme) {
377            t1 = color("inactive", theme)(figures.radioOff);
378            $[91] = theme;
379            $[92] = t1;
380          } else {
381            t1 = $[92];
382          }
383          statusIcon_2 = t1;
384          statusText_1 = "connecting\u2026";
385        } else {
386          if (item.status === "needs-auth") {
387            let t1;
388            if ($[93] !== theme) {
389              t1 = color("warning", theme)(figures.triangleUpOutline);
390              $[93] = theme;
391              $[94] = t1;
392            } else {
393              t1 = $[94];
394            }
395            statusIcon_2 = t1;
396            statusText_1 = "Enter to auth";
397          } else {
398            let t1;
399            if ($[95] !== theme) {
400              t1 = color("error", theme)(figures.cross);
401              $[95] = theme;
402              $[96] = t1;
403            } else {
404              t1 = $[96];
405            }
406            statusIcon_2 = t1;
407            statusText_1 = "failed";
408          }
409        }
410      }
411    }
412    if (item.indented) {
413      const t1 = isSelected ? "suggestion" : undefined;
414      const t2 = isSelected ? `${figures.pointer} ` : "  ";
415      let t3;
416      if ($[97] !== t1 || $[98] !== t2) {
417        t3 = <Text color={t1}>{t2}</Text>;
418        $[97] = t1;
419        $[98] = t2;
420        $[99] = t3;
421      } else {
422        t3 = $[99];
423      }
424      const t4 = !isSelected;
425      let t5;
426      if ($[100] !== t4) {
427        t5 = <Text dimColor={t4}>└ </Text>;
428        $[100] = t4;
429        $[101] = t5;
430      } else {
431        t5 = $[101];
432      }
433      const t6 = isSelected ? "suggestion" : undefined;
434      let t7;
435      if ($[102] !== item.name || $[103] !== t6) {
436        t7 = <Text color={t6}>{item.name}</Text>;
437        $[102] = item.name;
438        $[103] = t6;
439        $[104] = t7;
440      } else {
441        t7 = $[104];
442      }
443      const t8 = !isSelected;
444      let t9;
445      if ($[105] === Symbol.for("react.memo_cache_sentinel")) {
446        t9 = <Text backgroundColor="userMessageBackground">MCP</Text>;
447        $[105] = t9;
448      } else {
449        t9 = $[105];
450      }
451      let t10;
452      if ($[106] !== t8) {
453        t10 = <Text dimColor={t8}>{" "}{t9}</Text>;
454        $[106] = t8;
455        $[107] = t10;
456      } else {
457        t10 = $[107];
458      }
459      const t11 = !isSelected;
460      let t12;
461      if ($[108] !== statusIcon_2 || $[109] !== t11) {
462        t12 = <Text dimColor={t11}> · {statusIcon_2} </Text>;
463        $[108] = statusIcon_2;
464        $[109] = t11;
465        $[110] = t12;
466      } else {
467        t12 = $[110];
468      }
469      const t13 = !isSelected;
470      let t14;
471      if ($[111] !== statusText_1 || $[112] !== t13) {
472        t14 = <Text dimColor={t13}>{statusText_1}</Text>;
473        $[111] = statusText_1;
474        $[112] = t13;
475        $[113] = t14;
476      } else {
477        t14 = $[113];
478      }
479      let t15;
480      if ($[114] !== t10 || $[115] !== t12 || $[116] !== t14 || $[117] !== t3 || $[118] !== t5 || $[119] !== t7) {
481        t15 = <Box>{t3}{t5}{t7}{t10}{t12}{t14}</Box>;
482        $[114] = t10;
483        $[115] = t12;
484        $[116] = t14;
485        $[117] = t3;
486        $[118] = t5;
487        $[119] = t7;
488        $[120] = t15;
489      } else {
490        t15 = $[120];
491      }
492      return t15;
493    }
494    const t1 = isSelected ? "suggestion" : undefined;
495    const t2 = isSelected ? `${figures.pointer} ` : "  ";
496    let t3;
497    if ($[121] !== t1 || $[122] !== t2) {
498      t3 = <Text color={t1}>{t2}</Text>;
499      $[121] = t1;
500      $[122] = t2;
501      $[123] = t3;
502    } else {
503      t3 = $[123];
504    }
505    const t4 = isSelected ? "suggestion" : undefined;
506    let t5;
507    if ($[124] !== item.name || $[125] !== t4) {
508      t5 = <Text color={t4}>{item.name}</Text>;
509      $[124] = item.name;
510      $[125] = t4;
511      $[126] = t5;
512    } else {
513      t5 = $[126];
514    }
515    const t6 = !isSelected;
516    let t7;
517    if ($[127] === Symbol.for("react.memo_cache_sentinel")) {
518      t7 = <Text backgroundColor="userMessageBackground">MCP</Text>;
519      $[127] = t7;
520    } else {
521      t7 = $[127];
522    }
523    let t8;
524    if ($[128] !== t6) {
525      t8 = <Text dimColor={t6}>{" "}{t7}</Text>;
526      $[128] = t6;
527      $[129] = t8;
528    } else {
529      t8 = $[129];
530    }
531    const t9 = !isSelected;
532    let t10;
533    if ($[130] !== statusIcon_2 || $[131] !== t9) {
534      t10 = <Text dimColor={t9}> · {statusIcon_2} </Text>;
535      $[130] = statusIcon_2;
536      $[131] = t9;
537      $[132] = t10;
538    } else {
539      t10 = $[132];
540    }
541    const t11 = !isSelected;
542    let t12;
543    if ($[133] !== statusText_1 || $[134] !== t11) {
544      t12 = <Text dimColor={t11}>{statusText_1}</Text>;
545      $[133] = statusText_1;
546      $[134] = t11;
547      $[135] = t12;
548    } else {
549      t12 = $[135];
550    }
551    let t13;
552    if ($[136] !== t10 || $[137] !== t12 || $[138] !== t3 || $[139] !== t5 || $[140] !== t8) {
553      t13 = <Box>{t3}{t5}{t8}{t10}{t12}</Box>;
554      $[136] = t10;
555      $[137] = t12;
556      $[138] = t3;
557      $[139] = t5;
558      $[140] = t8;
559      $[141] = t13;
560    } else {
561      t13 = $[141];
562    }
563    return t13;
564  }
565  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJCb3giLCJjb2xvciIsIlRleHQiLCJ1c2VUaGVtZSIsInBsdXJhbCIsIlVuaWZpZWRJbnN0YWxsZWRJdGVtIiwiUHJvcHMiLCJpdGVtIiwiaXNTZWxlY3RlZCIsIlVuaWZpZWRJbnN0YWxsZWRDZWxsIiwidDAiLCIkIiwiX2MiLCJ0aGVtZSIsInR5cGUiLCJzdGF0dXNJY29uIiwic3RhdHVzVGV4dCIsInBlbmRpbmdUb2dnbGUiLCJ0MSIsImFycm93UmlnaHQiLCJlcnJvckNvdW50IiwiY3Jvc3MiLCJ0MiIsInQzIiwiaXNFbmFibGVkIiwicmFkaW9PZmYiLCJ0aWNrIiwidW5kZWZpbmVkIiwicG9pbnRlciIsInQ0IiwidDUiLCJuYW1lIiwidDYiLCJ0NyIsIlN5bWJvbCIsImZvciIsInQ4IiwidDkiLCJtYXJrZXRwbGFjZSIsInQxMCIsInQxMSIsInQxMiIsInQxMyIsInQxNCIsIndhcm5pbmciLCJzdGF0dXNJY29uXzAiLCJ0MTUiLCJzdGF0dXNJY29uXzEiLCJzdGF0dXNUZXh0XzAiLCJ0MTYiLCJ0MTciLCJzdGF0dXMiLCJ0cmlhbmdsZVVwT3V0bGluZSIsImluZGVudGVkIiwic3RhdHVzSWNvbl8yIiwic3RhdHVzVGV4dF8xIl0sInNvdXJjZXMiOlsiVW5pZmllZEluc3RhbGxlZENlbGwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWd1cmVzIGZyb20gJ2ZpZ3VyZXMnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJveCwgY29sb3IsIFRleHQsIHVzZVRoZW1lIH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5nVXRpbHMuanMnXG5pbXBvcnQgdHlwZSB7IFVuaWZpZWRJbnN0YWxsZWRJdGVtIH0gZnJvbSAnLi91bmlmaWVkVHlwZXMuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGl0ZW06IFVuaWZpZWRJbnN0YWxsZWRJdGVtXG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFVuaWZpZWRJbnN0YWxsZWRDZWxsKHtcbiAgaXRlbSxcbiAgaXNTZWxlY3RlZCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3RoZW1lXSA9IHVzZVRoZW1lKClcblxuICBpZiAoaXRlbS50eXBlID09PSAncGx1Z2luJykge1xuICAgIC8vIFN0YXR1cyBpY29uIGFuZCB0ZXh0XG4gICAgbGV0IHN0YXR1c0ljb246IHN0cmluZ1xuICAgIGxldCBzdGF0dXNUZXh0OiBzdHJpbmdcblxuICAgIC8vIFNob3cgcGVuZGluZyB0b2dnbGUgc3RhdHVzIGlmIHNldCwgb3RoZXJ3aXNlIHNob3cgY3VycmVudCBzdGF0dXNcbiAgICBpZiAoaXRlbS5wZW5kaW5nVG9nZ2xlKSB7XG4gICAgICBzdGF0dXNJY29uID0gY29sb3IoJ3N1Z2dlc3Rpb24nLCB0aGVtZSkoZmlndXJlcy5hcnJvd1JpZ2h0KVxuICAgICAgc3RhdHVzVGV4dCA9XG4gICAgICAgIGl0ZW0ucGVuZGluZ1RvZ2dsZSA9PT0gJ3dpbGwtZW5hYmxlJyA/ICd3aWxsIGVuYWJsZScgOiAnd2lsbCBkaXNhYmxlJ1xuICAgIH0gZWxzZSBpZiAoaXRlbS5lcnJvckNvdW50ID4gMCkge1xuICAgICAgc3RhdHVzSWNvbiA9IGNvbG9yKCdlcnJvcicsIHRoZW1lKShmaWd1cmVzLmNyb3NzKVxuICAgICAgc3RhdHVzVGV4dCA9IGAke2l0ZW0uZXJyb3JDb3VudH0gJHtwbHVyYWwoaXRlbS5lcnJvckNvdW50LCAnZXJyb3InKX1gXG4gICAgfSBlbHNlIGlmICghaXRlbS5pc0VuYWJsZWQpIHtcbiAgICAgIHN0YXR1c0ljb24gPSBjb2xvcignaW5hY3RpdmUnLCB0aGVtZSkoZmlndXJlcy5yYWRpb09mZilcbiAgICAgIHN0YXR1c1RleHQgPSAnZGlzYWJsZWQnXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXR1c0ljb24gPSBjb2xvcignc3VjY2VzcycsIHRoZW1lKShmaWd1cmVzLnRpY2spXG4gICAgICBzdGF0dXNUZXh0ID0gJ2VuYWJsZWQnXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3g+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7aXNTZWxlY3RlZCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgY29sb3I9e2lzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PntpdGVtLm5hbWV9PC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PlxuICAgICAgICAgIHsnICd9XG4gICAgICAgICAgPFRleHQgYmFja2dyb3VuZENvbG9yPVwidXNlck1lc3NhZ2VCYWNrZ3JvdW5kXCI+UGx1Z2luPC9UZXh0PlxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPiDCtyB7aXRlbS5tYXJrZXRwbGFjZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+IMK3IHtzdGF0dXNJY29ufSA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+e3N0YXR1c1RleHR9PC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgaWYgKGl0ZW0udHlwZSA9PT0gJ2ZsYWdnZWQtcGx1Z2luJykge1xuICAgIGNvbnN0IHN0YXR1c0ljb24gPSBjb2xvcignd2FybmluZycsIHRoZW1lKShmaWd1cmVzLndhcm5pbmcpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEJveD5cbiAgICAgICAgPFRleHQgY29sb3I9e2lzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PlxuICAgICAgICAgIHtpc1NlbGVjdGVkID8gYCR7ZmlndXJlcy5wb2ludGVyfSBgIDogJyAgJ31cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBjb2xvcj17aXNTZWxlY3RlZCA/ICdzdWdnZXN0aW9uJyA6IHVuZGVmaW5lZH0+e2l0ZW0ubmFtZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+XG4gICAgICAgICAgeycgJ31cbiAgICAgICAgICA8VGV4dCBiYWNrZ3JvdW5kQ29sb3I9XCJ1c2VyTWVzc2FnZUJhY2tncm91bmRcIj5QbHVnaW48L1RleHQ+XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+IMK3IHtpdGVtLm1hcmtldHBsYWNlfTwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc1NlbGVjdGVkfT4gwrcge3N0YXR1c0ljb259IDwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc1NlbGVjdGVkfT5yZW1vdmVkPC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgaWYgKGl0ZW0udHlwZSA9PT0gJ2ZhaWxlZC1wbHVnaW4nKSB7XG4gICAgY29uc3Qgc3RhdHVzSWNvbiA9IGNvbG9yKCdlcnJvcicsIHRoZW1lKShmaWd1cmVzLmNyb3NzKVxuICAgIGNvbnN0IHN0YXR1c1RleHQgPSBgZmFpbGVkIHRvIGxvYWQgwrcgJHtpdGVtLmVycm9yQ291bnR9ICR7cGx1cmFsKGl0ZW0uZXJyb3JDb3VudCwgJ2Vycm9yJyl9YFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3g+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7aXNTZWxlY3RlZCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgY29sb3I9e2lzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PntpdGVtLm5hbWV9PC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PlxuICAgICAgICAgIHsnICd9XG4gICAgICAgICAgPFRleHQgYmFja2dyb3VuZENvbG9yPVwidXNlck1lc3NhZ2VCYWNrZ3JvdW5kXCI+UGx1Z2luPC9UZXh0PlxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPiDCtyB7aXRlbS5tYXJrZXRwbGFjZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+IMK3IHtzdGF0dXNJY29ufSA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+e3N0YXR1c1RleHR9PC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgLy8gTUNQIHNlcnZlclxuICBsZXQgc3RhdHVzSWNvbjogc3RyaW5nXG4gIGxldCBzdGF0dXNUZXh0OiBzdHJpbmdcblxuICBpZiAoaXRlbS5zdGF0dXMgPT09ICdjb25uZWN0ZWQnKSB7XG4gICAgc3RhdHVzSWNvbiA9IGNvbG9yKCdzdWNjZXNzJywgdGhlbWUpKGZpZ3VyZXMudGljaylcbiAgICBzdGF0dXNUZXh0ID0gJ2Nvbm5lY3RlZCdcbiAgfSBlbHNlIGlmIChpdGVtLnN0YXR1cyA9PT0gJ2Rpc2FibGVkJykge1xuICAgIHN0YXR1c0ljb24gPSBjb2xvcignaW5hY3RpdmUnLCB0aGVtZSkoZmlndXJlcy5yYWRpb09mZilcbiAgICBzdGF0dXNUZXh0ID0gJ2Rpc2FibGVkJ1xuICB9IGVsc2UgaWYgKGl0ZW0uc3RhdHVzID09PSAncGVuZGluZycpIHtcbiAgICBzdGF0dXNJY29uID0gY29sb3IoJ2luYWN0aXZlJywgdGhlbWUpKGZpZ3VyZXMucmFkaW9PZmYpXG4gICAgc3RhdHVzVGV4dCA9ICdjb25uZWN0aW5n4oCmJ1xuICB9IGVsc2UgaWYgKGl0ZW0uc3RhdHVzID09PSAnbmVlZHMtYXV0aCcpIHtcbiAgICBzdGF0dXNJY29uID0gY29sb3IoJ3dhcm5pbmcnLCB0aGVtZSkoZmlndXJlcy50cmlhbmdsZVVwT3V0bGluZSlcbiAgICBzdGF0dXNUZXh0ID0gJ0VudGVyIHRvIGF1dGgnXG4gIH0gZWxzZSB7XG4gICAgc3RhdHVzSWNvbiA9IGNvbG9yKCdlcnJvcicsIHRoZW1lKShmaWd1cmVzLmNyb3NzKVxuICAgIHN0YXR1c1RleHQgPSAnZmFpbGVkJ1xuICB9XG5cbiAgLy8gSW5kZW50ZWQgTUNQcyAoY2hpbGQgb2YgYSBwbHVnaW4pXG4gIGlmIChpdGVtLmluZGVudGVkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3g+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7aXNTZWxlY3RlZCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc1NlbGVjdGVkfT7ilJQgPC9UZXh0PlxuICAgICAgICA8VGV4dCBjb2xvcj17aXNTZWxlY3RlZCA/ICdzdWdnZXN0aW9uJyA6IHVuZGVmaW5lZH0+e2l0ZW0ubmFtZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+XG4gICAgICAgICAgeycgJ31cbiAgICAgICAgICA8VGV4dCBiYWNrZ3JvdW5kQ29sb3I9XCJ1c2VyTWVzc2FnZUJhY2tncm91bmRcIj5NQ1A8L1RleHQ+XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc1NlbGVjdGVkfT4gwrcge3N0YXR1c0ljb259IDwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc1NlbGVjdGVkfT57c3RhdHVzVGV4dH08L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3g+XG4gICAgICA8VGV4dCBjb2xvcj17aXNTZWxlY3RlZCA/ICdzdWdnZXN0aW9uJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgIHtpc1NlbGVjdGVkID8gYCR7ZmlndXJlcy5wb2ludGVyfSBgIDogJyAgJ31cbiAgICAgIDwvVGV4dD5cbiAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT57aXRlbS5uYW1lfTwvVGV4dD5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+XG4gICAgICAgIHsnICd9XG4gICAgICAgIDxUZXh0IGJhY2tncm91bmRDb2xvcj1cInVzZXJNZXNzYWdlQmFja2dyb3VuZFwiPk1DUDwvVGV4dD5cbiAgICAgIDwvVGV4dD5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+IMK3IHtzdGF0dXNJY29ufSA8L1RleHQ+XG4gICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PntzdGF0dXNUZXh0fTwvVGV4dD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsT0FBTyxNQUFNLFNBQVM7QUFDN0IsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxHQUFHLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFQyxRQUFRLFFBQVEsY0FBYztBQUN6RCxTQUFTQyxNQUFNLFFBQVEsNEJBQTRCO0FBQ25ELGNBQWNDLG9CQUFvQixRQUFRLG1CQUFtQjtBQUU3RCxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsSUFBSSxFQUFFRixvQkFBb0I7RUFDMUJHLFVBQVUsRUFBRSxPQUFPO0FBQ3JCLENBQUM7QUFFRCxPQUFPLFNBQUFDLHFCQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQThCO0lBQUFMLElBQUE7SUFBQUM7RUFBQSxJQUFBRSxFQUc3QjtFQUNOLE9BQUFHLEtBQUEsSUFBZ0JWLFFBQVEsQ0FBQyxDQUFDO0VBRTFCLElBQUlJLElBQUksQ0FBQU8sSUFBSyxLQUFLLFFBQVE7SUFFcEJDLEdBQUEsQ0FBQUEsVUFBQTtJQUNBQyxHQUFBLENBQUFBLFVBQUE7SUFH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LEVBQUEsR0FBQXpCLENBQUE7RUFBQTtFQUNTLE1BQUEwQixFQUFBLElBQUM3QixVQUFVO0VBQUEsSUFBQStCLEdBQUE7RUFBQSxJQUFBNUIsQ0FBQSxVQUFBMkMsWUFBQSxJQUFBM0MsQ0FBQSxVQUFBMEIsRUFBQTtJQUEzQkUsR0FBQSxJQUFDLElBQUksQ0FBVyxRQUFXLENBQVgsQ0FBQUYsRUFBVSxDQUFDLENBQUUsR0FBSXRCLGFBQVMsQ0FBRSxDQUFDLEVBQTVDLElBQUksQ0FBK0M7SUFBQUosQ0FBQSxRQUFBMkMsWUFBQTtJQUFBM0MsQ0FBQSxRQUFBMEIsRUFBQTtJQUFBMUIsQ0FBQSxRQUFBNEIsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTVCLENBQUE7RUFBQTtFQUNwQyxNQUFBNkIsR0FBQSxJQUFDaEMsVUFBVTtFQUFBLElBQUFpQyxHQUFBO0VBQUEsSUFBQTlCLENBQUEsVUFBQTRDLFlBQUEsSUFBQTVDLENBQUEsVUFBQTZCLEdBQUE7SUFBM0JDLEdBQUEsSUFBQyxJQUFJLENBQVcsUUFBVyxDQUFYLENBQUFELEdBQVUsQ0FBQyxDQUFHeEIsYUFBUyxDQUFFLEVBQXhDLElBQUksQ0FBMkM7SUFBQUwsQ0FBQSxRQUFBNEMsWUFBQTtJQUFBNUMsQ0FBQSxRQUFBNkIsR0FBQTtJQUFBN0IsQ0FBQSxRQUFBOEIsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTlCLENBQUE7RUFBQTtFQUFBLElBQUErQixHQUFBO0VBQUEsSUFBQS9CLENBQUEsVUFBQTRCLEdBQUEsSUFBQTVCLENBQUEsVUFBQThCLEdBQUEsSUFBQTlCLENBQUEsVUFBQVksRUFBQSxJQUFBWixDQUFBLFVBQUFtQixFQUFBLElBQUFuQixDQUFBLFVBQUF5QixFQUFBO0lBVmxETSxHQUFBLElBQUMsR0FBRyxDQUNGLENBQUFuQixFQUVNLENBQ04sQ0FBQU8sRUFBcUUsQ0FDckUsQ0FBQU0sRUFHTSxDQUNOLENBQUFHLEdBQW1ELENBQ25ELENBQUFFLEdBQStDLENBQ2pELEVBWEMsR0FBRyxDQVdFO0lBQUE5QixDQUFBLFFBQUE0QixHQUFBO0lBQUE1QixDQUFBLFFBQUE4QixHQUFBO0lBQUE5QixDQUFBLFFBQUFZLEVBQUE7SUFBQVosQ0FBQSxRQUFBbUIsRUFBQTtJQUFBbkIsQ0FBQSxRQUFBeUIsRUFBQTtJQUFBekIsQ0FBQSxRQUFBK0IsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQS9CLENBQUE7RUFBQTtFQUFBLE9BWE4rQixHQVdNO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=