| import { c as _c } from "react/compiler-runtime"; | |
| import figures from 'figures'; | |
| import * as React from 'react'; | |
| import { Box, Text, type TextProps } from '../../ink.js'; | |
| import { useAppState } from '../../state/AppState.js'; | |
| import { getRunningTeammatesSorted } from '../../tasks/InProcessTeammateTask/InProcessTeammateTask.js'; | |
| import { formatNumber } from '../../utils/format.js'; | |
| import { TeammateSpinnerLine } from './TeammateSpinnerLine.js'; | |
| import { TEAMMATE_SELECT_HINT } from './teammateSelectHint.js'; | |
| type Props = { | |
| selectedIndex?: number; | |
| isInSelectionMode?: boolean; | |
| allIdle?: boolean; | |
| /** Leader's active verb (when leader is actively processing) */ | |
| leaderVerb?: string; | |
| /** Leader's token count (when leader is actively processing) */ | |
| leaderTokenCount?: number; | |
| /** Leader's idle status text (when leader is idle, e.g. "✻ Idle for 3s") */ | |
| leaderIdleText?: string; | |
| }; | |
| export function TeammateSpinnerTree(t0) { | |
| const $ = _c(61); | |
| const { | |
| selectedIndex, | |
| isInSelectionMode, | |
| allIdle, | |
| leaderVerb, | |
| leaderTokenCount, | |
| leaderIdleText | |
| } = t0; | |
| const tasks = useAppState(_temp); | |
| const viewingAgentTaskId = useAppState(_temp2); | |
| const showTeammateMessagePreview = useAppState(_temp3); | |
| let T0; | |
| let isHideSelected; | |
| let t1; | |
| let t2; | |
| let t3; | |
| let t4; | |
| let t5; | |
| if ($[0] !== allIdle || $[1] !== isInSelectionMode || $[2] !== leaderIdleText || $[3] !== leaderTokenCount || $[4] !== leaderVerb || $[5] !== selectedIndex || $[6] !== showTeammateMessagePreview || $[7] !== tasks || $[8] !== viewingAgentTaskId) { | |
| t5 = Symbol.for("react.early_return_sentinel"); | |
| bb0: { | |
| const teammateTasks = getRunningTeammatesSorted(tasks); | |
| if (teammateTasks.length === 0) { | |
| t5 = null; | |
| break bb0; | |
| } | |
| const isLeaderForegrounded = viewingAgentTaskId === undefined; | |
| const isLeaderSelected = isInSelectionMode && selectedIndex === -1; | |
| const isLeaderHighlighted = isLeaderForegrounded || isLeaderSelected; | |
| isHideSelected = isInSelectionMode === true && selectedIndex === teammateTasks.length; | |
| T0 = Box; | |
| t1 = "column"; | |
| t2 = 1; | |
| const t6 = isLeaderSelected ? "suggestion" : undefined; | |
| const t7 = isLeaderSelected ? figures.pointer : " "; | |
| let t8; | |
| if ($[16] !== isLeaderHighlighted || $[17] !== t6 || $[18] !== t7) { | |
| t8 = <Text color={t6} bold={isLeaderHighlighted}>{t7}</Text>; | |
| $[16] = isLeaderHighlighted; | |
| $[17] = t6; | |
| $[18] = t7; | |
| $[19] = t8; | |
| } else { | |
| t8 = $[19]; | |
| } | |
| const t9 = !isLeaderHighlighted; | |
| const t10 = isLeaderHighlighted ? "\u2552\u2550" : "\u250C\u2500"; | |
| let t11; | |
| if ($[20] !== isLeaderHighlighted || $[21] !== t10 || $[22] !== t9) { | |
| t11 = <Text dimColor={t9} bold={isLeaderHighlighted}>{t10}{" "}</Text>; | |
| $[20] = isLeaderHighlighted; | |
| $[21] = t10; | |
| $[22] = t9; | |
| $[23] = t11; | |
| } else { | |
| t11 = $[23]; | |
| } | |
| const t12 = isLeaderSelected ? "suggestion" : "cyan_FOR_SUBAGENTS_ONLY"; | |
| let t13; | |
| if ($[24] !== isLeaderHighlighted || $[25] !== t12) { | |
| t13 = <Text bold={isLeaderHighlighted} color={t12}>team-lead</Text>; | |
| $[24] = isLeaderHighlighted; | |
| $[25] = t12; | |
| $[26] = t13; | |
| } else { | |
| t13 = $[26]; | |
| } | |
| let t14; | |
| if ($[27] !== isLeaderForegrounded || $[28] !== leaderVerb) { | |
| t14 = !isLeaderForegrounded && leaderVerb && <Text dimColor={true}>: {leaderVerb}…</Text>; | |
| $[27] = isLeaderForegrounded; | |
| $[28] = leaderVerb; | |
| $[29] = t14; | |
| } else { | |
| t14 = $[29]; | |
| } | |
| let t15; | |
| if ($[30] !== isLeaderForegrounded || $[31] !== leaderIdleText || $[32] !== leaderVerb) { | |
| t15 = !isLeaderForegrounded && !leaderVerb && leaderIdleText && <Text dimColor={true}>: {leaderIdleText}</Text>; | |
| $[30] = isLeaderForegrounded; | |
| $[31] = leaderIdleText; | |
| $[32] = leaderVerb; | |
| $[33] = t15; | |
| } else { | |
| t15 = $[33]; | |
| } | |
| let t16; | |
| if ($[34] !== isLeaderHighlighted || $[35] !== leaderTokenCount) { | |
| t16 = leaderTokenCount !== undefined && leaderTokenCount > 0 && <Text dimColor={!isLeaderHighlighted}>{" "}· {formatNumber(leaderTokenCount)} tokens</Text>; | |
| $[34] = isLeaderHighlighted; | |
| $[35] = leaderTokenCount; | |
| $[36] = t16; | |
| } else { | |
| t16 = $[36]; | |
| } | |
| let t17; | |
| if ($[37] !== isLeaderHighlighted) { | |
| t17 = isLeaderHighlighted && <Text dimColor={true}> · {TEAMMATE_SELECT_HINT}</Text>; | |
| $[37] = isLeaderHighlighted; | |
| $[38] = t17; | |
| } else { | |
| t17 = $[38]; | |
| } | |
| let t18; | |
| if ($[39] !== isLeaderForegrounded || $[40] !== isLeaderSelected) { | |
| t18 = isLeaderSelected && !isLeaderForegrounded && <Text dimColor={true}> · enter to view</Text>; | |
| $[39] = isLeaderForegrounded; | |
| $[40] = isLeaderSelected; | |
| $[41] = t18; | |
| } else { | |
| t18 = $[41]; | |
| } | |
| if ($[42] !== t11 || $[43] !== t13 || $[44] !== t14 || $[45] !== t15 || $[46] !== t16 || $[47] !== t17 || $[48] !== t18 || $[49] !== t8) { | |
| t3 = <Box paddingLeft={3}>{t8}{t11}{t13}{t14}{t15}{t16}{t17}{t18}</Box>; | |
| $[42] = t11; | |
| $[43] = t13; | |
| $[44] = t14; | |
| $[45] = t15; | |
| $[46] = t16; | |
| $[47] = t17; | |
| $[48] = t18; | |
| $[49] = t8; | |
| $[50] = t3; | |
| } else { | |
| t3 = $[50]; | |
| } | |
| t4 = teammateTasks.map((teammate, index) => <TeammateSpinnerLine key={teammate.id} teammate={teammate} isLast={!isInSelectionMode && index === teammateTasks.length - 1} isSelected={isInSelectionMode && selectedIndex === index} isForegrounded={viewingAgentTaskId === teammate.id} allIdle={allIdle} showPreview={showTeammateMessagePreview} />); | |
| } | |
| $[0] = allIdle; | |
| $[1] = isInSelectionMode; | |
| $[2] = leaderIdleText; | |
| $[3] = leaderTokenCount; | |
| $[4] = leaderVerb; | |
| $[5] = selectedIndex; | |
| $[6] = showTeammateMessagePreview; | |
| $[7] = tasks; | |
| $[8] = viewingAgentTaskId; | |
| $[9] = T0; | |
| $[10] = isHideSelected; | |
| $[11] = t1; | |
| $[12] = t2; | |
| $[13] = t3; | |
| $[14] = t4; | |
| $[15] = t5; | |
| } else { | |
| T0 = $[9]; | |
| isHideSelected = $[10]; | |
| t1 = $[11]; | |
| t2 = $[12]; | |
| t3 = $[13]; | |
| t4 = $[14]; | |
| t5 = $[15]; | |
| } | |
| if (t5 !== Symbol.for("react.early_return_sentinel")) { | |
| return t5; | |
| } | |
| let t6; | |
| if ($[51] !== isHideSelected || $[52] !== isInSelectionMode) { | |
| t6 = isInSelectionMode && <HideRow isSelected={isHideSelected} />; | |
| $[51] = isHideSelected; | |
| $[52] = isInSelectionMode; | |
| $[53] = t6; | |
| } else { | |
| t6 = $[53]; | |
| } | |
| let t7; | |
| if ($[54] !== T0 || $[55] !== t1 || $[56] !== t2 || $[57] !== t3 || $[58] !== t4 || $[59] !== t6) { | |
| t7 = <T0 flexDirection={t1} marginTop={t2}>{t3}{t4}{t6}</T0>; | |
| $[54] = T0; | |
| $[55] = t1; | |
| $[56] = t2; | |
| $[57] = t3; | |
| $[58] = t4; | |
| $[59] = t6; | |
| $[60] = t7; | |
| } else { | |
| t7 = $[60]; | |
| } | |
| return t7; | |
| } | |
| function _temp3(s_1) { | |
| return s_1.showTeammateMessagePreview; | |
| } | |
| function _temp2(s_0) { | |
| return s_0.viewingAgentTaskId; | |
| } | |
| function _temp(s) { | |
| return s.tasks; | |
| } | |
| function HideRow(t0) { | |
| const $ = _c(18); | |
| const { | |
| isSelected | |
| } = t0; | |
| const t1 = isSelected ? "suggestion" : undefined; | |
| const t2 = isSelected ? figures.pointer : " "; | |
| let t3; | |
| if ($[0] !== isSelected || $[1] !== t1 || $[2] !== t2) { | |
| t3 = <Text color={t1} bold={isSelected}>{t2}</Text>; | |
| $[0] = isSelected; | |
| $[1] = t1; | |
| $[2] = t2; | |
| $[3] = t3; | |
| } else { | |
| t3 = $[3]; | |
| } | |
| const t4 = !isSelected; | |
| const t5 = isSelected ? "\u2558\u2550" : "\u2514\u2500"; | |
| let t6; | |
| if ($[4] !== isSelected || $[5] !== t4 || $[6] !== t5) { | |
| t6 = <Text dimColor={t4} bold={isSelected}>{t5}{" "}</Text>; | |
| $[4] = isSelected; | |
| $[5] = t4; | |
| $[6] = t5; | |
| $[7] = t6; | |
| } else { | |
| t6 = $[7]; | |
| } | |
| const t7 = !isSelected; | |
| let t8; | |
| if ($[8] !== isSelected || $[9] !== t7) { | |
| t8 = <Text dimColor={t7} bold={isSelected}>hide</Text>; | |
| $[8] = isSelected; | |
| $[9] = t7; | |
| $[10] = t8; | |
| } else { | |
| t8 = $[10]; | |
| } | |
| let t9; | |
| if ($[11] !== isSelected) { | |
| t9 = isSelected && <Text dimColor={true}> · enter to collapse</Text>; | |
| $[11] = isSelected; | |
| $[12] = t9; | |
| } else { | |
| t9 = $[12]; | |
| } | |
| let t10; | |
| if ($[13] !== t3 || $[14] !== t6 || $[15] !== t8 || $[16] !== t9) { | |
| t10 = <Box paddingLeft={3}>{t3}{t6}{t8}{t9}</Box>; | |
| $[13] = t3; | |
| $[14] = t6; | |
| $[15] = t8; | |
| $[16] = t9; | |
| $[17] = t10; | |
| } else { | |
| t10 = $[17]; | |
| } | |
| return t10; | |
| } | |
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJCb3giLCJUZXh0IiwiVGV4dFByb3BzIiwidXNlQXBwU3RhdGUiLCJnZXRSdW5uaW5nVGVhbW1hdGVzU29ydGVkIiwiZm9ybWF0TnVtYmVyIiwiVGVhbW1hdGVTcGlubmVyTGluZSIsIlRFQU1NQVRFX1NFTEVDVF9ISU5UIiwiUHJvcHMiLCJzZWxlY3RlZEluZGV4IiwiaXNJblNlbGVjdGlvbk1vZGUiLCJhbGxJZGxlIiwibGVhZGVyVmVyYiIsImxlYWRlclRva2VuQ291bnQiLCJsZWFkZXJJZGxlVGV4dCIsIlRlYW1tYXRlU3Bpbm5lclRyZWUiLCJ0MCIsIiQiLCJfYyIsInRhc2tzIiwiX3RlbXAiLCJ2aWV3aW5nQWdlbnRUYXNrSWQiLCJfdGVtcDIiLCJzaG93VGVhbW1hdGVNZXNzYWdlUHJldmlldyIsIl90ZW1wMyIsIlQwIiwiaXNIaWRlU2VsZWN0ZWQiLCJ0MSIsInQyIiwidDMiLCJ0NCIsInQ1IiwiU3ltYm9sIiwiZm9yIiwiYmIwIiwidGVhbW1hdGVUYXNrcyIsImxlbmd0aCIsImlzTGVhZGVyRm9yZWdyb3VuZGVkIiwidW5kZWZpbmVkIiwiaXNMZWFkZXJTZWxlY3RlZCIsImlzTGVhZGVySGlnaGxpZ2h0ZWQiLCJ0NiIsInQ3IiwicG9pbnRlciIsInQ4IiwidDkiLCJ0MTAiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJtYXAiLCJ0ZWFtbWF0ZSIsImluZGV4IiwiaWQiLCJzXzEiLCJzIiwic18wIiwiSGlkZVJvdyIsImlzU2VsZWN0ZWQiXSwic291cmNlcyI6WyJUZWFtbWF0ZVNwaW5uZXJUcmVlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlndXJlcyBmcm9tICdmaWd1cmVzJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIFRleHQsIHR5cGUgVGV4dFByb3BzIH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgdXNlQXBwU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7IGdldFJ1bm5pbmdUZWFtbWF0ZXNTb3J0ZWQgfSBmcm9tICcuLi8uLi90YXNrcy9JblByb2Nlc3NUZWFtbWF0ZVRhc2svSW5Qcm9jZXNzVGVhbW1hdGVUYXNrLmpzJ1xuaW1wb3J0IHsgZm9ybWF0TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybWF0LmpzJ1xuaW1wb3J0IHsgVGVhbW1hdGVTcGlubmVyTGluZSB9IGZyb20gJy4vVGVhbW1hdGVTcGlubmVyTGluZS5qcydcbmltcG9ydCB7IFRFQU1NQVRFX1NFTEVDVF9ISU5UIH0gZnJvbSAnLi90ZWFtbWF0ZVNlbGVjdEhpbnQuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNlbGVjdGVkSW5kZXg/OiBudW1iZXJcbiAgaXNJblNlbGVjdGlvbk1vZGU/OiBib29sZWFuXG4gIGFsbElkbGU/OiBib29sZWFuXG4gIC8qKiBMZWFkZXIncyBhY3RpdmUgdmVyYiAod2hlbiBsZWFkZXIgaXMgYWN0aXZlbHkgcHJvY2Vzc2luZykgKi9cbiAgbGVhZGVyVmVyYj86IHN0cmluZ1xuICAvKiogTGVhZGVyJ3MgdG9rZW4gY291bnQgKHdoZW4gbGVhZGVyIGlzIGFjdGl2ZWx5IHByb2Nlc3NpbmcpICovXG4gIGxlYWRlclRva2VuQ291bnQ/OiBudW1iZXJcbiAgLyoqIExlYWRlcidzIGlkbGUgc3RhdHVzIHRleHQgKHdoZW4gbGVhZGVyIGlzIGlkbGUsIGUuZy4gXCLinLsgSWRsZSBmb3IgM3NcIikgKi9cbiAgbGVhZGVySWRsZVRleHQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRlYW1tYXRlU3Bpbm5lclRyZWUoe1xuICBzZWxlY3RlZEluZGV4LFxuICBpc0luU2VsZWN0aW9uTW9kZSxcbiAgYWxsSWRsZSxcbiAgbGVhZGVyVmVyYixcbiAgbGVhZGVyVG9rZW5Db3VudCxcbiAgbGVhZGVySWRsZVRleHQsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHRhc2tzID0gdXNlQXBwU3RhdGUocyA9PiBzLnRhc2tzKVxuICBjb25zdCB2aWV3aW5nQWdlbnRUYXNrSWQgPSB1c2VBcHBTdGF0ZShzID0+IHMudmlld2luZ0FnZW50VGFza0lkKVxuICBjb25zdCBzaG93VGVhbW1hdGVNZXNzYWdlUHJldmlldyA9IHVzZUFwcFN0YXRlKFxuICAgIHMgPT4gcy5zaG93VGVhbW1hdGVNZXNzYWdlUHJldmlldyxcbiAgKVxuXG4gIGNvbnN0IHRlYW1tYXRlVGFza3MgPSBnZXRSdW5uaW5nVGVhbW1hdGVzU29ydGVkKHRhc2tzKVxuXG4gIC8vIERvbid0IHJlbmRlciBpZiBubyBydW5uaW5nIHRlYW1tYXRlc1xuICBpZiAodGVhbW1hdGVUYXNrcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gTGVhZGVyIGhpZ2hsaWdodGluZyBmb2xsb3dzIHNhbWUgcGF0dGVybiBhcyB0ZWFtbWF0ZXM6XG4gIC8vIGlzSGlnaGxpZ2h0ZWQgPSBpc0ZvcmVncm91bmRlZCB8fCBpc1NlbGVjdGVkXG4gIGNvbnN0IGlzTGVhZGVyRm9yZWdyb3VuZGVkID0gdmlld2luZ0FnZW50VGFza0lkID09PSB1bmRlZmluZWRcbiAgY29uc3QgaXNMZWFkZXJTZWxlY3RlZCA9IGlzSW5TZWxlY3Rpb25Nb2RlICYmIHNlbGVjdGVkSW5kZXggPT09IC0xXG4gIGNvbnN0IGlzTGVhZGVySGlnaGxpZ2h0ZWQgPSBpc0xlYWRlckZvcmVncm91bmRlZCB8fCBpc0xlYWRlclNlbGVjdGVkXG4gIGNvbnN0IGxlYWRlckNvbG9yOiBUZXh0UHJvcHNbJ2NvbG9yJ10gPSAnY3lhbl9GT1JfU1VCQUdFTlRTX09OTFknXG5cbiAgLy8gSXMgdGhlIFwiaGlkZVwiIHJvdyBzZWxlY3RlZD8gKGluZGV4ID09PSB0ZWFtbWF0ZUNvdW50IGluIHNlbGVjdGlvbiBtb2RlKVxuICBjb25zdCBpc0hpZGVTZWxlY3RlZCA9XG4gICAgaXNJblNlbGVjdGlvbk1vZGUgPT09IHRydWUgJiYgc2VsZWN0ZWRJbmRleCA9PT0gdGVhbW1hdGVUYXNrcy5sZW5ndGhcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpblRvcD17MX0+XG4gICAgICB7LyogTGVhZGVyIHJvdyAtIGFsd2F5cyB2aXNpYmxlLCB1c2VzIOKUjOKUgCB0byBlbmNsb3NlIHRoZSB0cmVlICovfVxuICAgICAge1xuICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXszfT5cbiAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgY29sb3I9e2lzTGVhZGVyU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBib2xkPXtpc0xlYWRlckhpZ2hsaWdodGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0xlYWRlclNlbGVjdGVkID8gZmlndXJlcy5wb2ludGVyIDogJyAnfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzTGVhZGVySGlnaGxpZ2h0ZWR9IGJvbGQ9e2lzTGVhZGVySGlnaGxpZ2h0ZWR9PlxuICAgICAgICAgICAge2lzTGVhZGVySGlnaGxpZ2h0ZWQgPyAn4pWS4pWQJyA6ICfilIzilIAnfXsnICd9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBib2xkPXtpc0xlYWRlckhpZ2hsaWdodGVkfVxuICAgICAgICAgICAgY29sb3I9e2lzTGVhZGVyU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiBsZWFkZXJDb2xvcn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB0ZWFtLWxlYWRcbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgey8qIFdoZW4gYmFja2dyb3VuZGVkIGFuZCBhY3RpdmU6IHNob3cgc3Bpbm5lciArIHZlcmIgKi99XG4gICAgICAgICAgeyFpc0xlYWRlckZvcmVncm91bmRlZCAmJiBsZWFkZXJWZXJiICYmIChcbiAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPjoge2xlYWRlclZlcmJ94oCmPC9UZXh0PlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIFdoZW4gYmFja2dyb3VuZGVkIGFuZCBpZGxlOiBzaG93IGlkbGUgdGV4dCAqL31cbiAgICAgICAgICB7IWlzTGVhZGVyRm9yZWdyb3VuZGVkICYmICFsZWFkZXJWZXJiICYmIGxlYWRlcklkbGVUZXh0ICYmIChcbiAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPjoge2xlYWRlcklkbGVUZXh0fTwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHsvKiBTdGF0cyAodG9rZW5zKSAtIHNhbWUgZGltQ29sb3IgbG9naWMgYXMgdGVhbW1hdGVzICovfVxuICAgICAgICAgIHtsZWFkZXJUb2tlbkNvdW50ICE9PSB1bmRlZmluZWQgJiYgbGVhZGVyVG9rZW5Db3VudCA+IDAgJiYgKFxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc0xlYWRlckhpZ2hsaWdodGVkfT5cbiAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgwrcge2Zvcm1hdE51bWJlcihsZWFkZXJUb2tlbkNvdW50KX0gdG9rZW5zXG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7LyogSGludHMgLSBzZWxlY3QgaGludCB3aGVuIGhpZ2hsaWdodGVkLCB2aWV3IGhpbnQgd2hlbiBzZWxlY3RlZCBidXQgbm90IGZvcmVncm91bmRlZCAqL31cbiAgICAgICAgICB7aXNMZWFkZXJIaWdobGlnaHRlZCAmJiAoXG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj4gwrcge1RFQU1NQVRFX1NFTEVDVF9ISU5UfTwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtpc0xlYWRlclNlbGVjdGVkICYmICFpc0xlYWRlckZvcmVncm91bmRlZCAmJiAoXG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj4gwrcgZW50ZXIgdG8gdmlldzwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cbiAgICAgIH1cbiAgICAgIHt0ZWFtbWF0ZVRhc2tzLm1hcCgodGVhbW1hdGUsIGluZGV4KSA9PiAoXG4gICAgICAgIDxUZWFtbWF0ZVNwaW5uZXJMaW5lXG4gICAgICAgICAga2V5PXt0ZWFtbWF0ZS5pZH1cbiAgICAgICAgICB0ZWFtbWF0ZT17dGVhbW1hdGV9XG4gICAgICAgICAgaXNMYXN0PXshaXNJblNlbGVjdGlvbk1vZGUgJiYgaW5kZXggPT09IHRlYW1tYXRlVGFza3MubGVuZ3RoIC0gMX1cbiAgICAgICAgICBpc1NlbGVjdGVkPXtpc0luU2VsZWN0aW9uTW9kZSAmJiBzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgICBpc0ZvcmVncm91bmRlZD17dmlld2luZ0FnZW50VGFza0lkID09PSB0ZWFtbWF0ZS5pZH1cbiAgICAgICAgICBhbGxJZGxlPXthbGxJZGxlfVxuICAgICAgICAgIHNob3dQcmV2aWV3PXtzaG93VGVhbW1hdGVNZXNzYWdlUHJldmlld31cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgICAgey8qIEhpZGUgcm93IC0gb25seSB2aXNpYmxlIGR1cmluZyBzZWxlY3Rpb24gbW9kZSAqL31cbiAgICAgIHtpc0luU2VsZWN0aW9uTW9kZSAmJiA8SGlkZVJvdyBpc1NlbGVjdGVkPXtpc0hpZGVTZWxlY3RlZH0gLz59XG4gICAgPC9Cb3g+XG4gIClcbn1cblxuZnVuY3Rpb24gSGlkZVJvdyh7IGlzU2VsZWN0ZWQgfTogeyBpc1NlbGVjdGVkOiBib29sZWFuIH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxCb3ggcGFkZGluZ0xlZnQ9ezN9PlxuICAgICAgPFRleHQgY29sb3I9e2lzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9IGJvbGQ9e2lzU2VsZWN0ZWR9PlxuICAgICAgICB7aXNTZWxlY3RlZCA/IGZpZ3VyZXMucG9pbnRlciA6ICcgJ31cbiAgICAgIDwvVGV4dD5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0gYm9sZD17aXNTZWxlY3RlZH0+XG4gICAgICAgIHtpc1NlbGVjdGVkID8gJ+KVmOKVkCcgOiAn4pSU4pSAJ317JyAnfVxuICAgICAgPC9UZXh0PlxuICAgICAgPFRleHQgZGltQ29sb3I9eyFpc1NlbGVjdGVkfSBib2xkPXtpc1NlbGVjdGVkfT5cbiAgICAgICAgaGlkZVxuICAgICAgPC9UZXh0PlxuICAgICAge2lzU2VsZWN0ZWQgJiYgPFRleHQgZGltQ29sb3I+IMK3IGVudGVyIHRvIGNvbGxhcHNlPC9UZXh0Pn1cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsT0FBTyxNQUFNLFNBQVM7QUFDN0IsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxHQUFHLEVBQUVDLElBQUksRUFBRSxLQUFLQyxTQUFTLFFBQVEsY0FBYztBQUN4RCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLHlCQUF5QixRQUFRLDREQUE0RDtBQUN0RyxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLG1CQUFtQixRQUFRLDBCQUEwQjtBQUM5RCxTQUFTQyxvQkFBb0IsUUFBUSx5QkFBeUI7QUFFOUQsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLGFBQWEsQ0FBQyxFQUFFLE1BQU07RUFDdEJDLGlCQUFpQixDQUFDLEVBQUUsT0FBTztFQUMzQkMsT0FBTyxDQUFDLEVBQUUsT0FBTztFQUNqQjtFQUNBQyxVQUFVLENBQUMsRUFBRSxNQUFNO0VBQ25CO0VBQ0FDLGdCQUFnQixDQUFDLEVBQUUsTUFBTTtFQUN6QjtFQUNBQyxjQUFjLENBQUMsRUFBRSxNQUFNO0FBQ3pCLENBQUM7QUFFRCxPQUFPLFNBQUFDLG9CQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQTZCO0lBQUFULGFBQUE7SUFBQUMsaUJBQUE7SUFBQUMsT0FBQTtJQUFBQyxVQUFBO0lBQUFDLGdC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QSxNQUFBYSxFQUFBO0lBQUFiLENBQUEsTUFBQWMsRUFBQTtJQUFBZCxDQUFBLE1BQUF3QixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBeEIsQ0FBQTtFQUFBO0VBQ1MsTUFBQXlCLEVBQUEsSUFBQ3FCLFVBQVU7RUFBQSxJQUFBbkIsRUFBQTtFQUFBLElBQUEzQixDQUFBLFFBQUE4QyxVQUFBLElBQUE5QyxDQUFBLFFBQUF5QixFQUFBO0lBQTNCRSxFQUFBLElBQUMsSUFBSSxDQUFXLFFBQVcsQ0FBWCxDQUFBRixFQUFVLENBQUMsQ0FBUXFCLElBQVUsQ0FBVkEsV0FBUyxDQUFDLENBQUUsSUFFL0MsRUFGQyxJQUFJLENBRUU7SUFBQTlDLENBQUEsTUFBQThDLFVBQUE7SUFBQTlDLENBQUEsTUFBQXlCLEVBQUE7SUFBQXpCLENBQUEsT0FBQTJCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUEzQixDQUFBO0VBQUE7RUFBQSxJQUFBNEIsRUFBQTtFQUFBLElBQUE1QixDQUFBLFNBQUE4QyxVQUFBO0lBQ05sQixFQUFBLEdBQUFrQixVQUF3RCxJQUExQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQUMsb0JBQW9CLEVBQWxDLElBQUksQ0FBcUM7SUFBQTlDLENBQUEsT0FBQThDLFVBQUE7SUFBQTlDLENBQUEsT0FBQTRCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUE1QixDQUFBO0VBQUE7RUFBQSxJQUFBNkIsR0FBQTtFQUFBLElBQUE3QixDQUFBLFNBQUFZLEVBQUEsSUFBQVosQ0FBQSxTQUFBd0IsRUFBQSxJQUFBeEIsQ0FBQSxTQUFBMkIsRUFBQSxJQUFBM0IsQ0FBQSxTQUFBNEIsRUFBQTtJQVYzREMsR0FBQSxJQUFDLEdBQUcsQ0FBYyxXQUFDLENBQUQsR0FBQyxDQUNqQixDQUFBakIsRUFFTSxDQUNOLENBQUFZLEVBRU0sQ0FDTixDQUFBRyxFQUVNLENBQ0wsQ0FBQUMsRUFBdUQsQ0FDMUQsRUFYQyxHQUFHLENBV0U7SUFBQTVCLENBQUEsT0FBQVksRUFBQTtJQUFBWixDQUFBLE9BQUF3QixFQUFBO0lBQUF4QixDQUFBLE9BQUEyQixFQUFBO0lBQUEzQixDQUFBLE9BQUE0QixFQUFBO0lBQUE1QixDQUFBLE9BQUE2QixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBN0IsQ0FBQTtFQUFBO0VBQUEsT0FYTjZCLEdBV007QUFBQSIsImlnbm9yZUxpc3QiOltdfQ== |