From fc2e4f4a446455eaee6c887a458a912f750c5400 Mon Sep 17 00:00:00 2001 From: oskarnrk Date: Wed, 4 Nov 2026 14:19:09 +0100 Subject: [PATCH 1/4] feat: draw the files a Bash command updates as a split diff When a Bash command updates a file (sed -i, a formatter, >>), Claude Code reports a per-file diff in the result's bashEditDiff field. The mod now draws each updated file as an "Updated path (+n -n)" row with its diff in two columns, under the command's output. - the built-in keeps drawing the output, and the created and deleted files, from the result without the updated files - nothing changes when Claude Code could not tell what changed (unavailable, skipped, shared) - files past the limits are counted: 200 rows and 20 files per result bashEditDiff is an internal field and can change between releases; the README says so. Co-Authored-By: Claude Sonnet 5.5 --- .claude-plugin/plugin.json | 2 +- README.md | 16 +++-- hooks/bash-diff.ts | 139 +++++++++++++++++++++++++++++++++++++ hooks/register.ts | 19 ++++- tests/bash-diff.test.ts | 97 ++++++++++++++++++++++++++ 5 files changed, 267 insertions(+), 6 deletions(-) create mode 100644 hooks/bash-diff.ts create mode 100644 tests/bash-diff.test.ts diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index b9942bf..7f13ca6 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "cc-split-diff-view", "version": "1.1.0", - "description": "Draws Edit and Write diffs in two side-by-side columns: removed lines on the left, added lines on the right, in Claude Code's own diff colors. Adds /diffsplit, a pane that reviews all the uncommitted changes the same way", + "description": "Draws Edit, Write and Bash file-update diffs in two side-by-side columns: removed lines on the left, added lines on the right, in Claude Code's own diff colors. Adds /diffsplit, a pane that reviews all the uncommitted changes the same way", "types": "./types/index.d.ts", "author": { "name": "oskarnrk", "url": "https://github.com/oskarnrk" }, "repository": "https://github.com/neteye-platform/cc-split-diff-view" diff --git a/README.md b/README.md index 5e0c9bb..aa07666 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ A [Claude Code mod](https://code.claude.com/docs/en/plugins/mods/overview) that draws the diff of every `Edit` and `Write` in **two side-by-side columns** -instead of one stacked `-`/`+` list: +instead of one stacked `-`/`+` list. The files a `Bash` command updates (`sed -i`, +a formatter, `>>`) get the same drawing: ![Split diff of an Edit: removed lines on the left, added lines on the right, each with its own line numbers](docs/split-diff-view.png) @@ -19,7 +20,10 @@ instead of one stacked `-`/`+` list: element), with the language taken from the file's extension Errors, edits held for review, brand-new files and anything without a diff -keep Claude Code's normal drawing. +keep Claude Code's normal drawing. For `Bash`, the command's output keeps the +normal drawing too, and each updated file adds an `Updated path (+n -n)` row +with its split diff under it; created and deleted files stay as Claude Code +draws them. ## `/diffsplit` @@ -101,8 +105,12 @@ The mod hot-reloads when you save a file in that directory. ## Limitations -- Only `Edit` and `Write` are redrawn. The permission prompt is not a render - site, so a mod cannot change it. +- Only `Edit`, `Write` and the file updates of `Bash` are redrawn. The + permission prompt is not a render site, so a mod cannot change it. +- The `Bash` diff reads `bashEditDiff`, an internal field of the Bash result + (Claude Code's diff of the working tree before and after the command). It can + change in any release. When Claude Code could not tell what changed, the + default drawing stays. - Each line is highlighted on its own, so something that spans lines (a block comment or a template string) can be colored as plain code when only part of it is in the diff. diff --git a/hooks/bash-diff.ts b/hooks/bash-diff.ts new file mode 100644 index 0000000..ee348ba --- /dev/null +++ b/hooks/bash-diff.ts @@ -0,0 +1,139 @@ +import type { Hunk } from '../types' +import { TEXT_BUDGET, drawFit, fitHunks } from './draw.js' +import type { Kit } from './draw.js' + +/** Rows drawn for all the files of one Bash result. */ +const MAX_ROWS = 200 + +/** Files drawn for one Bash result; the others are counted. */ +const MAX_FILES = 20 + +/** Characters kept for what the engine draws around the diffs (the command's output). */ +const MARGIN = 5_000 + +/** Where the built-in draws the "Created" and "Updated" rows: under the response marker. */ +const INDENT = 5 + +/** A file a Bash command updated, with the hunks Claude Code found. */ +export type UpdatedFile = { path: string; hunks: Hunk[] } + +/** What is left of a Bash result once its updated files are taken out. */ +export type BashSplit = { + updated: UpdatedFile[] + /** The result without those files; the built-in draws what is left. */ + rest: Record + /** Updated files past the limit of files, plus the ones Claude Code did not list. */ + hiddenFiles: number +} + +const isRecord = (value: unknown): value is Record => + typeof value === 'object' && value !== null + +const hunksOf = (value: unknown): Hunk[] => + (Array.isArray(value) ? value : []).flatMap((hunk: unknown): Hunk[] => { + if (!isRecord(hunk)) return [] + const { oldStart, newStart, lines } = hunk + if (typeof oldStart !== 'number' || typeof newStart !== 'number' || !Array.isArray(lines)) return [] + return [{ oldStart, newStart, lines: lines.filter((line): line is string => typeof line === 'string') }] + }) + +/** + * Takes the files a Bash command updated out of its result. `bashEditDiff` is + * Claude Code's per-file diff of the working tree before and after the command + * (an internal field: it can change between releases). + * + * Created and deleted files stay in the result for the built-in to draw. So do + * all the files when Claude Code could not tell what changed (`unavailable`, + * `skipped`) or when another process may have changed them too (`shared`). + * + * @returns null when there is nothing to take out + */ +export function takeUpdatedFiles(output: unknown): BashSplit | null { + if (!isRecord(output)) return null + const diff = output.bashEditDiff + if (!isRecord(diff) || !Array.isArray(diff.files)) return null + if (diff.unavailable === true || diff.skipped === true || diff.shared === true) return null + + const updated: UpdatedFile[] = [] + const others: unknown[] = [] + for (const file of diff.files) { + const hunks = isRecord(file) ? hunksOf(file.hunks) : [] + if (isRecord(file) && typeof file.filePath === 'string' && file.created !== true && file.deleted !== true && hunks.length > 0) { + updated.push({ path: file.filePath, hunks }) + } else { + others.push(file) + } + } + if (updated.length === 0) return null + + const { bashEditDiff: _, ...rest } = output + const moreFiles = typeof diff.moreFiles === 'number' ? diff.moreFiles : 0 + // Nothing left for the built-in to draw: leave the field out. + if (others.length > 0 || moreFiles > 0) rest.bashEditDiff = { ...diff, files: others } + + return { updated: updated.slice(0, MAX_FILES), rest, hiddenFiles: Math.max(0, updated.length - MAX_FILES) + moreFiles } +} + +/** True when the built-in has nothing of its own to draw for this result. */ +export function isSilent(rest: Record): boolean { + const empty = (value: unknown) => typeof value !== 'string' || value.trim() === '' + return ( + empty(rest.stdout) && + empty(rest.stderr) && + rest.bashEditDiff === undefined && + rest.interrupted !== true && + rest.backgroundTaskId === undefined && + rest.structuredContent === undefined + ) +} + +/** The path as a person reads it: from the working directory when it is inside. */ +export function displayPath(path: string, cwd: string | undefined): string { + if (cwd === undefined || cwd === '' || cwd === '/') return path + return path.startsWith(cwd + '/') ? path.slice(cwd.length + 1) : path +} + +const count = (hunks: readonly Hunk[], mark: '+' | '-') => + hunks.reduce((total, hunk) => total + hunk.lines.filter(line => line.startsWith(mark)).length, 0) + +/** + * The updated files of a Bash result, one after the other: an "Updated path + * (+3 -1)" row, then the diff in two columns. + */ +export function drawUpdatedFiles(kit: Kit, split: BashSplit, cwd: string | undefined) { + const { Box, Text } = kit + let rowsLeft = MAX_ROWS + let charsLeft = Math.max(0, TEXT_BUDGET - MARGIN) + + const files = split.updated.map(file => { + const fit = fitHunks(file.hunks, rowsLeft, charsLeft) + rowsLeft -= fit.count + charsLeft -= fit.chars + return Box({ + flexDirection: 'column', + children: [ + Box({ + flexDirection: 'row', + marginLeft: INDENT, + children: [ + Text({ children: ['Updated '] }), + Text({ bold: true, children: [displayPath(file.path, cwd)] }), + Text({ dimColor: true, children: [` (+${count(file.hunks, '+')} -${count(file.hunks, '-')})`] }), + ], + }), + Box({ marginLeft: INDENT, flexDirection: 'column', children: [drawFit(kit, fit, file.path)] }), + ], + }) + }) + + return { + files, + hidden: + split.hiddenFiles > 0 + ? Text({ + dimColor: true, + children: [' … ' + split.hiddenFiles + (split.hiddenFiles === 1 ? ' more file' : ' more files')], + }) + : null, + } +} diff --git a/hooks/register.ts b/hooks/register.ts index 7a28568..5476bc3 100644 --- a/hooks/register.ts +++ b/hooks/register.ts @@ -1,5 +1,6 @@ import type { On } from 'claude-code' +import { drawUpdatedFiles, isSilent, takeUpdatedFiles } from './bash-diff.js' import { registerDiffSplit } from './diff-command.js' import { TEXT_BUDGET, drawDiff, rowsWithin } from './draw.js' import type { Kit } from './draw.js' @@ -11,6 +12,9 @@ const TOOLS = ['Edit', 'Write'] /** Rows drawn before "… N more rows". */ const MAX_ROWS = 200 +/** The session's working directory, to show paths from it; undefined where the runtime has no `process`. */ +const cwd = () => (globalThis as { process?: { cwd?: () => string } }).process?.cwd?.() + const isRecord = (value: unknown): value is Record => typeof value === 'object' && value !== null @@ -25,7 +29,20 @@ export function register(on: On) { on('ui.render', { component: 'ToolResult' }, async ($, e, next) => { const { tool, output, isErrored } = e.props - if (!TOOLS.includes(tool) || isErrored || !isRecord(output)) return next(e) + if (isErrored) return next(e) + + if (tool === 'Bash') { + // Files the command updated: the built-in draws its output, the diffs come under it. + const split = takeUpdatedFiles(output) + if (split === null) return next(e) + + const kit: Kit = $.ui.resolve(e) + const { files, hidden } = drawUpdatedFiles(kit, split, cwd()) + const base = isSilent(split.rest) ? null : await next({ ...e, props: { ...e.props, output: split.rest } }) + return kit.Box({ flexDirection: 'column', children: [base, ...files, hidden] }) + } + + if (!TOOLS.includes(tool) || !isRecord(output)) return next(e) // An edit held for review wrote nothing, so there is no diff to show. if (output.staged === true) return next(e) diff --git a/tests/bash-diff.test.ts b/tests/bash-diff.test.ts new file mode 100644 index 0000000..7623532 --- /dev/null +++ b/tests/bash-diff.test.ts @@ -0,0 +1,97 @@ +import { expect, test } from 'claude-code/testing' + +import { displayPath, isSilent, takeUpdatedFiles } from '../hooks/bash-diff.js' + +const hunk = { oldStart: 1, oldLines: 2, newStart: 1, newLines: 2, lines: [' keep', '-old', '+new'] } + +const result = (bashEditDiff: unknown, extra: Record = {}) => ({ + stdout: 'done', + stderr: '', + interrupted: false, + bashEditDiff, + ...extra, +}) + +type Ctx = Parameters[1]>[0] +type Register = Parameters[1]>[1] + +/** Mounts the result of a Bash call; a stand-in for the engine answers where the mod hands the drawing back. */ +const mount = ($: Ctx, on: Register, output: unknown) => { + on('ui.render', ($, e) => $.ui.resolve(e).Text({ children: ['engine drawing'] })) + return $.ui.mount({ + plugin: 'cc-split-diff-view', + component: 'ToolResult', + requestId: 'bash-1', + surface: 'terminal', + props: { tool_use_id: 'toolu_b', tool: 'Bash', isErrored: false, output }, + }) +} + +test('takes the updated files out and keeps the created ones for the built-in', async () => { + const split = takeUpdatedFiles( + result({ + files: [ + { filePath: '/w/a.txt', hunks: [hunk] }, + { filePath: '/w/new.txt', hunks: [hunk], created: true }, + { filePath: '/w/gone.txt', hunks: [hunk], deleted: true }, + ], + moreFiles: 0, + }), + ) + expect(split?.updated.map(file => file.path)).toEqual(['/w/a.txt']) + const left = (split?.rest.bashEditDiff as { files: { filePath: string }[] }).files + expect(left.map(file => file.filePath)).toEqual(['/w/new.txt', '/w/gone.txt']) + expect(split?.rest.stdout).toBe('done') +}) + +test('leaves the field out when every file was an update', async () => { + const split = takeUpdatedFiles(result({ files: [{ filePath: '/w/a.txt', hunks: [hunk] }], moreFiles: 0 })) + expect(split).not.toBeNull() + expect('bashEditDiff' in (split?.rest ?? {})).toBe(false) +}) + +test('counts the files Claude Code did not list', async () => { + const split = takeUpdatedFiles(result({ files: [{ filePath: '/w/a.txt', hunks: [hunk] }], moreFiles: 3 })) + expect(split?.hiddenFiles).toBe(3) + expect(split?.rest.bashEditDiff).toEqual({ files: [], moreFiles: 3 }) +}) + +test('does nothing without an update, or when Claude Code could not tell what changed', async () => { + expect(takeUpdatedFiles(undefined)).toBeNull() + expect(takeUpdatedFiles({ stdout: '' })).toBeNull() + expect(takeUpdatedFiles(result({ files: [{ filePath: '/w/n.txt', hunks: [hunk], created: true }], moreFiles: 0 }))).toBeNull() + for (const flag of ['unavailable', 'skipped', 'shared']) { + const files = [{ filePath: '/w/a.txt', hunks: [hunk] }] + expect(takeUpdatedFiles(result({ files, moreFiles: 0, [flag]: true }))).toBeNull() + } +}) + +test('is silent only when the built-in has nothing to draw', async () => { + expect(isSilent({ stdout: '', stderr: ' ', interrupted: false })).toBe(true) + expect(isSilent({ stdout: 'x', stderr: '', interrupted: false })).toBe(false) + expect(isSilent({ stdout: '', stderr: '', interrupted: true })).toBe(false) + expect(isSilent({ stdout: '', stderr: '', bashEditDiff: { files: [] } })).toBe(false) +}) + +test('shows a path from the working directory when it is inside', async () => { + expect(displayPath('/w/src/a.ts', '/w')).toBe('src/a.ts') + expect(displayPath('/other/a.ts', '/w')).toBe('/other/a.ts') + expect(displayPath('/wx/a.ts', '/w')).toBe('/wx/a.ts') + expect(displayPath('/w/a.ts', undefined)).toBe('/w/a.ts') +}) + +test('a Bash result with an update draws the file row and the split diff', async ($, on) => { + const ui = await mount($, on, result({ files: [{ filePath: '/w/a.txt', hunks: [hunk] }], moreFiles: 0 })) + expect(await ui.find({ type: 'Text', text: /^Updated $/ })).toBeDefined() + expect(await ui.find({ type: 'Text', text: /^ \(\+1 -1\)$/ })).toBeDefined() + expect(await ui.find({ type: 'Code', text: /^@@ -\d+,\d+ \+\d+,\d+ @@/ })).toBeDefined() + expect(await ui.find({ type: 'Text', text: /^│+$/ })).toBeDefined() + await ui.unmount() +}) + +test('a Bash result with only a created file is left to the built-in', async ($, on) => { + const ui = await mount($, on, result({ files: [{ filePath: '/w/new.txt', hunks: [hunk], created: true }], moreFiles: 0 })) + expect(await ui.find({ type: 'Text', text: /^Updated $/ })).toBeUndefined() + expect(await ui.find({ type: 'Text', text: /^│+$/ })).toBeUndefined() + await ui.unmount() +}) From 07db71dba1377ee223d7607cf1c8b4283533688e Mon Sep 17 00:00:00 2001 From: oskarnrk Date: Wed, 4 Nov 2026 14:19:19 +0100 Subject: [PATCH 2/4] feat: wrap long changed lines and draw the diff without a frame A changed line next to its replacement was drawn as one tinted hunk per column, clipped to one row, so a long line was cut with an ellipsis. The pair now keeps the word tint only when both lines fit one row of their column; a longer pair is drawn in wrapping cells, in the plain removed and added colors. The room of a column comes from the width Claude Code reports for the surface (or the pane): half of what the separator leaves, less the line-number gutter and a margin of one column, so the estimate errs toward wrapping. Wide characters count as two columns. When the width is unknown, only lines up to 40 characters keep the tint. The round frame around the diff in a tool result is gone: not every place that draws a diff used it, and it took two columns of width. Add tests for the width rules and for the tree without a frame, a README note in Limitations, and a new screenshot of the split diff. Co-Authored-By: Claude Sonnet 5.5 --- README.md | 9 +- docs/split-diff-view.png | Bin 105119 -> 91480 bytes hooks/bash-diff.ts | 7 +- hooks/diff-command.ts | 6 +- hooks/draw.ts | 121 +++++++++++++++++++---- hooks/register.ts | 5 +- tests/wrap-lines.test.ts | 209 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 330 insertions(+), 27 deletions(-) create mode 100644 tests/wrap-lines.test.ts diff --git a/README.md b/README.md index aa07666..c362c1d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,9 @@ a formatter, `>>`) get the same drawing: - removed lines on the **left**, added lines on the **right** - each side keeps its real line numbers -- a changed line sits next to the line that replaced it +- a changed line sits next to the line that replaced it, with the words that + changed tinted; a pair too long for one row wraps instead (see + [Limitations](#limitations)) - long runs between hunks collapse to `⋯ N unchanged lines` - colors are Claude Code's own diff colors (`diffRemoved` / `diffAdded` theme keys), so they follow your `/theme` @@ -111,6 +113,11 @@ The mod hot-reloads when you save a file in that directory. (Claude Code's diff of the working tree before and after the command). It can change in any release. When Claude Code could not tell what changed, the default drawing stays. +- A changed line next to its replacement keeps the word tint only when both + lines fit on one row of their column. A longer pair wraps over several rows, + in the plain red and green of a removed and an added line. The mod estimates + the width from the size Claude Code reports for the screen (or the pane); when + that size is unknown, only lines up to 40 characters keep the tint. - Each line is highlighted on its own, so something that spans lines (a block comment or a template string) can be colored as plain code when only part of it is in the diff. diff --git a/docs/split-diff-view.png b/docs/split-diff-view.png index a7c0b100f9bf355c5d147d1cb5ccef7963e6bb1d..f37e0c817513fef3c9ba89373089bdd08c1e1d08 100644 GIT binary patch literal 91480 zcmc$_WmFzb(=8lAkl^l4aJS%o;qC+t7ThgBfB?arV8Pwp-5r8k&;S?i?r?_Ocb@0{ z&N}N`>-;+XgRCJlJ=0a)ReSF$f)(W@5aICPUcGvSC?yF}e)S6K@YSo=9I(*9Z)A2R z@?Jrh5KDoCRX?X3EJJ<4kidsN*3K8{Du8Cbg zI*R$|^G;}q|N79XZ2)zRQT+8-d%N|K%l6gmQKE% zk$kBCT#%6sq2bg}{r7r^?El^6vxvo9S$HryRgvz>>?~GqD7J)p+)RBWb*Yn+Q^m*5 z*Rj+}uR(tY?q)I4!d$5~b{w6Cc$rRPR9w*4$4J4aAn)f#jl(&ogL%|d?`Qt1qOc_a zYisL+#d-x3v~%UG++6?7;RK_hSehGU2k?N;Y^iql^fdbft6W{Vkk9Lz%>?}l%Q;4? zUsYl@2dL!=){PfSk+xFC#_#0Q_=3%+@+y5og8m(>VMuL;{O%WDGYm{nXKHgtHA6UjpQ)FdlZ_-fUx;@a-(~md1+VXil;6Ok?NdCOS z#lBBoWkWb+29WP`g$XY{+Z0#;J7WHWwOy1F8cX17Z!uoHztbQLm4JLJ-xHl zj0}?6q0o$*0;OyL?IRgNLFf8%z^V?}6L**UsAy<0TMny9VO;Hizc^{tir#U)3wGlE z>s`=pF!!MfiTiHIS5J4;Lie++pP}tfcQS`_K|)r*`!Jc@&ay(i?W&v(9=k@2m-xTzugBc)7md&CN{@1Nv=gv&&(Kh(FvQ zcaMI{XCHo#tKVzgfwcQ5!fkWq`j$>Govy2%FbWC^I?XO}CQsnO?@E=1y$#!BLDWHf zxA^a^qKJ99xIP{&HELFWLWD*lpuSeec6}doh#d~o?0Vb>Otx87YcUh!I2l^QPxcu0 zxwN^N_r3MPxBKg3%N9>xoQi7gdYiLKtZmRm-}835x83Qw*eyZcrl(4k=e-NJu55{X zD$gK|3p>A8677eocfiIXC)Tb+HXTh7wy0-{Zz!9|wBdFxXeOqlq&!<@S!c`5&!<{7 zCw0HOzq=b6=4gC+!*ccQv;OImuOu;rz(%2zaQ5J>+BVN)tfc5WJjtFm?_FNszvpIW zKg(r&r6isK?!w`l2%P|znO4W^S+%nc^ED38y%-sJt@WZhQbzFaJlH-?^GVPsOS|*F zx?AIb{%V;n@2$P2X5!L4Z=q1$4ld(aR%k44RtoHR0;8@L5sE6f;OXWx`+FfYrD7o%(S9jpI7v}? z$M@XbfyfDCp3=9+GyGnARn^tq(}gOhI}_yG)bwS9s0H$eSG88Zlx;>(Adf-g{gpZG};`6ED{NiG^*W;bTxZWEqu@hxG2ZtEH2r`rwr(I?4 zij*kW(d7nvQ6fc^HwU2O&nyKwnt|EbV$kPfiJEl0k7}{HoB(5zm3|tZ8+ckIE8(hG zqa5rumM+*IO)h~JH*?`BNL6R*0@$8|+iMSHE}bi4eF0-GlEn9y6yj*{=v6AehdPna zhoui>?mm%3{90*Dug42%5?1b&vc(Y_P4C7tMK|}QQOZ#vZdpx+es}u8*qh8WK7q(n zV3(M58Wf*O;MY^=KU9H6iJ1hdlNA4$-AnpQe6PU&2u-!VS6gb1BAMU6+<6RFHJ*$< z*auwIVMEl`+pZ2piY;KE)?f?Uu>`B)lbz57bu__hhNPX6WjvUV3jk-+fmt_a6s7a( zTTc@^=`7|Vy8asiv9XVx)6=R?ba-z-W6Sdx0$H3jP5c49`=CAC=x2e(X_`GW?gpsS zmAAz3S^Z93m!Z6fhQY6jVKYM5sgi8ctE;P97$?ZsFeK*z^<$&)L{_JP4%3U5~x-fW5S5TcGK;M8br z-=Wjk_gtdlS77&;>U|05C8SM)KAg$jbxw+!hdKR0`4@ahD_B4sUY3L_GiF4o8|Oxz zsJ=NwhaMF~%%Y+)2!Th9#cr%M%8iv5dov|A=60$9p2I5S24%3+xmM+&LEjF?Gteo# z4Hhcg=_JOl!EU`5v(qOG$K!~32DSj2ehe&ZsOQb}cAdf-Pce5ar84)+J%>?mR0PaI zCxM@r<%9R1>Uf;@dcsXkXrj9$E{3prI4G1Sjn#HriPsmfxp%~v?!JL|2xMer%%p); zY;UL-rZrenX6J13V5V<=3rF~Sl0dt{rPOZU^mj~$LAPQ;x^F#>C=tGdI&oBjA`ZYk zSH{?&ae4z3!L?WE=|zf}B1@K>wku&W35>b(Dp!uJ>*#q+sQjbP59ebT!|fi|@@;g# z9edsf6Fg-pk-q=^oEx-pX^w~OT(6Ll3<-lY@EsN$(sD_L89fmF)cDa<`S_k9Xqt@- z+e6v#_yHxRshFHj>i7{Q+$byIapVUZI)lv5hF4jqBSS;96AvQ|NXj0mA!828G}V8D zbI_!SOsa@iy?`|80XX5l{X{%A;jU1q=T$_dIV;G<3Y8iiqGCR6kLjl-(NQNM548L_R_wBC(w)!QSl^FO~ZzkxpVo`T_1SHsPdh(#9k>Ad# zWe7pI@%C^*6#i=a1_=?GQL+=q9^ukK2HT{-C?2)e_MCX!BpIpvn(3hrpn>v0LXmis&>d*FO>bGiZA6w@jK z@ZqrET;7G7^7eV=pfjFKjt$x>H6PdIV$Ow0c}e?BA|d7>LHbO3TkT)meywM#LLvJ?|Cz0br3xx@xaS zckU?q*LQ{;@+{0{nzmzU{1cg?Fmcz|egPo?kSsf&9D43Uzdlc7OU%G|g?Q5HHr4Q< z6q+fT0RSfnx<7@_t*S-9o*)nrpAz|j4jO63>At58h>paymUHoboEFe!bn@TvM>l_r^cs1dy}Hqub?xw&fh}_yWWIe zXcT~e8)N)Iu8yg?u$dT}NiWu8C$uxO_iN`%0xY*=fpxUNi|)A(dDSebMt-&!x-XP- z?smEkWwX-qqoBp?0DYA(tAxvY@OJ5T=7J}DrpejT?HPUR=s#3N8hMW*I^i?n7eD4} z60nsrig@Es6hb1XbQt23r>|^Td>q7fDsT40n4D3mv3-P5N3a@mkcs#bjVshIny`dx zhT`ak&CNj;@hbW9y$t#Q2qxIU7UqnuGC5vpb+FY$EeWN-gWvj@94O#T-j-@>8RD`6)?&vK>XeB0XES`f+X2=_6S;-#qiYzluA?K=A=hSaRnsJ<&AU zt@#qLW4n?C8MOg-tdGrK*?R|tYKDbK^Y-!S{`gGa{-F2ra@QrV|1@-Y3m__kbG{AoAjk;G>X@j! z#e`qe%gCp0sREu&U%X%t@!oL?1zji@-m83{l=||%=dQ<8l)WK%Z0m5beiOPPXHqp7 z!bptV=VnB}?d;vJORu8`3-?sG^|E9jqz*0?9(7FqClu}}OZpr(6sQ=-LO9h3rnd{Q zl>%T}-rxTD$rHd)kou6(Y|WrxG>3}ksoy7AVxeG?99Z>FloLj}2m_0`G6@)dWxK7O zdu>cg>LhsgTcfF=fT?LcLX<$7pSQ5D+~ zD~Y4cJp-_6vso6W;_vRs3d?eFCy*8-qiSyO69OYCNP_!TYb~*>ib~o%LAX*n&+A7x zEVEF58IzLu;MuPIP&`9uR20gWha06)69wGvg#|4lZ6SoEA3xlh+NbZ){@#shBBuY& zOwjJPkQ>PdmICVk{2mpx_l9iO-pa})gvzrQ-{2I5U-adGji<-c@t{@1Tu8E)s?>pRvYSa&2GW}&qA zR`VINmOUgj6B83>ApQCh2mW&&ihn;gt7Iqn&|E)P8uPQed)LqqoXJpZC$KM0If_42 zQ+nO3!Dwo054R@wZhV_9*JmOQ%~@*qCT9CI@|Cisr3KtBEG%phhut|2U??AIirceI zQQ)hTnw-oNlahw!&ir7IU$}RR_cKw_y0i3OAAk7CiCEIh?e6c3W-3-_u$a7UblB|jg@OkQmx#S!SDm9;Cgnpe z9v;J+leLrUYnZ=&QF6JGgFcj#l~v3Fz2)YY2dFz9hs8UXd@&McQq-NJseELBe!{!D zx^ly~Do-;|t!P}>VIxA5oqXONC2S0AE-$w&n$3?O6%EJ$7{3Ga)YzDUo~d#G5@FF9 zpX*}ba7*rYDH8>qY{zp`e?bE z*!uy(*7mr8bvS{k|9pF_(qe`-?l6tRGJXkP_s!3lA4fkCN2ku;8# zZ1w8pL<-fzRsr!IS1$RzTn(f1a4-aYzFcwunOMj`=LsOC477ghk0eenx-67=smdE952uPXn7Auwd{fD8=N1ca1yMFXGSw-)=@L89d$SKUadWla3vZnBzu5?3Av6OFd;`D; zNUv$JI+aI9T@Ch+u3db*WVoa>uVnURA?Q7m1 z(Kesk*?_P5;qz;Tk1VQIyt_)kvb=A%f20W1-k08BuLvIkWrF|IsQ9EFk7ddPN zCVJ`-xUIqE5Kph|3k^(-5#*U%5_>e{H9R(BEIv|?M~L1fU}Om(E3VH{ygnzB)Gtyk zY;aqzCiMls^{DhN+~+nwfv_v)O>JS*b=KOq zT*2bufJMpZP$47xLiib*nwsp-r};;LadUG@-WNegm(PuAF3Xw>yVVEnBBq5O?L`p} zEU_noo5Z)_g%wHEleiCs*3f1Jdefu6!Q!75yUWpBf9$C&1jMqX7K@ppK}3kR<=sr4 z{GpaAE$#CPKzg6E>e~M;bD#9zg$(Je>Hrk?H@Z2<(C^CkGrezY7S%x@GBMaKtG-fF z>Xdsgo{f_;!7(IMZ{lrmEG`*;WZwQTwIQ!qgtzcT(-V8Ui+YTzf{}A%H7r>qE}Qs@ zhW!zsCDFpva@s6WUxUUFvgVvh6dbdQn~C?(Zl}#Ak~-rtGrq`K3EdTGc3z<+)-FWB}=WpL%V=@$2!w2Y2N1C)A;l$Mj3M9W*ig zDj|F!gw^>trc|FI8BFFrGn&H9Hc$8?1B`9)`>}s>;^ZnPZjGSVLqke2KPii1@xU@6!11^{#gL6q z5yB2>=-dgtrI#H5fG3p7;|zA9AR;1?jA+^)hRsSSAE;&w`dAPe3O^~0a6=dL_*BE` zCa!qR1^+g(64oM}&rSKL(c027nHq<7)CcFA>V+(JYc?BCdIRNsCQ>x8hz@%9rT(L2 zScgzYKwC13t6J9tjt@valpI)v!c+eCk&Mn58CAO^IyrPU=Hffw#ZvA1h~dR_=9#d( z|GA8+c3ax~RvfU>8&ZW-9*XUAc`n_yFCUIR(EBF&!tRAuk;w(&Xe#Ga;jkJ@W;qvW z%U|eW-42Voy+&XJA)I0eTt8FuKR zwqOa51CW2n??;HvMmieAF%TSwg$?ZqbK|-4DdeK>ZLm9;>!7HJ@QUWOF(6{bO)0<2 zvEiQZa0N8Vota{6fEm4mc>*CF0pMZC&%&Y!uuNKu6yi88FVlNwn%6}PS~XF`p&t#q zQl8C8p=Wgf36;n7h#m%C%*%12TKfVg!gKXw48Y;W>opaQ((iWO;-Bs18L~ zLrETtjlD=-7HTpaKiGMw5S+Gc*v4gJ_;Gytg;W9J>VN`c-dl9a0&xADvEVet?-vP`!)ag*^nYI16 z((17p%T{<U*URZx7Q2sLytfcb5&qiht2xP|)NeXTnrk43#@==*mc}=IMIxW;5DkjIaOSqZPE{ z2$X!3{cw(jmT=Eb)RU(wk{AHYL#@IbDGG$H1*mD;c;CCi#l1lF=O z@&hvKqQ_n8s^>hOod}zZOd45>y>P5MhtIJULtqh;vg_pSWDc$>H*LM)A=UmqZRrBmiprmE?hf*XP?j(T`T!{rBgX z000#?KCAvni!uh_4-x>>Bvw z2|+HZd$2J7T5fM!wn}!b%O4Ckbh0LxDeUJy-|E2&NK;Y9z2X(s)xBx_-Wx-4mM7=u z66%H)7QR1|=elQR2v@yV;kyIE`v$+~qhMl|D$9p)qGDqD@0d|c4s~~{6n#tU4MxxZ zXlWTba>kL$>0IEEQr&H@bj|Z~Z?2kWl?en|<(aKUH{wsev~sRYOXYs~_T-=)nHxjM ziBH%7?l}{zS*${EUjO36^}=pa#%{a_IA? zmM^!`Wqd%D2xfaszvtUqqfDS=a1DJEo1dScI#?mBu9_|Gtf{Fv(8}%W>kD?9i{bLm zngq=1kwaxK%g4_jjoVgto);V&;poE6xTlx@;nDqR32^O1eZ=KKPG#Cp_qsgIu~C8& zQ!2)O_xGqueFo!CY!VEqXvDptxVVXI-c0kUK4w+~>qvOp*f@(50HkCp{OhS#*A=&jrzAra8Kh`XHZIdK-xl9u_vW}dSbj!BE zZTdk$ZO$d8-uS?4KbM%ABF$E_!MwPYC6Q>GZEvR7FBF@Jl$90kmlB&lVhRG!kcx>v zE)UIty>j{6G(4vc_tYXrL3uE{52FS-arR;*$)Dnl!EvOyLT09Lsw=a@1qr2cdoc4dm*MuirXlLZB>lx=n zMJe8vH}ErOMiTSKv_g#o3i|BqtQ4c=uPSc&)H~#e2$R$6)#lURoeXXjse3bOV`AZW zGbazXqHeV6B?UUC=#UuvZVt$F>hx+fmNqs4jgF>k3$^e7a_3Pm(}_R0hfF7~*q$vd zwm)W|w6;D3ne+%r8GZn`;QAJa?FxoMx_}VC=wfurfokX%PtRyv*1ZrPr(0H`;Strzie#c4)zJp;@# z#x@ztuWrGX&FsY;T z%f5VebED9fUpnISxRNc=s>N${zZCoUkz}^)5fKaPRIsW{zdg7}&2kWvTWR9tzTWN{#bOD*6QvV>2YoI@$O=9d~z~| zI8;hiPhh6Sjc&Sd3Z?ylmGhV9eEo68MPma=sclFLAjA*mNNrS@PkmZybYvQw`~3NH z20#V}(pQBSpq=SL3%{do|6CEk?hC)iWiuU(p8X)h;{wBCIg5~(h|?eU78W-4>X{L! zI){y>Hp>Xo$4hUQGXP3qK@}r9Iy$?RCb8hdxW0hP{%mPy0Ag}Z`#y`=IIx1fwAF9Q zJfpjwIwhs0IgV}e^5)~!rT~@N_Y)0#ioRyxm~NGCuiJ0@;wAy)8FYYt#71zR^Po@E z1CE}p{xBwwxBsie6#m8Ka-g0JPq@9ga=KbG!Ecd~kq=+az;6e>_Y?h+qK>r_Yq*dM zzG@OXalA1hQ1SxdWT6y97c1~KELzUK{= zJ^_>~gbp1SmqypM?W{up2>ghGPh79D8Fj>g!st+B@TZ?iLzq$NUU;P2vKWFQJxxGy z!5?5PJ#oBtzfrX6kG=vRYq*{}q~8#a@3UFfA$qIuO8fIG@8?(;(Ig({0M*XAgnHYa zpmY=hf-rq=-5*xB_8XLg-jT%5*a=MOqT)kA=alXd4>ucjT)gd3>FL~#SkTaSc6LF> z{*ZMIi zEJ2oK3-RLD>ae7mgY^z2gph2!wwNM!lUg92fBqSt~YNAthBb>sEgCfIQ z{J(9qY0T95$vC|tA{8)QrYkIZmQT_UG4L@O3L~DU&OHp>Bz-;!LOpvXX1>E+x_ak; z5`lBdc6WX3N5tQh?YNC(258_*-J+_>-@d-`uCZNx3y4r1J;56jrP`*A5)uwNy1E-g z?e3RaN4qM3BJ*xIjoXp2>@~03nNyr}(f|}4G_U)4AB9a?0bei?ZWbD#oI1OuwR?Z% zbMxqbV3yYusC|*++ZFFv*!9{NY9%69CL>c%jE9j4dEU64Z}r}se$NTnV>7M^xDxMZ-ly<((_q&83R;k67Q!kK%R@YRg?SNX4JbvN%s^2XFsx$*be94ke59z(Eir* zh%0~F-tFXfW{d5*`nurrQuueOvERR{wD}!_xTpt6$6AX2%WvS=(}4>vXx?7#x)D6I~l%|h$Nh_lk9?tn*}dU{$~Et^Kb<$|N>g6URXZQvk1 z{=Pn`YvU%5>$IWwAhF)-I$NsbdOe2&kwtu_C@z}NByj&n(2iw?`}_T0>4yBgEVI>WFW}=n z07L@#55Fq`iroDC{KuK1P1^JRFx+qeB<0M@kno;q1axxnp!ju-QRxLpD)MP)xGpt0 zYd499P&MkP_W1gVX1sMgCjfw4U|!EF{;X@!bOA^-26#9)5%FX;Q%a!UC|o&LdVrsb zQa&Zg>chmaFhMdC1^MV=K97?b)pj*T+{r~$(s}W&z5KpC>fGVoCH|%qI2v=Vr^&f^ z^C7;lF|R%6z=8^nNSoc~!ZXYIOwl9Jvg&YSnrS*pAW9 zA;SJ>L*J>80f8hAYzgw;o5=2$3?8V*^^o}(jMi%a;MDtTVj&fcGMzZvMhw5ZAZde7 zX!Uu3*o7sR>_w%~27qhw?Jx{(;qPQN*qHs46ygC|IBZL(UQY&^l~<_Bi-UC8ql?=? zdcvfnowVnGfE}$>$lXpuxE;pDXh>2zzoNJvZ+I$NWV6gO$>Z4nma7xsEKOduS6i({5?ba1`$$ROk8AJp( zVXCxx>H}>AkQIRVeQ~s`Lc}L=0jJ$ym-dBjvoBmb=1VyB##*$4jq-%3$kKvlvkRiR zr{mhzR>XHIgF^ZpL-63p$iefN_2%|lI`6D3E}Nw>%_`#`I)wl^ehsv1_yAS@!TPV1Vg%^; z`1=^E&7U~5Ys{2!mU-eug0u1@OT&0<(;ZLOO>VE$SU$&beG&~s68}z#XkcQ(AeZ!9 zAo=rFZkH?n+8&p^K=A6|m(OvVWkd``=rE*D@HNU@Pbl`OpnOV73YeI{d4D!OJ+ung z@~h31{GNmRA9UC2c61sYhHh2hF==7RvdRhnlfO&f{!bSvcyO3FX!Sd(C>Vst-8pae zKRU_u%Npd{>Fs7K%Y*9<(7lj0oQFP^=s_jYUVw?QdCAjBVU>bs?qK!okP zOhf6hjs+_B@@E`dTU!n?UeZX!PuTESBXN#2D?rhMTp~gVH!NQ|PI|t@&F|s!%}M6j zJ7{JgnzaqNgW7uZTJNMVGba*RjEYnZSmPYu*eo@0_jY>5kb7062zpDKto&f30=L6s z(f1L1Tg7|-9!VF}E(0Ge)KZl#0XXq=)jN>Iex1vWq+B7`h|HZQ2Ylqo^esS4L_q`J z=2*oW-da4he(Xc7Md?Gg0s;;NbR$3_*~)Gpo+#`NRuF%`iM98@KjUiUiM|HF||;o{=zQTtAwjgXN|2uCI@dyxdh;@3dI zJkGEY=tS!Vl=`BFp8)_x9IA?ENFIiyj-yc_Rf~H(kW`%|AUHD|jDd0xa~Vl|I~dQw zGTRsIcWD0<1K+369&iyww9UXf4(5Vi9kQ3QO(HUN29Ku7JVjSK@4MVeAfPI#zjr$` z26`Z1fbPP}gK2|5y1)z3r6g1Cz2E}vS`EeSIvjO{Vvl9XBt+cI$|W+ZA4!p(!7%Ez z(DzoE$n-81wU|D$8P^?nt*~>CCjGuFp(T%~zEPsGv0Q2Mqym%?YPXVv0w7HQlEdGr z)2=`k4o>u;z>Z$qnJ}`5o12>YZi|nRz1n|=Jc*TQx{yt*#H$9NEZ~$Q+Ni_@&`hX1r>2X+;IMf1i!G+;2>2N zGlkgT9uh7xL7<|^3C8jUboH!*Z^9l!MK22l&eB_$EQ%q}3-kR)CYnTkp|GF}4g-0Q zzal(vAHA>eJ-r!tz<}$^XW~zzDR7RCj(@ZvrG-iWMFZoPPo3(ARMh)-T7{4drIO!ulhF>7&1_3m7r|8IPub00oasED+*Bg!{wIm27@tp<`+a z{hu50|K8XK-1r6>x@&kCUta{!cP5d4^#AGIxLbG;f`Adr4t-e7Oh-p|b9eVoTjIY~ z0L8|c`&7{*BO|lhETP<<^9sqxK>V?aH19vtQ_~qK+>aHgt2s<|aGv5Wp zzYf8Ogq+9|($?1AbZh&9bf(W@r}pXO;^JFrDdIoVQT}H-0P{>_2=h-DYrGVW{G0DR zz(9GKkf)}%J23L(s+5k^4{)QERf+J+D=umQ4)^csW0}p;!+=^*XHU-?pzX!iUkvHy z9_IJfPi-!z9b#jwmm;K|#Gen-hy2%>%6%E0tbh@~#7IAGH%Q|}GQawX>Zz9NA(rd6 z|7%^}zw@)?dt$L0bZI_ZuNu68fiVKo(;vTQ{UQ0lLaHGB{rvn`ucZETB!~*@#|Hg%rkAItpnqY4)K z@V}}nP{RNJzeEDvvqh+;_$^39k-$zXC$k@VSoe@*f|73SaawU?>gY z)F_ApiaOAM5D0Wc`uzF$$v+wvusoWVNdS`80Tii}N;Fw&tQYar)#Cw4g5m1m7T(qTt|sQ_2pI86FY(W3!|eg#{SYCIH+N zU8;hou5j9gTWa+n9vx+>wBNu2_I)a58XgKCGAe3n zqSCb2H-|O;53lU2HXX|)Mr2|!9uNXrzmcP(qXDBb0P1`o0Ac?L7XLK>1`-m|&^*;Y z`aD!GGY5w-&=jClq$*`*X*noJ=5lx^L-9=cV*H8vzk6#Ez~6s%8yNU!m&1-@F2h@Ix~nXo24+@RJUKOX57xK78F`Q_-m?T& z3yqligwPgesR`XWbUxm8tn0=a2MB{WY$ z!tXkDCzE1)_G=6sd*iGe{%N@sBC9!Lt)}kE<3_z@gbj9E^j_a-QvxU{D~6L{hJs*? zq4ti-S$Xi3l$6d^%l$u;>D;*Oz2j?ez$~NrBA`s0&@AjZqEm#tEq^gNiRooIsmw7!#Zht$ssVFVHS-zaGvU*PE<(C_d7;p6}hB)haTgi_=%&Uz`-d zKZM!tJBNWdL4Z|IYwV-IGnh!Z#bL2wzgnITELTc&8Zr&@q!%pH6oAoku7@!R>*@_3 z|0HDd;Mf5lt#m^+yK>$qHimM0ntjrPZ{Nj9z%So86v@k-*g5h37J9%0Ccb-N2oGPQ zRMhWE?xbh`ZJYRqwU)x+(OE3`ocWHnWuY2kec3Q#@51k=d$~Z^U*E^}@u>&An6lZcP}(vZCh!S-zbHkXv}|L7y+) z8iG;oF0_lJ1WIOkH~71xw!iwuIfs2h+ZBX9@9-LP$WdB}se*7Km?UpkIdWNFdq)Cj zkd)9LDSkxnoA>iQaVq;gUtl*D@Z*8$@M!BFM(U(X4g2%!%L zcb}~9pb+;tI$DAq$6aJS#uGMoH=(pGXVZ5V`;vQOP|2Y5Rz2K`WK9ka?1q;K+aMq^ zn7VsL5GIr+>>)hv++%kq-};AO^wpUR3xmwbj|3K~EP%4KHA3-FTnv4-rBS%BcZnz! zO@#vPerqzm)uE$LkRj-eM90{ShDjBTksorsAjv#0&V|ViZt{?;&!^t6{JC=V3%W`T zilh%sHc&y-<^~gMnyqWD>^Ac#GXzBxANoc+knpK&JF-aOg>Z)-TX`KeN8V=H;`&`# zR7LsrVmfYiz1l7Zl#;LcBOo8DeWrs=B2 ztr^8c0O+d88ilsRR_<4@Zup!%<#UW{#QMl3O^%Ra3pMf=ZSj~xMni%y6|3EHX?;(v z_>{dNg|RdXb>RHMAR}7c2O#$!v3JN5A~`Mxgd1g3p)V&i7y9PsE_9pW%rh0K zm30`eG+H9-8b2)Y0iB8?!@BKh(%kksaCKHbjrj@#ji>dkp93uXpx@~g#$zSP;siP) zAO8+Yr>blJ60uUOE;P0xpmyK2g%NwN0FJh_v(-;@ z@uI^^e1m6Ln}nMil@EQGJDMLzYk{<}r{i5WQ#`m`ZJ54t=B~cn#>k}Yw43t9nmv_E zVB&teP#saGTqlS(pm(8OPE|bh7|~g<9k;jalU!J<3vO|)Bj@c319*RdW6p%SZbegef^oc3^IOF!BW6SZ!?Mp@e(|a*zI2r z-a;Co?w1wo*}T#SMDNN?&z7~%s?y7Kdd?zk3Isf9m8;v`q2RL4uSzF*bSsp3Y+I3! z{0s(TXiW&3oZ{=nWaAO>GBlr`60c5(ypT_Xk0A%I%f8s1FaxzmMTQ^3=5)?xkrB(y zhQCkJql#?^bFc)7)3>+xVdx5@zXip7GB!bIhI9Gsd4@SzwAHXcJymN}H7wJG;1O4P zDsV^jSpvD=dkCrE%?wYMu?glkP^36AMtJfy+YmXIJ4REM0QVV!@!}Mc77r>0h{d6W!q5f{V79kJ-w3={3&lp1sp}x6Eh}pYfKFeJ1Zi z&MM_)_EAlW=*~0BSoN1IU8uE57z8xN7_}@>?uajZ>TDiP(YQ}~TT=X!iemTg?nS{g zGxDR6Ob#2a_Zu`Jb8?0x!v0u8o}9R;>dV6Et;7?Lk){Q|Y&kB%&-yXV1vV=lh#KkU zd_}_(uhCUXAuQ2L%jQPw?T34Fa;;;*ZJOYsfKMt&Yk`8RgDM;L9tIX4-cLLgwGvxY zFspy;Y2eeWEaiGnOhf*BxIBk+C$)61ml+GO^{9@M{6rJ(-;OP8FH!w&uF$424-s!; zw>rOJ&jItp&vo2h=Ci<-;H|NTMifefLE`JBQAK#cYv+!TTZ#&EIow;@=c~q#CD}q2 zH3hMvqi(iE_|JD|ZU|sEOhN>;p)K~wn0oueD&_eTZSyeV6k?=L!QXu~n2g`qUN>Rp zp7a+@Ch``-YN?Jwl)igkSyza)ay1x!uj@#rfOkgBUSb)tsU4DShzmKQsfq%Kg28c% zG8s~$)u7EfVkY?RH=>r)LO)az2{eMZOV_o z`jRe9@9J30%JTwxL%KOgUdfl?E}nxB6nXUFkYZiv19!>Aji!-34Xlm)erUfhifwNB z#K4%s9mwMNX|NoXpHf0D-Pd}bvupE4Dz56iOI>1v8N_>fZ69J@SJ8|bVwv}4fx>NH z>`g!wSM`tHo#O+rMt2AuJ)MG?LYX3oOwcrwA?>m$k%SV(>n7k=pzn;SCsQ|-n(vLU zlQz?jAuoH1Y2et@&>^k_Nys0hYMNf$u zCI@tcAF?&P6-5%FQcKwW+EUp3}@zfCC zb+}b(+xabKMDNekDn2fZ7}v`!1AnRERY3mm=&{u9245{6A^fagt6WJ6`HcI{nUEtHNoe z--3a-SS$W$t`bA9-(rCYt{L->$(8BMQH2Ku>4t^(t(iyLoY@x%0`2$e<-H|ot!w+c z;is0~e)j%w!9$zH%24mQ9kc8P(JH8Q@yreApdOneiTz4dOh49m>ZJ(S;Ruc6B17o9%n>l z_|!pcK&mF|{a}*JI} zq|zkI?(doJbQ)_%TLBW+#2p)*qB&54#Dh_7<)yT0Anroc*~M;jP;8AzI6Ub%0}64v zmykGXoY&ofVx5>&E=QhaYPV#mQN=gXSueDMwCsimOE?YLpfZ~FJd!YG)+SmP8X_ZX z)$>Aanc+N%xlZ?9LWIdXY~c`C`e2(dhXGWLyl*w}KPO6aT_-!uO3@QDobhgBx8_kE zQ>Du$AwNf0XyK!NWvZS06?TO}#j458O zuHv;O$RO5|pPXF?-q$(4>*CR^OWuqcAZZ~ak!;|FgVrJh_TxfV>(+W!Wc9YuDPbM3F6 zJdMS!%kPK65#Pdu)pE{?KV|hbcrbXiKu3<7wRoX^TgKPTSv8X9YMLX&w9v|Mbo{xG zmoy$%XW26#GN96d(#+W)=^UZK%rVuOK@49I>&QGK{yYJ-c1wz2iPhS19IC&5q(&S| zo8YvaRm6Q6rJ|+qme(_uLuRoc1FNpdOppZGrOc@_BO=oNu>rd&+(`(D{3kv;LRgJb zo;VUc@%9@}(OtY`6&$MTFCD>xf*DfvJ*{c&2`k$>NUpbd2q(ck86Tk5KH|3vPAa&D z{m_8D4Z$@U_MOw@@5TLu)pTRtw0GKkPVy$3M*w6egkiy6C$jI=SgFyJcdUCMCaJiU z%X1cb()~SOL8;E^$GZgmMn_DWqodC!C!|O1ZeMGDyU8TQU-0X2*s8_4I>oAhQ9Oqe zr}Plrd3Xw_pc-8HWwjMW>3*!xO-P$8ZG`Z9NJ8{Y?r1d=eK}f++y3d~(525=o@KYM zZYO{tXmM3FVN`kfK*Ns5@tXS_EN*9q@{}S#4*X5~smEV4ucI}~rbkXFiK8#<>#3aIpbDT~vH*~2(>9;X7x z4pv!48?2ac#px2&S4<^8z%O4KisgTQpGX`|b~2T%Ph6tY@aB2sK`iZBJ*muA5%J2b zs=e|UTQOg~%4C|Kc<(51AuHSd({8!F!t$7YM$YkHyYis^9Uox}Tz5=UDR9cxr2EY7N~!_BOy&=3NkDT;J-R>~UNz zHwNFO@~-{vmN?^cZs(kSeE1ZLDTw5^+8cVd5zeGRAIq;Pl+8dyNS{6kKrjdHndzlfgq}6Yaz;el9D+Y^1%bT5A#dSnu z=+1$xs2(+&5$F>_{y8Wy7fGIJl9A|W0M&A@0@0!Ct2HfleQUt$OPbcaj_%?bC2$Pmlt20#F zNa7g^BggsmoTC|52~Pvj)i?reA-C6aOHHq(Yjz`ewKdkR+7crekH&Hx9Sp*Un!0@T zWxikVGd$ws6QV|tto9GK*&f{c!_3Oo$rk2$W|$fVe20f7XJ^hEC2AQ#FZF(ehoZae z7{=G;SO8j%)4v2p_C$tX-H36)#a{^z4t?sVyO~Z8U;HH!mU+K;z#`&l62 zx0W}4$ZP*_rJS%rr;n@T+3aOekXN?|EVe`Fe3wCm+l`M;cvIU6LZyb34L9_kk_jDf zMKl!P=a}3!Mi&!1lgry<7?-A`h_7|aMbu@^Dy>59O%^3zu&xL@($q;{D%Kd>xVts3@QyQZEhTh0^7>>kj zx1d&8;EcJEU!!Q+??#z-v~%?!$&XtR3coiQX3`mA$^=*K+x@zJhLZB1v{0ybl)NHJ zX{DP<$84Z^{FKz@`!B!@z!NiSi!JBoC9N&Opa~(3iy5WkJ0HPq`Cnw6WmH>TyRHiq zFYfNe-MzTGyOrV&#i6)MTio5<-3t_VC=S8hErFc$efPIzocv@YjAYHZ=6dA5?kC`q zR6`kQugB+^gQbo97w+nyjHPHCEBKi94dcN&lJ$Z0eflh!+c^IczB45gp8VfYxz)6tA9&s9h z6l%1>Pp9fMB(DL$PuzU6-4MAQu+zJl+2xo_ofcyw{%uz?lY@BOn&aoE^#E(}BE6HD zN_b+Vy@>jHjJqOfvSrT-&on;mno!?4(E<#_;Ikcy{HUd3M}9E_1KNY-2`g+eE_9_1 z&t!&a)SGMsA0MBm?Squhe`M)R+s(GoAze73sruYh>+%O|pzbp`BT3wrPV*yz{6`Q7 zj-MY;9fKU56p7Yid((}<$SK-e51lgvFCk7U`~zm|IT}YvlVxm!1PFYP@j+B@_8;Q8 zvnjpl`UMyB>pEJ{X$+#rIo5~#w^c}}Hoj05)H=r>jj}SnUjzrW%**1O7(7ug1`Msq z7G#A#3)_H!A4k!n{~@BWDv*AwA}mT)F;H~c=6S14r&+=kkRt*c2Y)}(+dBb^Q9fo; znFm_lAG0gcZrq>DwSNC2)MX?Bb<|v>Ic zjMk;qBQ<#d=EV5cBdu1ZfFVm; z5QL3TIll_W(|(_CRYn8v-Mv+5tP>_r1h@y}wSDSBCrx?UqVO0;6i^3*Z~$2Hxx5bu zpjwwH=ycd+3}<>2rQC$t&(V4j7ULXQlFPNHk+i@1%y1^g=hoo*32~!2+7?*TYk2jb z#UQUB*S;3PwV>^co|;mhf12PC4Z!+fVq@a-nnw0(%4cWO$Yk9OMd52VrSU4Di*+tW zWS*I$M<@>fSdB-!@j1}&lS#m=Y^n@G26RP>jp zCmtr2zm^USBb{t}jP}@gAf=-nEm8g}#ww!+R01%gRI+-FXzBR{yvKD{xht}}R3(dp zYKa$tA}KEhjNrq_ghTJQBZFUg-Gmv~454mLo8*)?w^Z@8hdTy%inosnu74ulw}Nza z^(ak(K&~uXp^B4=W)`VWOTEC-=>gL>;wRwq&LG$qr-JGe(iVnt}Ev zQg3aQx;-8qBKH=?6~=B9w8Z4rQ^-v7NAr4xOQ+{Pq)OpH;dcEVZavXN|6~c0Gz6YH zdG~FRj;H1;Q!V=W^E0__-^Zlp8s&EEzZW$zNlVKt)-5?n`hCP}#-y#185H6BK&fu4 zXx;w8t67u!;f|f ziAO8!Ic1SKP4`M^dY$;H8|MVdDW6g%ou1N_u6kdaOz>%bH@m*~L_VTIQ@p0o=ca9E zzcURPdiGOcG`7fU2qzBhMZWjFfuj`HH}Hct*EsfnP2}@BWQ9GiHcQ(RAeE1UtCvIr zow1Y$;(c%%Dsn}(2>GnQlp)_ofS^Mu2{431I)PX0Ko=@z^uu0OezBeR$!LeEji z-;pF@6<3y*sIc?Q_eXe|{d>_&%2`am*hW{$7xkCVufqul7H^@w=+kM=z0cI?(Wako z58~GUT0hdmeCd4L!YU+DSo|$VI68HF<&}eH_B#=xqzEt+5`>$kP>E#iGQ%1kzTGI= zrqxRyBOO?;3@ZzW=JU0URO4=l$&w zIb5c@lfL%b_{$fDlj*lndm$(G5U5-i0Y;VPie<@X*Zm*|@|Q2{)?k9-n|&E&`ZoX7 zWBxfxJ}%81k&)#QJQnqDUW%oTQ7K{1G>%bZx2NV=A_34e@~Ok$p55wCB6?IIUE~7< zS@hBC#Nfsjx!4I34VGJQ{}=;Lspxa8CV#hFD?#GOlVs(RRVb_h&nb zxyf89@RXH%puMB(*Y2e+4Fl0mrpRHn>TJOiZMtCCkS?8naUkzd8djhjiib%|)zfoi ze6;we&P6 zZ>no6_nZb176!w;BmuW%lo>G>gcG)(giz3!?~l9DvpyGoqdQE9J*UY^4uc&A;j;5g z!w0gGeNI6qL&MjjaU{m;_rqwLrd!O^-?`=vBo@wbweYcaP9jEsBZeGvQ>G|j|jmZY2nUO?$j0<`0`%;Rakck47IV75(|!!SW!EeBjK$p$`@$6X_f0bqiS8 z>hePLzUBXvU&vhAE5{esS^02PF6u))#+Nea1o&t^yJus))=m}eX`Q;~(;NqYDTVX} ze?XU)c=^!=%uJ7XUKV;q?aoYR3pyIt2sH1zde)Y_;r>xQR?yyCm}bJ*VF%Ax9}^8t za7N+m>rT->q)N3XtVe`JjdQaVUQ~D$cM5k_t)IW725C{ZcyNt29t< z`v?mlVbqj`5h}%qY(Q|1`;0<8N_Kn5ll#{_5}kjC6K;5F~Cu)DLlnQ^Yu)Ni#F(CbU1dceyp3 z1Mq8}%#f0FdM3L~$6ThyJ~aD_aG5b@!`CK|l2dBIX5tQw_>y5fv7@K&bPV9Mn<0@L z(BOSyF zOG=@OdJ;rh%l~Gm{NZD!etzT+w-c+BvdFYR*5+maxO;(H_Vuw1I5>W@1-+y!3uGAM2hr8IZ>#%W& z&U{=j66cz!SS-dpp-A!Zb-WD`B`N#7VRk=-bhT9P<5%Vckk)I`v8GSf3d6pi0F_5= zB0ZH{EmY_gnl}N-PSnPNu>JMss7d9f@e#bBE1MFs=O=%T`5~@nkw~@g>>DW_%|Dd6 zF`vQvFRRz%D0f)Pp4mC?2j-+zYLI%9S~z#^*d;xDF?*6_^W6Xiymv(&s|Ga6cxf`L zcjq3irryO9?J$%#;PUW0cg(X|v(;YF512)+^ofiIHKC!xHMtwt5zXB_LUrYpR!L)f zSXuY3Jc|sf$Pf*3n={Svi(3TT`E0X>6^P3k;RLTdBKCnfmzRjh&daOeO>v6{0+%Fe zAU!3w)c4C-S$$3+TKhUG9FKRg4mV;foY<-cvp~X6jD-e5afl&y*`F9s=^vHDsxyD1 z^q$dRcLw|h$D7>@Jj=leTU~AjiElM0g}i8_vW9hL5?z2^J=bplr@XS&Y58eg-Y`f_ z)}$Jazc_?`1lOQp?P=kPF^Bj)@A>7!)hB2msBd++qG(m#j&>QPVjIJaG4;8aF@)64oBq^*hLWZX4$#7v}C6&Sc8x2*Kb z#bWmHO3Zp~Xe*~Sk?{1c81A#n=G_MrbJ9wTvkPi}9ez>I;Q5`vABJy|w(tBd58_AA z$oc`Z7N47H&u{Y)iH=8dQ{e;M(P=*CtPyJ$S6#pCF&34YCYXl4e9Y$fEPS!sJb-sv z&^sv0SHOv6QG%T%T5}dDgb01<@f}N)p3x$1H$`alR9|SwI}Eu*a#>uB+Hql{z&?ab z)e!Y$I=&_$0bxK{DAwSuvnhv7(mcC?#-||7&@o=~qJ03F=$gDHD|sPH6_tMv`wkoI<$q$tnN4+mw$?w;RBPHiRjnom5oA-L;+T?p03$L}$-REQ@VurvEtt^@_}{X^GV>K1UD&v^&V?OqwUl%2 z6yHpyTj*Fsm$@U+v_%CTBG%u{IIk1#(bID`@_m)cR=eFf2feR#JQtVt_L(OuuE-b< z;X7zql775&P_6lbYD45AoA9+R1g zv*-H!{8ZIDkWnlC8I@5_7HuP3ki1%Yg6Ug>)V&&{-S(m~k?^jZ9kBlU>DKchOLSA= zQrJ(KVxiI|xZ&5`wGlFMY-SFcG~z195VyTW3691V_skEn)6d44pR>feUk2r(!NhIJ zce+H&7seq#;G@^w6FX`5Wa!H+uivJ z(QLsI2Y7l@E*PxCH_Ah*0D4%WmfAIR(b1}f2~jbmu3l%?f%JVwfN`hKuBLsj7w+rf zWPgT8MF`)U=M{Phs|hs3T}`OX7i}IMT*P5redNH`p zG8N^716+TLemB!2xU6M-`xwV~vsLVNuv6A_9^7$A)&0tCCE}{9Yx;IsxsS1?LM9ru ziIQpFgl+Aa6x^b-RP%GZThN0LBDopbW-nwjeNy#K9Ko4u0W)xOkV8RYIE+hC({w)1 z`I7B1QSe9pm8&T4TQl2qm_i*8QdpC}PO$|?xfJ7F5_F(c(Yf!{UAg>o>2l4un4A;6 zZU%wa@7T6C$%-P2xkJy3jzyQ;t)1-7$~$!JQ(u^jzyK4Ij@Y^x)uWT+ev`?1#2Xs|hYw#jyWR!)^ChfsWF)4Y|L)SCu zJOr${B7HdW$r4n!bx1!W7v_ugd{$Zg5Z?)?>@wTV(GgLxbme ze))arA$utlQcCF|69KtV|9QkiajF(<8Zj+5bPZX2kzZDy7XOu~*V8f`@o~Z}Z7@Pq zAW}23|Js=N>o8EJ{L&^TNifrqrc-e*{IX;vfuJnpdX~HBs*`lH4^6O%bo&)N4-q8E z+$N*!Z@(G-T5MaMQq3B~u;iUkTauv-J9)P>a*f$oa5`X!)GVszWgfd*G?v#~fCv6m zP30N@N}io8qETzB@QNspZbXn{>$5i~m)qvGX`fL!rc>!|Mm6L8aq+21bydXIhE-Zh zCxqSoT7LDw_laDIz%8OK0jRaU-u59Gm>{*-kG0=#$Xc5bg^S!m-aJ)J8vE^0L$%Gt zAn8;DfkMRC%jJX(B$S1j?C<3Vt7w0&X4%JgL`X3BIEn1Vw~~D-{Tw7z2lzfO<1&B$apC^5@{>EWV>}hB)}=K6DOUV)00!Ia;y^uGKf`!@ z527RnvasP-l;IeInN)A zd}T*!lL$7AwNUOvpYd4^dz}_mQSbFvM`1=pz9J?0_KmQBJre|bPR$c|who7VQ&mCD z_ap%ss=AiK6mu%ImI~Rk?Glbn=id#cfag0buRMYWLElE7{005{kq>Y?tY_)*VwF7h z$d3eVL|du?VYaS@Mz&Xh&RvfQp$T_zkFT5}EUXg1AQ~aTnW5 z_)zMnwq#a|NHb&$!X153qCyTXN?^FJ$|6xKg>X~l3hw!8lT>SuaIvoH-2I_}W2;)3 zp4#UWr{}J8h^Og%=HI&NKZXt>=@7xFdgaRDZH<-AGY9)qj+W-h8vLy`vrJ=_w`MSw zq~0PrJ)d5WJWZ_iA6$xBlaa~kQe#?@uHQbMdS4h36B-?R{B&QBL~645L*lAegBxl> zm%BZZ$8>$2$#`mvLjnWSkzZ~Cx&sIX8p!(S4?TVh&y9Du)LagI3wMrS3IAn28@eb#-hfMh0f&+t+Z{F?7V* z`9z*)w%b*iDj@n#fkhx^FVr$Fk3>k?NjW=G?JTQy-5kF&K7cst&z!3l@-pZdw_ zU;RgL+S=RA&ejo~Z(N{fm+4fT$2_Olgi$dp>FwZA`$GgD*(?D9GpWg?+RV@K;egE6 zpaytm3k#+{?Kpxwj^=$L$a>_kr*4OnF|UtKg%^=#e|4vra8m@KosX9muLaHIV;5hv z8^b!WyYMt5LWcPD!u5}-svJbTPc#IcU1k(L6ze@EKiY4$Btrq2K7(STMj^!7MOH_Y znuAO*M3@ReK$42-s3_|ibjZ?h$Ge(Hl9~#%7Vr|mkgM%Adj`GMq*lj?)C2)$6 zV3$w7f?z+?YNF_ul+4V{Lt>5DRCHXD_#DoFPjaU}$j7F9a$L0tLZ8*VcCjUB{RU?x z81NYR(lwQ!zC&4Wbz+hF`MnzxnBvQpDt6Q|tFc4%Kffceil*y?_!uxgo{edJIKB}s zfQA-Ja*&jv+Ww6-lj>nVL`Mu`$@^i&%4ik}DiRLEpSfn6Bw#@xIzcf`;!ou0;_D0* zVB`bkn5-`hm8ii%I(AVY?$xs^G|Yous!1qWqRU_$x~0vB)xdqp?VtTB|LBnKJmip; zWB$>v({)1#63IW%@M)98LQ{YB+grG(iSmD-YBeZdmYm7;|9*h7z~0vMClp`T*}F)( zaD3gn|I+);X-EN)R)il_gjPK9Bzl2}kdG5YiTM^Vjds}+G-U}8Ao-)Vi9`OHl$e9+TLvet9UGl;nI9;!_hK`wwU?~N6C zzBe#mEutTd9|}mS)X)xCFHs|!$ap|*s37j(H?{d3ml`l7$5N|ZlhO5B2{w+ayK(|N zii>o+;v3pfj2%>mMV28L`g&tmUdD%;H2D@ZjH5C|G$(WO)aXN!(#-8Boz)TV#>VDf z!Im-gmj?k5BFB>J0m4Yv=Tm%KsEpW-M3@lpN4lNL4vESk9bT?QBXMx>JN)N*yRu1ASa-6Ef`eazQ&)Urnp4i6=Mu<& z*d3N5wch0;buxBKh~reIzSKV?wkf^L>9p_5&L5pdDd%t{SN39+Fk*Im?dGy9D0g92lEMeodzC zc>f~0RPKae3WHeHwNmMq&JIA7W8Kh!OR;w>U|-n5hz~MR<}|ym^JFIe>Ql{IbpaAh z)=QKuk8fl@d1%_>_K`LFem9q5cnRV=skEER-Y%deGE9L>E$}`MX^xd(bM2==R3#zB zZkKqRN3NMdqC5K|@Hc>Hej*xRM@T9fB^@2YF*|j zry4svh?Z+OS>x!$ya$_lnU}5a4xN~~9s%MlP zGc#R*8!PXCwggsniH&nC*Zr1}8G0;s6(5xZyX9G%ej&wlQTTIIQt=@m+Kl8A@UboM z7WeH>J97WqTOF$=f`yfmgrqLtgK}1El{rKKr_1d`0qX9a2|R=F#V*1fka7rkP=;YY zTBkZV>!E$`H$+X>mfQR8@A+Ca`dY&n?a30)AgVnWlKqH&f)_n!G`>A}j&>Dr9ClVz zyu@NHxAUYuR)AkzmGL>5QyP+J@!Z0Fhk$%L$sHcm=bmTp+SSAvJdC?TW!bSRn8TuqWx^{#J6BCXk)=kD%K zt*42KaM3Ojh4$@}G=|vSD-mknrx$-NzcXhWpg5b$ouoa`fvCd0wn%+RBvrU1J~Mg; zD*`ZAiLA@x&W{Ufcn4Iu{26~K*siD*VY||3iMFJ0|C}@EQy{xZsoU!++yXg~X@I-) z@ef4Hc+x(@x~z+tG^(TvaIB7(G41RWL46ru;|9`H1nT(hz{WZ{%WGU>d_>tO{9oNuS*L$+OAAlQ+YFwV`iy>? z&+dCTR50R_RLp?UV4m=Qv`bQnK;2~dGPPRN2g=j5xj^(T$MqyKRr}S$ z)z7@wxZbzn3#9#>)BVYBf2k@<8wwGMHV!aHMOZC(4FQyQ?Jd zlGdJtD`3V^YkfrS7bAb2=qEi=l4f(;OtHvMwt9Mc{qy6Tzc_&L7b9h6R5M+Ejcq}k z28*xCs3K%-UTignO&o+V;CPj3*WqI(hUD7Fj%Hh!UaG-6+ZE(ug%rtd?KtOo?vkEU zu3_do!#kazPl2|AO>s=Vux~IZ>xIhzMl}>htdQl93>#LPW?_$`kIlaP|Ct^ zSsCRvJtfzx#~A=>S&^nz!aq)@k7z!)-`yt?;`oBUp?3T9<$nsmCn6G4F(IqD zgq>fG!J{RL(W-c7lz;I1gN>J_=UUE_5$HGdtJMfpdy0{@1K-l`?4Y^ZxSD8SSKn?gS&g}PD!s^;THwQD^aph>y*s0ny zRf)ZFP|xktZe)g8futsLSno$QnD>%%bAyTIOl%U^rL{bvgmJoi!qF7XKnBupwyAai;ssTOODky%Z;qamsVm9Cua`%GRs zjRJSWnYS?j<4sGI(F@Vni$7uDDdNFrJc2E`V#mpjxrgpp$lEFDz$f>NNz8i6G}f$b zz!7i`GAd#U_~i6tWODp6(PXuC*|kq3C9{)}$yK*cdJB%!j8rx*!ij817&Qh#;jSm+ z$$1gQ$EO_VP#iTDS2-R+XeWOSrq-w)LmkRcumBt|e!qzjb4Qu{j$uOQ~8f(T!6T zB|E5L!+>Ga|D{ln^aIfy=GV@biKqigAF_+1O(#Zd)_;U~?Sr5LtD}xHuyKHqP4bV{am{|7MP6LyY0Y@|yl}R8@MCl7ve@?$sq3>*jkqOG@3-Q%B+~sC z0ZNGYnf1*rC08a~YS(V>^bnqNe)=#=6m*I4;cS^q;MT*`!ZajfvC^WCZ84q{t0Q&< zyIfhw=0y|a;mW!$v0m@G=gL)PfJX3pZcf~h+F20z`x4Ej_skv;80d%a`YqfjqreHc z=~_5=MHaEsKF>LkB?=FJNh~Q{-_Rr;1cKcozGqmoGLOz`p+}R>&_sV896>8%zA%<0 zPw+Q}IChr^nC5P-J|4ZVR+LS+T?KM;;b0%2NeE+cwGtuZ=ApIWT-6F~eOjijfe&z< zP@LSpJWN7$gyszbU0$%G0%j6i~Jd3^)GlJDaB{bje%_4*pouVPEE z7-xTe{!NnB^UKq~{ykCb@dEQ~16%LHe&zI-zUOi1t<}`_ZUwh2T0OmeXyUf%libKH zAh}Z3iJysizw__JrN{=xS*$leHX6h6XON-)4qy*ud{?^cuDU@bD-jVilRwqT;+1UA3*S?A$A*ZO7$3fIa4Yu(&~S* z(&gKj)$v99@{ewd8~vC-lEfp+M!n0a^kj?b4MrqtL)_F|edzy_uRsqBnps+xaj2|2+F5+2hP`N9ey4ZR z=6#K+-{OE07XP(CO!+4!gO>IO5q=RwsnC)2jPhcqZ*)VTL=H9{X>AIhzj?%G+|@7b6B!=X}UhWz>aj?C40R+reeKP#F{E|3Wb))6Dz3nsJ%U_C}JQ737PD zhy62nIQ8-3Cwwx_rbqxK_#NF^1FWONYOJA$t;ITszkIXj?(04X*8O-9CPKe;AmUKj zdZAGe(mxG8Dx<^4W%`zwTAQfv=(N>;3Xmy^fb=}g?z6mSW*2{59cyf#?}y#4c~Udz zRLNUHI29U|7R#}|`#XZa{u`E3wej7dfW8~L%?j%E%Qi6?6?oVT?9iZMC}YyVpeBR| z1nDxT;Uy}p3RI%!+H{VO5ncqkRG70*-^jZp**L~ps07)3p6EUt&0ID@3Y9#$Y!(pIW@qWL3fZ#!v$e*y0v|qIxCpfz zPV@O+fA||{iz++DqE+-pK9kHed_lJ7dxrnpHRso`qS=hVT4T@i6ty?$hE)hOKz&4W zq|>UxK3S>=5y1lf+TX}s^!-T4YaOYy*4lTRjAdW#a6SL6-&H>y=tN4b?{xZc>$h-a z7#z;2#oF_^9BHbr$_1r-1u)@K7=xBIOLE6Atp4rk(gj$*zw+_Ji6BDf^5t-W310tw zNM+V?S3vg55q}GO*8tZkH6X1L+9zNO3#(LVD1;Vm4_kn&ON3lJ-5sfPe3`{!?1>(K z<}>^gcDf^tehD8?$~0ZfWtV#lAQo27d1-NsXr)yyPr~Bg8)-WK*3Ish|8>RUtvoLV?!jWdmusGN?hisBAqyn;FVjPfv?_I`>ylNXb-Y?@ zshe*ZoMik=Ol;uCMfG2rLGvRj1)hT?_}$hb#F<>f$<3#U`gSjOGCo&{HH{V!_XkKH z3SzD>6w>*~*5&3I+S#k3`A}lbmd*?RUG2LUq%r!>3D1zq=#&?$U0`}EPPbmcR!~^5 z102B9IWP*JCUPqJm93PngEj``kQIMX&T;AGu2_+(6`hG+ING+Ib7UkM_#4{Wbb_ih zq2j~AOSwPoqs2=Ry%+dRI9^yF#rnDH{?;sg5V|t8CTRqY&-(;B!`(h8Oye+LE^gTQ zO@~|753qs44}OI_Lw85SB(7fW84bJqg zLP$C$Z!wFW0m={D1r!xVnJq_4t)*k{`pPXG9Z^-BHfI$jCDSD!QzXz+l{o&HAgafE z>7&2zo5}u+8r8$qI9GfHX@;)U+aU9R`Tm)Fb-bfw44-@mF(Vt!;*Yw_@v|E8c}T6Z zJo%_up(=*N(mI0N+q6;qDP5sxzg(*c^-cE~o>Vv>G=(Z7WKQMYZ?WF#l(cH2?xNAN zuYkLpy9`e*|8pS$G+`WnIeT<9bFuXol+*?aTa~KtX(fjL@3VS@LtO7y5Pj)CgHH;aBy`>Re5RhDXsQ*08+fQB zsA5Ujam{wjydK|36k`=ttHrgN-fFm)s!U+yMgOO||LxBGZ^GwMiR5PFc4T)7xx?wG zAm#Nt96lZ=sK2+u(HfPjhbV}eOu$mO@JsB_nTy-i+U}OAnOV@czIRVC}5#tu9FdL8t^y)B(6i=9Q(o%+!F z2MYronE)&RSMsSwCsRqR{WqhCi;wL>;l693btWa-q+R&vjBJ~U=g8p3 zBL)s>n3Iw6k-V9=#d?U-kMT-MUTONuUEW_P@5zai*iV)@q}Tr4X3*PH@Hc}4Zs!k_@G>IJ;($iI3m_yYkipkI9uGSid63)yN zn+(W?03;7c>$##wQ86;Yng{K@36ft63TOI%{E4}`3Hi9ykal?{Xmu^?;_ z3ICjZTU@AWdT{iS&!eAUtyTnN{~Q)*B6(i%%T>%PX(lJgc>CE!2ThR!ED*YDfd_X63*0ozhDnPlzkOy(n6E z(*DCZUPGte!NPO2@14?)`1<(4bc`-;$Px2vvhAL)wQfe+hXhe@=l0+AidvZVTIQrT z2tOWe4#Ji1Uy=lkuxiofn$k4<{GZ}}H1_!OTd$7ICujWNB6?~rXtP;8D-%I&hInXH z+$aBKZpidnhpnzd+!IaKNQQ^6 zY#~!j0zwbh(&w#5Z{1CKl#m1AZYTzL?F0|NPGa5dIZ;>J6*QD| zu|V{nD4aNlE;#JMjc9ah1Ee3z3RZIVS_GvYM=-)Tr5UEgjVx55B#O?{%RNXXl5o^i zZGu!K&8wG~Cqhn0@Mwx1a*C@W^vAkpLLh)zO&VqQvXYnO$^#7zhkS>&k;L~weO||$ zuzKk3fU!7nOGVQ!<&5wnPPy0pxdx)-Oky$*;T}q}9Zrt+Mj*m!pFdPOP%xnp3@%Qfpg^C_-N3#1l z>vtm$Tbn!G2?xjc6#|6jD+81_fIlHQ_!rt1MCNT>k{|9UxqneU7)=Ll!oBu4LklSq^{MM%lLstg1 zbRp^RH1;xfVuiyW^V43>?*UJGv=hMFtSkkQ`~w=K?L#OJRn?aOpVO0=KxGl78~;US zon9XbzV5prk5)9*MfTI>pZItFTG(SwVXDW_ zMvePOJXxKk>O8ge7$5J;6IK_IKAG5ZcleCMHZJ7^|I7`n7%TTR9QxKN`cM^K5N4lO zSr~>_+g*3tCv4yCPL|QqUgjI%sd65gp>^|1I8etf7W7yvfyQS0%Kn+!BR==za=E|= zE7e1*xiV4gxe4C>_{#Wn?M6V1_vzGjl#1U;HAE-0kbeP;c5S5Pk~)6q9pI%ri0S%3iPCyZR+00C9VXtm@MNlSu`&PL@JQO(k6 zKdGG1coQu!y+V0x0?WBz4WQ+u=?dva`86aWj0@!)$C%zF)*5{ zyDJgT_=F!u{#Nt*bpGOR?TrIO84W*; zdDZoBe&Sd;YhL5pCC9NDuO{?1=M0}m;6p~XV<#=^oS1ej@rTN;iD>HSF|0u+W3TOT z5H$Pes>`0XjuoS&T3vg$`G+KXJ<}ni#>-nV@Da8bnYxYS-cVACN0F>)!Vp35YFD;^ z80@yd3(TmTZu?n>BA6NzZ|YhZx+DYm!D8}<^j;D3`zoE$bOk(^5}cvpKw%eZu{Upw zE;7#AMB;_5hHdVFfr8l*6-N+P_q&pKKPaUQZ}ea_5;F6tkH`8p_F;326W7ZXt!1-{ zNUpFlc81DaUt;z2-;)^*)O|fc_7+@2n+VxyL^dBtP*!E&Hpo@&(6m|a@jYw=Vp2ET zf?PyCk{=RcM#~tBM2)qDg>JuDc%F&Ap+kw8(Iu{7ilSA-A<&}>7$HRtW5USSfQsXq zvTN|Uu9;%*JlI{VU;i~=D2Qaf5Os<82r4>v_1TH~A*B(RDx++G6?a*g-d+{G8quin2!*%lUm4diB0F$p1Q=#Zu! z0>ewT@Db$H9-knCD^Ey!?>0?l%dSR(?RDn;ht}G^E^|dqk&;zU5o!F!-ZPk6RSCnm?gMNuH9AT6|x4@%asy z1W|9~2>C}h6pvH4cgeSpjV5!J3MG#jV3K9yH%&ABS45~*;?j8#PU#TS_fSA0l;a<& z$HJNP+OKAeOOoCW(_%@Zf=&*`c|M~mqHn?Tb`3~@K9fP8NB$#;^w6q_D^0&L1l!qN zRM(8>_Y1#5eWnM$!}@$stxF0STbrQo>o@Ex-emE67#x`^boLNKA6r-pD|f*U(t4n9 zpjXLNaPb^ED%&^aST#u-im-=fRdF+h?!x-JLUrVX;saPE8wIF)is(R>b8xM2wO1Tj zlBL#z1v;^srcKzAey0nPtUcz zHA9QJR=gbT(ff!pxKEX1y)kV}V{P((QCh3Ae_2{=hE&c4zQZ1Tm{kZ#>!U(*(p2BS zPNA|F9yWH*jDd+??9wjHT>V!Vw)LeuT*q|c?S2_T@dqThz;^ z_*`fhvwsL@#BoSi6ugQPPjjx;T>x`s<=1Xp%{UepEpbRT6j7JvhTTOCotfgUuJ@Oh ziy;obdYBa&>1j1VV4Bd_sw-!1zWb2rM(4=3=C*87;M6KlXKn@ixXkX!=TT`)_zP(* z@4TKzGm`O)3Lq zs)A?#u23ks5T(AYb&R~0)5U`7|7`oM93{rSiJ^Cc2PB~is){g;%Rk7^4F8~HGoNGeJ!7 z9`Clw>MDi0{JLBqi4@%}8$_D)_mw_;+-t?wz%IVXzL+1A#m-Ry0Zw< zwHU0-%1+n-ErdWl8)1Ae7xX$OZ_xhu;y?60cU+dj1wL(jKQ76q?1L{qIm^X|Ht0zo z)DfSUr#!VYl6Q!Yg&7s9RUokE?uP$VXo&jmd5wmswn?|Mn!uaafu8HA~ z_2CGe*S)^>y03o(sh5*d)Y}J&m9`%!sUg2F5-u(=k8Y2ZkgREW&)=h|Su0*a|Gq+v zki;NG%os?_#C1CYVz7m$Mp#8Y_IR~9 zaf37=kHA|Z=*<2Ezl7hwCL1cj57WZCL|eJQ=uf?((b#p-nW-7C-CpO-#C3SmuMezq zc5SG$&K1=^-ATlY29HGp$?0zYD%}3rM$&g3U7h+TH=uw$mQsBkX%BNbj>K~mR#hsUX^Ep*Mf)8mn%c2_0~`1hMmOvENtu6g-0G1x zO6le{`qOoE3B)Pz{0@B^ivY6Y6em3Pq=UB}Q#9%AtgBFN-}66OWdD=N0cu0?`t~ku zy5E*?C*WdDS`4&WZKCm?{0lUvFMf1`mx8nr5{eSCVmZ(qiX zj4(W`nOW89JPXg}?RKkgiIAgOA(^7R3ehsGU>1j9~aj zA15LRmhyMSB~^Q0BORW44fH0xb{B}Q6I5Ur38s`P?apwBbG)>iitdS9F9GP0(!3a3L)y(M$1T41?}@cZiA z%?&vf{wwptvP=_E8quTE%iz9+pJcm_2BT2VK|`c@TA*tE=U(etpROb2Q9^s|DsY+O+HR1$$BKKB zOQ*T9kEA6)v^$j+Z2!v3Ev8ADS+4}uD{OFHjX2>e7Cu+_qtm&>{$ai;dI1E`y<4;1 zmhk(=lVSDwF>S4PxVVC`0?ZKqZ!>B#1$0YI@N*+pp=$!ley|DcL^~R#mOWndJ(Mun zQh$>vszW3L0>`^i%G!XqQ(Q?ykG}@Hz zl{7b;VgAG%*>s;Mir4C^ve9y8MymJWqG?9H4r#Ap>7lSbZcBN^7Mao@JtWVo z<1Dt-@i!#1>zZbQaoYXxvfTVOB~q$9&DOZjtt@HX`8%N8W}{jrtGUN$@!#2Sl+lGz1V+7cZo}*83 za_y7gh38uvQ0ybu6}8N=b$s||WojZM1!V`v3QoLC+@63JPUEpDK(-J>x93XPST5`B zTpVTSPhQqI9J7nX@w+l)he!!mx8JLT`IKhrl?8X2xLqH3r$p6Dlg1Gday*{g#&5zb z5DAub_o8_oD<>Cqj(?(TiiVZz7nBq8vP_D%Ss!F*->$I%LM|gtXa|8G0%el5>C9 zT!wZ^k&7)WyCQjXU1bcVyysWt-euNo(RcL^O+AF`YvG##X&80z2ZNWYK7NoQlit67 z%Sz{7r0s^|BEEHFV^yMhC+(@(8b%mM9rl5HVl_zfq}uq3alx%<4muBjJ)M7?sg&Mg zVnYfXrVIf$)u_ zDGh`II-A!yItS9Cj|nfc(EUlk(dvR$!-9zshNPM`uAi&2@UmsxIzKUR-1r+ZwkkXu zBbQOKC9~Er*^twnA(YY-ezK&(;N}`k6oDP67y0uUG2c?e;r-;nGCj6Q^iN7r8y-OhZgLItn|1Q*_uGYs&V zP7Ob}WIaWAg30cs(zvkfeh+=W&RmDbLcQZp?Ph7v;WG$0qiLs3mHJvs-6|ZrIEEH3 zB&s$B=Hhy$3@|DUZ&~2g?oi3@*I^vRY}o&@7Z51|$tGPF{xQ&NGm@RxR5;5N-#79&=2V%BsT~RGM}SPpT*`lopV8~m zDms-Q=E{eJH?jCJVEo%KMCG?myz2rV{VBP)iFAz%0y=XgWiwkLqz|UK>Mm!aJn<{CNg7o?5FI?9ORkpfBtHrnd+p6lxB*Ehq` z(vqXiH17K214uGEdZ2LV=_(8WU>F$UF>z}LGZx5pjERu&abBZAAkEORCp<(yx@Qjk zO8pJ!`myXh3HU+WFBlC~ubk42?>HW*pJQ;nsTa@oz@Hy#;C_E^v5d!}AnIFgAz36f zBi-|^pWzH*U%x;*FpLs3vFdGGwPmSq45-q1;y>@VeCOY%#cl(t=&#v)(2_ybwaG+O z=o5HxMUiDi0z)^B&e{^{EaL1H$0>9q$7NA_A*QOB{3V&=vrYv?Dix58fq00gx04eG zuz8>A7qTRkGAs#Wx70yV_)*B?iy4}+?cwdM9mdeNwstejmu<=NRq&lymINF>8d!iK z$;doQ)LegHah@)+2~~{BXs`>JORk<4-UCvN;aYz@s!-Km2Z5YNfX6LThL;a3S7>R@ zWkdVsryKzCy>jq?|GXUJdVgbp4B`1PP}1R?J_$ytAciL!djoTXL#*&TR?QomF2x+} zm$~J4v$cxSIl@0|YUJ|Fe&-if)>iqJrz8DcmcIZ7hD8YNRK0S<*#6C z$inh(35bVi;Yr7<_WHZJz@)HQL^inMGP8B_~_=6;~zniUB>bOW)+FXM5ygm`mj6C4K^7;dBAT=W&C6-h!ML z?}M83M_F)tc!%iXFm3@4ft5|{m=WzhStyi_=+ViI>x7Ka(1x*kO&wA2Mu^oOFZz~6 z;w~l~9aF_pO{{sRgZ3ig;^$e#;=br*gE00;z8+JWWDAYZ`1@hoab*S>U>=MfCTee) zHVzL6F4-ukU{Uy2Y!E<_p3o!Z#^eB11XvaryFX!Ix%jo?BVzaxcpv}@aj2qw!sXVt zaIzd3xkSu)asQxrCS7cf!Yh39lyA>-2ihNfjj!rHF zc%Y#E66`<0%rTTPw#i#>b;B;uPHT^I=8sP5u+)kb<=)s+MQcEo>wmsK5CxCRj$a$f zM1_V$?4%vsdMA`fg+w9zct&LBk+ti13WmNF83#obAU_T1 z@naSM)p)uXzDDPwnBHl^m9o|aRMyxe4;l&+v9&c>al14=+zRBpx4?tLOn$@fNo|HjIf94^oeLqR9%rtG~0N>j*&C1{EHi6 zSOn?-mnk&!Iv6@sEWuVy&3lIX+R9m1Dkq;5wU&s22)+-)UdVN}!I=}lOBuB^pH^Qc zjubsvo_nZ?Qj#iZ!h&q}BTf_IP{ZToE=HmMzu#5(uHSY*uqyh*qN3JyE+qy31& z!tI)6@*s-Ghwu`&?250%)7scUpLyJ@hwYHEvWVr1jd9Qz3lM>&&6?ExA4SUCV6Mm? z(V_N{8L}5b)@tk1*}?^Ei&I19_p27VVLAC+$y4&6vBwM~Ta_}1AZ&zou30KA{pe&3?AoR$HT-p4d2G{b?Ym1{R!8lCQlDpL`qBv$j6U;H zVJB$kc+J8LU#6k=Z^k-74H*KAcxjQ3&d?MWm_8z?GrxXaHQH=Q)8awmaT8DC)S$_s ztkfUPgS&V-2eZl>9OV$`c$^7Q;=<}nQA zoL-~~Dn;Dez-sT2TeB0cW|d;`3SB;V8jK_ z^SL5e*Ca_T>%>jwF&wsOplh&CW69`=y8aQ@o z%-|E9i_pqs$H;hfbwiqbxVZ_ZVfMrBo6HsizCy1|ch0uL@yz!YYb2Y#f#|`p3`_2h z?;`1tuG-FIY}LdRq5t<3ZyrEgMCZLI80BegZtfW@f6kdByK`Y>l;4LzuP*DZtX$KD z20I1ak8)j{UE7DJX~x{2U`u0awG_V2Ikf*g-K5; z(+i^+46HY>cphLm38SL`o)ji&)7_FE6y}417F!})JISbUno64(cVcq#ues7)>~fhx zMItuU8l$G%0K=*cVj}&B^t5>GBG>M|#*-shbtj92^{UC7zJ^Ut{2v1s@xGVkHa{<| zT(tK!_j?dmr*C6I22=*LV45ChVE`;H_nA5b9)HhQzygisSO56&!>F4lM0tl#Vs~&E zTl|^l)nvYMI9RWA1_+(rJ1}pVl)jQQm&!CMK~iv2STBi%Be3)UP6aWoY#~LV>Q5W; z9gPJDzTASp_V)sYvce_>L*6XrZhfQ460C`CQZ#UGX(5j9A8c9X7JeuymCNDR@V^z} zU#7!2Q8D#9`P#So<9s4GLLT7^Ck34^`V$`V`VJDehXz`~I6epg4-vxxPGK~yD3AT_ z0z_JQv#y110OI-FTFb86m4DCKiIc6P$nr36hU@jt5#W(;aNnRa+M%@ufJUiT@0eK2HENL! z8*Y6$wfOF|H~$@wxJb*bL&7dhMx0SN(}5&MY^1TZi`_Xth}t7noauDFU4MP^?!ogL zo7^=^je54=ykkX8Wk-^NQSPOol{>%{R?%wyE}?^1e^gzfnjFzlZ3z`PDHRq`pI(R! zzUHVpNA2qd1_6+fe0=OUiSSFOMMh>_T7Sq^!9*iW@tWO$*UJu~5zP?C7jx+TL7uS* zlyNK04%_flr)Z+zYq@2cg)tIme|Bwmd%C-mKz>(3kalZsh7k1ABwNfx3T57Xx7l*( zeu3<>G%OabA!F4!-HzyYi@ zzK;ImiL7>4VV!=jCCBw-yLI0fQoJ@1<`-0){6pFZ@Pm0>6+LxFy@7qFQ=N8xH8A z?`XM`&fSp*EgHEh^rp0qw^8u>)_1v+s>etBO0m^tfruMHnYOK@^~X1C%1ih@vWBav z7c_^OboG6F{(*t|-73p)1T~^ix|R4p z`jJpl``iGm*TGLeoI}eey^4(eU&)8Q?3|lVe7$8?{RiyrnLC8kKwq@0Kiu+Hpxh743SWduz$E}?mSg1 z!tP%HT%DKqUhQK+qS5%%RO$hvqq36eoT#knOV7jo6F+CHV)8XehpnJ72v;zWe%sF| zX4p^`O(R}Q8;}}j%ReK8(Lvz5au>;{S=KD#s0dH0inI7y1^uu>br)7LGl)z48x?AW z)qf@r_Lo&VP-Peyhey47{}G+YShK;#;o7G7hML}D9POi%+Og}fbf3#lpN)#zs@`6u z-O&sWRIX!J-|DJ=uiTfr=zCGN|6RMQm7H3c$~4IEgGxChp5#Tlh_mgoi6SNvB>Lqz zgZ@+MpNjn9D=)ABP&MBO0Vs)2w4H5__d!zmti+sV40@DVM4i^|{GuO8BDwItdzszN zbk4jj)*kt}%{DT328TUu=Iw&InX#XEAx0@fOFOGR4{UoY;y;U4Nuy5;wU>V2654(V zQoz#c`eoz5qR|hz4f)AB8)?yT?I`j`KVj}qr}n$}B<>+3h(+*gNT6}*Aha_8R_|8< z;aho8<<_)sp8*ZMWa)@=`mXUcfb_IdG^mslaO>u@K9B_9e4aV{;;Vk9saO-PuUyuq z3oy-GYw+a16H2_1Kx{y6RSDAwM;Rvs)t}Pto@>$N^HFVy*L%qgjhuy%V)C;Am>x)+ zIEH)K*Mwu)8->g#dhc+LnHmW|vqiseC}jVsRNvn83xuVPy|rZEC~frPapTRpB^Z(Y zwrskEv!O!%DY_UtS&H4C;KBX9OnBdZKw<9A@e>YDw=HGwXMHA9Hmhjnu1uC;4|{;}h-$K>W}7r71HdQ%*qvzX%ZsJn zX_FMxAG|FG;D}TaG6b&n948a@MH#Vm` z=!KLcW{S<3;%ZQ+P%b!HBh5aW8<(?f#8dDzj{QhqPCcE5@^D3uI}5LqKGzwUCNY>ge#!s%ii#e=FjPC6z=$^%lNRFLeSF zqzt5A`Zu|menk~gbuL|gJkzxhQo?2v*`1tpC3~4BOrpM>y_retQ+kzm+F7XFm{KMG zH6Csa3t{c`>Z`Q1ym%aGA+N}bf!76@Lw>^QDx=bB@EyToQ!Mc`O4xOWOV{QN0Q5%o zm6MjW)#jnKn>G3;M?|u@YOt^$c7#+{HJT#eM;b$mkZn%oHm(=e#=AS2^2_wb3>MrE z_)1!)1tB9YmLFqK<6IxZJ`cX{JY9rP+-`-Q3X<*_+zmp;KT)PJFxLhRH@c5dF?#5! z;r%VKI}v0NZQHL=gP*3Qj!{=OArZtcIs$zzLJc6TvC-VI@TU>ruZB-vZEm5QZC``I zZ({Z$d{hTIs23>~g{>Hf^u+z2RdTW$b=TQ%ju`M~=k%`Qs{a1|`g_4+v-S4erWa*k zQiX2!g>Kx%yJqae!c?LCV1xKD_BB>=6SbX*fQQoZ4@@oMe5jjhWO)q4fIPJ`D579SYi6-0_KZ> zQ$HSQx^hA z-w-miBWQz(8Y+AtEQ>ZqyA%sctWs&454g^bdg0;?@=~{aBi-=tG2lgvf5EwEA2G;O zKb+H|l}v)sTA7Da7U!0R$Jjv;k8Wn(-R*}nlFjGx+OAUtMwaXQUc|dd2#7AflFq-7 zIF){Q^oV>Vs#qt(gzXOjHim*Sj`oBiAokfq^wMCm0>xOnRc)a?t#rrpJ%ojz^{>^A zdfPF1;_lV91R(Qf&Hhc?fQrzfdX3L=w4N*TUcfksM3#23Nd2~}LfYnkR9%B5mq_pL z$}9pPSO=KT#KBS4yXAMyXGZibBb@9O5Pa-cx|k9^8C**4A8 zBoKA4zXu_}ZxJJJJ;E>8gfaK6C{$= zC~C~IVX@aQ2x%r47GFlpE(i>;KHMYjDxo;e!yJ$?)+#_&a?sa+@ zMXcO?hBIvmlD|1J*)=9+UI5h^E0O@drwtj?C)M2^aZhhIPx}_Y*ae`A0aXMjcNnKQ zD+RakuvoZWBbDDhxs#AJ?pcqgnVCWHvGj31PXBht#X$91Cz<>#*V<&Yn*Tw5bP_x8 zL+fusu2pi-&*iwWc78a&gTKe&ZJjdo*k&bosCw&UU9b2&&{b7@IIbCZr;bP@ zuxPD2=|uK(9g0oSD%f@rs^hYTv8-IjyDk!F+k^LT2@QF%i}dxHqk_JI|HsZ0y>8-; zZp%|OZ|pHD{r^(Ui>Tf7)j=-FisGv%rv|4n1@nxK>os=7Y0xN=@oX;nP3<8yD+m0e z4Q3iAch}Iho%NCQ0D{)1yiZ4$r=q689p=I#p7c{i+Nc|YaZt5D2)-5c9~M_?v{O?} zsP4>dz(B!|ZA8QM1uQvPs(-WORswWq+sVe<8MnUsOoXl9bz%W^sX(`ERb9!qOS4=A zcP;K;s4-U8K!_>lg-(U(bifZ3h?%y~Ef3QPWk}!T%DHX1Go@bOIG(o<(+-l|MjZBa zSFVkgm^04KZwTnhzI|x8jucOl-skwWcWtL?<4nR3Q(jKHR9~O5n{kLr3kRI#4_{`M zXKYioK(*)$cBxz_^prp)@@PAIr*>sqkMUg8Y(vp#!tR5R2uriFvp1@N9#Llwqkqtl z<=!YZJA7C#{0gP=Mw`DqXpi|-Y2M%V#pD4W3~B^HFeUgWG+>=R=6p_|&GgMC-V5K0 zpQeGJ4@te|mn-fPR0S9Ct zT^(g=f$>Mx0&&-`)z1H_gdHuBL%q9Q_OkKI?S1V81rAj_EJ4oe0@T8G#Q=8Zm%*-1 z1JHHIIY^t+Fa)XBaZNxeEbhtgfZBK#d>1bHBuzgi8LU&1^0x8~HZziXX<^u}+_#sV zfN2}B4@bye13T$kT1ri$DMuS8Ee;@OudHkXpyM|jFYbaQQIN#h8C=gXA~bUkg!H0It! zD>Cmf|76p7D&N-8B+=ZLq*`-SbtcZkA{Y|q8U zlZ>2Pb8$WGM|R`!0+f=HQaLu!Rgr+(5&VActiFpoEQHYMK0pal@@t_@>j&A1XEwkV zeJLhYAE`y1U%6X_s4ZXeT{?HmHu+A9xoC-oNb?g(g8K&)v(n|wAlc7*wviof)P&m9 zzIIZubq9ySB`jV9On4a?nFX(yyW@YAYYvdxPwJT&P(ti;10H-GsJuSHC-IaenVp** z011avG*rw}8F)9d?Twm->->(lw%n37fts~lF1Lh1Jj4q!hdQqNt5jXo6qn#zNK?EH zHbaDxFv~z|p_QUlygZ6wqIVsyzC8uDKMV$Vii^7JlsZ5+t%Ob5!Z~)`k-)9{P(`Nl z6ftal64+Em5^29BCtIj5P1Vo_AJ$3bfagWZuV>KfpkZUlr7b%9>fOsYLqx#^U&czi zauT>LAEkJDCK4HG5k0Z5xW@?#`TGs@#ff*qgh8s-9V1Z}?>maeqbt}#kbZn6$S}XM zXnObMX78X=4}WkrLgtIF3z6F~dB5&&FM&oRs#zPS(<4EKh;Sv^jq>=6E9->{#^aR` zZ=}Blkuqa;DY)D4_saq1l{I_z% zV1~fL2=dyppZ-7QYx6YPwJ~`OhyeTCk2Bv=UvWPA>6{Dy8>b6~2Fi=J*w>%{M>Py! zA^%fKD7jn-`d^I#!;*kg;3a|-EJkW;#(U-rO*Fu^jaMPl52%Nu?pJ`*aX>#2KL{|; z|6XLDU!3pHe<1sOMd0QHg5OgU2y!(a&UqZ=@6Q(n4yO#Qtr_Zuo-n>DpMzl*1xj6= zo106GMtOi1%8BL#3PT94-@WK`IF$3woY-9RN;}QPaeZ%ZXzwHY=}6M!i`aVBgA~Q- zUXaYu6Vn3mJIkPohZwDl!~Ltln}0ZK0`nj%fAK=<=Ue3=)ny{+%JqT1&%+ngG)^6` zrS_nn+}jQf4W|^CSH*$JgmHH4#8~QU<^#Iw!wjAOSV7(J>y*XZMfDpE=d71lTU_1` zeEg9NwrT@#XI8Vp-)KW5pyHuAYMv71uj#oIu`o%0B|Niwc*g)q z8o!z4$m81iDtFW`F)^cV>bz)yo$AZ?QMcn}gIjMhB)MpSw~EDhIejZD3qFxU>~Yt* z5wVa#N*UD~X&iJMxQ!RfXU1x0gJtWk8iU@xiTm?@S+?PLW3K_PB8prk%sFgF$adc^ zy8(^h{!O6${&XAcY}=Rk*uY7DMKs0JZE86qS*=*%AZ0whyHexk`9@~IB}W$ixoc#? zYe2rX(!&5(y@7ys1WK&ypxmi_s*_n~xA>zhj2F!Ue0dueiVKON>;1*4m2QrS|EjI~ z4>@;U8}!hw{jaPQD_*G!l+ISm>sA_w~siF4MhiY$`p%cW|j$D1#h=L=&U z=0NtKSs} z!tUIus%vWK-F7f$t6jOV5lmqN-<+xm&p-oc*EWt!>TyLb9? z{@<_eQ)-NPa+Kmv4kyjRLRnbGWsAR1YP+_81N#!E{j#xzN)3kSlUVXl;<>LQ9eD)$ zv+Fo#uec7_k)g=RQd7T#iLOLeQL{E5(gFR147OrXoZp;ECS!0=f(JS7_1#iK8ca0& za8XakT-Rwe6Yf1DFP|`0Y$H^!Glsbfdp(nHLtw7n#4~TG|GuK!cA(hoa)mqb>>Av@ za2czqd_VfPgVlW+GOkSf(&;V3K-{Fwb^T&r!TwGt%i{c6@*}fJ+KeKtCXX$C3(iGn z+OC_@z#&%y97651sH#wXbvQtyij6OMvAOY&=bO-%h=KtF=)V~H(HluQ>YMfvPl`^9 zXhs>v<9iJmu!gjTz0*uR7m#`5eGkgEW0tshk`k750M+;|rRv zar&0|%rQlals4YgF0u#$0mu)M)$x^1!>6W}FcjiPf_ONB^?#Cp9OD2^J9GWV+^B}GR@#|voQ zS#F}0PUrSJM0Af_wf}i&+w1Hu;A>C3dN*;ZHgFEK9+90`3w9(}^h=t^%eGq_uBa&s zo~>8KZFZE+mHdF0AhyEBb$Z&BF-GuF>y3`*h#4Rq>mdG`tBN~YDL8L=G@-{S88?&I zQ~0Bc`1S@doA+O%qGl8qC#;>!J00rZ)lXZ~*?a4lyPEAe71#JgM-x6Yc#@3lqTZqf zN2*vN)g*cJJPPrPHI#={73EUlFj zi&pJP=n*93tbg2AQW0b|Nb^b4i?`jR)e*Y1JmeQF^Wp5UlE#?oFGH!luZ37yS#h>f zl>vVb`4om0r$srNC9`IbWomJ#Na$q`WtgCqsQmu}YjIB4PI^yUai=-|X9vt_6s?i_KSpz%BT z$|Ap+qDCP|e!DS1TZ~J|rhnw^1MPtg38!UuW-$T9|G*zC78(`r=Hg~B>n-z3dl@hK zL9Sp^6$xL5Mo3o{nY26^HsFYscGs@bL3reH$?tOi{ixVf`}*bkEU)F((W!~9CGK04 zw1VVKEk<`%TqILT?)qSP;b^cbWA$O)4k6O(~mwi8*)NToarNRSbwkFJj z&#;6@DG?WTpre4n|b!x8@mt^x|Ws^ zyiS%e7oulJh3{Qk=fUpX&V&WTUYDGgj(!tHa;LY2j7Z~&-w5=sFR?0Ls;H{&E=0`_ zIKO)G`HM%`gnlUdSBwTtWK_G1L^S`fsl8ATom`i;XtL@HQ>kP$;UuGwsTP4dC1#$| zkZg^FlA@&w*3Fxnqou>}z94QnS^hfELHl-X`^8i268lp6Pgi2i%U%`8VKtrm^L32A zmGtEF^^Ol5bJfP-mBf7+3iB8Bj%$#;!w>L!A$l&_%Re|-S3d6h9~F6s^&ZQVmWtxAbDfXm4}c5ny^!*T5pa5d3F#~+Qi^@u^JxS z_Q(U9Fu+WI7n3P3S|7K!SK)Cft?BGeIOurOa@3WGBuYq6kMd1sQoqn~P~O4HNTKI_uNvthG81$TnU zSpW6$a&2iBD{qO=L~nSdeXss=GR;QdUq=mvih1afAaL5^xg!{(=8F z3Arbw3nqb|=4jy{WWH_D)!=%7y7()0 zIW^G}o+rN(R-y zM0Zf1#02$bjX;2S9$7I@I-{H`x7`uAyNv6T6bmNfH2<5WmK))dOGve=zA_N%m1EM7 zr-^-1{C_y3IwR;J-JTsU|bMpgy>+9D+ zKc1Xrc(v$R1|tOb#1L4P?+rw>LDg%0D(Xucpcf@{|>EAmfqM(@43-)*20VN(Ic`aS-U^8ulPHJ z+)7B>t>wu2@P2Q(Kq#}J;ebP2K-C!&7Z3NpW;;tJk2cHuk@kdwhl@w&kP=~?fgO96 zh3{M5!I8(sbEg}jhUn*Q3l0t)x{Og?nS3w^{v6rWsRST%0oMS6#^25?=!B8XpXpsT z(B6@Md0x~r(tmN0_tmRs7AXAuV){K3k2uWVb$`AK{{P+nBMWX4{>zkldKx;^%dX9C zr)+mw7=x)!R0(0=5@*vS*;sL8%_zmS0?R0B3ONb`9V6 z5b~2`er}GBH}$}hmcghGsYT1a-_i$1T?;g*TXO2!A`TXzf9cPP-~R)&560F#U5 zr_p<73-^59_OSU=_O1n2G@}eD4Wud}Mon*&Rg0SC8uT`@QZ^OEri4O{yK5L54ebUD zj5oIyeA(Pbow*dEe@&1LNkhIYT2T=`f|gCMFxz>@R=x9T)k=76ak_M@P*BuF6W25C zK_R{>d>?0Rbl~3Eg@+H@(W?cl>`mFVx(P26##>%IA#(|4TG-mExfvI_LFi@z;{MUiG07WJHcb{P5SkWw<6eQ=aDI zVweEK;->*$a^n{*3~4xF6hn^p$TJUP7NBd5Ha8Gyu&L^zi!w3Dts?#s6^K=ZI({ds zXCd6+L1c!hpH&6(X;6BlVy~gXVxL}c47X`Lty5h;8pGg|2doF4$K9`Eye~0d=v+FO zOgx3${l(eo`&;c6mAPDY{G!t%1AzX!pJeVqQpp`*1E!Uk zS?nWr2)(fAo-dg@2qRcTCnS!9eue_N0=Cg)gE=yWJ{-(%E7CA#E$EQT?%H3s0uGwv z68TY&t?UX}(2zzoC}_MnsIy5(pXU}$ub#A|g{@X52L!8k;GvVZlNxmFLlP~I+_W&Y z>Th=AN5F)8>mIIO!NpF371>E(sA1{6tVhSf(mP5{d_?s-iHX);85(haHu6#fzBkV< z<+PfIzQ4_VCNykYK|6n}0BHJcIrjPr>$>)IorY;voj?y|Wt`&)I|243Uz8%Q`O<}u zo(Ls+gecRX#1GrUH0%32r_`Gh@YvAijp^;?BDm_XafP1#j|_=TiP^TI?@c&XZNP_V z**|AF%3TP+27eamM}#4~9P%(OstzK^Vg$V)qGx*$NK}z9AvZr0M5|e-J&fDzyl6ft zB5AEf9;T%T$6@i^%ofE0af`-8iwp@7Zkcmn^u2JQZ(gKxXFKvxbhP(xZ3VHnuU>u`c`D<9S=C>WNN+@WL|4HM6t?f(MSs zQrwS2#0HtE!xK-nbC62IT=a|Y$4TkwL4cN&>@;m2mo%o+B`{EeL18Y3%4T51#DaHr z_u^?Y`HB=M1m&)%-9wX9eJAAPk9n`YY_eN~HfQvJg)sAAfgH zH!(c}OizaBLgw=)-+V3Luc@;}%0IpLUH%vrk{T ztf)v|_@&Z)zf31OG0J;6zEs$$?qF*~=`v*mE11i`SPZW%4v2u&FWJfUMB1sA9RH)Y63`-b>)^ zmE*#QFKQ$`4I&OZ&a9%jp)l)|&x?erk|k74_Y~}cqNhXQv5Tz&$)ikx*3gUCI2qi^ zEb-xHkm0%mO84ex;L*pF)v%VomqD9JTlMH@UHOBEtL(*b56Ek4&2X1@h|gdf1V(n> z-a~Z_jKkJhEeFaJL{@W=l0eQ3>xibjDW!K@$Fw({$DgrWXrKL=PDn*hHL}~}vPqg+ z@|DhW&*L)4cj-(u|<#c2#=Jnva=HXtnxKHdF@zDTJsl=1xt zArpU%3`84-C+6u2**j8F{pkUAF-eIh7nq!Mn1ZCO7LA>?b$`KeUf#BVf?phfwDBam zO)vI-9vvO^Gdu>g5(F=Oawy$hJz3s7?#m0uY;wnaQd(>co{bhqA&KX`6H>=<{6j)uoQ^hlKvHy&d;elv6Qx+h@i{~d8glKU3yOfTVwd+?0SY~c+ z0Pn-B|EjK`VF-}2_GhN=sWn(c+dMsx2?!F*8h-y+q_@`fGGA_0Fuk_4um}$hhDO7f z?t40w3f|Efr~5_V&38>qD42dHJ~?$mOp*+YCJr)qeDLe+5qKAx93IYmu;}*cX^*o` zI)63*eH4~k+>m^Iwe<&LVSdI>jE#vbx3&b>y4gJ337e#~dA$uq-CcWHTgBJ2C>Ds_ z%FMLd-~~gc7oMO92<*7H6q#&^DJjGZRa;hw&of5Hu(Bc;N@Bz?8cxN?i)D{TO?RJ~ zp6=Zke9Xvs*(V?BeLG|v95@35;y4!*6WDFQW`ZR{1g!L}(M-GuJWiULGZnJfKkK}! zudlzXnkSC_9vrGoC>)!4v{(g+Tx;WWbEMMamWIpichGA44I4nxC~@Gm)gwN$4N88H zmIZ3xIM!|1%`GVP7wX5xt0pHE(So)oj6Rf$Mm_|5#u#}n9oe$b)7J+DWc%6H7{cwv zexK9wz4z=an`APRw(6&_|9EgmrNMh$6B8d8RGtLi3;iIK+Y3DJZ+27q-;HQ*_P$jX zC>Fl{G?W++ghcRc>}**O=JkSny!xGTh>Vf2q_=;%>80BfN@BcFPZ&YK8<5reGHb|v zy9`;f3X_R+fZ|wzM3fvpj}#W_=;UNb9UUFCAg3jhupcRPx+7`#&uikE0uU$>9o<`E zU0QK*z{XK!qoSsk!+oK$_A@rCsKi81y|+AR^EGA|nhmz-$Hy>ah%hiPST1Kz3F3Lq;-7zhGwK3r;x_R9a@?0h z{Cu>~@NfWe?1{GFU-`{k(dBFXY zIFBOd(w*T!qh4zs;dy@pygJQ{EwFciWo3xUWp{`i9F3hleNdz0H&cz#sqp++JW4*U)NbK0t12neH^f%zxMb2*zJC= z4kev-#xnHT>WioL_mf>+b0_5Cuv!M^%XsA4sLUikZ*rF8&h)p(!G#5QOG^ivok^2F za@YudZj*?V^dj7_q_p(-#89l)K3^KI!t0S=NK~||w-@qxnR3Lxx?Xs-+*;y*Lqe{N z5!3$jWsE2vA0EKPo_h?5uz-w=>>U*)`;LT!Uq=V&`J0M#92|4TV_8_zX9EYZ>tLfxD4@Plcz7T0j?)5f0wCVOoq14-~y$MzSuvdPB z>Md+UQ81J;#Ze`BA7*H@F|Z*fDcS7{f$x0uix3du=6c*sTa{_|jt0-arG#?v{4T6? zO-(~1c|8egOdIrn57DB$d83_S8_NyWFUQY@cOMuy8CcxzX1 zWUg#dQ>?$*9%z%mr@oFejGFseTrVX~973Ejpu!}e(&hAl#iz`NYVhvspn;8r6@|DT z2hdP|dt5k?%LSW8yE&{*i$sNe3CF-&f|JPS_0_~&tH*mPs-ff4k>asZ4ccaREZ;1} z*SC}pA6?GEV|%qUOtLP)1!JM6r2W|c_?6pVBX47?UPyO7U+F#q_G4E%^x%;$zgBA#DE1IOd`qBE8p^||N-^{(Po5dcOJK*6yys zN@qhN+p(SOHc;2~t|pBnt1hMy=t)!ON=G-^*Bh>ZjD`l!+qOB|>{2{=!BqckH33R=g8*PuP=A)8q z2`~~HAY&9d@cub>sB1q?o~ju5;S}=wUIkx1xd`dkZY)E8Caa1ee1mG!wZT{~I;~=! z)Q_ajnPEM3x(1}Gf23XPpD&i@otk* zbRlO4oX-!2Thp9Fh&;@X8~G_S*2B#|h9-O>*>-RW#rTx7DDv>#R?Bp$76*Go)4#2W z*@uDMqp4>hwbX0Q_ggy9eN5DeVW0sKD@bE`Nc0>@w5$6&R^f*b=Xy(Kfr$Ov5zztN z`Aq{hhg~o*9L{&b!tIX>FjwYRFrl+#g<{;1Qw3MjpTp{A@g$b}-rv@B?YbewP1Vf1 zfv7_!MQ-73FUS_K8(PTa865g28|1ZTNxO>j)0XQ5ZpsWsy?$L#)nBg;Xd!+5 zNYU_p)Wjcuuh@iN@Tv#q>_bljUP!&0Bw1=7BmycccITlUtRtzLQ{*XDEu2b-ZAJgH{>Klh2E zFAfQ-%V@fCmZd68712Nm$n?~d0&RG)4f?87&yvi&3y>ikslo+EU~Vc3OG4UadRE4j zrx0pN$ptS*&h#{tPzhMbYEu-QJwrJf1g1b8eNN{&|*Wm8K9fDhM zcXw^v-CcsaI|O%kcsu9ZbKiUYqsL${Hr>>&T~%w%HNTaR&?|Wthqh4X*yql6vRrOj zmz5dy@4*Z$J_IH|T|ZoCFO6DCeZa_dl_u>r6?@<7U+R<$PecmP zaQG`QLC@$CyKED`M!d#Co{8od*8w5d5Bv(TN7lX1e6oCz>c&h-=Ip@)^~@vcFqTg$ zMF_V6cQUe_zcq%FwLEzU5h$Y;%sDOSFni`Q32WjTmP%$Jhtq-0>weKU-G>YATR zC^O4;{j@maXU|A0fQuD8VEzz8)ab=0^a7r&a8ZX7GrTv`%)##2K*Ce2 zi1k%<#?#qc*AX3Sz8fSYfZI)$0zNk{gGF&VcCkM8#STMJ!@U=0z ztA0rTLUW26StgD;ZCgrQ|Djaxe5Tp#^@6w|vVIqeyZo6=Xm1ik@?#twA})E-3+;-e zMiq|sm5C9O%bf{c&mv&fhis?6(6#>M2fy@FrxJplr!d%pOh}TZJ%X0im))?`gY4GL zp*lR+F&}!=t7%x4)4agS{M+h}7uPk;^pO7Mj4Gb^`1q^K+@b_HR_?{BO##5Ze7?~U zO)l@yiLJbtey>(u9{sifz0zBw#ZC>0cQDw!qJY-d$@U}Eu~RUqtrP?V`TZ-BncnR z&L9z@3X2pHt0Hwa81r6HDHG5I$j*ScQC$jUzldVCz}`M&%=Cg;Q2b%{bV<;)`3UQ% zM#o+o-{zJ6gY)qxE^afUEfcC&N5N5y&xDY$I22bSB93vr)#>({DFdO+BhF;gt6wt| zJBs_xr%HK(pn?NFoW1@efs$?dz_!!j9|Z*xyE{1&5tG*~CAor%)L98j8Fc|Gor^@8 zL4(Z=`c#HCI%0G4j?H&>$;Dr_`%_w*#&5j;idspyBX+M{e`s(H=T=bn-F3yGyh?D8 zpHtbpc~CWu%Z@po5KW&Ml`t?Q_00Z=KfOXwwU zolsWO#Ab!=&dlrUmg7fDr@Y&xU+MyBb|}fvle6ZRJ{gdGunr|N&#jSqgWFe}5W3Kt z7mZar#ES{J-bG_jEpu;t=q0^R=&9ZoEEg5Q{3b)&!^RMbaS0M3<8J{d+~3f_xt87D zUm;fNkA8Q0L6I;rqCnggzIhcTW8OyoTw)<7oUEiS@Or!{<5=Rd%oT%k%Ni|_KD*K7 zNKkVrlFFuh*V*9D3exIz(XI=1PIAKBcT>p~g4oWxKzx6H$+`8S)$2qR5ormHi0BW) zpjPN;WyYk{4EZkI>DSpw=>4?Ej{be2u5RexVoS16r!nbG@NdeZDNGxzGG57SMi|i`(!)7?GC642+``x%ux0V#h$rmf2~vW5U2Rw zxK%>MJe;B?-v_o4Ch?_XA?$$27=0%IE$BA6IFtW>jm-Nu-Z+DCp!jTz4pYH|k5BV+-0a zx(~6aSa9*U4aoLa0a8!wXW|AoJ~;xeKXCbU%|gOoP_MQ;sdU}6 zdzT%B?wDjErcp(&FZO94oHS`^xQdqiPQ`V6v5zU|5&0A>$KI7(2_J+cj0int>)v-% zY;+!P5+aZ$asx2@yau03iq%!D3KQSCV;3)kZ?_B;#UPv~;|kbyJ;OF5m%!>c+Rc43 zk1cvPxiLZ&QZG=b&kU)_Jg^XWxQhNLaXRhoaV%O?eSXm8s;-~?9o4DLCEp8PhqQyf z;D&*Q7Rl%J+&4cD!E8Fw4aB6ECsii`A_-`W*>5?5Z}t}(;2E5bn2~twLgAR>3?^d| zl#>n$P9mf3&iDV;CawN|w_h~$Kl>~Nn*Y7AGDIrk>0VHC<*bfzr>_iN5>p4w-XxW- zVVVp$WA8wZurd7HcinG?qfGK>HFxqXwfo2z^ju@ct;?0WStLA0JdFI~d{XIFR0%5| zd}-;ZNt0jPo(inZBK{s0)7-=de$+dSZ^R7AY20p#hS^!STByV0K1{_?y=4aBew`wR zc?wDmAtrx|L2IcX|Hu%u!7OquE=c+Y!sQFs{s7gdp>`x_Yrc z*#`&UMli?pE$txCQafgk?2k z+Hpa{z=({y+g#EP=>Xu-vpP^3JL{3t^#7&ww}m&MNOZ1lSO$G*iF$h|-9WXOFkSYkVB&*HutgE%;r2pLNr=_ zuUJ_g5luREPIKo-Wga$F9S81CexNG8PB-$~5V2l+M|O@TtLaoa4s7De6jo}5WZ2Hj zBmGs|a@&JI{hz`N57AdmAZMhciEZI=rjH&N-OmAcepPH}`o9!O?EyZ5P`dWmnqo*^kiM ziNeE*@3Km(uY12EykK}*;v-fnSQXk5F>NxX{C4=ANUBass;e>Hx&AUy5&>boBHv47 zr`^)P;vRQHc z7G>DQu9IP<5kOZz;vSJ3iaPtJdw4z{nKidAhzNF=`(%3*_AF?iaaFPQ*HjY6a}nOO zWIi}l6})j%7iCK|MAzA6#$^<{*BAoGFQ4cqKd#)1D~RQk*GtyVX!4 z=T~T_^-RK(n3N*o)CMoo&Kca#{JKS(d9aIAkoZAsv0PazRq%t$b66>$b!g0G9(qwKcfaT^u$OL@)eC{H3Jz)i zg)2Jzhs$e3T&0p^Js?M)x4q zZ3Kbddy08s*;7~u-@t8FtX*E_kwK&*>s!_qHD{jm$i8Zlf_Yp&7Z{t0|7=2mnUs_S z4YNJ)WqMTxI8tBjk}Fi{>ijxcz;SkNv~wtpFzDlp-EiFLr$onCsDlf-JM{z7Yg_;J zEnxX1p*l$+B!>dBo{z_6Zd5mga+wqzgdCU24EQ5TExly><@jlykjyM6`f1MK*u(Xp z@Nn9aXyoAAedHa2R0z$;fG34Vl`EFrj&Ma=gJ?0+v4!$*$&%6vktooUL8YDj*ZphH zV(30B%48L;SyU~oNDMxgFcTowvw=!qa%tGGIYg$jUo_ni1A6P6@+RO+$<$Ij>rU)^#T`p;S;>g ze+h|xZE8piB3rRmII}8SAG~!u+E`I>t$A}X*G9pMlx806HopDIa`*VzoN^et)!}or zw`SUMp8^UpwQHS=%8yibOL2E`3n=f1fk4_Lj56vMC4DQ(ArGTF19icuVurxEp82Gw zD+$@L)(zFS+dx65jd@a-r8||lk#-MqrD+d8ND|?h%N?7Aa8yS2-4z)7!|M{nXF0at zS-J2%Lf=ou8bu2BZxR6Irf&u`%4oUp3!mE=Y%=R9H>VP&NbCm-G76NdXwDzeN6H$# zM{jp;o8Nr#0V5?YRL*qaeWqoyF?!RzF779;OnjR96kbE#NJ^KZ{n&|^qg~iJ0MAWB63W4pmY)k zf_sP#^ooJ`P*~&64zLXt&7V}}RkkekUG>3u+ifQ!BZEdlfC7y5BXsapQ1`fN>4Rc?v}f3ghmpA<*cf3m3F)&J6afAI0~nY_J}W`E_D z#6r8jz$Yym`N}EH$*)y7TnUJj^6>2EE966B^E?{mGAYBWeM-nLRVmXyS%`dmI?%iN zcj_}9I$vM?C#bmHbPAc7VTTl-rto?+Ui#!hNq7MV`;uT_clEzJtquQo_VE8#g?YW@ z^N}8{)pTySH-eE9N7^{^dbh~>xEmeW9z)^3Kb8vT;o*_N?}G~tb^jmj?PM7QezI(g zcd{(92lbDCx+kca2Bzo9hzB&8%>hd3;{1^K9>0A4?3+`20GyF-kLQV2R#v8_C^{!l z0I{|B7T8{X>GQT(0eNF!W1q_Urj}^%NOQ!p^Yn*q8ZVTSU;r_>_~(^S-l?=4U7F{J zhzJM<__Sl-$^UoV>A&kv0W-`cd#P@s!P@XTr9;QI55e&NEm(gQk<8O#vZv$bd>x81%_aL z7`t}b%X;oU-jU}lu+o^W`s+yu6qfiEtW#ZGoGj9AK4G}Mi*=sXPGg$tILh^~C!SG~ zkv;e8+|^gfPKSzZ(!Qg6^YWvr`FRZp`*dm1Z$(IeJb&l}ztSZLK}srPu}F9V*@eVx z6i+ki1lYWqC6zp9+mO6*IH2J+Poi8(RiHrea6|Ho(mFpBA#t*#g@rOhv$oio};rXG2Z(oC_5cB)ax(20qI{#el0r4ie(exx}%+|adpKFiuab9C< z@izW!vwBtbu;S9h@`uza9sAgC!o_Cj1`{1~c_n)hiPs_8gM>4x5+Q zmisHC4lm>ECVO2~4X&Dn?j`xdjWc`x>TE;h(fn-k(d&-hj?snEuB9D-4D~MPtk%4& z5Iznt4PXNtT|@Eu7Bhueh>OL_$fX3pAQ@phuUY)beCHvZ9XT^5WH6D+z$#x%0(rx6 z@qu!~xvt4ZNKp~B^PKsUZQFjnc%D;RqidH2^)Dh`usXHM?gNB$iBUeS8uablT#4|o ziBT#>pBthnc9#AfdJ|HnZ(k}lPlBpcz5It68Jk}Y*b>BV*em^geLwTzy?(xhhiCM7 zLOm>hh2%$|-DIZ*#(V^=XhCJ0=??^@J?CN_^+Jv4ZfN9o!z7%`do#F~qu1Pfa};`g z*VQU(0xOJAb!U?2I^L+0FSAUJe@X4`rI_}!49>NvQeh~D9&MkVc$EJ7@SQD9Hi>p$ zL1DpuGY_YNZ(-(GwY4QQEOt7bOMokHVf4L_;Cd@guv;IY#IDi18bq$I6j?*bHD6nUw7Z!L}mJOs| z@HtfK6T$9%fJUVaiw>O>>MmzgNre1S9-W<+aEQHh2G5c|zpbd2faNWA%+^BCWpIWs ziAUQxJm}8-a`LV82ggMu@LRb%-eD)c%u*XIlo^^k@36ByVQc5GM@=V}?de!`nR>}b zQXu4fIE;FZ#N8>ARJwXyf^j8ymTs*+Wz8Xq(1tAdH6Q{{3^2%{od-+U$GjK>#> zq`UF4juIo&;B7*M&5Y>^BbQxo>EVx7z~77H4$NQr?;_I~G2qDM`$8z=e^i(t ze1qNGKCS}%ag&y@YJn|$AVru|nvT@DGBt2Z>aj-)LK7b@LP~l)lB!wxzT71-VnF20J1wtv{CUE)?2>S(mKd*2pL zye_<3zg(ZN2KLsWgoz7cR+@i)1m#+x4k0_kXU1;>-+D?5ouc;O%kNNJSpf>~pWWmb z^FR8>WI*) zXmAcfJ#>eQw~GVK%Sv}AZC@GmJ->?t7V7tfnPPKPqFUiQ*}DpVb-sX6)36=4Xgy>f zBy3dqg|d?!u+IOodmZVT$Yc`4)XqPG>9i)BQ$m|;!({cm4dF+^qy)!mKihYprxrih zh5Lrg*2s0pH;0+z%+>5j3_IF2;vs$8;9(&+`IXsvHiph6CT)CiH7AMA9ljK-?kcYqJE8ziQ-)Xf$3w^7PRd|?Os{|(4JJiC{?qTRyk&7u^afGHU zvy!9@m!_aQZyWoUuGiw{2hhY7T1(4e&ZLBga%m+LZEl9E(e~cWH<5sE(k*YZ=*Ly` z^qaw42RA@NKNr~!504Gc1BN9~qoz~n3k}|hx{Ne$7I5~GqVU5pp4}gJ ziirMsuWiZXV)x0#MM(JP*7+1fxwSmWlxHyEvT?2_F>du*u^p3Ka~?Y1Bw%30bTJm5 z>EL|#CrxDf+z(34X3Lr3>pHuqg@d=hmzPy5S1LkmL=%#Bi9O(aN^NJL$Ew46 zc;&nvsVPN!_4Jx0|Lfq%`wwwp0r6GTimYt4 z(H)SkvZDKveY0rWy|#@6dUo73Av=7~xJT%;qWW{SjB2XQOBi)#sVg8Y4OxT>Sxo(< zejvxoJ4Mr6vgd|Bp!?0JOWE_b1_Kgq=x7A=g0nfE2ATw#-t_&!iBcSWyW1>W?Ad+4 zSugQ;EnP7;Y)Agd-?01LTl*574WohK+DFB1yXpr%7k=u&-QM2Ij|b1j3bSwxB@_MY zn9oT3$xSESG?=SsOKVPzn6DW9YZ$;KuoE&tTTK61ClZU65IvJ1KTDE&Z z;lNEA0f>-+V?8U7i4l=CdlS}wleLq)x|J0ILP;@%E_tt(nM+t7bL9DYW1@6GpPXKF zc~Q^^;uR{l#ff?woUP$4mLXBtXNgR+F7^Tm7U`r*q}v~g9^A9>k$?Z(X8q2IGu(UW zPW_s<#upnD1ljre6MKiS=pdop^AuYwk_amNcpfDsI>*bP;$nurs~4oJW7X-3`97() z^;$A}_zk}fV_Yk@dI^r5xpcAIR|SqIM(^EFUrYBkwJt%@wp0Cs-UtnC`$ev+*#1SI zp*MG3!0{%Sx2h{E8YxZ-2Q#Pxcam-l;(GD+`VC z*|n`ybUyKyG zq06mmiTNl&X(-Yo^ws?+yJ4z4lk)XlX0wZpHd0?t7RfP~uYb1t*1=bgcVI`hVX8Tc zuyRArHYSngR9B*2sI}5;eik)+kS_sjBXW~fSjY-!)hfIOrBJbyk*!$#Hz(eEcGnD> zkVi6UfBhc)xbLMmR?h(eM|JXM`0;i1LnL=Lm`!L(6E60{TTCRw4mpsRRRdcwK|^!A zEARZua(x`E2Bl=F{t9&aOW?;(R60Uf(dg|)ssmvKPom?j$(_5^sZi2O2AVg@wOvy= z{k6lIVgogT&$^#EJLze7-~pSN6Ubm^<*YW<6flcR6@FXI>zq=+bQTvVPPtlkpQ-nMV=3&!Ii+jEmQ4z zt}9}2ye*P|QTPy|V#gJla^J80&f#{;L3pto{>p`ot8Ov7+n!};_Qy2aaJoz0u3ht9 z&yXuaFVHdI-=UNc01o8XmPC^&rAt+$ppl|pnJtp0sIp@W-n@%g9jNH!7$@isp`4)Y z)9n|pO-rUlx#IiYNKfQ_;}wZusTXih>qCPU5DZ-;cQbz=g*;PoI0{h}hDHsiw6)0y z`|V-sNGVZ9BhZ(pCg>K(koVdo^>J(tTZ0g~(~wf(W4G@N0qc8E-TiY(W!Q747nEC* zkhiDuTm2hkov`k=o@ot!Qi<1AkL3J%aP4qt!023y!oQUg>+BvGXSKl9N?dUL* zMNeJCH&P-p`>N#Rpy=?5#~Z2jT~qTif8=el(Gxun5eZoM2v&m}Qeo{lCixSO_4Ll@ z_KZnEMnRn2tI(rtP(?-jiATSqhOiR2ZJtfb>6iZJ{Fm;mVx>An6Zz~=g*P$%_rXA5 z4S5F4UvSegCgZuJ%HI}rIs;x?AJ&jQ!lOo++>| z-<^et%@5ST8YXPBnoM9!%%2OOUeYhe9q=)2><;m84C5z_wjXhfHYao*z1CbQo3n|s ztDaEYpPwK1>#it5P5R`FRvBd2_=OMbY*a) zCI8hhx1jkqHN7|cdaRxctO`KEpj;KNEC4l#MEmg%Vn~1w3fb@D$SK3UZw(m_Ih^&v9v~0h8F->7Gyyz`oxu6j>)XY9HnR*Y_4tQ^0YRAv?6081V=cyM+^pt ze+A`*ErO#I_p>m>%y?v*~4$d?y!sW@Nu!`Zwm2c>8H{#k5S@&Oe&u5z+JnM+v<~iAy!4 zGPqXbf3cZ{KWDph7#+VnfQ-LOuJ5|s|A1ZtoOgQsj`%BBkm4S+EGHIG%pQ9CmR@eL zi#MEArJUSGlfG|(s^_xkun?%%%h80uH}(PQWBqJw?xshkQNrc3#Uw<&jMP~k(C27X z5yqHXe0|<{V^5Mtry_23=X60&ip$WQPC7XxK{&!vY=wlRsJhK8GdynpFnGRHV5n;f zj*3D&KV60rm4PSp;1g0wPHT=Ea=L%F;B!Yj44-^P5PC$o0%~j#m(>TV|!|{&NPEMemv>UXim2WEjzUgjl|Fp(0dq6;}~0yet)K5B=tQ zz@I-7?fl!Mk3&zSUHvrCRk&W^C5Ci_FoBk6M#}ZmLd`BrVR5dGqGKi5Xim|a;MwTf zTr}Pfs)yGGq9uE8%U;AwovbW+C!^u*S(9$ly(JLk<>hwgGc7`tMTpYUaBDu7pZ*h0 zPw`=4Vo*s`VZ0-7rQ_g85e&9(;C6bQaUH7ULwa|(folqVZJV*AG?IN8y5|+j9N&%sL;(QWzaQi*#Z$~(Pu?m%iMK4A0=lsJ_D{EoVZ2=3L^PQO{gAYx!wYA!# zNp`UIcX;x(lc$uUJAM^76riRs5<5$1l?Zbm;@}$WB-d5zaTFO6@{K8W4su5t7-=cs zmLJazL*D|=k^&4WSaML(5hdL(StpR1mm@f(ldOYw9>dSZJeTty2#K290-I7q-bJsM zc9UKu^In1j|6GK%kH@j+)d{+hiAS6bC*5ErKfYqyUkdVsjSLE>GrGNgi#X+ejdZKC zOquU)@h?KgB#bJ}EZdcxAc_`v*lsLV)5rZ6`urpVHO~&rJsVLSoPH z=AF6uCt8O%#NoP?z+X52Y^o82BIFmprM&(rc|uGwvwMHS}4dW!nYomxPONi%1Ti zoq%+X!f?Fh$n^b*Gu6$SDd4{CxOd;)-WV(5G{$w{d3&LJt>T|llgh|g(^m7m^Mjr0 zmK+eLx{0FVi_ujZtu!btKRnhowEX*>I!TH^mypX1d-1huPo0g67}r-&(Dh2FLpj{g zv>K_ZKSx!`DDjE!bIHfMjF$i|Bjaeeio& zjKkyuo+lrA_Hu3RnL5##@5r`)Cy8IUQ_DNwIWp;C}JTFq=qYTXF!qu}Q=gz7=bhFa|;sTu(c%EO%t>||a+l*zX)D+0WP8X(jn}P0LRj7g7>IqW- zwP5vVPOxCR7GwEUciq8_)o4RzX?1mXKh!d1&XNQ;3+WC49ek8+QZ?1}hxYm5K>oV_ zWRqGd$=HbKeJ?OII5lL9fE1Va4tXjP)&ZhiV#=x6_`a4TV%&Diu-#QZ1^oXC7J}Kt zZ}ty+>q3;tYDMjG`O{lu4AV@$QDRqXmjK?e_CM+p@Oczk{|J#)WoA@E-P6v+=Oz?) z^fAcELC7E9wE0kjgvCifQRaXybU40|KnP?%|KrC4evIr#3{j(V`!@nqnzkxa?_IQk zz@Pi?tN8U;xeV>p`t))Y=H5lz80!BJGl2hu$w+x9mgDkl13wwh+~Rl0VPcRI-d4wi z&ZhQ6q4YpsAX< zNnIm+de-Kmze|5I1#-rkTJ`-uy|#*%%#JL38sur0SW2O3g=zbthWcJ|*k9?MOeo8Y z3jAA%T6#(=G0;n3zi8hNty{a~NGNPsn}X94)7S!_lQCyEv?YVMS{Uyb9Z~o=!N98j zW-}8kQ#FV-f;UH55(@sCO0<-osMvho-rAN(_)eg`Vw5_BDwDzop!v=xYSzxXE)3K^ z2A8__(P-YbSr+t~(?Jmj3s(#*Qxi-+S1v`>&r41T-^tQ&8D?kuW>eJB+3=J|Ww4j= z7tcF>+gjm|#IbzOkx&xIrN|(R3%}-2D(vN%7zc{D$6#is3$D1Qrl)%X?@ViqCh1;( zZIOSYtbN}!vo;O{ZPE>$TYCIJ24G5;JO`mccepva>#Z$GDhCfzw}8%5&Ct|+QRXAK z%13a;a7tY4`9Fy+Og8@Nd}?mKfBnuS20IgaRm|BA?+jo~qJLStR-=5Gcq~+09v!6< zR1!yX3Z56{J$r6`@>qr~#s~zME;a=OhL;mO`&NMP+6JN5tjSJ|_^Uf*}{noOlcnCpSF&?bTlEhr#GO|2D>X;+Y4SKNx^efeaiFQ(x?Od6=hqDcq!v zef-rO4Ro{1R`rf9M3l8(zF;bTHT)mwR941LCdmx|rB2n&DW#g~EaFPWN-B2iDwl+U zlX#Kj+JcbEG}$hB5By&(0FF-HTb`ZE2|)rYc_R2$W&LD|+z+`VU6)awE8o*9n!N!Q zPPBxJZdvn4if;xDuehCJ`|+@S+hIiLnV>7*Yn@^+r3eL<0Nx0Dx&2_es)oO|^yQX? zwJr5@(-<0`_D3gnm}a!>E>!OQXyLD-tdts8&q3I}!c4X@37J8yg?XO`VON>;yfKXu z5dfG&m`H(PY{RW)sp7+eaA0vgeLaGxT$B3YR+X9ye-T|P zO5lQKW-)qosma3jb_phk;wDct-!F@l?V}@$`(be_ytH(j^YTMWedTCtB9MaSV}xFQ zPejFvl~F%}AmapAYBp=p@bWlFQE0uIWrW@%V}UDfxLy$EocY_AIUnb^30L&o|Xq2gH{Px3coO zIAo3t)?1x=tK%;O)(G02=fMz`a^2KanxG83Y}EKxR?+Or27ODT2t}zu(@nm;amG(Mh-; zdH$(s1;fCmlz#mir~3+A_y>=F%G}t^*8G)L^)-i>&y)z4cc^5^<59HqzUyXi^Kj`TAaJ=bBQ1DTy_jcr;*+J1aU}e zJQ06nrW2EQ%cBAUZoA@PgD{l$50X^Ln3!ObFfo_u@Rkj}6w0Lpm^+#n&J^t`kL z7EWAO1MVWd*vb#0*0DONYS6&I$K=%%NE*4Y!wI^nfgturCiU}PZBt;fTg8@H^JNsQ zv$hp5c9$6yzAr$DF}m}j^> zRT4+Y>1bm_vBF;tDeAp)4B-tHYGSi5!aUjE*npAUwFN(>u>2D`2>Z?o@F1Ed#Yu?i zXeak%5PqgS%d#FGTIi1_%U`bc7FAakgkR~Y_{tdCG5gDfW* zjI8h|KbcqLM@o`v8IGQ7;Q)IG%{ank*VS3|{UkLuuOqu*;MQJP%lg*O1h=fPlSeN> z{<%_v$QJ4-gPnG82KLz@mpYH1Pp2T^mEF4SbBlQ21apii1Hft z$QRy^aFrXLQ8yotQoB3VX8y+)zOC6>lQa06^rw_-Uqh1bx6>OArkb>@|Em2)X6d;3 zitO0M86;0;3;d=7k(IH*C!EIEx*VR-K;4n%`3l{_>k=Fhh8@nt`<;&J_=tqxJ?agd zfd2`D+Iyspo{a$>?pi7GVH!7-P^}(f=XY)@Nu^g@SI|83A z|D=m5!Cx{Y?hTFu&BW(32>G*Ep2%2gzr50l+lY3?(>Igu{j(}D$>=#k=rIWdjXjiJ zIjWL>IUZv;Mc1_=YIB4f&}SK~BUw%tOmnv+C64|zQ!If2R2xZ32M0r~Y0SF9vF=mR z4}WVssMC!mD8d`eUe!&u)$4yyjipL(+*S4@MNf>N|5yI0)p?ie7@U~}YtYtF0MN+A zr~lhnq#{z01DHyG1{@r`D({CAEEJLz6iwAw{(xbmH$;A6Qk5zrrSs6@MejW^9JOc6 z_6lPN+1=R+53m}QM*%yP4nP&Z0@M2WkV6`eJw$5$}i~yi)4%tCm-2??GOxZc`K_S{}f^u7C%-Q#8GLmZ17gUm5#$WdLNd}|gLrU(=`F_pfTe5t;u zWbf3rM}PW0Xw~)dQkqcpQeMUX-fV|OKEdnjAskF&%o@P0knM3gWc+c}Tr^&_V zof&k+qKe*ZlxL?Z|6w>J!^yKD2`M?zF}(Y(uXF3s(Oj&*YjWxM^xEaQu==gj>vn9n z$r2!**?$dF6rJ0vCNK524-I+Q9c<{-dpzjWn=Rl|^M7Ef$dnc*pgC@e>qU2$fDir4 zXSHmOPugeV;^Ja+*?*yX)=emk&gT5ALqITBU6y72GFFV0+o0%E`Q?(`1j)+P$MW@BjNHrqh76%_bQM_bBYVfE|KX{Wl<0yXDU2G9T5|YM z(f15M&XD&w<7k5sJR`4#CdMaBWVA)flB&3}q^>9^B0m4ho1zY-Dx|+ALRD2YhY7aR zs3@S_j$#Mn`zQL~j|>EHz^}SfaU~G%YXB2Datz}I5%H&we=IrZG2#1aiKYwLtj8j$ zBl|VYl$~s!*|j-q)z1%fqQrERCr_tD8Ku{{HQ(Ju$r-V;v!woMOmjzPv)yA3pSNKH z+9mw*>-Z`+R69a%Hm1U6E=MXHV{s_m-cL66D0uFr^)AwE^}ZJU40u%@5zxhP(PIk7|RyiH+wX5*S)zXat*F7bnq_f#jK&f)3muD z%4E$B@xq^*p%=R`W0SrOMf zNX9L7t7>n#oi4Q}%z3Vb)+Z~}%1F-n;Ds(N1!wyI`Z=l76rvq3Rv=O>tNzZ)N=n%I z&XCSxp0~9$c0)pZwAtlYk%y#(v2al8k#QDibVc$NHEeO>ASVVp1^c8|NDD4^n9@yi z^Q0g1xXMOA=6RbwagxI7_&iw4TFdn*pqHMmjvn`lOwLN1$wH+GvJzv$Eh`h?#!tBn zej4j|_|E74Aq;=Ih{U_$fwazl8u&td)Upq5_%`jOFF#kJ0aaHt*d)(%W53^P*#3i4_Hz+Z@XAaBONL2TZp_>qCSKf3KXGU%Oj~;9GjDT=erOr2$!Z4Ad~l*YW^QK zJ@!`BwnP#FPAU=WAqEE<*8iB1(Jv|i?V~F%FsB1zM$0+8K{y{bFf&spAvl^D1))USd~kzn64=B}(#rU98!Yc0*m_w+t^#l)&B` zz<%DN%1Gp9kh)d@Ll$M>D_SOJa53-#EhW>tD7=y{8b4y|X^S$L7JlkD&pSbEU~e|l ztqY2%NM!6K-C+h>chlHBId?b7$~J_1%_}(f#>RvF@ag|~mZQ~PVr-uD=8fK%FsHoM z;ezFuOy7N_BhFwwh7Pa6A)`s=d`{IUfff8e0WaVEM5S|E&M+QeFPo2=l=Iz^!p7Ic zGUk2E%7Z2H|6izT8E+09jrO>`!L-}AA<$0^LOg7!RWgk2wS3%jTS=r+^J5F4A$4(e z%<%Rw#Ig2f*?(w7WEl@9(%&02@K-oJ7mGM>f>(!&Gl!3VNc5{%#AJyRd~oOsezD9O z&;<;kU80M+wC4v{Ut$Se3-7(u(ZKo8I{lEe&OSU|miR?v63#XMt01Qho8Z;fA|oS2 z@bYnK43E-KfQRKP%%*2-1IXIbb3s7omn-bQu(??TCR>d-Jss-kB{t~w(t9V;Vq*SB zN`I8Xl@>devPby3+$G3lCxvrp8O2ypgzl21!neu=7yN9Wa6INE+nnz3P=?TdonxhJxcLY?n5YEKS zBEPfn?gdn&XWl+v^OyYE5Cc$?jN`Hj$c`OqDrr3!sc!QgeUcW#bk1QfBWT30w2iJ< zj>DVDfxTMLaccgQrvYw!6t0(y#atYuFQD5u7?VGXLPxKMp#>OIK8YXj<}e^u4FB*(I1ELeA~roU#uZ>UmWH0 zX~25PN<}MMveG^aZQd6_x4bH5nx$GDQ)pJ)Ny;ngPe6*xz6_zT^9{&(mRHUkJ zaI}dBZjHNppoH6?-Ua@gfEwP@_pDGuqEA(2`f(3@SW@A=ToXHydEh?${V!f?cE&dx zH0jG2+yMd)aXJS#4V~?%+{*99y&mdp^&KNFnQF)9L;geb3gg50iSSIeuZ_26YCi9pr%zeUtgsX_^XwBbTQCf)pxl_;cE6LJhx?6d56bEyeHoFt}8`*eb}q_;))KR`1%*OFwDV ze*m5~kgqgtbbI|DqRR+GxsYOcm^|ngJ2f=$U8Hp?peE!;Ozx0|-+YzbL`Z@9K0xzD zAZ85smgMG)gNRws_aZ@1)4_ zyDJHb!k*1ph`0d0?sL%31Xpo&wf#xVT<@OD;lS#<5cSCEpDk_Hj! z?gnWDk?szsK_8E|)#y=;-Bmfjh(kez?Kv8D)yuUNOZ zkaj*a+E3WCu3C2t0=qr+>2i5Sw$Sr15wrDI7xh4L-R%LkyaL)+f#NmlH+zr_fJ-7_ zVCH=jrP?{~u??w6VpeUOO!M!Tg`US1uX{;1QuE9fvskaF4v*WoKli;izq3(iA{#bIkyfMGgw(L?Tzofv4D-G6|neR=nE5V5)SQchm;kZi*_ogAPEL` zE*e2l8yo<^jOmu)pNL9t4S4_$jfee0=QtuT?v!Lxcg)o zK)wT?i9T@+jz13MWi;r6pAdPp&uT(q+=-$NMhQ(LER6&v#Vebq`HIoq3(tf^)jpNg zS==(J!-s4(L*3VrtFlEYGhtHEDdOf$7Bmw?BWgDhK5VoW)j{S?xiF5cm;!MY+3!qg z22NkWizd4RGUzIhz4QY`s=MeI50?@{__b6NZQ?j6K>^HxH(q^5b&&QHs4kz3=E>yR zkXc%dLeY}F^CynK@%66kbqL7rX zixbwo?lgA}r!;gjK9C(Q_#ZgkAg2uLWdef=)&}wQmw%?DV5rX*oDPQj0w?vAv1V1P z%tb2~?DMu9paA7zlxz`ebv4^9J`*Jhc1SQ@h(b~aH{Eb1#elQ{-m$G_17wh5ni|I^HAD@!)H<6Ifp@?=N!61OsbN7a!tvj`nTR=iJ|waI{Uv&HtM+VsA#P_&0qQzt3>=- zqxotB7hie}TQxeV>84JNYH8aEH5Av&Dk0fZaA|{tDiC*0c`M;O@;a#{rh4NAjsV}9 zp3|;ZJnN(XPtf@!m>wp!9u(MiYSrOJ<6eB?wlrGos4)?`OQx2z;cCkU5g3>b%Eeb) zy!PVwo)AWuDSD;9`-}XgbB7b|!4*v}pklTwv4p zQF@idBI{r4?Lb@&h?WiO{7cajetoQw2o_M^Nn$0XFHx zQ=6MhN0nxhT(Dl33hfQJc6gPQCcjhg?8UYL6<4x&D!g~^UW~kTdRYuf1*F#!3WCmn zU#R~gz2J24=C+s<)jap!l|SC5ifJ+fbcVMSC)!t=29`raF=?zXnZ-A?aFefL zvH$Ewfp{VKzE$oEK~yKK*-OL-u5@;Rb-|n>e>=V8w@L23rLXrsP;}fu= z`7<9CekA0IEC%e%2x+A=)SXX0VRIpA)c+2h9&KNL$~V=&r)g{NR9_^8M~(>1LSVcp zhudZ{?qc{#Wo~2PBbnQ_uQcJ&&G=7Kc!I|<&=_W*D!Ml6qU_VR|*!>=J!Vl1M!}>VoBbMgHE`}e4q9O zRh648KwGFh=H>SyCiLhre!n7ABpe(Xbe0Pf^{(m5M#GcP|5 z_=R1J=Y#X9iroKcSOql)oWxzsR?lFb3Yc=k8!uN={@~Re3VQLOFPIa1AKt}F4@e7- z(K7Kz`fKyNIq?(jcTU^!O~iJgDS*YOol12F*yqb(hwSfOLj-d+i**)9$6Dmn??6a= zvXioZCiDqW{ISkauq^%nB7hV)Af*i9&*upLZ{!t$CyhnEc0Lg`=prZm7C;eO7hNBZ zlNo0Yq5%-=VVXGtm@KB4(=Xmyk(+94(X@GWq!t{)oO`abh|w2Jyg1z&2YYCVgz;Zn zXXINwP>;i4W^;@EL4fFIWhnMP?A~nC1JLF@0PpyN3Pg#I zS%?XAy(N1HVlj@(#-jcw{UP-sYPAJJdPmOyNJs;zmrsJDf7_3!^;OfgI;EgyD_kQ? zJPCkor)bu}=^D}SH&q2m8c?#&U!<^YQ%mHAmdrM57a?f@iDJmt?n{4}5R zdkh$ZSFqTyzi)Oi{HNOqP~U}TbLlFZ#9(TGY8l`p2(Sw}Djjhdi3Pi2h1BXysKU4?^Pq zIiWPSjiGC@uucVPb9?2oNX$%E?gI5nKhG2cm_f7Tsn7PO)7xG?4*U2`#zl3(VSr-} zTo3}{PwSs=no(yhQ8GW_J-^#6?^zoAcfi&Cb>>B1Tx}}=iTn4R`uY$4|6{Y{@C9u# zBSJLJ1|0PYjX*{-CJ0v5&OVT3BAyvSzBz4y|4{)updqOVz@y*{Z?v#$NB2M;=6*s6 zzT(3)c~8oyc%^8%D+SFMM9R}64t>~ic)+;<+a%I>NqSyc_Ltc*{-<=juQF~K#_kb+!(cf}Q@LqAT4~}vU{mq4)ze}s>e_mrR6a&& z;e4zq#V9%07N~PsjZC-Z2-G`a*pk(Eizr9FS++pqnu`l0=6_J&CAN8%UT@F(Wor|| z8o#)A#a3Ot0irtR3{^E`Tw?X3N3N!7?5&mwxlARmLKewLn}2cCBEWbn*;}zk_PIjY zUarEOSXx-*)t#$AiE^%k!G*EMW$4v^*TiWV7qZF`+|rRzrnrh)pyaFL?EFwhxjNN5 zzAaJej`S86+kZ@lu(dChfsj!d7U(8>y2>XoR+@%|!>s5BK7w})G%|5;=TIIs0W4TE zvI5N%_w3Q>Wd?r=7SjoX_yHJQ5oTI?8sJjn(Yso_^qI6)XOoP~?Ft#!_Mj;_MBb@B zgS|;l{;IuxYU23ta^kwXqH|WfEUuvfb*u|xn&M2Y^tD=88ZR=Acbk1ogw`RS1iC0Cr7iJxv0@$XrC2!11G;v*gJD%LD5@wyz!HG;6^JnCi8k_~7b#JQwck2kcEFazzLBZ!@kH=cKu1?FsPELp&f8VRXb9%TaaCD>D=uW4gQ( zUu`VK3Bck^p3S`V^zlibDZzQ*lK@YU3EeX-h7Wxb?Og{~)?jxep~E5C#L7$Ntcw>; z5tO=wuYO1WqDrkQ178Xaljw&uH8U6{>7NSd5<>$e9AdX&Upfw~)T@A60j_%w8aI-ooVT6m*oMj39(!xw#{P zp4p*9B6|5GCFLm9!5tYi6M5i;qdIjcH9>N%$nYZ()dxCL2K9KA@K&+5mfoBYkCq$3 zC@qsJbT>&A(*S%7A>KmaBHPVJHbTSf^Ta~blx@cnhzvaVx_!$-A~)@cCxiAr6}jUY z((S>I z`o}YpzqME3-_Xdeq3Ow8XEm#VHLnH7q=>JoEBj0I6nPqTsHL^3#i0 zBs3;_a{WmeL07psK>9x55HC5nd0@T>sD2R(jflu7b8OLoFPOf^_U8q7TfLwAzN_ir zB)TbQxur#Yk8-Uao?zs0G{35up0&oh!LK)?x}y)1T=LTDQ1}m?Df1V*L~sOzp_$<4 zHvs}b0NH}I;ynoZ`f47Y)U@WerRo@%qQGV@-#6OW2;8Rsk*H&%)lrru>~Mj{3P|K5 zdMs0U+EqkE{S@Hhljt$JR<)xv93U%JTnfl_JmQst>>!KWiiGw5bu+h&G~&?(0ARZE zx%WUz%{N~=o{#7!)HuHV^y`!EYz9hW3@xk*xTWAnzBywMWKYRSJJ`M(h*=LRhzOt% z;(hFa*l5EZ@r|XrVuzy^BOsaur_&ZD@sLz$`Rujz)1@vzptqzqJ+3nFlB8q;s!h6t z2qd4a0^ch7#JGt2gf%-ecs%rF4e0ZUSRRNoYMwuC^?$HCQ($Vx?`cV2cL)e{k!8}} zC)e4|$xW6Sk-fdGVb)AC$bm+FO;B{Xet**quZge8C&-WAbmcgSd!!*0vW&S0_=H9L zy^|{OYUM+C_>`%OIy26zQu4K8hCm(^`py3)QPoX@ZvFf@hK2ezQP5mj*sZ7GljT=! zQ+f&#SQ4{ezDFT^dI(V0Ty67@=8j}-9h=puz!jz zx{9IaP=$@`6H;=rZL@`SP72uGViq|Q^!*sO^e$~g2T6B&c&pYt+iw5(Sw$${6EbHt zuXcNo(YjcQvqGWjnkVocVD=Ebhpny2$V9N13phz75cO-5z0Uk~8GuTy*-byWHM3U3 zJ9PsY0M82$s}d3u+(d{aC=wK#ySrbnQzr5{N3NYPSAhB#&?G)?V?3tya=jb^g#6C>M6#5 zQ7TF4U^A&6v-3jrqm@H3{+nbnOm+W)#*#+eQ7J{u?46g!__v#G5Rj2!6DNGI1# zCry6lyd(zGL_TrD^oE>w)@LLH5~{=Z1lM2BH$nuPduA{liua%Th=_+VZNA5EaDqkv zdgSHc1pUv2juF$A?H4!%+6|h+)yDYJ<)xwCwO_1Eckmv7vnSSn$1td{j$$Rwd=zst zi&iZ*tF0yU`dFEg>%k6O8ipQwdP6F262kJXT$jSmk*>C39eHRuP{S8e^A3H6OgDgT zIVLuYn&*F0Huv>H(HgyyC-;+o7Paf!r0(}#u1=-`gLlj~haNk5CG}8QP^m5^3e0c2 z2Ns$5&mE1_B;F`ZP$`rmKZM#+!+in>vTxc@!VwVA{q&FsMRLsnL&J2VOP%~y3;n27 z$k@;1Izc*?sjdfn(`vqt;o|OYl6-%2wglDwe8;P$mD8Ok_oH*7qvPw$NFL^7)a1KY zniwuYvDg!MqM_b^yL_=TUaE|uX?xVz_5&rLxlLNcLDJYH_TYUGe!zqd@eweHqQ+tP zJ?&~&cnfiwn~FhwfDPaTFXE@30)6Ey;W?x#CaLWx4v(k?ZXC$ z*MAVB8unNZ7Aatpa)0vw=19MfRION@#vbq~=ugVC%6C#|3yYf?C$^%->es**pHoGA zg=1o7ZdJQDB5YtLbq4-0ND2Qs10F9*@XQT=y&{UO_poI^2)&vdZiI;k^ue*1OE3X2 z3KS9&(xYuJ(E=!cKQ#ZpX+E%GNf!&7BiU%wDO}3R`U@LF%a6TBN?NE`@w3KaU3~8O zOutRDx&NJVp{!K{Xn@W+6q8}l=fG=fYO33zeMw~X2qzLt&++o~Tx#;irPt%YL|Rj+d4G!~%1S9Op_YpUBvc;;vY~J#1es=)Xv`vI-SbPCSA1iqDC3~;YQNR_zZ_|ux@BOR{>!r;M}1ZPws1; z;rbdj=Zi(9Kr9w4m)lb&9Ii7Svsg~2s1y5>4Yg|9Lzu_Bz3$gUM1qr3Q?E}aMW!hK zNE^*Deh!fmGM=l41qd{zra2#0e=^a~bo3`Wh+}bH8u0aSR6jCQT|{(NsT*=^m7o zfy3khmeQX8`YJz)eQj;+VF;9!6GnlW=VW#}5O)ti3d1klHz9FL+R zM&s?7!vi{r*T)%zgM%Y?Y#fIUfRJ#fIZVkYrWAEq_}3gy#NlJnuekvmaObP(xxR42C& zrV1b5R%wV$mlccBzkGgwY0Hn7i$r`V3wb!&1^y=|UgtS;MUg*olaMDD?4$OWgk9&~ zWOl;k+0@*8zq;-HcQmXBl|efTjMK2WP$ZDmtI3)5^5a$|WP1g5f4IaAD9?L{|6$+U z�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 literal 105119 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 z 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�ploU}NlB0DMXW#O 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 Nm35w!K6?7*e*u%c{?-5h diff --git a/hooks/bash-diff.ts b/hooks/bash-diff.ts index ee348ba..37a8276 100644 --- a/hooks/bash-diff.ts +++ b/hooks/bash-diff.ts @@ -98,9 +98,10 @@ const count = (hunks: readonly Hunk[], mark: '+' | '-') => /** * The updated files of a Bash result, one after the other: an "Updated path - * (+3 -1)" row, then the diff in two columns. + * (+3 -1)" row, then the diff in two columns. `columns` is the width of the + * surface, when known; the diff sits under the indent. */ -export function drawUpdatedFiles(kit: Kit, split: BashSplit, cwd: string | undefined) { +export function drawUpdatedFiles(kit: Kit, split: BashSplit, cwd: string | undefined, columns?: number) { const { Box, Text } = kit let rowsLeft = MAX_ROWS let charsLeft = Math.max(0, TEXT_BUDGET - MARGIN) @@ -121,7 +122,7 @@ export function drawUpdatedFiles(kit: Kit, split: BashSplit, cwd: string | undef Text({ dimColor: true, children: [` (+${count(file.hunks, '+')} -${count(file.hunks, '-')})`] }), ], }), - Box({ marginLeft: INDENT, flexDirection: 'column', children: [drawFit(kit, fit, file.path)] }), + Box({ marginLeft: INDENT, flexDirection: 'column', children: [drawFit(kit, fit, file.path, columns === undefined ? undefined : columns - INDENT)] }), ], }) }) diff --git a/hooks/diff-command.ts b/hooks/diff-command.ts index a14dcb6..e6259c1 100644 --- a/hooks/diff-command.ts +++ b/hooks/diff-command.ts @@ -276,7 +276,7 @@ function drawFile($: Engine, kit: Kit, file: FileDiff, isFolded: boolean, fit: F rule(), fileRow(kit, file, { key: 'file:' + file.path, label: (isFolded ? '▸ ' : '▾ ') + file.path, onPress: toggle }), rule(), - isFolded ? null : body(kit, file, fit), + isFolded ? null : body(kit, file, fit, columns), ], }) } @@ -303,7 +303,7 @@ function counts(Text: Kit['Text'], file: FileDiff) { ] } -function body(kit: Kit, file: FileDiff, fit: Fit | null) { +function body(kit: Kit, file: FileDiff, fit: Fit | null, columns: number) { const { Text } = kit if (file.isBinary) return Text({ dimColor: true, children: ['Binary file.'] }) if (fit === null) { @@ -311,5 +311,5 @@ function body(kit: Kit, file: FileDiff, fit: Fit | null) { return Text({ dimColor: true, children: [empty] }) } - return drawFit(kit, fit, file.path) + return drawFit(kit, fit, file.path, columns) } diff --git a/hooks/draw.ts b/hooks/draw.ts index 6f6b788..a64f264 100644 --- a/hooks/draw.ts +++ b/hooks/draw.ts @@ -11,10 +11,10 @@ export type Kit = Pick, 'Box' | 'Text' | 'Code'> * surrounds them differs. */ const LAYOUTS = { - /** Under a tool call in the transcript: the summary line with the built-in's response marker, and a frame. */ - 'tool-result': { lead: ' ⎿ ', indent: 5, isFramed: true }, - /** In the pane: no summary (the file's row has the counts), no frame, the rule between the columns alone. */ - pane: { lead: null, indent: 0, isFramed: false }, + /** Under a tool call in the transcript: the summary line with the built-in's response marker; the rows sit under it, indented. */ + 'tool-result': { lead: ' ⎿ ', indent: 5 }, + /** In the pane: no summary (the file's row has the counts), the rule between the columns alone. */ + pane: { lead: null, indent: 0 }, } as const export type DiffLayout = keyof typeof LAYOUTS @@ -29,6 +29,64 @@ export const TEXT_BUDGET = 80_000 /** Lines of the rule between the columns; a row that wraps past it shows a gap in the rule. */ const RULE_LENGTH = 16 +/** Columns the separator between the two columns takes. */ +const SEPARATOR_WIDTH = 1 + +/** + * Characters of text that count as fitting a column when the width is not + * known: a line this short fits any terminal a person works in. + */ +const UNKNOWN_ROOM = 40 + +/** + * Columns the engine's diff spends before a line's text: the line number, + * padded to the widest number of the diff, a space and the marker (`12 -text`, + * as the built-in's own rows show), plus one column as a margin. The margin + * makes this over-count by one, which only sends a line to the wrapping + * drawing a column early. + */ +const gutterWidth = (numberWidth: number) => numberWidth + 3 + +/** + * Characters of text that fit one row of a column, or a lower bound of it. + * + * `width` is the columns the rows have, the layout's indent already taken off. + * The two columns are 50% each of the row next to a one-column separator, so + * the room of each is half of what the separator leaves, rounded down; the + * engine's own rounding of the shrink can differ by a column, which the + * gutter's margin covers. Without a width a short line is the only one that + * is trusted to fit. + */ +export function textRoom(width: number | undefined, numberWidth: number): number { + if (width === undefined) return UNKNOWN_ROOM + const column = Math.floor((width - SEPARATOR_WIDTH) / 2) + return Math.max(0, column - gutterWidth(numberWidth)) +} + +/** + * Columns a line takes on the screen. East Asian wide characters and emoji + * take two; anything else counts one, which is right for the text a diff + * holds. Combining marks count one too, a harmless over-count. Tabs were laid + * out as spaces before the line got here. + */ +export function displayWidth(text: string): number { + let width = 0 + for (const char of text) { + const code = char.codePointAt(0) ?? 0 + const isWide = + (code >= 0x1100 && code <= 0x115f) || + (code >= 0x2e80 && code <= 0xa4cf) || + (code >= 0xac00 && code <= 0xd7a3) || + (code >= 0xf900 && code <= 0xfaff) || + (code >= 0xfe30 && code <= 0xfe6f) || + (code >= 0xff00 && code <= 0xff60) || + (code >= 0xffe0 && code <= 0xffe6) || + code >= 0x1f300 + width += isWide ? 2 : 1 + } + return width +} + /** Characters of a one-line hunk header (`@@ -12,1 +12,1 @@` and the mark). */ const HEADER_LENGTH = 22 @@ -68,6 +126,12 @@ export type DiffOptions = { /** Rows drawn before "… N more rows". */ maxRows: number layout: DiffLayout + /** + * Columns across the surface the diff is drawn into, the layout's indent + * included; it tells which changed lines fit one row of a column. Absent, + * only short lines are trusted to. + */ + columns?: number } /** @@ -75,9 +139,11 @@ export type DiffOptions = { * right, with line numbers, under a "Added 3 lines, removed 1 line" summary * where the layout has one. Every place that draws a diff goes through here. */ -export function drawDiff(kit: Kit, diff: SplitDiff, { path, maxRows, layout }: DiffOptions) { +export function drawDiff(kit: Kit, diff: SplitDiff, { path, maxRows, layout, columns }: DiffOptions) { const { Box, Text } = kit - const { lead, indent, isFramed } = LAYOUTS[layout] + const { lead, indent } = LAYOUTS[layout] + // The rows start after the indent, and there is no frame to take columns of its own. + const width = columns === undefined ? undefined : columns - indent return Box({ flexDirection: 'column', @@ -91,8 +157,7 @@ export function drawDiff(kit: Kit, diff: SplitDiff, { path, maxRows, layout }: D Box({ flexDirection: 'column', marginLeft: indent, - ...(isFramed ? { borderStyle: 'round', borderDimColor: true } : {}), - children: drawRows(kit, diff, path, maxRows), + children: drawRows(kit, diff, path, maxRows, width), }), ], }) @@ -130,10 +195,13 @@ export function fitHunks(hunks: readonly Hunk[], maxRows: number, maxChars: numb /** * Draws a fit: the split diff in the pane's layout, or git's own diff, in the - * engine's drawing, with "… N more rows" after what was cut. + * engine's drawing, with "… N more rows" after what was cut. `columns` is the + * width the fit has, when the caller knows it (see `DiffOptions`). */ -export function drawFit(kit: Kit, fit: Fit, path: string | undefined) { - if (fit.kind === 'split') return drawDiff(kit, fit.diff, { path, maxRows: fit.count, layout: 'pane' }) +export function drawFit(kit: Kit, fit: Fit, path: string | undefined, columns?: number) { + if (fit.kind === 'split') { + return drawDiff(kit, fit.diff, { path, maxRows: fit.count, layout: 'pane', ...(columns === undefined ? {} : { columns }) }) + } const { Box, Text, Code } = kit const hidden = fit.total - fit.count @@ -150,18 +218,20 @@ export function drawFit(kit: Kit, fit: Fit, path: string | undefined) { /** * The rows of a split diff, ready to sit in a column, with "… N more rows" - * after the first `maxRows`. + * after the first `maxRows`. `width` is the columns the rows have, if known. */ -function drawRows(kit: Kit, diff: SplitDiff, path: string | undefined, maxRows: number) { +function drawRows(kit: Kit, diff: SplitDiff, path: string | undefined, maxRows: number, width: number | undefined) { const shown = diff.rows.slice(0, maxRows) const hidden = diff.rows.length - shown.length + const room = textRoom(width, diff.numberWidth) return [ - ...shown.map(row => drawRow(kit, row, path)), + ...shown.map(row => drawRow(kit, row, path, room)), hidden > 0 ? kit.Text({ dimColor: true, children: ['… ' + hidden + ' more rows'] }) : null, ] } -function drawRow(kit: Kit, row: SplitRow, path: string | undefined) { +/** `room` is the characters of text that fit one row of a column (see `textRoom`). */ +function drawRow(kit: Kit, row: SplitRow, path: string | undefined, room: number) { const { Box, Text } = kit if (row.kind === 'gap') { // The label sits in both columns, so a wide screen doesn't leave the right one blank. @@ -173,7 +243,17 @@ function drawRow(kit: Kit, row: SplitRow, path: string | undefined) { children: [Box({ ...column, children: [label()] }), Box({ width: 1, flexShrink: 0 }), Box({ ...column, children: [label()] })], }) } - if (row.changed && row.left !== null && row.right !== null) { + // The tinted pair is clipped to one row, so only a pair that fits it, and whose numbers have as many digits, can use it; any other wraps in cells. + // The pair is one hunk, whose gutter is as wide as its largest number: when the two numbers differ in digits + // (9 and 10), the text of the left column would sit a column to the right of the other rows. + if ( + row.changed && + row.left !== null && + row.right !== null && + String(row.left.no).length === String(row.right.no).length && + fits(row.left, room) && + fits(row.right, room) + ) { return drawPair(kit, row.left, row.right, path) } return Box({ @@ -218,11 +298,16 @@ function drawCell( }) } +/** True when the line fits one row of a column, with `room` characters for its text. */ +const fits = (cell: Cell, room: number) => displayWidth(cell.text) <= room + /** * A removed line next to the line that replaced it. The engine draws the two as * one hunk, which is what makes it tint the words that changed; each column - * then shows its own line of that hunk. Long lines are cut with an ellipsis, as - * a column clipped to one row cannot wrap. + * then shows its own line of that hunk. A column clipped to one row cannot wrap + * and would cut a long line with an ellipsis, so `drawRow` calls this only for + * a pair that fits one row; a longer pair is drawn in wrapping cells, without + * the word tint. */ function drawPair(kit: Kit, left: Cell, right: Cell, path: string | undefined) { const { Box, Code } = kit diff --git a/hooks/register.ts b/hooks/register.ts index 5476bc3..b6530bf 100644 --- a/hooks/register.ts +++ b/hooks/register.ts @@ -37,7 +37,7 @@ export function register(on: On) { if (split === null) return next(e) const kit: Kit = $.ui.resolve(e) - const { files, hidden } = drawUpdatedFiles(kit, split, cwd()) + const { files, hidden } = drawUpdatedFiles(kit, split, cwd(), e.viewport?.columns) const base = isSilent(split.rest) ? null : await next({ ...e, props: { ...e.props, output: split.rest } }) return kit.Box({ flexDirection: 'column', children: [base, ...files, hidden] }) } @@ -56,6 +56,7 @@ export function register(on: On) { // The same limits as the pane: rows, and the characters the engine draws of a tree. const { count } = rowsWithin(diff, MAX_ROWS, TEXT_BUDGET) - return drawDiff(kit, diff, { path, maxRows: count, layout: 'tool-result' }) + const columns = e.viewport?.columns + return drawDiff(kit, diff, { path, maxRows: count, layout: 'tool-result', ...(columns === undefined ? {} : { columns }) }) }) } diff --git a/tests/wrap-lines.test.ts b/tests/wrap-lines.test.ts new file mode 100644 index 0000000..e707773 --- /dev/null +++ b/tests/wrap-lines.test.ts @@ -0,0 +1,209 @@ +import { expect, test } from 'claude-code/testing' + +type Ctx = Parameters[1]>[0] +type Viewport = { columns: number; rows: number } + +const NARROW: Viewport = { columns: 60, rows: 40 } +const WIDE: Viewport = { columns: 200, rows: 40 } + +/** Mounts the result of an Edit that replaces `before` with `after` on one line. */ +const mountEdit = ($: Ctx, before: string, after: string, viewport?: Viewport) => + $.ui.mount({ + plugin: 'cc-split-diff-view', + component: 'ToolResult', + requestId: 'edit-wrap', + surface: 'terminal', + ...(viewport === undefined ? {} : { viewport }), + props: { + tool_use_id: 'toolu_w', + tool: 'Edit', + isErrored: false, + output: { + filePath: '/tmp/f.txt', + structuredPatch: [{ oldStart: 1, oldLines: 1, newStart: 1, newLines: 1, lines: ['-' + before, '+' + after] }], + }, + }, + }) + +type Mounted = Awaited> + +/** The Code elements of the diff, with the wrap they ask for. */ +const codes = async (ui: Mounted) => + (await ui.findAll({ type: 'Code' })).map(code => ({ source: code.text, wrap: code.props.wrap })) + +/** True for the tinted pair: one Code holding both the removed and the added line. */ +const isPair = (source: string) => /\n-/.test(source) && /\n\+/.test(source) + +const text = (length: number, fill: string) => fill.repeat(length) + +test('a short pair keeps the tinted pair, one hunk in each column', async $ => { + const ui = await mountEdit($, 'const a = 1', 'const a = 2', NARROW) + const found = await codes(ui) + expect(found).toHaveLength(2) + for (const code of found) { + expect(isPair(code.source)).toBe(true) + expect(code.source).toContain('const a = 1') + expect(code.source).toContain('const a = 2') + } + await ui.unmount() +}) + +test('a pair too long for a narrow screen wraps in two cells', async $ => { + // 50 characters: more than a column of a 60-column screen holds. + const ui = await mountEdit($, text(50, 'a'), text(50, 'b'), NARROW) + const found = await codes(ui) + expect(found).toHaveLength(2) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) + expect(found[0]?.source).toMatch(/\n-a{50}$/) + expect(found[1]?.source).toMatch(/\n\+b{50}$/) + await ui.unmount() +}) + +test('the same pair keeps the tint on a wide screen', async $ => { + const ui = await mountEdit($, text(50, 'a'), text(50, 'b'), WIDE) + const found = await codes(ui) + expect(found).toHaveLength(2) + expect(found.every(code => isPair(code.source))).toBe(true) + await ui.unmount() +}) + +test('a pair too long for a wide screen wraps too', async $ => { + // 150 characters against a column of about 97. + const ui = await mountEdit($, text(150, 'a'), text(150, 'b'), WIDE) + const found = await codes(ui) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) + await ui.unmount() +}) + +test('one long line is enough to wrap the pair', async $ => { + const ui = await mountEdit($, 'short', text(150, 'b'), WIDE) + const found = await codes(ui) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) + await ui.unmount() +}) + +test('wide characters take two columns', async $ => { + // 15 characters, 30 columns: a column of a 60-column screen holds 23. + const ui = await mountEdit($, text(15, '漢'), text(15, '字'), NARROW) + expect((await codes(ui)).some(code => isPair(code.source))).toBe(false) + await ui.unmount() +}) + +test('an unknown width trusts short lines only', async $ => { + const short = await mountEdit($, text(40, 'a'), text(40, 'b')) + expect((await codes(short)).every(code => isPair(code.source))).toBe(true) + await short.unmount() + + const long = await mountEdit($, text(41, 'a'), text(41, 'b')) + const found = await codes(long) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) + await long.unmount() +}) + +test('no code element truncates when the lines are long', async $ => { + for (const viewport of [NARROW, WIDE, undefined]) { + const ui = await mountEdit($, text(300, 'a'), text(300, 'b'), viewport) + expect((await codes(ui)).filter(code => code.wrap === 'truncate-end')).toEqual([]) + await ui.unmount() + } +}) + +test('the tool result has no frame', async $ => { + const ui = await mountEdit($, 'const a = 1', 'const a = 2', NARROW) + const boxes = await ui.findAll({ type: 'Box' }) + expect(boxes.length).toBeGreaterThan(0) + for (const box of boxes) { + expect(box.props).not.toHaveProperty('borderStyle') + expect(box.props).not.toHaveProperty('borderDimColor') + } + // The rows keep the indent that puts them under the response marker. + expect(boxes.some(box => box.props.marginLeft === 5)).toBe(true) + await ui.unmount() +}) + +test('the files a Bash command updated wrap long pairs too', async ($, on) => { + on('ui.render', ($, e) => $.ui.resolve(e).Text({ children: ['engine drawing'] })) + const mount = (viewport: Viewport) => + $.ui.mount({ + plugin: 'cc-split-diff-view', + component: 'ToolResult', + requestId: 'bash-wrap', + surface: 'terminal', + viewport, + props: { + tool_use_id: 'toolu_bw', + tool: 'Bash', + isErrored: false, + output: { + stdout: 'done', + stderr: '', + interrupted: false, + bashEditDiff: { + files: [{ filePath: '/w/a.txt', hunks: [{ oldStart: 1, newStart: 1, lines: ['-' + text(50, 'a'), '+' + text(50, 'b')] }] }], + moreFiles: 0, + }, + }, + }, + }) + + // 50 characters fit the columns of a 200-column screen, not of a 60-column one. + const wide = await mount(WIDE) + expect((await codes(wide)).every(code => isPair(code.source))).toBe(true) + await wide.unmount() + + const narrow = await mount(NARROW) + const found = await codes(narrow) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) + await narrow.unmount() +}) + +// A tinted pair is one hunk, and the engine makes its gutter as wide as the largest number in it: +// with old line 9 against new line 10 the left text would sit a column right of the other rows. +test('a pair whose line numbers differ in digits is drawn in cells, so the columns line up', async $ => { + const ui = await $.ui.mount({ + plugin: 'cc-split-diff-view', + component: 'ToolResult', + requestId: 'edit-digits', + surface: 'terminal', + viewport: WIDE, + props: { + tool_use_id: 'toolu_d', + tool: 'Edit', + isErrored: false, + output: { + filePath: '/tmp/f.txt', + structuredPatch: [{ oldStart: 9, oldLines: 1, newStart: 10, newLines: 1, lines: ['-old', '+new'] }], + }, + }, + }) + const found = await codes(ui) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found).toHaveLength(2) + await ui.unmount() +}) + +test('a pair whose line numbers have the same digits keeps the tint', async $ => { + const ui = await $.ui.mount({ + plugin: 'cc-split-diff-view', + component: 'ToolResult', + requestId: 'edit-digits-same', + surface: 'terminal', + viewport: WIDE, + props: { + tool_use_id: 'toolu_e', + tool: 'Edit', + isErrored: false, + output: { + filePath: '/tmp/f.txt', + structuredPatch: [{ oldStart: 12, oldLines: 1, newStart: 22, newLines: 1, lines: ['-old', '+new'] }], + }, + }, + }) + expect((await codes(ui)).every(code => isPair(code.source))).toBe(true) + await ui.unmount() +}) From f15f785899ac2ff4c03db7f35c4578468997e213 Mon Sep 17 00:00:00 2001 From: oskarnrk Date: Wed, 4 Nov 2026 14:19:19 +0100 Subject: [PATCH 3/4] chore: bump to 1.2.0 Claude Code caches an installed plugin by version, so the change in the Bash diffs and in the wrapping reaches people with this bump. Co-Authored-By: Claude Sonnet 5.5 --- .claude-plugin/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 7f13ca6..4673471 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "cc-split-diff-view", - "version": "1.1.0", + "version": "1.2.0", "description": "Draws Edit, Write and Bash file-update diffs in two side-by-side columns: removed lines on the left, added lines on the right, in Claude Code's own diff colors. Adds /diffsplit, a pane that reviews all the uncommitted changes the same way", "types": "./types/index.d.ts", "author": { "name": "oskarnrk", "url": "https://github.com/oskarnrk" }, From 89d82e8ca73f842ea56106e3c18e82770d7a767a Mon Sep 17 00:00:00 2001 From: oskarnrk Date: Wed, 4 Nov 2026 15:29:31 +0100 Subject: [PATCH 4/4] fix: count the command output in the budget, wrap pairs of unknown width Three review findings. - Bash: the command's stdout and stderr are part of the tree the engine draws, so their length now comes off the text budget of the diffs. - Without a known width, a changed pair is wrapped. The tinted pair is clipped to one row and cuts what does not fit, so no line is trusted to fit when the width is unknown. - displayWidth counts the enclosed ideographs (U+1F200) as two columns, like the symbols and emoji above them. Add tests for each, and update the README. Co-Authored-By: Claude Sonnet 5.5 --- README.md | 2 +- hooks/bash-diff.ts | 7 ++++++- hooks/draw.ts | 13 +++++++------ tests/bash-diff.test.ts | 29 +++++++++++++++++++++++++++++ tests/wrap-lines.test.ts | 23 ++++++++++++++--------- 5 files changed, 57 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index c362c1d..afc8260 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ The mod hot-reloads when you save a file in that directory. lines fit on one row of their column. A longer pair wraps over several rows, in the plain red and green of a removed and an added line. The mod estimates the width from the size Claude Code reports for the screen (or the pane); when - that size is unknown, only lines up to 40 characters keep the tint. + that size is unknown, every changed pair wraps. - Each line is highlighted on its own, so something that spans lines (a block comment or a template string) can be colored as plain code when only part of it is in the diff. diff --git a/hooks/bash-diff.ts b/hooks/bash-diff.ts index 37a8276..d53696e 100644 --- a/hooks/bash-diff.ts +++ b/hooks/bash-diff.ts @@ -104,7 +104,12 @@ const count = (hunks: readonly Hunk[], mark: '+' | '-') => export function drawUpdatedFiles(kit: Kit, split: BashSplit, cwd: string | undefined, columns?: number) { const { Box, Text } = kit let rowsLeft = MAX_ROWS - let charsLeft = Math.max(0, TEXT_BUDGET - MARGIN) + // The command's own output is part of the tree the engine draws, so it comes off the budget too. + const output = [split.rest.stdout, split.rest.stderr].reduce( + (total, text) => total + (typeof text === 'string' ? text.length : 0), + 0, + ) + let charsLeft = Math.max(0, TEXT_BUDGET - MARGIN - output) const files = split.updated.map(file => { const fit = fitHunks(file.hunks, rowsLeft, charsLeft) diff --git a/hooks/draw.ts b/hooks/draw.ts index a64f264..63c788b 100644 --- a/hooks/draw.ts +++ b/hooks/draw.ts @@ -34,9 +34,10 @@ const SEPARATOR_WIDTH = 1 /** * Characters of text that count as fitting a column when the width is not - * known: a line this short fits any terminal a person works in. + * known: none. The tinted pair is clipped to one row and cuts what does not + * fit with an ellipsis, so without a width every changed pair wraps. */ -const UNKNOWN_ROOM = 40 +const UNKNOWN_ROOM = 0 /** * Columns the engine's diff spends before a line's text: the line number, @@ -54,8 +55,7 @@ const gutterWidth = (numberWidth: number) => numberWidth + 3 * The two columns are 50% each of the row next to a one-column separator, so * the room of each is half of what the separator leaves, rounded down; the * engine's own rounding of the shrink can differ by a column, which the - * gutter's margin covers. Without a width a short line is the only one that - * is trusted to fit. + * gutter's margin covers. Without a width no line is trusted to fit. */ export function textRoom(width: number | undefined, numberWidth: number): number { if (width === undefined) return UNKNOWN_ROOM @@ -81,7 +81,8 @@ export function displayWidth(text: string): number { (code >= 0xfe30 && code <= 0xfe6f) || (code >= 0xff00 && code <= 0xff60) || (code >= 0xffe0 && code <= 0xffe6) || - code >= 0x1f300 + // Enclosed ideographs (1F200) and everything above: emoji, symbols, the CJK planes. + code >= 0x1f200 width += isWide ? 2 : 1 } return width @@ -129,7 +130,7 @@ export type DiffOptions = { /** * Columns across the surface the diff is drawn into, the layout's indent * included; it tells which changed lines fit one row of a column. Absent, - * only short lines are trusted to. + * every changed pair wraps. */ columns?: number } diff --git a/tests/bash-diff.test.ts b/tests/bash-diff.test.ts index 7623532..204dd87 100644 --- a/tests/bash-diff.test.ts +++ b/tests/bash-diff.test.ts @@ -95,3 +95,32 @@ test('a Bash result with only a created file is left to the built-in', async ($, expect(await ui.find({ type: 'Text', text: /^│+$/ })).toBeUndefined() await ui.unmount() }) + +/** An update of 25 changed lines of 500 characters: about 51000 characters of diff, under the 75000 of budget. */ +const bigUpdate = () => ({ + files: [ + { + filePath: '/w/a.txt', + hunks: Array.from({ length: 25 }, (_, i) => ({ + oldStart: i * 10 + 1, + oldLines: 1, + newStart: i * 10 + 1, + newLines: 1, + lines: ['-' + 'a'.repeat(500), '+' + 'b'.repeat(500)], + })), + }, + ], + moreFiles: 0, +}) + +test('a short command output leaves the whole diff its text budget', async ($, on) => { + const ui = await mount($, on, result(bigUpdate(), { stdout: 'done' })) + expect(await ui.find({ type: 'Text', text: /more rows/ })).toBeUndefined() + await ui.unmount() +}) + +test('a long command output comes off the text budget of the diffs', async ($, on) => { + const ui = await mount($, on, result(bigUpdate(), { stdout: 'x'.repeat(40_000) })) + expect(await ui.find({ type: 'Text', text: /more rows/ })).toBeDefined() + await ui.unmount() +}) diff --git a/tests/wrap-lines.test.ts b/tests/wrap-lines.test.ts index e707773..9f4d1ae 100644 --- a/tests/wrap-lines.test.ts +++ b/tests/wrap-lines.test.ts @@ -92,16 +92,21 @@ test('wide characters take two columns', async $ => { await ui.unmount() }) -test('an unknown width trusts short lines only', async $ => { - const short = await mountEdit($, text(40, 'a'), text(40, 'b')) - expect((await codes(short)).every(code => isPair(code.source))).toBe(true) - await short.unmount() +test('an unknown width wraps every changed pair, even a short one', async $ => { + for (const length of [1, 40, 41]) { + const ui = await mountEdit($, text(length, 'a'), text(length, 'b')) + const found = await codes(ui) + expect(found.some(code => isPair(code.source))).toBe(false) + expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) + await ui.unmount() + } +}) - const long = await mountEdit($, text(41, 'a'), text(41, 'b')) - const found = await codes(long) - expect(found.some(code => isPair(code.source))).toBe(false) - expect(found.map(code => code.wrap)).toEqual(['wrap', 'wrap']) - await long.unmount() +test('enclosed ideographs take two columns', async $ => { + // 15 of U+1F250 are 30 columns: more than a column of a 60-column screen holds after the gutter. + const ui = await mountEdit($, text(15, '\u{1F250}'), text(15, '\u{1F251}'), NARROW) + expect((await codes(ui)).some(code => isPair(code.source))).toBe(false) + await ui.unmount() }) test('no code element truncates when the lines are long', async $ => {