diff --git a/TODO.md b/TODO.md index b1445b1..01474a1 100644 --- a/TODO.md +++ b/TODO.md @@ -11,7 +11,6 @@ # M4 — Merging and history -- Edit the drafted merge message before confirming - Merge-resolution stage A stage triggered when merging the default branch into a task branch conflicts; its result goes to review. - Git notes on squash merges diff --git a/api/openapi.yaml b/api/openapi.yaml index 771269d..4727977 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -276,13 +276,24 @@ paths: post: operationId: mergeTask description: > - Starts the same agent turn as merge-in. When that turn ends normally, byre squashes the task's worktree + Sets the task's merge_title to the confirmed title, then starts the same agent turn as merge-in, without + its invitation to revise the title. When that turn ends normally, byre squashes the task's worktree into one commit titled with the task's merge_title on the project's default branch, authored by the caller with a Co-authored-by trailer for each of the task's co-authors, pushes it to origin, fast-forwards the project's checkout to it, then removes the worktree and branch and marks the task merged. While another task in the project is merging, the merge is held instead (merge_queued_at is set) and starts when no merge is in progress - in the project and the task's session is idle, oldest first. Refused while a turn is running, or the - merge is already held. + in the project and the task's session is idle, oldest first. The title is fixed from here until the task + closes. Refused while a turn is running, or the merge is already held. + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + required: [merge_title] + properties: + merge_title: { type: string, description: "The squash commit's title: one line, at most 72 characters." } responses: "202": description: The merge was started or held. diff --git a/docs/operations.md b/docs/operations.md index fba4f3c..d6dfe62 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -28,15 +28,15 @@ Every task worktree is made by `createTask` (`internal/agents/tasks.go`): new ta ## Closing a task -A task ends `merged` or `discarded`; either way its sessions are stopped, its snapshot refs, worktree and branch are removed, its `open` inbox items become `dismissed` (resolved by whoever closed it), and its record and events remain. `GET /api/tasks/{id}/unmerged` reports what would be lost or merged: commits on the branch that aren't on the default branch, and files, lines and uncommitted paths that differ from the merge base. The UI's Merge and Discard buttons each ask a one-line confirmation, opened just below the button like the task picker's switcher (centred when ⌘S opens Merge's from a tab without the button), and are disabled while the task's session is `running`. Merge is also disabled until `unmerged` reports a commit or a changed file; the transcript fetches it when the task is opened and again shortly after each tool result or turn end. +A task ends `merged` or `discarded`; either way its sessions are stopped, its snapshot refs, worktree and branch are removed, its `open` inbox items become `dismissed` (resolved by whoever closed it), and its record and events remain. `GET /api/tasks/{id}/unmerged` reports what would be lost or merged: commits on the branch that aren't on the default branch, and files, lines and uncommitted paths that differ from the merge base. The UI's Merge and Discard buttons each ask a confirmation (Merge's holds the editable commit title), opened just below the button like the task picker's switcher (centred when ⌘S opens Merge's from a tab without the button), and are disabled while the task's session is `running`. Merge is also disabled until `unmerged` reports a commit or a changed file; the transcript fetches it when the task is opened and again shortly after each tool result or turn end. `POST /api/tasks/{id}/merge-in` (the transcript's **Sync from main** button, labelled with the default branch) brings the default branch into the task branch through the agent: it sends `mergeInPrompt` (`internal/agents/mergein.go`) as a `byre` message to the task's session, or starts a session with it when the task has none. The prompt has the agent run `git merge --no-ff --no-commit`, resolve conflicts, regenerate generated files rather than hand-merging them, check the build and tests, and leave the merge uncommitted; byre's end-of-turn commit concludes it as a merge commit. The prompt ends by showing the task's current merge title and asking the agent to set a better one with `set_merge_title` if it no longer describes all the work on the branch. It is refused (409) while a session is `running`. -A task's `merge_title` is the title of the squash commit Merge makes. It is the task title until the agent calls the `set_merge_title` MCP tool (`internal/agents/mergein.go`), which it may do at any point: one line of at most 72 characters (`maxMergeTitle`), stored in `tasks.merge_title` (empty there means "use the title"), recorded as a `task.merge_title` event that the transcript shows as a note. Malformed titles are rejected with a corrective message, and so is a call once the task is closed. The Merge confirm dialog quotes the title the commit will get and lists its co-authors. +A task's `merge_title` is the title of the squash commit Merge makes. It is the task title until the agent calls the `set_merge_title` MCP tool (`internal/agents/mergein.go`), which it may do until a merge is confirmed: one line of at most 72 characters (`maxMergeTitle`, checked by `cleanMergeTitle`), stored in `tasks.merge_title` (empty there means "use the title"), recorded as a `task.merge_title` event that the transcript shows as a note. Malformed titles are rejected with a corrective message, and so is a call once the task is closed or while `merging_by` or `merge_queued_by` is set. The Merge confirm dialog shows the title in a text field the human can edit (Enter confirms), lists the co-authors, and sends the field's value as `merge_title` in the body of `POST /api/tasks/{id}/merge`. Merge validates it like the tool does (400 when malformed) and, when it differs from the stored title, stores it with the human as the event's actor before starting or holding the merge. A task's participants are the users who put a message bubble with their name in its transcript, derived from its events (`Store.Participants`): the actors of its `user.message` events, joined to `users` so `byre` and `agent` drop out. That covers messages sent to the agent and inbox answers, whose delivery message carries the name of the first responder in it (`Deliver` in `internal/agents/inbox.go`); dismissing an item puts nothing in the transcript and doesn't count. A fork's participants also include the user who forked it, the actor of its `task.created` event (whose payload carries `forked_from`), whose "forked this task" note opens its transcript. They are ordered by their first such event. `GET /api/tasks/{id}/co-authors` returns the participants other than the caller, with their git name and email from `PUT /api/me` (empty for a user who hasn't set one). The Merge confirm fetches it and lists `Name ` for each co-author, and separately those with no git identity, who get no trailer. -`POST /api/tasks/{id}/merge` starts the same turn and records in `tasks.merging_by` that the task is to be merged by the requesting user, who must have a git identity (400 otherwise). Every turn end of the task's session reads and clears it. It survives a byre restart during the turn: startup resumes the session with the restart notice, and the merge happens when that resumed turn ends. When that turn ends normally (not interrupted, not an error), byre squashes the worktree, now containing the default branch, onto it with `git merge-tree --merge-base`, makes one commit titled with the task's `merge_title` with `git commit-tree`, authored and committed by the merging user with no agent attribution, its body one `Co-authored-by: Name ` trailer per co-author with a git identity (`squashMessage` in `internal/agents/mergein.go`; the co-authors are computed when the squash runs, relative to the user who clicked Merge), and pushes that commit to the default branch on the `origin` remote of the project's checkout (`git push --porcelain origin :refs/heads/`, run in the checkout). Only once the push is accepted does it run `git merge --ff-only` in the project's checkout (which must have the default branch checked out) and close the task; the `task.merged` event carries the commit and `pushed` (`origin/`), and the transcript shows both. When the merge changes nothing, no commit is made and nothing is pushed. +`POST /api/tasks/{id}/merge` starts the same turn, with the prompt's closing invitation to revise the title left out since the human just confirmed it, and records in `tasks.merging_by` that the task is to be merged by the requesting user, who must have a git identity (400 otherwise). Every turn end of the task's session reads and clears it. It survives a byre restart during the turn: startup resumes the session with the restart notice, and the merge happens when that resumed turn ends. When that turn ends normally (not interrupted, not an error), byre squashes the worktree, now containing the default branch, onto it with `git merge-tree --merge-base`, makes one commit titled with the task's `merge_title` with `git commit-tree`, authored and committed by the merging user with no agent attribution, its body one `Co-authored-by: Name ` trailer per co-author with a git identity (`squashMessage` in `internal/agents/mergein.go`; the co-authors are computed when the squash runs, relative to the user who clicked Merge), and pushes that commit to the default branch on the `origin` remote of the project's checkout (`git push --porcelain origin :refs/heads/`, run in the checkout). Only once the push is accepted does it run `git merge --ff-only` in the project's checkout (which must have the default branch checked out) and close the task; the `task.merged` event carries the commit and `pushed` (`origin/`), and the transcript shows both. When the merge changes nothing, no commit is made and nothing is pushed. Before starting the turn, Merge runs `git fetch origin ` and `git merge --ff-only origin/` in the checkout, so the agent merges in what the remote has; the request waits for the fetch, and a failure (network, or a checkout with commits the remote lacks) is returned as the request's error. If the push is still refused, for example because someone pushed during the turn, or fails for any other reason, byre files the error in the inbox and the task stays active; clicking Merge again fetches and goes round once more. A refused push leaves the checkout's default branch where it was, since the squash commit was never moved onto it. If the squash fails, for example because the default branch moved again during the turn, byre also files an error and the task stays active. An interrupted or failed turn, an agent process that exits mid-turn, or a session that can't be resumed after a restart clears `merging_by` and leaves the task active without squashing. `POST /api/tasks/{id}/discard` removes everything without merging. diff --git a/internal/agents/leadtools.go b/internal/agents/leadtools.go index a76a526..5dcbc74 100644 --- a/internal/agents/leadtools.go +++ b/internal/agents/leadtools.go @@ -270,7 +270,7 @@ func (m *Manager) leadTools(l *live) []mcp.Tool { if err != nil { return "", err } - task, err = m.Merge(ctx, task, project, user) + task, err = m.Merge(ctx, task, project, user, task.MergeTitle) if err != nil { return "", err } diff --git a/internal/agents/mergein.go b/internal/agents/mergein.go index b0faf05..a315c20 100644 --- a/internal/agents/mergein.go +++ b/internal/agents/mergein.go @@ -18,20 +18,23 @@ import ( const maxMergeTitle = 72 -func mergeInPrompt(target, mergeTitle string) string { +func mergeInPrompt(target string) string { return fmt.Sprintf("Merge %[1]s into this branch: run `git merge --no-ff --no-commit %[1]s`. "+ "Resolve any conflicts keeping both sides' intent; regenerate generated files instead of hand-merging them. "+ - "Check that the build and tests pass. Leave the merge uncommitted: byre concludes it when the turn ends. "+ - "Finally, if the merge commit title (currently \"%[2]s\") no longer describes all the work on this branch, set a better one with set_merge_title.", target, mergeTitle) + "Check that the build and tests pass. Leave the merge uncommitted: byre concludes it when the turn ends.", target) } func (m *Manager) MergeIn(ctx context.Context, task api.Task, user api.User, target string) (api.AgentSession, error) { + prompt := mergeInPrompt(target) + fmt.Sprintf(" Finally, if the merge commit title (currently \"%s\") no longer describes all the work on this branch, set a better one with set_merge_title.", task.MergeTitle) + return m.sendMergeIn(ctx, task, user, prompt) +} + +func (m *Manager) sendMergeIn(ctx context.Context, task api.Task, user api.User, prompt string) (api.AgentSession, error) { sessions, err := m.store.ListSessions(ctx, task.Id) if err != nil { return api.AgentSession{}, err } - prompt := mergeInPrompt(target, task.MergeTitle) for _, sess := range sessions { if sess.State != api.AgentSessionStateCompleted { return m.Send(ctx, sess.Id, "byre", prompt, "") @@ -41,20 +44,33 @@ func (m *Manager) MergeIn(ctx context.Context, task api.Task, user api.User, tar return m.create(ctx, task, user, prompt, "", "byre", nil) } -func (m *Manager) Merge(ctx context.Context, task api.Task, project api.Project, user api.User) (api.Task, error) { +func (m *Manager) Merge(ctx context.Context, task api.Task, project api.Project, user api.User, title string) (api.Task, error) { if user.GitName == "" || user.GitEmail == "" { return api.Task{}, ErrNoGitIdentity } if task.MergeQueuedAt != nil { return api.Task{}, fmt.Errorf("%w: task %s is already waiting to merge", ErrConflict, task.Id) } + title, err := cleanMergeTitle(title) + if err != nil { + return api.Task{}, err + } m.mergeMu.Lock() defer m.mergeMu.Unlock() - switch m.mergeHolders[project.Id] { - case task.Id: + if m.mergeHolders[project.Id] == task.Id { return api.Task{}, fmt.Errorf("%w: task %s is already merging", ErrConflict, task.Id) + } + if title != task.MergeTitle { + err = m.storeMergeTitle(ctx, task.Id, title, user.Login) + if err != nil { + return api.Task{}, err + } + task.MergeTitle = title + } + + switch m.mergeHolders[project.Id] { case "": err := m.startMerge(ctx, task, project, user) if err != nil { @@ -84,7 +100,7 @@ func (m *Manager) startMerge(ctx context.Context, task api.Task, project api.Pro } m.mergeHolders[project.Id] = task.Id - _, err = m.MergeIn(ctx, task, user, project.DefaultBranch) + _, err = m.sendMergeIn(ctx, task, user, mergeInPrompt(project.DefaultBranch)) if err != nil { m.takeMerge(task.Id) delete(m.mergeHolders, project.Id) @@ -367,20 +383,33 @@ func (m *Manager) setMergeTitle(ctx context.Context, l *live, raw json.RawMessag return "", fmt.Errorf("malformed set_merge_title call: %w", err) } - title := strings.TrimSpace(args.Title) - if title == "" || strings.ContainsAny(title, "\r\n") { - return "", errors.New("title must be one non-empty line") - } - if utf8.RuneCountInString(title) > maxMergeTitle { - return "", fmt.Errorf("title is %d characters; keep it to %d", utf8.RuneCountInString(title), maxMergeTitle) + title, err := cleanMergeTitle(args.Title) + if err != nil { + return "", err } - err = m.store.SetMergeTitle(ctx, l.taskID, title, agentActor) - if errors.Is(err, store.ErrNotFound) { - return "", errors.New("this task is no longer active") - } + err = m.storeMergeTitle(ctx, l.taskID, title, agentActor) if err != nil { return "", err } return fmt.Sprintf("Merge commit title set to %q.", title), nil } + +func cleanMergeTitle(raw string) (string, error) { + title := strings.TrimSpace(raw) + if title == "" || strings.ContainsAny(title, "\r\n") { + return "", fmt.Errorf("%w: title must be one non-empty line", ErrInvalid) + } + if utf8.RuneCountInString(title) > maxMergeTitle { + return "", fmt.Errorf("%w: title is %d characters; keep it to %d", ErrInvalid, utf8.RuneCountInString(title), maxMergeTitle) + } + return title, nil +} + +func (m *Manager) storeMergeTitle(ctx context.Context, taskID, title, actor string) error { + err := m.store.SetMergeTitle(ctx, taskID, title, actor) + if errors.Is(err, store.ErrNotFound) { + return fmt.Errorf("%w: this task is closed, or its merge was already confirmed with its title", ErrConflict) + } + return err +} diff --git a/internal/api/api.gen.go b/internal/api/api.gen.go index 6ab07bb..f5bed22 100644 --- a/internal/api/api.gen.go +++ b/internal/api/api.gen.go @@ -1035,6 +1035,12 @@ type GetTaskImageParams struct { Path string `form:"path" json:"path"` } +// MergeTaskJSONBody defines parameters for MergeTask. +type MergeTaskJSONBody struct { + // MergeTitle The squash commit's title: one line, at most 72 characters. + MergeTitle string `json:"merge_title"` +} + // GetTaskTerminalParams defines parameters for GetTaskTerminal. type GetTaskTerminalParams struct { Cols int `form:"cols" json:"cols"` @@ -1071,6 +1077,9 @@ type StartTodoItemJSONRequestBody = TodoStart // SendMessageJSONRequestBody defines body for SendMessage for application/json ContentType. type SendMessageJSONRequestBody = MessageCreate +// MergeTaskJSONRequestBody defines body for MergeTask for application/json ContentType. +type MergeTaskJSONRequestBody MergeTaskJSONBody + // CreateSessionJSONRequestBody defines body for CreateSession for application/json ContentType. type CreateSessionJSONRequestBody = SessionCreate @@ -2709,162 +2718,163 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H // const string: with thousands of chunks the chained `+` fold is several // times slower for the Go compiler than parsing a slice literal. var swaggerSpec = []string{ - "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", - "/ml3+NOn/xsAAP//", + "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", } // decodeSpec returns the embedded OpenAPI spec as raw JSON bytes, diff --git a/internal/server/server.go b/internal/server/server.go index c516148..92fd02a 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -361,6 +361,11 @@ func (s *Server) GetCoAuthors(w http.ResponseWriter, r *http.Request, taskID str } func (s *Server) MergeTask(w http.ResponseWriter, r *http.Request, taskID string) { + req := api.MergeTaskJSONRequestBody{} + if !readJSON(w, r, &req) { + return + } + t, p, ok := s.activeTask(w, r, taskID) if !ok { return @@ -372,7 +377,7 @@ func (s *Server) MergeTask(w http.ResponseWriter, r *http.Request, taskID string return } - t, err = s.agents.Merge(r.Context(), t, p, u) + t, err = s.agents.Merge(r.Context(), t, p, u, req.MergeTitle) if err != nil { writeAgentError(w, err) return diff --git a/internal/store/store.go b/internal/store/store.go index 7a589a3..80f1f70 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -645,7 +645,7 @@ func (s *Store) GetTask(ctx context.Context, id string) (api.Task, error) { func (s *Store) SetMergeTitle(ctx context.Context, id, title, actor string) error { return s.write(ctx, func(tx *sql.Tx, emit emitFunc) error { projectID := "" - err := tx.QueryRowContext(ctx, `UPDATE tasks SET merge_title = ? WHERE id = ? AND status = ? RETURNING project_id`, + err := tx.QueryRowContext(ctx, `UPDATE tasks SET merge_title = ? WHERE id = ? AND status = ? AND merging_by = '' AND merge_queued_by = '' RETURNING project_id`, title, id, string(api.TaskStatusActive)).Scan(&projectID) if errors.Is(err, sql.ErrNoRows) { return ErrNotFound diff --git a/web/dist/dom.js b/web/dist/dom.js index 2340edd..4c00669 100644 --- a/web/dist/dom.js +++ b/web/dist/dom.js @@ -59,9 +59,18 @@ export function ago(iso) { export function errorText(err) { return err instanceof Error ? err.message : String(err); } -function modal(text, buttons, anchor = null) { - const actions = buttons.map((b) => h("button", { type: "submit", value: b.value, class: b.class ?? "" }, b.label)); - const dialog = h("dialog", { class: "modal" }, h("form", { method: "dialog" }, h("p", { class: "modal-text" }, text), h("div", { class: "modal-actions" }, ...actions))); +function modal(content, buttons, anchor = null) { + const actions = buttons.map((b) => h("button", { type: "submit", value: b.value, class: b.class ?? "", formNoValidate: b.value === "cancel" }, b.label)); + const body = typeof content === "string" ? [h("p", { class: "modal-text" }, content)] : content; + const dialog = h("dialog", { class: "modal" }, h("form", { method: "dialog" }, ...body, h("div", { class: "modal-actions" }, ...actions))); + for (const input of dialog.querySelectorAll("input")) { + input.onkeydown = (e) => { + if (e.key === "Enter") { + e.preventDefault(); + actions.at(-1)?.click(); + } + }; + } if (anchor) { const rect = anchor.getBoundingClientRect(); dialog.classList.add("anchored"); @@ -75,6 +84,12 @@ function modal(text, buttons, anchor = null) { resolve(dialog.returnValue); }; dialog.showModal(); + const input = dialog.querySelector("input"); + if (input) { + input.focus(); + input.select(); + return; + } actions.at(-1)?.focus(); }); } @@ -102,8 +117,8 @@ export function openPanel(title, mount) { export async function showAlert(text) { await modal(text, [{ label: "OK", value: "ok", class: "primary" }]); } -export async function showConfirm(text, action, danger = false, anchor = null) { - const value = await modal(text, [ +export async function showConfirm(content, action, danger = false, anchor = null) { + const value = await modal(content, [ { label: "Cancel", value: "cancel" }, { label: action, value: "ok", class: danger ? "danger-primary" : "primary" }, ], anchor); diff --git a/web/dist/dom.js.map b/web/dist/dom.js.map index 190d66d..2bf8935 100644 --- a/web/dist/dom.js.map +++ b/web/dist/dom.js.map @@ -1 +1 @@ -{"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,CAAC,CAAwC,GAAM,EAAE,QAAkB,EAAE,EAAE,GAAG,QAAiB;IACzG,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEzD,IAAI,SAAS,EAAE,CAAC;QACd,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QACtD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAExB,MAAM,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAQ,EAAE,GAAG,QAAiB;IACnD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,EAAE,CAAC,WAAW,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAW,EAAE,GAAG,QAAiB;IACvD,EAAE,CAAC,eAAe,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAmB;IAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,MAAM,CAAC,CAAC;IACtG,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAClE,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,KAAK,CAAC,OAAwB,EAAE,OAA2D,EAAE,SAAyB,IAAI;IACjI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzJ,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChG,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3I,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IAChF,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,KAAwC;IAC/E,IAAI,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5H,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAK,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB,EAAE,MAAc,EAAE,MAAM,GAAG,KAAK,EAAE,SAAyB,IAAI;IACvH,MAAM,KAAK,GAAG,MAAM,KAAK,CACvB,OAAO,EACP;QACE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE;KAC7E,EACD,MAAM,CACP,CAAC;IACF,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC"} \ No newline at end of file diff --git a/web/dist/task.js b/web/dist/task.js index 251d1c9..d0b73dc 100644 --- a/web/dist/task.js +++ b/web/dist/task.js @@ -953,19 +953,28 @@ export async function confirmMerge(taskId) { void showAlert(errorText(err)); return; } - await confirmThen(mergeQuestion(task.merge_title, target, coAuthors), "Merge", false, document.querySelector(".merge-button"), async () => { - await post("/api/tasks/{taskId}/merge", { path: { taskId } }); + const title = h("input", { type: "text", value: task.merge_title, required: true, maxLength: 72, pattern: ".*\\S.*", class: "modal-field", ariaLabel: "Commit title" }); + const question = [h("p", { class: "modal-text" }, `Merge into ${target} as one commit titled:`), title]; + const trailers = mergeTrailers(coAuthors); + if (trailers) { + question.push(h("p", { class: "modal-text" }, trailers)); + } + await confirmThen(question, "Merge", false, document.querySelector(".merge-button"), async () => { + await post("/api/tasks/{taskId}/merge", { path: { taskId }, body: { merge_title: title.value } }); }); } -function mergeQuestion(title, target, coAuthors) { - const lines = [`Merge "${title}" into ${target}?`]; +function mergeTrailers(coAuthors) { + const lines = []; const credited = coAuthors.filter((p) => p.git_name && p.git_email); const missing = coAuthors.filter((p) => !p.git_name || !p.git_email); if (credited.length > 0) { - lines.push("", "Co-authored-by:", ...credited.map((p) => ` ${p.git_name} <${p.git_email}>`)); + lines.push("Co-authored-by:", ...credited.map((p) => ` ${p.git_name} <${p.git_email}>`)); } if (missing.length > 0) { - lines.push("", "No git identity, so no trailer:", ...missing.map((p) => ` ${p.display_name} (${p.login})`)); + if (lines.length > 0) { + lines.push(""); + } + lines.push("No git identity, so no trailer:", ...missing.map((p) => ` ${p.display_name} (${p.login})`)); } return lines.join("\n"); } diff --git a/web/dist/task.js.map b/web/dist/task.js.map index 79b3d63..86dab27 100644 --- a/web/dist/task.js.map +++ b/web/dist/task.js.map @@ -1 +1 @@ -{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAoF,MAAM,UAAU,CAAC;AACvH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAc,MAAM,YAAY,CAAC;AACzI,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA6B3C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,WAAW;IACX,YAAY;IACZ,aAAa;IACb,eAAe;IACf,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,GAAG,UAAU,CAAC;AAgC9B,MAAM,UAAU,GAAe;IAC7B,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc;IAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU;IAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc;IAClC,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,aAAa,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;IACpC,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,QAAQ;IACrB,KAAK,EAAE,uDAAuD;IAC9D,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;IACnB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CACjB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,CAAC,yDAAyD;IAClK,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,oCAAoC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzG,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3H,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,OAAO,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,QAAoB;IACpC,IAAI,QAAsD,CAAC;IAC3D,IAAI,KAAyB,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1E,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACzC,IAAI,QAAQ,EAAE,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACxD,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YAC3B,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;QAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,mBAAmB,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;gBACrF,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,cAAc,IAAI,oBAAoB,CAAC;YAC5G,MAAM,IAAI,GAAG,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,CACb,QAAQ,EACR;gBACE,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;gBACvE,KAAK,EAAE,IAAI;oBACT,CAAC,CAAC,6DAA6D;oBAC/D,CAAC,CAAC,oBAAoB,MAAM,8CAA8C,MAAM,kFAAkF;aACrK,EACD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAC9B,CAAC;YACF,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,0BAA0B,MAAM,6CAA6C,EAAE,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC;YAC7J,OAAO,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,gDAAgD,EAAE,EAAE,SAAS,CAAC,CAAC;YACrI,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CACrB,WAAW,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC3E,MAAM,IAAI,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzE,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACL,OAAO;gBACL,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;gBAC1H,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC;aACpD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAiB,EAAE,GAAe,EAAE,QAAwC;IACpG,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAEjD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IACF,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzC,KAAK,GAAG,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,GAAG,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChI,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,OAAO,EAAE,EAAE;QACV,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,UAAU,EAAE,CAAC;IACf,CAAC,EACD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CACrC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAQ,EAAE,CAAC,CAAC;QACzB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,GAAG,EAAE,SAAS;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QACpB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;YAC1B,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;YACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IACH,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;IACnB,IAAI,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;QACtC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QAC1B,GAAG,EAAE,CAAC;IACR,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,EAAe,EAAE,MAA+B,EAAE,EAAE;QACrE,IAAI,MAAM,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;YACtC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC7C,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QACrB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,EAAe,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE;QAChD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,WAAW,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,IAAI,QAAQ,CAAC,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClH,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAE,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,IAAI,OAAO,GAA8D,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,IAAoB,EAAE,EAAE;QACzD,MAAM,EAAE,GAAG,CAAC,CACV,KAAK,EACL,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAC7B,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EACvF,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACnI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/C,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;QACpB,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvB,KAAK,GAAG,IAAI,CAAC;QACb,GAAG,EAAE,CAAC;QACN,OAAO,GAAG,EAAE;YACV,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAClB,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpF,MAAM,QAAQ,GAAG,CAAC,EAAe,EAAE,IAAsB,EAAE,MAAc,EAAE,EAAE;QAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClC,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAC7E,GAAG,CAAC,EAAE,CAAC,CAAC;YACR,OAAO;QACT,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACnE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,IAAI,MAAoE,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,EAAa,EAAE,EAAE;QACpC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7E,GAAG,EAAE,CAAC;QACR,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,GAA4B,EAA2B,EAAE;QAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;QACxB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,EAAE;QAC3C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAkC,CAAC;YAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBACrF,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;gBACvC,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAClE,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC/B,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACvG,UAAU,EAAE,CAAC;YACf,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACtD,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvG,cAAc,GAAG,IAAI,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACnC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;gBACpB,GAAG,CAAC,OAAO,CAAC,CAAwB,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAsB,CAAC;gBACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACnD,IAAI,MAAM,EAAE,CAAC;oBACX,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;gBACpB,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAClC,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAClH,SAAS;YACX,CAAC;YACD,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACjC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;YACpB,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACrE,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACvF,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxD,WAAW,EAAE,CAAC;YAChB,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACtD,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;gBACrB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrH,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YACD,GAAG,CAAC,EAAE,CAAC,CAAC;QACV,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC;gBACjF,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QACD,GAAG,EAAE,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,KAAK,GAAG,IAAI,CAAC;QACb,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,UAAU,EAAE,CAAC;QACb,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,GAAG,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,UAAU,GAAG,IAAI,CAAC;QAClB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QACD,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7B,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3B,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG;QACX,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE;YAC7B,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC;QACF,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAoB,CAAC,CAAC;QAC5E,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAe,CAAC,CAAC;QAC/D,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAE1D,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClF,SAAS,EAAE,CAAC;IACZ,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,EAAE,CAAC;QACR,CAAC;QACD,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAC7D,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACrB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,UAAU,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEjD,SAAS,SAAS,CAAC,KAA0B,EAAE,GAAW;IACxD,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5C,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAID,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEtD,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC1E,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,CAAC;AAE9B,SAAS,SAAS,CAAC,IAAqB,EAAE,KAA0B,EAAE,GAAW;IAC/E,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9B,OAAO,CACL,EAAE,EACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5F,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;gBACpB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM,EAAE,CAAC;YACX,CAAC,CAAC;YACF,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACjG,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,KAAqB,EAAE,EAAE;QACpC,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,WAAW,wCAAwC,CAAC,CAAC;gBACjF,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;gBAC3B,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,YAAY,YAAY,aAAa,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChF,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QAClE,MAAM,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAA4B,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC;IACT,OAAO;QACL,EAAE;QACF,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACxC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,EAAE,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAoB;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,OAAe,EAAE,MAA0B;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACxF,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IACjE,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE;QACrB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,GAAe,EACf,GAAW,EACX,SAA6B,EAC7B,YAAoB,EACpB,YAAoB,EACpB,MAA0B,EAC1B,WAA+D;IAE/D,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,KAAK,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC;IACtH,SAAS,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,SAAS,IAAI,GAAG,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAChJ,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;YACT,cAAc,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IACF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B,EAAE,IAAqB;IACtE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAA6B,EAAE,YAAgC,EAAE,CAA8D;IAC3J,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvJ,MAAM,CAAC,GAAG,CAAC,CACT,QAAQ,EACR;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,WAAW,KAAK,EAAE;QACzB,KAAK,EAAE,WAAW,GAAG,GAAG;QACxB,QAAQ,EAAE,CAAC,SAAS,IAAI,YAAY,KAAK,MAAM;QAC/C,KAAK,EAAE,mFAAmF,KAAK,EAAE;KAClG,EACD,SAAS,CACV,CAAC;IACF,CAAC,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,CAA0B;IAC1C,OAAO,OAAO,CAAC,CAAC,oBAAoB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,GAAQ;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;AAC7G,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B,EAAE,GAAQ;IAC1D,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,UAAU,CAAC,CAAC;IACtE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EACjL,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAChF,MAAM,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B;IAChD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B,EAAE,GAAQ;IAC1D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACnH,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EACnJ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAC1F,MAAM,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAA0B,EAAE,GAAQ;IAC5D,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IACD,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACrB,KAAK,cAAc;YACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7F,OAAO;QACT,KAAK,eAAe;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,KAAK,mBAAmB;YACtB,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;IACX,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB,EAAE,CAAS;IAClD,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,OAAO,CAAC,IAAc,EAAE,GAAQ;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,CAAC,qBAAqB,EAAE,EAAE,SAAS,CAAC,CAAC;IAChH,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;QACrB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,6FAA6F,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3J,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wCAAwC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,IAAI,CAAC,CAAC,qBAAqB,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5H,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,aAAa,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7I,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,CAAC,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACpM,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,EAAa,EAAE,GAAQ;IAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAkC,CAAC;IAChD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE9F,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,cAAc;YACjB,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;YAC5B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBACrE,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,EACjE,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EACtH,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAC9B,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,UAAU,EAAE,EACrB,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAC/C,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC1B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,CAAC;QAEJ,KAAK,eAAe;YAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YACrK,CAAC;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBACtE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YAClB,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/F,OAAO,GAAG,CAAC,WAAW,CAAC;QAEzB,KAAK,gBAAgB;YACnB,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAEtJ,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;YACjC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,YAAY;YACf,IAAI,OAAO,CAAC,CAAC,eAAe,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpF,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,oEAAoE,EAAE,IAAI,CAAC,CAAC;YACjH,CAAC;YACD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1J,KAAK,iBAAiB;YACpB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAEtI,KAAK,eAAe;YAClB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,0BAA0B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE/F,KAAK,eAAe;YAClB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvG,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAA4B,CAAC;gBAClD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChH,CAAC;YACD,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBACxD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAA4B,CAAC;gBAClD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,IAAI,GACR,GAAG,EAAE,MAAM,KAAK,QAAQ;gBACtB,CAAC,CAAC,CAAC,CACC,GAAG,EACH;oBACE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,EAAE;oBACxB,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,EAAE,CAAC,CAAa,EAAE,EAAE;wBACzB,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpB,CAAC;iBACF,EACD,KAAK,CACN;gBACH,CAAC,CAAC,KAAK,CAAC;YACZ,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,yBAAyB,EAAE,IAAI,EAAE,iBAAiB,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,mEAAmE,EAAE,IAAI,CAAC,CAAC;QACnM,CAAC;QAED,KAAK,kBAAkB;YACrB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,mCAAmC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvH,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,CAAsB,CAAC;YACjC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,uBAAuB,CAAC,CAAC,UAAU,KAAK,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC;QACtI,CAAC;QAED,KAAK,mBAAmB;YACtB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,4EAA4E,EAAE,IAAI,CAAC,CAAC;QAEpI,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACjK,CAAC;QAED,KAAK,aAAa;YAChB,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,CAAC,KAAK,mBAAmB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAC5J,IAAI,CACL,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,YAAY,EAAE,EACvB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,cAAc,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7H,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1G,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,cAAc,IAAI,oBAAoB,CAAC;IAC5G,IAAI,SAAS,CAAC;IACd,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,GAAG,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;YACzD,GAAG,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QACD,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,KAAK,IAAI,EAAE;QACxI,MAAM,IAAI,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,SAAwB;IAC5E,MAAM,KAAK,GAAG,CAAC,UAAU,KAAK,UAAU,MAAM,GAAG,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAiC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,MAAc,EAAE,MAAe,EAAE,MAAsB,EAAE,GAAwB;IAC5H,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAY;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACpH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAI,KAAiC,CAAC,WAAW,CAAC,CAAC;IAC7D,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,OAAO,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClI,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC"} \ No newline at end of file +{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/web/src/api.gen.ts b/web/src/api.gen.ts index 278230b..115cc25 100644 --- a/web/src/api.gen.ts +++ b/web/src/api.gen.ts @@ -263,7 +263,7 @@ export interface paths { }; get?: never; put?: never; - /** @description Starts the same agent turn as merge-in. When that turn ends normally, byre squashes the task's worktree into one commit titled with the task's merge_title on the project's default branch, authored by the caller with a Co-authored-by trailer for each of the task's co-authors, pushes it to origin, fast-forwards the project's checkout to it, then removes the worktree and branch and marks the task merged. While another task in the project is merging, the merge is held instead (merge_queued_at is set) and starts when no merge is in progress in the project and the task's session is idle, oldest first. Refused while a turn is running, or the merge is already held. */ + /** @description Sets the task's merge_title to the confirmed title, then starts the same agent turn as merge-in, without its invitation to revise the title. When that turn ends normally, byre squashes the task's worktree into one commit titled with the task's merge_title on the project's default branch, authored by the caller with a Co-authored-by trailer for each of the task's co-authors, pushes it to origin, fast-forwards the project's checkout to it, then removes the worktree and branch and marks the task merged. While another task in the project is merging, the merge is held instead (merge_queued_at is set) and starts when no merge is in progress in the project and the task's session is idle, oldest first. The title is fixed from here until the task closes. Refused while a turn is running, or the merge is already held. */ post: operations["mergeTask"]; delete?: never; options?: never; @@ -1640,7 +1640,14 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": { + /** @description The squash commit's title: one line, at most 72 characters. */ + merge_title: string; + }; + }; + }; responses: { /** @description The merge was started or held. */ 202: { diff --git a/web/src/dom.ts b/web/src/dom.ts index 6458c29..0053a25 100644 --- a/web/src/dom.ts +++ b/web/src/dom.ts @@ -74,9 +74,18 @@ export function errorText(err: unknown): string { return err instanceof Error ? err.message : String(err); } -function modal(text: string, buttons: { label: string; value: string; class?: string }[], anchor: Element | null = null): Promise { - const actions = buttons.map((b) => h("button", { type: "submit", value: b.value, class: b.class ?? "" }, b.label)); - const dialog = h("dialog", { class: "modal" }, h("form", { method: "dialog" }, h("p", { class: "modal-text" }, text), h("div", { class: "modal-actions" }, ...actions))); +function modal(content: string | Node[], buttons: { label: string; value: string; class?: string }[], anchor: Element | null = null): Promise { + const actions = buttons.map((b) => h("button", { type: "submit", value: b.value, class: b.class ?? "", formNoValidate: b.value === "cancel" }, b.label)); + const body = typeof content === "string" ? [h("p", { class: "modal-text" }, content)] : content; + const dialog = h("dialog", { class: "modal" }, h("form", { method: "dialog" }, ...body, h("div", { class: "modal-actions" }, ...actions))); + for (const input of dialog.querySelectorAll("input")) { + input.onkeydown = (e) => { + if (e.key === "Enter") { + e.preventDefault(); + actions.at(-1)?.click(); + } + }; + } if (anchor) { const rect = anchor.getBoundingClientRect(); dialog.classList.add("anchored"); @@ -90,6 +99,12 @@ function modal(text: string, buttons: { label: string; value: string; class?: st resolve(dialog.returnValue); }; dialog.showModal(); + const input = dialog.querySelector("input"); + if (input) { + input.focus(); + input.select(); + return; + } actions.at(-1)?.focus(); }); } @@ -120,9 +135,9 @@ export async function showAlert(text: string): Promise { await modal(text, [{ label: "OK", value: "ok", class: "primary" }]); } -export async function showConfirm(text: string, action: string, danger = false, anchor: Element | null = null): Promise { +export async function showConfirm(content: string | Node[], action: string, danger = false, anchor: Element | null = null): Promise { const value = await modal( - text, + content, [ { label: "Cancel", value: "cancel" }, { label: action, value: "ok", class: danger ? "danger-primary" : "primary" }, diff --git a/web/src/task.ts b/web/src/task.ts index 482fc76..f36d7fe 100644 --- a/web/src/task.ts +++ b/web/src/task.ts @@ -1133,25 +1133,34 @@ export async function confirmMerge(taskId: string): Promise { void showAlert(errorText(err)); return; } - await confirmThen(mergeQuestion(task.merge_title, target, coAuthors), "Merge", false, document.querySelector(".merge-button"), async () => { - await post("/api/tasks/{taskId}/merge", { path: { taskId } }); + const title = h("input", { type: "text", value: task.merge_title, required: true, maxLength: 72, pattern: ".*\\S.*", class: "modal-field", ariaLabel: "Commit title" }); + const question = [h("p", { class: "modal-text" }, `Merge into ${target} as one commit titled:`), title]; + const trailers = mergeTrailers(coAuthors); + if (trailers) { + question.push(h("p", { class: "modal-text" }, trailers)); + } + await confirmThen(question, "Merge", false, document.querySelector(".merge-button"), async () => { + await post("/api/tasks/{taskId}/merge", { path: { taskId }, body: { merge_title: title.value } }); }); } -function mergeQuestion(title: string, target: string, coAuthors: Participant[]): string { - const lines = [`Merge "${title}" into ${target}?`]; +function mergeTrailers(coAuthors: Participant[]): string { + const lines: string[] = []; const credited = coAuthors.filter((p) => p.git_name && p.git_email); const missing = coAuthors.filter((p) => !p.git_name || !p.git_email); if (credited.length > 0) { - lines.push("", "Co-authored-by:", ...credited.map((p) => ` ${p.git_name} <${p.git_email}>`)); + lines.push("Co-authored-by:", ...credited.map((p) => ` ${p.git_name} <${p.git_email}>`)); } if (missing.length > 0) { - lines.push("", "No git identity, so no trailer:", ...missing.map((p) => ` ${p.display_name} (${p.login})`)); + if (lines.length > 0) { + lines.push(""); + } + lines.push("No git identity, so no trailer:", ...missing.map((p) => ` ${p.display_name} (${p.login})`)); } return lines.join("\n"); } -async function confirmThen(question: string, action: string, danger: boolean, anchor: Element | null, act: () => Promise) { +async function confirmThen(question: string | Node[], action: string, danger: boolean, anchor: Element | null, act: () => Promise) { if (!(await showConfirm(question, action, danger, anchor))) { return; } diff --git a/web/style.css b/web/style.css index 82d9bf7..a7872b8 100644 --- a/web/style.css +++ b/web/style.css @@ -1814,6 +1814,10 @@ pre.file-text .line::before { overflow-wrap: anywhere; } +.modal-field { + margin: 0 0 16px; +} + .modal-actions { display: flex; justify-content: flex-end;