From 117b69a3dc37fe13495f422d88ee689c88cdcfc3 Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 4 Jun 2026 19:48:14 +0000 Subject: [PATCH 1/6] =?UTF-8?q?=F0=9F=A4=96=20fix:=20show=20delegated=20wo?= =?UTF-8?q?rkflow=20activity=20in=20sidebar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Roll descendant task activity up to parent workspace rows so slash workflow launchers stay visibly active without reusing generic streaming copy. Add focused sidebar, row, filtering, and task group tests for delegated activity states. --- _Generated with `mux` • Model: `openai:gpt-5.5` • Thinking: `xhigh` • Cost: `719628{MUX_COSTS_USD:-unknown}`_ --- .../AgentListItem/AgentListItem.test.tsx | 111 ++++++++++++++- .../AgentListItem/AgentListItem.tsx | 71 +++++++++- .../ProjectSidebar/ProjectSidebar.test.tsx | 57 ++++++++ .../ProjectSidebar/ProjectSidebar.tsx | 21 ++- .../ProjectSidebar/TaskGroupListItem.test.tsx | 63 +++++++++ .../ProjectSidebar/TaskGroupListItem.tsx | 18 ++- .../utils/ui/workspaceFiltering.test.ts | 74 ++++++++++ src/browser/utils/ui/workspaceFiltering.ts | 131 ++++++++++++++++++ 8 files changed, 540 insertions(+), 6 deletions(-) create mode 100644 src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx diff --git a/src/browser/components/AgentListItem/AgentListItem.test.tsx b/src/browser/components/AgentListItem/AgentListItem.test.tsx index 39eeb998ed..18dadc6c27 100644 --- a/src/browser/components/AgentListItem/AgentListItem.test.tsx +++ b/src/browser/components/AgentListItem/AgentListItem.test.tsx @@ -17,7 +17,10 @@ import type * as RuntimeStatusStoreModuleType from "@/browser/stores/RuntimeStat import type * as WorkspaceStoreModule from "@/browser/stores/WorkspaceStore"; import * as TooltipModule from "../Tooltip/Tooltip"; import * as WorkspaceStatusIndicatorModule from "../WorkspaceStatusIndicator/WorkspaceStatusIndicator"; -import type { AgentRowRenderMeta } from "@/browser/utils/ui/workspaceFiltering"; +import type { + AgentRowRenderMeta, + WorkspaceDelegatedActivity, +} from "@/browser/utils/ui/workspaceFiltering"; import type { StreamAbortReasonSnapshot } from "@/common/types/stream"; import type { FrontendWorkspaceMetadata } from "@/common/types/workspace"; import type { WorkspaceSelection } from "./AgentListItem"; @@ -241,6 +244,7 @@ function renderWorkspaceItem( depth?: number; rowRenderMeta?: AgentRowRenderMeta; subAgentConnectorLayout?: "default" | "task-group-member"; + delegatedActivity?: WorkspaceDelegatedActivity; completedChildrenExpanded?: boolean; onToggleCompletedChildren?: (workspaceId: string) => void; onSelectWorkspace?: (selection: WorkspaceSelection) => void; @@ -257,6 +261,7 @@ function renderWorkspaceItem( depth={options.depth ?? options.rowRenderMeta?.depth} rowRenderMeta={options.rowRenderMeta} subAgentConnectorLayout={options.subAgentConnectorLayout} + delegatedActivity={options.delegatedActivity} completedChildrenExpanded={options.completedChildrenExpanded} onToggleCompletedChildren={options.onToggleCompletedChildren} onSelectWorkspace={options.onSelectWorkspace ?? (() => undefined)} @@ -298,6 +303,110 @@ describe("AgentListItem", () => { mock.restore(); }); + test("shows active delegated workflow work on idle workspace rows", () => { + const { row } = renderWorkspaceItem({ + delegatedActivity: { + activeCount: 2, + queuedCount: 1, + workflowActiveCount: 2, + workflowQueuedCount: 1, + }, + }); + const rowView = within(row); + + expect(row.querySelector(".workspace-status-dot-active")).toBeTruthy(); + expect(rowView.getByText("Workflow running · 2 sub-agents active · 1 queued")).toBeTruthy(); + expect(rowView.queryByTestId(`workspace-status-indicator-${TEST_WORKSPACE_ID}`)).toBeNull(); + }); + + test("shows delegated workflow status ahead of coordinator streaming copy", () => { + mockWorkspaceSidebarState = createWorkspaceSidebarState({ canInterrupt: true }); + + const { row } = renderWorkspaceItem({ + delegatedActivity: { + activeCount: 1, + queuedCount: 0, + workflowActiveCount: 1, + workflowQueuedCount: 0, + }, + }); + const rowView = within(row); + + expect(row.querySelector(".workspace-status-dot-active")).toBeTruthy(); + expect(rowView.getByText("Workflow running · 1 sub-agent active")).toBeTruthy(); + expect(rowView.queryByTestId(`workspace-status-indicator-${TEST_WORKSPACE_ID}`)).toBeNull(); + }); + + test("shows active delegated work ahead of coordinator streaming copy", () => { + mockWorkspaceSidebarState = createWorkspaceSidebarState({ canInterrupt: true }); + + const { row } = renderWorkspaceItem({ + delegatedActivity: { + activeCount: 1, + queuedCount: 0, + workflowActiveCount: 0, + workflowQueuedCount: 0, + }, + }); + const rowView = within(row); + + expect(row.querySelector(".workspace-status-dot-active")).toBeTruthy(); + expect(rowView.getByText("1 sub-agent active")).toBeTruthy(); + expect(rowView.queryByTestId(`workspace-status-indicator-${TEST_WORKSPACE_ID}`)).toBeNull(); + }); + + test("keeps own question status ahead of delegated workflow work", () => { + mockWorkspaceSidebarState = createWorkspaceSidebarState({ awaitingUserQuestion: true }); + + const { row } = renderWorkspaceItem({ + delegatedActivity: { + activeCount: 1, + queuedCount: 0, + workflowActiveCount: 1, + workflowQueuedCount: 0, + }, + }); + const rowView = within(row); + + expect(row.querySelector(".bg-border-pending.border-surface-sky")).toBeTruthy(); + expect(rowView.getByText("Mux has a few questions")).toBeTruthy(); + expect(rowView.queryByText("Workflow running · 1 sub-agent active")).toBeNull(); + }); + + test("shows queued delegated workflow work without marking the row active", () => { + const { row } = renderWorkspaceItem({ + delegatedActivity: { + activeCount: 0, + queuedCount: 1, + workflowActiveCount: 0, + workflowQueuedCount: 1, + }, + }); + const rowView = within(row); + + expect(row.querySelector(".workspace-status-dot-active")).toBeNull(); + expect(rowView.getByText("Workflow queued · 1 sub-agent queued")).toBeTruthy(); + }); + + test("keeps own system errors ahead of delegated workflow work", () => { + mockWorkspaceSidebarState = createWorkspaceSidebarState({ + lastAbortReason: createSystemAbortReason(), + }); + + const { row } = renderWorkspaceItem({ + delegatedActivity: { + activeCount: 1, + queuedCount: 0, + workflowActiveCount: 1, + workflowQueuedCount: 0, + }, + }); + const rowView = within(row); + + expect(row.querySelector(".bg-content-destructive.border-surface-destructive")).toBeTruthy(); + expect(rowView.queryByText("Workflow running · 1 sub-agent active")).toBeNull(); + }); + test("keeps archiving feedback inline instead of rendering a secondary status row", () => { const { row } = renderWorkspaceItem({ isArchiving: true }); const rowView = within(row); diff --git a/src/browser/components/AgentListItem/AgentListItem.tsx b/src/browser/components/AgentListItem/AgentListItem.tsx index 7139ff6a3e..cc45041c9f 100644 --- a/src/browser/components/AgentListItem/AgentListItem.tsx +++ b/src/browser/components/AgentListItem/AgentListItem.tsx @@ -11,7 +11,10 @@ import { useWorkspaceUnread } from "@/browser/hooks/useWorkspaceUnread"; import { useRuntimeStatus } from "@/browser/stores/RuntimeStatusStore"; import { useWorkspaceSidebarState } from "@/browser/stores/WorkspaceStore"; import { stopKeyboardPropagation } from "@/browser/utils/events"; -import type { AgentRowRenderMeta } from "@/browser/utils/ui/workspaceFiltering"; +import type { + AgentRowRenderMeta, + WorkspaceDelegatedActivity, +} from "@/browser/utils/ui/workspaceFiltering"; import { cn } from "@/common/lib/utils"; import { TASK_GROUP_KIND, @@ -104,6 +107,7 @@ export interface AgentListItemProps extends AgentListItemBaseProps { /** Section ID this workspace belongs to (for drag-drop targeting) */ sectionId?: string; rowRenderMeta?: AgentRowRenderMeta; + delegatedActivity?: WorkspaceDelegatedActivity; completedChildrenExpanded?: boolean; onToggleCompletedChildren?: (workspaceId: string) => void; onSelectWorkspace: (selection: WorkspaceSelection) => void; @@ -150,6 +154,7 @@ function getVisualState(opts: { isArchiving: boolean; isWorking: boolean; isStarting: boolean; + hasActiveDelegatedWork: boolean; isUnread: boolean; isSelected: boolean; hasError: boolean; @@ -163,7 +168,7 @@ function getVisualState(opts: { if (opts.awaitingUserQuestion) { return "question"; } - if (opts.isWorking || opts.isStarting || opts.isInitializing) { + if (opts.isWorking || opts.isStarting || opts.isInitializing || opts.hasActiveDelegatedWork) { return "active"; } // Avoid unread flicker for the currently selected workspace while last-read @@ -248,6 +253,50 @@ function StatusDot(props: { ); } +function formatSubAgentCount(count: number, label: "active" | "queued"): string { + return `${count} sub-agent${count === 1 ? "" : "s"} ${label}`; +} + +function formatDelegatedActivityText(activity: WorkspaceDelegatedActivity): string | null { + const parts: string[] = []; + if (activity.activeCount > 0) { + if (activity.workflowActiveCount > 0) { + parts.push("Workflow running"); + } + parts.push(formatSubAgentCount(activity.activeCount, "active")); + } else if (activity.queuedCount > 0) { + if (activity.workflowQueuedCount > 0) { + parts.push("Workflow queued"); + } + parts.push(formatSubAgentCount(activity.queuedCount, "queued")); + } + + if (activity.activeCount > 0 && activity.queuedCount > 0) { + parts.push(`${activity.queuedCount} queued`); + } + + return parts.length > 0 ? parts.join(" · ") : null; +} + +function DelegatedActivityIndicator(props: { + workspaceId: string; + activity: WorkspaceDelegatedActivity; +}) { + const statusText = formatDelegatedActivityText(props.activity); + if (!statusText) { + return null; + } + + return ( +
+ {statusText} +
+ ); +} + function QuickArchiveButton(props: { displayTitle: string; onArchiveWorkspace: (button: HTMLElement) => void; @@ -432,6 +481,7 @@ function RegularAgentListItemInner(props: AgentListItemProps) { depth, sectionId, rowRenderMeta, + delegatedActivity, completedChildrenExpanded, onToggleCompletedChildren, onSelectWorkspace, @@ -603,6 +653,16 @@ function RegularAgentListItemInner(props: AgentListItemProps) { useWorkspaceStreamingStatusPhase(streamingStatusPhase); const isWorking = displayStreamingStatusPhase !== null && !awaitingUserQuestion; const hasError = lastAbortReason?.reason === "system"; + const hasActiveDelegatedWork = (delegatedActivity?.activeCount ?? 0) > 0; + const delegatedStatusText = delegatedActivity + ? formatDelegatedActivityText(delegatedActivity) + : null; + const hasDelegatedStatusText = delegatedStatusText != null; + const hasOwnLiveStatusText = + awaitingUserQuestion || + (displayStreamingStatusPhase !== null && !hasActiveDelegatedWork) || + isRemoving; + const shouldShowDelegatedStatus = hasDelegatedStatusText && !hasOwnLiveStatusText && !hasError; const visualState = getVisualState({ awaitingUserQuestion, isInitializing, @@ -610,6 +670,7 @@ function RegularAgentListItemInner(props: AgentListItemProps) { isArchiving: isArchiving === true, isWorking, isStarting: displayStreamingStatusPhase === "starting", + hasActiveDelegatedWork, isUnread, isSelected, hasError, @@ -617,6 +678,7 @@ function RegularAgentListItemInner(props: AgentListItemProps) { const isSubAgentRow = rowRenderMeta?.rowKind === "subagent"; const showsVisibleStatusDot = isStatusDotVisible(visualState, false, isSubAgentRow); const hasStatusText = + shouldShowDelegatedStatus || Boolean(agentStatus) || awaitingUserQuestion || displayStreamingStatusPhase !== null || @@ -1084,6 +1146,11 @@ function RegularAgentListItemInner(props: AgentListItemProps) { Mux has a few questions + ) : shouldShowDelegatedStatus && delegatedActivity ? ( + ) : ( void; @@ -316,6 +317,8 @@ function installProjectSidebarTestDoubles() { data-row-kind={props.rowRenderMeta?.rowKind ?? "unknown"} data-connector-layout={props.subAgentConnectorLayout ?? "default"} data-completed-expanded={String(props.completedChildrenExpanded ?? false)} + data-delegated-active={String(props.delegatedActivity?.activeCount ?? 0)} + data-delegated-queued={String(props.delegatedActivity?.queuedCount ?? 0)} > {displayTitle} {hasCompletedChildren && props.onToggleCompletedChildren ? ( @@ -616,6 +619,7 @@ function createWorkspace( taskStatus?: FrontendWorkspaceMetadata["taskStatus"]; title?: string; bestOf?: FrontendWorkspaceMetadata["bestOf"]; + workflowTask?: FrontendWorkspaceMetadata["workflowTask"]; } ): FrontendWorkspaceMetadata { return { @@ -633,6 +637,7 @@ function createWorkspace( parentWorkspaceId: opts?.parentWorkspaceId, taskStatus: opts?.taskStatus, bestOf: opts?.bestOf, + workflowTask: opts?.workflowTask, }; } @@ -911,6 +916,58 @@ describe("ProjectSidebar multi-project completed-subagent toggles", () => { }); }); + test("passes delegated activity from workflow descendants to parent rows", () => { + window.localStorage.setItem(EXPANDED_PROJECTS_KEY, JSON.stringify(["/projects/demo-project"])); + + const singleProjectRefs = [ + { projectPath: "/projects/demo-project", projectName: "demo-project" }, + ]; + const parentWorkspace = { + ...createWorkspace("parent", { title: "Parent workspace" }), + projects: singleProjectRefs, + }; + const workflowChild = { + ...createWorkspace("workflow-child", { + parentWorkspaceId: "parent", + taskStatus: "running", + title: "Workflow step", + workflowTask: { runId: "run-1", stepId: "step-1" }, + }), + projects: singleProjectRefs, + }; + const queuedGrandchild = { + ...createWorkspace("queued-grandchild", { + parentWorkspaceId: "workflow-child", + taskStatus: "queued", + title: "Queued follow-up", + }), + projects: singleProjectRefs, + }; + + projectContextValue = createProjectContextValue({ + userProjects: new Map([["/projects/demo-project", { workspaces: [] }]]), + hasAnyProject: true, + resolveNewChatProjectPath: () => "/projects/demo-project", + }); + + const sortedWorkspacesByProject = new Map([ + ["/projects/demo-project", [parentWorkspace, workflowChild, queuedGrandchild]], + ]); + + const view = render( + undefined} + sortedWorkspacesByProject={sortedWorkspacesByProject} + workspaceRecency={{ parent: Date.now(), "workflow-child": Date.now() }} + /> + ); + + const parentRow = view.getByTestId(agentItemTestId("parent")); + expect(parentRow.dataset.delegatedActive).toBe("1"); + expect(parentRow.dataset.delegatedQueued).toBe("1"); + }); + test("renders variants groups with a shared row and labeled members when expanded", async () => { window.localStorage.setItem(EXPANDED_PROJECTS_KEY, JSON.stringify(["/projects/demo-project"])); diff --git a/src/browser/components/ProjectSidebar/ProjectSidebar.tsx b/src/browser/components/ProjectSidebar/ProjectSidebar.tsx index 3c54580f63..4bd9509082 100644 --- a/src/browser/components/ProjectSidebar/ProjectSidebar.tsx +++ b/src/browser/components/ProjectSidebar/ProjectSidebar.tsx @@ -50,6 +50,7 @@ import { formatDaysThreshold, AGE_THRESHOLDS_DAYS, computeWorkspaceDepthMap, + computeDelegatedActivityByWorkspaceId, filterVisibleAgentRows, computeAgentRowRenderMeta, findNextNonEmptyTier, @@ -1619,6 +1620,16 @@ const ProjectSidebarInner: React.FC = ({ [projectPathsSignature, projectOrder] ); + const delegatedActivityByWorkspaceId = computeDelegatedActivityByWorkspaceId( + Array.from(sortedWorkspacesByProject.values()).flat(), + { + isWorkspaceLiveActive: (workspaceId) => { + const signal = getWorkspaceAttentionSignal(workspaceStore, workspaceId); + return signal?.isWorking === true; + }, + } + ); + const singleProjectWorkspacesByProject = new Map(); const multiProjectWorkspacesById = new Map(); const workspaceAttentionById = new Map(); @@ -1626,7 +1637,11 @@ const ProjectSidebarInner: React.FC = ({ for (const [projectPath, workspaces] of sortedWorkspacesByProject) { const singleProjectWorkspaces: FrontendWorkspaceMetadata[] = []; for (const workspace of workspaces) { - workspaceAttentionById.set(workspace.id, workspaceHasAttention(workspace)); + workspaceAttentionById.set( + workspace.id, + workspaceHasAttention(workspace) || + (delegatedActivityByWorkspaceId.get(workspace.id)?.activeCount ?? 0) > 0 + ); if (isMultiProject(workspace)) { if (multiProjectWorkspacesEnabled) { multiProjectWorkspacesById.set(workspace.id, workspace); @@ -1815,6 +1830,7 @@ const ProjectSidebarInner: React.FC = ({ 0 } rowRenderMeta={rowRenderMeta} + delegatedActivity={delegatedActivityByWorkspaceId.get(metadata.id)} completedChildrenExpanded={expandedCompletedParentIds.has( metadata.id )} @@ -2174,6 +2190,9 @@ const ProjectSidebarInner: React.FC = ({ sectionId={sectionId} rowRenderMeta={rowRenderMeta} subAgentConnectorLayout={subAgentConnectorLayout} + delegatedActivity={delegatedActivityByWorkspaceId.get( + metadata.id + )} completedChildrenExpanded={expandedCompletedParentIds.has( metadata.id )} diff --git a/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx b/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx new file mode 100644 index 0000000000..27185ad6ac --- /dev/null +++ b/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx @@ -0,0 +1,63 @@ +import "../../../../tests/ui/dom"; + +import { afterEach, beforeEach, describe, expect, test } from "bun:test"; +import { cleanup, render } from "@testing-library/react"; +import { installDom } from "../../../../tests/ui/dom"; +import { TaskGroupListItem } from "./TaskGroupListItem"; + +function renderTaskGroup(overrides: Partial> = {}) { + return render( + undefined} + {...overrides} + /> + ); +} + +describe("TaskGroupListItem", () => { + let cleanupDom: (() => void) | null = null; + + beforeEach(() => { + cleanupDom = installDom(); + }); + + afterEach(() => { + cleanup(); + cleanupDom?.(); + cleanupDom = null; + }); + + test("marks groups with running members as in progress", () => { + const view = renderTaskGroup({ runningCount: 2, queuedCount: 1 }); + + const groupRow = view.getByTestId("task-group-best-of-demo"); + + expect(groupRow.dataset.running).toBe("true"); + expect(view.getByTestId("task-group-status-icon").className).toContain("text-content-success"); + expect(groupRow.textContent).toContain("2 running"); + }); + + test("keeps queued-only groups pending instead of active", () => { + const view = renderTaskGroup({ queuedCount: 1 }); + + const groupRow = view.getByTestId("task-group-best-of-demo"); + + expect(groupRow.dataset.running).toBe("false"); + expect(view.getByTestId("task-group-status-icon").className).not.toContain( + "text-content-success" + ); + expect(groupRow.textContent).toContain("1 queued"); + }); +}); diff --git a/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx b/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx index a56dc43eb4..a7fbf959ed 100644 --- a/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx +++ b/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx @@ -26,6 +26,7 @@ interface TaskGroupListItemProps { } export function TaskGroupListItem(props: TaskGroupListItemProps) { + const hasRunningWork = props.runningCount > 0; const paddingLeft = getSidebarItemPaddingLeft(props.depth); const statusParts: string[] = []; if (props.runningCount > 0) { @@ -51,9 +52,11 @@ export function TaskGroupListItem(props: TaskGroupListItemProps) { aria-expanded={props.isExpanded} aria-label={`${props.isExpanded ? "Collapse" : "Expand"} task group ${props.title}`} data-testid={`task-group-${props.groupId}`} + data-running={hasRunningWork} className={cn( "bg-surface-primary relative flex items-start gap-1.5 rounded-l-sm py-2 pr-2 pl-1 select-none transition-all duration-150 hover:bg-surface-secondary", props.sectionId != null ? "ml-2" : "ml-0", + hasRunningWork && "bg-surface-secondary", props.isSelected && "bg-surface-secondary" )} style={{ paddingLeft }} @@ -76,12 +79,23 @@ export function TaskGroupListItem(props: TaskGroupListItemProps) { style={{ transform: props.isExpanded ? "rotate(90deg)" : "rotate(0deg)" }} /> -
+
- + {formatTaskGroupHeader(props.kind, props.totalCount, props.title)} diff --git a/src/browser/utils/ui/workspaceFiltering.test.ts b/src/browser/utils/ui/workspaceFiltering.test.ts index 5983a49781..431282de97 100644 --- a/src/browser/utils/ui/workspaceFiltering.test.ts +++ b/src/browser/utils/ui/workspaceFiltering.test.ts @@ -6,6 +6,7 @@ import { buildSortedWorkspacesByProject, computeWorkspaceDepthMap, computeAgentRowRenderMeta, + computeDelegatedActivityByWorkspaceId, filterVisibleAgentRows, } from "./workspaceFiltering"; import type { FrontendWorkspaceMetadata } from "@/common/types/workspace"; @@ -19,6 +20,7 @@ interface WorkspaceFixtureOptions { parentWorkspaceId?: string; taskStatus?: FrontendWorkspaceMetadata["taskStatus"]; reportedAt?: string; + workflowTask?: FrontendWorkspaceMetadata["workflowTask"]; } const createWorkspace = ( @@ -48,6 +50,7 @@ const createWorkspace = ( parentWorkspaceId: options.parentWorkspaceId, taskStatus: options.taskStatus, reportedAt: options.reportedAt, + workflowTask: options.workflowTask, }; }; @@ -617,6 +620,77 @@ describe("buildSortedWorkspacesByProject", () => { }); }); +describe("delegated workspace activity roll-up", () => { + it("rolls active workflow-owned descendants up to every ancestor", () => { + const workflowTask = { runId: "run-1", stepId: "step-1" }; + const workspaces = [ + createWorkspace("parent"), + createWorkspace("workflow-child", { + parentWorkspaceId: "parent", + taskStatus: "running", + workflowTask, + }), + createWorkspace("grandchild", { + parentWorkspaceId: "workflow-child", + taskStatus: "awaiting_report", + }), + createWorkspace("queued-grandchild", { + parentWorkspaceId: "workflow-child", + taskStatus: "queued", + }), + createWorkspace("reported-grandchild", { + parentWorkspaceId: "workflow-child", + taskStatus: "reported", + }), + ]; + + const activityByWorkspaceId = computeDelegatedActivityByWorkspaceId(workspaces); + + expect(activityByWorkspaceId.get("parent")).toEqual({ + activeCount: 2, + queuedCount: 1, + workflowActiveCount: 2, + workflowQueuedCount: 1, + }); + expect(activityByWorkspaceId.get("workflow-child")).toEqual({ + activeCount: 1, + queuedCount: 1, + workflowActiveCount: 1, + workflowQueuedCount: 1, + }); + expect(activityByWorkspaceId.has("reported-grandchild")).toBe(false); + }); + + it("deduplicates duplicate workspace metadata and ignores cycles", () => { + const workspaces = [ + createWorkspace("parent"), + createWorkspace("child", { parentWorkspaceId: "parent", taskStatus: "running" }), + createWorkspace("child", { parentWorkspaceId: "parent", taskStatus: "running" }), + createWorkspace("cycle-a", { parentWorkspaceId: "cycle-b", taskStatus: "running" }), + createWorkspace("cycle-b", { parentWorkspaceId: "cycle-a", taskStatus: "running" }), + ]; + + const activityByWorkspaceId = computeDelegatedActivityByWorkspaceId(workspaces); + + expect(activityByWorkspaceId.get("parent")?.activeCount).toBe(1); + expect(activityByWorkspaceId.has("cycle-a")).toBe(false); + expect(activityByWorkspaceId.has("cycle-b")).toBe(false); + }); + + it("uses live sidebar activity when task metadata lags", () => { + const workspaces = [ + createWorkspace("parent"), + createWorkspace("child", { parentWorkspaceId: "parent" }), + ]; + + const activityByWorkspaceId = computeDelegatedActivityByWorkspaceId(workspaces, { + isWorkspaceLiveActive: (workspaceId) => workspaceId === "child", + }); + + expect(activityByWorkspaceId.get("parent")?.activeCount).toBe(1); + }); +}); + describe("sub-agent row render metadata", () => { it("assigns middle/last connector positions for a parent with three active children", () => { const flattened = [ diff --git a/src/browser/utils/ui/workspaceFiltering.ts b/src/browser/utils/ui/workspaceFiltering.ts index c0c404db38..93c99d1d4b 100644 --- a/src/browser/utils/ui/workspaceFiltering.ts +++ b/src/browser/utils/ui/workspaceFiltering.ts @@ -114,6 +114,137 @@ export function computeWorkspaceDepthMap( return Object.fromEntries(depths); } +export interface WorkspaceDelegatedActivity { + activeCount: number; + queuedCount: number; + workflowActiveCount: number; + workflowQueuedCount: number; +} + +interface DelegatedActivityOptions { + isWorkspaceLiveActive?: (workspaceId: string) => boolean; +} + +function createEmptyDelegatedActivity(): WorkspaceDelegatedActivity { + return { + activeCount: 0, + queuedCount: 0, + workflowActiveCount: 0, + workflowQueuedCount: 0, + }; +} + +function addDelegatedActivity( + target: WorkspaceDelegatedActivity, + source: WorkspaceDelegatedActivity +): void { + target.activeCount += source.activeCount; + target.queuedCount += source.queuedCount; + target.workflowActiveCount += source.workflowActiveCount; + target.workflowQueuedCount += source.workflowQueuedCount; +} + +function hasDelegatedActivity(activity: WorkspaceDelegatedActivity): boolean { + return activity.activeCount > 0 || activity.queuedCount > 0; +} + +function isActiveDelegatedStatus(status: FrontendWorkspaceMetadata["taskStatus"]): boolean { + return status === "running" || status === "awaiting_report"; +} + +/** + * Roll active descendant task state up to parent rows for sidebar attention. + * The child itself is counted for its ancestors, while each child row only + * receives counts for its own descendants so rows don't double-count themselves. + */ +export function computeDelegatedActivityByWorkspaceId( + workspaces: readonly FrontendWorkspaceMetadata[], + options: DelegatedActivityOptions = {} +): Map { + const workspaceById = new Map(); + for (const workspace of workspaces) { + assert( + workspace.id.length > 0, + "computeDelegatedActivityByWorkspaceId: workspace id is required" + ); + workspaceById.set(workspace.id, workspace); + } + + const childrenByParentId = new Map(); + const roots: FrontendWorkspaceMetadata[] = []; + for (const workspace of workspaceById.values()) { + const parentId = workspace.parentWorkspaceId; + if (!parentId || !workspaceById.has(parentId)) { + roots.push(workspace); + continue; + } + + const children = childrenByParentId.get(parentId) ?? []; + children.push(workspace); + childrenByParentId.set(parentId, children); + } + + const activityByWorkspaceId = new Map(); + const visited = new Set(); + + const getIsLiveActive = (workspaceId: string): boolean => { + try { + return options.isWorkspaceLiveActive?.(workspaceId) === true; + } catch { + // Sidebar store teardown can race workspace metadata updates. Ignore the + // live hint rather than making a malformed descendant brick rendering. + return false; + } + }; + + const traverse = ( + workspace: FrontendWorkspaceMetadata, + ancestorWorkflowOwned: boolean, + path: Set + ): WorkspaceDelegatedActivity => { + if (path.has(workspace.id)) { + return createEmptyDelegatedActivity(); + } + if (visited.has(workspace.id)) { + return activityByWorkspaceId.get(workspace.id) ?? createEmptyDelegatedActivity(); + } + + path.add(workspace.id); + const ownWorkflowOwned = ancestorWorkflowOwned || workspace.workflowTask != null; + const descendantActivity = createEmptyDelegatedActivity(); + + for (const child of childrenByParentId.get(workspace.id) ?? []) { + const childWorkflowOwned = ownWorkflowOwned || child.workflowTask != null; + if (isActiveDelegatedStatus(child.taskStatus) || getIsLiveActive(child.id)) { + descendantActivity.activeCount += 1; + if (childWorkflowOwned) { + descendantActivity.workflowActiveCount += 1; + } + } else if (child.taskStatus === "queued") { + descendantActivity.queuedCount += 1; + if (childWorkflowOwned) { + descendantActivity.workflowQueuedCount += 1; + } + } + + addDelegatedActivity(descendantActivity, traverse(child, childWorkflowOwned, path)); + } + + path.delete(workspace.id); + visited.add(workspace.id); + if (hasDelegatedActivity(descendantActivity)) { + activityByWorkspaceId.set(workspace.id, descendantActivity); + } + return descendantActivity; + }; + + for (const root of roots) { + traverse(root, root.workflowTask != null, new Set()); + } + + return activityByWorkspaceId; +} + export interface AgentRowRenderMeta { depth: number; rowKind: "primary" | "subagent"; From 0af5448bf637a3659a334b48fdaab4582c8f0c55 Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 4 Jun 2026 20:44:48 +0000 Subject: [PATCH 2/6] =?UTF-8?q?=F0=9F=A4=96=20fix:=20tighten=20delegated?= =?UTF-8?q?=20sidebar=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dogfood-output/workflow-sidebar/console.txt | 38 +++++ dogfood-output/workflow-sidebar/errors.txt | 0 .../screenshots/before-run-filled.png | Bin 0 -> 61933 bytes .../workflow-sidebar/screenshots/before.png | Bin 0 -> 55679 bytes .../screenshots/workflow-completed.png | Bin 0 -> 89564 bytes .../workflow-running-parent-active.png | Bin 0 -> 101421 bytes .../videos/slash-workflow-sidebar.webm | Bin 0 -> 1276507 bytes .../AgentListItem/AgentListItem.test.tsx | 17 ++- .../AgentListItem/AgentListItem.tsx | 14 +- .../ProjectSidebar/ProjectSidebar.test.tsx | 143 ++++++++++++++++++ .../ProjectSidebar/ProjectSidebar.tsx | 22 +-- .../ProjectSidebar/TaskGroupListItem.test.tsx | 3 + .../ProjectSidebar/TaskGroupListItem.tsx | 7 +- .../utils/ui/workspaceFiltering.test.ts | 22 +++ src/browser/utils/ui/workspaceFiltering.ts | 32 +++- 15 files changed, 276 insertions(+), 22 deletions(-) create mode 100644 dogfood-output/workflow-sidebar/console.txt create mode 100644 dogfood-output/workflow-sidebar/errors.txt create mode 100644 dogfood-output/workflow-sidebar/screenshots/before-run-filled.png create mode 100644 dogfood-output/workflow-sidebar/screenshots/before.png create mode 100644 dogfood-output/workflow-sidebar/screenshots/workflow-completed.png create mode 100644 dogfood-output/workflow-sidebar/screenshots/workflow-running-parent-active.png create mode 100644 dogfood-output/workflow-sidebar/videos/slash-workflow-sidebar.webm diff --git a/dogfood-output/workflow-sidebar/console.txt b/dogfood-output/workflow-sidebar/console.txt new file mode 100644 index 0000000000..4e706c088a --- /dev/null +++ b/dogfood-output/workflow-sidebar/console.txt @@ -0,0 +1,38 @@ +[info] %cDownload the React DevTools for a better development experience: https://reactjs.org/link/react-devtools font-weight:bold +[debug] [Telemetry] trackAppStarted {isFirstLaunch: true, vimModeEnabled: false} +[log] Service Worker registered: {installing: ServiceWorker, waiting: null, active: null, navigationPreload: NavigationPreloadManager, scope: "http://localhost:38037/", ...} +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [vite] hot updated: /src/browser/styles/globals.css +[debug] [vite] hot updated: /src/browser/components/AgentListItem/AgentListItem.tsx +[debug] [vite] hot updated: /src/browser/styles/globals.css +[debug] [vite] hot updated: /src/browser/styles/globals.css +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [vite] hot updated: /src/browser/styles/globals.css +[debug] [vite] hot updated: /src/browser/styles/globals.css +[debug] [vite] hot updated: /src/browser/styles/globals.css +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 +[debug] [fetch] Success for project +[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 diff --git a/dogfood-output/workflow-sidebar/errors.txt b/dogfood-output/workflow-sidebar/errors.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dogfood-output/workflow-sidebar/screenshots/before-run-filled.png b/dogfood-output/workflow-sidebar/screenshots/before-run-filled.png new file mode 100644 index 0000000000000000000000000000000000000000..094aab94641fdf2fdc418eb5ef6119f655d82f8c GIT binary patch literal 61933 zcmce;Wl&sA*Y`UKS0H$TYe+(HcNi=L3+`?S?htH(2T#!8?hNkk65QS08Dy}*2AOwq zU(fyNed?U^>2y&=SIz8A@7~?3*ZQyD;+L|bG&Tkq1^@uSmia893IM!7cAtyAe2)B; zKohkO0K5XoNQkL_Pdi?H@ttCK33Wq;7Yc>WHOi&xrZjtIKYtN={|pBTM?qs#EK-@D znackLLbh=PRI!D*DnBO1B{LN~Z+cB`lx(qs|7x&j5hN z`6?r?p5CS3&j3k(BuJ5e`)_;q1Az5!@6)qqB>(mTpFd~+xA*eJKVSasy}~fY>g1lB zT3el(TwPrjW#{L%Mu{x^85fw8lNOg#Iup@9H>p6~s%C-$0Q~rMa0tnjcJM`PkgRur zLJA9i1|}ud=J5-Y0AA6)>|_^K=c%3SV8q}gknQEq&20LplknWmMp{WrsUsnD<<^AU zSVEo9jHXwhL6jFcJBkDw)<>y3W@e^&G^CBM;l_4W1!v3S^3Mo5T0HL$CKnaZTEP8F zq<|luxX;<;QR1|U-jrl}1rW%t8#+zl!3yoHE9`BjRiitKs_N=NQymyioP0d>%Y5wY z+RD0%Yio;hlZ(^K{ikdU?^xOBsOgyOtP6)<_Y!jfI%lR9rs@$h@hNcH*TKpA+sFI7 z0e;_j>Rhj{aM{(cUR>d1Z7*I59$7I~qc%V>PzY@y@VHY_A+fhR zJvcaS$4fS~`I=XjJp=&AquEg!)L|>+qXLgJVJZoF>hEa#ICv)VjTxMk=;=#wvq z&AG{TEYGu0kWs+55AN=K${&DdwHuUa7_GG!XV4A&{yG0bsrT0M!QA+gb^Nc*+}dq*M&&)`ofI zot@yHJ>jh}<b@t{%yXq+QQo6I%M%(FMhdYmOFCtF=W{ZP7au1{9&_!0<;wm1LEnmnBetle z!ARD4g!nMA<4tzTiT~@8MAYnO{Zz~Gg?TyEj0!x2jNR774AYThSLzz7LSDRq9-8w! zQyxi>P4=+`do+c(sfx>gu3dkIrJH@yEpH@|4tsuXko}eoaS1|9&&+(Wmyy?h?o56m zR}vCT;w;W`Jw8?rEu4AIp`yYj?fi7~dtBb=62jt#HZF~e{g`^A_6#5*%u*L2XK^a( z9n`&u+gkQX>t3OG&DkzYpR{s*1Rs zs4Vn`z#}_Z;M=PKcQtQ2MoXxGkJaTx6Y-xdvpjIAJXX^3M-witsq}3Ke{|pO?A3@1 zm)USfDT9b7z!7aV86fYO?m{2ezV>FZHqd_>GR&dg>eSFcVC&37TUT3cZ}uZ9C+#@s zEYO7beSLX~(j(?@abfBO`);9g_BmZZF4RcC$nj&S8!kaA&imH;Sr`P?#cP4H-@w*%JEYg2O2$Ym)cBQSdBYDoOwk}bFXO_Ala5VN_VZ6q;9@vWy`EGFkgFld=pM}Z zN!v?TT5Eh`BP+hhFDM#1Af|7wt&b5ludG2tNJwfi@*+rbc;3$a*3WJ;dNQcDH;m|? z)~iF`LPSH0@15Jtc!w8ami*L5Thp-W>q)T|;!@wi;WYKsn}U*jesPhfdv0$wF@uYH z!lJ)3Qlav>*Y!iM@I7K^n2no{%l!nrZ&%vLR*=^EfGcwMo=b3fpmSp~#O-z*2F@tq zwI3ZFF2E7gqJs0i=l`s7zPA>j4kdbsovMiVWv^s}04KpD+wqqK<;U5S1{thQ4yNW+ z4L0nQ`f;w)BM6A`^~g62HCG*XR985CEldm|*lsdvxTZ_2EVC2l`kJ5Y=eTXZ8!Nhf zBecWB7sfWSkYiYLhrq6dsFHP+HA_meTNlPv+K;WMz~bS{(U`ES=C8jH8yl}& z5pFxJd5yPY*kQYLEKcj>s0G&?L&&Ah4kk#{(wOB9{rU62vWU!bU4IiJ-#>MXrNBSe zYTRLy*}f|RZ+^eyjW=WyyLWfiWyf~*x#$vymP#BI3CYW5GCpQ|6*1S7Pomy-_F`7` z1>F_Wtd);NX`hV@i26Kc+N}K?lpIbg8E7qtCirM(*%zOgs8*Au>PgRaabC))Rbvz` z>1b-mxtm`-7rj1UqdBCh5niZfq~vHL$xzl={y11)1db@KJ{AB|8mtl!7ij~#r;=nR zWz$lc-~ActC?UYfsk+tbC^zVr z9`Q2}1~4KP#DprlIQq>=Icav?PQsx{w}gL6TXQhf#8+A7qw4c^2{Jazo@sdwpBxcY z3okDTV#+cy0JuQ9V(1D6AqYAJVOAbcm%LW6UZP@okxiZ!r|a<0=X16kYV$siATXi1 zl*e|s&L@9Q)OjQ6NVODUr-zy7ZMyxj41wu>Iio1@;!KaHU5(*HZ5`c#VdwFhTljsZ zVg~w>4}zAMu0PSx`)IadZTa%@2Dr4Oes5=Q$vlz;o& zKPurooU1t)t#h$GHB?lb&LV_-d4#skEfCJ|gJ;wzj}4YfY;974`4w#s&p`~(P8#3V z$C!7rz3=g@6xf~;>J|C)@Ub;|*A)W~Z8Z6{BUO{LLFB@W)~Q5y0_H@TAIu0_mdFw{ z`1&k}RLnKCqSvViBt2{2a5ct*m->j9Oza3Hn||i4JXDiu(A=rL`xWPTG6EY9q%jCp zTyLBRTT_dxHJQdNq_?xnDWL~N=^wpxv~l6q2nj|V52B?X7}Py)=SKHFnIdMQyvp@P z-`ksvE;1peR;|W>w2^Kc$*)WKHz;P2$Qw<>c`~3#)0)wm?WpbeSaxp-y2d3;ow9|D zPiyV$nK?tq3o0^2Y*8g7CA8RJEdg}mllJ4Yjp~f3^h__e?UFArF+`qrrgL(PP4KrR z{rs2`*i7ybO`yzzf{^4Qh&GBL22Mgu9PH}K44QL#lQF_p^reMxcUS*-gn0Bi?RLX6 z$|$d`I)s#O@Wvpt>Gi_e93H659C0o9g1~ zKNAzm#!_#*k8KUwzRdL1o;tnbX65Q=%rBP_S6J+xTldXVZ+`u>TKZDTRc6i z#M11V<`-VBrOq#n{P@F5{=+$JsB9D~c{$cdRYzI%YG;nH1vl+$p9tV?|NM)IcUeJw zc^&{UzgXf^zS5#FW!PI1Ww+Nb$jUsesb${idd1Q3+0hj51Sa|oaj|ugqL!GefK>}A zlfx#uZJOidp7yT^C`~%8x!KuenjD-t`C_(pWITL^5l_g2eLRVgkeqGrYCz5PLb*4C z^jpvw|3U6`XVEZeQ*S+yl*@tX_#`GwM=Inpmg|yAyW=OXjjr2QF{|DDUFT$(kCRKv zr>Ek<#Y3UB1qYpiLnbEXj)zY2&U$FBTC+T|GM^8u4ekxIN40cyxSo<0hqL!bF7((P zBD33lOkHf{ZG~QZsYkW3GdusorF2Ga^s+stB=>P8HcI72-pHZ&yuP+pRSuUgu^H~0 zW(0c2ANb_$xJ;ymzrDAYuy5$Y(vek|T~$?E`jAZL#-c}YaJpY(KZ`+X1=aHjE~~5M zrVNhBI%fy@C$_nN_98MH22`MXJ5R_SoKQ7VBrcA&?3C8!I;Zso1Fh9tXO;KXc3Wy% z8fu#}Xie?@2t&_$`T#y$H14F*a^l5PYJhy-WkF9=RI~sS&Vw%AtYVQ6YT0f^nPKG| zb3mY>np{g@Bfp01O=feo{W&u)O3B&SU=Ch+ehR1a<$-7D6dR@ddb9PDc2&ars)~~I zmVjC4qlFE5%7IO~F}m~e!Ej{cY7HcD?YP$D?0yncq3i_LLEp=QO_5_}_5kPf5%OgM z#Rf$qj`j%cCCOSlHX({-M_QXxC@+SzdR!Y;#85UeIvEPR@b4#v`aeBA5gU5_QiYZv zyusDg7a>%>wpMnl9#l7ZdEWQ9mX?;`_&>xyl{3=Quj~Rw96^}ak1NLz<-kIwh_hQH=ZzThmo<$SaV+MF&) zf$6T=2Or1Bt>_aagHWt6x%3mr!6_upK-mf8_09ReTEMXviMMsr;<_K^M|=F)K}#+4 zXScK@`Sr?ZUWc&N#ii*97xM1Qt4u*3`6VsmOboo``rId8pL6>8P5V!dDRIqTW znzrJ)9?slKlp+=J@<0#PliFN9s(Gsug`^;`eV9nH-`K(GV%kW|RuSyM+-ttat2`p& z_Red%x@ns#6B#AtI?%!sz`~x4%$QQjM1&0i<$a;w_>afg!)qi9W#!T0i)ufAO95Jb z9DZ$*D}L-t(Nb7e?zA4-q%I@)jUgt7(~dYrFBtSQeLY6jFuraZ9L5mF*jCHu{P2nY z#YURHsvY+1zFT?j6O~U(R5iDECM7yX`u53=&}Kzd>ZcHszGgy3yHbsLT=8S!*DGv} z@E@&d@_P4ybG)7><;9F3M0HV9(7NassBM=y0VpE8JYI^Bps__q{g(2|Wp{2)6Q1a6 z&CS5b0NHGNvtw$u*!5x?n%+jCC8euss5#Upkti&R2*wz)R&|oq9Q!sqtA6K!c;RQ! z=*)90#OF31CG5!F)7$p7Yv3YoBQGS$X5ZS@@Hn?z$m>R3!5t5z{VYGaxzC)%)eJtC z1G}G3E+J1G%eVJ9QtrvASklAnRG$Q&ep|YFxM;{7bK7%a{=U;dck(%qE{`sMzpf56 z={G5;Dh)mj%fwBeo>e!QW;@AJgO@p2uU46NQFid4^eTq7cTfOtF0-?w8<_DQ#@cFp zgg&FaOxgDk7`>=0c=6zN%5Zo$Qy-6vM_q33t>qcZPWn&v##SV;v9VoUT^-uao7;pz z7Qu|oq6j$oiw!d-&8hi`<pL?#=M zCgcj=juLfob9p$vWHUC|>gnm#tk7?=nnpFBLLS1Eo@Tt}!7iQP!qU*^?5DOZg(I!T zy2&*{6cEY#K`4s4tu}Ae{i9+uWPCeu&C6QPO-x7Hf|%w#9GbnQVC=zq@?$dd@8A6BMZuF*0j|WZa<(9Ohwu@7>IlPGISzfd!IyGc; zcs#v%;bWhn$Q#dtz5mGs>7N}q|Cqy~EF|NN>6l0F{zuwzUdG6%BOpR&gBb*WFY+CZ zLFt`;^*dTio+k-gZhvCa4K5_$&XCjCnzAOyUD9BbLWcRmK(?bc>ha-zU1c(|dhjW> zOOTH_`@`KlDRAT_%AmA9vi$6}md3etfoH?i1Q{-*8L4)mZp<9}Pb{dXI1jxI+yBmZ zF*Y2gFc>K-Ur}zuIn`1hOqxW&NBKjtaaTgvV{wwaJ*WApo$#`dj%I2M`o<@<{po3K zO(ayiI~c4=7td-XCt7bt>KQAwwnmGzQRMfJRg9fC4Y|Zps2h88*P=@QOea!!(^S6Z z0}6y$w;tC(aS~wX3X~5HVvI-AbT7GByD;s+gvGZ@Q0q!1NxMQLPR;0||(vJKqcjZyw(G_QE|6L64S&DkY?Ch}$t^ zlcY`1n7z8fRn9WwI$>AeJ2`}cmjuDjhpbA7Z=b%i|E$MsnLS8);k#WAa#Q2~3T5?} zosj#abB@y!Zj-7fA;Df*wfa5>AGmyNzcsoLxK~`(mi}aCYinLkr*H?d9PuDgpHoGjVQ&MeSZWc>yfzLZC3YHCmke_QGw?jGD6L*UWQ zMjte$9tJYKJNA@TSN~9vm(ne)5Zw|Fu``@rkX;`Q+O6BhDk&(6F;GuV(K5Hnd%PcH z*Hc^7DW9WGB|Rz*q1nsZjlTox1k!!$$RNI5s8Ra$Q@%+Hr*l<${f~-_PDbQP1MaL3 z0}2&C<)_&%L!B-Q9Lyr#!SRDEtr`c&g&Ff8d>rs;8xqFG$T2)U80w474vsAB89CUo zWt>SOKYDRXMkPSycJDA4ngU;MtTU=(8Lj}Y3-`0C!dL5oUt%2O>Ho;@xfUHKuGUqw z`j*qY-dn$;$R(?&s+wH$zW4O-(AQ7XD%TgoJw!m49n{RekEUphjg4(>ZLNDF+}#wR zYDyxLb4&26hV`+euMKubj}h1r)z#HUb7eeSJOVx!>e|}3CQ&D32UNFTZ|qrEMg^SB zxnjeu2?>5smNi-6K!ts(%B##anWJJtQ;-8IWT*fWd+Ey}y}Kq0WwL{pP&%VXd5m9* zIly;zAxtVVF)?^ZSq>Lwkl&_YB3$;ch2b$9AE%|p%E(+++v+3Mm6sFO?tUkvTeyys zS;IY7kh0%3oyg#O1Ri^aPX>%-oamIR3g7zLK-Jrf3pRWX0ek z^j%k4+;#LlV&xB~>}?!_RAitl4^ZF((7nDOHZSjXcR)fmb$I{2GIpWS7HZ2@Kn3BV z0VeyO7i|p8T`Q7VXed0MN{@Bi4oDI93i^I%ZVYdc7CZ8rIxVO;W~495Tbc?5tSh-u zc_D((oTK89QTEFxW14s`h{;4M2$jZW?5ak;2tp;zcH6ix`P%R2Ei4m(;c@MUlzGeI za*F79!sG||DO_CV_gXw|WeQh@G&tOdq{Otg2?$M*?(5=+j1izKTIK;&AjphBG58Tj z%*?KP@^X_P$I{V93EmkW8^71z^v>LJ=Z1iW8@^S=!nqKuR{O1W))vZG-T*c zK}FAm?F4z$b1%$Of@wW*2V3ArNiGLFH|GW~FGqu{FXu&7O%Z#6ZyxHT(UMNLR|DO( z-q&7JY#|GaplN7^jCGuFmdM z_SGb^X#2L#>?tI9IED~Sy}J)aMp@!I?W~{+G#1*ehv!0LHO3YluB1SsjA1#B-6akcDL`X;#ak65#qT=l$U5#8@z{%~k3{84e?YQU17k z%9+@I)gW!*GC^2Bz2Catvg?7$_i?*3J2!>wFncq)eGRE&Xx z@AEK|JaW7u>hmzyJ1C|n$93?BMh>&)XW;_ZKI_Oui)M?aisld-z47S_h5Pr#jC?AG zkmEzv;=$v;1go#|0ox4Cxl0driYZEMmaHt zX5$H4DNi55{`sQYLXpnQ+V_=>+W0%^_miAtThwdky4+@IUtduK6pt^g*jhx9w-&|j zYbkkh66x#AO;Z~wF;;<^ACU%AwNuVv-syJ9g4t!cv6(&)x!-M<&I;mOV59WGJNN7S zIkzR!EQ1qDo97JFU~}R*KIieS*Sn8nvHoey&LI;SD4rPHu4-aWkdu;wTYtP$MlN3^ z#wJpFrnQqxor74!QNScWer%c~ZhdNK zrw{bHHY8b3T@e!W2akqg$xd!)#2HlCPLR?0IE(H|$hgUxaT#T-WGhSbVi+I_E&JH) z36J5rG;dx$vMk;uPCT+HO4OQF{gO{o+J91xnYP;{FCu%vjRI5F{9RI7R^aVZoL^W( zpF#@JO(s*WEC|5l)`F#E(>`$FV_$I>O$pBNPgi5MG<(!n7<|_2nOssAGYqz7q?Y~@ zsyGDuR+pRZdp(}@o5T$nl<5Vu;YSo@v!2YVp-~1TB*ybj%w@Hy$>9gcEUjp`Vk09# z2Avn`_h6XkJLX8YowVZ-D~7RP3BCr`35)0rv(#EHahmtnYLOT->ZfMkE6$V*eLiq< z1Vq}D>TmS3j?uN?#%az?l|PA-Cr-&`MR9tdr?--Pvrx*i2QzR3pCVoY&4r=g@RzJxB_}2C+ZO@`EOmE?hcb0*ubO$VvXkD< z>CBQzLYoOip^;Cb?;J zmN1VL$q&9X;Z%?bU69*%$1I|a2c}_0yUkGH<++nkkO@%{oo;@SM4Mrg{4hx#?;XlJ(R(H#gN|OTtG1iG_Mn-+ zLLEJ*^P+WeFN63a+Dkmn3rk{)7@u$zExB|<#*vfkZ5;0X`c~o(l!>d&=3-7#BD-D| zf|yKeRq><=v@Rdsb5(p-eO_7W;%QOPe7H{6FyWEkmiBe@w&J6vr$u7xN+6W;@bLI{ z)51toU9(KT{`)m^M^(znQd3)VeuC~)20fv}y7zW`m9DOCl4$Mr6MjK}e}#Tsef7%K zhTF9~1aW`R#ZuqdhbG>ib-!>tiz?qfeEu4Bgflk>FLLc=~cF3a|7FCiL@!;va+i*|x9rz4j}WJ|`)&$;mom`(vW_$CvjvPYh4v_^Xht zlZp;R^zYx=Mn-Im@0TV89=5VvZ8QrCz@ldx;zL8S$k1Nzbp4M!*)`dhV31m>b9NOC z;cQH6i;7Rf%|9IxIjyC^#du~y#g9{w_$NQBTUxwa(sqr%3kffXE^?7EH-g$rbACv8 zVydevjE&4sYwkbRCb4qeefVcQl7b{Jy!jhsMchKXkiDcLS7y>>=6*pYG^)XQZE8-j zrQP-;*x)E=oAz$*8Yli}-n58;Y0B_fkcHHSmlCjNZn0Om+eTw!BojB|Zlk3wZrtFQ z`JdA&&P7WGiQq;Hc}IknZjIr8wE)69X~X#Fgd8QT>k(lG3qd9|@#6iO)W*890AClG zfCi?8nJMe6T(QTF$IE}bpMREC77Iy7`;dX`jQ2mWQ~r1>t@ zi)76v+MlAgY}{Ai6IF^!qYdw=7sx}@DD-nJ`&2H7)7vW(BQhUN@FnGI_mgkX)l_7P zaLgd${^G_Y-9UInkK^1vaG2`%b4N2f6CDk^luqFiw{oMNwYIx_Wf~nhg=F91LN;GP z-luo(`8Sh&;6L3T(86P~_-4`8slJR$<)4l8Ib3VV8C^!pB;%uZc29V4;WrYp zKgtw2m6mvW+`|tJm<7lCS*0BLSL6*1*17rlZ+k1G??&mD9SjKB=ZN0gYL5?_^dUYtyOaJ^wuLvWHmtLUEbs7V+GiJV&*Hrped+_{7~eZ#pEX z_-eoH!yA>i%)W!334A}~B-|(5F@wB>7Jn2q$4erE82*yyoa?B+vXUN}(vFIh#Cj5tQXu!r$cg7xD})O!^(2kD>JV2k6-qt7GV(|{gjFW zd?ME$&zXEdDfkdBW#Y{OoRPzQQqypasJ&m9Wy>l5P*9dFKba^Z-|PYRfWvF#tQA}} zdL8yqXCUsq^?Sj!)1U6Ek-0(Eit^m0(*evx=-Xnpst&I%58Gi*DN9pRQ<2uA$w$wd zgQFw0*~G}&44`*&Uf#mUF%{a8(bH*(lamvh5F#z$G29?Zgx5(ZUPB{FwEk#XNraJ+ z(Pw}4ru}xy_q6?zmrLMw9x&aZ{wB}C`nq(UuAwadGxfsM+7P#J;&aFT%F9erdr664 z*|*M5?$p{q3aaFfY#%ka#0?l(C2{h&z?)Gb%K2T#~DVXS5av86}ys6NA)!8T`6DlVo8!SP?0=p@+ zv%GME_mf7ehvnm97hf+Ykxu#03ai#&mb0X^+Iov~EgK9UWeMvs%28rq=m;%ew#PpM z$MbZ&!7zr>r(mZZX-R`zTvXD?3p9PlTY77vG)Hc9IM$^raod=se5BOI8#331+%5%! z$Df7Nm`3i$2xORGH#$FlGJkG6f@NEt`CGmyhKl*lnTMahcK;U4!n9{q%s9C(V*$d| z`zODe-S@+#_tVn>$IRrb)|>81aPE1SfhcHrem3$=Zlvi><~9jJ6JH&@0OcQb%~4k7 z;UPBH?f6J5-ag%`T>IC-Ak>yGls?y2>8MnRzG*B{>rkbY4&$8-SQTIMD+-I9>l$EN>3i&R3-%`25=FOZNeSCR0r!}y zE+n%EDXO{iA_4WHc1$BrG#tt@2g{Mo$KMs*;eyUMn+oUEeBk$$jY*bSQIB~U4XA+F z5Ku^}O@ENy5^y0$!N^ziWX61lP>s@cdP<-n*3U|ai#YqzRP+891pR}m$WMl^6%{HP+$_57b?7qP@ zvD@w5Xcrfkqb!Z{#S`yVn~$)^GO(KoyzU?c8S3ilaq;o-am{j~lg!jCi%XL-98qoy zV%0$kw#*>KHFuSIc3_vvf!$k#@K_Yt~Sy~~$gVq%W-<&vi$?FgC(n)90JIYCfL>o6StL@;NO(XY`tVE!{^m3tZ`= zDz_hs`r%o;nC4E~6y5~#Q)R>0SGDxAJA{c2M)(6A=$c=3X1h}pq&iQtrC}0gXX83%LK=is8#WdSKA){GGYpjdrmNrr(*c}+Vo=I z;9S~Y_Jx$(Tf$!7jiq+FVbaqGk({hGB|4$BuF(S36FF90uIh6WEOZk_#vg$ciKKi_ zguCDE4GeanX}^gG$%(yaW)=p{BD4(CMEf(Fjt=xp%lkWCwLbe2W4aTMlylYknL$v7 zA@$*$yk=z532kn5?pF^ofi{BeT7w}AnNDr12thh2Db>as6jYcf*s>kSTnCaQ;bT1~ zCMFhi1WHJ&#nToPWUDJrelaWLh?c43Tk9Z;mCfauoL{Q!G18FnOQvw*R7K|F5|hb| zHpEAFOixvFTJA->PTLTz4;M!cPD;j{e0=v?m*aVPjlEMR%k@w2Wn|7A;eFP78E1QQ zvfN?YTYPu9CsJ=SPmH)fd}2w}D$_q-+&8)%gCTCWaT^?#H4W4r_w*d5MaVUxjJ&T1 z_sX+QD{$6?8F*PTrAdQjgH~6CYud^ma{`etSa7kbfk{}~>>1Z-AvU-uwk!H7f`uR> zaeV(NDVF{wL9SWg1sKNGeZMJ#F^HH`nn&i`)xt%|@$fSf#JTECBZ)n=mfYLR6aQ=@ zcd*yl*4Wno=H#Qcn_KX>5AXo`Wz_Ie67A2MrOKU=_yZ%H^!S+H3-!R?ZTIJe)XBS$ z&s75SAMy(t)(7WocT`Z?UBe!u{s~eQvG{K0hAVAj?j%%cKN*FlIDX^&2#Ys39)D|R z)WXg{&DKzu29&Bddc7fM<+lDyE8FV0jS`$dm^Pk!B#HabfHf%cDv$^ejjXKFvYnbB<+{4oRwVEHcLB1Ea_;+RL4EnIZa4p2u+|jYK(qc4 z={oY0W3q`S-0g#JHVe|f6FyZnHJ09wVC%~jKSLrY(rrQg9X}tps9EQ75ib?YyfL}z zAcYK^fbAUF+i|qrxRamBH2l7b-wzrP+S8?`!1jg@*<;w9@b$tHT2t@9F#jixF@?*dIiy+ zkpxQ1NGg~qv>^%AjD%*^@?S~8fd>SZN$s`jJH_P7jO4n6rg?cEdV2VCa(R!aNRFW= z1;XUTT;Z`=6;WjhVp6J(wipOz33*4`hA5GbqY*G9L)&PFWCy2W<`u!w(FxX8b`~vy zEgn1N>ux{El(|r$tiTw-@6x_=yJLU+%#--V4HUlKuV#5-A<0!-UB(L}mZvAk5Qh`~ z4TD=+J@9#1Oj@mf=}u4ITrc_ZhFv5!0FeI{-@DA4uHv?7^wqYbsx!vE!fi$zJ84fZ zzi_MII|YR;KPo>0f~~~GG_AL^HrIBmo&h@5J2gRz?71aHNO}wzMRm1#KeE>E zY0}R7w5U|dVu2z`YkSmjI=MZu058%0gZ?&356H;DF!Go|o^l>oHq+C5Z|MSRof~9i ze#(W0DU4z<)4Zb%%1nOtiY(_ZNZctbCazQ79^_dyqK%CdV90a@dE#i#$8gvairly2 zUv|^4wTLpk08nQ?|NHeD95sX4m_u`6?B3{(bwx-+Yx^w0jqg+9&#-SUGXyOj@Po6#LyMFUkKM9!PnJb4Hc1&{A0=E}mdtx%Kty*V#R@)5}Kd zOEM7R20=LJo%8d~4!I8^HA&BY$V@EHv%QNnkp}<}k$!&9Lfcn3b6>{aON5|?@KfmD z@j&|ElwSZp7(QWTssTXypES{z{ceZ>fR`vw#8iMzf)MfSe}U+?1h0M|scK~VNdFdq zgr1S@hjJ&S$KTGzSZ8l1fW7zKe?I6;_iGV-j=WYa>;JyuBLMa96#zi?|7Q~WW#@k` z0Q~Pm_}^|Q7M@(Z=5v3t-5(Woe7do5c2v>9`R`2td?tse8!<64d3kx!kKnvKk|g^v z!w98OhPAqH(K)Rn0~WplUL2kCGD>m^mHWLvO|2Nvjfly8GJC@PF<;Lc;$2ivdFU3) znYTDgICv3t4{nfP^Ux@v$(b7iTRf(mA!Q|VU`h+0$#~B;Qh$-fkSq7OyQs# z=<5D>=FP>0$9_7f5D`f!h$Lba)!M8^NBzrR{e$9*{gNL z6KHQFIhD_$yrN>g+H5!gSLCzO$zsj^ex`3ie7vyZ#*fxkA(Wfnf2zr_HE3`>!=~ST zdjRO`Y7i48s!UJV7M6(lC7d7ubIGcDBs?rBBc}UFUsu+3=C$hV{EBixc@?;{cx`Ou zH^#u86cC;CZv0dmxqLx1v^))ssv0tD!-Kh2&%*wz1q_XROkGmLRnVZ(609kQu5BE| zJ;X2~xhfrdx8{_UbFF#4kUnst#w?O(8+FReF3N{ZXJgJFx>rLCY)AL*`TxFl_Q6mx zk2gZfBx+M#@+m3x?U#!zuq=CA@x@HuB$5(YPQY7J`(0Y?IG+l`HuzaLZem>AXBinu z2?^y$@W+yhii)f(Wn`-7AUCR-rQ$+)!VH0hiJ2>EV{QF`hNi(`U2!!^^y#~l6e{+` z0Cm(vW{FmX6uj-mbT4s96>nBKTh-CTnfwZJawO^@GBxw@eo`R}t9F+ByYL`{=^N~{ z`-oT-2o4k)lKyJ zjK{?I{-QJG?wUvnsTxe$!ftRWFfgX)H9bwcKY3GL#U|#0KlD)PlV{P>T~3MH{Psca zMyUU~@sY6Tc+w0^5KAE}|5jRG7zOZYZ%)Z?ZejxY(AnHJmX_K&I(L2K4y|{4siKdt z>9KS{hJ*V0`pEF=IN#gVFk&{JiivLp)EXj^#dHnPgO(qr7-?SUC`m&lo8r`|@ie)XHp zx+<-9=&ODj`K;BgtmVApQiC~M#4bk}=gJc9vTE))u9`nj==$>~yZQzT61DO;azg*c zVWTE|h}<_YP-Yj7+%{WTDcGX7hu@7TIQfMclIcSFEd&{D6lH~7UJlZX%(xuL_278( zK%j90tHRqWKRTfFf+>GPs(Jy2hsaYPLJzmo$HylpCud0r3h=L_|dJ zmF^<z3?O?7J4l zC|v9cKfg&tT$O8BGDH?LFr6VNXiKt2R@eLyw#t^D6vS&v!_{r1i8~YoEA$MdQgWPp z5kE-S7F9pzCkfly&RCS9zZM{6AVZNf=0)Las2?7DNYB~L16$T-F1CL<>zh8q>n_;B;9tVBvUNMT}an^>^9 znQEyquIY$1xHl6wEcNuL8JXzs*hf4*XqhQ=hv7QRD7T%L-y-<~gH>U{ITo_3#ejke z7Z)2a z=e)Nbn_|#;iiDaJTJy%2|0LpMu&%&TR;^^bWF?0n`WWC zq{L=AU%} zt^O~W?Q~3*+}!LxA}yx%%e_DIjBt#OsVKO4CXDUZ@O&FK3gf5{z>1s?9k!7n)&6N4 zHF6d$MxnA#4-MOoj{(ox6}cT|oL4_}lvG)LJtsxhH_a%peT83ha?Lzl+~DJA(l+7} zA(z^RUo2Ks`#RB3&BZ^?cJ<^f;rkPr!oYGARawp;;^y#uC#LS8eeh6@1geLp%jz;q zLg>#>jz{4O$o&UvE)txAX-CDx#picDRC&etR@%u^m9#f>_uS^;Ty#)WzOiy5;&%&UpH_J73ZQD+!Ik|OKhTnSQ3qK&S=N_288cMokjqtesFIMIUtkC$_*g{8JQ^!z4nrElCM%YRSS@hG-7PwCo53w#n8jfoiY;DoMIIvM$ z!CTG1q^238VJ-D{0yQh`+`R7zaY3`Ehtdma^F6}pwbX{1^pIShZp=YCHmM0_h-I;i zjO@>g>uW1~eJrIcGYSfdJhSBeePHPipI;fH1K{4|uU6GgewlfJ{3z@^D;|J1ZZTZ< zbRBfd=YKHSgkTfmVnQAs9z;Y$O-)U<0s9%Ak=0dIRp)3_UTM#>ea<3BvNqeQmvDz`qom@l@#99@#JQda++Udi6L{JRD7o`h zB~4a^Rr0pAd8^NuWrDGUj&&4xz^?NZ7JGW!!|`wadd%`EjZ^1C9eA#-o~C3YTXZFg z!@IC7oaCG@$q!kI(~{!GG1Ye#NnL(8sXSBQY`odQ6J8q$R5UZ^NF3P`mlU>5mj}@%U4bT@I_%L5#d;-sy~l08>Gc!g^Uh|;(Xs?ziniZI`dzpqrE#SXqr>|u ze;!WG1msM-xu^}u0^t=&r+Ui^6lAHNgp&n-dd3+=TC1O131C{dv#(e?W=AxAmDPNv z*S+MqrRr@Wx4|40oS%@p|7q70Y&RP5B;=M|(gM2kTF;-WAC8vMq+QX;iTr)=!B>fn z?DzAIyu2QHkmr-jQ1RhdP~X^<+nlNvdZfINJA?7bdtcNq){XIiR=Z_hUteD(C8g_e zx=b(RYfv%Dyf>einep0=;42JZ*@3P!O)oCqU5<;+Pfg|Y$Z<5**3PW0wU?DCh>Hj4 zvg*~#>!#?vc{pi63LcN3!@{DX>}ciwp?D^SH&JOo!FNB<;gE?JKwT^Q!qLBmTAkD9 zg?4R)_h)&{K+sE1lA@Rr1F6fxzTta03DzUWmMiQ0j>OH+FeWk>6A7#+iQ|0^%EeLu z-bDajwYRnAh~3EGC>|l13jFJ{g~_Gxq2m8ZM<*u6 z7M0t0nfL1&u<&@)7rUt{D!SEj$PEqT0_4TgX{!d-1D>;YGZ|a#CJMD$G3afT+t~h+ z|2#jf%2ZbBZ92_~u|HE&SsO|zV=FtyjN1>$GL`F>HO&itYo0g zqyDWBWxs;Ka3e2|vl`Pr`}R+C0z^^5VD-Q1G+~UX&dsT4rsW2rJoF{3zzLS6`9(8M ztsDj;p5xVL=yz}I5^*kjM<`QbQ)%9@ju{ft)AmI-`pj!b79MnVo)vxme0Ivf)aUEA zU=|EYLkg0Y+27)P7*N&NwKOzM8|fT4N6S_?8;fI}FNfm^?tZ;C%x09G_gR)yQOpkk z9VOI9j)iTW!@k_(wtOop^26!f7L796ag<;Qhwa@pvjf!n$}*oLBWa}XGi-h^@XvmI zmF6`>mpH!95ULQ_oPh8EmIK)LyfmCB`MYx%vUo zUaK!B&t7%h`nKGt+SRh4uteV-5|zdaSrIKG+LaHZkF z0T!pKnvENa(~a4QmEu3cok-9}7Q^YdLh{1X&Be7QF@A7x=sQq%{M_x0D<1OvMB+Yj z`yO?!F6kJN59gi9pp4ZnfIN1rC$Z(<@&8a+j3O5d$QOENIT+9lhIHss(uMR82`YyE$OL;)|(f?AF~qe*i)!K zva*)8!lQn-+D^;fQ220n({XIqw@uWbN65Hg;eBeKLeUdEc1kyv&`Cze-{Z^5~~d6pLMP2p$X^}3diYD$;jv~twm9xBPCE|C|HnoRbCRl|<;UT~3! zX~F&uOc()rXP)nuvqegqWxH^(X7}j$I`_L){KWUy z>8%n?AdL-qJ!k5}CNs0n^UJSPJ`GCZ8iPYUUw+?^57e}!p`xNHp-Rv3)oZ65uw{;~ zvgQXja}4SrYd2O}joT}h!!NU|kn&13r)p~AxCI~|EBY&+GwP4!#NQf!98Uq0r)Cbw zl3u{d(E^*uma!fGc{b1k&D=LVU1zoTp`?@>{3)|CA$o&dt|evU#{+=y6#f2sK0kc@O8?oPkLcS<8*JO3zO_8`L@*3y2-N6%kh46T)14ZL%LbQU%v|$e0p!X4E&RTn7lIZr zu&~01Ak~p;f_Hine0lV}ccx8Uw8R>yfI#&B-fbEsmU( z%cJids=^lb%8?$jJWkrbdldlqe=Ab|f0jmG9YM&yASdi^gSr~WY*GB3K4jZ4{QpOr zdDZeY?D)?`_`?)5!|*U6?$wP;<;=9I$-kojYyaJJ^~bN*%0)zw?$N z*}H#rBS4boiXHplf3*O6phYTB~nh8ibMpKIE>1e?P@NxbIC7-yw-7+T;f|=2(2#!<4V_|| zjI1naf!KGil(u;ER3Gvb-HzK`cGvF$%Tly?xHvffBRR2;uHKSud_@KWL}M1*6z6!8)hFn0k84$l9ry8FgajBtG9K+e6>u1qRsya^6yb?`H=?@p1_)dIVIN z1OzS|baYBuTFb-3>2PJzdSp@B*(UzQ#l_rQ0=K%Y?en_9(NR8L-ZX(}!M9&n1>*w) zcWNxyOfB|@hKD`e-B)}ONF4#nqUScHHk0v2F5w^h^>(v`R+S#?C^>JhBgVt;=iO9= zQ5gxqMA3qj}h|Gh6da1n5k|QE^%MEZ%&CO32oxdR4 z)#0xHHUm99{2+HcJ&odxyQ#FQ>LIS^!w~!XXV09G+Q+&tLd{M4(D!0T2Oa(V>PV~O zyl)uk)vUQ~{sFkU&PH=-s;DWkXb|ic-A`+|?GnXjw&9J6nAw*m8YqYU&p&%$Usd1+ z;9_&o`RDfXr$xw_hqAx#&aksO;&qc7OZ5z5%4X=r&ty=D(dy#>V4wHA`H$JU-q6 z24Af-g%SKv$`l!=nwy`OQ&g<4u1+cLC-6oJ6UD`h|A)P|4vPA3`$ti~7$Bku(xM{5 z(%qp_vgEQ$H%Khq9f|@KQMjl(l;O5)m_aLYW-ZIo;mhpENI>0giv7S&nK?Ga4i*De0`ob^5MPJh#5+X;EiwPu`{; zfzQ7lS#6T4cNovBHHYH27rA9hLOMw_a1@#-9+N1DiE&Q7E8=7-Xl!rS{zytrzS-R! zx3%>g0+Bdlsy;gL$U zhokp&bb_}Vu2qDE7elB%Q%=#VmL}!ofK8fU;J0tHb?0Nhel30aR7Lj4P&xMKD6nGo zjG3Pw?Z;Gqd3ByRu~CN{QawA4cMwd`X*gYJ3kzevYH2PmW>rz)!OzIa&K8$Jh{7~g z<%`qnkxTH?mSxTrvH$Ds+;1ewp8jnJwTB_~XOx4$p_o4Uh)tM$MGU~OOUuiU;`9td z)46)Dx;vxHfq`tA?x#Et9&~KipI0R%{i#3a?AQAk8>#86C?*y&DVOQK*P&svdd60Z z-d!)a_VGp?kUoFzbbU!`*n6OJPo>6QABiMx*|u3_4B)j8%(s8Ci)?l-FSQ%yDj!!R zV*A%sV($6=5NBq-SAp{|DIBk-gs#uW-N<_9?qLGLRCq|(&av%B40AECNVuGu8v9?W zemnSTbhzptD1HihDiGx{GEqXvsP*XZz;=JfQvc1pmXoo>Y2I8zAT0TJq1t-Dm5*_! zvFAM|fYiTY(Sjv|#&mS7_P^_cl-2)S0ROw)!2gZy%m4lhzVp8VvhY8fn*i4O_^&IA zu?5o&bFZm!`PU)<__V|jjky2YgXWVkC<<%(wx=XM+ zPuzYF?H?!BcQy(UM2syFD6um4{A(G5ai0SSiRoCf?wmLcTZJQrmm(Eez&C$`gJNL3 zC>0^1)aU`{c~qFX1$B;&Y=q*dD7B%|Feln5(~(=5WX<@#AZc{iO#d`^KoN7}*=aAh zrflv8q*dn!7a#nL&S$@02FcGvu^>h`)=aWat0sZG9M<=%+jFV=Ctz6LArHWypcZwC zE^;2c&$b86%t(lsbfuu~L=T5vfx(=PwgC1cw1|C_p&);*^5dwqw4WV>7FCvKqwtCF zd^H$5nAUf%M8LqGOx6+sRabppCegtdv%2{QfQgL<|8BTG6=EOQ1WI%Or0mJY#PsB@ zl3Y|#{b+swcF)5y+<0sY<4q#Y7y2!j^^AO@-4wdsSNz1k7ftKTM);q)ZH^DCdq*OI z;(`iU*c=_*lE9gvwffWL{0#KYK%xWpcXjQOC)o_fell!5oWQ>K?N>L3)~e6wJ^4`q z!kD)L;K4Z}Ye+$**P1M*VAl7pIZm4+o48mI7~MW=#zMLq^ADN$u={?pJddlf-0EQsuOZXm!mFeh^a)X-$1W7q12VT$1S9I_z`T zwv;t`Q%82eW;g+gRU8|6x{k~mG}`RO>B?TuG<>I0miDzWGBmt2>}!2_OdX1akNRoi zGmn)K1^jS=C2K$0OumZB_Y#^BwB4zJKA&AMK?5B1V=G}62(@)ZMC{E}p@~&D$6RBb ze#Df&#c{lqiRr>I050WM;;p;o6+$eK>tvi^M60Tz((3+{Z=CbgK)>}Pl5L8&#@d%w zaM~?uu0Afrku+l|tzv|0+PTD;3XNQq3pr>#zRD!k;6! zVqRX|2fLa4p3ScrRNU8ywH{iU5)Q6*M*0fQ5egIjhtqU#@IUd@R12Lgyr5(~E4e#K z0(d6C)Tfoib$_MD+)`Mj)>)^nDOv{6k zmGw6&QggD>Dm6Y{!`ZnyJ^k(-xR{BHxQz*)+vwnG0btbLlx|ClWRf*0u9|(F@0`M->c4B!7|9|?m9 z1#JMTe}al!xph4ul@1AdT}XCl-g^?AG08hZCM`;NvL{8GXRd zr>wj+E?8aJtB$<>9M1ubmIk9OZRwNo zfBh;VEzNKT9^{?9=Zm5B#QfeM6ZizvvFfJMPY3t+p!t{ML0`%``h0rfIQHINI%4if zm{U*O$PpKtVC%r-NkwX8wlQfL2ZGj^@{N*u2th4~=S)6cuGFzF8 z4dEs}xus#Axl)EoeWyDjXbx`n*L0L+*7e7ygjoa6dJDO{97KMT#)z( zp(bu^Kq-;lD)Srs z!fQGI7BmpO@wohFfAk(6qmMpQxSw1NXALbcFWaniI~`3J0#zxorc=Z#BYUtHlZPrQ z-t~Ah2e#31adCAn$MO#1;yzVXE!a%8JKb!uLx~FuI;33Yy&WA9At5Ob;`yDjlal(U zrp^b%9jYq1gVVY<}H!UMe#=kk<~5vIW?Bds=Sc$wM={a64=_1#{MISc@Y-aYrf-2D5py zckiB673%HS6baZedZP1FQeItcv1Jkqh#ei+7S<9)Uo2BlBf{}(<8#$i`D8Q#QBMXl z6Dlnrd=ENT!@4buRhtb4N4sCpuhS>7v(4<1+nr;(Kvv$=X<7;GU_RxtUi#4UMoal_T#_(j~k z^KBPRr{!gbS*P=|F-;Euk6r=h7W(uj_VxFG04H=-20}sM`fPo^8F!o4`fDt8NpZ0} z91hrDgm`#+<9b0r8VEPNI$cc!o!->>cEjBCwCVQj9kAAYfKx|H*^F~^eoT?JarWz} z?0p%l-na>{CA9&Hq?WF4-`eZz>vwkUb7F{#iJhLF4i*YsUv%+p*Pbtd_X*a+=SQ0w z4eoAIQtUn5%8O~sGewI{N}5hygG`sFGY)h84bINI*O%KKS;B?4r>CZB+%NCCxw%2B zP$+%;pqiQ*P3JW#3k!-EVonUWxRMf~^gvr%MMefSE$tpE@`pRMs150Hxes)&_+O{8 zZhfDS%o6+Hh~ru^$AwTTOUb1L4&#A_ExO6S6vutWzlRognXFVCCr9#|Lek?e*_ zQo4YBV?NHo!Zko`rLO@!A)%IxZD=GAS|&1$d4&pO@pIy`Xb)r`*Cz8q~6{{8q(&CHLPLpFQa3{_0_;kMb1|a53t?+ zEsD>Snv!Bp^oh%K{4JFtdb~()YBX<(NK>8P{bIZ$l)ARIvSDs{Vd0%hMbYOocJP`0 ze!eVJUqOWzC>|0;al9iywG>=KI61n8p6&lF9^5l9&0*U#)CcZ-@)(tE`Wj2 z7>PDI4_2F>f>CyZAwYo497WQ`>->_nqH@sAyDHZo|IYh)#jV@%z_1`W5~s1kzjzuz z{YuKpA27#DOAmH-ELn<3=Twx07bk;>?CcIBBA(H9r>CWTkdy@e5k^R4@v@e#si_FS zH8`1>)7qtVz{1W3Ts_al?!La&zQJ~gHFq3XaLN?{Ui!z6zij#h6652Ad4^hA!to9b z6Ws=9XA^>hPbUno+sX+E2;w;aebBlyb8%yHGj&?VW^XMck@e}1xVVk2t=4ocRtLu8 zxJ_^{WJ|)A`$oUwV3g)-ASh%^li*cllE`s~z zHp&W8Px};(z`6wX~GK$B7OX+bw`CHMe#%dgbNirKG$!HKiv&fv3>0?`P07fJ%+1~Cj%Hiy+u14f!me5sqNAaan~2VCGS!1_ zu&@lIr@u)Jgi1=99B*xdvxzMmV|8hXnM+q!HzX=*cxI;OikO@n0)b=|^j&^tjp1$4 z@coUjR8$&^VrkwQMEQX^`|7F$=f5BUu?=cdP$q>+y_8eC2u zv(YfTbZTzu>V#6h`g!U>LP7$=GD9MHTu<7&qupJOw@Sqd;1sIP2* zz`*Aq$bI$N*0ywW!xVHhQv|@LA+f$*ki7-W>s)iSM}GBu_WV1eY8C(nn;akCnyRQs zOS9da94Pp%Rs6Atx9<+_h9g)}_a+GN6}$FaaXP@^l=_D#$w=3WUGeoX3vm9pAdwT- zSH}$uYULj!ZRmdB+pcBp?XmhUA5gdKfqvmHx? zZ-Z4XOkwP#HL_u7@%%EwecU4kcyJ)2+8L6rPxShH335(?^x6Vzs;dQ0=D*9_9U8@90uX}qf&!*yI?9^LO8L#05a#m@xU9hGq)CCd zw|CvnPrt#zVjo-z0}oXs8B_gfK@@-*=5jcq zBpc6r3aVn=e(#hi8#v*3c&Y#v^ZWO-NyZxY?VguC)OSKt%ahkmymo-667a71*Q6We zEs`11fzcRnaB$>Sar~O{Rk6vCyu^3X=|YB@(!i_D&GqAA@hWh4ZMi*Ap)&RHD|>kd zgV}4QQzPlt*T-J785IQvf1fMu$)8L$e}4mQ#DPcuxa|!MY#+s=wvv-y zt{n9{LTT5dT$JFFE?|DN85@YGB8iZDQ#b$SACRQ&72=KIwX}xB#Z% zA`)u-XQQ0ug);}%mwQ2>{+9p#s|%u^UqVV6o14&Jzx}M&x(7m^@vWt?GDdYOv=}S8 zCNNN1gv#*v@R03iMq0|7hEjC;WUdxF9Om9l;VRw3kYDrs6URuHV(+o;*E?JPg86^u z6qgTtP#PMTjH(W>)Mj3=wEe=#fh?-F{c;4%& z&i9^A3E&k7F}@hS>@pH;{>^6X+j;NqUF5DI(764^mf?NH z;umOcs==eAspvf1F>s%-&$^4ACeOqOcudA_vgnPQERMHiwsA5UT&Iz&ReQNlqC3Aw zV|GM)+2S|86{l=$lYnV@C!q2k$H&1H=F+lX3k{9*4!`wVxTJYQE(;8`o)Qq)Ra8{s zg`NT0LYtP<`}NR>oESb@FP?-WFv2v!Af_DxR5jnq<8$IC+B*VFg=5z~bKL60DyB62 zJ1?!r%7PBK?Tg7BBf+dM8uIog5ej2)NBd$8*mU~j`a-U<;yl&v+27ud0fySS8ZGBgkS4G9?!Jep+JP07$myIaU)WYIo zw-=X|KZ@=G%iLe1)68rQVQ5E_+io=W&%(#T6i1@bCK`bs729fM3Dc@U3|wkGjVR0vyw{Et}4^(``#7EneKO~fm~gc`aq^{fSi4IYczA84gK4{taoBp&ilZ=I6XO`)&k-s zhPGj(PcBZ^A=Vd>OsyQ|@637DS{*iRv_{i2NQ)w>LS_k}&S2DSJH3&LKSEX5yGEKO zzYb=_(H~jf#Lm_F<$5&)lJU&ViS&&NBW=P=1GBn;L+J^D`kX{(l$w*&jvNv6crtmJIlJ?n>g z9|7~X{>q(0-)l2xWuTM7&Kelpd76!*Qk!vXZMByk@~Ou5=Y(nI=d8GNe30CW44a7= z{xtfa4#L=$Hn!9#$+s8l?mR+Ht2r*w?K5Kbxik*0d3=&UANb!w8lU1j|_> zQXNhoNjviom;$1I=a+l?0>Yh_jR3<4ns@7UNHG?Km3SRV+u1?CW5-BekQ^oc&d5^x zM`tXMR+k8Dm^lvARTKnWg$IYE#Z|fHQ!kGc8N3iE2+MB5&wowz%d`i_NP)TbJ>4?; zt(Kv$JYqA=(~_6zYY-Jr&JXDCQr}EG85aMQAHMmXIAZaMFhavPJ3)D^YmB@juM%|* z1Oc)ef1Gts66s}WGV*FVN2kw+dhiyes&CPow!pU0?oS$;av?Eq)vSJbmNsqSUYII=C&uCJh!-bim{K3u^6OGJ2VtZEEZt+kN@3(V%H zY`Ad`W-31#s2M8Bz*>B2aQ9<5)Eg2X$GU%~5f3ZIb!f~t?~E{&?PLJ3NAsI^PiXjG zrsihXm(=(OcSJN3^N?PUBt;SVc+fKGYiC!%?v3~`iM<~9GFP9U72er`?-``|EsZ2T zJv)Se38Qb{-uFZMvl0lq zK<^I3q!Cec*Qmq*o96s-UX<@$}yk%l#pZ8@a9@)y8n&T=nDuF?Cp0ep3! zgQr_M#VPd_n@b+6mK!|Bt0+GsRbNliMNG4!2s^ljlfl>+d2Cmf>}vuv+akJ(mbRUP z6I-dhpMvx6j?_W4VE*)Z*>nZ@8K%Nsf}IH5JZyygkN9?f*rm#jVlz&USy<&ir2aRB z=+Owu!Z;qDmJ3$YOi6iWM#(~e)dkTXWoIvlT9vqd-hf|cx2$fC_uR~yOJrR~?gd^6 z*IWvH-V5py_h5>aUe97$)z2};oq!FTk^d_fYlpLc#TyOUlz|3B0*b(egVAl5UWs?B zvB7NogemXpb5s7-^B51_hcI~+7YJ)KbREI?%oMIL#%^t`M{MUE-Zoy@Ty7w5@RFc4 zYxU-$e#iT}PIyaGH4(cSj!6GV2(!y6FIrYteuXJCxtLLikW*DqnEGG_FuVGbO%cE` zRi=#A(Gl78mVbp zFWfDs?0Tjgs%I`D3QLFx#`$`RQn;+`nH(J5UG1P_4-K{eI*AV*Bd`{)+`yDQIDcZH6vou;dvnSajxO=^iuw}+f#bLn08}0^m`%^nF`OEy`j5s_A5c<)m7!+iwjfnzuY%9a<$h{NlL_a znacLBm8V^YsrXkzq~sNb20E41gi#q4+fXSI1;whdEo%{gm;GbmDGHS@{`q)L8ry~OhfUILEoEd^HPSKANK## z-KjtB={Vi_6%__*E1+5CMH~fw``TSPjiUmI_<90^(^{0jDg)Spaw%|lAM$k#wH zLP_1G-XM+d(v=TnAS^6_MG5KirNan(quwme-X{cRrpOY`kqjPuf+uxE(NeK|JT;aP zvGLKL%ZpQ7ZPd=ecrYBNYy8%PkDn#fxEDv-?D?Z-SI^lp)if2ojkh&r6c?G^FnD@{ z@&xS#+8kK*eQB>p z&-yj#T%OXC$jPb&1m1(WOjdTSI?Mk?4Fr&(9pw!=t}hOoeJK^59?A+ ztBX~t8q0efP|19?KV6LoPriR|U;oER3~X!v+f-*aO{{{bckN+j= zfDP?T^!a4zUH(>i{z$RAPItSb>%p4S`m>$`+tQWehk;N*8!ChJDSt4W+<*ipN`G~c z%{UJqCe-6KPrn4dMa^fg4VGArQ}k{4*T&z;8My*KgQ=U43vN~ksQfF-^!1bG`lFWZ z#4Fnc{>~1f}HPhbuI@k#w2+k%!#2fuBQQ+WTGQA0`#)VVh6M{e_ z3%LXOrxb-7HezD~PR83i7>#oxj@P|MmfRExZ$;;QMwv*;i1jBWpGZ(ClntAurLy$3 zsc5OW4M$iP4}z{K%n`WLm$(5rhw2pH#MOntmoHyd-!B3Y`#Oo5EjuE9v)fI>bONmI zs(ZbEtvpjIb+9$g$^njd)l+K4vf)Z&iMRnwS-EQzMC|PH+J=f=Z3F*V_hZd`ak3~;?L z-vR~~CuvIro;1wAnPp&1lebM+;$41P%1YN<&`=53%=Oh@-?4Muxp*Y;!0M*M*kVU~ zx`m<5E$XDgM7_S@S$q-F8QiCc81tw(#`jWSyJO}IG;i+vs~y41x=%EtIJt(y9}_<1 z$L0-Iy0R-|T_~@LsElr2{R!6UhX+SBlPYq*1)K%>f#Ieby6uZ0Bnh3F;A zT{{&Qc)W$ZGtaMhs*mKQc}sqvJq3X5MslAU7O4NL{yq*thDg@gc2X_!8X}2z2Sp5B zQaGh+eV&7~SdGJb13i-BK->}sxPt+{SQ&u5B>XTmOyMm`$t|yet`*1>@Ex-HLe-Sy zT#Wa3w;F&-b@2@_G^K5gAzc$JWc;BjU+8*x?T#HJ>rl#>Ov~QWs?L;gT0cF>x;##S zd$%RcfGKWGY%PqE_H1}Gd{BNmdz+$-5q8@Gxs3=5t-=d^-x2Mhl|P~Rh~mofM?6l< zR#w+Qn0BIzc7SgR|KTYe4Lit{X&h65OGgJ{%1s<)<7M$Y0v2zaj-M2V zaZGc28a=Jax^Y(3cy!5SR-iP;f?3WTu)`qM9KYHZVP>dI%$d>ka6kiDe=c)>QW0erI zAonu(@+)*1vbUNdUENAo<-mbN@Eu$}sUNpA=>Yx^j{@IQ?BFF1Bx`W4LKSJ{A z%g?;2O8R_Sz|GDcpsofVnU-^i@Tm)_rN`U`I2{XQV%x1I(YRzdgq2x9G`X}SXSFZ1 z>9i#rUj_2MOG0vBJTvx6f4fg=^AsMufQj^WuxD?^Mw=?G>TS>8Ea?~ab%0r&th%o} zT#GsDydk)uGyBV^OPPL7 z>{>`F%uJ(qmxaM#w9UoA;RR)>p}I?j2VHbwgAKyNa|4s?uUJykia9wlK8Op4W3_wU zQjQ>$1JNKY6_7p5R5b~sX^ zq{mlN6WMb(X>%bD2G9ndy3l~={B+|FQfP2PZ*XT-OCB!$_9fwrIXXBZP(YN(7G=46 zdj%gKo?8^rnA#YM!4EsmmE_KU4rX5rcDDcO9^Ob9qnMLISsSpYkf|zoBpQh7>!?}) zYeULGE~wZE}wulFn( z_-P}Fr`NS{L8<^A4QfKC4_H>P*2b!;kgONsqSJRJKYWW+8iRM(f?^4(6~I*23Ht`+ zmGW~JW-ZsDwpaoLp>cUx=~5~VAnR(lBqjaxD+hB})#vgvkhlaI@K>*1tyQ&LAbXCj z(qnc8uoqM?QDM;@XY1)W3Gy*YdH>LLP(e{0CQP<;G zD@gtE22a}%OHI;-&!yppQ-&D)W!Tl>u`Q7yzgTq)5an&er<@Au{u0*-ClPt0e{^sN zfwYfsu)~w1d@B&FsDC6?SY8SQ?Y-2WZ(SJ$27793!uI?K9Kk1K3JPO1jEstn*h{17 zXY76K47B@KcAN-B)ew0`Quw00O`g;t;GmS#C)R+FD{$JuWPOi8P#7jE9BdpBX@_=2 zb@x zl|XkmQDy#;sxM7yD~J>(VLzeHbk<mpm-ap@vl*rYA0VK40x+_+D36-g^8AW8$j7 zklWq!;XCWMulcQb1O7MJrGy-502p>GLAI*k;Bv-h9LADy3(q1`fOI zqHMx57(#>$z%OOONl>QYc|J~%?5e#B-(Lhr>h6;x^9T?cMfK5YoA^IW&qhRumi+1F zEF3=psPD7P)xk5GpjO-17w((?5M!G5$SFRdf>GW~{g5WZ6 ztjIgEFHZKQyV(Z6$GA!7`|6ik1_2>@V1^N_#QuwVf(iP6?Of-&|4IE176AV1|8tv& z|8FOObQFj!n**>4HpS&hFV}gdi>1-GDgpL{ixB9_>|tV%2M__r`?oH3G15!+F(ha& zQXC}$WJcG#&xT?nKi@LUy83{v{vF@7;mR zYFddZITXZuJ+Z0auhj|m4dK7Jz?3&89#TS7;bj0FPmmcMHZxDFVQr*-Ntx)DorSvG z7#YvKkhfDnscf;4Sfj@m?M#wami5`^%LuAHtvFj1lV{@I=v}C! zgk0>-$-($=97xzx!>0880|fQ#$snqRZC|pw#)aHWDzb0?8R24SsU6uPEWj5{Cyrg# z*6zaO z0-3(~`Bja_^c~whd-8<1oErp$fk>0fJ9qHKK?Tum6T8L1O&hHkm{o5-FQo)rUv-2< zUw{0CS{ddj>sM7}@6u3#Z7t4t^w`EWh*DAxGK9X=)A5rs4GDs*!Fv!=eVCi0VD%*l_g#=>UlibF+2ZVh%c* zEcFu0^zZeffPB|bXpKytFDiWql5gj?DQ zK6%~aBBzOsYyQ#%9dA6g{XZ(c^^vI|gndVj2IuIe&rNmIjBwdbJ@%FO^=DVB3x{{^ zd;w}XxNHoSl~u1~kZIBqS!i5O0-GxffAHX8GwCxS_qpOp?-e>0$U~-&S5_AxiLo=W zva_q^7SVAEjlCTUN&S21GapX+*;-ddlu681dljl^Q@!C&mKj|RnglnY3hG8Pb?y2m zE;L|`F36ObZE)gJNlw-xasEZvb)Q!&Q`FkoUNh-0?l_C%gp_bo6Z0qy}3Pqx-vOEGX~z+6Zc@P3W1aEoF10;Pfz&wdd}t?0yvJVbP~mgBu?oF zc&tDH6=!@h5|Q=UH|3(*s{~j=BE?cdOY$7cOn6k*RJM-5poyP=c`q632vnSG3;35Z zKLh*Y0|UZ{p=y+Zv`KAdZcK!yZ$5EtG7SM>KeOnO+L<;_a;rx7AA!w)D#1J(GxHBP zLU7aofY9-q3vb~Wt&*#b->k$=WioWRYd#;8jQ}q5O_5mezHuB%rxIY`5SZ<#M!4`( zBbep?YYq=p&v9!y z2JCPNp^JqiZ4a!>=HAbv@^Aw__L1-`$EnHLfx*#t5+^F3ImB#exIaj`WK?Ir@`%gs z!~zmoPJ_FpwFvK?l#qh&f>h`YPu6>MaN731LU!F&PV~5U*+8veC};{n>Q9f^CfSpL zB2K!w_We2)JiM`TKA-aQ#uuOjyqLambV^Tj%gFChq?_gG&3_^ij;<8XhD1`5-1BNc-Q{8EUz~5EOB&$mvJq4AN zi{v7hKkNb+5Y1_?FDCV3(Xpz}x@}Qd%&1PkC*Oeti<2p~WL1P&A%kM3IBd_!Rh7|2 zv7{<^_VbX^#SD37gc?{@AT*^h4S9%>w1N#6?am5RUREnU;5O+PhN;boIKco~tJ_eL zHxaRH(?%i!M9}%k(JX8q9jW=b*ehsv^CwZhwuJ^?2hVUH@B;Hy z11C9t3att0qeN`f!}QloCOWy2Dm3hYE@M>LX6}27FOAtoKTK~hP(EdY9N)O%?6nWY zLc(a(VCT!)MmYRm5Sd2hw>|T|(FCJ@*R!jJ#nf4=PNc~ zu1EK^jW{+bD$H~;efUXYjHJGrq+T7k!I)gSu8&K!v@ZUL^FC%S_QnNQusI31o-tqk zG0xsnZ`cXaiyS9~!xnan7$md)fzAY(Yg(hN59pG21qABYW;VfN)JF2X!p{t}-WBIE zfWr7^-RO@|_9GMKwyxcAuWw31*BWqXr-TYPn3iXsHh~~4(7D&t={v}7Z+$WB%2^)? zBcM~;G+v-MZEz)5uOI5GzEYCYoX&VGvv!72jpI;>^t0asxgo!!XP zP_RK!ynAxtd~$*M_L|EDJKKpdZW%DXSA|!(YvBcB^l?s{uUDG4afi9eREgHjw8)vQ z-TiGjz|;GwIHeXyTBXXxx<~nI@`SySsu=CX)*5_d#ualspeg)1d`qdds=i#CU z#T;B0yV^eh2b6rk(Wv=Vc~fR=czOF^mFCnKz4krVKcCxfOPno-0<4TGXQ%yir)^8kASti+ej-o`AQ;{Et_To3 z4J5H7u`&B+i)z1uKQGKRy6--@*+O7wV+r3N80mmraHw#r9wgDN{Xr)~Pa+6xyx1;p zrdjxtlb-9%WZI(d^+);Al7HQ%S^*T+82=X!yH5b1L+$ED=|XT{fS>>BBKKbyT{mi| zX^F$bL*T>U1WcIq^eEYSvNAIrU0j3!C)e267+}2^jRzp67{ij za?6>yx$6OOioepPAqs#*OyfXQFb@j89M*ZLZ2*Go%B=M^!xQiV_Zh$d7o|>ICED;@ z(9lBv{ftYX#(4dk{?VUNRSsnp6>P^5E*9T!-lq|mcN&*Ka@87L&54H~Fi7+C2t+p| zUJVaTQICtOLia$rVC_!Rai2h?jHHHFmD4?7^&;6ZTmGis-2dcqmdhhwi*>47PN~ok zE;)5Rw*~Zm;!zMl>57-?# zKpM7`EC_{W^0-*^pqNU@r4iaq24p_a(f00J1wW>^+T?FhYPX%!O>gOFW&%J?(8%BD^6l+sB@kE0i z_e#WtGtHmV_;rPFg3NNxq2>hI>M+y19voo49}ym$lEM-m7}{Ug8r|^xgTJTDR1P4>z+%F(+HvMiYpTUlSl8i%x)x^oR+l)#MkQ4x`$C7SqOL z`lR-dF;TC~H7#a72 zlP#BFU%T>3|%axd`EYsMC9>%3pg$fAEdkBouO4Zo*zTA)AHAsDy_ z@ddd%HFkDMsPBRetAq_?079H{_>CuEL~w1l(itmjLAY>9{46piEcke- zd?d9uNc*(9I)683E@<${v+NIvl|(X773MDcW3y)4-Dw2^7Ms$#0v5k9FEB@9zS{DJ|GUJszl%9vHzr{IdJ z#^W3MOV5JTJM{9TnjnMReVX5UX=%V7pn`Qoi<}z{+SJk6_7TacqV(kNvnA{|Y^WBS z+V?4;T{-Bpdv`|}j=1^t$V!Lb&O#aqj6GH((Gdl|TlB)+_pr$_j^Poq z32s4#wwWfVjN;^=aw1g0v@i4PLE-qY{(kNCe)}6Jq;$XM=z3l1e$P_sao%{DzLWGN zjgY?W&H;h%E|Wkpvc*-)SFKd3XZp1Ya+gUf=JU1yKZ~7%7u$n z0+148!hb#Q3?|*nj7mBW06~O&xlg(GQ7Y%YPb)*z+EJnpm#>vb z!<>t?rR5KygqX88yqQG?3-nC~k_od#t#8GF)tOUbeX-xq*%Qizm57&b8Y<&1**I$Y z2U=ZoPl+X+?CKIC&Rm%Ix%d2+gKutZFrW4?&@V!AM>7V{+y3Mhn@+txx_n4NVczv%1$!FDPo?bq)?u!iKlpI6+@O%uJpN2s?zcF(NK zZ@lYbY^+w&h~8utVE@+-)fO*X{ewxZR-#1Fkoc3Wr;j@an8BoT|1D2+E2nXl_)Yc{ z0)*wXmTzpRyLYWefj|zfnD&n(RVrW%uskvhZtw|C7%hx2BiBG+rU+=D(>J84w917x zJNpi;(oaOFa-9SjO=Tw^$n-(dig5$tbiWtGUbaizJE>xbT@|*PRMwh$tM(qrsEy7dxK^|l0bA(18 zgnltxNK|!l65M~D@?-dSHFWMmZ6v&-M@Ol&0xc18egXX%NW zVz-hKOt*6E%%FGIzLkT$WX*0_+f2+V<_$|PnqzPz z?Gu!V$|i;wlSkBP%ZkE=vd%Zggb=g;JVt=b0IB;nr@hzHh2buTxyg3gy*eYv(U4f0 z0kHB%A`T!;k3NK(WseL+N#oejg7J6O&?`JTIWbni%;BC1ocD;Om-aUB^?d~P+l@JOtuL-Rw*8^WwZs@=_%MIwlm6DIf*#uFV>-ctP1sVCv!?-%mb_GBSfLhZ`NNOUIFEO_YCf&vgHL(Hbc7k2itLIEUoO^IL4xuhNQx2aqW`4i*Tl;}Wj0UNA{S;Z z{Wg;@@t@SaTbz1#50mB#j9cf)_CHp}Rr6cujW^e^RAnM%qCeM@_m9rg_pI`94y-u1!*n?Mfsg(WiZb*xqko z8e^F`Ep?Bpi_hvaTN=mqPakgm6rYTq6OYQ3AtrKr1EI8RFb`9D0_G_=DcJCRlHg(&sX3YU z$e%MrKjL=d$xh9QJ<0(4ydqAHB>C40c7W!w)2H`wAm2tqc%NQY99vJ|Xkq!|(@0?9 z|J%TVI6Uf|gulT$s0lc|JI16AdS~XS2UW|bZ0l)MDWfr!?#=@K!g)h+oW z%c7E#{gakp6FGHtf8QL_<4j88(b=9RUS3FOd3|W!DffPAYL?hbUx5j35UCgaDY$^W z$#4yG(bz&lcEAWIeXe$Ac&cVe0aUTVqilz7YnyP-O4b53wMj#Xg{(Tw}fT_>cK&(32Xo~%~-r6V8qV)!lhdoo(~B^4xxD{7wV zrlmBU=2v|kR+DiL7#vN%>{nwdMq`fUx7rquvJWUsx_ygnh8)~Ii;DB335&poD@AlL znf%86uyz)GKAkBnsj>CFhY|RoYHdmq+2Qq>*(rrYBH$6pA;kru&!vOwo^$hLM6?1G zf*Viz$5)ZJaD|ID!FblE9(eZW+>I8BweO}eL!MhHX=eD&B=+`Q1qg%xA;mdx83V}G#{Gsl9;&vxqqLE z#(8;MB}VRkVtYz}D+;H?xTzbYk2O#TaB(wpH+OyvZdfh6Yx1m@mlRLhX0Tsmzo5d- z?nRA3Ca<#~dwy+oU}r4onsofGKbK5z*s!4fV8Gm)FquNVA!ngoIeg1fuBYjAgWcX#W>f6l$5NB6id-J?f8bk`FRYS*q> zwbuIPoZp)-Ynz_drV$~*(p4n&B;nbFc$ zBamAE<3|;Z8NYyKcdjA~M`E1!Ruyan?Fi0#UBuN(+_8Y{c z6cjjb-n0NM2FlZzr?4fq(FN-@JG0OLfK)Wo&Vi|@^3CS+MR#eEx9x^@mX~A!-H4VHlz+KK{x zIWuOh&lL|m1WC3HsayNO$;VOPeKa9!dP|W zoY8n0pld#&l9qs&ip~ODDyGcUIzUja?g1A$7Tclg`O`&NZUW}BnbqdNIKL^2jOA5i z|7A%Pb7RgYfK#XbVaC-4-Rc#$%5>TXg$V?a*_2cg=@~`4f#LbyE;%m=qhg_o4*S9; z<`+sx`n69;lO@@cT2_JrlXLs4uKC}G7+`@(PMuR;I`KuzrA5L4THq1>vkXa$0rDYI zc@l5OxVyJIn}%lK(uT-j&7kPZta^+y_q5FXV5>@!u=?awer|fP`LQWrS9_$u^obpz zEPqLh2C*=h?Wufo@Gpcz6_1LVYv9;g=Y!{tqk*6fqBsqJ zRLaK{ukRsHZtC9yXT>4n-Nd-KyBXkbYGPu)>DHliReI!Je7RiYbL;b7lz-EQ$XuJPwTa|GN>k?5Y^ zU*Bvtan7pczg&9Q7;P`UNFpE|hZvAYGIjxy&GlA_sB2|IpECz_}T$ z1%{|-2vEC{vgAmG7S!nNjc>Z_rZuD(BS45^CE^q8Pzh1~hI> zPfytVIX>fiZmxHHRVhz|c-)2zRA@Uu3w1O$9ZL#L4Hi((<@IsOeIzC>!*v_Lv~n($ z8SJm|ls>fUjfa?Oe&Do7Yg7A#Fj@M7}@s;B-g2k1$GKo!3CVAI!q>y>%AsL=)XC69CWXvO{}MLr;H^1Yti= zsiS1)3P{CVKSG#f$PBy$2rT8jTpVz0ml?^tPPsP~vkEt|;C$CpB0$6|c)SPhIzZ}$ zTz2|`A`A0NFP0^H6Q?S3tEwJBAQ6Y5hGLbSYN_S%q&pZ9zlpKqYE2U_J&32j z(EO1joDDl6(98W7?hrKsNB*qRLs;|JRJs!Y<;(jzb&r@1)<8!nK+J2VXMEI?rXIgf zOQ{Vqu1}&2EiI3H-Lk%AkZS>a9^_^N1d(c^WHpQJqCFS2So^E^JWQLo2TKRc|CY84Qft&HI@r*0xr|HOl0U&2#j@tLBf(C^$ z&DilwV#S++t02-6TpQod!o`rptgks9{|Uv2@ImHZ)CjHPw5=+`4W#c29iJaf=Z&3i z6PbV)>?zZ#h>y+=tL0VDoF-^t(t324kXFBs=&Z~~jgN_r(oKfP)T=s63H`)brmGK->KO7jD8^3lmL4HptF$JAgw_0@<{O~nC$=3y!u zt)X=rMaL*LDLfRSzT;&Vpy}$k+T7f{-77nZQ~$$yk3iZCIM-YL;Mg2Hm2>PZ1uOyU6H72E3P9)he9T!QkgQx+ zTpmSBLBlsX{|R_nT?}8-8C}LA@+%AjEt(w{hFd~h>}$n~>>VM|I7E;^&1ZxtqCk@| z_C+xVL=MVhnXkz_b2snZxE{Kb$r$*kPL`K^=7W(6b)vQ_R9|CYppnE9@7&dEvx+ni zj$-Nm9$QLEE*ksALhF$;C?{7`{8Mi#Fu*2f_K8~DxZ#xV5843;I1yG4I?IU?!aypk z5FJ%kd)9if^sq)r7M}ciL2acMbq7eg!xnaSH@{%5saY6M_*1Vbw2_LuI6GNo+F0Zr zkBrp;)mIt9%<+)6VCaV*Uz9+$tt?Qbq$Xva;Evf|{#f=YgB_9AXd15Ev+u`nd43`Aq`=mmH2&kx=UyFClJ`H(6)jF`SE&#ER3A)pouX*vPA_nkIC2s0*R zQ_~#LL@Ioi=%;smxIera1Z8|M+tQSgi7oodiYbC`8{QIDrXj<%j>;UU6vV{EMX}riBUIE~nuovB8f>WL zf<~kHmj6_}O*QQ{`+UB?z)TH4*E@)c2kI}93DTi7p{fRSB8j^jn0WyPO_@5+4kVds|iJ~ zaQ__MxCkvV1RkFt%ezQ#njak!MTqWhiKqz0M68Ey_il@aK<2D`d{fumHe8#Rb$Lm) zY52*Ob)52`^nO~IIRMqZm<01oC%M+`s}U9v561ehQeEP6I6~qi_7lmqZ@R*eIw?2^ zDk|!5UaO39fPe*H2_&DmKikx_l!@ta!FE#WuAv8dELV1hBo1To+!-QXH>XIRsz??vtqCWzDVGoI+pQZd zA7XVA`tW0%EJZ(h+!Uz4bqK@t)$r3RRATLQ4?gMw%SK?ZpyQ~U*-wOtzWO*Q2%~G} z{d;RIy|2C?4_gKr6---y-?SJL_f0=}bZSoc`cLjOuxJHax3i0yWf|RmG`N93IAmKQ zUWJ+X5k*E&S)-_(S`+Mke0HB>b;QEg+0tWaK*LA;yR`1B9Gex84)t zhG7*VP1UnMSDcLxIhLdx8bHsW?frU6LCt|K#q9m%_PRmde`5xIntQ~J_2->z4znC(3e3x z=$JDCjLAg>Qg}wcl~vMGN%UAQ2%%znV8>PNA(0aPAv9L88GG@?t{It$1$M`cLQa6x z+JabY7~SLFRoSRux1F=~?BGIkV<5=*Rgv>-e>!B;5eO5+K{GFwP?^I!-bB8PKMlRZ z+e?&c^lI@9^>s8sZ1Axf=2lKB8pbXLIQQZva!P7)+J0x*gktx2nnbr?*9d}xWiKs! zzqjhhXM1KArG1(WeZH@vz6?^pT?$V?V2O(fi`qxTJ67dA24cO9D4BR-_Logy;fjK) z^gKw|N_|z8Rb`uP@^f%5%kXO{erDDe=>0hr>;ertO#6cn#i*^3df|%nh`M{HFN`I` z0Os`i(j97a=yAGPtaF&{s&-g_`vkj#q4Z>lHI8| z={YF}#Y};VVbFKs)J8R^NhqOVzl&KXNZ8>Igb?a6(gDz?u}AyB>u&YSLGc2l!4Aos z(-Hn~7;nEL3K3*g2;V0E!cex<_2Pn#YX`}3jN^^seAB}! z=XrV+uZuKoiyAlB@jL0ZvzRw3x_x+%aPG<@A(BaT@9)nwXT&+>| z)20`djE@cjHepiWu^o8v&&D>dpSooW12obeyMqSy4mG}UPv1f>zsQZAweawW%lKoE zz?J#oDbM7og~s3IUk7u=(e^E5=p$60L1=TSm*rT7F2b>8`NLl4chHSJ<~YrpbW9Mk zwyrZdJ%4)NhyjK2g$voS78N|h-!T z4~j%vR<8y+7PEfI-pzZfv-(OOd?L?eR!-B%K4d#kXJy!}Y_jYACk7)f>OZU56oqBx zfCh;RjgU5ejUU%K@NWElj;TnF+)>YRs9_vX6w1PbZvHg3Cb#|1Gr#(RWZZZ6chjQi zQG{gum6p2XL%}BZ%v-?y-QD@1$GC!g;_kjggdAcjnwbXo?CADd#;-q7q}%JP59w5m zK#1A&Fvf20TwV|M#eFXV&%=^GiX%`_4l&QgLGca*up|g<#{z0QjYMgFXc7a|aRhz% z>s#mkz*>B+)YLu4sDaZ5+sjYRJ63AOa_8{@j-g(lBvS1-vU=ZUXJW>H-k79~}~?Rny+ePL8og#HgStn9^yol77g zA(moy5?Y50`Z{w>OO1pWJ*rbqlnT6PZ*KbWPwJ@;GDwK@0WBdC0t~$6%RXk=4}xr< z^(-Fv@D7hF%-8EAYTpnM0yop$B>U}4V7*l79gVx$pH;=w>Q9|FJ3-3}rh(kF9cr-y z)QPf#f-@wr=vw_7%z_18Pfu-AnMiXlz~4U||LZ-)4(HDX|3eo5PV|2=eDeQpSHaV5 z`Y*IqPi?YK$Nyfa#D6E&`u`^cck_RJOoCtje`g%N)`eMGWMpLpbvcX#2>=qo-0@VO zGj9L3dj_*a%(yd&C&vUM!2l#{e+<_eTRFeta)B1{%wVgqf+hLAD4hF%_n?{wt^&>J zs}!?wJ#FAjkEAUY*nAX|@)t(VYItmF1!STTR!cTXYZVADI>q2_EE)+y<*rPAZ;3Jzc znUrqyY#8pvwZ5J)xYd;GU*o`#-8^p|18we%e!#|bYN+=RR|x}~7bo^7BY34B3q!G% zzW&r2-sL157&^C!pXxY+gWSh39fZKa92EijIQk1LuPF?6Uo#o((Q9{70OCI=lIiYr zofKumu-}&w!G4F`d)tP(M+!bh;rr9aP@Y`?^!Ft$8!XE&V7$k8j*QgYHo|Z#)G^_L zfbdWVGumXD5-mWC>Ge!|2h0f3U+#HL&(gU?6w& zL8XoU=+haTCl%b&_dQ2iGSGe?Z{grY!UyfKi_AOMgP3m99#ofz3nSi*%Tp=YXf6n} z3U1G|jXyt~-gJuy@4IgTT)&2NQ`ghx*fu;GI}HEHr**LvVfLVz>(w%d>Ll6?X0 zDM-2o&l=WJODjnmek18+&{Nx@gk+i~Odq^<%@V24WJR%@sN%1|6Wa=v^$>Wv2dacjOmBiY1?HaKJ4|1wji)H<`_?xt48)Sp z%5Q;8d~{M^Xp*CuL0$qbbx!v^;VY|PAYU#FgZ140<F7xPPY#|DU~Z7LD#VcSsaLFpbU{n%Z`7 z-6!4jvN$G!h|omNYayphL&*{0wv^j-vQCfRG8m5lOtGQ7*{I&j*Q=-SSz=MbJZ@ zQIGo$$v!j3-F*k?B(C1Mu-i&=acOCi^PJ*nIThS(3ETQSh z38_8d=XdJh#kE1~#jU2NX9PBR(7r5pNoPGRV=*h1 z^X@!j^^;Fih4Zg?nnFBIivl0K-t7pQZRJD;HzG6!<(VI>RHYzPq-1H%#L11$^(W~# z95!=oo*0!6J|?(Pk|AREN-ovJhQ=+Xk8+u#9n{TuNC+N;$q zA!kBPB6PygsgVgQ`R_PUlkts&3DKdQbM;7Hk3r{0pII**b%^8u-b7iG$J_VZ*QO$- zCN30`0EFHO_6JNM$Mclo=wE8z zlJMBy6$$#*xj0W0sk`i5S^3u$HC;~tZ|JQYU*c(@$J%O6kL&A4S%{qV35myDOkC9F z>VCy;C?q^0BHIA;k)a9f1qb_8RFq6Nn&kxrv7OV>&@A4sO0yC~MsD;~PZ|!R_Gdj_ zIytKR$j(WkezL#l$#x6f}N{%>#v6T35~I=4i5;vn$uAieR4>20ZZ`aj z!y?-yA6a(XcV&EPz0=c5MwYWr6p1C&M3E!|ysLss74&p*`msDHgQE?VC;6f-)_})%b=h zk7I=^^`8_Qe1K>e2YcrSX5{eO6+u~T#@P4D+VDeu_A~+KMi3py?C`u@N}vj_Ts6i+ z`mtGC)9Sjmy$p9j7Jg$xH4ZNkEr^3q7Lt6|QG@_;f^RIh}83B|7epKOQ_BcUCPpZ3aBv2HrH??Ci4WPwmg2LPSKm zY#16Hx0c+wRBJdEooA=puZOe{R#q`IJx=>QuTMK;XRE8P&I0?28Xx4u^*2EfA$ZjE(y+6D+^LDeBqd#>^bAD{!%;K-?T+_OM3(_WJ z3Z5HfJ5ntNCoWNIs||ILXIgJ{ILtxm1=eKw@Mz!22Kg!xvv^#sb0Dv2(Y0%S`)b9n z_kFmZ+4i-yE+;Anyu%QC+7v6iPn~eMdFmSG2nFxv@Ps7UsK}b?a|ixT$$W?iMmx_d z#9*zmi|3Ep-_yoeTa8rKi1kQ`AKV-*&Pzk-A6Xbq2#e5~9a=Lq;p6|St}Y&6oFck? zjm37pk=a2y%!XCJxFS6e7{tgv#!#)27@<`v5gIP_UTDqc9(8EajmA68xzet$)UxfY0mGN6Zb@$x5vRJud}qGF-9j&RXBa;Y4H zGJ-w*4Az;Pu6SHQ#q`x{Ex#}Jq*UJ}weXy9kQgF&w+spJw^U=}ip`Q=Dvu6{P{4hF zz!Ttixp1WG%hu*Fv9SBUyr^VlQR;JC)^Q5@Li_5(=F;lVqvsyCtxqg;cBoosSwZi6 zPP3H!NN{OciA-?%eY~>9hlrkfzWA*Kxp`kVtyIgnM3jw(kyjOz7HU{kB%=Z zTWUzh>?=Cao40>@^^ zM^2#fn4Dtn+|S?o_|+-@i%PaC*sg zaUBsbqZeV=W7BRRATs4Np@PJv!Ghl9Qp7G-k1sNHc{y_9s9aGoET$k#(UV$)7 zTP?>2Rgeex>!=vZfqt=0%N=?!yxIu@3^sOG1y_{|RhYVT&`9{W-Cfs!Q-6Pdf1=9) ziBrwB!Yv&&bzxqfhjl-O0!rh4CAoWJ<0}fOh=>Tq$uZuGE@NHYG^5d#yL(pz)qD}! zuwU&Hz&2b-iJ{@j`%gfxWtEAC>)nnoiM73bX6gRQ&j3^suAbnKmuMk=!R$;-PR9Kh z)2h?Yy*yLTdl?!;_CdN~Nm&(LjicnH$V_d^C`dUPq~`Y2}e?3vs>-T9KXyXwwsl9G9eS2Ll}lOZo>ewH*UDcnoZoAdtGG&8oW z$aSrhX}0&$d^E5ss&F_LLAEPO{94X5Zf1yK&4t`AHCi!@1F$4k!xQ6k4RY%ml|$ju0I18l$lI4*neeV z^bHQT-w^R9urrZ1_p~ZNAT+$qqYFJc2jL?4N`*7*-RZ)We|^eH{zG|%)d&D*M&lVAO_O&ZsG_d&fa=ioRj|C@T;_E zUT~X?&MY{!`R0|P^pF!OzfcD2i9{z|LQ#5E^QUzQ$YN4X3!1Vs%`8tXE{tc%b1ZF7 z^_-HD;f@X;qD-CqoSb_2&lGzgy>g$3KFTj!BG&!EwFoaF)H=C+W)}Le24Q<`LXcNG zQyUzNs?MXn9tiltb8mRB`ezfo3+sa(mC75W(tP)O?P0wnJ(v4n+b9eXQUv8$7(*uF2TEN^TB!hXp60*jiN_3FZm*;Wx^tIeOY zCG&Aj+$s_kI&MV7aG>)q*wKCT`YjFy8Po|De*1YrR-4H_CRNe|yF(m7kHISk7QS#< zU5iYJ;=1>I0rYdXzu!P$M|QSRa>&?)|KQ5I#)C62{;tV_(#(fSu0Pp(8_POL>KZd9 zkst`jLmH=&fmN?bJfeb^iyjV&kFj%DV|K_S2B(mqo~!aJ;5(aQheFhnp+SU4O5n-I z@5$|xqcx?%A8SJWp|#vISc-Ogxj8TGy;@}&cw?etH1{3oB1D7VXYx#InV)*jjvH`& z&sX4ziukE&2PKOT?)1HqVGGN3>S_2AXPUajy_=ftC~sAflM#gemdC4embrvT=j*3El`&>>hp{}gJnzsR> z=6cWIGne(}N|5-BoMbF@XZLs=+-f^9pw)Hp(Z6{)2ot*v43-rt{tz^st!Zuu=h-oqlm zYnj?h4Xn5Of3d4LkBp2Ar!&blNtdIF^P-`lacgj+?d#8>&A;>M5dM^A{m!E48Xn74 z5l0;gWnrS;8Q_VOWqi=vtvuu~bABKhM0KmfT%~(BJ(SMAnlrh{%+$B{P_%{@9B*PCCYd$9nrF_U_X^bVOttqceHS>P{5c{*;*!=^x*_%{>ibXP z2s01q+`FU1CE^IFuFA~Xb#HnS7eN7tE(ECoA+yH4Hft-0=dP%ZTdg-VUoH1+*xroK2P7K|3ZC7uz0ZCM3x^6N zdwDiioO8WZ`=QW=sgmmQp3!!&wW?@}Ldtli591cK%6KFeL3t@>SCU>IYrF&+Dii6I zdDt}O*Jv7W`y>KyG~;sZ*2l2+U#n5+Ey+`sQ?|^Yfq8c=T51TE!)jpkEXX^=wHDSyb=Mf0g#5 z`zZ{K>6jUHoOO~T8_g?cEz}3aFRUq-1 zqFnO=Ut;X_ulS;E7IbJ=*Wb1UI1KI#ELsFd=MzBx{AOycmH6g3`flzJq(eT^V~c&WA@%;;nCD<4bRGu5<5+0t=^MzUL2gkjU1AXroQ}115L~=H47@$) zq-8~KNm_!QP{kcg+UT=A{Sox+7h>e{_yau*T%qADQmS%PMLicUg@}lt6WE!U+NK44 z6hCfiIj3xq=M2VMCcF_N_G;kmh4$PB80gb#N%or)5Tr{Iv=N;BQs0dKz~YjjMQcMW z&+f+XhIP|W^yYwAuNx$Z<(P6DI)6H~IL2RL>EO}n=4?RDeMF0+J!FLUk|m1FUIwCNuO&FnG(d# zY&GQN7iJxg&HO#9kFD)!A)sA!rB}|M!a5;x{N#>2`oL{VElG*V1ba*4n^#zAKlkJJ zl+~wlqq9@yA?lk42^9D05&jl906#`1KS#EtiHVDAIKJ5>alf;&v#Ur-N~)V(Cm77v zygvfDlc!Uw(sJM2ZgMCDKd-U*$JW+%5<9IWR4t@0r?#$?pPj>IQ~yi})H(FVqPdADl-wk{k)8O#8Gs zQW97Ul+4{1%z7h{T%39Nc=;c$1o54A#&Q6rk&y6~P4U5vIwarSalGO3tPTpI^dOy= z2{cLzlI?4HRg3%%2ZZ*nd+Aelj}KMYTD`;F$LEup8B8JkwKrOi&L;OaMF#!xPK)=K z4aXDeE$?`;!}9A_&(Px73u-qLA;eCO$rHxMPNYIrqU+IC2l|kOKwV!BUi1_~lC5te zyNybk_QE}l{Vd+}4g(6o*WVOHikR}z4iDS}b__OLF7XAOZrAEYr2y zNZlz{``OU&N?aV?pppiwc*sYKDn1B0l~*)AL1~qI?CYJVu+S#GOIZv-Sn6b}!UARI z>ZwUq)(2t_fBvFd7cO?T>AhO8SayD0>Ju$1RP=uc)GW^6G?Ez|Pe4Qd!ZIWagvAWND9D?l0#$s60Yi z?p}_~^l294vM%0BDfi1THxnNPi?q6yGzV#yIM+gF|FMYO&4aFJcyjpo9vIN5Nm8S7 zXOD?&Mucfw<64SjlvG7;{Qj2I}mBa47=}kJT;&H#+UV7U+5twKLV1{rTq{z<@?tCTM2ZSS!~sp|N1; ze)dx^OAc&eV>J$Y|>1?`>bDZ7h%6#9%D*fIl{) zabFBy9q>R|ZY2kHwN~;U1djjeA|v;G)T&Y%;@x>}sSde(naGNV#S7gVOkbDd3g&+g zdErEMpDUm%=!V3SX66zyYQ&#QlZ&kl`RO0)Q?~7-FnFjwRnE%s=|+)_g&okCxay$i z2-k@t=Q(oQ_&C|#0d`CbE@RpkUGcic!r($w^tUj9AD-k+l->c{Fxq`1qr;hu(^DfY zf$%{E`=;Oj$^5G38UoIA9n5@CGoQAxF%AN}t&=O>cD^5DTYry(rir1kbq z!EECI9%(5PuzQ|NQkqH?W9El@*!Hi~zo6%sPAz7GNbqV6{&s6R;@Td-*23JO0K!ar zZ`Bev7v`V*^5p3!^5~z#@WqoI=hHFt5^zcX9LaCM|NrNwkN;R5KKL8Fp0*!rYr6~lArLy_RN-z2+iVGb7#W?_N1`b9YPDErFPc`rbz@I$d zJn_CefOvfRw+HmUP#9dgrz?2Kh5DkOiqm@_y>vr#wK^|t91Wiwt8%cvt>IxJThmeP zFFK}B?98t0NI(l2oSAawR>JkqN3M1ozW3_KAweb$UfL4IITuL#uN&Uvs?sqO89ArIh#gnkJ>kLrccF zBwZ&uiwT@0z-UfaNU6FK#QMi4R#anSBmz*sMtv+hsxvQ7@M%~vXGc!bcDcB4IrV{9@b6b`31Bwh-D`>}jfb3JoE5=tvmsF?Vo z;6Yp1fd(TRUDj4tj4dqR{IxtqHRlv1j)>y!J>-uuT+kaY{{cqORyXUu%*Bk$Q=xe`6sk zOE%Oa(cI8@`sg(A);x(WLd<1f-9A>=Z&L`}$}S-}Pu;O|jtX191E)6^?L+z)2b(lL z4lf(`*=kW0zuTi6lxW|7=H|XLj6{_wDX2m&#`JKwY@17nKA63qZhw&9(xnLRl1SXx zXg|4P@Yk!VipnXcEd^Q8pK)dL^8uMA$G*qDoQFD2V!~f-)aydxR{NqY>7)KY6=I_k zDKP!p?&c|cZqat{8)VcfHbrzoR7@@O4oocy@<$9dq6nqA7pKShn0U2MuC!<93icD& z&Vy!V?zS=7(8E~ZB+UX0ByH`AGhnrs%MD8uJ`<>@jxHUpJJ06h`hBTA9hASu=_T6F z$CgeqbXw2;&UDZ-C|fiX@bp%}YkhwK1~TQM`&oa{naX3YyS+q0a!jk4#FysjGgoDx z&|klH;grpZL|;lw6Sb24ly?{}UgO;gFR3v)#QE;8a*TU-@D&DXr4nWp-S>#Swnb?ynTxz-R+!^1^E$*&& zD$S_Imf5K(*_hl;pVowDD9(=VR&z&2zuDV$UNmE&R~*OE$j#2jiWljLCBdmNm6EX5 z|0<}vJG7{kA|fHZ*%9RN?Yh3ULw`JiSVTmVlP`9~&03$oLhJ$i*O!n&4Q&%W;v~z1 zgLam!@$@s^^|LJbQoi`TBoD_L8A{$Hb>Of58Oh`8xiy->ZJOUUvLSr17|emTK{J6iy{1EMP8Pio?9u)#oX1|E~6DPW51&z1(ek&m$3n2 zf8Tu43^&82>FDk#1=jPQ@yVKus|E&o`XIvwaiy>CU9N0rR`4(+gOIaR#q~bsrj3Xg z@R;N#1Nvu5Rke$wb11nYZM37OZ+gLJKSo0FU`1RJGjMubmYANZNZ&@bsFbeZOOVrH zZ_-qjo%aVGlWS(GrhBIy4G^Jsa&5IIULNGY5V*T{kh#q0fo5h_kl!k`Gb9NnM8BgEJQx1G)He2uO{1Ziw&?%Jv2s<&%6 znG2D!EhjWLfB)dk@W!Zm%l*)|6*Tb+{?GQi(J)x)qto*DOJK5W+d5j-{EOtgK8QD^(=t#Cz@P{#6tX z>vu)P5tE?2C0CRQb>iPU7?z6|8qVG@4u&}rk1OFHEBQB zuwip>u6DZzTZLvjn+`Xcs&Fe_Mw>lgl5CJ??NQV|nzps}8KTTlmkT3pKz&hZXKOa^ zpwsb}(HJRW5iL;y%IWsG$pr7)Vkv`Fq3PeM*$cd_9l5S_O8QU{O5(#QkIzG6VkR6i zXN)8wMR&Fpp1|?M``DTX9EbRE-N|3UI5_(g`EPAVESEBmjMRdQ(Q30J( zLz8Rb$^2T5RFlp!tA9U57<2aCW0yZ%ppGx&UWx6xTVxL5glx(~A!_AV@gnMnzBul8 zQ=RvTv-+9e);ublqI?7RA_DM+U|+KDZfeRzdQ6Weh($OIN)6II7)^d1kCb6!W~=*UkEE#ect2k>LNiQ1 zHMw6wagfN%A1yl_)1U;=%@(D>=^&EqNj@j$3@!bp&#K57fgw|hB~IQpQx$$>yhET& z8;gy%GCMQVGO)Y7QGKaG8sV*&l^!J4(`B&67s+CzelsAF?my69{(^@fAn*=}^=`K1 zkHLs_I8qD?SC}^wdB?L^vOfijrIRzQwwiN};w%_yKeGa$qC%1e4rt>s9t&>ud3g}7 zW4lEy>M4*47l7IM&B`ca$DjYfIj_cVH~}e>drAc{Ry}6-+G%pRX9m8#JHRtn?URn0 zlncBpRd|Cnr z1*&Zi*1Cv}vnZ3UTsW_tIH~d~a?RuTw)6UV(B7xxZtd{aT0diXvFhD0n7)xHG7yY< zo}qKpUW$)DJ+n~bv^ngP8JSV0qd;MAUp!rX{}DL2tP>(acN^#F--u%m);mM===d!T z){eFA%L7XFii>!D3ezBsKAO!x9#_r&B|TnsV8E|u>hOV|y&y6%*+oPvXTc*o8x()hcms%MQa59iGIRYryMLlu-3dy&gxXX#m;)(2sD8l1oTyy2WI?0pwA zq-8ZZvQW3ts5l2cu)}$Gpnfw&OhkM%e{nz0M=FhTyB6qe^@;zJra6HFp$fA}*iJa8 zLjn7HyW!zsX;V2mIlAv4>|$~%&2gZ@O6T0&H+3$s?=KLl^HsmzR*9A+TeEXKF#718 zLhe0!PTe1~>?B{XH2zBJ+!Q#-#J7;BPRgh$vF_MyY?@KK>t6lN|7exfSSVE_g=mv0 zk&IZ$*08#fnOKM#!G`jk!&+G4?_ga>yyRdRBU>yFo0yg|kHuz+-J)q(RY^1-dDyf5 z=Jk_8WJ@bNFiEilOR$$0+QBe>%W=vGTp?yTd&4qhBT~WRS@JF4efRLA9P`PxpvRZr z9OJr|#G>jJtWkYL4Y=_V{eqQZYeodGn@=s+X%lA12 zJ1K2%cZ}l_h(tZrp11`+iL;8_7yDZVpv=-mzxT>BH{}?g+&F=+1AYjeH$YnhPElSS zXv8zr)ccZEXblo;Bm66vF+xy)N&a0u4m`Jek1neS{eB`Y3C<_X zbCaf|Nby_ji|`Hi35~l`L*2(bsX$z?8H9E40w>;Ld3Ha}!Ln9qcY&#qTT;aeq%p%I zE31uQR%67MJ;3t&3%1s|K1w!%fU4&^Snry>r5~bveD3KC3bty$DHsU}Zler3;IU%801rXL ziB#jmpW)(&SJL)$!d3`x##JplX@MHE;%2{jZnsBsorKfg^FdZBpPOfd0VbQ^>6d=- zW6LD#!7|2qxnyVwlOKco3GUXGdh0r}#59~*Oe83zD}dJ55+mn>rtll9TWojPXQ0Ha zXvJH?R%#Gy$!*JpCL^e!!gzB3bC1LClN1FHm!2xmj|FEa&3zSLL4@Wma0dDJcXf6% z+;SOa09OE$-PC9|?=Ek(==Tg}4CU$Gj~)8LjE6o|&B+h&R7ciF5lt|Rxj_CnXL~>4 z<)5i%d5a1IQ`OvBCuQh5Awi)-Sjpm=@e*iP^_v_4V8*h$7 z8dpyl!W)kd4-eco60oEjg+eNlEOg9+|4_vY7TkN+$c{Zgv{WH7eNLGo2O1Z zXo-FF^4H^Zcfo?O=#!&spDp5Dzc0J#z| z2`Q!@iR<$BS1In&e8qtu93Ol88;R+~Hzf|X_7pt&&BM1JnVtyAiQL4D=M!lT)&^6b#ntrv!`bYh*uHto344b)UeZD4{A z!tZiw6sx^^K*saPd%eh!n5rR$HB*uFcy(W^Y^XE-6BC+yWxm_k6YK0?aC`LeumwkI zHBN1Y{jQ#-Xe%t@=XBWgpT@bf+ewl;7M91>!{b*$k_8qI25D&t=R0-S3QCh6Rc>0x z8HgCVY1>T8;`)+0I6OmFUa={;b&#vm0m12?&2$&fOM5IhJO zoMb^AYC;cn_0-hZ%JNRJ&a$lq$F)&#nNf|vAusOAq0m0CmAl@G=mhU57@D%+ok~X?ppWWZ{0h8C7D?> znKS2{dCuPZ+0XZF`DSL<36=y^bik!WtbF}td&bo%y2@aDrknQ(YuWk^RMOhPMYcJV zrhCJzLjK^C5;aPeiiYm%sM?f45Sz6Kvzcdp2e}>Qz9Psh`N^O_8ivKS{mC}7Ee50F z9*u&ho@3PUnw%iJRg+tLo;wMFfZ$6S_x^*i{zQ@1T$4)brJ-PS)n7y{iq z%TJdPB0DA~(^y6u_Pi>$+L;}{uZ{Sbk4KdVz}j0&RP)v$bhSx>H~v*Ang`XF_;dHg z60t+r536toV2KSliloG4cmOtQCUSaZB$xP|S8t^=r^bfn_Inehy7ra&b9W)BxZe*C z0S#bW-&*6<>8eLriGZkxZhd%Yyx;hYm!ILQ%WBlNhzOvUJJ{H`JM}uXH?!`a?iI%8 zu%k@Z>VW+|$ONh6&TCczyl7^?U&Jv8MFgOXiWD**oIElfP4s^ZBWRfAOdbS{lCy^q zZ*Fb^jv>^>97~5aE}EVIi2xu~W5sp7b7MoTO((HP8Xao*g3d_ag~q0wTlWMi_62uu$2TP51~om&UK)^bnh%B%`v>CvX6#qc5%th^fd9 zboc%pUr^peW2&PEt*GA&UO6lV_s(Q&yQT@%qN_4Ay2l2`e7#$5Qn3Jj{CE)7^bI23Vrx7`l}`lnq^B$DlH%R#!H?$G>lMC7m#77(e6VmF$@A z(9ZO%0RW_w5uTH$c7AC2xCfjP@uTpXZRaHUeeR?MSFiX*pv&Khe=`}M5_ z#>KVcCD(n~?1F;a#io@*UvO?MVs@;{_%yz&RlU!g43KB(gusa<=6WUy&{cz$Z+Uth zruq6^tVSnB#BsR5G&h!wi?d#d$yjv2#lcAU-PR;76xuE8XIA|rB;$6mzSk|0 zsFJOF#0+XHYNLn{ApZRR`F+&K-W9r?m%N5mzpB)`d9Clyq8#!~c#3`$7bbOC3+Ew9 z;xfWQ#IdU9*HHC*8Sp-*73s5C;U-Jae{kgP_B<}t#AN&hLP4v`Kz#j=@0X-LBNRg{s;_si4g|6zP znf69N1$$jwZ2dF#@gi1TpR|1oczt>U)aY7w+5_i&?D74`vBtgf&D+^kh)R!SjykRJ z5mD2C&XM&?n?n{k|MSZDLZ^D$hDxNpd3R}ZG`Qp|8u`gm?Bxja#TqgB_1qLC>>f-+ z`;dcJS4Kp3#Z*J4ahEtI0}kbE3B&m;n{gnuUp?4d>*P2a_C<>AJbxELTCZDpgvEU_ zhfr2sOqUf7E@1gGt52?;4ayQZG(U?zQ`(@Ze$H_YGewaxktB% zo*4Nj9@fp#_#CUR+BQ#?uUn3c!!z%b2uHu>5lj9y<2udui4gGiOIPpAU8p+gYtHY} z0JMI3_0pL`kZWm65n!3cq z$HZIR448pRybEdQNNm%Sb;7Jy)((|mTiXo+QE$=Be1R=XZgThrCZwMmDl(z7lbB6` z=+LL05_PuGs$`&>`mlhG0Gzmb{N5|qer?gbn}b&;1_HYe3@a}Z{k>e>LoXvNz7F&J zb2ka)Q75=jxZ@A!+|^+P5_r>X!R+SX{~SoE*#Z?QetLa=r64j<4fA`qR26`BnS5*M zEX>MgIoOjd(?&T&{xTZ;HuLQTAiT;5d+1yO^Yiv8BY{DeOUtUaeNQs_9U#CA(A9;y z2<-%bM~2O*ilAdU3IS{l5tDnTcmd(CG_F zleHENb76+ok*nz%tLAe)Af9^n;bL6rVn`vwqW90`0_)vCUVx9Fm!q){8f@zAlon_C zHmD3w5COk^7*)^g-5=A?zVyBM?_&vC_auZ`t^;Bp+$w_JY!f&Ql`?(c8^YdQ%S^MCh(qJePu-=FCJlR_-~ zpCZctKH=X(g>PIJS-jrd;{~w-Eo0TY0T}cXP%XdYU;{rsl05x!r?D(qREB}I#U|ul;(RSm=K?NyUaLGpMLufFtFnGSYYrF-z?b1O4 z0*T5gWfb!ojOnvToK{3RqLhK<)GA;jQ^1M}mBdWW{9<_W2G!yC>*+%Z;A#KB;%~RHWAp$8Y)HAUgjWj|aH;NVq;5mD)Np(d9G7 z+s$ikwMP(8&EvO-pHU_MTmw?+f$ zY81*3Z@7?;26E!tq$N&<`Lf^Uf<4k&dT|PWfHvX)R>N6}1Ba*7fBJ}P1oZD7XOz8R zX7^unJH#%<(*Z?K{#JkniE3)|41by`adXq>9m9B3iWRDNO`#tBBgYfhX6G;)># z5u+fG!2-QG(5|#Te>~Yd;&O#`xE^3LAJqECbj!Q6aKWk`=a6t1c=x9M4=mtI-Wv7B zrv2J|6VgMhpa|2DEkNHQDuJRt9@Bu!6$3rLoTs=*e&x?RobJk?kb|2}_Ta(|@hL-~ zb=rXRTWzoNr7IrpvUl#~nDc+Clh}cZhO~0Ix+(HpdYOJrAH*1$lA2d;pNDCQNjxRF zqL%pdp@zVJ?2bq0J?Xn!sr(jRhshPCN*v;8Fskh>3tP)4_ro2YxAYIUtcwRHlA=o9 zKD-~`BWdc9@j}VSZ~gHYx;ykHf6kWyzprde(i!v&bi!hS@@86}Z-55OuNTiHmBkm% z?|*)52tbwX&N8FS=NPTcgDPa$;=)HTMgs*hy5Ui*HkBO2lxvzBE1kM!Z)V^OL}bn= z2-o+{Hh&N`sY1Aen0^?1!6o94r5g}>?!zO#Jj!gc+uq(45FE%qQfmfu@kZ5HpgTS z$!}MttgfySd*Ywr>ZPQlvX`uGZ(q)iw$@^b`X#Tvf2|&;`dVtMm~hr+`y=8_GM$-M zSNx6#3gtT})#ZJxb-A6q{V^I+##xCShdO%gRjoz#V;r?L870w+rTz8N>G5N_;N1MS zswtPHs8!UaqqS77Rs-PD6ctq=ENWqXU$^9e`kxC0FbFdVd~jSHYdxZ zk5cxD%$#l!Dl<40wJbpeMfD6lEeyW$v$2$q&q2 zWi{Af8Z(~^=^*x}nMTL+Il_~yPB0fomtDjiC+?z#bIS7O^Cik5y%n`i&O)rz#d_|> zFNiUgIa}Mbp{JX#26}9z6PF)wfbLI-qiDRi`}lsu38QqtqI2D*vac%ZWEfsypQO{D z*Y)*AlKqC85SGOL#R#|;GN-Qf(sa>BQ`my}nQ4+$aCk|KL2>8u=t+_2x#-Iy>um?x z#RyxCh}>UKiK%pHXFjA3i;gL)qNXuatC%?LPkF=?1A6pg7YMZ^9@JWQ87gN1 zC#S?>l|P8NbCzv-zQDf3u8}F|)KrDOG|#`-NZL6}o?Mb93E3vzzx~eG43a0^pj_fFdPpj04S^ENYi! z@Y&@)ttt9?EO=sE`kJ!WO;2F<{qaXX@SA(Xsat;hL0~fT}&gCtaRyHw7Sz zdB6}uY~g#)+pK)&JjoC*tf>zOfQlr2C4*r<$Ny!@1@_ylrP(zMY#-}|7;}LG4reJp zu?#M00q$J)E3sHJ1cJ{%#NlUfA|wP5!|C11l`Rk?7zRnfW0&MEQcz(bPm`Kc#2jV@ z>?|U&mqI;4*iJd;-37K3`PGL`KZ-ZUsXZGPeG&sMP91#8Cf^1eAFJaK3K>1$D(Jko zU^(PbOqed$0aaZ8yieh=k58-DC{or)_PJ826^I-^64hV)bF2< zG56b9<9`N}I|+YpCRlCNn1D*Eqy#$z!G=24r5lvP6j%~q>YeF#xvxwf+dBdVR}^|9 zab#*;2n52I(b>KR5O?46M*F}83*XISq&Dw{E0$M-@Gh9$T_7M5CaQZuP=H({qv7T% zI%^<1nqTEL?7EHf_QPCwbn~T&4k#+;sKf2gp&;Km#$1qBn z8X8tPw>E4?0ZB3qiDGtRN6gSEU2XmNloSA!T3*`<*p|N;4e{Of4nm>R-w4^`n$BNI zos0-^@4hxfKYD$LW1TWIEZS{!TB3vusg0XlDyQ6gpm?RbZj=Su*nm2Big0R1r~2yjbFD5ZS8S6sd64)w0nMe_bng5apnXUs zN+HZE(|pqS6jZBGx6Up5y1q{7_h=d-7& zdnrj0v5uDqsI5}JrBa6oQgEp031?d1WGqy{QzrZ?@}iAGzZ_gxK$l;GemMvy1xurQ zb>>dRHvCJ=K7T-oA{O0h-5viSs>Icoa&N>3I&5upxz4MH+VHw66GrufL|TSh@AuGl zop#0gw8EA8a$k-<8>p>!3!YoQNdZbF0z#}3d;;zbHI z1Wd)NR0yzZ!fcU*Lw3bI#f;2+{TS#>&s-Rnr10{Z2AX1kv29|&-f(8Q;e1g@@E1*A zTG9FdhnDTp*Vpc~YA}{pLJ{4GV$QS4(mk9>{I~<9Z;nJvg-6}I5s4}u^9!cdTa32W zs|9iOh^l$-!-lPZA+IrRGfU(PN?|LFKs$rTi7qSJYUgN3tor#(^NMYTSx{Q=(3dls z;M#PCT9Egommx4uxzwuRew)5ciJ$zbYroU|rcvd*PDmFn>?@057CxI*D7m9nO05jN zK%Y&7>vZJ)SxRFT{bpvkPZQvDGjpbV!xU@>kL& zo89thjYJylF_e-^{Gp28P~zs+29TzpeIrFtS7YK&&nLwprynSN;@E#;+t>Cd{4|D3 zJ9<#w%j%9VOMdClR@rla+#VbWk;R5?F4`)6rsY5WXiJg`Pn zEJa->B=?HCFAaO%H_KUA7)jG-(5Nb8Yi+Z#x;6|<38>vMA>Z&`W69acoH3QePWjVUa>lchN5*IF62+QRS+~9G89Ec8zZjfy6Pe`P z#sj)mGTpyE=am|*%XVGp4vYdmQlb@1>io&-tiOhDm zNZ`fsSTFQqa$rKx$G>AstJLtB7b(DG*|S|Un!yZ6GIu_{i=_=dQUAlCqATCMOFyZZ zS;#47tviu7kA;Zw^_K^c*cp@|$9+Y`Ptc<|B#^ma^B%~DWn!kY zuye{`+}K>a7~3kF@xXi(w#q_XaMfX&OD(m#QJfxl{REGCD!HZ`0SS<`p>H5w(f-}Y-u zmaOdjO7xymWU#qIwL2hWKV;na^LsM;L`i%b3qD3#-}vPr3;(q2YMAzn$;IhPV`Jo{ zYXRE2+mxW^wuFQj(@cX^FT~XUa)UjfUJ_!2ZTj(%&mpb}-5c%K zDA@ssXCX^gHl;9fH%}n1G9qUeT?gVPg|8+EM(jEcHZe7)Rw#{}x54!1XOWP=EX}^7 z&GOxkgdc|o>D#>0Z$>>Qm1L=i*D;v#cR|gDL*8S2HY_12j@V(A@Z{Q^qNc@NX00#Y zhCSc=!|20D+g})!xU+#JI@)JDUZAS7!#&dz7R9G4w`G0qFdc|`czJqM1G+D42Oq)M z=wS8~W?*S+EiI6*q!@lfE})^NU|@YOD6mYFiF2D-`rg7Cu*xhD06NqNy&uhb@R=AZ z{$|wE`*G_$QTkkQ$~K#Nq{VOu0nq~Cf)h#oON8D?4RXr)LpM)K z(7fQk<_BeXVvTuPXvlDop)|o=J*U1D;<5 z*dELcj)LPFQ&|;!-nW4H%i`@yCf${bi=oEz_tQ#x%P(rAV!p zO*+6_CeqMNEQ;y1q!2X#n1HmIsbT41EXNJ*r?y!;@DirQ7Qjpi`V=o1waC5l+$viS z^t-&+STd&|_j^f>kf-qgrNpA!I14T3t=~B>RBbPdRh9tRuDb_<^=1PdEpm@!?cY#9 z<6-UTxiB|q4U=@%*UZill%{4B3GwT~El1UFRNM_&9c#;bMP&YDejLkjhw833|KrJ_ z9(k5nwkLLi{GR(hxY&A|Yv@6}gVeN>bEB}oB~_a^4*(y)Vw@DUWYq~bYig&&b;k0* z0A8@GA}^y~cfu^ez(7}jKHwn1P4;1UVV3x|`J);l@B4d)?%|Q7_=Rd5aZ>;JVmky7 zRY@6d)6quOFvd`4awirX8U)A4=%2%nx)n%h=fh|x-zEANChSLAuhCazc}HCx{M=jC z-bt!Ts!F{Plos|w8tpPGA;41JkW(~odHRczw>cEVue&Gp8^nqULlIxI@4|nuAcEia z!Msr54+7i&1BmhZGy}J;C;?-!E9(bD*Mu+8^_>%d*7Hfqt)yg9u8&Yr(3CHgH4phO D^R)7) literal 0 HcmV?d00001 diff --git a/dogfood-output/workflow-sidebar/screenshots/before.png b/dogfood-output/workflow-sidebar/screenshots/before.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7d6d61c9dd29ae872990f43745e9680b2fcef7 GIT binary patch literal 55679 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
{hasSecondaryRow && ( -
+
{isRemoving ? (
diff --git a/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx b/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx index 69ee0e14a0..e56f5c44ba 100644 --- a/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx +++ b/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx @@ -16,6 +16,7 @@ import type { AgentRowRenderMeta } from "@/browser/utils/ui/workspaceFiltering"; import type { FrontendWorkspaceMetadata } from "@/common/types/workspace"; import * as DesktopTitlebarModule from "@/browser/hooks/useDesktopTitlebar"; import * as ThemeContextModule from "@/browser/contexts/ThemeContext"; +import * as TelemetryEnabledContextModule from "@/browser/contexts/TelemetryEnabledContext"; import * as APIModule from "@/browser/contexts/API"; import * as ConfirmDialogContextModule from "@/browser/contexts/ConfirmDialogContext"; import * as ProjectContextModule from "@/browser/contexts/ProjectContext"; @@ -127,6 +128,7 @@ interface MockAgentListItemProps { type HexColorPickerProps = ComponentProps; +let renderRealAgentListItems = false; let latestArchiveWorkspaceHandler: | ((workspaceId: string, button: HTMLElement) => Promise) | null = null; @@ -261,6 +263,7 @@ function createProjectContextValue( let projectContextValue = createProjectContextValue(); function installProjectSidebarTestDoubles() { + renderRealAgentListItems = false; archivePopoverShowErrorMock = mock( (_workspaceId: string, _error: string, _anchor?: { top: number; left: number }) => undefined ); @@ -299,6 +302,17 @@ function installProjectSidebarTestDoubles() { } const metadata = props.metadata; + if (renderRealAgentListItems) { + /* eslint-disable @typescript-eslint/no-require-imports */ + const ActualAgentListItem = ( + require("../AgentListItem/AgentListItem?project-sidebar-real-row=1") as { + AgentListItem: React.ComponentType>; + } + ).AgentListItem; + /* eslint-enable @typescript-eslint/no-require-imports */ + return )} />; + } + const hasCompletedChildren = (props.rowRenderMeta?.hasHiddenCompletedChildren ?? false) || (props.rowRenderMeta?.visibleCompletedChildrenCount ?? 0) > 0; @@ -433,6 +447,7 @@ function installProjectSidebarTestDoubles() { )) as typeof ReactColorfulModule.HexColorPicker); spyOn(DesktopTitlebarModule, "isDesktopMode").mockImplementation(() => false); + spyOn(TelemetryEnabledContextModule, "useLinkSharingEnabled").mockImplementation(() => false); spyOn(ThemeContextModule, "useTheme").mockImplementation(() => ({ theme: "light", themePreference: "light", @@ -508,10 +523,30 @@ function installProjectSidebarTestDoubles() { lastReadTimestamp: null, recencyTimestamp: null, })); + spyOn(WorkspaceStoreModule, "useWorkspaceSidebarState").mockImplementation(() => ({ + canInterrupt: false, + isStarting: false, + awaitingUserQuestion: false, + lastAbortReason: null, + currentModel: null, + pendingStreamModel: null, + recencyTimestamp: null, + loadedSkills: [], + skillLoadErrors: [], + agentStatus: undefined, + terminalActiveCount: 0, + terminalSessionCount: 0, + })); spyOn(WorkspaceStoreModule, "useWorkspaceStoreRaw").mockImplementation( () => ({ getWorkspaceMetadata: () => undefined, + getWorkspaceSidebarState: () => ({ + canInterrupt: false, + isStarting: false, + awaitingUserQuestion: false, + lastAbortReason: null, + }), getAggregator: () => undefined, subscribeKey: () => () => undefined, }) as unknown as ReturnType @@ -916,6 +951,71 @@ describe("ProjectSidebar multi-project completed-subagent toggles", () => { }); }); + test("marks collapsed task groups running from live sidebar activity when metadata lags", () => { + window.localStorage.setItem(EXPANDED_PROJECTS_KEY, JSON.stringify(["/projects/demo-project"])); + + const singleProjectRefs = [ + { projectPath: "/projects/demo-project", projectName: "demo-project" }, + ]; + const parentWorkspace = { + ...createWorkspace("parent", { title: "Parent workspace" }), + projects: singleProjectRefs, + }; + const bestOfGroup = { groupId: "best-of-live", index: 0, total: 2 } as const; + const childOne = { + ...createWorkspace("child-1", { + parentWorkspaceId: "parent", + title: "Compare implementation options", + bestOf: bestOfGroup, + }), + projects: singleProjectRefs, + }; + const childTwo = { + ...createWorkspace("child-2", { + parentWorkspaceId: "parent", + taskStatus: "queued", + title: "Compare implementation options", + bestOf: { ...bestOfGroup, index: 1 }, + }), + projects: singleProjectRefs, + }; + + spyOn(WorkspaceStoreModule, "useWorkspaceStoreRaw").mockImplementation( + () => + ({ + getWorkspaceMetadata: () => undefined, + getWorkspaceSidebarState: (workspaceId: string) => ({ + canInterrupt: workspaceId === "child-1", + isStarting: false, + awaitingUserQuestion: false, + lastAbortReason: null, + }), + getAggregator: () => undefined, + subscribeKey: () => () => undefined, + }) as unknown as ReturnType + ); + projectContextValue = createProjectContextValue({ + userProjects: new Map([["/projects/demo-project", { workspaces: [] }]]), + hasAnyProject: true, + resolveNewChatProjectPath: () => "/projects/demo-project", + }); + + const view = render( + undefined} + sortedWorkspacesByProject={ + new Map([["/projects/demo-project", [parentWorkspace, childOne, childTwo]]]) + } + workspaceRecency={{ parent: Date.now(), "child-1": Date.now(), "child-2": Date.now() }} + /> + ); + + const groupRow = view.getByTestId("task-group-best-of-live"); + expect(groupRow.dataset.running).toBe("true"); + expect(groupRow.textContent).toContain("1 running"); + }); + test("passes delegated activity from workflow descendants to parent rows", () => { window.localStorage.setItem(EXPANDED_PROJECTS_KEY, JSON.stringify(["/projects/demo-project"])); @@ -968,6 +1068,49 @@ describe("ProjectSidebar multi-project completed-subagent toggles", () => { expect(parentRow.dataset.delegatedQueued).toBe("1"); }); + test("renders delegated workflow status through the real workspace row", () => { + renderRealAgentListItems = true; + window.localStorage.setItem(EXPANDED_PROJECTS_KEY, JSON.stringify(["/projects/demo-project"])); + + const singleProjectRefs = [ + { projectPath: "/projects/demo-project", projectName: "demo-project" }, + ]; + const parentWorkspace = { + ...createWorkspace("parent", { title: "Parent workspace" }), + projects: singleProjectRefs, + }; + const workflowChild = { + ...createWorkspace("workflow-child", { + parentWorkspaceId: "parent", + taskStatus: "running", + title: "Workflow step", + workflowTask: { runId: "run-1", stepId: "step-1" }, + }), + projects: singleProjectRefs, + }; + projectContextValue = createProjectContextValue({ + userProjects: new Map([["/projects/demo-project", { workspaces: [] }]]), + hasAnyProject: true, + resolveNewChatProjectPath: () => "/projects/demo-project", + }); + + const view = render( + undefined} + sortedWorkspacesByProject={ + new Map([["/projects/demo-project", [parentWorkspace, workflowChild]]]) + } + workspaceRecency={{ parent: Date.now(), "workflow-child": Date.now() }} + /> + ); + + const parentRow = view.getByRole("button", { name: "Select workspace Parent workspace" }); + expect(parentRow.querySelector(".workspace-status-dot-active")).toBeTruthy(); + expect(within(parentRow).getByText("Workflow running · 1 sub-agent active")).toBeTruthy(); + expect(parentRow.getAttribute("aria-describedby")).toBe("workspace-status-description-parent"); + }); + test("renders variants groups with a shared row and labeled members when expanded", async () => { window.localStorage.setItem(EXPANDED_PROJECTS_KEY, JSON.stringify(["/projects/demo-project"])); diff --git a/src/browser/components/ProjectSidebar/ProjectSidebar.tsx b/src/browser/components/ProjectSidebar/ProjectSidebar.tsx index 4bd9509082..53a88a7c40 100644 --- a/src/browser/components/ProjectSidebar/ProjectSidebar.tsx +++ b/src/browser/components/ProjectSidebar/ProjectSidebar.tsx @@ -51,6 +51,7 @@ import { AGE_THRESHOLDS_DAYS, computeWorkspaceDepthMap, computeDelegatedActivityByWorkspaceId, + isWorkspaceDelegatedActivityActive, filterVisibleAgentRows, computeAgentRowRenderMeta, findNextNonEmptyTier, @@ -1620,14 +1621,13 @@ const ProjectSidebarInner: React.FC = ({ [projectPathsSignature, projectOrder] ); + const isWorkspaceLiveActive = (workspaceId: string): boolean => { + const signal = getWorkspaceAttentionSignal(workspaceStore, workspaceId); + return signal?.isWorking === true; + }; const delegatedActivityByWorkspaceId = computeDelegatedActivityByWorkspaceId( Array.from(sortedWorkspacesByProject.values()).flat(), - { - isWorkspaceLiveActive: (workspaceId) => { - const signal = getWorkspaceAttentionSignal(workspaceStore, workspaceId); - return signal?.isWorking === true; - }, - } + { isWorkspaceLiveActive } ); const singleProjectWorkspacesByProject = new Map(); @@ -2361,13 +2361,17 @@ const ProjectSidebarInner: React.FC = ({ continue; } if ( - member.taskStatus === "running" || - member.taskStatus === "awaiting_report" + isWorkspaceDelegatedActivityActive(member, { + isWorkspaceLiveActive, + }) ) { runningCount += 1; continue; } - if (member.taskStatus === "queued") { + if ( + member.taskStatus === "queued" && + member.reportedAt == null + ) { queuedCount += 1; continue; } diff --git a/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx b/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx index 27185ad6ac..0e7f8a607f 100644 --- a/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx +++ b/src/browser/components/ProjectSidebar/TaskGroupListItem.test.tsx @@ -45,6 +45,9 @@ describe("TaskGroupListItem", () => { const groupRow = view.getByTestId("task-group-best-of-demo"); expect(groupRow.dataset.running).toBe("true"); + const descriptionId = groupRow.getAttribute("aria-describedby"); + expect(descriptionId).toBe("task-group-status-best-of-demo"); + expect(document.getElementById(descriptionId ?? "")?.textContent).toContain("2 running"); expect(view.getByTestId("task-group-status-icon").className).toContain("text-content-success"); expect(groupRow.textContent).toContain("2 running"); }); diff --git a/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx b/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx index a7fbf959ed..2ff91c9be0 100644 --- a/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx +++ b/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx @@ -27,6 +27,7 @@ interface TaskGroupListItemProps { export function TaskGroupListItem(props: TaskGroupListItemProps) { const hasRunningWork = props.runningCount > 0; + const statusDescriptionId = `task-group-status-${props.groupId}`; const paddingLeft = getSidebarItemPaddingLeft(props.depth); const statusParts: string[] = []; if (props.runningCount > 0) { @@ -51,6 +52,7 @@ export function TaskGroupListItem(props: TaskGroupListItemProps) { tabIndex={0} aria-expanded={props.isExpanded} aria-label={`${props.isExpanded ? "Collapse" : "Expand"} task group ${props.title}`} + aria-describedby={statusDescriptionId} data-testid={`task-group-${props.groupId}`} data-running={hasRunningWork} className={cn( @@ -102,7 +104,10 @@ export function TaskGroupListItem(props: TaskGroupListItemProps) { {props.completedCount}/{props.totalCount}
-
+
{statusParts.length > 0 ? ( statusParts.map((part) => {part}) ) : ( diff --git a/src/browser/utils/ui/workspaceFiltering.test.ts b/src/browser/utils/ui/workspaceFiltering.test.ts index 431282de97..5941e7f53c 100644 --- a/src/browser/utils/ui/workspaceFiltering.test.ts +++ b/src/browser/utils/ui/workspaceFiltering.test.ts @@ -677,6 +677,28 @@ describe("delegated workspace activity roll-up", () => { expect(activityByWorkspaceId.has("cycle-b")).toBe(false); }); + it("does not resurrect terminal descendants from stale live sidebar activity", () => { + const workspaces = [ + createWorkspace("parent"), + createWorkspace("reported-child", { + parentWorkspaceId: "parent", + taskStatus: "reported", + }), + createWorkspace("interrupted-child", { + parentWorkspaceId: "parent", + taskStatus: "interrupted", + reportedAt: new Date(0).toISOString(), + }), + ]; + + const activityByWorkspaceId = computeDelegatedActivityByWorkspaceId(workspaces, { + isWorkspaceLiveActive: (workspaceId) => + workspaceId === "reported-child" || workspaceId === "interrupted-child", + }); + + expect(activityByWorkspaceId.has("parent")).toBe(false); + }); + it("uses live sidebar activity when task metadata lags", () => { const workspaces = [ createWorkspace("parent"), diff --git a/src/browser/utils/ui/workspaceFiltering.ts b/src/browser/utils/ui/workspaceFiltering.ts index 93c99d1d4b..92621bd44f 100644 --- a/src/browser/utils/ui/workspaceFiltering.ts +++ b/src/browser/utils/ui/workspaceFiltering.ts @@ -152,6 +152,34 @@ function isActiveDelegatedStatus(status: FrontendWorkspaceMetadata["taskStatus"] return status === "running" || status === "awaiting_report"; } +function isTerminalDelegatedWorkspace(workspace: FrontendWorkspaceMetadata): boolean { + return ( + workspace.taskStatus === "reported" || + workspace.taskStatus === "interrupted" || + workspace.reportedAt != null + ); +} + +export function isWorkspaceDelegatedActivityActive( + workspace: FrontendWorkspaceMetadata, + options: DelegatedActivityOptions = {} +): boolean { + if (isTerminalDelegatedWorkspace(workspace)) { + return false; + } + if (isActiveDelegatedStatus(workspace.taskStatus)) { + return true; + } + + try { + return options.isWorkspaceLiveActive?.(workspace.id) === true; + } catch { + // Sidebar store teardown can race workspace metadata updates. Ignore the + // live hint rather than making a malformed descendant brick rendering. + return false; + } +} + /** * Roll active descendant task state up to parent rows for sidebar attention. * The child itself is counted for its ancestors, while each child row only @@ -215,12 +243,12 @@ export function computeDelegatedActivityByWorkspaceId( for (const child of childrenByParentId.get(workspace.id) ?? []) { const childWorkflowOwned = ownWorkflowOwned || child.workflowTask != null; - if (isActiveDelegatedStatus(child.taskStatus) || getIsLiveActive(child.id)) { + if (isWorkspaceDelegatedActivityActive(child, { isWorkspaceLiveActive: getIsLiveActive })) { descendantActivity.activeCount += 1; if (childWorkflowOwned) { descendantActivity.workflowActiveCount += 1; } - } else if (child.taskStatus === "queued") { + } else if (!isTerminalDelegatedWorkspace(child) && child.taskStatus === "queued") { descendantActivity.queuedCount += 1; if (childWorkflowOwned) { descendantActivity.workflowQueuedCount += 1; From 1ebe831460ed0de8b95e256d3d76fbbba1c23208 Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 4 Jun 2026 21:08:48 +0000 Subject: [PATCH 3/6] =?UTF-8?q?=F0=9F=A4=96=20test:=20update=20subagent=20?= =?UTF-8?q?sidebar=20expectation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/ui/workspaces/subagents.test.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/ui/workspaces/subagents.test.ts b/tests/ui/workspaces/subagents.test.ts index e3932c2dec..897dfac0d4 100644 --- a/tests/ui/workspaces/subagents.test.ts +++ b/tests/ui/workspaces/subagents.test.ts @@ -326,12 +326,14 @@ describe("Workspace sidebar completed sub-agent expansion (UI)", () => { } expect(getQuickArchiveButton(reportedCompletedRow)).toBeNull(); - // Expanded rows with hidden status dots should show the completed-children indicator. + // Active delegated work keeps the parent status dot visible, so the + // completed-children chevron overlay stays hidden while the group is active. + expect(parentRow.querySelector(".workspace-status-dot-active")).not.toBeNull(); expect( parentRow.querySelector( `[data-testid="completed-children-expanded-indicator-${parentWorkspace.id}"]` ) - ).not.toBeNull(); + ).toBeNull(); // Scenario 4: the overflow menu switches to "Hide sub-agents" when expanded. fireEvent.click(parentActionsButton); From fc08a04d1a3a6cbc3c06b93824850cb5243bbfad Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 4 Jun 2026 21:17:32 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=F0=9F=A4=96=20fix:=20keep=20resumed=20dele?= =?UTF-8?q?gated=20tasks=20active?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ProjectSidebar/ProjectSidebar.tsx | 5 +---- src/browser/utils/ui/workspaceFiltering.test.ts | 15 +++++++++++++++ src/browser/utils/ui/workspaceFiltering.ts | 6 +----- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/browser/components/ProjectSidebar/ProjectSidebar.tsx b/src/browser/components/ProjectSidebar/ProjectSidebar.tsx index 53a88a7c40..930c122e2c 100644 --- a/src/browser/components/ProjectSidebar/ProjectSidebar.tsx +++ b/src/browser/components/ProjectSidebar/ProjectSidebar.tsx @@ -2368,10 +2368,7 @@ const ProjectSidebarInner: React.FC = ({ runningCount += 1; continue; } - if ( - member.taskStatus === "queued" && - member.reportedAt == null - ) { + if (member.taskStatus === "queued") { queuedCount += 1; continue; } diff --git a/src/browser/utils/ui/workspaceFiltering.test.ts b/src/browser/utils/ui/workspaceFiltering.test.ts index 5941e7f53c..32c86111f0 100644 --- a/src/browser/utils/ui/workspaceFiltering.test.ts +++ b/src/browser/utils/ui/workspaceFiltering.test.ts @@ -677,6 +677,21 @@ describe("delegated workspace activity roll-up", () => { expect(activityByWorkspaceId.has("cycle-b")).toBe(false); }); + it("keeps resumed descendants active even when reportedAt is stale", () => { + const workspaces = [ + createWorkspace("parent"), + createWorkspace("resumed-child", { + parentWorkspaceId: "parent", + taskStatus: "running", + reportedAt: new Date(0).toISOString(), + }), + ]; + + const activityByWorkspaceId = computeDelegatedActivityByWorkspaceId(workspaces); + + expect(activityByWorkspaceId.get("parent")?.activeCount).toBe(1); + }); + it("does not resurrect terminal descendants from stale live sidebar activity", () => { const workspaces = [ createWorkspace("parent"), diff --git a/src/browser/utils/ui/workspaceFiltering.ts b/src/browser/utils/ui/workspaceFiltering.ts index 92621bd44f..2394152fea 100644 --- a/src/browser/utils/ui/workspaceFiltering.ts +++ b/src/browser/utils/ui/workspaceFiltering.ts @@ -153,11 +153,7 @@ function isActiveDelegatedStatus(status: FrontendWorkspaceMetadata["taskStatus"] } function isTerminalDelegatedWorkspace(workspace: FrontendWorkspaceMetadata): boolean { - return ( - workspace.taskStatus === "reported" || - workspace.taskStatus === "interrupted" || - workspace.reportedAt != null - ); + return workspace.taskStatus === "reported" || workspace.taskStatus === "interrupted"; } export function isWorkspaceDelegatedActivityActive( From ab88d3b9821b7c7e0bb4cd13b9a4178778b0150d Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 4 Jun 2026 21:26:33 +0000 Subject: [PATCH 5/6] =?UTF-8?q?=F0=9F=A4=96=20fix:=20preserve=20live=20int?= =?UTF-8?q?errupted=20delegation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utils/ui/workspaceFiltering.test.ts | 16 ++++++++++++ src/browser/utils/ui/workspaceFiltering.ts | 26 ++++++++++--------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/browser/utils/ui/workspaceFiltering.test.ts b/src/browser/utils/ui/workspaceFiltering.test.ts index 32c86111f0..d19d8dbd39 100644 --- a/src/browser/utils/ui/workspaceFiltering.test.ts +++ b/src/browser/utils/ui/workspaceFiltering.test.ts @@ -692,6 +692,22 @@ describe("delegated workspace activity roll-up", () => { expect(activityByWorkspaceId.get("parent")?.activeCount).toBe(1); }); + it("keeps live interrupted descendants active until report finalization", () => { + const workspaces = [ + createWorkspace("parent"), + createWorkspace("interrupted-live-child", { + parentWorkspaceId: "parent", + taskStatus: "interrupted", + }), + ]; + + const activityByWorkspaceId = computeDelegatedActivityByWorkspaceId(workspaces, { + isWorkspaceLiveActive: (workspaceId) => workspaceId === "interrupted-live-child", + }); + + expect(activityByWorkspaceId.get("parent")?.activeCount).toBe(1); + }); + it("does not resurrect terminal descendants from stale live sidebar activity", () => { const workspaces = [ createWorkspace("parent"), diff --git a/src/browser/utils/ui/workspaceFiltering.ts b/src/browser/utils/ui/workspaceFiltering.ts index 2394152fea..d57f4d81e5 100644 --- a/src/browser/utils/ui/workspaceFiltering.ts +++ b/src/browser/utils/ui/workspaceFiltering.ts @@ -152,28 +152,30 @@ function isActiveDelegatedStatus(status: FrontendWorkspaceMetadata["taskStatus"] return status === "running" || status === "awaiting_report"; } -function isTerminalDelegatedWorkspace(workspace: FrontendWorkspaceMetadata): boolean { - return workspace.taskStatus === "reported" || workspace.taskStatus === "interrupted"; +function getIsWorkspaceLiveActive(workspaceId: string, options: DelegatedActivityOptions): boolean { + try { + return options.isWorkspaceLiveActive?.(workspaceId) === true; + } catch { + // Sidebar store teardown can race workspace metadata updates. Ignore the + // live hint rather than making a malformed descendant brick rendering. + return false; + } } export function isWorkspaceDelegatedActivityActive( workspace: FrontendWorkspaceMetadata, options: DelegatedActivityOptions = {} ): boolean { - if (isTerminalDelegatedWorkspace(workspace)) { - return false; - } if (isActiveDelegatedStatus(workspace.taskStatus)) { return true; } - - try { - return options.isWorkspaceLiveActive?.(workspace.id) === true; - } catch { - // Sidebar store teardown can race workspace metadata updates. Ignore the - // live hint rather than making a malformed descendant brick rendering. + if (hasCompletedAgentReport(workspace)) { return false; } + + // Interrupted tasks without a finalized report can still be streaming while + // task finalization catches up, so let the live fallback decide. + return getIsWorkspaceLiveActive(workspace.id, options); } /** @@ -244,7 +246,7 @@ export function computeDelegatedActivityByWorkspaceId( if (childWorkflowOwned) { descendantActivity.workflowActiveCount += 1; } - } else if (!isTerminalDelegatedWorkspace(child) && child.taskStatus === "queued") { + } else if (!hasCompletedAgentReport(child) && child.taskStatus === "queued") { descendantActivity.queuedCount += 1; if (childWorkflowOwned) { descendantActivity.workflowQueuedCount += 1; From f9552e85503b047c465b7f66a228a1a54b52e128 Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 4 Jun 2026 21:30:19 +0000 Subject: [PATCH 6/6] =?UTF-8?q?=F0=9F=A4=96=20chore:=20untrack=20dogfood?= =?UTF-8?q?=20evidence=20artifacts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dogfood-output/workflow-sidebar/console.txt | 38 ------------------ dogfood-output/workflow-sidebar/errors.txt | 0 .../screenshots/before-run-filled.png | Bin 61933 -> 0 bytes .../workflow-sidebar/screenshots/before.png | Bin 55679 -> 0 bytes .../screenshots/workflow-completed.png | Bin 89564 -> 0 bytes .../workflow-running-parent-active.png | Bin 101421 -> 0 bytes .../videos/slash-workflow-sidebar.webm | Bin 1276507 -> 0 bytes 7 files changed, 38 deletions(-) delete mode 100644 dogfood-output/workflow-sidebar/console.txt delete mode 100644 dogfood-output/workflow-sidebar/errors.txt delete mode 100644 dogfood-output/workflow-sidebar/screenshots/before-run-filled.png delete mode 100644 dogfood-output/workflow-sidebar/screenshots/before.png delete mode 100644 dogfood-output/workflow-sidebar/screenshots/workflow-completed.png delete mode 100644 dogfood-output/workflow-sidebar/screenshots/workflow-running-parent-active.png delete mode 100644 dogfood-output/workflow-sidebar/videos/slash-workflow-sidebar.webm diff --git a/dogfood-output/workflow-sidebar/console.txt b/dogfood-output/workflow-sidebar/console.txt deleted file mode 100644 index 4e706c088a..0000000000 --- a/dogfood-output/workflow-sidebar/console.txt +++ /dev/null @@ -1,38 +0,0 @@ -[info] %cDownload the React DevTools for a better development experience: https://reactjs.org/link/react-devtools font-weight:bold -[debug] [Telemetry] trackAppStarted {isFirstLaunch: true, vimModeEnabled: false} -[log] Service Worker registered: {installing: ServiceWorker, waiting: null, active: null, navigationPreload: NavigationPreloadManager, scope: "http://localhost:38037/", ...} -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [vite] hot updated: /src/browser/styles/globals.css -[debug] [vite] hot updated: /src/browser/components/AgentListItem/AgentListItem.tsx -[debug] [vite] hot updated: /src/browser/styles/globals.css -[debug] [vite] hot updated: /src/browser/styles/globals.css -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [vite] hot updated: /src/browser/styles/globals.css -[debug] [vite] hot updated: /src/browser/styles/globals.css -[debug] [vite] hot updated: /src/browser/styles/globals.css -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 -[debug] [fetch] Success for project -[debug] [gitStatus] Script failed for launcher01: Command exited with code 1 diff --git a/dogfood-output/workflow-sidebar/errors.txt b/dogfood-output/workflow-sidebar/errors.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dogfood-output/workflow-sidebar/screenshots/before-run-filled.png b/dogfood-output/workflow-sidebar/screenshots/before-run-filled.png deleted file mode 100644 index 094aab94641fdf2fdc418eb5ef6119f655d82f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61933 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 D^R)7) diff --git a/dogfood-output/workflow-sidebar/screenshots/before.png b/dogfood-output/workflow-sidebar/screenshots/before.png deleted file mode 100644 index 6a7d6d61c9dd29ae872990f43745e9680b2fcef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55679 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