From 2dc5bf160f8c6b44c915c10505ef7ccc92b29aaf Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:03:33 +0100 Subject: [PATCH 01/17] Await animation duration in validateAnimationDuration --- src/browser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser.ts b/src/browser.ts index c0d550c..3e8dd98 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -111,7 +111,7 @@ export async function getAnimationDuration(page: Page, selector: string): Promis export async function validateAnimationDuration(page: Page, selector: string) { await addChangingClass(page); - const duration = getAnimationDuration(page, selector); + const duration = await getAnimationDuration(page, selector); await removeChangingClass(page); if (!duration) { throw new Error(`Missing animation duration on element: ${selector}`); From 7052fb18fc20cba45c72570c2434c0a0c42337ca Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:03:34 +0100 Subject: [PATCH 02/17] Implement sitemap reader for validate --sitemap @see https://www.sitemaps.org/protocol.html --- src/commands/validate.ts | 26 +++++++++++++++++++++----- src/util.ts | 9 +++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 829dff6..13e4013 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -13,7 +13,7 @@ import { validateAnimationStyles, visitPage } from '../browser.js'; -import { getLocalUrl, isUrl, isValidUrl, n } from '../util.js'; +import { decodeXmlEntities, getLocalUrl, isUrl, isValidUrl, n } from '../util.js'; import { loadConfig, type Config } from '../config.js'; interface Ctx { @@ -262,8 +262,16 @@ export default class Validate extends Command { } async getPageUrlsFromSitemap(ctx: Ctx): Promise { - const { sitemap } = ctx.config.validate; - let contents; + return await this.readSitemapUrls(ctx.config.validate.sitemap); + } + + /** + * Read all page URLs from a sitemap file or URL. + * Sitemap indexes (e.g. wp-sitemap.xml) are followed recursively. + * @see https://www.sitemaps.org/protocol.html + */ + async readSitemapUrls(sitemap: string): Promise { + let contents: string; if (isUrl(sitemap)) { try { contents = await fetch(sitemap).then((res) => res.text()); @@ -278,8 +286,16 @@ export default class Validate extends Command { } } - // return (JSON.parse(parser.toJson(sitemap)).urlset.url.map(i => i.loc)) - return []; + const locs = [...contents.matchAll(/\s*(?:)?\s*<\/loc>/gs)] + .map(([, loc]) => decodeXmlEntities(loc.trim())) + .filter((loc) => isValidUrl(loc)); + + if (/]/.test(contents)) { + const nested = await Promise.all(locs.map((loc) => this.readSitemapUrls(loc))); + return nested.flat(); + } + + return locs; } async validatePage(ctx: Ctx, url: string): Promise { diff --git a/src/util.ts b/src/util.ts index 827d15f..12fd93d 100644 --- a/src/util.ts +++ b/src/util.ts @@ -15,6 +15,15 @@ export function isUrl(str: string): boolean { return /^https?:\/\//.test(str); } +export function decodeXmlEntities(str: string): string { + return str + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/"/g, '"') + .replace(/'/g, "'") + .replace(/&/g, '&'); +} + export async function fileExists(path: string): Promise { try { await fs.access(path); From 7360fd63497942f0523066bfbfc013ce8171a7d1 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:13:19 +0100 Subject: [PATCH 03/17] Return animation duration in ms, so validateAnimationStyles waits long enough --- src/browser.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/browser.ts b/src/browser.ts index 3e8dd98..de90358 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -102,11 +102,18 @@ async function addAnimatingClass(page: Page) { await page.evaluate(() => document.documentElement.classList.add('is-animating')); } +/** + * Get the animation duration of an element in milliseconds. + * Computed styles always report durations in seconds (e.g. `0.3s`). + * @param page The page to evaluate + * @param selector The animated element + * @returns The longer of transition and animation duration + */ export async function getAnimationDuration(page: Page, selector: string): Promise { const transition = parseFloat(await getStyleProperty(page, selector, 'transition-duration')); const animation = parseFloat(await getStyleProperty(page, selector, 'animation-duration')); const duration = Math.max(transition, animation); - return duration; + return duration * 1000; } export async function validateAnimationDuration(page: Page, selector: string) { From 183c61444a9805898bec041d0d8e26464636fb82 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:13:28 +0100 Subject: [PATCH 04/17] Fix --animation and --parallel flags being ignored --- src/commands/validate.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 13e4013..567420f 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -215,7 +215,7 @@ export default class Validate extends Command { const { flags } = await this.parse(Validate); const overrides = { swup: { - animationSelector: flags.animationSelector, + animationSelector: flags.animation, containers: flags.containers.split(',').map((style) => style.trim()) }, validate: { @@ -223,7 +223,7 @@ export default class Validate extends Command { crawl: flags.crawl, sitemap: flags.sitemap, limit: Number(flags.limit), - asynchronous: flags.asynchronous, + parallel: flags.parallel, tests: flags.tests .split(',') .map((style) => style.trim()) From 0305e0107c83d955399589cd819459d71b63a6ff Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:13:28 +0100 Subject: [PATCH 05/17] Support absolute sitemap paths --- src/commands/validate.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 567420f..934bd9d 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -1,5 +1,5 @@ import * as fs from 'fs/promises'; -import { join } from 'path'; +import { resolve } from 'path'; import { Command, Flags } from '@oclif/core'; import chalk from 'chalk'; @@ -262,13 +262,15 @@ export default class Validate extends Command { } async getPageUrlsFromSitemap(ctx: Ctx): Promise { - return await this.readSitemapUrls(ctx.config.validate.sitemap); + return this.readSitemapUrls(ctx.config.validate.sitemap); } /** * Read all page URLs from a sitemap file or URL. * Sitemap indexes (e.g. wp-sitemap.xml) are followed recursively. * @see https://www.sitemaps.org/protocol.html + * @param sitemap Local file path or URL + * @returns All page URLs found */ async readSitemapUrls(sitemap: string): Promise { let contents: string; @@ -280,13 +282,13 @@ export default class Validate extends Command { } } else { try { - contents = await fs.readFile(join(process.cwd(), sitemap), 'utf8'); + contents = await fs.readFile(resolve(process.cwd(), sitemap), 'utf8'); } catch (error) { throw new Error(`Error reading sitemap: ${error}`); } } - const locs = [...contents.matchAll(/\s*(?:)?\s*<\/loc>/gs)] + const locs = [...contents.matchAll(/\s*(?:)?\s*<\/loc>/gs)] .map(([, loc]) => decodeXmlEntities(loc.trim())) .filter((loc) => isValidUrl(loc)); From 0a9965a75a96d790658d299afecc96523e5d6c06 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:13:28 +0100 Subject: [PATCH 06/17] Migrate crawler to v2 API, fixes --crawl crawler v2 ships its own types and requires node >=18, so drop @types/crawler and bump engines --- package-lock.json | 21 +-------------------- package.json | 3 +-- src/browser.ts | 19 +++++++++---------- 3 files changed, 11 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 497fe3b..879f651 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,6 @@ "devDependencies": { "@oclif/test": "^2.5.6", "@types/chai": "^4.3.6", - "@types/crawler": "^1.2.3", "@types/lodash-es": "^4.17.9", "@types/mocha": "^10.0.1", "@types/node": "^20.7.0", @@ -50,7 +49,7 @@ "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -3432,15 +3431,6 @@ "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", "dev": true }, - "node_modules/@types/cheerio": { - "version": "0.22.32", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.32.tgz", - "integrity": "sha512-4RrpCp5ufWTLb6/1RCOjazRhUM6DTD79l763det29n8kLmPB7XeN46cxlUf2GsSF+0g6CbWT5nYl8C/Gs15bdg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/cli-progress": { "version": "3.11.3", "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.3.tgz", @@ -3449,15 +3439,6 @@ "@types/node": "*" } }, - "node_modules/@types/crawler": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/crawler/-/crawler-1.2.3.tgz", - "integrity": "sha512-2hvxnm5sa5tYKGB+t7zeNQAZ4pw1LMb0eVqjEpNUSTgIr7u993M92JVofO/QIVCK3lu+YkzYr0ZTcF2haHu4Jg==", - "dev": true, - "dependencies": { - "@types/cheerio": "*" - } - }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", diff --git a/package.json b/package.json index 225ad1a..11b3316 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "devDependencies": { "@oclif/test": "^2.5.6", "@types/chai": "^4.3.6", - "@types/crawler": "^1.2.3", "@types/lodash-es": "^4.17.9", "@types/mocha": "^10.0.1", "@types/node": "^20.7.0", @@ -85,7 +84,7 @@ "version": "npm run build && oclif readme && git add README.md" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" }, "bugs": "https://github.com/swup/cli/issues", "keywords": [ diff --git a/src/browser.ts b/src/browser.ts index de90358..f4ea65e 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -154,30 +154,29 @@ export function crawlSiteForUrls(url: string): Promise { const base = new URL(url); const urls: string[] = []; - const options: Crawler.CreateCrawlerOptions = { - maxConnections: 10, - skipDuplicates: true - }; - return new Promise((resolve) => { const crawler = new Crawler({ - ...options, - callback: (error, { request, statusCode, headers, $ }, done) => { + maxConnections: 10, + skipDuplicates: true, + callback: (error, { url: href, statusCode, headers, $ }, release) => { + const done = release as () => void; if (error) { console.error(error); return done(); } if (statusCode < 200 || statusCode >= 400) { console.warn( - chalk`{yellow !} Received status {yellow ${statusCode}} {dim on} ${getLocalUrl(request.uri.href)}` + chalk`{yellow !} Received status {yellow ${statusCode}} {dim on} ${getLocalUrl( + href + )}` ); return done(); } if (!isHtmlContentType(headers)) { return done(); } - urls.push(request.uri.href); - $('a[href]:not([download])').each((i, el) => { + urls.push(href); + $('a[href]:not([download])').each((_: number, el: unknown) => { const href = removeHash(String($(el).attr('href')).trim()); const url = new URL(href, base); if (isValidUrl(url)) { From 3cdab83df9b7532e9bae87f441ad565ee41391e7 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:13:28 +0100 Subject: [PATCH 07/17] Fix tsconfig: target es2022, make test config typecheck --- src/util.ts | 10 +++++----- test/tsconfig.json | 7 +++---- tsconfig.json | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/util.ts b/src/util.ts index 12fd93d..37312f0 100644 --- a/src/util.ts +++ b/src/util.ts @@ -17,11 +17,11 @@ export function isUrl(str: string): boolean { export function decodeXmlEntities(str: string): string { return str - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/"/g, '"') - .replace(/'/g, "'") - .replace(/&/g, '&'); + .replaceAll('<', '<') + .replaceAll('>', '>') + .replaceAll('"', '"') + .replaceAll(''', "'") + .replaceAll('&', '&'); } export async function fileExists(path: string): Promise { diff --git a/test/tsconfig.json b/test/tsconfig.json index 95898fc..b06a324 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,9 +1,8 @@ { "extends": "../tsconfig", "compilerOptions": { - "noEmit": true + "noEmit": true, + "rootDir": ".." }, - "references": [ - {"path": ".."} - ] + "include": ["../src/**/*", "./**/*"] } diff --git a/tsconfig.json b/tsconfig.json index 6aff22d..dc4e596 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "outDir": "dist", "rootDir": "src", "strict": true, - "target": "es2019" + "target": "es2022" }, "include": [ "src/**/*" From d3ec60b100c2bf1aa5985a6f75de66dda1fad792 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:27:38 +0100 Subject: [PATCH 08/17] Remove stale files and config bin/dev.js needed a global ts-node, unused screenshot asset, .eslintignore duplicated ignorePatterns, workflows ran node 16 --- .eslintignore | 1 - .github/workflows/npm-publish.yml | 2 +- .github/workflows/version-update.yml | 2 +- .gitignore | 3 --- bin/dev.cmd | 3 --- bin/dev.js | 6 ------ package.json | 2 -- src/assets/cli-screenshot-validate.png | Bin 233819 -> 0 bytes 8 files changed, 2 insertions(+), 17 deletions(-) delete mode 100644 .eslintignore delete mode 100644 bin/dev.cmd delete mode 100755 bin/dev.js delete mode 100644 src/assets/cli-screenshot-validate.png diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 9b1c8b1..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -/dist diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 97359eb..f3f6411 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: lts/* registry-url: https://registry.npmjs.org - run: npm ci - run: npm publish --access public diff --git a/.github/workflows/version-update.yml b/.github/workflows/version-update.yml index 42fdbac..681341d 100644 --- a/.github/workflows/version-update.yml +++ b/.github/workflows/version-update.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: lts/* - run: echo "Updating ${{ inputs.segment }} version" - run: npm ci - name: Update version diff --git a/.gitignore b/.gitignore index 91e9fad..116b34f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,7 @@ *-debug.log *-error.log /.idea -/.nyc_output /dist -/lib -/package-lock.json /tmp /yarn.lock node_modules diff --git a/bin/dev.cmd b/bin/dev.cmd deleted file mode 100644 index 8ae2b12..0000000 --- a/bin/dev.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off - -node "%~dp0\dev" %* diff --git a/bin/dev.js b/bin/dev.js deleted file mode 100755 index c8f0220..0000000 --- a/bin/dev.js +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env ts-node -// eslint-disable-next-line node/shebang -(async () => { - const oclif = await import('@oclif/core') - await oclif.execute({development: true, dir: import.meta.url}) -})() diff --git a/package.json b/package.json index 11b3316..69861b4 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,6 @@ "files": [ "/bin", "/dist", - "/package-lock.json", - "/npm-shrinkwrap.json", "/oclif.manifest.json" ], "dependencies": { diff --git a/src/assets/cli-screenshot-validate.png b/src/assets/cli-screenshot-validate.png deleted file mode 100644 index 2525ad08f803c07d5780e8e3dc291b2d58efcbe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233819 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

Aqs1%@Of zF-7kAN;IqfTYo2V>`P@X!5XjGlo%ACg|YA*>>%`iGVbJtLZ5-^;&~J;=13~OzrA$;C2#exw(nf;aYu2 zr$_S~kAX*^kwFq7!`?3I47YWrV&b<=X`ayr_YSx&k83`ezzA3k=;@;J0rc+4@EIcL z)=M`4D%o+gd`NE9O(>n&NGe026ON9=fPlg?YHmYV`YsEkec4@W@f4D~_l@X03Y3El zQmvvp^kh$gAi7OJm}#R4X^7a2jk+hlr^X#+U|n(24%}jG@YYZ|`wPNiUK9v=D&d!r{moNAd>{2m=6mK4E#MCM zQy!um^2?MPUfqg?i5C`#aB8_9PA4%1?MY!#x+C*+PU2_c9dD~8i;gT*xV-qU&H#k@ zo+zC9;~Fjd;?FL>itm(LozIeB=3bKUXD6UJuIY@CDE#r1FeBgL_~^+iY2QKdHeW1&Wis8(^gfIiv+j zJ%hQgX$&vQC8l3D{tYIdTQ&UUE|zh1H24_N$7D?PnY+FA*mUNZD|ea+a~3N5 z2V`9g-nI-0TQF+?=Tm>UYT8;9H4Sb@oQGXiVt!dVOMJjsy2);z(4d3OeZj!9)k(89 zSE0}rR}xOx7Zypac!&y{bz(}|B9vcFZ)1)<76@9F-+}`&dah@jk+(F>NGXbo)ao_Z z$Wl>KbI%&RoLV{YOD5Vb3)2?p*!Ug#fyFXY(`1B37JkX=f0YrvNAB?}D^@tVYkNs} zsTbW}*oVW5C4X11keKTWiTlhh_AkNg=RUc!u7hu=8p<5r)u)aL>0NJN&Rh-D&XaZf z@J{2U5$S_AMqi#Rv6m7H;L|Lc`59~bgrt%$+gP^E%tw5YBtO}>wy&wH3mdmhO^NQ! zhi=iSgJaSM`shrL?K*{i${f1t_E|`;Q>7(22bKIQ9r%sdpIfzF4P%9WV13GQHm!5n zGSZ71z4qD(`-bPufEyFuiJ8?QXxzJM^n0^yqvkEfVW5l@`!%|y?_X-7$TCax4hB&e*9|;w`4rdO^2R*iOe7T+}>{1H_*pN1i*Q~da$fz zP?bNYw|gzY&usd)1MA#5ztCiMvF||1=B=FIqW}SNLQU}_QftgHsM>{uk!P+@kBswL z;uSW!H?vdxsm2UDJh%fw$5dqn5Tr8U3oVbun2kETY@6hb(6VMP|5~$u{dudYgBdO> z;2iGAnw*yXowd%;V-=ux<4p4E4uBa9H+tL6+5nz=PSVwx2`-CUeO{W9#@B3Tt^0C~ zIW^QF7*=GDWn48yodnR-zN^&zA3DD6=X3u!)VnHH4X{+G1N360izx|B>uOft#)?hti@v?T4|1t<-PUK4LYcGTvh@`7K-Yp1a1Qzb;8VH$3dW@bZT>ew*EeH(Ed~PzilolB&@x z#EXK|0lQDUGE*8p@+zugW4Iy+bF){LweNhhV2!gG%z03|3rSC1t`TOB$9CQN%t4_x zO+_~UzE?MHc)kfjQd$I=L1APG6XyJElL*o2Ch9kAgd5=U%vIC}&-vJjh^JWdZ)CLr z11?1t)r9DyC_JK9-x&)AO}-+JuoRpy693K=U(2!UW`-Z6~C4gPx3?eO-@1zO+y{DiSS(A*c1LL)1;)vl=U5nucYT#_rr^ zq<#t9|3le3CIl3q?#EB5{Go3$S=v_Ko!$7I6f`L+>Vamoxlo~Pxxg)0u~F+_h6DQK zGTO2C-^**xb%WH$?3XczOYZB8F=rz|2a0&VE^qsY`5+n#S>oUB_}LOq<4fCq_d}W2 z!vH%cb7o=p2+h-_JraE1fjX=YpJg~C6XT@;{o%EX?B9Czzi+PpR&y_OLvdr^R~`#m zZ0A7>mx-0^+y$21hugyGe;^^aF&4FSS{hFyWm&6SZ%AODaK*{m=+Lg1MZ#*# zkB7!mz;a8RQjfS&ED6}0yd{{%yb9Ef>^-mQliascY2?Jk@78Y5*8c|$2PmO+yCW7K zB_+9PkI!x1N5(~ReSN;N)MAi6CJKNE-|!z#rk-8n|3C}ZK1aYVEGJi*zp&4b5I|ak zdJ{~nYeN7B**JG0k4;Jh0-+HJ+}Pc_8G~6esYX|qvVg(O2G4;t7@*%?mInW!CYT`5 zcZxp!=lwMuPwi+)QvX`gA{#&8{~94$WjOk@WHJh!mVO!|Ma#U^f}n>Wz0<6J=CTcb zMo)T)D2chmqXe}fuH}y_0Vw+$q5lkjQM=r~IRC0FBrk*Q#u|}-hw3hiBUQl8Z(Ns!n6)%6cFxc3aK^L*XDe}91y{SX8>Nh&LX(5 zY9@20JUhUcbe1{@-#OGv?~Li;y+HucWCDReb9}%dVL9{izQOuj-#v98dF5|BKNLc| zZ{nD!{m&bDL+So#LQ5lk)(lLaN^xa^t`iZ2CnGvWI*^HQ>_xq1SXy072iRXM=t*xu zF~u($%cGf^Q7)?E^M$v3)$nj<%Ij7e3?Q=$ za-uaDT3crZyKgX>P1Jn3OJ}3q@UDN}RpHxD{|FcDl=K z)siT!q`w^ePGV;sSEY!zdn)9`Tx@8yV@m-xRW9$F1)@GiMn;}1JXb3#@)I(f43vWG z$3%A31uL=vzN{H-iH?JQ9IT_ojD6aV7?3*u0no=5r5dHA#K2aAX~%&f5kJCSE?yaI z^`xfe44q$PMtOVRz}5A7@B}NY2shxtgEu7PkTMw(1S%b+SC)BnBH6cZ;cj#42xO$h zaN5*Oa|#X(nH^FL>CZDq*+=i(PWO!vlnkdXizw-b4gKAg^+~5`X&+^*aDyJoh+!XYnH8J5 zw6(ogRWU7V@0Uu zQmeH?H;f2T6Rmoe4+UTMgru+FsdN@|N{^DJ_6PuY2Ot}XDm%PlXDSJKOO5!h8e z#o8X|o;KmtbAENEEyx_&qQ6AkXIQfJxs>Q@Pp+z(>_>b^X-hgUV9KqRR#ujV2&4Fg z7cPVV`P1L4h^M*tXa=z6Hg4IaRR~2NnCyVdmHmAChE5Sk1_J?I#H;9J>wLwt5hpgx z37j+O)RfftD(0EOkB9}gAYIZ4gk<2xQJCyOsB)RkXDf!HUz!ve@}{>b$VP6Htpc+C z&$lxd+JaR(4=`~eFlxtk90eLyjSoQm&8aAWIsXu3WdQryk zOmASjdiHFGv`d3WCyFq>!eR^L4(qfx=V_EvROAL#tO!+E^@2FM_#V-m-4)*3OM(gs zA2tuke|!<9>3FHaENneqwQfe(DAmR=^)Q#6ZEJHo^e9kfh|8Jtr5fGj#z7iGakekic1v6_xBqKhlho&&Oiw$ zzU*G7GK}O3rM`ah$$RQi3Ll5VOhU>oY*pCf#A0}S{NdO|lbgk(x*5DJx1Xlu^=Hq` zE?rZNLdHl%9cN#yD5_c>x$UE`PN8qFA6fcJ(pmn*uEQ_RtKGt7LD7=EqvlC27D*C5 zEdw&t$z%)ay6u;^#hLlrR2Erfv;n!IDHE-Oac1wYQx25*!w1kri}|U8OCiT10Rg*{ zk}WfJIJ<8!N^Fhg(Rng!&MZ$i!sO-g*5?(pd7PrF!rRwF@NsLsDlO-}61wu9D!?D# z36|HDF&HaI=z%2f@7qq683}@%w#-z^%@O`DmTZ(wwJrhSCO%5SmW$J1+7LM<9Xw^w z;6I0R8GX5b^UnE~n5FpO5T6%L9btHXd<8&k@v^HT;a{0!nrr;p6|kYGMz^TX}z5OQj}zKDCe2kVoQ4J&`Qg{MXyM4R-*< z(H0oM>!Nw#NvVq}>MKH<)75dzEG&jcn=irc=gLzTwqW4|_ap!Z_+?4~bF|h8d*ZZ&0x&7m*-hpvv`@Fd#5p9oK0+Pbugx$-@>C2X z94=w9gbUL#G*r?m6Zp)Oe4WQhrA5z+T5kOXC-Wi}r(+I^8Ew`Ep$kWGVPV?v=hZiZ zcXiM19=_IZ=)m8aMVjGh2;10)P$r4sMa1sz(zS*eeAL(1rD1?A`O=Y+X2wFhUs4)% zY0ss-59iOTrv&x58G`O|C%P{$EybDTo%L>v*9AS7s`>Wq-lNIXF>`~dBV6L=vh|l2 zsHx1(PI0iUW&OXf@*On*R#y4Zj}FbcR&bvknZZ++M8S)70NlCb`riWssZMD(@CdZo z=nzIwgM?4)QJsz>9A@t}Wmo=CNI0~olUb>fH5#`tk+*1>nl{Uo&prNPnOUY(MYet` z<}p>@rUt*!WddGSnm2T>Jl4EwOd=H~9;n2|kZ*#El>7wq+K5-Dld`(aP%n^}VZhF& zG$x4sh}ZD@#HhRy;vts0hQ_op)wGjql$CtTpO`O8sie5LxxI$!W0xM%0ttcbsaRLc z@biJKE|5}HYD+d@PWasCQ|i5E*Aerr7PNO??Z%X`l}j-)jfu_3-m~Kn%gbBi5T zvHtQ1@^UgcP1vfrLNSASisBUXcJ!AH_v)j{m}Zi62pO+OPRfSxErXgKw2 zCbSfhg3BihZCZL^6r*EWa6pPSkSJIkxY~SEX;IXqqeS@%%voE$Q_?l!)CvmI;1VQQhddXYVT{er%G}C#ifU<^ia`|yJ!9}|H~wJ z2f+(|LM#}|rN3ixKg*_BQ{C1Sz?I`h+w6v`hFRvTa27W$t06K}{8_y`^R-F}Ii=sl zvBm6Oz2{n#O^{MNOCO>xxw|_#B=W~EhdUhaz+M`9{6?D?2MQ|~@nvM-BZ+ACv7v@r zXF7>mV7G4*1*#{H@-+`s_Ea!CwkI*`>+9W7#K(xg?mwRPJtH59{ zD>?|g{0ruEGHCAchO13L{`@~@{yTUJRBiO8lh-LFA%ZDKni!h@shKMMOWwd57HU*4 z_nm0L+6AEtdHLy+4k5etYC(CStUp9_N!#Do5_}&S*I>B{Ww`N%Twl!K=Rj z@yW$m72e`STfpPMSWwqr&&wX2CQ`0oy5K!j0If=*(JZ=Jn z$3w?IFKZ*F7<>W(0)qO(C(8@{-y#6vF?oo;>$0E3b572S zq?7b>AdNaCdNfb-4M3s{ba9nB`Lw1@+|vn1g?Q`|$jey8x~8}YIkrEbgA}OmFikrS zfp8PFh#4fg-_FF2pivt+(U~ zc(xzb)_I{*?OU6IEVEp-b(PDI;=DlBIMF2#xI8x*uhQA5z-`SjINB^}cbAHappRI z%+dKcR{G?mDUi2gp6*P;VyY-=#_8<-!r3elrqZKgs~Gq8O?jk^?|bFWqfeGuT0TCh zf!}*(HR3(K_{@%m1t3?P!5Za5h1D}Szg+81+IlhEip;z7Ror=6sC8u&zgB#=bmpvq z)ELd*D^0&fR)N4t{csvh7tKCg0TxpLV2~Kffy9<~8fpP1U(|2b-a_igDl$A7nXi$s zH@;<8KgrtiUQf{}!7C+I_t}8`I2W%wbQ;p1Q_dy%^;Nxg)ez=1k@7496lp z^W(`T>~6}LkuMQjWhJ}nsM1(?w~xAdK*yVnc2#5yLK?0O*K*4`I!){zRm60;l#5|U3cWl8NjXlr%ze+ zh}PD`O07EH?;+bJ!=WE1;ZMOFA&+B$f%@=acaXTm#ha4ntfU_jh(Mc2uB_B{|2*8c zw{mW3RQkrkR%m0;AF>aFZ{8rf4YRm7J>t=v`U{kk2)ueJT3XW6HicSwj28-&%oJVz zke}|uVI;-;N5n@|V|!@7@ZTqWbAgYYe&OV4hw;)|T?FM=TQj)^3_~6-ov?_duPv3(D!wpduwh*Mk>TSzwzwBq1k1x zj`X7t<5J!W_XWb~OzD6V*Y)A|&Pz+=K?=7|{m=f@I`&6yOjJ7k0Zr|B++o}Vr|Y{| zFAY|YUIQH>l7OlXqL-FlW7zyn%iH$g5JJvw zTaUTW3vf22Aw)78)ppL# zPOaGc+S>utj{a#yxS^rjL$_`%xA!dR z&4|hy+IDEM!vy#fd3U&}*KncO^qVyDza)WwUA5;-pwwMvidXf|O4QZm&Pndikj(-3 zoJMrpp^CiWM4^pG72|q(L4peF!TPFIIrxo0Z*7jJ8fHxT#?72JZgpLw-)d@%e;Wbd zS7&zBnyA-iLF0vv!&V76@@oE^_jM7bp+7A_KV6t8oC=_JR0q^nrp39Nsz%Y@9j1*Y z7{u$JQQ4uuXr+V*Ec$Gl3R5Bg>izALtfW(J66%%*Ep25T1p&NazrM=gSL9Tv&AKpM z6nh<7)0modv;5%clRJ98hh78JFH0iDYm7e%1>{_rkH|!up=DN1+jG|cnTOZky_zsi z_cOfRc%qS=Dy4S|aZ!PP6HqEU`Tr_Fh3%E$6ha;Rl|%O5=k5|g+2Bs8lMJ+#QfxV? z{TOMy=Ejynil__AxBu*;*WdWl(831yG%DG2AZ(gsq`+>wd^8rSOimcj$ebooOZ2P& z)Q0%9rEmaUN5-Xx=j+&eJQBRYx2zQOfD6!!mS~nZ=T?9JZ@slM7p=9#r*gxt8ZG!B z!mh$_LbY!cpNY1@Bt?Dfz3xag{kEFx;F16z!)owA#U-W0J>b~@9_7_fuQ!-3om3dRatfqyB(w zjAHwU1bk~a8{u#W%omM3`e;*}Fr17Nx|&Q6piZs7-TconnuK?9rj2%=%Ka7&UvGO( z1~9VStgsg)grLYWBU`s6%1j7UT3ncj*CM3un@(@Kn9IzMd_rv9%eD?%lc(Tr z1kkWItopN#oY$u$dH2N!wa0BMj1TW=y9&m@=ZPpd;NK57*iskTLOy@>(!4+V&+~jh zJQ}DXp&z8uY+X26=wnsv7J5M)@SFs(aytB#S4RHIKDP>?23wtTR}h*%f)f~~YjqF1 zaWMA-uIT3)>yf*(jXWP;?Nf)YYP~D?A>adefDD^@C@9En# z%5nPv*ls;7^)ezNFn!R7a}_vhmbqWVn%g80an&Vyb}hkA9A+eMVdKLk<3@EtJ^%YU zsX)EXFVSs832fYR_e{E@vnxHSc$2mb{9la`E`dGO)hfml>hAov^%g3B`+@OI$wHtNB|xRphSLG2$mZ< z#X?R`@6L5aYK4dk<@hc_LIM%0o~9NT7l#kmWn*#-&`~|FY(|4@cblzpvUo8y!nd$x ztvVipJ?hxz#wxU~E|dSF_k8O1X- z43Kf$wCiO18+NdR>zVrJ$M)f5D-_)wwjl?x8c49ylsaKO5wIIaLNZL=%s^!l)P&H7 zcANd4o5{aq?;97Zfs=zK((|Uh{p!dk!N33e4UjfL^XPj)1d>&Xscu`brf;bf z63dX?2Ub>JIo;1bwUw1sGNF1l!m*ZxGatq(?``KcC86jutA}F$>Xf?vJp!sdfUi3{ zGrf3pW;DJ{2$Xnad+{3^lsX{G!w)@UlhKcD@5^O;pesj7CRt2wBcv1W-uQRQ{CZey zMJQ}DVNkAVbdSa+J0E|Sj6>aZ1ObKNEV7jZtg$JKzEiXk47)X)%RFe$0(M~nY$v%O zx(7nhFC2|n{qqvn+yjK}{OYTlA@LV7{P^5SAdx#sOHEDU{{3jGawRP-X>5Yc%=vi^ zdG(j0$CjvTHEo`$K{uH9go>eoGK^Y1PFSnE-0q!m9Ok{WBI8 zX)TVYObqKfu-nu+QuYPK1$=<-w3%}KVE_hc;CgX-kXcQ}8tB^F(ZhvOTj@=eh-Opi zoi1{}PbFmgVsob_?&^MLZ)Xb6tRo<%wHId!qU2*9KKuj*FcN-y(^SdFV=W|$js+UR zd*6z%ZMYK(c%h>BH1MFuqp~uFQXdk)g7TMLF?+OxMau2)r)qd+C-ZyW)4q;Cqi`&I z&R2@FAPHLO<@?du`5TkX?xK}W&)$gAirU7?ApI5qgxi%a01dK%?jNOVKfkz@nPYOi z55nE*0j=c;_6NkZ>)mE6fD6ODI-(lQRyAM5v}oPTa&WO-%Ko525= zVis2wVePbfwi>@Q6=(57;@YGd=!pC4_r^*R7sNtHQ>uhD55M@A)$L@cb=Q4*@tP&d z<1N2~c}T8c<`{jV-D9TkaEVg$ijM9+tXqG4)X<=!;#ZY2Q7rUx(pu2?clxqJ_6@7s z^UDKQd*{Cs$)BCnj+Z}xh6e;lJHJMxQz<>8$*L$dq*7n!fR{@sJb_n2!eF8w!t&o$ zrB3o|l)%LqY(=MYI9;WzEn;!$>2;V87PH(*^=>G|oPvUYTuG$iXF|8`7%Pz9>SvZ{ zjh=k<){y#uO^@x*beBbpEpP$Y`}nMID0=pCS;@AJjRTjT@9A36ToYYVWzXWG&@j-= zSM0L-`ct&-!kaLlC-CqrTUz`sDQR@SAEA%!r>hyVE~JBNd|Kqi0)~Vv*cfTiw^`yH zXmPxKv$Kyz-~D~jb{)3SYQHPpxmD$L=g9BtTN`xSpQqL{? z%xU33$#8Z?kOL+0J}5z%N6^;oSZMstvEwOURaOkpa(GJjaqnPpF_QIik825=Z>#3Q z`2%6}SeMtVbF*LX`F24@#jL-A@ocJpWi<8TtN9X<-3GIEhBln_88ji^J?eW~5M1@ab<%q&tvzn(fp#PP>G z*AV=1x!t%Gn4FmP?-IB#3z3LgOrh0>X}};6D6@9@^32-~JhJjbNCxcmhjwCowbFR2 zp*O6}lBI^#*T|PN@fId4G@=I%*=gG)Vrm2_wf?{XKOpnDiMPqsNC8t}&A7`7x&N5E z5htQ8gbERXM)CCEXt4&m71?r_O;=6$#Q{CV0Z{pjRH_K+z&Za`hSJq;ruY6(;`fM_ z;w|^BHYHXEpkF2OdZn(m{20WHs+`7gU|s$%)J}9v=zoja$<_Pp|(0KY}8Ic-9vH0$Lw&`yiF zsSRfW)mqVxDFmK1pp(Qs(80QM6YIK1QFgL-Uq6wao_-)c&LZ_ksrkK;6UoyN zk8_u|cLom+!|#~Z)w3q=*)bz0)541%vqQ4uH<$FjDf)Nn&5(W=r`C_bB%ZCNQx_-4@}+^6)E8@Ga2jE zpC=S;H=is^jH)@}&Q~j+gnZiNV@0xG>HYx1x=E@i$k-okGKg-L7IhT8J|0ZcO!gFh zP#Qn9Q{2zMu43Hqy1yhz%m0x75c|B9+w0D|J-$~`$lQr)gJ>WmJo$TAm^je6;n}L} zu5)vtbpzY&-o7|#Sz%)8K&2e{&$|WW7krIOOW~i@NRY#G zS_OIPJ4Qq28P8>$Fp~cioNelj5lAx*k8g7F(n$WCb_3kS zQNmT#SLM;9RvI%B)$@SRx!)(bmp3P96v19KZ6I>i>gU+ILND`*StAUHLl(8=9(iV* zI80)DLr+gq5j5|?R)oMV&CRQf#6!8()GtnpEoOa#CIkCptl?NhL9R7~w#>X1WQQNGwSO44q( z3fW<^nxhm!U~jQ@`m9Dt*01yQY^kQ8V(Xr0w?w6K4M4WvKewqjLoV;_?)Gqxg0&$y zG%wRmj)Swciscm)V)8HbBoy?9gc1m76A$Mrw=g~{G)-THu8c)>ZeMY+^t`)qftTd? z?@6T}HZb}NAPWP;6JI#lBAg#v{t=KcY)27UuQwVh;WEkqKD zu-{+*?jZP}-pn%W^>8jYD+%8*%V||`^@jb{q){HDxVZ8wkFJe{_KpE4eXH}=a7!ew z%d~lCcQ^bRL)0(PyLF8r8ZB7cP1}6`;`PT5Gf6uISm^A?NIt^_x_6;8FqIj}Bg7D> z8x|H8rx88cswt;2{n-sLZ$6pKmL%Y)n;Jw~y!X8xrxqi=O>9`!!9jF4JHKjm;>Oyv z!cjs8z#T@F8uT`^8jPOJEu#}KN@-Wb44Ok5j;%kxNFEsIbMY@9iQdsw`G)1OpDQTV z;Eg2jbF*M4XV-j1F#lXK_Jg$0fgsp*)zgWw!=4vFc2WBsw z$Pb%PF{^+031e)iL1iqduoEU&bc*l4RZzstkjbkaWWh&be8(dYKP z0VpQL&+O_brR}dVCJH3&pIBoWpe#bFd@{j0q}OM;Su9&*gV_0)Xi)rlRmyQna<6t^ zY2LI|b_qFx49sIjUXJJPA7c3|4< zW~4D+s3l$-e4Xr8V7P-YcpB-q?@96fUZ?2jcV{Z?LO0z-CeLS_2iO`hPZO|EJOD#U zf5VXu9`cBDW`mstMZI^vvrzc5StvU3P0R&l)3B zW7O2$K$K|Q1shk5#)0BVq0|$*wF=wY=|izZjP7-7ouj0Jb3(TpznYnh$ps_!U+0u= zpT(Yb60}cpwOTG7UjvZmC8_kTm(6}-3DcVDW3PsNL!xV?yM!_#(>tou z_NRkn)nEyDpriM zfg2D|kJId(53X@`M}-qwziiPjog6yg`;7h*WF+|y$Qn=EL57X^w*C3qPp{b4~_n57w%jB*j{sX!lD@W?Vmz>s+Vgo!)x}784|fsKm}-f+}}_! z_D_SLA4V7&-$GLSvHv~v5t&{YeWj4Ewkf@=#?7D5)KS_>SRNq;ygMx^6K4$rvlFh) z^DQVwhOK*NiP`()%5bHXCa;58=k@^PiBfrr-)%k3KarBh{N}-yu;=0Cw3&B`^1XX7 zmtrD0>-o-q0LZ|gn+y*T3>Tcl-Ae(_q%nRw#cdpPLc`NOIqT15tlPf}aFX$Nbhu@u z>6-eM2_njv*6rmUr<%Jo3UH2oqzI|J@^xjQ8jqJ=EoT3U37CIN)< z$+WES%9QKli@m-pf@y9C_ipP{QSvs{He6R&fP~>{|GD>JY3Za*m3e7NNsnsBU#R8# z_L`-w|FHqxELYC)`K)fS6l~6P3KKXY&EvR3Pp$Uc5pL10f(VkXEUb$r>O&GYGA%nVXoOtP9hUX zIxgQ5#M{~;TljqDoxqR$apb_RPU8OuclabG1GPN!nVQ0O_&6sg_Vy4OkfUBFDcdB~ zgFR*hp3IpPtzKHF6yU)Ik3i1-5CsN`!-YhEw-#PgV!Cq3t=Y6G+!u2nJr;`rdfz<6 z@_@uia;z`jEKhwyI~ziyCA{|stiSWECg{)qiDUQO3U>{fA8P6^XSwA{VxZL%2<>0QMBN))lu4D79NM&nfPM&b?rS@(__}Sg#`-V7sq?$;8?pyHaU%5vG68*XN$T`uQ&Of)eWr0IiV9 zY+Q(JN?2fiq#AO=jTv7w;Bs5k1Bg?K97=~>H|H6sFZRPjx?_mBgnC+o(1FKsK)v98 zDBbt4AtH4_keWSTrS>a6jnKoRpp!Id zFo2 zqLDUVJHi=))jG}Y_7IZwPbjX63ZF1t!<)yhE56GNTB-D~*_5-*EB(e(r^63H#U|Qc zE&Bpfn=C$=;CLUtE}SvP|&EF+6lKi$w1eP0`;`qek#$ zYAzu)wK>?3%egw+h!*@cKQ+ZMalCwCNy*oo+}uFMN{_3Vn3>+j6tAWJO&^8Akc!>Z>~LTa#$83hrVn);aMT57S|Cq1|%Cu3MZ)~un;56F~n z?|fvm)~nE=QiHyf`LGOZS^>?v(LeQwlZaB4M~AXkO?&m6G6$5nz1%E77byF@oe(IR zP`Duw1Lf{QUbg^q0u4E`KHvKmC17ofqmkSwKw)d59i=1f%+yBsD-{--r#OD8i;0cA zhIu8aeINr97(SJ9R`;uu7V_>&U^N*Sw<7L_ovi2Xr3krC%^%p7Q2$fcJir|X5JB)q zHCjM}aTqqTqJFc5J=aD(Cy=ZginjuGHLf4lDP}Iu9fvQY==$hyYodyt`96LiGo9ay zFnBv6egD{o=2GA+!%396F$zEVaj$B07o-5_ni31<9C0?7?@Qd2dfS1^+4rq>kl)31 zN(g0ZiE1!E#KS{cWf#_y00qjy|G+?{|H42!t}#$8v{UQ$yQgFqd}E%Drdqg{2XCAW z11S;ltJu1r(D?WdfX3YxsHlJzY(dXhC~=m)zFr)koRXSJo-sJA*SxQzYRTr5;Nfc{ zql*tTDv+(;OL^|YjVXa3c< zSOx&ZQ-crHB84P$Xp^f=@95^beTHP0i)NxT|8NaP+HfQQ&Be|8F!3?`-!ZS){R-yYC>9 z4DN~A?d1xpSJ@8KfWyCi`_?ZgG_h%Y&JsC<-^rI=in1v&R~cX7qcBN)?)-0OwD!S3 zAiXL_RDJ~tIl|2jk*QU69ke5<^80{=s+@;6ZUJ)f1Qb-!!hVppDlYGkrTF%CvNL<6 z5xebL;4Jrx^8EYJ%-A=?9% zzwBVSQA_pPGCpniG%ocgVjJ|eDg@rh6RM!j5ODXGyFwEFKAF{&^gxykJZnVab;1H| zZb+2`Y!xW*+71i|2QgG-cw6)DQXdZqadza~E6K;|$ErDK&E3Cdbi0px>aWu z$tDRgE%S;pTpb{y`A4|_Ii~=^F0%e!hTR{Z1!KcA-UFF^y{Z=YITt{FQlA<<~>>Yo#=&0OTjFPP%N>9)3=Vpua9fnNSp6rJsBwS z>9V+75zf}_=4EDPP61RQrB@#$xu^tHrS$mA9n^AvbNKB?<7DOI%zt^FR4UTjjJ^V%V3#5u%9W*ZyDaJNC2(Zs@vF1}+ zACXy8HRM?hNZ)zFMc#Fx8$?UcoTYB6YAYf)ZB%Xs%lr1*_uc5PCIq~Y54)>uh*UrT zxUb4x?@B`YE1W4uSVF!^A~KxOF5k!`Nc}8DqMFSmtnOfPjp0ml+%U{3a< z5+idRFj5S3D-)aVb*tySUt-q4l+=l%Ah&(leRtMnk zVVD4%IXEZmK5Vt0WQO5wMReXI5>kXB_76bjdo^JcmuN@hF5q=&OS|e7JRg4JS$3Ia zBD=)AV3%Rfvn;ol5BB7-LjU{Ta|xfuK`jU?=(8C^6+)2Mp0EcquVr>LwsUqbEfXeX zpyvZ#Ia1}5>?^mYkO7e6!*5!${=s1K9f8-1O%9-{E*G~|Cx%sWPEa`jN~;SS_TPQIc1EX@V)Zh*V%+&uIH z@u$y+K|DjLvrb`m@k9raW@;RD)KY*PMKVz!l7fOw4(R+Z+p$+}0WQnGTyFkdBleT! zut*Du4m>f%JzdTpFI;_XW>!mk$X-JVQhgvfX?{hNwtN#D%4Mv~2+*~y$Ob$IfKyi-*t7zbkl24wo1D)o0sVqbigExiDkhx>Eb5|iqE`{)9OLV&C- zLO%4X;oa(Rc6jiqob1aeaX>|V>+ERo^uVO5$4-3s*!d<~G;Dd+iRV5guiv%8F?USV zqH62O4)2Lj(`nPu?VtZ?VJ7=N0hc<)!H{`$txy-FTGBwzudjfZ&!+zv45 zBF|To;1_aHGeeaxwykZ}f5d3HS(Q)`}Q1x_R;FnkM>u|PnlArMO{ucU@DJ6+npoU3z4vKvO7t}UMB zRTl_*ZsDH0{D!#6Bv^B{;du)LCw}UU@``6c~YDDs><+d+$&AemNSg%tQCJ@+uK}r&w zHY z{=IX*<`4a8PBjJkGBG)q77BL;m`(E)A;8b+Lwd1MLwmy2+PTwajh5WgCwADFxedUZ zzgKxZJ*$d6QoO~wz`MV?Bi1v5(HJ+C_&c|@yDjC};pTHdhTHTlBpE16V^)er@UF^E zOjkq1j|;v+IQ2STSyxZ*pJd!`O}yc`dACmv;QwxK5&kvDlO=X!UtMKXB;&wArIrQZ zfx89++5T_}gmR5vA_!c5+lA+w7TkgunmXczbbGTF-)kwJ^OmrhzBHR#b8Hz6{%pv) zqk*>pmaSFd_*ZyO3nK_t2)qCdjTQl+M?%=@g-4 zS}wSN9xD`{Mtu6bXd`7_Ffjvmpw_6e?XcbiEKXLpQ@pG~EN0FvKH4kd18JMN%X$9m;r>yfVVc<>%(g) zyIQUBE{igm`c?V?K0|FCj}&M2}O2``z~vnE@VEZk<=%yJM(v( z0buUK#AA!97G+hd2xehhSC6%75nTyD(#9!FyyFJsQvGlltQYP{bmLs|DKOAi3sWpSXDt&P(dKi<;a@maX-yRr6m07531N_Qn^(!y-q28T(R2kZl`{;TyR|-6Cy=&|Hc^B z0_`}1jJ)C4dr8U6vh8VA`Kqj=c`vrPEg_fmxxT}VjC1klxhF1#DQUW_>4zB9@?NE*F*u_s_-tP@3yDsJCH&7KGJ z`d-FJ-j4rnJH9;^CF~du5a^SH+*Cnr?=PuO4v9rx=qlevhljm|w$Q)QhCHPjuP<*Y z!BA;gTbB@`HvaF>?62RT*=Fj0q1jJ$KCVK{8*#?VSZBjD!m8#4GNM4T@3Y}ifB-&u zxI{*$+De<~zI)-etrqgIIGlzX$eR49XdlePV>LLkKbgy}wpl-P{o zc+iv1BX$-RRGzP(i~WG4jXBqWr5o(+1)uwQ453Owl+9$HTxEji@p-gUHIbGU|d-{Qh> zt^ckOAkFnwCm zbpWuc>ye9aopvSA)_eJt_y|+mVj(lpixFY`9IDqKcr*}XWA3lg+i}dhzVjpLigot{ zXy0ah{TjO8xYs9p652ExX#o3Z3l^H20kpC}*P)-q!zt9bFM)HQ6=($vQSFiUkBq6C z(0-PV=cVRLYWw+i{bbK>zgMj=uKo2UF^u4M8RpNPe`T0&mVcLFM*aViVd9kjto*fk zwmNoo0P|J{xY!bX!bfVQOItq;E|;|a^fTV_2l6Fj8LjJjS&@4PSa}jaW)}F9vyF!k zU{`*m zRarGvRdlutNi(1eORp{f-R?Zo3P~pVY3PM%*FQ@OAFVql7K(e9;ScB?%N;@TauVEm zGB-8a;g*G((7b`=Ad-=0H{BrJXyJXRBhO@cuT&0aSb$9RD}5f_v4ro@?#xf@s+tZQ z6#!w$jMvFPv3iAN1C9`Dl$dSm&rp@~wzUEc{y6{Flrl)8A?NFMP?`C(F)>!_O3`@T zdAQy(<)xF0QWGss)5T)D8=2TcGFQ#hAv}_8Z0#r;u+U|bmgdViuP@1Z!u3R$@^yma zpad*DzW>sL(*2+Hpt5b3INpDO!io<7P}tu|O5j4*#?ve}qt)5T?o0$|w;i$vIVSj_e`IaZlWFq>M7G#%E&$r2Y@n5A zzs1HG+P!l)w03TLdcBo!{HZMXWush1e)ht>sLFWBVEHNQEI(3WV9FJZ5oy=uh%oz_ zmc;5=@}Mt@`8*c~sa3q!vK*veS0vf<#nM_dn9)FuAo$Zvv0L0kCdMH?3YM9K(eTjt zavdNYFBf0n3ppsw|K|+9vXxecsl-6 zj6P0{1Kc8g5BZPA!6~FJZXaAyh@lrcQ|qZN3xLvh9{lg5r#Qb$Pt`cKn?eHu zT*9$geFBRe3M7XAw;b~8}^7{|LqLGe=8FhsK&5L+?;QEURmC~-YK zdMa?mY|V;YW6_P)dgFnck%aA|c^_5}!~m%sOZ3GV_YWL&@XwC(z(4u+I=r%K%POoh z?r6Kt4h<+dyLwSjVfHNRhqkXrdo^KuuiAh_Vc=BUt$0P0lT%`pB&p9juCr6F|X zBIH1(aFNYm6`4UH%8V7i#Kt;^w}mkNeAh8H!?$b1?&LEzK7}rlYeWGga^wGD>pR1m z+PbavSUBQA4$^FZf`W*GC`C%Z0%D;Tkroi7i%1DABvDc6AR?mlj#3ioJrNK>kzPVg zq=pb61V{o23E%d;dXDeC-#;II#9iiIYpyZo7{lDWD$Tb@Ew<-UOu-0#Gi6tAu-fS} z%5}2E(G7XEwav^9ANREilVmN7T$MGIqe7AzzoOvb6SZj{%0?YUSAjlsS5pA@VmU9X z2Z%>}JF?(LgwPOY1u|`~sZaZ~qj1z;XaU+ z(kSEr7VxK^fWd-yd2G$;BaYFQ;yo1xD(Mo(D)xFurdHo=U>KQFhT~SWx;(nrm6!VU zzebRI2k$wQ4n zHmb5B*GT1gdmpEJS`r?x-~Kt6Xv@qFpYS-4P9V4sR}YZe(Y@3!8hv7N(DZi*CLeIR z%;J;ajxrOFx-$0_@#qY#$)`v1bgiNh`JML6@6y?M{8rK!k*mN%)aw5I#~x|zCGSLg z{r0C$_5|RJfDFfO>ndunEq1(z{?8$h@ml$8!G*}-Z-{!u*NV8j6T%dqI#i8$1MabO zoaVJQx1DJdR#*CW0m1d$uCUZdp)ZpK891ds@7^oSHAliip)VGyC11Mu((_9TO<_)7!L3C zG?W1hhh2&#>|*Bt+mCNO%PQekI<)m~qn8yF5byaq4h!~;4*W-1t4RG_S=;jeQ`Tah zdjFDC=A;MSSeKS?$T*Yf=Ki^5KdTFfYH|MRuirmfls*+W9M{LOO@#Z=nC=EDffpN9 z_SrYCf6PXsQln4}|85#C<4^kDwB%_M7X_wL+T3VaJ`iRz%@yO*K1w=O*cnk>;=(0V zXXi;L&1ROGlqR}`K=^>@$UC5d=By2VZJvp_6TI3jfv#9GcT-R9WxKfV8=vAOgWLh2 zVGy&k3oyH>+Gd8 z=_a?oa6v(`R>Y|rYv1lKot9!`zIjt3(oY}k&-;kc^9W-CyWr4+Q%)NT)9(RGVFv)* z;t@$oU;QDDJOi}QgCFAK$Cr)}Enm}G2+HBrX*OGc3=6LMOORZfzI`zF{x_hNViMDL z#A-cOg2~o}MJ|g52j^N}G0g9o`YtCeoMJC6{n%yIKSt8nO}Lus0Nv{t)C?Q$O8K{E zvj5Z+_NqvttwBH#r=2*wdy=k|efR;gC;H{WWL8LIhOGX%xU1gFfyn653f}10BJsM1 z%7P^}I)z+q1^t}^dxR}6=f9HsW7}HwpnhA+ggoNe=*n14wj=dailGN!F)}Vz=jz+j z#Hwov*d>`9Hc$p@6H;9yW84EFIUY>S}0KS6KK+H8WE@AcyOEukGsUIytWajO*72 zUTwnJ^|1-1*1|$ZDOMX9;oZ6lODJ{HV!Pzg2NuVRc&16j;bPk(jX%yO5@?qzaT7pl zhkh)ab$f=LzVPE=zHBKD6@yKjW&=hrpHDc*Uy-W1y$v8rTGx@z=5V=+{9pa-uvnR6 zr_(@Bp(NO&$Xnq=rUv;{@^v4nmxsm<+daOI8Gb~>YhXTn0Yu=3mv$`f;xD#b%cKEdW!`ee$iHu7w(6@Eau!a?l^#R5-4Tylf8! ze0G?lnjnY0`(q?&0rllhG;Y=4O}mL1pAN3O!pSc8geKwJfP@3sZ)Xoqt~cIzb>x)y zT!aCsHTm)Fg>4`ztCUX`kQWo2Fs}J*b!cAec1}8ADr|cQptzAcKPYZz*@Ne$3{K?# zAh~A&a1Q$lbEBh^HxwCo3bwgKX$AqlBjvmBeYdLr%3qGo#3WX?QG3d29CjpO<1Jj3o%W=blk#p{ zz;e&|jI!e1SooTWNet}U`i=E?;>4R4N-vCoxcq>CqXuLC;oqOi>U?!SFfyP1BJy5w z{IffsE9n}Z86S%S43`J~sIAUv3ydDLev+tEUR+bpI|k|l6$=cuE(<)?Ivlh3FlTI7 zd+~Is(=|mD{_Xt@WA+*D@@8~v`uCi$gakoAfb6K1$7V5FH^KxDiA)%vc4%@x=DE*; zKq1J~OI=#Ek6GRaFW9WfvcKyf#LBF}ctidnm(c%s4eu|vmMtFgCXyEy5FA$GMsyuT zQB#n(a9xA=mFiHwIjJnI?0@SzHebb`ejdbN5dgDct!tT7+aG4box;gu0XCLm=_YP& z1ti=K`(TnLVz=Nc3;9^oO|7mx!r`N!wKsTo^X zymal?o4N&xvG%V6Nhax1gypm9zTDmiB-#8@D-+Wzd;qR~p4Q_h3Jhb4r(3*8@nZ9A zaQa)y;ggHiWa6v`Vts?5_i!~55sVyQwTJJyTvn<#T03Ux(D(hn1X@*0Sw@g_!S~3kE5^|- z3HX&vS#0j1-slH>+Hb-~8UD(fyj#B%&shl2_r1Rq&(SCIUYZI?+qaSbps~M(GTPv*P0(g$cg*_Xhq++Z1hhnLJG4hmS{cmG+EL0!sE_B{Hnayty2-T zSqjFcGeV~{uHM553S02My^~7U+|*MEKZFx>HN)q|g#WECKvQHC#*An8<<9IbwZyc+ zs}3R;cAXXwA~0zbPj$btGM|NJ-ozsqix{V_wj(ZYmP%0TKxQ7vWh?GQdHerWNdFo; z&PYBrU3F-Q9%@^34WO1*&I`$E-D?EK1;dM&N{OC^G`9w;jVD|xnF|-9(d#273Rjj!zx`3zgS!P| z=DhDY;n4wZd?fe`K8^l&48Zpc)bBAmCdt=PsIDdNW!zcs+k4NwlbiOC)mV6Q(lo21 z;;L-i5_nub%VndcGQ3ZT$Y*35IcI5zb6Uya9$|N%`KlovRS28TMFKIj8IS3cfL!?$ zAXh#uN)MGidO0Q{;?7x+MDvoGiHV+0>^lz;~N=Tvs@iUK3t5PG*K@IHV!D1n79zPpt={VTDWXcE-t4e3#8=s*pG_a z*C^z8IOO0p$~=?&GqSkFRsZ>I;2#?|e^hyDR+gVbK-EGQ;4d~_6ZU5}3j&1dem4#U zsoHeZnA#l9m3+Sds*Z{4>cH+5q8Ey_~v z93{CJrV{UkyzcIR%0Ex^vwqM2`^EMaQVWY`hX&(_QEJ=Ztk#wSZ8A>l-jsDmB(gZW zGsG?Zgl9QT1`x=*lRq}h7>5hBzkIq3dsA@V`SQ@PoaGY(?(6?;UyP3#j;$D~J_#m@ z$M9=IoKyFjS{vqw-aKztt`;#U(bRDN4LK)g_hj`UBma1_y;c4b#m5rXZ<`$}hv>2j zxJ>hP@0kgE|K>KmYu8oJn~yBCbSe=-<)1IaNU2_#c=OlWBn1~a?U1j>rO&0*nOQ7X zi;I#MI zV3uO|0@zIUL(&UK-93?$?)`=$du7Gz=yz}jbbul_R#l+8*PE}kVyC9F5>j~Ru1oz3 zY+c*27_o4BozwsQ`rWh;PN1ZHKzv$w(KUj2se7TYN1r%W>!h%ikcb6RVlY>)u3N8w zH}3*8q*gxKW-o57>K=(*5JEreTXQmQ?f+2r3+-d}*5u*GkeEMb?5~NI9LkrZT4xPb zyheIpwfEqLXT%3tA8W*Fw~8csD$Jt_U+R-D2Ju>e1^|n6e`8+BtM?3&cm3~scfh4W znhZoly2C1$#NB1}RdfzVE}lq}HM{x3`@pV5=2k;xNT0|4iZK0xO9!4Y-Y70wkC%n1 z0&d4jxJ+u0opB=a-|rfzsH+rhousnY7aH+JGLZ|wx~J{%?xXjp9DX6{uE+Abi>gm2 zP%(Vk738Oj>75>huiM;k;;9>-c9UjAD`@4t(nk%mm(@pVey`1|l$#sQeXk)3wHl#( zHe-%Z)E*4vX|+(7_P9`EYTSa)g`B%qd?Hp^&7jJg4TI{^AK%wPO&wHy!8#S>zdp(i zo$??}Kl`yp5tG_YT$*0o?xF*BUqDj)`Nn;}d09{L^krArL@o@TFB)IA{9}qeM%N~f z+RyZV#PeHZ_iEQOUfJ3oln}2S6y7lQu@Zz{sqem(lyh#q5VrR4>L5F#IK{Rhk$wzn zb(-nFL)UpL|0IKE&lO^7Zmu(AmH;@NCYC$*Ai)im!0K%PMkS(E5oy61VrY#Mum7)v zx%!_$&0V`P>K??N#WjwP-P7J6?vJpH=!BOz@_8gxB{oyE!*Jo+%g^Sr0+nBBk{{;p zUN+GeFrz9yJCd+?#M_7r;nKR2_#^;ROucnB*fY!1@)&@1WOpW#rT=!R{U)23ytei# z3HS9jt``_++UT(52&mx41HL~C{gm19Wg(HRV5o(nJTwEU@_dIs-WGW!I)gG_% z$OY^{tdj{4^1Ne<$@EF0YR!DvHUPDBE%N8F_9$xi|~>SY%& z-+cW)&SQJ_za~)f8Hwn-fVBGRFER4l_TR%Q0ZnVEF1 zBXZmSlGc+;+kxwtYoit_<-YA|^0Bce%(Q+u;qKw0_tjPuPS;9?SMx55{Nwop6qkTt zTg6;N*!Lo-yE!%Y%fjSp7kaZy$lsq7yGPC!$G_%&Y!&E1J$&F8PQ3QfTtjTp^J=<2 z&R~Dep0VjO@2=I|<@xGBew6=X6vvoF_gLRLf5qI~9O9CGrQL;{8+1p1gr;A^Ql zkL%&(yMG?Py|q7xk*b_b%l%1*O4gi?Y==N96oR#$QQOhLz>tJ0WxNh+4A^pYp4Nx_ z$A0#rBXi^Sf6Qn3?(aj!?{k+_Q5oH6)_*Yd(TO!8r@?oHB7;OCnVMQ3UVnBI8qUzT za`gA-`LKcyXJ0d%cP4DSIL3Y1LMtF#Ke6YwK=iHH)7)lrj_HF#x9%BDy39?7BMpF= z%;zf~4|(E56^uXW8=pffs2;N!TdjNk{?sucC$60Qc$39I9<6Z*v;*nUNRgs z30S@+U4p1CPnIRqmqrCu5Ubx$0e-jp@}kdB8XR8u3H8^A`8-BPJ9XE_tu#=QHwt$) z{rOuisP9a8cD-vM{)dxfk#IH!78axBeqDF?8@?@Ao>8P^Q>xSU1 zQofC?x%I8uM~74!ctMW8KM<>|ctpgzZAA?taE9C#^)xWGM{=GxRlJhus@=A+2-QHzNL6cy}K`ST@)ZUv|HXLj=@5 z$Hg8CiE9QRO6Il!Be*ihyC3cY_N`rERX1M!6&)Bn&`Oift_CuQ-S_%ZF)@`m(^#Qi z#rkw@Ulr7u5pl;Iw4Ts|TDAURIB>y$gNA|?{ehU$qrD=aV;4P zAG#q2$3cDClTr~8E2^0v2PGa9bAH^+@Trm!G^{Xu2?=u6)BowV8aI511-<-86KJv) zJKnPZw=g|l6{!wgV83HBgZLA=?9b{n*;YR}fhM5{-{wYi|Oxrc9y8);=YKmYtgC5} zM|_L?R1DIwLT{$rE4IdG7we-}W`64}MP3D@N47-J6>&=Er(a(mRM*UR0aCqtjYBu{ zJLRAC^f8rS77;EKI)D&{5FU?@)vSFmYwSv z&mNR)0W*m6725-jKb*rwq0_Eq7tWrz4OCo|Y}4u<9{Qu$K-mt$1q7g|Y{EEW8dmdIG`chZz9=~wDb@HlvQ@b#rW8<%}9u7S?^q}!wd~9o$CjkxY zbJuT#&STZVmz*AbV*}tFtFW-}JYSPpf?yu6Lu*W|#p6c-2uE%0CR7W+LMmPQU|})2 zqM_2j3+xo8hiivbRBF09PN;Z?b;O=fqOcfZb}Ev?8l&>{#4V11a4hL_NhML^%767F z5A`_GMhljw6R&zg4;!k)QeP1wVKr|VaYI5k)9*f{84251XH7{kD~38HnCRSx+2To& zS#qhgPlqB1QHL;6Ryukj*Y;-VjI6at#<#`qYd>JFS9)T+mUfW;0{DkC&s7mP7Kr|I zBLxhZwB^b3r{DkZb#NpARu>BXE5Yk3s~GEiF|=I+m^)I1L00bccAT zkuPI*hCj!?e&MTlkSBxhz{TAm(N|A?iMnLB-@$%j$jcwHYbSC?VoSV(L|gc zN?6QM3!ikwx;_bQf4W>b?x7a-M)$^^KlbiFof(+cJ2W)vj!Iz3E<2-$Fb4Xj%hmTZ zwy8)r@YktH26%HuMKetqN*T8DJc_|gmzq27_O-!LUn!$q%lb(1Q>-m$KvDY7BT!g< zi`ET1cL`YpC0H&KDXaX)P{~_!IdQQ+%-+=ES$IkOWNe!2{7=bAoj@mNhxqu`NCIG!ZXSZep~}64#*o{Asgsa+%xrIh{iA`)H8S{shY!d=S}wkZ!c;xv0jrE1W}aQ`nNKyX3xg9>6FR6 zuhx*w9`St(QfUFk^$Z-`pUt#d=J^R{6~uYbkkqEl&kWz-qk)f?p~1|{^-b32P^O=j zZ=yS0t<>+&tT6kZTd846xX5W5EgE3|?!X>6C4^Tr_zuUZU%->V>kzdRKVsFS-`)BRN4eNNT>4?jo@m!1i#Uok!e+vEhR18(!a4So z8@I>6-X|TSsQT#vY8)@(q$qsT&<~To*?zYb3R{au@Y&WdJG~nB^~4-ZhZ&{#u1P!m z$!giz-U`@Z!Tp^nf!x%AhrtDsD(gjMt+K0wjWC>zf2-ID_;7-GuoF2c(S{izAD}ly z+T<-jV#zefHkC`sWJTuLWi(TM#bWCM42Y~pygFU z;}qh!@}z*+rvHu-J!ULY7`@u!MZTbn#i8j5T@X1=c;X389fEY^X+A1`ScLv*28``D zXZo-^F`H#rHe>a^=Fg_)32|9@$4@u2!gK$aFoA}C?n$|dgMz79;WRi_-f@sQsw^4Z z#`qI7El|rv2>NW0imS9s%_onwLHlw`7}%HfOhwPyl}fdh@3tKb>6e*Os68DlN}cCl z^8Q<)n6=pH4?U_0BhmG3deJ%jbKd>fNuEYB6`sYbWg_?}DfQQBt z!)Wp*_riXP?4<06IIV1(GfwyagN8&w(LvMR(VZ9Qw724>sx85W4mxH zH*KS?YNbOoS07%2A_=_qH|E=FtTEa!+~cVXaR?}sbYxpG4QcIpwy~XLx1k+-$UcPoqOKE zR6+ajVEANXr$jMl5vt`%pX$6~K zic@i4{jjww4c`gac=9WXb&uFjxb3N!6L-7dTlY=NuCp3niy40V7L$z4Z-E7I&|c*F z+Xr$E{z7Sxti)6~)ymSy2KSrFZc8DMxY%*l^KBsi3*OS2_465AbWh@Dgj2o6CzRQy zJ`oi1=x9T|rFFubhAYx~JjC1MjwL0)X)gKMy*U3==q}`n&l&c?ItzE~q6jZoD00Mi zpf~)Nd23j`r8bBdUg|_kl)1`y_85{?6=(3t{rcn{rexlf7p$VC4~kAOBuNDi6t&Zt!4Vi<9r z#s$u!BKyO?SPG{Lj;+$0`tkFVF%D?r zyrFgegk|%D=<~#inY2LnQW#(0N70go#)WyOxwqAfG;_ZYZLj(zLtKSuDT8yhE=}L} zSFKdNJ?wsUJj9crRbDY;GYgqs1lbA_b8wOG>1%_59d(@t{82uAs*7C+EpQgnYfB^V z?+IZrc;-NZr|e>+u|aeqhAaM;IPIc)N4!a8k>LbkfZ>K!;qDd;mO;d{jhl3!N-JAJ zyCl}~65Px~qx6UODDFo^-$>|Ssfeba#CMh(&*eR_!J6*+g>Jr=o9lPGW`wqW{O6+L zY|=?w&jXy>6?OZL%z>J_P}}3LZ_e&UQx4RU>`=?QHH4A-T=;4;h@GukIrS zHGJk($A_r?iaC6*nETa6w|S(2U6i?E(b7E>$dAI-ys{ z3n}@Im%aa0;TWM+AkY1IedRi=F#&ecL)~&T^xk*85%Cu^T$ZOE$Tz-w3#@BG3^$L{ z(QTOLZW?+wJu?oY)`kaXSoc^75j~K_{(!5&tOJ#KGI=jvG;5uUb+WKcXL|BVX7@kL zz_+9|AY)mBC+)e%P&Df;(+(%SS4^Cu$Z+%CNA4)4SyHOxdBSvbL#C`CvV4JJwTy19 zlD`{J>zyKZ$!*Fqv{L_6LKoW>>xC5)>j@rK@oG9Cb<<2_OPSjf-Z?%kyn~l(DZy&M z-XZjbZMP?=>$X88$87`d|EYr2Z0(~y{3d=y6Jv$u;+4%$UQX)iE}sp59uq0{wyp`Ocyc0S6)#j17Hn*T6{uwCe?)JNx+F<*8WC(6>KLv;o=%U6 zAfxJ(keoH)88mA}q?u;kz*MAm?yQcK8@4II_+uf%ody ziFlEofYzhb)=t7<#3nU%)%F)Mp}8pVJTY+1us)whD?u-x!txXI_{&n5m^+hn(Hvi# zQYSq;MIN0c;B8iN$$Wv|MdWjtHq_5yu1lb$-IlZG*7{fvuw_nDP0qFo@ErzXn|l7L z!Q+~(yvnRC3N&%>E7=%WKACFiH4!TPjt3 zxKQ1aG3jr+MA6)?P7Cai&W|Qg&}3vPg%G^1N6qBrzy~3hkscM69;rS{CD_(T@b;T4 zJKG0mHU`r9{3l_~*6caC7F!$I=#f|3yc>F+fmSI&n;%>Y*vPt-iCWy2u)3OT-O>=X z%M&i4u}(6G!lrRHW~Pfh5ybhF0ewx_Hs@6*L4X&uVd%#Os?^k)wd@Hxg%ERf7`h7% za<%rQ`plG@7{scrRD*!u9Ct9-W_T}t%8wRV&)1xZy7J`v3u+HzKG`$M06r}@Q%8W= z`QZ13YI-ha?<|^QPNcI6Wt6dUfuv4sH*Ldtlje@DRN>U(Y(X0Wt;J&aY{4WIjU!SEfI6X+-B=TG3J-BSSP1`glw6TWGL{F1qoN} zqFH)KN7A5h+kG=6kXg;<$-u2`dDgw}%b@vV4mkOjQ^)*Kkqm(hF~LA4MXXnCK$(B> z25petWgQIM+k!((;2;q}inKivGKl?gBsqFx^`LC9--O@z1+|{7CZeYQSF-T3IDASN zF5j)n`aoT64z({CiJaj*5w_l4cd}a}cUTcy}QP1C6I^(-hDjv*$x9njYipCPJ^y~519e6&^^~TgzHzaSfcuq zO-tTB+s!87mS_C>C)CL7p37_z^tuh^Z|779eKYc9c8uz|7`2tnE5wQQR)%2d&%)kJ zdn=|)pM>_B@uNK{xfJd}NUEpOG5Mjow-s}>p^J9s)aIe^$BWiuB3#XII{FB${cHg4 zaqbMOGIxcI6Q?f^k#03=xF+G_K@y6oP+~kOzSv;ZbLOe!PwnoW5l)d4q@Eqv4xR87#=xs_Y|yiB5?hi9YxGU3F#GG3OvHem@|q^% zf3}b>+1c~)0&azAH>Rrmv)$Xq_jvaC)`*EM;kg&;+Mq))3FDq>~PnyDKz5??McKtoJtTFRe)gxxxDSl%lhcECM9>QqQN`Y-OrtQ{l<|cF1$7J~% z4hKB8#9y7GsNh`tv9WtAMUO_;U3p&0EYaN+CniU|cmmAn=RIxupb4P5zd)g5-~bh9 zY1r~5$i6vFrT{uoP)@Xo(Zcm1S718Na5EdRn(1{;^(E;Ocy=uves_Duc1MaTLkXnZ z*Y-Y*fD8$$g}Cd5rTg~ZMvytW##~VDS~2+Ml>Ak>+!@>LX`(+EI{zV7_jUd*n6L;g zu$@Oa*!eH40cbhSb>ni6Ds=m@9wzG6?jY{|_(7kviGUfuu(Sd@KMu$mF)4xIl}i7% zv+;B5i;eM5fL=k`sZp;z?#XPJvBv4>o(j^!r)1%{ze(hsgbA83f*i>sx?#Z0hHm(k z);g%0^44uNtz>Hlq(-icj$F@5n%W;F9jtf!ejch^eqo<5SU}ju*DJ-J^U@)mF2`Pj zPB)7&{i*4g)$~ea!+OkQ>JqQU=A;fM_dK05%nnScKE$EauE$8|R}un=^t_LsLbo?( zc)tQ*fe2@tccp#>NrU941dYwVzfM(fO)Ky;4ui9nt6Ke$n8ztg1`st@OLjS=4efrI ztwW{!yt4pq*B{*lrOV>+m4Yb`!i*1LWoSgPqZ-7L%^!uWfg;wS7`p+J$HD=h(d92m zQyS0E<)MLwE4&j{V&+dUNmN7TS-tFhR8KII-{Iso-M?N&wsup+p~t^q|Lx>^wL=Bt zf$3A8R5^(xW}NM=3w3jRJr=Tzsu<~y@Xg+4oqB!Pdcot{0ukwcV-oT6&Z&WZ6RW9| zsD$&<>gIAmL7FxQtVosTr1H?OF^GWcpVrk~{Z8P%R5npgtzDc@J~LF3Flj)$FqctH z-!}vjsP|M7qLui`x!?q9M88jx9KCJFL)T6=lxZ_tbJI8u%N!OZ68NP2XP&VrvH76o zg-7w7Vvfzs^lOVsn$rlVUp)>L@(A*tlEr9!%%~`rC-32%(Bxot^}~9utQU3pGI>HV z`L{PtH>67rg+4>%{ag;>+wwaY;*<-FClk=F&QD$qD0NGk9ADtO;`MqB$t7pUDSQ=r zD--Ya;J8VLtu`KtTu*G#gHaPM6fE5mL%3hekJdI&nHvmPCgTChm?|trO({P$zwAGu z#7U`b5|i84r6WQsPo?DZD5bkG2#B3c_E-Mc2_l-@5W>aVnt3C1dL&;HBox`QLLN@8 zz{40eqf~`x_!uca79m9%JC62YOJI2s1~v=W6F!elT$y@NqWSZ9^(DR|zunAyDzF?E z<6mOaoYi#$cF|ge-h{`YQ?tIn9^e9>VA?xjP3jTH&o6@v@aA;GT-FWhv+c|~+YOPe z100K6kTa;j<>S-NcxH^mE41q+<_4sz&7*2^tvWrB(7=cx7*yy#xt;6|_U-dQ6G8p0 zY3=R#DQh{~H51UDNeAITW^Uu<^uX?Jhz3!mXFPCOq>4aqWA(60QYo7Lux8ragx0dTU5iypw)>_H=6w~+kAby>YmaN?aDRKxMH$@1~SWDOn{A82;R-V$^x34 zV}+J*&Lo1d$_Q4i_ZSZ#kHdio#R;#OnkoW(dkrtr#S1H<$<7^w)K5iw zMgZ^?4T_(Mp*`Hrl|wiJ7*C18HsZ#sQ$Jd7Y&wD3z2kiugoL1}Ys#?+GIiF}QG-~5 z+ztsCxc(zyy$7?pN`%wy&v_4-rFY>6UTozig5Q}{=4diZX=`hVwn}Jp-0hzy+V5PA zR{C#2h2!;QxMSVJzBS5O0Y@k`<)Jfp7#PkN6J}4iTr*0^SQNZ){(^Up&~o|GDEyV3EC=d2rYpKs{T8;yx&evSSf+ zDJsxDq9K!s=#7^FoP*#i`Y9NqIpPAEUF_M~z`%>-rv(M2K=E5MZ<$gYjHa0KUl0<6 zyW2o@>+R;6>X$@;&zh9L9?jr%=rqu;KHb^+d7w=Tp8Eo^IF82-hP^3u!+vcsk!#q`dNKden59INCUe*X7A-F7%B8wY+!%Zq7r4P4z6}m!xBYhf)GzsiJz9V z5DUFG`VeBtH}jsbsI@Gl+6;mvyc7J_3lqn-SkTVCQPvM+6PwOy7i+mtHL?97xOMO- z2ZdnSw)CLai8H|AP_&uFW{1u&$;il9#8Pvt+hH~yx)Q##j@YrC$p^19e{^xvM|-YF zbYGeIMs4WX$uCTM4aw^=-D%lb(`*^XQ+>RqUJ6H>%#wQ4^uiGvyc$RH)8VarC>UX9 z-E;a)B3d2H2GD-sm}zVf|HoS0p&g5z&}PItTlV6R6)qCDT48%~=)tt8EBs}PWYwc3lADyd=)=KSqcfdks zh{4!;j0W>PaLD*FvcnF5pL(s@Y|?cn>7m#wDbCKF*DHwr+frB%8M#5h%41Jl_Dju= z)*71o*?fEt#VML2R^Gh#CeAUPU(Ru3&E@BMnWKg33UMn$5{!3DF?9v{^4tLZVt;6t z1MYOK?TI)k7WWVv_L7{o>K@Usq=_q`vL+U-t;c#VL2~j@VlM=GHTh1#xWA`|ecHy5 zIAaUzEXeBjM(V+z%Rb>)M@qv{?GNR6gUp~~6Ld?Vqf0@0?-?yD@OYN9Z;QLwl^*1$ zNUp_eXuIX71^YI=YzA(krxwK5F3}s2eebs;5Wh~h7u_{pi^TCdyH~5tb$8NO4XNb7 z3gVbX3$j%JQ#EEf*2dKaM0&+|whl|IsU~&^l}FW&wJ0B<83pims@3`Po8(5q-FsI( ze{sc523=<~e2b%kKI4u}3};l@4hRt!gGA)=zk#0MVCH`3$%fP%jis*4>cG-+?I7nM z_s9YNeG6tKtDm8CgSmg8#i#ixl*SKe)>FSM>rn#ZoKX5{bCU>+a0?9`w{R&hTBm}T z&qbQi3T~Kr<+uy^6|ZUdRbdewu^dhh3w{XB-0nvf5-0va7e^jR7F?V-ZX&)0_clY8 z`xTWk)D0O)!gGUW)HKOHe$?|m$c#MU<=|FMjZn#F?XyQ1i^7=JLa?t*9mgWl@gGbu zBj^6LN?iHJH`X4|&mU9ghaWNZ|IO^di|9T>? zm^jMcD3H~masT2!7gUx9xKCxvoHy7rDs3?QD$7Rq!}__rddtSzHBw{ufjV#qp&-Q7 zfx8zXWX+)o>1m7BSsl>R4WgT(lVT|q4!5%A-`7TUGEjsj~FmVL>Khm zsuk7+Yp$J3%$-D8U^KrDW@JGF&e>4z_ZSBEELzrcwT4j5bTRwxe;riI=FQ?3&fU?Q zoxJ22SSL9``ej%3G|&XO)UmQ&iVAilo*p|fsCJC(~dpt{8F8#_*jcT2Kj;I zdoC)+PD$vO5u3|>t7yqN(bSHlIvT^qqT*Fmh0#ZYQeJtFI|X(&*Xmb{(87N8=LQ1z z5h^aABZCwBKfiPdF}k2+znDZ4C!DE})41|4D(mSO8GaKb{9w>^m@uJYo+*<^i@go0j~2&c@+VaG&7?^~$HOUIN9FgCj?L5CH!1_(S(+ZJvlTPx zigcbxKF;))b2U)57!x1T%x1XP)fi;s;tbLg#j;ZTenBJOVxK=oc~Co^q@OiEf-JH$ zAtqfXR6%+C5Wrs}yfrZu6`K$XBj{JtzAU+yGnN_L6Aj9fny)EAW7-;`sL!y^+P|t| z{%-TIhpx%@v{N#XqD#TN_+(%iRjO?ENk#by&P_%aHL;k%z)t0PlD!q~%vFL0T1MQ4>RhwJtkSbz6zid%~ zWb|qTI~XCtkDVY_t(Jqjcw}ABdM8BQcd8FQg5Z)EUh2Zh>mE9mP!?atlKfFPGi&P1laqbFT?*3 zB>w2e{HDhqyB3dD_{uNOk@(4xZB}Ncq%2pzhJ0NAn5r)-dh8Ir#VeNznLSk}Mi%EC zt!u-QL61BmSUBCRpYQNXk*k}vpe#D@qrrzligj{Ckl{*T#dSv5r&HSHyIoDx5w1NO z(hRCf#f6LF6d6k7%b@!!Y9HQ7(3ltT#Vcyr1>I-f|MOXo4m_+Wb%dl#&3&Oa#X#GT z429WZL%1VWBCoeTHdw;A!FHUD?eO9K(jepHsC>Wm?JOB)z^drI)QH=kqw4v9Qk-=p z{GWn&vqnr1G5I?!U|%P)*Q$BaX11}KH<-mve*cHxK00Jc^lZ(E9m12Oc5UsHroS}{hw`Z*F^_uP1!w<_Tf7+S#9~<5_wD^$3Dld$fSFwQ^vwL z_XTLYxlUTN=eb_8eTiO4#<{#Z!WT}98*F#>F>^26id^T>fz&6-{wn)#uak^Af>y)o zV{&Ct6pMsC$4RlXZrylT`>(uyw{9==viD6)wsVhu+mYFB{F$Hqvo^-;cEBY#jumSJ&Yf9L~>i%N-MfxI^|lV;nS5fWSKe= zSoe0lL55reZvj4OOyiL|#msMVGgBt(pRY&FAVSd$dGBqPR)FqI}|CZlJvwUbE^-IhFP&N)? z-TGT4LEX(@8QWo%Btr(zwPqwAp}t%??bEt~0=l#!>S&c@3zyYrN`UHD`s0s$!qd8!In_VRm!iDaMDvL+g~|krXgUPW-ha-PcV_HCHAZ8Fo4qOJOE)&j9!MI zx>y=sEBv#Lp;4i8wI7stJb*OtEf-i2!YKI38TQ@9U-5x<^bWg;%Zo~RyR1b>=(vyF z{u+B%nkV_T@^YBy&n)`f*tQdXcQ(qq%EYYXquAsgx@_K8a5g=1Iz-uz@D6eOSJ}IB zqs;wukHg;a&(95Rom&g{;cZl$wRvngc2l&#yP#WYzm^3YDGuiqax)~Za4dR_m zl&1}Dv?zkWe?Qe zfArN)M|YIBtn_$bS0sM@%Os^HqTb)h&cW#C6}_+UjyK?e6^`bBniTOi$ZxeJC|?_A zhJfQ(9i2AF8Z`{GXg^#s$y*jC{VDeSA3i%z#|~7K%s^YF-Rj`#`oF!t#b&dv>D_*# zPSYWTPFhLF%GAJYk{zR9EuleKz&(rx63_b!`mM!E?IS;^LhMl{iP&IY;!*Ns(wbp| zM15Ln{z!lMZ+oNsa$eL<<}~A~^#D;dkF5-Ivq`uBN8=fPP2`U>rxmk!{V>I2f^x15 zyNUcZm^}EaXbZJl<5tzWLFm7~a+$XgG)wQ&?%ZV^SY~NjdW`yh|Cc)2mdC6KsrDv6 zskpf1xK-=bN$fP_;-d#LEacT-3w0o@vpY9h#M8d+*i8bKxBWL(vDArRGQgOQYD?Bv zRT~~vBsq(14pZM+$w`Q9fVDLs$WIX7MTtj;8?3|R4EHUGCb3QjX=!+@oT?Z4^cu9Z zy>a~cyMM1vajvsqw}HAlUEfD9j(m(-;N{rQH!v79TDF24Zh?Bt!br(4w{Gl*F1rHF z7Q3^c8d>zpby!pGQJ;-2M&$n5zt!F&)1-I?{A#o#Sz=Ayl9+p9ta($l5;`cXhL$P2 zw;#D}X+knndM9cUAr==~lsL0d0SmN%YJvBnN>w!)$f@MMN3q&28UYvH=BdKG}e$Cc;WA7mgnZPfx{~2D9G257;QWF3rqX5 zBt0^WPaZom=;PA&ceVK&cd_nLR(%o7s1h^+N{D0at)+0OZl104lsrb(2DZh0q|Wz2 zy{tCuY=b83!NCpu2d`(p?TUfLn@&tsuRMI^3BUnmRrT zQx;A<$fFi$cK#k#p&LAE5Ai_-lOkU(s)K&9;1_M@?EI#o?&p^7?Lrofl{q=~I!Z)1 z-bOXn z3Qf-Ak#IR#RPT{+-LLg(zJ)P4I9Pp5U#Mg}TeZ%sokkWpCIFW>nvz{1CUEG+il8SnEDI6g&#Sh&__5|- zvRY4Jdw?0L#(i&bQZNog8e_+XZOW%B?f|42q5qDxF=~r4-#mG**mC{##D?SNZ@{_4 z)vhmLGrsfLIrAHz$kEy~3IF%NtV>R=5_;JVKY`RT3H@#J{kXra>qBYFvw_)kUM$V8 zOv-~RTxQI8;GqL`OHW4y0+k#_d0Bk)x1n|mE@;RY!o+hfW21LF68Gf`a@8E;_2v%j zbqS7M{ww0+5S;HzmsTkJ(LMSBTCcuZPqv4Jogh8LqLS?tBJgdbm3Q9{0GEVAcZ>Ee z7wBnuI^Pk^rG=S}U>~c(W^um(S9;j=$|Ze4McZzpIpN4_c&rYh4d1Hv42w?|8E6=_ zygG3Y61+0{jlOr+sN$jqQJbJH3Cr+1fr#x__VULszRKRtoPX&FmY!5@SDC9=2bTv=2=(vaVI3tcN-R)_A6G++5@q57F5s=&YQt=R znYklir=E$8=Rur_ED{hk@xbI&5ub{`eb-X8va>+Oqg7g`4O zpsOPXH-7phTz-)wZxTqLc}Qc45jJQ{;iN$@)Y${T!vw2MqBCj>!1Y@{CGuHNmBO$g zK)JLasGTXNV%!RbK?KdP;p6s=IeTBg%LyM*Da?$-j6F89@-;bh8Fh ze_Thguh=f`YW_aI&lc!u@WD)<;KN@%^MJmq4G7W~VdlA$Y#><;Z{2Ojy3hfZ{ucTU zLfBTe5Y(c?sufAwy@~t-Ur_{eZV~40K1ml&{eD5+?$2RX4xTan#@Ad z|2#crX}pDTh}BC^a?5(m1QhgK18i|9(^dxyk7&ssMzeXP<|C9BTxj!`4IhgNDS;t@ z?RlQD)vrkpz}o8bAZ?J)FDIL-02qD5?+h{8hJJN|fxpwbDw1!>oHe;iXz=3iTkmpL zb3Zm7@FtsxzqNHj@UxBHdbY;>0lc1T85+As`#m^=p;h4^NvApCkX`}4Sw{ef?(CV-0fuOD;hk|1;GY*pR%>4SDZ*ji_Jx+Vf)0Z&FRd7SXg zogBeeuAw6Q&wya&eH z%@p_Iv(yM7dgdf9R_eaKnM&UkCt#Iqws3_=4|g`)#Y-57F=o@bkqi=2j_kNMnLKPl z`C83G{}|5r#geVMB=KiIvcXxkGejw>7ptD)K;-nD{L2IX%Oo9Bw-z8`|znJlgx zRH%v|bO|ch!z6HDJd7+1Ms^s}H3Q3*ocO;!uY}OeUX!d+sA@V=8MDI=AAN#6em83w zp3}Sj(aq)MlXrxX`pat%IXBYQE}x-pqE;iMn#u6%m>TL~giAN(*KwPw)|YQIo%h;; zHto4R^08t@eVlZrbXadKnM$4g}`0(PYehl4BML)w9ER5@5 zwO`=QJxGF1{A;Qsxa@4RHLUw$+}-h;b6V8!AM zJV*iZ9W^yU`=zO6+4x+L*rMeK^IVTs?{?@Sg=6cs(Yec+P@gu-#V@Rq`1{mL=CkC% z81@~PgH3{laqnLnE0)nvkXjz$45 z?t9mXSl{IOCKtUdNL5!;_LqJTE#$-Wo@58M$q$n1LjCfEEX^dzhoDCh?L5A(H2C}8 z&uIM;GA?w7K@Hw9(P2%*t0p7d<>4LC1c*2MRcpQvVaK~csHouQV0IqF>6&1fxB~Mi z4^?ZF0Ve%WSbe8HL+nJW*L!IataqJQ#D2xbXV=e;ZOosW@9xSU4Cck#*m~*!e6_nR zsar&Mwq?;uyeRxdPglSh_0>ai{oOyeZmG^wyM(||vEP`-h`J!om?0#k6bf{RX zJ~QzHdtsMO1CmLOADbVqEBu1OFLaYhi0NJeuEU_&+W&V--%nAT2{)NFT z;59h{pHf1`ZWd6DcJeL(Z|z;Kz2ZQ+PqHp{H*HDsCf(HF{O$mG=KChWSAPw~QBVO{ z%3jgMx*SdK&>0>1jV2cK5~rF4u}#0<0Fx#9@Kq9WtP{ zSEo>GlR}>7z$`-g z!@n>XtCP_`OqY*+k?W^#G=0K1H9H349&s7}wO0YrPrqSBjkQ)|YF8f>qR$5S_Jc;g zjdt+)DpDO(Y((yygEO@)tJAfMgC!jfZ7Gz%7BB5cgZogc*Lu~o znvCpCzxF2a+Ji2*$A+P+SwMqF)nQqSv*h%<`jIw&SOsM+p9}MM;4v?|ER1GO_+Bg1 z1g6!H#%>I!^a57>39}=D_~Eq>bntVg_BKkW9Svt?*)A5Zu;cm9B`=K{YrFxfe9uRK{$5Cd~_(r6bpyLwK2o3)#< z@m`gVvAd>-{xQ?$_1i%m6gKoAxZh>Y-00s;!6Uy{eQe4@MWIqGM{0)qc2#%q!k zWbT-xPP8Yf(Ee$V98}sY3wQ6URofU+I^kOjoV@2-YtrF3YV5BHy5)N(yH+L|yV>xR z4zKUMFlw&Cl>0s}*Wmegq>ZXlrIe{LEjQbKkO1*x19an(zed4PcNjClR2=$*UeBEf zQAT8Ed?uqc)qd&>u_G!#)OaBnzL{_j)CSdtt~OWyj{F)+rFf{FX@!(smJqqyHk)S89dN>kSZe1I2tom2 zY`*@2PQL5c_(SKrij(ij7!Yj`d8#5hBO8|sf>C3x(b*q!5FLd-GDN5%;^gn!@BR0H z%26GhgUKED=7ghmlNy*=-<&|m)Nj&bL2t+1SGS=G{!M8u3q)$IW>V(GGFSEeZGMQ6 zk!BFTSG&ln+4KmQIQeH_xk7Y31PqV;83xSft}NGv&~-$7bKt$E6~8a7VKR^}YqBnC z$Y1DFN`~f+Z#aa`c75T)B@QU_Mh`n%zFZxdpZu6{2mLAWL%fS*F_)Gwjl~aD$%YRx zYW0>2l(jG9`-Smed<&~o>c|3>w4Jv;&7cH&%=dB(j)_o*l+;b3YpT}XWsxy1a*tiM zqZ72}JQa3XWX%8Zx*;b6^izS_`LN)w{PAN8rz$J$VP5MGg-{fRJKzYw`t&iZX8q#8 ziGhBfk)q3YKoB&U(<9;T6pHVzkWZHeKlfn6GCedPH5656rr>9VJ^lwimA=%{51o2| z2`sziq?C8D+j%v$(r&)DY~r5jRu^&EDqt6?i-?%`CTCPjo{5aRG-{s(#YWahab8oO+MFSn=cj;tvMD@G2?}}fS^7{ zoA2a1F#GS@5El)a{AV5W>aMXZ;eX@{*2YV$rT?nuNK$0-?<>koQcs!N=qzzdCfr4G z#YjG2T{g!WuqvvxUb^1h{xi(_$$T@t?tpr@`fy&8`umg$T92=R|H+0vxm0@@vzJVm)VWns}q<_$f z0hfc)=4&siv;P1xHSVu`q)ShfB72`?)qAJPT%uk=*3F__3jGGvF2W=Lhx>NF69v#Q>|+%~87 z_xZ)>mq7Tsuit@s03Y}Z?A%9Ezir0H4nhc#u?;jIRKaLTM+vyi;V<~Q(QhW^<|c4ooM!oZ&gQ>fqYE6iHxlzEn9-SgCXcuk=lzyPIVP?}HXvEUxkTNx%^q5klS?&Xg6&he(isn>Q7hlv3AfB9|=^g6To z;Oknye$=aR<-JvLnB_|ez{(KH|1wI7sKnoActvM;Cj@7R^US-uC_zr};_eB!@*TdN zEo;4U54Jj~w14g2cUe;S-^q9zr$Vim#_zL4cmtRGrnD^*PtAoGH9!qgiCl8%Lc13J zVwWa@SZ$&|rUPPk8u0*VVLn2OmJ2i*cNZ8-R{ZVEnDMB^NQRz22XJ6z(uzoPBeq{f z5h30yrw3DMaXt=<_4{$ zh$8~uQ8O&j@`6MBfJWMjy{2Ro$!3dj792p` zQ>nf4PeTskJpr_}SxOhd{<{V&3l9#!mD4xlP2lHjhnXo!n*Uwhk(ws=`TlGO?e6Cj z1~CL`zpu@GlBcW;B3{(c>-$g2SC0*CT>&{}Q4R&qob0T$ZXY#6%w2tm6KF&ZzIeNB>py%z&bF}|O)h093uIH1=2e}}@ z*SH5;;c4Ej9$r19<;WqrKeIsXKTo5oEqykg`&HpAda+lI|23&#Q-d`^;*_mm*5OK}B0{oUp02sC zhuxx=7eku7hp3_^hosQn9G?`baxg?6>uVOAUf=fG6GgA`WP29Z9mLC*5cqgO1`KXQ zEy;nFor73u4QQIcccFUy-TAm1A&^v(M{&z!$ol)2ndr(5fA)c7y46p#109R9`^9mD@t(Y5j^2Y0z zMlxq`n)XB8{%_6M)M)cM`g%M58UOndb&HW|{X$3`oPBxzMLx&E)-k|I+!<;(S)EMY z0s@y#$6^n5OKlicq!w?#A_NNjQ93zr)GNhj|D;UNI+c)wM10Le`#}#|ocdR2Kah{q zJtNvxt9F5#bcd==h-Yw2KY)k;Sp^SZ+SJR6@&haK9w={E!V z^g@^6Ll{*L@Ms@!UDhZ~$7sA6TYE~6$|lLtiE1Ao@Q!ZBAC$%7=%-PO0H21yg>7?| z-x*4l_{E=6VUsF*Td#Gwq@|9SG?qmO+V;XH9Xcfnpzd66QWEhuP1;fVY8iKg*p?oW zm1-x)*w=^~Uq$;{s>AJVusdN=e2l*Uo)WIVs$!NF&p!Dwc#QVV6IsJ#vMw)q(QiKC z0SolWWIRLaX&*+d^^XzR|%B9|{tlkFH)f*^;Fx>V2Y}LlCDw z69d(LZ>y_GS#Hl=w4Y27c05k`x9|GoSz74HppSkb?KDJuVZGb_+_wFi)e>(Uz`-n#(W4CA>Bk*o9~gju5Y>(U-`lXxc=~D=$zA> zZ@md3$)Us}q~O`=)P=HGg$Q8}FK7@;G+aSE=NgvX>@JA+kJ}(A>37Arp$b<`O{=-z z(~_9gD)qd0{7pm(s}ENQ-fzOD9M7I}jmjsjGC3Tbyaus{GL>(F7;@MhbwAwU1HV`; z%M}$9Mrk(ltd>zRIkg!$M{|AU$K(m5f#PK2WZOAfpmF@-#7!)fqpa(x=aW3rJbvW{ z77xD;(nhNkvoEXj!mx6G^ML(j58RDPFCre{5UB+}x_KCre@7CK^4z=3J~i13z3mu!j56v z^3r*!acbh+qXOy7sN?pgM^5MjnCVVKyDyWy1ei%te}MlP^s093Ffn`m#J17gEjaI9 zn|hH+gFPHo1Nql#Sr+t+WD)`?w@68HGEA1ONg)tfN!W%e|~c#U|gM!!0iS{l1nAU_%@wI{FT3d|oB zB&C0MVG*RTUm6B9N&m@L60a^1oFt2Z%#JSanMpjHC(1>-81G?m%ByO2w+$Vp=AB=Y zv&EudN6kKkGpv@1Sw6FsQ>ZOc!FDI&Fi_N^wh&ABwk6JUgq6^Hr# zauOp$~@Ev+HjN+xz_&D%V)5c@wZD!wsg(VO3Benpb~-PqGv)N<7!4ZQL} zb#XxJTZsbP;Y}|by(8q;Qa0`-9h@u%KiH|-?W?IMdIkQ#j3<&&%=)6-1bdqw@4wi7 zb~G~`fiS6v?H4vrnDvLG$s76M8-DH7P&s4n0c-xI68!=>bwe=M9_KFrb84gWHA%xH zn3&<;wp-&}ShDr03NKL0lp0T`U&hYuKF$=1Ckew}+DPFoj9WW*S)3|ZV4hC^(Hfe7 z$6`pyAm@HR`K1$$}`e#1&9?o|Q999P5hPH|R4628~_uQ~BVT z2hr0Rc8G3}`9?jS)+I>bTTuT3lH6t%23AbS{o1CfLR?^`1E*LRm#vOIuCBxeJ~I85 zaIuIQtrc(+7484tqOXJ1MNU^p!TKRCpx9y&CQgc3{|8h0&l5O|`>K5UU!;M{)f3!J z0SV(JEk-wp8R5shP{hJ^Qq zjFsumi~)Z1ywNlqJWIdI?2tnKcUuPgZZO<%B?j~brqMIoBMeUF{otprG2FR)XxX{y z4U_!%b!^7Ew_1OQyPSMhRn$vWbS;%14Vj4a{#F{%y3Jnt7dk5|J!1kw0R}c366V}A z$HE$vI?5c)P3ufP$aEX05lUY9Rzo<%syy%gYKKLIjXf;`LuQ3?p~95RWWpiqamXM(koG0($0=BPI?1* zEvm>B?Ly(%>U^z_n-C|XQ@fmhj=V*5DDwkH6!(9q{Y^(9zujS8hyo-E|HBL`tFTbR z)|6fsW=Ou?uVy-|W~d|TMHmY4kWerNw949IIA;Ymq-9{d>^cwF`BzsSA}J=?a%%DE&BQ<&sZaH7PhNqKQEJSdx1ZN z&2tO|=z^$&SN_hE%(sCC^TJ>2#nE2ZUIY#q`U?44PL6K*mECgXN`l<;bLrc(RFio{ zeT^JH|4wsstdBL;z)FnSe}2Sby2q#-}%qBn4_PGF(c>nNUytAcHaHhEI|t zT+ElPPjk4edIHDCuyN64kk{(`08PFHtvMrk&x(tr%%hMZuZLR|kl(P(a*|14d(;lI{!Z|_pA~Kwk+tr5+opXZ zNE0FM!5L&w0g^d`6%gN;!o6isWJj|nDf8D1^`yLYop1A85A4cUl0tvsh<)i}zEd4j z=sp;gha9`mkIJ^_D~YIiK8y2Qk8^v|y>|;~m0}|wS{3LA?Wr%rc8TrXpmve13 z+bh{g&PfLd*kHx%6Scp{r67ioE_C`APr)*8=$k-(QIjSs(U-=qf{Fby`8gU1wb=2t zV@^7P>|#5L#@LnOa2|OwWdQ4y)b9^Gbq~NvFIK(;?T*&5b5Y#+IVs5M^#uw4D#EK|?jtO>@XAay4bms{e%C~3zc_;8Ivu(ysi}Fb$p=j@) z_kpU04;YXCBwNO}S{-bEFtgX~{2wle#>w>bf-PNtHD$E<%@=Okf{??q^F*T195m>~hoI(G**8xw)^CP8Hv2@jE z*Z{*F=CxJy6Xr&*Ak71eN_4BYv{7FJFNAHyuU!4TC^QaLL5u#P@mE}A3VEO#GG6Sw zF6KNxfC4VQsjthkC+XYbR#Zq5+;agiCWDHruKZbho%?4u`)&s^2+L)nB6u>MI#uo<!pW^9R(b^Q~g@h!=6l8#>yel~l}HC_Qi20vipUO`2IKg)#1jsFj&{yk%KCV9b- zjhON7uI`Q}X4X$b|4serr$|mFzjM-}W_EWZjCng`mXqv?k~~L03O6nTR+Ysz^H+N- z5{!v5lB3!K^BjXhc=seQ z7H^XUd}JzQim?t2wQ4{#k$@c$Ug6$NlhI zwa?TNloKHKyJx+aZI{kMW#O6pR0{-i!$V%em~QM-NmHvsr&0}w$etd$bi()IWix|R9CtZO{AON4@77TGy9Oke-g&1%6sbXF2YCqf%IkO0__XeI3 z*3fO0{S|rjq}jEdo_SR5UFf!=t;@HFPAOa*DGoRR6Q>5KOOQJ^Mzcw6<&%*=JS!4> zqHFHW4J?U5y(xYd)ia4Tt5#Gz%7oZ*861Ee9K&TmEGu2B#Mu znO3Ji=AHkME^2Z_UI&7^Fc3B~$?O|9;?ZJg#N^neEvVDvb@cyKSp8s%FY_{z>C5OT zF><^&+qzj%*H}vJdq(;B-wKMJ50aQ#26KU zY-^=5Hc6)Tz_A1RBf=^TtM^?Zx%pdZX8!~Z(N5=MiAA26)5nh=Z2e6sX-V;$ED=IR zyUI`}wA&BU$c-u`mf4MTNo_*Fd8o>8U@MO?}=6 z7^&7Ps3Y$#)>N(Zb4^Tm0yp%3ajGv~oO~CeXxj%;o)l>3(@UW(eC*0j)~ZwVEU1g8 zer6^vTMPmD3T(@Ib7gYVM{BV)+qZ=wKDNq^5uwHut7=P}nrHd!101zk?@#h+?^yF| zJKeOZ+b&L$@U%m*$Q!Nf4JaAZ_`U%I;@4K@-qq-D+rDL{!5wHLP!2f@H3V@oON)-R zejDq!Fy@&PU|!VgKn3`%;ko|I=_4Er%`{eb8`}oQ=@TfypT{#uef%sv>&KK|fu>{@<8B(S%+ln=;81o0;)BS>s zt;N=MbgA19vvbfI)7@MM%`GVEIK8Ie<8L~5Vc{b?VB24}d2C+;5;WirtaGxna*Arm z&OdvvWBZ^MzosG2xle*pL2qyFpO=b%$`SumPc9e z&UK+93R7H7fS_&mpnVd0cb%HEOpdZsojt|uV|68a{r~=Re>19P2(ULz+85e~?FnAF zR^wZnvw!zgHtD!@!H>xU&q)nF(a)_*Md2>wdexP4|-LC(= zxmZH9xAra;wy(Ng1rAu(Ks<3T-64szulJ3(TElb^qz9Bqz93>c7^A6#zA)mx6Qj4jGf7|n{xR$1-JdU zTGT#m3vq9EZ!Bm-gQh{>UcZ_1a^wFV>t8dlZy2=!U`#78CiVm)8AlaBV}0K3Ny^vg ze9%2UdHUf-T*EoC7vLO!c%m{6ws7$cP{9(i^Ap`-1&ZVMm@7t0=i!Y zM}HOQsfgKD3Bm`_X4~X_EZpr#mH?|ITbbD%0b>UCI5 zMmXcD7iI%Zr$=iAIl&;a!-&vs=rbH_T6vbs!=L~S`Ifokyu^^eY(2tp;k?0HR0s*Z z00X!zWTB~pcm%Ks?TSHBP?Wwnd zrtL6fW}j`1?N;2j(0*&sGA!!GzFnW8-~XTa|7#K&;Mv{XdCYztV*$LcF;_Q(SGGij z%(*C1X?8A!N#R(e;v(wC(q!;vhqsloa1?qCK8FyeEAIy#98)=h#w<1Ndk^l$lU}U4 zl<&1uNd6iR=fGnan8wa*(AxfXchDAi8;dpDU%B%6e{aD*X4%(X55;RR%!6k4>6q-G zYh-go@`RTy0Fmy`K0IQ-Nl!-|U5>E=`w+&u_UQW}sW^hA*ZE!LTnHwP9*WTKiS<`@ z4$9wlxn^lniupDU9!t4i8-z;>1_P&ZCOWnX_Xjn0G4$3TB5Y58f0eY~b*1LNeNWD+ zD-at*_GVy$=s}*@V2zzb%z@P$#vb3@y~O#hG3mW%6-+w~hdaCNOubx((cha4$D$QU zQ=XmP*rbW$3(=lTMeQw;$o(LhZ{Fv3W7%3Q?iH&VvF&Jm0lhv9u-%-%$p zyGa^}b&bC0@{uB(7|7Y|ZK>99aJ3T{fVRQy_0%35lk-jrauOmB_}Ci6bnhpU9=d~u zp_+x_^mf|Y_WE4_o#`A%`>WtRouI|R*nM9!nqBrX<-hFe{pbJVN%xr-7bot2!!ejW ztM|8Y*X#E0H4i#)`@{wc4BuI9EarXrs%!Bvk~kFYpfKec>BLQYDzd$Q1&m5I9MC4{$8B*zqzm zub^}^ijquvxJ{*@2;fN=e#iM})jrMqJ396Qj&+-+M7qqNONx+1sHAd@T)HRBiS-=D zR)>OD*_fDO1b}flzD_uaF+8+DdF4)4+m{eeiaoNuUdg1 z%k@bxT0Ds(xQ4ER0gv^5HX*9J(JZErY1d1fg2t%`x;y1Y=f++_!$<{e6<=+$-%x(7 zK4%r5Y-jQumsUAMq5UY2b=?ohxp9F~$hkgr{uZ!YFog8Ob!dN>@$rnm|(YyzL5P4 zuVvjWWQ|d~_L<|wgEKd3NuJIQId)&0viU|Zrzs`x=;?OjpzzVP?5GUk1>PJ4L0_=W zOm=WRlbYH$LzDJ$ekL3x7XqmuaWd`TC#arVAH|(X6s6QvE zv(S-r{p^_cs+%#Pp}8^OnDx8+s(V_!u5Fk2*6*d%t6jz&rZC>P+hd59YN*%QhZe<3 zYN&Rti*TMgw)KFNs#r)LXU>=_086<74M(fRg62R%luz`Ls$+pT+}ka_G%Y@AWhbc5 zVJQKxNLg4!xtZ`BAIAp-mDjs#DCk?TZ=|yE*a`7p3%=IE246+d7!y3)S5;@}rIWCY zupWbjGhFL9?iN9vwGUH{8SifiQeax-!SEf1gtzTQ>Y0o};LMSY%h`>OC5OIe2Qf4! zug8b!hU>jJ;eaVOeoJ>aTX>Xc*N&+pWQ(L~MbXJu6lb}^qZ?94cC(zWd!ai`8|X#n ztP`0xXaR`eLZz1e53$@Wp?to0PDKW9CXu~&P(JmCjJLj1+eriUup2*P&U>oLWb4Im zd-f?%Z!}&Bno^Spc0X7<91kW^17q>N(LHk1laSal3>nqFkc=4XJf2PJ+iWq7a{`PA zEF=3iwJmECF@7^szk3)JuUgN_pU)9FAM|IxT ziUl|AYWi`VIdV=ObcEyGnfEH3qpw*Mm#g0i&^#ac$EfjTY-HvD-zQFK&X3PBuCU!9 z9{CCRdQQRjxaw>1uLg5*HsZ~fVTYf(Oik*tXwb}T6I##h#Hr;^i|U>Ob8cj?02bX2 zrkyxcjO`1a(_Inl&6U?|Jvk+5lp~}QJ0hO z>AX6!Vvdy5;GFmw#~UZcAMN?yj~e9U*=$Nf^|=t|@3zITW=3b)F=LknNP|7CTpc_N zK5{j6+iE%ru{IK~ma=~9P<{4wgnntt*^k_mZJmVq`{b|N>ET0YNy@vYVZlc2wS`=1 z3hXQw+mtT!Ch|iTWf$%XDMk_|wC>#Hb6;yx6Xnf^ioXP0Pl>h8(tZy!YN?_raUJ2i zOFZAld1Ef_&KoBQJ*K| zILnBntYTxR@A0EO2dDO=@U`OZ(g*IuNhChzK%2B%I1XQEh?UFCxodc`{)R1ZE%3>+ z+cR0~Gv_VADK)MfQ_8OcqPm59-`o#ubeMM+9pv{PT$Di>Aks+DC%ZJ1idt)*rfmP18rf^&a1CKYrKqi_?u} zRtz0SM=O_ExQKQPl{L_P%2zoUX(W%*JgIl$@+raQ28R|->|m(-7lA&PslZ3!z6zb^ z-+#Pnd5iP9c`apf7d za`8Or)jU6oQ1Pg*tGt@;B4yazJuIK-r~UJM>)l1^(q>tVd7@Uk=8w=^o32k124^1J zlv50>x({h`2zz!X+@tdfz%nEy?sQJ@oS5U{dFfcGufBXuww>=V=Q^LUIHwRgMG zI$&_lXO%T-qhW(ZBZ6wvC~`DLl2_raJZ(BK!tC_}o=ZHzs~Nn?&0=?0-{hWm52JlO zFWov7$Mqh?7bSzM>YPU2nf4Vpcl3bDTT4A?&eS#ouA?a_X>M^37(5*F$w$DF$}`x> zn=r@w4tM_|ROWEDf(7n&-Yfhn?>vj?^MmixHjl?8azW;fuK`(Z%a2?*$^Y6}Vf?~j zKD9~NP4B`uA&xMfcLoW49j5}tSYDL6Jz%Yz+bB8%$TO6% zS33XBj5kbnr0#}7dJm10qqU(m4ajRQEpd-%BwNs%ah-Nbriax-<ln#EH({re3gGt=6%n&=|Q}V?-$4*%Bg-7UEa}wFlJ=xJM z42}~bj-kESd;ihV96j&eQv6L0%t?lIoE}~rK4tPjK@7?r9+_G=1{%7rYNT*N$W>m!k~?ZlK@3?K4Atp9#Mk@Gh*zUzHoKN^`b)6J zB^SF}Q?PnCvRlnjT>3f>tio?4A+zeiBW2Fl9uJ^*k}nUox0IM66I_ox&Sq7Z*{v=f zmuhNDgD6o>2@Txs#dEq}d8=r6V_Ta1lH}U_Zh4<49`x^8tsZu2s$rS>8eU&i%l%U^kyfR$(%1uV_4nbdSOdg3HGF?bg-8 z&J+Q8@#kM9X$61P3I1fvGI7tsN~1j7`-%Bo-j@gSzMOGx&0Jz_1Lghmvhvia+z0b| z?P_LC)pg@?^3Ni?-UOfK{lxRSf{A=r0L3>=*M%lwnH2{ZB7$eTo_{X_n5#Nk3M9 z1J^BncStP0#@@0|mN(Eqn~>XWx~hK#q9{OP>}Uedf9V zec>d2`DNajD+zF+qvm{?^+%^#p66GV+oxve^)^ejSn)N!;%5meFHE!qvW++ix_^+p zHe#OU@8)!J9eKx8IaG7n*P&(lqNWy_7}xON_DbVTW#MKqW~fN&XL;9;?s?dCFs@dB zHWiPkIXT<^P)_YRSJdtIXYDI*_%qW?hkWmy=c`h%~ z3hKBrVeM^@7Fb-H%35E?%AVSqjgYB@aR*;Is#JAJ7;t~5ghi&o*bmv|`u0*4q%*UT zDRy}_?5<>$JFhA5{jPP45tqV=GVKm~+yfCrDD(4ojY35K`*k?+G7N(LBTR^_Iwig5+{1aOb z$r1{w72p0^X@XV&k$D1?nCeEb=IVFy%Vg*lX zKWaHh?c8I=94I!EkEh2T@T>SNvEw+5n$Jt4TLyn@sz%AaD%LP2a?sCXg7|ZvxhV*z zH>A*H(2vtQkF8E=^`cyk zmvcLioK%|kjHTsU%Lj9fql>p{-Kb<@!d&T$ciCtj=bKyF7D7|Y9jNM+i%AA{Nby3l z|D$ns=PAqRRg=O@t^%Ymxyq<$K)Pl!;oQ4gF$)aM{c6w+)}nJS$ZzhPB2ffh4A9DwiCYODQ^NcWaX}bLz2J z#T-249I@mvfA8BfpJzUaeV4fS^OmKYnDw^Ei}<)l2PW-rU5Wfu_F$?HHMTIDFy|ZI zo_0doCfn-N-XX#7Vo(s1X>#7#%HA6+^QC>1{b2n z-1?jAR>o|+96KkRD+5@H?Z&&+S(~1m-|a#@oQd0sLQb^=I8LP`qRElexb^~xtase(FxvDrF7vRjl!&PzH?C1nP zt=hdJ;oJF)pp--T5-fF1pCaNxWUp= z;r~iN7Q#1ZeCazVbhN`zF*zdLb`1Rg0dGK%zt|W}Wk%3{U)ZlA*`5*v(o>jB{V5>j zhnQ!AbcY})}#RY?k!1eI@*WNKpLX1S_u5+t6e#B8Fd zAw#}{5;NY*ph@6s!PEY|PkB8pRp?)7WM3B*Kng`+Br&8K)YNp5po_k9RG|$dIxJ^v zqSjgh2pjR53L92DNMrY6i{LaFgoRT%sZV)>FYxxzjC*7u)r-J5@;ilX-#zD zXT1o(nyiHgkrdox?z8+kgF^y}hY*(ydp!Y5YbeA10j&V`s3N7uu6c7>MTU_s+`CWg zHG3RF+W}KonkxH(2x1i^W|z6cSc|q~S3$^(xZl3{$l94Q<2_)4XR_k9VqFq|fi=l9 z*}U6$b)7Utb;tb{?5rM{T&-KDOy5u=T@~u&v zc};-f4q$=%2ubOe09q5EN|Swvu|m(iQo;P-dt6O?$QjJ@We0mkvA@zw*qU(<+0#F* zotJ>6X7x8PZ-)ptj4ZZ>nq5c<_R5$AA;jkM5k)7Tw^gW`Kqj)k=R*#==ZHguKl`5i z74Ltv15-b6-&qkKIoE05xe77al(k!t(66{}x19%P?$(S$V(cq-pXbDFO({NHvS)wg zUYT-zz#xuzGryVIvZW)2v3Q5Qt&B)xtg?IYv(M0o+v73!v1+U-qz9|QX52fTF+DLQ zuB|3Sd5T!o>_Q`Ro7e$GHi_F*+5NY3q)T371niJG9>iNe@>>gG3O>y8k|e+=u(0s~ zTlmVovFgg*hkMEywPYIFm#u33nOriihu zcNH7zMq;Q{oDEie93g`*5iStpn9oo4H@t5U1RP-g4U@cB!C%H4mLDvAgIWZsUJ6w>e2f}b;YALm}E%#yqRV-=kA z0(>=f=1A?$W`1NxK{mA98}fCi+!!1)m^MbfQn5~%lh!!a0^KwB26s~cM)Q!}LHOkE z&tCy$SMKG$mB)VKRRav9h7g52DA1u0y+kF%>KOX@RTU(OmwrLm)DE&=(8Gs(>L@@i7RU|Qo01b@c&Uizfim)(0d8)mb=1rjp9qD=|^I|_22 z3Zg^K2ChXT&U(B|ofdsp?&{dY?Kez8TQ%LDvWFZZ^k}KAFRTpS6n~~vpM|oq35YY~ zJTUd8DLzdMV&^?A4w$6V@?(hjrU{6?$I?xnzljotTsM2Nobjqj^If&Fey;sX1S~(- zYzmvOn-WLeW$i*?LSZvc#q0H&;pJmWS+1khiIf2fGIJ`_#X4cB621F&BkK^w-Z z`@Opg0Am!tJ48e^3LzNJ`ZIUW<}M&Dd*v`kFw%C4NQKqo?9uacVBwU!ViY)nH5E?W z0+E&m%!k>4)|&m!BF#NGm6Y;?m!riKTFUiXe!B;4DGeVse z0yAD+`6-^JaKY?r8C#QtGlD*H9?#-jHXAw;xg+;pBq{chA;5Ag&aRnzb>&OqBsNGN z1wrxxp75zEYQ;Ur*@Uylt?iO~k0MrL@Eo!#9p+z*$*jjDD;XKnO(9NG?13|PClHE> zh_yw2pK-^EtKOM&tm1QsOAt4na$X&A8|9UI?-Hv(|BWYl3WPnPGJWAoyo6C`I9T=t zedO+^S2dYxGO;E=;7cail0#z&bJ*gI&89F>EBBJWLlQdMps(D$h9fFcOCm`?SW@4i zU>tF8rvu>e0GP)^RSp+| zhfxrBDFC2Wtii-f9L+D2fN~1O$B;AR!gn+a0IE|gAaBBKTf#`swzCM-jl8tRNiR8= zX>GGa*~a@ZMq5=}P0?xOTGVv5h) z*5vvCke&tD^b)0z#Vbs3XS^{bt+^P0bIzGs&}?GtJfM}D*%a>2^DMyDDoL;^$jJM* zf{@wg`cO+=Kv#b|^!HPZZR&0&qTZ_c|pYuw-3~)RhlZ?G8E1Dz$uax9e!g z%MAD?30U=enzFx{V$l3p>3N)Z)#xFB4*P+b8hsTaHp@f!%wG9!VMB!|Z4V>gh3AG< zzRlviXYSLAecLJk_Z(@;-oJ`?AaU>CUF5Oiwth#vFAS?1OhL_j++x8NuOPPOi6jcI z;yD-*8RWFRI8RsV-T`~n<5d9V0g2Zoep$KufCpI2SL&*Wy{S2^xw?=(w0YsVWL92` z1G zhQu?M^NkaS5P#>N`^rhlexQp4bg zX8NW+uNtuJ0MaGwP!|>{R)r$mc$UTW1G^m`7;eFv6E=hWZs5C4Atx;p zl6$kAnYuA;i>uP<>vo8m%1V*h2yO}iYXC$LblF^>hh4P~unL7LgBCAWWpxw#Qp^GX z>N2;71gQjS#?L&P75C#c+oUPPStKD_xmU=gNWLv8n?)j5f%+EcQE_L_y%%f$5_J@> z+dRcdwAr~3QP&NLgN7*XQp8&$mcgfm{!z9fNNGEb`tG3))%;th?>SAXW-#JsAeTDexNzP*ivx0`6ZT4!hz?_a*|L2q-_~EIdSn6H!=_lnC;$O6AE4lpgo3W&bRT zQH>OD0%XuC$|^lgd3{Mvdg9D!#olApX-i@s5|#w>P7qtIAW}FtPT5cSoX^~q&rRN! zf}JXNqNhBC8M~_9@P;$@9%}>GK`TgE^T=n zvCfYV1nNF#=7+p(eGnd0YF9^atPP~MyZ3O_`B*sd--&4nDSf$bwkr&00CLnDRmzh9}@w5p?X}4>;^F zOYWZNJj^0$)a2f&nF(=nFJ1m2AmS@`BYbPPk?jDag7qZ{-6a82D*$v;G+ZANJ}yx6 z`r-YW5>PR5TJZ)joW$=1@f9zhp8`Zo1oKQ#rm$UPAr}HHs$QPScTyn_UVVAi7U!Zz9K&D)hTwg+-%|gj@#G9{GN%w@3 zhCZ*Aiepba44fUgtD3tIiK74qE+IN+LHNL2bQefwuYUb0NIYNTeR&{yuZ zNwk3)xVL+t8QDLq@hTI-eQ&tp4X;|EuiA6^gVO_eW)41QRA{K1L-oNB`x(H$_|M*Kl>If-r1hWYX_w&I3S+g5G zMBsTyPB;tk-zWr+)_A?A?xjdU)FpzIc6?a2NsNhBRjZl2KujfGqaxWHWh5N)QiPEzz(pi&XVe$djpz)^{p7# zPoQ-^0KR6KVqj!M`82>{8Qa$iLSudaRugYJxCF$XMZ!)m_E+u=wycRvlSxiMh71;) zhOqSil6iN@y<+L`K5q_rcB9xR2{x<`goKssnPt#bsA74zwt^*XIP}f4olK=Mg;1$e-;_zu9BA7nlu7p%Go?5!QfeY;X4f^SGL!Uf@C}-reO?6 z8>AGV@({qo09LbW`UI4c>{z)s?%LzDDZzTRXH5y1cVPSgFn7j%4q53nkyKgvGXWm1 zfA)K6qW(#7zgq!FlI*Dj0X^O$gE7i1z|4`m3cAIW-<5sT5@O;If_^XMw|$UATZ;Mm z0@<|yqOoc+xiPnPIk5^FZuQw+!>fy;T>ix|-M$H@6c&?~sl23j{E zR;EE}rpbcPZwqd5Z7Au33y6@t#b!_N!PuBB1K28~@JY98PN0J{7dA#Czpl z&H5E@V0aX<;3;uA=LvoCFOYCcfF(OGA|jyVUL9tN!bnV3si`T{+waX$h_t$#FV^pc zd%;-{NnM07ww5~XiHZ8oLJ)AtzBS|3S$iB$VUATAa6L2-b(X4VA1O>sXZrn};v z*k*0DKKwg<@7dsT;fy8le{Sant&C<|ja^mnU4j_}^C0=%s#`_PrUB}+btER4)z?>6gcHsgwC0_i=qz0(q4dBuA|L~wu=?|-;H0OYF> zgVF-77s8v!9P9|mql`YtwKF;f}kD(Fj|Al zs`|zhWcE5%P#8J6wz)YZa5kH=Rwz@JfDM*-&D?!%n*?WFem|ndYVihM{45Ks?JTfn zm<;6UtG(hr-S7APiZ?i%xm#OBz@jRNG%>~$fbSG?W#!&ugULt)u%T})OJzSbXEar) zStVGr$_OaRn9uq#SYy&5>LB)AxeBo4lKqW)_{!aTI=L&)txBRxOxPq|A$iS->lz;d34VLU_U+(eB5(ezV~WK+!}7l*DGDi1$4Q+yyG95N=i-Gz#(D1;T*$Aq5$9fNW-NcBZya8?tt+(dQ*Z>?L4f@O}1s zJ|&)M*w=X8bP+`^iQOqUF|o-gz;er56K||~6+o^5qx(8e?zVaCRq=}Vj!GeLB-zV3 z5QvOeRk#FuU={II2;eGPm7cpe)tY1XLaa3;r;lJ)D|M6X$lR!M@`-q4ukcUqeaMJ= zvbvP68LSkUxm!S+MeR%GFngAKJGfFTLi3qEwl|9eP4v}zZ~g}+6dO%639<}$KjI}$ ztJvsX0&bncsF`xZO6dnw4pgKJBxa`49FkCzbtJ=RWlZ#oBp}g*6*grT)qp%$8y0ql z%C6?T00S*RQiNumu@u#Us@Ks;n~wZkw4Aan_XXf`URY|ueq`y~Mb zH?}3$dC2!A7&`O0Y9VnYx~av2&o_m!HA!0%NOU>OSu#04D1As`kl46nK1D!MCP7Vt z7w&DXP(GMSYG2=HahUep)zdprnB4v3R=o2yJ7jkRB45Jvj}M8-9_$|YUaunHvJUbo zSYh*K?{P2Bh+?wKLAnYx9X;FWqe_M6CC_x92WReHwWiWy^IWo%wsd${rb&1=qkv2HX7=M>Szdv7y-sDIUfbtVt)NU;%d}Z z0E|^x=q2ESok6RZgH610WcG90CUM-c3;`TB$QhPE%;D)Q#gf2bLtnE#A|mNmAYmBK*R9 zf90;QrMme1AQU2DPLE-dE-6%Z6Jm}-_C+I+uH3EYA|xo+PJV`*|3uI*7A1&IUu?7W zGJtoFN6*|VQWxSZ?p34MS9u=O#)J3k5RiR{TCnQdWN|Pnl`iB2^tT>37h3N9S9X>A z5W;KE?{{&;j8}5AVu^V&!MY`9Koby=WDWi1jr_3QWf5^kMcyWNi%^2_cK$GCrj5xJ zSAk9eXlcpz%H1M`@p?o!afyJ7D)}k*jbOczQ(cIrR>Vq6uASnSeGj9D_LS@0dk$HJ z{UJmrg%ySgP=$XKB=aR}CB-~w1!;K28^6-$o}YcnbL|DuI^%Yn*1&jQgLE|@85wyd zUDg}tijnh)SGv&!z<}zp#jP(995SBf{@J(BovH1Kce3w&zZg%DFtYEx1k`R4V@wfa zHCf|UeLO{USyc%QA$BTZuT>kLlA}cCyu~hTaJ~y8e&oBu!>1k;NA8wTHxRuEFmc2? zv9{cOtCG6~K+nC~>W|z@IJ^A5-E;#bm%K;h0k-0ESq^FqE~gxj48G0Nho!w_#t0Bw zbDj2K10*9$^#%Prhb+P&#KM#WrxgrTBq$_k+9a_e%WW!-vrtl!HRfhSzfUTuSswO^ z`)!jQw7}Pbelo9@fVV5Pmlo&bg+uBPpGUkzXbJOf^L-WI)PzcuYEW7^ z{K(w~V9MMhK*OquE(~Os=VoM1D-Oek!)z3)4>GW9U}h{kZ5>*ns+jSz!sKpgW8S}} z0327Xzy zy(R=+B;jr{pA1~IJ{Lp4b*dV;m$$fD{VVq-**od-qu3Ysr1bTH$gpd*^7a$A){UHJPApzsey|QG+dooM`LD_uF z0PGg82(a?nOX9d)SvBK|?Jh~dikEE;**EvZm%@O`0<1bedvQJ|UP5oB^6UkY+$*ST zzdS^Qz=qV^JIts5OUVBeX9Am9GvQ~2VHcpxfHwogSSHNpzQ=a7)vM0W zJt_gG5NHPK(Vn6S;L<*PhE)gzF@VJs*4L{`3{h2hSWl=WVDA(`(-17e6pJHnvBJ3g z0FY!J=2OH^U%6M=t|G@?k{hmq9HFwFWEbZ=&jhne;q?%pGdqSM0OcwO8J^dy5UK1P zE)m$-xw-(Zx75w56Sv3t5|VR$Ae4sy>*iB!b|5K4C0E>mp~5E2D(jLQqvdm-5&C-f zxYgZG&Mg7nt9i_x4a^ToHjNLl#w%`HWifdx2y(NKp-5r~2F1RJBt2jFK8NfHL(ZZ@ z$V1u=e&uevVwD(E;u+d0E{O-akYnZ+V7V#eHnm879ShE^@71?iQFHO# zTXviUpvHyE0Lev4SR0o}bM_sOMi9&|H^-I9qDWKm~1b75+ELpU2 z+}*e!YKec)pl0eXe2_ze#d!k&4vxEkL-T~$!3a#t7@QY z_r2x21&cMA+rdKf`rh}xU&?`1H4~m6faJ&_H)O3^$^4bNY0)eK*h9!5uE`02f^*R- zT~er!s_$x*HGA`!2sm~^fo3W`v!7X_z%m;P19{n(qUBy85CKt_+?yfSJw@HrJ}C#6S04iY#x5c5*G9jMV}yh_C0+Z5CzUNUVJ zmS%l&6lx?A;a_nZ8!I{9D{;6!PZ1E4&3?J>(+290*u?-s67<&VWaYDG zGWY%_@nx`vrvQVA_xgzJm&6KM0oqy9MOG_uuJjE=VqcXdF~yO(H`vO(R}dATGw#!! z+$+!`xI^Vh&UodD_nNYpsmpV;{tsvFy|t$7GeZDudSxFX`k^I`0kBIxhiB4~`%>Ao zTymZ?Sz}dI@>P)Js}T1QNTX$xRc|x_-V%tbvs&Ri+AEXLI&vy8BFg*=SEPWD_dns82Bxh+D0n8VIZ+fJ&nZrwz7^a?V z!bDsGY?&{dy|0yn6EGYC)KW#o64M#44lq!Ni7J6|h4cLEcd$(Nx%;an&-x zxf7cbEflQbEY%w?VbF}}eE<2!2esIN=WLBG`R678PClqy*sN~G8}!f?rpcjX4Dk|$ zPb86IB2Jc@0re%{>m>*9OTgqNDo-lzy8!yu*kcsQ!I9dppNG^CfF}7~_D#=D2DfMK z{_#u(_rvJ*L5V@&YEQ&px%=z4O}P>|^vFijmMTJiED4PAfg~~|<`PvS363k@?F42) zoS34g7XVW$4qaMfRgGkJB5qfhTmt^SWX`aU2m|{s1Y0ZaXSstDmk=C7$TL&pwt{S$ zLZ(z|Z}T5r5~Q+fsTT=JFA@?q)TPSK8bNWb^@5zDN5A>bt^!C5p6?~#1?_a~EHo8L za`!*%qRcU$*UGnW70FFf`^k^oJzbM~BS@?4h>!$9a?U1K=I6{x6{^geD7XgB^(*eX zN#zJh>mfkV!o8gGne5+l=H9<&i7Jmuy;BHXS|FH5cqOhFq8_!LB@w{_RXR<;R({S2 zaRL=huiP!?%!-jh7!!4{FM!$STv!9EAP~)F$I8E1HAe;NAu-$n(awGuDF`z2|4i`x@st%ra$t~YPuRRB3d!2MYOZkK@0du-E$^f^Uo zI#c&kT9W6RRoW7DB#9nt0^KF2uxdmSX%u{2azCe#N~ZQdKq~U*1brDlH#ysF9&=x8 zLL?iI{|V=5am$!X&e=RNDtkBr^KRR$!M2Ynuh>&Ib-u?xl%09<-4DA%bN@VZ6gxs|_ zBZWB3L>=s@k=zB$mWNqCMzd2f!SVp`&9(AE3_$PyUJ%zqNboNEpMvOQ54$89`=mMm zo_A~*UDQzo#trzL8+c97rWJ~tRs6Sa0R4m7!MuB3xtD%k0?t+&9v>_dwIkkeuu=~O zi3y*bmH(XalAg+=`oj0VkW}ve%q`!`h50?~K&RK@o?xE{6bJ^G-{q7*Xix5UM)&<4 zc7SRM$gpxRAw8g$dd17ZD>g83RW~$^0#Oqq35+j4Y1YjPiZK+tUI0|OJ{|rHQ;@>X;hpc3H2~b4U4jXY^@g{6b zf}l|ZtW^9}#GfS;DUwhFfoHs7rvWz%Jk7dpC$|oeJ(rM6RCcp*=2@sIt>oMGk|xP5 z&t(Ryz(f;5V;~9pQOv0>fMJu*FeNFKHD}y5rb$d< z4Wfn+VN96l0o#k%lGZm}h!i%_B5_h#NzqGr7Gf47AFKh{EJ#Azr&|FcED^^{xzCp* zZv~C{(ui08j7^-tX4{cCr4=znD@Y+z0W&_H02OJKG39zkK~hHqJc-+}M!=v^ zkT=}__V4jaJi9K039pOfHsg&wSHA>vm~qPpYdXug{{^go0I2nV;JNk%P>z*E*0YUP zR=tSdlY8|EdG2y=34qb-_J~{OnD5~z zlz9>iWXDyGWp(>Yh;`k4%I1Y zqFE#kL%xrdjYX0K12u*`k0qqqCF;GZ^nM|LuzNH=fUhh&Be-Hsj0m)`td}++1f@TL z7m*--$U6B1Y%mC$1p(JnmycB*m}~&Ze`^H@W&Xh=_^dHlBnh_QzUq=bxXj>~bAut;FZ}C5i_l0$2_{c{gLlR1>qqe zmU+FCAZ6V6l6|wsn@dwIJcazBm!%PLto|4>H@ckJ)=V}Zzy`)#J>H*#1cNn9jsTk$ zi`(AQ3PP^S-fjXFf&^!g+|deV6ePeN!@Oi~?D^inmAT6(z#;=}dTMJwvo=^l*u8RZ zgxj!Q&3dNtDCSVT-4zL%A;QF~!0h&zv=_N* z)dy$CPhPqANU-X;s@DO9(DTE&pWGX&8xE8Y*dcR~Ci{fh;0AvuadyOe5SRrbMOH`Z zo)kA+mLR$Xljbj&)TP#(;4eu)_8Z%CZ}!>nb1ThjGKoh4+!}+;iAZz*Gj8v~CS0HV zk_?C&^7BhJttqNy4xKM0hGEV{kuIFl@3i* zQB4SG3zjdC@Cusv_QBwk{p&MxO@lj|U9 zKyu}h@3E6u4FZ^|n#A(Ay-M21uq$3Qn|PD%Bi|c&Q&mdL<%Ae9A_Q6mF?z<;{LDEI z0Yoc-7uQBabZ5i^m8S;$(q^m4oF0<@*xAUv^{Ws*lI*a)DOO=_KZwaxYwy!T9C*}?rP;J>JYPfp^9fe_>y~h zl{Kdr0!}X3$E-{GA)v8U%j|w?RfAh5TE^ZF`QGM--F`+5)eH7{NFtVeuOQ+&J>&K^ zha`=c0Gu;k4msrCd)&v-Kz=6rR*pP>MrB2|Kaz0Kv-*nngJ9A^V10c6JsEskS^ObM z1VL;|P}y9v$!Ac(IC8f!GGFn;D_^LJBhcAI5o09EjH_gu?2TXf?8$4*X8X^4UXz4^ zggF7_Gj|W?s=r2;L~su>yC_rF2gTgXXC-%Ke`8Hp7YMZ_iTx;4X#9>Rz>58OS9|vo z;YCHD4cQwH0Z-{4KP6r!0ko4PR*rRB>aY;fuisaEe$(N8hR%V`fHA%-jodsEE z&!cJ(8_c~Sdop8P?kka4j-WFw-+J7h!9*5A!2cKaGqV-6^T1TAr^K4GAWW=rd_?Fl zal_Vj6M(X{ztf+#63`5*rL51y4EqS0T*cS;8J~dnMXe?sluRGdcl=&eRps z?{)SSw`f_ZJ@khVlUx&Ql>JrYS&=iI=T8?5Zp!!X65Aa`{AGLX6#U9;X^c>AaqFLk z*Ph5vPQg#vKglZBuH1X(P))rGOu=lUdvWF_Zk=QT7dn1$PoBun_gK!}Be<8di2G*| zPe+L9NSthqte4G#OqMh5p+gWR@h;c~gwemynv5N(EfUO|MZZo5uv_B8e!U$5AN!nt)SR?v1gAu;fds5nUb<<%29du zRn8fWiB+bR3CHMeDgHU#9eN-8!%H3cH~9(w1k+*Pwd z;7~x-l6Rj6**L-BzL=kmAaWX$y$OpJ@?811GJYYWve}H zk6B&_oXw`-3-|FTz}S2M7+C?igy5uFXBJ9RYx+wS@hJ9IS|nZ)7gm0#DbCQ!nvjY! zsthjyk0PHl3u2|Rld`@lU1Ekq_UL^rvl^tyzHC-Y`+N6zbGTD-4f8~{$}RIAuJR0$ z$##BQbGBBHU?f75d(RiExEQiGb&31t2g2kH(y;dln;tI#zG?4BV8lqIS%@W?0Dxz4 z9uh=Z66@?li`hu+B8Ia#ce)VM6wE}3TG~HZp3~zh{GNOB%NNK}tDv(+?`CPiN)IDe zY1dU%ZkmV*h{^P~dFsqP=Ctwybp`kq@E9uZm3BX_&DLG?O&svPt}}OQ9G(F~#Ip8U z>or3n(3~2qDxYG)QJgIlMV%0WSf57 znw130x`!k*Rd8TUY^-GVKmdL~?X(~0=Fe_+FkJx7mjw1L-Z-@vDhOI|yy9hk$=%aA z0E8kRyq570Gf$A!$nT$ewPbNspIjwtV+*vp_M0iZ24hUIIjncr#X0Ru6eT z5mg2O$%Q@r6A^9x`MpT!4@oi`0H!NTwa8AF@StRjhPcQ_u#)#!zJfym;sTLOMqRo)VSvBy2zO&zoVSie#$pPSr!BgGRh z)lTk>PuXaUxdZoJCdBNuacuDra|k1!N8Hnr#PxyXlzS>w(boTC6-n5PH%yLP5BG3W z5tGDWVr#E8!Ne>8cgs^&?!Lm@M>zKr_YY6*{cZ>t93o2D=YM3q?I0xuOB2a8eafvz z5%)%_tgm<B z&pe|z#~H(1GG8tc3G_lx$4WV~bzB0pbbOA*cviVGK0Lz||Gx^QS!{L) zVMy`EmAiePks(*HCsJf){URdq$SH*P`tZB2c$3!%w#S}Oy}+bc4Y32$)-R$JBxj4; z8qE(PyX0)W|r5=g3RMEr~ZIH2{58Ai5=*1OsUE!2@|eh<^_WHJdxV zilEQDS`PtdSz25LT!$os5f+wyi7a0|CCKOnJJt$y553nfIT)_g3hzi_mE4;ZP9#7B z6Z(L%V#U?Q6AA1WK+>JJ)avN8r;2LifLkPJt> z`Re$f$eJJ22)i$N6Xgt>nOTYLA@BJrfYKpB%@jglA*f@e*NT^jb5A<(oIa^(n7nfj zW$878YV&|J6%Liky&$IdWRS`n?vYkCw$JY$LWD==lYzPn&X=fZnEaZDe`Jl$V$C;M zD-5)Iq3$ve;M4g;1x}aqrHM+2V8sxiehSdRIHjs^NbVlGv_X1F0!{+2gH*mGCL!rN zQa7ltEC)$ypYf)J>jS{MMCoNsOc`^WaSJC_37LHo3Efk2m7aSQk(F`JxX=6)GG|F1 zK`RSWVOEMS6DaK8fuaEu6|DkHATS>R2dXC6vzRwl1-4|b?}gIul(jL77~e!A^vLHP zMC-}Q(yvS0WB$scP{uQsVw;)n<0KGnTQY zpB*?2*ER)FO~_8`leY?zs>k~~BzOBwTHCICZuNYRUb(Bv4Uu(>4q~QS0wF|={B1zgDF;*cy!Rm*Wd;dT7Kuhku3XVdQaO7UGYH_t$4js9x z->uhEiu36z$bBOFC4j7VR7#{fUisuY0zSPh#1W5n3*RX9{}}_Ao~7BhXmdS zKBNiALC?VIJ(mRe#*nlEgl8bTWYg`13a!OG-i9zWrcO3B8kN>$iz4bI25$Q`f5~Ra zO?_YREb~v?TZjwM0F^8EQc(t#RCet_nR!~7>a&Y_h{^9MfjB37if6@!bOb~r0az1t z!>*2+xtGmY^P3}e69zbXonsKkn1MeLH-0ToF@O>4)qS=p}@zTcwEP9tSjEN1K95WGTN#@MwCR{6b z?^v!;tAJpFyoAJy+=~&npfZA*XP*UPT}U*uVCg~tm?~_3Py)T5%U8UaC(99M+=^vS z4!Qto^dQ}P26VaSS889xO9Dm){{;G1yjy(L1Z%`gawB{FC_uC>go>$mX56o^7er}8 z;(39fn35p1+{;{9L3YYMaTVX$6g3R=&8}!kLOh^QnX>j?az0NXGk9GGz}>wHgAJhx zq+hxBc38z4-(wWo=1|0NiW;$fAaV(4S@Key*GIf}%Mhhm1e9C?T6Dy`m&7sy@s5G; z!I^sI-du|7k^t52(Z2&2U%4wWo6HZE9$VEylR4kwzTj-QH-wOGqClhCbQYlQEJ)hq z-kV_{4&3(#6EQ7Oj`4ij!KgD{g_zu{m<({X>c1t4^(A0U;$F(Lcy?E6n-KQbS(3}q zqG1Zq)MOtdD3*Bjlr<K`I=r_f|xBaAJP$Dtzl9LrcH`F~BAF@hXV# zq*mKj0)-&9AP7&=usWLv5?Td36`pL8J_~^g$^IF)q=}FVjH|0E9D=`mW*7D%zJJ61 zeF`DbWc{#>=(wTdItQYpIE)JUI(-Op`OS6}XfM zY*~F}VEFEqK+Cczd-frD%Pmem1XyqJ^6XZq{m4N6*dF)~99XY-BhZfbI*N<#g#vF$ zaLL2{ikCWGP~pvZV}Va<9AnQ3Y&TJ9Fu}DZP*VbNGDTOsWZX(;s4{v9aWDlmA92sp zSsV^C-cXI7-*fkCe5G#m(~1qW3lUUxl~3H$umZM{yLAGC+a^GZH7)FN2s1hAai8(z zZn@GVDdn@e0MLziV~-$cC6jMHsVTlA6JH)!^FtuL139m_{Y{f~y^6rvl+;}meyvc` zOeCq1;L)lrNPbYcFmksoS@9BT2D$_ykAi%-;$>sBcv-0}Pb$)o;0#N^jJQ1Hj7jcZ z`sOP-i+Qj_9a#CbPEqf51kMp)yvy8N#X(MW3fcdvxo>j!SLFUgMMMR1bOFMa%&`<_ zjP*o#iNb?DBZB!%iQ{5W@L?b{2iK0psPoiyZ$-@%Dxr++M)F)QW5dpJTLHrKcgQvt8#|PlmfZP-r4pqSQOA>E323rCaHxb2D9-jo`t48cpwiXVK-XC!k|%!F=v7iCC$2Lz+iLrTBSN3I1{yarVXdc)RLSd%% z(p@6dTG*Sq#8m^JiV5LN;Z4C_b#JY4-ULw_2&#@EZ*GEH&^9$f@V7#oLr?ja`z9HZAA4Qdjmh5H3w( zM6)fnJ%GX@JJ&hKDXNIzfJPWZ2!Y?(&V>y0{=iz?A94@ue&pW$);g&M3HlU3fd?Ho zu1HWoU?qie?hy7T0?IMzW%(Y#rrl8A{Nz?~mN|*}U$O!WX=6+#*@dn<|tIeAG4*c294hux=pq?Ls*)FQReJ{BRwb2mL^eV`* zDF7Xb*FC|aSL71)NY%vG8cV-q?eH3RFyW9Sp2{i%u&btG1RgI5?nm76q80IoktZnv zawa@ST=mZNU?q!I(b0wMpc;064t!3R0Cd(^dkVP7Yq}(+BN$#;`=v+-jD)MogIC=5 zb>FXExNj}qOq|4$dC>Q`zvL9pCMZlPNQ{_lZddZocxQ{r=K&$>aA-br9Ppr(geD)H2f>k%P z4>{v@hMbR0L{f%X(V1Zgz!=FFE(i}Tzp}>LB#KAw7R+WfXV<>uK1DDD#)Z{7q0L`% z@6AVh;Z^|c^t^Ay-tmR^BW__fh{@g7C_+-7k{hNFK(XS<$R83WmT!&^q|qpF=6wzh z!5mDuW!6~iQAfzgE^pW4dj&ht~008M~}Q-Gws z4CN(Ba>bU>HiYxS7|WHq55W&%L9cja#*%x~5QueAi|v*c0|4y%8mJ!lirWO8@rs#< z(#E`9hX579+-HL@u5l};Hg!#q1hBl3n>ZW)+TlR&`8;fJ$=x5hNusqOz+6Kr<7^DZ#Wg=cbBnNI-7Y5VR_yLjJ(HYfbi8oxzf0dL5HkeigrK)l!v5 z=@2l4pzu)u{nq?x#+zO(Q7v)~?5gBb2*h3}d4>=Zzf1MwlC^*4UUj(yaOFPAd1RI& z1_GKgZ^j$$UHEynGxYk9j5ComK+62hS?Mrjtu%?X85i$j750pvz+wo1#+Yd*%LynS zB95UoV2VU~;@%!OcQ08>R))U>)an9?ui|`aao^@cK=UrdI_E&goIYh=GoN1CC=I#a zv~IAfFKZ5XQzT0G<9R+DZvW#L^6C_@O^DeA^ zvkfD8Vd9)A!X~>`0_rEQk0rVCA%snGw_w?^x|X{QR!c2nCMKlg_!$5_g^F@XLOLaw zY;gs8k1Itj&`rEC<6i!4fzu(tE!mC~-;JKJD_){UpJ@i7N$vM@$zk5(UUXJIe#9*X z%ob!73_TNtSD{wn0lf<4%J{&b9TLz~isM)Ab~jx}5=%(u2Nl#S?ng~8HEYObrCv=` zKug~L5+&k@+Z!|-^vT`6$XGX)fDSO`Eq4XB-M@v6tQFu771xK56H8daeXbvJc)#%f zANgKY!S_D#{mq`JixR=g`K$g5kzkn$_?CNvv`Q`5;{I;g0GBSo`;cHX5*#wfIfWz~ zxqA>dNtDy_nk4qttd(bRB&f9pqud`Y_=%7Z!CdM2ZrOH8vci(bABCE46#K-G^=nOp zmJnl2NE?De5pa+o%@XyeDVGS2Xx2+)fOAd9zrfJ1l~I-^FrW0WG_m*d1$tM%=Q#k5m4#XiZ#$d zDwrSjA^XfFvEfcivQZ#alQVT=?h}HGBW|z8IO~*oxGStDp7kYr$SI(RHGnr;n<@@i z0wj)tkclMpSL%wq#2dD=Ox_xHv3Vc~XjWnIyc;-&Z5^55gQRnW2t10P?QsjMlU~JK zXGKProP`ZIPyF91$x@JuOH`Z&02t_Dpx2arV#vHXir1u=F9%}5Qv_aAi<^zbKgq$7%>KOpH{Ze@yw|DT`eJYxTXm{ z(ZhF%*vb61hX^i64v#_@HFNi~rb7LQH(jqh^tq2+x%a{%_|FRcADGJoqiI`e)un7^ zZ=#P+O%!RJY7NyHlQsbbmyl{EOf>*+6=FAYTVS;lt4{VDI&mvjR$ZD<;}Vj(i3rHN z_07KP+=QRi`e84jmb=416EL+2M##L+dh~ETPZ0r5?5hK$zygTd1zR;@txH~*+$&3{ zqCX0Pk@t1s9O~E~%~sXC*?ZhN(QHvEB5uWcyhI2!M2KSq0(&K%vJUg%Sy=wKB;Q}M zc7JCO{ZmKME}Q7C$Z8T8lVzGXyx1l6i2LO9+#9eR#bUQ0yA|L<6P9!em|-67k%Q?F zVE#wGm(Uq#&Js}u-AfqGxgA7Snn5Laa_^Qt3N|?L(l`SAY`kZR*d>SVDiVRnhIYsz z>B2xq7~3YB!^piXtqBlB(xcjNU!ri}95jzcYxcuyS@B)~1HsyoVAIN#%`bNfsPW0~ zn_%Q6^M1EGp-(%@`i4B;OVk$xU8y+S4^MUv-#xkZKN~S~iDD@du$w>fZiQp2^@Tvw zNVF56br*FOfqd?B#&|~#$0l>xn%>S2#7ouu!vZ%`dmVVb{b!USmmH`m0)Pm)VxYAt zU|#?VmLxJqp<-n4&&q(LZq~LZ{IgIWkQkXoU@#C!nH5`Q1#rcyF;+o%NA?{9o+~1w zLFsd0Jr7B0jr5=z$n2$>0Q!4*^A2K=0Ph9i(d1bjAn;zftG7qI;(*ppE8aAbgt1w! z90K4s0i?Kg%n!P1TzM2kbc8Tq!ZidWGCy^zbV=^jg$n^X&v6Ts_cC2ec1+Qq+&zq` zc(?UPAdN)i6q4$NH8ursv4k)2rpb{cj4H_i@|phntadnZFHz@Oec^1lB#}M};xhs+ z?XmJvoQXRbLq+rzudrjz!}snop9r>6?MJaeiVqTqW~`qo_4YYlH8Qp5d&Jf3>?2`TY|L{^Ill`J zUb*)e>N00oowtO1<61TQ9cvgH5l}F8>A9DKz8utGutQ zoXLm0F+yUlg5;s4-4OB9h5KoFS1V%H$mcGJCn+K_0CnJ5yd;;K0$!#d-ndV+Lbx_R z;1-Mxdy%U|a^B?LuyF|3o_z1Qu;(Nezc*l2`&yrIM+g!T27a1lYDMZDLJsiWcZok) zU0>zy*9WoF!ueG-7p54L_itar~@_2RRkN{^jo~iY6@ollBBB@|L^fifK!w!BX_^B6oiub z1kGZo%=2H-SsM>ClQd|7xjieFA`i zpi+}_!x{oxbFjqAU)iAQkU%r>Mr-DS*+l^~g&axlirkfZmDDQE{Z*VLyjRxyA#&a| z*?U{DhwlI%6Y46tJ94im;-1LHJ^|orguFFC93O(=Jz-XE z;v9Kj-w#o+kr<6U7xSN|+GCGPPPwL;pXqWh!8GHaUAZ?ukU8AzY`;3H?RVlOL%^MT<6b~1^cvS;r7t-9TeBaB%2iu;S3 z3N{6J{K~z8%ZTo($uKLsn5UR+%@J=*Iwk%$OQPg%Sug}^pxDsJjtF>O<>l7@z{G@R zXJrIL6M!;>KqsmDepKtna0-k0r(Ba&M6rjDku$V`VpGT_*S7@VZ8!@kY@HILn^?uX z+bdxT0o)~EbJetzalwAZokGm*aeM>0G~)tS_NB1O{Ieh|FNrxRlDpy-m(~}i6}i%t zyRA=0yknwT;%^k!_1^*Kq8N|)<`J*xv5I}W7cK6DKwITj2!?*hetgM3JP`|=5-Yvp zl`@G}^`?jks$M_8Gl*`lKEFsrOjr3`(l1=llA~G{aQi7Wf^- zfl&d`tvDQ}+`|?3wlq~+kC$2nzhbs-9h6obcY9vny%TT}9>(fJ7GYs5ebakgqZMvv=+4_!}Bh z!E?GGmNWwmCH4=#>}TKM?-3|VCIA?|B(Xz7v(sZ3eCjiiotRt%t_42BpY^J5vK$*~4c^He>`y z5Lx9`E?)5YIHZsC`%;*`G|1^0xXR+v?&C-b_O&Ug_TSv*qy(Z@)<8H(>xJhn-f6Nb zSsY{}`!w1&LbhOL*T`6=!-gDaoT0G_+)Fl8#19C*yzG&Kk99k6R^_B1a zD4Omkgf$%7hZ=~HOt3aM~qBM=K4*)e&-;tJ*laKxyFKN`2*CiENHZ@Ymrpb$It)3rz7ol?ei$W;Hum7|ug~F`*_;c-z+?dI=4k;2;$! zE`|Z=A7aWY0D7*Hp~bTUf;AO@{zzP9l>L1)k}t0O|&MPKXP%IHiKZ&q25w-nElY zUf9x@lq)v~Jf%sC9vEV2_ctbA`4WfB*M364VuNYpo;k$n^{& zB3d@OF8#eA=g`iNsXSeJTU>XK-V%tZ^%=T-R0FX61F>W3?2|p==ec011hG-G`ue1< z6^Q1Xq;TS=i6>vvPQN+t*>F<(wN;p{&&rpjD%P|5hd5ZUhRP7VvvVM<*i6lPpcTzwIL+|Vepg)1= z3LvL|@zevlPkx4LkZIyYZ4HX4B3|rw!Ji{$c>+*Bpowfy#QCxrXJ%KX?FvoO03fhh zk`n-C>u9?#=#U-cOoC(1E4?)bR3|dv6KSp zvJwFB5)uXZNp@h|t2I}BA(w7w2s#8ATIk?DWTZrLm7bqRiO17hD16CMp#~6qz&&z5 z?h49`F5Y24ODliv z+Uq{QwEX!N`&cWet0pu=K5etAAU?_-lQRI_^gU^krvPb3{-c!d3IND6kS#YT!{{y& z3ETn+=!?4vh@hp~t~wC_Zqpk3?G(mK0w;3SdZ9u;w?P}s4VnYF9)QM)_5#_a-1OBvFlbUWP zs5V67ubBv5BTFJSKkhxBqVwd)aoe z+O;3VZe)pC0+~3pE0-^b(b7J-SdEbQK&_m-Y`y=#0f>@40}_mQFMfl{QU)@54fFvF zfhK+2Ud1geeCh85BFzaq%BM~2J72X=Ly>Q}6QG|(+|dEw7=gS_pcYM{Hf8Hvuk9}& z>k5cH{JyW}Y=W50^WD1exRrgy+lF6dR9XcpYN zdib?}1w?oC3pL;cf{sEn?f|9Ryg0)xyEtA%RY)w(@H+5aj5+idnt(Nlmw-CBJ;in@ zT|C<3hrcaNsk7d`^u)(cF9_rWxK3cBlSkbMtnF$&BeDNl7kjPA)DZ5yO&($uzK^so zvg`rqYU0I)A1ERwG%NyenU)ZJ;Eb(-=M$RnYM>sewtP#y2ZIkN1(VvN*m=6NZ^jmY z5Y1wOdu(}9>BGtKnYLq9SK_nUr+9lk5m6IBDOUzgh?O-cQ=EWy5P=pNxsA{e`?lUd;#MOioHQUM zO9QgO0euI5U9GVe%gvr`S_(^xo<}I=TL7q9D4^XF*3~z(e}Se1T#@4doq`&vfx1f& z+iGay8l1iL?n^xJ=JqEFWQ|YX{6Mk1KFc*m{D_sw##dlG<vju3X&ZaS;#dY6l%D$t4&b_ z0T0y$6Nuy0leYpmNn$i2`qt-nLGF{)A`<|&bO#I6KeTVer?4;mJ)L(Q#0P2blTY2= zOJ6<2JFC{8afMhTxEJf0y`cW=V&{ZAyffN0QUGrmK$6gY4YFigg$E>FSYtaa;PeH& zE4Ft--A~|T7u)R=c&;T7hHg3LmZ)BnN&9qU^2~Oz-1>e#APSs7+K_E-6ECrMfAZ8TzLndI?HTg(k1Up`GyXB=!w;HH9kxywP;P%o$u+ zVd5jGp8&iIlqxIe=>=*90HFc9R;`gvi%}gQbLPvxXDa-Q1)NLl$JNC?#?n5%OI9%M zXVpM~cv*5hc}u%G#BCTzftp5(1~iYd=16vVFR@=MsexNiznzqs6PkBd5KXbQLWR#x zWBdLr$u4I=(Kbza<|;b!RwL^Tf9@R;OV_TvAC_1KC;?@UZaE1H%V|UOQ^ltBhNT&&EMPGW< z?bmN8l>AwB?K>q%9kPyrk~+ZsAqBvP`}Ql4Agk4a`&P@82ntP+FTM4>7(dF()`}^I z{!G3&DCNbLFAYjd@}|y{M>PPaYfSZqkZfcsDB#G`(%+SPYbG0t0qPBDU+hbxfn+Np zv85f=JG7DB?MH6yOZO7#lqNF-dD2xEzWlk_XP6)yNDGvb0;NO2ObbA1aa8gnPRq=^ z?(#S|A>JwoGpg7xxI%vP+OI)l*x)?L?#~UxKm*V#`I-ANE@~Lut5-&jIyrv>*rcEs zoZ5F8Oo)+H`-H)Ovni-uZ>w*q7H$U;(|<21BnJS<$TE&{ zE7^+p86qJ`0?#YdTW%-f=XOG0Sc2fGYTpguq)ySkPsqhtWF6N5Nc4KRifs`m;8-#| zX&gjqw4cnuREeiI6DjD^R#dP0*=RuI3FVwk5v3T@ z#CDh+o=JuOe;;aT?|EoKW{PcC|5Xs(e;73j5^oijH5hC1tN>E4|Nnx5tw9sr7BInm zN0YyH52~3JymkhTK;`x2IonN%-+^PYr;w=(t9JGJ2uvWU9%+-X7jM-L9F5U?lRHBL zxE3w6=1$M)niPJH-BjB{X;!0NLJvPq^nptR|--gus+)Y`Z^)4)Mebgj@R(tqJUW2e5=1 zQv$_WP??;3^1Lzp7;}4r>d^s~U;!$;18u~e=b3)&(gYrz;ZH;d6!cHlVp*!h!g*)x>g$lc_^CCupqND{fmhK0Q z$lu~E^Bv-xk9fKda@r;0&7K3c-Z0TZYq!l&h(#amOUQ;;MJ@4Y@DNWHCflSgR?k*Y zYI&@7(SZ{lbkCdiDMqrc^6#}O>;+AH1!Wa2PId682SB%r74%iCRIkd5*a`?TI)M1J z|AUrF`^1J%d`Y}eu|Qm@+SSKZXFvY5M0F+qZvcxFNKGP1r`W<_z`sw6iA4DLIKSHn z_#_q)IrL`*#D<_|zJh>g+Vk@F*0n2x(<09zUclNyk21pFKZ0n$)r9LECc7iwOW{Os zvA%8w!ox*MuEeKj;ENc2(rLo)p8*(ia$W##lfcL)l`H%Vx78wx460Klo{|)te_#B0 zL!Cxo(>Q=VPgWcXxp@FtwAQFJp+y!;m)Iwqh$d3ZrzPiPJ6nTLu!~jL0|;0bVvIx2 zT|y5=B)Fh=nBwUrC)d}QM>{KsRHJ@w0;y5p{Q6YmNBh+Fk9MJHwf=$nc(0#HoRbvT zLoCSbIxnDaV(XF-dM=uj5s0IT_Nmfx5Ei-P0!{HIB9F-Vs_gYm);~mWI@v;)OM!Fg zd5e?n@V*@f@c-uInPYDxPNoTo zRQLR=AbNoWMPAorO_2V~s;DGz_|`r;QMLOT(->NV28@>NlmPU)V%*0ahBf#-FjL8^ zFnJTwM(uPU*XMGHmjie(r!h(&qa_8;(C&Na1!V#t+zx_3${q^eYE3&?T#UfX3KRvy zSiuR6cCr$g08*DwJQXPR1VL+vM-J1-wifb00dRCuid4QgfU+F|m2aANQp*d48$b&` z8!O1uph=p*y3;~F2Q+BRh(>z_Y_NbZ>j1J=00|uQBj3*&?m^n`;DE5ilMgh)pMZR6 z_j+#H7au#YLTWGC)?USvHYI?Z6!*wpVQTk&bi!!0b(x@UITe0_#-KtD>tYYm5eQ9* ztr;dXbw&HQsUT)|Jug!oK*$P;K(ZF`LfSp=sYyvo-&~zZAk6?G%{@JR2^B3mb4xhC z?@esSk!qr`00|QBXgQsosk~%YVtWYpUaz5W_Ipa+qHcH8!`(W47x(@hR+G6BvVyv& z0hu#^biW}_7wyW(v{?7jzMqF;UOj*hzF>78h;3gEem#Ju4umzaRfWVBMuKNY>N1Zb zRlL}{ABf6fcURC{75J{_3@!HB`>K#DTBK9lw{%D5!S5U7wfKCg?)>!=k;AB11)RW$D=SeL) zfXH6IBP|uK%KqUa5GdXwjsSKPs6SRKm>K$J+RM?z%bQ7XL5kY7R{GICVIt_Cd}*KW z+Nc3cl6a@nkL6|;ya_t%KLrZ_BSP?q{zA=Fq(xJYgo?vRXrL6#@CE}o2k3d3*7KB68 ze@`H8sMl)Rr|P}FqJ^6!2oh*#P(28$dLY+{{7ln(1Mm;8b?@+N%|roSe^vleCyy4c^YxHnR zU=?Wuc0!@<;{vNM&)HN*tgze92AV=-j&;fdT?Edm<`G|g4KxT|U(y}E&Ms{j&{Kc0`Xm%xrD z1;PNZx!7}a-zN|7G`iXV^q|evZb9K-WDDTZ08&cY$9hxYR6@|AWIV;oe`uuC)jzJP zar+LzT^9UW4XpHp=J^Barw)w&rMywRh<8QI07wYb7zMysFH!|8vjEhp%6^%&OlF4X zv#Rti@v@TB=;&%ipuqh1pkAUW8V89T)R~|fBXv%Jm|m2Zi*w>a zV2>@bCfmKh$AK6h0c})EK3IoV92Y0;D^yQ|>J95H*E1+yyCrg@m$@K)Vz=0bd z!Pfy~@Tny)>fIvfhGt$NcF-h81Hy@xx_j*LoFw=jZt2i~1TPlv6z)4U+6_ps2F<(2 zPC9o3&JmHS69DrYh$Rvm(89?HfcFQQtZMby05Z}?)}?*YlVS_q{{iF?5f&ZtY5KVn z>X8Bc04@3^(E|xw2;^O3F34ELHy$TR{BQ%|a0P*o=N8I0M80+CZ=D48 zbK1lUpUXoIccmxQWL`h4&u_Jxs-fNxyXu*&SiOHpHBnO6uQl7WxLx46Pq8JgPcitPCyUgnY}-NoaoV3JATb8u6BPt_ z)oO*0c+x=HEuYAa)$dV-yh`FR|Fdof=Q~my7nRuZO=62S$DGo4E{A^K>w!!At_}M8 z3Ex=b_Z4~z7yUN4kF?0#Nx=#Ly~2GjdTHhIEr?D{M-^KzBxcqFVbiV{F51TgvYMOgss~y}+3q^b}3HjpP+HG&#duReE^kV_^vgGbd zK1hk<@9<>!?@Fi-B!zhh>;#ncLy{#xs)BMNfs(}<{32Ff(r7p>DqIuv1cJWf3(^4V- z|I)t9X+9K=Be3e;vL%Etl+2 zR66)0?Yj{KAcnMiT~onC_90WdnsmUsqotq@1p0CkT2$lBX0aSVY7QqxJ^|Rijg(z| zd5c($Pa}mjkl=!M?Td~b2qaq@QnO9~3H>=a8AgjZeYvx&n7hRuwrfM~(@;gbkG8DA z_QtFSz|rrctAU4hOPpzh3N5l8@NOJc9)+ z0b~*_^;UR>m;HYN7%t_da^Acb?N$V`v(cdu@@Aw5C6*I{NtBQ*n;L-mKLF%c06YiW zo%LC{g1wh18hP%*;Vr{Fq}N?x-Ks8>Gr_xZc>J3@>2ZXnJooC_zpDu{4C z;^_#Vvh}-7zQ5AG(9=Z&4q!Dnf2meXwik3poGc)VrYfEo^D{`+8WJm(i`d88J#nwl zV@wn2kkXbW3CE#V>0&=+!98jK_^eBPZ|#$~0y1y4)V%C7(xekv6S!D`dM8@m>trQa z2Kj`kpAjd{|MZkUAOxsZXOJiLI!RR^Z#bdsdr3Z)O9jt>a*_ZDs^Uom@>nPTZx<9M zH7fy0?uno3SrTvzz>FsJss%(V1%!$Iz6uaORM!>g*{B~rkpa{Cw?vG%DwRm9+hV=% zF!6d(Vyn*%Vm|MmI$%;w?Cb0?UXaUXAj)N=ehufmi1#@R0J5py@x1^Q;&_8zg#>;+ zbw2<%l-PM9iDhQMDZ1DmDv4bDKKl~a6$Ed}`%RoEyP$tsca`1BcEWC%OgK>!TM7~> z=0t$^XtaM~K+jM2Z3Ya^_y18Gtw7dDy8yK4OBMQWL3C&6lFi5fu#G?r9n@G87zFZo zqw$*ynxO_v++~IJ1g7%_+Mq|D{woh?jRk07T?`i`fz-{2FFQUB6Q3Z%5Ot0!*&hDaSp%hVlI zl=kUWKVyP?P=VxhkhKA5-^7YhiERa%i5e!5fgk-n1xc}8R+9_*9hx$mfn>RXSWU|y z1!sB9>mR#ogeCZUah%T(b_HE?IEZ& zf5cXCcc|?zcy~!jF7ZUHE36$0S>yK))R%tV8vw3kNqmR+Od_cZ?&-95@}oTIN#qnQ z{B{f{S$eFPgWD6*UKv6D{8_{@4SE2#hHWOUp*V8^5hk&3I1&8b!w={UJH($Rc5)aX z%=7a}mV{2Wcs+B6zNSIGblV~)<=R89kv!!SuKm?N{}e>0gGMrWw@)b{Y0y?x2SNQ% z6f4A@w%>LDk34}m`_sg}d$ja%^?wsI+rC)EfzM`&sjj@dPr!sZK<9<(I4IH5Vnjhw zAa<%Ns|&rkrAtXFohv9P8ZhHc?7clr>E?lHonnxIzvP2R%I5;-y@@@rWZ;AQ=dONf zv~Vp2^l>t;G|-ypML(pIcEBAWNG59?|ZgEGqys(0QW9MF2$m zGFYE(xd7NJ+AVpUHU9u$=fF%gWf`%y6UZN5BshT_qvG6E%jcd-D0 z(M$zI$_kmPs6rC$pzLYkE|Th}h$p1Hxc$+-Jh6%wR=Q8W0~#HO(;IR~x3hhRdqCrD zLp<{5gbpobbWm+T0bc`gNGX*Yy4l&r>l)fy{qs(*Z1gx1ls%11L;}BBhTc+{-b^I^#w6=J`lmp z)OJ3#R^ZHdtnERJA??#K4t9LRyLQ~}riw@6Y09z!AmU)i3R3xWCy^gl_;t7MDex|Q zqRc108l1V?>WmJ`ycv4U20udQ z7a-hl<}2h$pGJ4}xyP^p-6Y2akDXrI$bi-c;GdH;1L8+H2&M@CAre#|uDYSW_TN*2 zAkcBN0{D#Y1ZZ~0{yfi5AhM_B@+RID^@mJY|95J)uqn_B+)JN!TdZ?&gy6ZkeX#=B zCjBjD^-1LcXO-%mAM3$sKSU8v3<&VAcBq$KyfWafUg8Dr0+9z1&J*y|0U`=oz@11+ z^1%N;2hkI#PKyHk?c{C9{c&QaiI*}73O(A5Pyz6FFF_gw6%Y{95>yXGeGN@&)jp-*qnSOoyG#Y?S*-LW4~`1lB?3@~(Gf3jU7BFjAjz4#%ZcLZgM zH}O9P1`@!K7C6$l?`6fD09f*+s1rzEAG2J^l1qOpUCF0jq4{uS!K%3Qv)~pp9U3Vo z3f#_N7tIrs zQe)=3a}rTXez|G)NdqF$!TJ^e#tTF{zVNtf-$O$8jqDz(HLxAPH(r%SewNGZG z>Fy%7x$xX`S_qmC(%HBE=_FYVss(ry7bgE)kMV#h(!QuhgBFWP11UenU9Ds~G% zvPzzI{^kMrmi7s6vYm8c#SJ1%+4;JZZ9{0!6-_g&qSP*4M4v>Uv~<&dzbo6lr=i_@ z_YzBQ?TccQ&-O5~lWYx#iT51$p!n`qJNE&{s^SH`G$}xP0t<*C$pWqfft0k{@}z~n z{tgm8Mpl_sY@bD9&|m-aPeJr##6CfRMMbW}%Li)!3%vkr0PJ`X>a1tle(c`B>QPEuVtc-^hgCGW!ZdHiVivXk~PZ*P3NCEf{u{*%JM!A)lgY05%kfAh-% zw->kMTYW=AB`Yp&{XGIG@p8ujN}>wE@U~~S0@VYG&I!td73?KnL}DUI5j#QM<_xfp zTDnrJ0=Pv?DUIvl#?*7`tf%{0C0z5S4RGMEb&~^A>Xb3a{_{yJmH<>JP{A%AFTrr?;w`6 zPeI&}Cj{}Rf%>5vDSHFp^%48((IUjO1e6M0Suxu|p+R}WRYkM_cLt(-RbYMWnYwCl z&5y%k_q1k#8q@*+#Q?&WJRoHXoV4^>pk5+dAaABGd!IxAUD_>`Zcwoh2-BgFq4?Fr z)+^1>;OEdcmMyKlAEkwfeq?D4{X z-de-_1d>DA_s$3a=OMO17>C+^^^tA>nv%G~)zJdA*i`lyb-=0v+2TrmC#8Kl#HVrv zb+}uDk=jfl&;0;NcER^)fsCADUv(Ew(FCQFkJAJ>>pLNvIR_}I{__QS3OyPLz9tYH zG=1izm-md9f!{@W2L{>02x__s0A~fTLgJ}cs!ML@4IIQG-{WF6moMKQfi$80UJg8y zwNN5ktBEtd$|KVR$JN)s~DKD9k`o(>%W!0aGo6#U+4eVMDO(-aupC7MX81{mKVSJ6(LRk+$g zm^VQX;IX?xJzT|0Y1^Uhoq(TAy9>#}rGj9E_7~6;ujfNQ3odZG0n{D`tl058>en2< z^ZH~4T+lJ+`f&IDF_8XmDbe);;irR^mKf24CLni&B<4){p9Ju+f^5Lcc7>V5OC6gv zuTAWiT|y&HN?%!VL1V$EvAFfnU;5iVqK3wLTBASUU^WQW&5ChB!s`$O-3}!w&1l2! zuuF6S$TGwGEupZQ0E$X~E0r&JcMkRlz-Cv{(>S66Q=I^v+QHRNwwi%<^ZPK zl{?p=aZTzSTKYHOY|Q{pRw%Um*+{#s!V0E0J9p&G*R)#?4N#L1`|V!8J|^1(OHK_E zCCwY+O{C7qytQy`gq#5<8w1)3gL?X91C2IZWr{_~pK zfpr2k1!VXoUOY|pt1p$OtM7UchK!Ia-0HB|nOl`|Q@fg%>MH*%Q@e#k zH{w*I`+zQn6UOt8t21f*zA5h;b8@8uDK2=gg1+F^J`ptlNF;F~~rTQJn7r|MR@-CVY08LuJPT=PHdw&Ap zOPJjSJpg&9`;NjMK;zToS%o-A(<2k`t^^{laY+!1CSV3m@KlR?E!4?mmD-eT)!crC zc1^j@{ROp@LY^6re_J44(^5|bG0TJ+oUmLHl{%hP#h&OAPhOL~%fI%|{{@In_6IXG zqyELo+ph%1$w9R#UOuS62o885?$6`JLpy*h9h70NRCXmCCEcX5CP0!@FV}&z; zk1Yi027sHZ;oWbv0pO>gRv>>`w~KHEPlo^}?VFg_K;7Yd%<$f4P+*ZFRlvN?19Lmz zOi*z-q0p;h|1be4z5dKgJWi*e04hOI;f2KzFBfc3fF@fePfWBZMB)V_-uQdNS>e3Y zkcgYum)Gx85sz_Kc+dWKHF(bog=A5lo+v^6AOLP$72E)TlX(9Dd6rH9vg!eh=uiNW z$7l_Wj2;@fTl+|G1y#j*#>rQ822jP%bw4yf?qBcrO+N-4kP4+ekj4{$fix1>0$?`9 z%X6ysC6p%{ACC=!cP}80Xm>>oz%DJ`cF^y(JVg6D1~e%?skFWqSAQuq9902>4Se$Z zSbHkyNtHvY5+^i@*t?bPBv}JF=tYgYlUhA|Z?_T{+IQVZ`vOjn*Zv%7sbaEma3Z&W zQs@$^{wL&OQl-oQc+kETzoSj;F*zY#6M=MTx4kHk3zEfJ@^5Y0mzO%odqX|%HF$;Z znk-}1oa8`-48ZMyyeL5C%!Bx5jnQsJKsyIK&p7cu!dW8`1Wj`J-V9QatrI3*1CQ`d zXmQ`^JSQ>70PuJKc{<_mCzZ1U12i2#0-_0dafDpfLJj9`?qZ-tzuK>Q@@#v1w;s^9$Y=>P<#7(is9 zv`=W!gxG}m<2FD}h;;FEJT1DUNolv3B0+*r2?~0s7CwW3D06a=>R;NoLtv!WdG`Z2 zUV+F;?<_4aAE9sS0R&x@{eK^!_2n3noMf%Hc@cqd{rvS*e9`+*MtnJ|GfJTu6RJ;NR@!Vr&i6tQO=Ed``zqlV||=VJidPaB3W zcqYjgRM2d+0BBYq4N_s>L!s6}0#isB-pmzcbz2D}*br~}rtweOK7R!;bO!L%3rx3p z@b^1`i6=El+ASae3%!`FP*4(BORAXDXL2x(nq`S66BK|}AIWb(%A`@YE8Ihg7r`b~ z=2{#jqO1mjY5?IUXa)-8!zot75=mJBWKaHtWaUM1egtxpnzRx?Alfa^#g;c-Owz(D zK~7xnro_wd9H{bh>Ps100H7td)uJYpYy`>yj3GjxK-}`XLd1Lxz!gnWk@{I7XG(wj z#Loly*#Jx#rhaj-m8MS0LAc<4krkS7S^(#JBFI~qRHH;T4>+^FI4yzlm)Jf_f#_9; zzX^PmvfpY_V|A#V=}!B!rGm($z&WpwrwJeyfaCKJ2NmiFBFboLutBcsdbS|)=5N3q zrTWm7jU~jB5kRC8a!P^EJ;dIkg8sncd&+%j*AKm$)E`ZF?h@Nz5n)vxVu#nOL|RO^ z3r@Vc<<|f(vM7tR$j+p|oghn&2124Ko{m__loL5e3Q;;!PTF1C7rg2~xK}uT1$qU+ z`ys_2Epwg^dD!pe2r(l~NvFF{Q;?pIT)E!FqA4O)N)S%W@EPd)_#{LPKu>|^HpP<@ zo@-nsn?xQHdTg=?ZQ5;NQg1gwWI;qGEdyO^z0|{!7$WVT^+a$~ zs0aQ2kihX$-mBvTieqTBDBX7*HK-$}&UVSvFIRYnX;%vgR7=QT9tTnnK)HaX?F98+ z0dc_y7%X99lp7@8ADHmy|JZ*DfOHb8&C8)FZTfpWrv~QRNrDQD6%h)n|D|8L3g4%} z_govJ3cpSOeuba8+7LAOPV{RYxIB5c!}Aw_jp=)=7m}WP2@NTIe!=H$hj*xOPAWWO zVu|S)ukW4C0FBo+`1{wNLEp0l0_!@QO}ZCUFqgygZ{eBHne;P5wigY~ae*^=eL>VE z4@$vzsrF305Nh`O{4=)j-AGYzg#g^NTUOME&)>o`r-gC!-MuhR&#Z-e>G!rC&T)kp z;CHLQcPimN75%M1EQcIX;q$gbGA!X!amZ_x3*KcpJY$OSDR0;CY%AO=|BOVIDKufHcuIGGe9L9Ati6aq6`n_`dng|$ z)Trf9+f=w81?t}xp0S^)`XbKy`@EoLOy|J!(G~IOn!xpwI)I>O6eT-0At&(EC-$ zt?iHl+aVXF`|Nk2e9_3CYRU$8mg?Si=#kq)Euv62RCqq8KDoU-4+>|khIfC7MJcEA zO1+KO38`Kx51+M#XPo-~syvOX1E#UQqbt;P1>yz8-FnC`I^5HzJYC`Ew}2U(-cNZ6 ze$|JVN3p(!-1aukQhcs2?vuj3ETJZUx*z3>dqXvsLT^Qup*6%t1&pAEzq16~FJUtZ zefkxCehs~84LHIn$EW*H9`L~WfVG_JjTSJU_K=g`{!;_?LwAtAcL{x7IbekpZ*}Nd z6rOQCe5Mlc<^O2l{2M^MykHH=;eplwyy)SwpTPHe2rj2T`}E%n9Ns5zK7H5vG6B~^ zQf{G1IRTCJaM|C0WA$*s(xs}Qh^`L>c70jk=m3(HL!zoLfSCkV=Z-wVw1K9sI@VD@JYXB6AcwrGWKlPzVPYJxdXgbS75mm$8YS1*7L(_Qr zeNPSQQz26x;@1h}R{#J`!1Yt%*B+YO^qx}zsRt0aKI9ucG^S5LM0(!kWqdjnGU+VW zkVn!pE&*VpLZ}^bTp}deAqKVw;zFTmdlUQKG+!+=x#gjGX@`O}HDC!~DldTjQ`|b$ zBI*7YF?nAe^15Es0rk-Qm4_x<0oX}EbIQL@b=)ZzQ$tn*@cZ-}>cc&IYC=w++6gdz zstGF8ekUNVJv3;EtZ9cvEuD+E&qs%Ip7MKxSf!V_{(JN4z=Qur?AP1`P zN7|u>Ncp0K?^GXRrj!LvZ)5M%*=vWMGhs$0U})tb2BaL2YQm>JqAH7cp2&eyJ@AD4 z)Q5al4tchPUbu$5TS9N77rF2M-9JTV#d=auKQWI_N%_>|Jt=7ts7ngQs;nwb#Z&zP zfK5$$Vx>=t_){a%9vanhXo!-!CpDr^!Innl3IyA?39|)YBY~Yyszm~Q%c1ah0IG&F zkw};Xz&|x+Cvu}b6y*t=PKCp(jJOviPe;P zaWF+%iK&P|*MEJG`kn;_Y^+v^XiWTYZw--6~)Tp%)64 z2e2SDMmn6O`Vhz8%6p!mmV7nf2S_0Be^-==e$^#gl>NU>?B!rU7`r z04~;t_i_?pJk`8!2%b}XOJ_b|6Q>D-RI9cZ=f51DXFUMMI=s&l&h$ip)~ zca-knX>#Z(ht!8&<_)Gs{a&iuioTl^D2JSua-jjPL%c;6F_b?SSb-d}lHtG>la z{@;V-|0dY}^zakdULFAXZ-3Saz}8Dr;0f?AdZz@_!_U^s0!A-^*z(1@`R#WrFTfc+ zfW_YenBOYw^y2UR?Ynw&cFLEZ{hR-$m+$=P*G}KzO#*u}u~NSHd-dWh>C3ZKzWB`F zoN>MUjBoCsesPcAT7Z1>=ibK3qIV;YE7xPqsy1^sM&;#s zd3(n7@_iINkF=JTKlius?allCC!h1}eSPzJ|4B?MFXMt<#67*dlW+3qH)rZ??kvB^ z3+0zF>6_g8Z5{Vd>ajO*=S?muzxY0HYv}TeIIWj=vb>04ZyM-t`jfYH>)X2Ro4%;L z{F%SK*Kg||y^M*!okaeowtrJYzUjlhIhSwlvA&42zpc-u-%Xd6U&iD&G2`vu`8L1& zlOFBOnb0rq@Z0+4n>+hW3@%^B$!~BFeHp`l^Q^w97o=xm@NMl>zKB86v%pg?-{YHi z{>^v&Hnx15hu+q9Z}QCBck$K&=QsWJn|S?g5BJS?euF9erWSeo?!T>x-o}n^Yu*2- dfBsv50RUSu@K(RRpNRkf002ovPDHLkV1g{pj-dbm From 703b2a92861585cfd04e2ee00322cbe2bdaeeb01 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:27:38 +0100 Subject: [PATCH 09/17] Wire up containers test, close pages after validating --tests containers was advertised but never ran. Also moves the sitemap reader to util.ts --- src/browser.ts | 25 ++++---------- src/commands/validate.ts | 70 ++++++++++------------------------------ src/util.ts | 42 ++++++++++++++++++++++-- 3 files changed, 63 insertions(+), 74 deletions(-) diff --git a/src/browser.ts b/src/browser.ts index f4ea65e..dd1f0e5 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -40,24 +40,13 @@ export async function countElementsOnPage(page: Page, selector: string): Promise return await page.evaluate((selector) => document.querySelectorAll(selector).length, selector); } -export async function getNumberOfContainers(page: Page, selectors: string[]): Promise { - return await countElementsOnPage(page, selectors.join(', ')); -} - -export async function validateNumberOfContainers( - page: Page, - url: string, - expected: number, - containers: string[] -) { - const received = await getNumberOfContainers(page, containers); - if (received !== expected) { - return { - text: 'Incorrect number of containers', - expected, - received, - page: url - }; +export async function validateContainers(page: Page, containers: string[]) { + for (const selector of containers) { + // eslint-disable-next-line no-await-in-loop + const count = await countElementsOnPage(page, selector); + if (count !== 1) { + throw new Error(`Expected exactly one container ${selector}, found ${count}`); + } } } diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 934bd9d..dda9c2a 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -1,6 +1,3 @@ -import * as fs from 'fs/promises'; -import { resolve } from 'path'; - import { Command, Flags } from '@oclif/core'; import chalk from 'chalk'; import { Listr, ListrTask } from 'listr2'; @@ -11,9 +8,10 @@ import { createBrowser, validateAnimationDuration, validateAnimationStyles, + validateContainers, visitPage } from '../browser.js'; -import { decodeXmlEntities, getLocalUrl, isUrl, isValidUrl, n } from '../util.js'; +import { getLocalUrl, isValidUrl, n, readSitemapUrls } from '../util.js'; import { loadConfig, type Config } from '../config.js'; interface Ctx { @@ -207,7 +205,6 @@ export default class Validate extends Command { } async catch(error: Error) { - // this.error(error as Error) throw error; } @@ -253,7 +250,7 @@ export default class Validate extends Command { } } else if (sitemap) { source = 'parsed sitemap'; - urls = await this.getPageUrlsFromSitemap(ctx); + urls = await readSitemapUrls(sitemap); } else { throw new Error('You must specify either a url or a sitemap to validate.'); } @@ -261,70 +258,37 @@ export default class Validate extends Command { return { urls, source }; } - async getPageUrlsFromSitemap(ctx: Ctx): Promise { - return this.readSitemapUrls(ctx.config.validate.sitemap); - } - - /** - * Read all page URLs from a sitemap file or URL. - * Sitemap indexes (e.g. wp-sitemap.xml) are followed recursively. - * @see https://www.sitemaps.org/protocol.html - * @param sitemap Local file path or URL - * @returns All page URLs found - */ - async readSitemapUrls(sitemap: string): Promise { - let contents: string; - if (isUrl(sitemap)) { - try { - contents = await fetch(sitemap).then((res) => res.text()); - } catch (error) { - throw new Error(`Error fetching sitemap: ${error}`); - } - } else { - try { - contents = await fs.readFile(resolve(process.cwd(), sitemap), 'utf8'); - } catch (error) { - throw new Error(`Error reading sitemap: ${error}`); - } - } - - const locs = [...contents.matchAll(/\s*(?:)?\s*<\/loc>/gs)] - .map(([, loc]) => decodeXmlEntities(loc.trim())) - .filter((loc) => isValidUrl(loc)); - - if (/]/.test(contents)) { - const nested = await Promise.all(locs.map((loc) => this.readSitemapUrls(loc))); - return nested.flat(); - } - - return locs; - } - async validatePage(ctx: Ctx, url: string): Promise { const { tests, styles } = ctx.config.validate; - const { animationSelector } = ctx.config.swup; + const { animationSelector, containers } = ctx.config.swup; const { browser } = ctx; const page = await visitPage(browser!, url); const allChecks = { + containers: () => validateContainers(page, containers), 'transition-duration': () => validateAnimationDuration(page, animationSelector), 'transition-styles': () => validateAnimationStyles(page, animationSelector, styles) }; const checks = Object.entries(allChecks).filter( ([test]) => !tests.length || tests.includes(test) ); - if (!checks.length) { + if (checks.length === 0) { throw new Error( `No valid tests specified. Available tests: ${Object.keys(allChecks).join(', ')}` ); } - for (const [, test] of checks) { - try { + + try { + // Run checks one after another: they toggle classes on the same page + for (const [, test] of checks) { + // eslint-disable-next-line no-await-in-loop await test(); - } catch (error) { - throw new Error( - chalk`Validation {red failed} for {magenta ${getLocalUrl(url)}}: ${error}` - ); } + } catch (error) { + throw new Error( + chalk`Validation {red failed} for {magenta ${getLocalUrl(url)}}: ${error}` + ); + } finally { + await page.close(); } } } diff --git a/src/util.ts b/src/util.ts index 37312f0..e53e550 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1,5 +1,6 @@ -import * as fs from 'fs/promises'; -import { URL } from 'url'; +import * as fs from 'node:fs/promises'; +import { resolve } from 'node:path'; +import { URL } from 'node:url'; import { camelCase, upperFirst } from 'lodash-es'; @@ -15,7 +16,7 @@ export function isUrl(str: string): boolean { return /^https?:\/\//.test(str); } -export function decodeXmlEntities(str: string): string { +function decodeXmlEntities(str: string): string { return str .replaceAll('<', '<') .replaceAll('>', '>') @@ -24,6 +25,41 @@ export function decodeXmlEntities(str: string): string { .replaceAll('&', '&'); } +/** + * Read all page URLs from a sitemap file or URL. + * Sitemap indexes (e.g. wp-sitemap.xml) are followed recursively. + * @see https://www.sitemaps.org/protocol.html + * @param sitemap Local file path or URL + * @returns All page URLs found + */ +export async function readSitemapUrls(sitemap: string): Promise { + let contents: string; + if (isUrl(sitemap)) { + try { + contents = await fetch(sitemap).then((res) => res.text()); + } catch (error) { + throw new Error(`Error fetching sitemap: ${error}`); + } + } else { + try { + contents = await fs.readFile(resolve(process.cwd(), sitemap), 'utf8'); + } catch (error) { + throw new Error(`Error reading sitemap: ${error}`); + } + } + + const locs = [...contents.matchAll(/\s*(?:)?\s*<\/loc>/gs)] + .map(([, loc]) => decodeXmlEntities(loc.trim())) + .filter((loc) => isValidUrl(loc)); + + if (/]/.test(contents)) { + const nested = await Promise.all(locs.map((loc) => readSitemapUrls(loc))); + return nested.flat(); + } + + return locs; +} + export async function fileExists(path: string): Promise { try { await fs.access(path); From 50eb291a7ab88e9d10862cefc735fc53f0cb7915 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:28:08 +0100 Subject: [PATCH 10/17] Replace stale create test with sitemap reader test --- package-lock.json | 136 ----------------------------------- package.json | 1 - test/commands/create.test.ts | 10 --- test/helpers/init.js | 4 -- test/sitemap.test.ts | 56 +++++++++++++++ 5 files changed, 56 insertions(+), 151 deletions(-) delete mode 100644 test/commands/create.test.ts create mode 100644 test/sitemap.test.ts diff --git a/package-lock.json b/package-lock.json index 879f651..7240b57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,6 @@ "swup": "bin/run.js" }, "devDependencies": { - "@oclif/test": "^2.5.6", "@types/chai": "^4.3.6", "@types/lodash-es": "^4.17.9", "@types/mocha": "^10.0.1", @@ -2616,58 +2615,6 @@ "node": ">=14.0.0" } }, - "node_modules/@oclif/test": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@oclif/test/-/test-2.5.6.tgz", - "integrity": "sha512-AcusFApdU6/akXaofhBDrY4IM9uYzlOD9bYCCM0NwUXOv1m6320hSp2DT/wkj9H1gsvKbJXZHqgtXsNGZTWLFg==", - "dev": true, - "dependencies": { - "@oclif/core": "^2.15.0", - "fancy-test": "^2.0.42" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/test/node_modules/@oclif/core": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.15.0.tgz", - "integrity": "sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA==", - "dev": true, - "dependencies": { - "@types/cli-progress": "^3.11.0", - "ansi-escapes": "^4.3.2", - "ansi-styles": "^4.3.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.2", - "clean-stack": "^3.0.1", - "cli-progress": "^3.12.0", - "debug": "^4.3.4", - "ejs": "^3.1.8", - "get-package-type": "^0.1.0", - "globby": "^11.1.0", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.14.1", - "natural-orderby": "^2.0.3", - "object-treeify": "^1.1.33", - "password-prompt": "^1.1.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "supports-hyperlinks": "^2.2.0", - "ts-node": "^10.9.1", - "tslib": "^2.5.0", - "widest-line": "^3.1.0", - "wordwrap": "^1.0.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@octokit/auth-token": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", @@ -3563,21 +3510,6 @@ "@types/node": "*" } }, - "node_modules/@types/sinon": { - "version": "10.0.17", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.17.tgz", - "integrity": "sha512-+6ILpcixQ0Ma3dHMTLv4rSycbDXkDljgKL+E0nI2RUxxhYTFyPSjt6RVMxh7jUshvyVcBvicb0Ktj+lAJcjgeA==", - "dev": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.3.tgz", - "integrity": "sha512-4g+2YyWe0Ve+LBh+WUm1697PD0Kdi6coG1eU0YjQbwx61AZ8XbEpL1zIT6WjuUKrCMCROpEaYQPDjBnDouBVAQ==", - "dev": true - }, "node_modules/@types/vinyl": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.8.tgz", @@ -7214,25 +7146,6 @@ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "dev": true }, - "node_modules/fancy-test": { - "version": "2.0.42", - "resolved": "https://registry.npmjs.org/fancy-test/-/fancy-test-2.0.42.tgz", - "integrity": "sha512-TX8YTALYAmExny+f+G24MFxWry3Pk09+9uykwRjfwjibRxJ9ZjJzrnHYVBZK46XQdyli7d+rQc5U/KK7V6uLsw==", - "dev": true, - "dependencies": { - "@types/chai": "*", - "@types/lodash": "*", - "@types/node": "*", - "@types/sinon": "*", - "lodash": "^4.17.13", - "mock-stdin": "^1.0.0", - "nock": "^13.3.3", - "stdout-stderr": "^0.1.9" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -9090,12 +9003,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -10208,12 +10115,6 @@ "node": ">=10" } }, - "node_modules/mock-stdin": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mock-stdin/-/mock-stdin-1.0.0.tgz", - "integrity": "sha512-tukRdb9Beu27t6dN+XztSRHq9J0B/CoAOySGzHfn8UTfmqipA5yNT/sDUEyYdAV3Hpka6Wx6kOMxuObdOex60Q==", - "dev": true - }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -10282,21 +10183,6 @@ "node": ">= 0.6" } }, - "node_modules/nock": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz", - "integrity": "sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -12305,15 +12191,6 @@ "node": ">=0.12" } }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -14049,19 +13926,6 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, - "node_modules/stdout-stderr": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/stdout-stderr/-/stdout-stderr-0.1.13.tgz", - "integrity": "sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", diff --git a/package.json b/package.json index 69861b4..6644310 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "typescript": "^5.2.2" }, "devDependencies": { - "@oclif/test": "^2.5.6", "@types/chai": "^4.3.6", "@types/lodash-es": "^4.17.9", "@types/mocha": "^10.0.1", diff --git a/test/commands/create.test.ts b/test/commands/create.test.ts deleted file mode 100644 index 1a62023..0000000 --- a/test/commands/create.test.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { expect, test } from '@oclif/test' - -describe('create', () => { - test - .stdout() - .command(['create', '--from=oclif']) - .it('runs create cmd', ctx => { - expect(ctx.stdout).to.contain('hello friend from oclif!') - }) -}) diff --git a/test/helpers/init.js b/test/helpers/init.js index a5fa93d..34ba48a 100644 --- a/test/helpers/init.js +++ b/test/helpers/init.js @@ -1,7 +1,3 @@ import path from 'node:path' process.env.TS_NODE_PROJECT = path.resolve('test/tsconfig.json') -process.env.NODE_ENV = 'development' - -global.oclif = global.oclif || {} -global.oclif.columns = 80 diff --git a/test/sitemap.test.ts b/test/sitemap.test.ts new file mode 100644 index 0000000..7bdba28 --- /dev/null +++ b/test/sitemap.test.ts @@ -0,0 +1,56 @@ +import { mkdtemp, writeFile } from 'node:fs/promises'; +import { createServer, type Server } from 'node:http'; +import type { AddressInfo } from 'node:net'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; + +import { expect } from 'chai'; + +import { readSitemapUrls } from '../src/util.js'; + +describe('readSitemapUrls', () => { + let server: Server; + let base: string; + + before(async () => { + server = createServer((req, res) => { + res.setHeader('content-type', 'application/xml'); + if (req.url === '/index.xml') { + res.end(`${base}/pages.xml`); + } else { + res.end(`${base}/a${base}/b`); + } + }); + await new Promise((resolve) => { + server.listen(0, resolve); + }); + base = `http://localhost:${(server.address() as AddressInfo).port}`; + }); + + after(() => { + server.close(); + }); + + it('reads a local file by absolute path, decodes entities and CDATA', async () => { + const file = join(await mkdtemp(join(tmpdir(), 'swup-cli-')), 'sitemap.xml'); + await writeFile( + file, + ` + + https://example.com/?a=1&b=2 + + + + not-a-url + ` + ); + expect(await readSitemapUrls(file)).to.deep.equal([ + 'https://example.com/?a=1&b=2', + 'https://example.com/cdata' + ]); + }); + + it('follows sitemap indexes', async () => { + expect(await readSitemapUrls(`${base}/index.xml`)).to.deep.equal([`${base}/a`, `${base}/b`]); + }); +}); From 292334139554e8df6db186e9076fc781238639a4 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:51:58 +0100 Subject: [PATCH 11/17] Fix all eslint problems Mostly autofix. Also: typed package info instead of @ts-ignore, drop shelljs (only used for exit), lint TS unused vars with the TS rule, read style properties in parallel --- .eslintrc.cjs | 4 ++- package-lock.json | 27 -------------------- package.json | 1 - src/browser.ts | 47 ++++++++++++++++++++--------------- src/commands/create.ts | 37 ++++++++++++++++----------- src/commands/package/build.ts | 24 ++++++++++-------- src/commands/package/check.ts | 4 +-- src/commands/package/dev.ts | 22 +++++++++------- src/commands/validate.ts | 40 +++++++++++++++++------------ src/package.ts | 10 +++++++- src/repo.ts | 3 ++- src/resolve.ts | 8 +++--- src/shell.ts | 8 +++--- src/util.ts | 28 +++++++++++++-------- test/sitemap.test.ts | 13 +++++++--- 15 files changed, 152 insertions(+), 124 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index e21a328..114ec8b 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -10,7 +10,9 @@ module.exports = { /* First exclude everything, then re-include /src, then exclude tests */ ignorePatterns: ['/*', '!/src', '*.test.ts'], rules: { - 'no-unused-vars': ['error', { vars: 'all', args: 'none' }], + // The base rule reports TS enums and types as unused + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': ['error', { vars: 'all', args: 'none' }], '@typescript-eslint/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }], '@typescript-eslint/unbound-method': 'off', '@typescript-eslint/no-floating-promises': 'off', diff --git a/package-lock.json b/package-lock.json index 7240b57..41fcbb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,6 @@ "@types/lodash-es": "^4.17.9", "@types/mocha": "^10.0.1", "@types/node": "^20.7.0", - "@types/shelljs": "^0.8.12", "chai": "^4.0.0", "eslint": "^8.50.0", "eslint-config-oclif": "^5.0.0", @@ -3397,16 +3396,6 @@ "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", "dev": true }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -3449,12 +3438,6 @@ "@types/lodash": "*" } }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, "node_modules/@types/mocha": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.2.tgz", @@ -3500,16 +3483,6 @@ "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, - "node_modules/@types/shelljs": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.13.tgz", - "integrity": "sha512-++uMLOQSLlse1kCfEOwhgmHuaABZwinkylmUKCpvcEGZUov3TtM+gJZloSkW/W+9pEAEg/VBOwiSR05oqJsa5A==", - "dev": true, - "dependencies": { - "@types/glob": "~7.2.0", - "@types/node": "*" - } - }, "node_modules/@types/vinyl": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.8.tgz", diff --git a/package.json b/package.json index 6644310..2d28ffc 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "@types/lodash-es": "^4.17.9", "@types/mocha": "^10.0.1", "@types/node": "^20.7.0", - "@types/shelljs": "^0.8.12", "chai": "^4.0.0", "eslint": "^8.50.0", "eslint-config-oclif": "^5.0.0", diff --git a/src/browser.ts b/src/browser.ts index dd1f0e5..0379587 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -1,4 +1,4 @@ -import { URL } from 'url'; +import { URL } from 'node:url'; import { chromium } from 'playwright'; import type { Browser, Page } from 'playwright'; @@ -22,7 +22,7 @@ export async function createBrowser(): Promise<{ teardown: () => Promise; }> { const browser = await chromium.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); - const teardown = async () => await browser.close(); + const teardown = async () => browser.close(); return { browser, teardown }; } @@ -33,11 +33,11 @@ export async function visitPage(browser: Browser, url: string) { } export async function elementExists(page: Page, selector: string): Promise { - return await page.evaluate((selector) => !!document.querySelector(selector), selector); + return page.evaluate((selector) => Boolean(document.querySelector(selector)), selector); } export async function countElementsOnPage(page: Page, selector: string): Promise { - return await page.evaluate((selector) => document.querySelectorAll(selector).length, selector); + return page.evaluate((selector) => document.querySelectorAll(selector).length, selector); } export async function validateContainers(page: Page, containers: string[]) { @@ -55,7 +55,7 @@ export async function getStyleProperty( selector: string, property: string ): Promise { - return await page.evaluate( + return page.evaluate( ({ selector, property }) => { const element = document.querySelector(selector); return element ? window.getComputedStyle(element).getPropertyValue(property) : ''; @@ -69,14 +69,11 @@ async function getStyleProperties( selector: string, properties: string[] ): Promise { - const styles: Styles = {}; - for (const prop of properties) { - const style = await getStyleProperty(page, selector, prop); - if (style) { - styles[prop] = style; - } - } - return styles; + const values = await Promise.all( + properties.map((prop) => getStyleProperty(page, selector, prop)) + ); + const entries = properties.map((prop, i) => [prop, values[i]]); + return Object.fromEntries(entries.filter(([, value]) => value)); } async function addChangingClass(page: Page) { @@ -99,8 +96,12 @@ async function addAnimatingClass(page: Page) { * @returns The longer of transition and animation duration */ export async function getAnimationDuration(page: Page, selector: string): Promise { - const transition = parseFloat(await getStyleProperty(page, selector, 'transition-duration')); - const animation = parseFloat(await getStyleProperty(page, selector, 'animation-duration')); + const transition = Number.parseFloat( + await getStyleProperty(page, selector, 'transition-duration') + ); + const animation = Number.parseFloat( + await getStyleProperty(page, selector, 'animation-duration') + ); const duration = Math.max(transition, animation); return duration * 1000; } @@ -147,12 +148,13 @@ export function crawlSiteForUrls(url: string): Promise { const crawler = new Crawler({ maxConnections: 10, skipDuplicates: true, - callback: (error, { url: href, statusCode, headers, $ }, release) => { + callback(error, { url: href, statusCode, headers, $ }, release) { const done = release as () => void; if (error) { console.error(error); return done(); } + if (statusCode < 200 || statusCode >= 400) { console.warn( chalk`{yellow !} Received status {yellow ${statusCode}} {dim on} ${getLocalUrl( @@ -161,17 +163,22 @@ export function crawlSiteForUrls(url: string): Promise { ); return done(); } + if (!isHtmlContentType(headers)) { return done(); } + urls.push(href); $('a[href]:not([download])').each((_: number, el: unknown) => { const href = removeHash(String($(el).attr('href')).trim()); const url = new URL(href, base); - if (isValidUrl(url)) { - if (!urls.includes(url.href) && isLocalUrl(url, base) && !isAssetUrl(url)) { - crawler.queue(url.href); - } + if ( + isValidUrl(url) && + !urls.includes(url.href) && + isLocalUrl(url, base) && + !isAssetUrl(url) + ) { + crawler.queue(url.href); } }); setTimeout(done, 5); diff --git a/src/commands/create.ts b/src/commands/create.ts index 10c56e1..f906697 100644 --- a/src/commands/create.ts +++ b/src/commands/create.ts @@ -1,5 +1,5 @@ -import * as fs from 'fs/promises'; -import { join } from 'path'; +import * as fs from 'node:fs/promises'; +import { join } from 'node:path'; import { Args, Command, Flags } from '@oclif/core'; import chalk from 'chalk'; @@ -33,6 +33,7 @@ export default class Create extends Command { static summary = 'Create a swup plugin or theme'; static description = 'Generate a new swup plugin or theme from an official, best-practice template'; + static examples = [ `<%= config.bin %> <%= command.id %> SwupExamplePlugin`, `<%= config.bin %> <%= command.id %> SwupExampleTheme` @@ -69,7 +70,7 @@ export default class Create extends Command { } = await this.parse(Create); let type = Type[flags.type as keyof typeof Type]; - if (type !== Type.theme && args.name.match(/theme$/i)) { + if (type !== Type.theme && /theme$/i.test(args.name)) { type = Type.theme; this.log( chalk`Provided name {magenta ${args.name}} ends with {magenta Theme}. Creating a theme instead.` @@ -125,11 +126,14 @@ export default class Create extends Command { `Unable to create directory ${ctx.dir}. A file of the same name already exists.` ); } + if (!empty) { throw new Error(`Directory ${ctx.dir} already exists and has files in it.`); } + return; } + try { await fs.mkdir(ctx.path); } catch (error) { @@ -161,8 +165,8 @@ export default class Create extends Command { const pluginPath = join(ctx.path, 'src/index.js'); try { let data = await fs.readFile(pluginPath, 'utf8'); - data = data.replace(/PluginName/g, ctx.names.pascal); - data = data.replace(/ThemeName/g, ctx.names.pascal); + data = data.replaceAll('PluginName', ctx.names.pascal); + data = data.replaceAll('ThemeName', ctx.names.pascal); await fs.writeFile(pluginPath, data); } catch (error) { throw new Error(`Error updating plugin file: ${error}`); @@ -198,22 +202,25 @@ export default class Create extends Command { const readmePath = join(ctx.path, 'readme.md'); try { let data = await fs.readFile(readmePath, 'utf8'); - data = data.replace( - / *\[comment\]: CLI-remove-start[\s\S]*\[comment\]: CLI-remove-end */g, + data = data.replaceAll( + / *\[comment]: CLI-remove-start[\S\s]*\[comment]: CLI-remove-end */g, '' ); - data = data.replace( - /swup-\[(plugin-name|theme-name)\]-(plugin|theme)/g, + data = data.replaceAll( + /swup-\[(plugin-name|theme-name)]-(plugin|theme)/g, ctx.names.kebab ); - data = data.replace( - /Swup \[(Plugin Name|Theme Name)\] (Plugin|Theme)/g, + data = data.replaceAll( + /Swup \[(Plugin Name|Theme Name)] (Plugin|Theme)/g, ctx.names.title ); - data = data.replace(/ \[(Plugin Name|Theme Name)\]/g, ctx.names.title); - data = data.replace(/Swup\[(PluginName|ThemeName)\](Plugin|Theme)/g, ctx.names.pascal); - data = data.replace(/\[(PluginName|ThemeName)\]/g, ctx.names.pascal); - data = data.replace(/(SwupNamePlugin|SwupNameTheme)/g, ctx.names.pascal); + data = data.replaceAll(/ \[(Plugin Name|Theme Name)]/g, ctx.names.title); + data = data.replaceAll( + /Swup\[(PluginName|ThemeName)](Plugin|Theme)/g, + ctx.names.pascal + ); + data = data.replaceAll(/\[(PluginName|ThemeName)]/g, ctx.names.pascal); + data = data.replaceAll(/(SwupNamePlugin|SwupNameTheme)/g, ctx.names.pascal); data = `${data.trim()}\n`; await fs.writeFile(readmePath, data); } catch (error) { diff --git a/src/commands/package/build.ts b/src/commands/package/build.ts index 2da298c..6ba8fd9 100644 --- a/src/commands/package/build.ts +++ b/src/commands/package/build.ts @@ -6,7 +6,7 @@ import { exec } from '../../shell.js'; import { checkPluginPackageInfo, loadPackageInfo } from '../../package.js'; interface Ctx { - pckg?: unknown; + pckg?: { name?: string }; } export default class Build extends Command { @@ -17,7 +17,8 @@ export default class Build extends Command { static flags = { check: Flags.boolean({ summary: 'Check package info', - description: 'Check for required package.json fields before bundling. Disable using --no-check.', + description: + 'Check for required package.json fields before bundling. Disable using --no-check.', required: false, default: true, allowNo: true @@ -32,14 +33,14 @@ export default class Build extends Command { [ { title: 'Load package info', - task: async (ctx) => { + async task(ctx) { ctx.pckg = await loadPackageInfo(); } }, { title: 'Check package info', enabled: () => flags.check, - task: async (ctx) => { + async task(ctx) { const { errors } = checkPluginPackageInfo(ctx.pckg); if (errors?.length) { throw new Error(errors.join('\n')); @@ -48,20 +49,23 @@ export default class Build extends Command { }, { title: 'Bundle package', - task: async (ctx, task) => { - // @ts-ignore + async task(ctx, task) { task.title = chalk`Bundle package {magenta ${ctx.pckg?.name}}`; return task.newListr(() => [ { title: 'Create module bundle', - task: async () => { - exec('BROWSERSLIST_ENV=modern npx microbundle -f modern,esm,cjs --css inline'); + async task() { + exec( + 'BROWSERSLIST_ENV=modern npx microbundle -f modern,esm,cjs --css inline' + ); } }, { title: 'Create standalone bundle', - task: async () => { - exec('BROWSERSLIST_ENV=production npx microbundle -f umd --css inline --external none --define process.env.NODE_ENV=production'); + async task() { + exec( + 'BROWSERSLIST_ENV=production npx microbundle -f umd --css inline --external none --define process.env.NODE_ENV=production' + ); } } ]); diff --git a/src/commands/package/check.ts b/src/commands/package/check.ts index 4c30b56..2b74a82 100644 --- a/src/commands/package/check.ts +++ b/src/commands/package/check.ts @@ -18,13 +18,13 @@ export default class Check extends Command { [ { title: 'Load package info', - task: async () => { + async task() { ctx.pckg = await loadPackageInfo(); } }, { title: 'Check package info', - task: async (ctx) => { + async task(ctx) { const { errors } = checkPluginPackageInfo(ctx.pckg); if (errors?.length) { throw new Error(errors.join('\n')); diff --git a/src/commands/package/dev.ts b/src/commands/package/dev.ts index 40882c8..175d089 100644 --- a/src/commands/package/dev.ts +++ b/src/commands/package/dev.ts @@ -6,18 +6,21 @@ import { exec } from '../../shell.js'; import { checkPluginPackageInfo, loadPackageInfo } from '../../package.js'; interface Ctx { - pckg?: unknown; + pckg?: { name?: string }; } export default class Dev extends Command { static summary = 'Develop package'; - static description = 'Build package code for development using microbundle and watch for changes'; + static description = + 'Build package code for development using microbundle and watch for changes'; + static examples = ['<%= config.bin %> <%= command.id %>']; static flags = { check: Flags.boolean({ summary: 'Check package info', - description: 'Check for required package.json fields before bundling. Disable using --no-check.', + description: + 'Check for required package.json fields before bundling. Disable using --no-check.', required: false, default: true, allowNo: true @@ -32,14 +35,14 @@ export default class Dev extends Command { [ { title: 'Load package info', - task: async (ctx) => { + async task(ctx) { ctx.pckg = await loadPackageInfo(); } }, { title: 'Check package info', enabled: () => flags.check, - task: async (ctx) => { + async task(ctx) { const { errors } = checkPluginPackageInfo(ctx.pckg); if (errors?.length) { throw new Error(errors.join('\n')); @@ -48,14 +51,15 @@ export default class Dev extends Command { }, { title: 'Bundle package', - task: async (ctx, task) => { - // @ts-ignore + async task(ctx, task) { task.title = chalk`Bundle package {magenta ${ctx.pckg?.name}} and watch for changes`; return task.newListr(() => [ { title: 'Start watch mode', - task: async () => { - exec('BROWSERSLIST_ENV=development npx microbundle -f modern --css inline -w'); + async task() { + exec( + 'BROWSERSLIST_ENV=development npx microbundle -f modern --css inline -w' + ); } } ]); diff --git a/src/commands/validate.ts b/src/commands/validate.ts index dda9c2a..31d11dd 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -26,6 +26,7 @@ export default class Validate extends Command { static summary = 'Validate a swup-powered site'; static description = 'Crawl your site and validate that all pages are accessible and render correctly'; + static examples = [ `<%= config.bin %> <%= command.id %>`, `<%= config.bin %> <%= command.id %> --url https://mysite.com/about`, @@ -33,6 +34,7 @@ export default class Validate extends Command { `<%= config.bin %> <%= command.id %> --tests containers,transition-duration`, `<%= config.bin %> <%= command.id %> --asynchronous` ]; + static flags = { url: Flags.string({ char: 'u', @@ -108,11 +110,11 @@ export default class Validate extends Command { const tasks: ListrTask[] = [ { title: 'Set up', - task: async (ctx, task) => { + async task(ctx, task) { return task.newListr(() => [ { title: 'Launch browser', - task: async (ctx) => { + async task(ctx) { const { browser, teardown } = await createBrowser(); ctx.browser = browser; ctx.teardown = teardown; @@ -134,17 +136,21 @@ export default class Validate extends Command { }, { title: 'Limit pages', - enabled: (ctx) => ctx.config.validate.limit > 0 && ctx.urls.length > ctx.config.validate.limit, - task: async (ctx, task) => { + enabled: (ctx) => + ctx.config.validate.limit > 0 && ctx.urls.length > ctx.config.validate.limit, + async task(ctx, task) { ctx.urls = ctx.urls.slice(0, ctx.config.validate.limit); - task.title = chalk`Limit to {blue ${ctx.urls.length} ${n(ctx.urls.length, 'page')}}`; + task.title = chalk`Limit to {blue ${ctx.urls.length} ${n( + ctx.urls.length, + 'page' + )}}`; } }, { title: 'Validate pages', task: async (ctx, task) => { return task.newListr( - ctx.urls.map((url, index) => ({ + ctx.urls.map((url) => ({ title: `Validating ${getLocalUrl(url)}`, task: async (_, subtask) => { try { @@ -163,13 +169,12 @@ export default class Validate extends Command { { title: 'Report results', task: async ({ errors, urls: { length: total } }, task) => { - if (errors.length) { - errors.forEach((error) => this.warn(error)); + if (errors.length > 0) { + for (const error of errors) this.warn(error); this.error( - chalk`{red.bold Validation failed} for {red ${errors.length}/${total}} ${n( - total, - 'page' - )}` + chalk`{red.bold Validation failed} for {red ${ + errors.length + }/${total}} ${n(total, 'page')}` ); } else { task.title = chalk`{green.bold Validation passed} for {green ${total}/${total}} ${n( @@ -185,7 +190,7 @@ export default class Validate extends Command { task.newListr(() => [ { title: 'Closing browser', - task: async (ctx) => { + async task(ctx) { await ctx.teardown!(); ctx.teardown = undefined; } @@ -200,6 +205,7 @@ export default class Validate extends Command { if (ctx.teardown) { await ctx.teardown(); } + throw error; } } @@ -228,7 +234,7 @@ export default class Validate extends Command { styles: flags.styles.split(',').map((style) => style.trim()) } }; - return await loadConfig(overrides); + return loadConfig(overrides); } async getPageUrls(ctx: Ctx): Promise<{ urls: string[]; source: string }> { @@ -241,6 +247,7 @@ export default class Validate extends Command { `Invalid URL: ${url}. Make sure you include the protocol and hostname.` ); } + if (crawl) { source = 'crawled site'; urls = await crawlSiteForUrls(url); @@ -254,6 +261,7 @@ export default class Validate extends Command { } else { throw new Error('You must specify either a url or a sitemap to validate.'); } + urls = [...new Set(urls)]; return { urls, source }; } @@ -264,12 +272,12 @@ export default class Validate extends Command { const { browser } = ctx; const page = await visitPage(browser!, url); const allChecks = { - containers: () => validateContainers(page, containers), + 'containers': () => validateContainers(page, containers), 'transition-duration': () => validateAnimationDuration(page, animationSelector), 'transition-styles': () => validateAnimationStyles(page, animationSelector, styles) }; const checks = Object.entries(allChecks).filter( - ([test]) => !tests.length || tests.includes(test) + ([test]) => tests.length === 0 || tests.includes(test) ); if (checks.length === 0) { throw new Error( diff --git a/src/package.ts b/src/package.ts index bd187df..37a8ea7 100644 --- a/src/package.ts +++ b/src/package.ts @@ -10,27 +10,35 @@ export function checkPluginPackageInfo(data?: unknown): { errors: string[] } { errors.push('Not a valid package.json'); return { errors }; } + if (!pckg.amdName) { errors.push('package.json missing `amdName` property'); } + if (pckg.type !== 'module') { errors.push('package.json `type` property must be "module"'); } + if (!pckg.source) { errors.push('package.json missing `source` property'); } + if (!pckg.main) { errors.push('package.json missing `main` property'); } + if (!pckg.module) { errors.push('package.json missing `module` property'); } + if (!pckg.unpkg) { errors.push('package.json missing `unpkg` property'); } + if (!pckg.exports) { errors.push('package.json missing `exports` property'); } + if (!pckg.browserslist) { errors.push('package.json missing `browserslist` property'); } @@ -38,7 +46,7 @@ export function checkPluginPackageInfo(data?: unknown): { errors: string[] } { return { errors }; } -export async function loadPackageInfo(): Promise { +export async function loadPackageInfo(): Promise<{ name?: string }> { try { const importPath = new URL(resolve('package.json'), import.meta.url); return JSON.parse(await readFile(importPath, { encoding: 'utf8' })); diff --git a/src/repo.ts b/src/repo.ts index 708a31d..af90bf6 100644 --- a/src/repo.ts +++ b/src/repo.ts @@ -1,4 +1,4 @@ -import { exec } from 'child_process'; +import { exec } from 'node:child_process'; export function cloneRepo(repoUrl: string, destination: string): Promise { return new Promise((resolve, reject) => { @@ -8,6 +8,7 @@ export function cloneRepo(repoUrl: string, destination: string): Promise { new Error(`Failed to clone repo. Error: ${error.message}. Stderr: ${stderr}`) ); } + resolve(); }); }); diff --git a/src/resolve.ts b/src/resolve.ts index b411a47..4f8b90b 100644 --- a/src/resolve.ts +++ b/src/resolve.ts @@ -1,12 +1,12 @@ -import * as path from 'path'; -import * as fs from 'fs'; +import * as path from 'node:path'; +import * as fs from 'node:fs'; const appDirectory = fs.realpathSync(process.cwd()); export function resolve(relativePath = '') { if (relativePath) { return path.resolve(appDirectory, relativePath); - } else { - return appDirectory; } + + return appDirectory; } diff --git a/src/shell.ts b/src/shell.ts index af4de40..09fe3c2 100644 --- a/src/shell.ts +++ b/src/shell.ts @@ -1,10 +1,12 @@ -import shell from 'shelljs'; import live from 'shelljs-live'; export function exec(command: string | string[]) { - const status = live(command); // shell.exec(command) + const status = live(command); if (status && status >= 0) { - shell.exit(status); + // Exit with the child's status code, so failing builds fail CI + // eslint-disable-next-line no-process-exit, unicorn/no-process-exit + process.exit(status); } + return status; } diff --git a/src/util.ts b/src/util.ts index e53e550..51b16d6 100644 --- a/src/util.ts +++ b/src/util.ts @@ -5,7 +5,9 @@ import { URL } from 'node:url'; import { camelCase, upperFirst } from 'lodash-es'; export function wait(ms: number): Promise { - return new Promise((resolve) => setTimeout(resolve, ms)); + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); } export function pascalCase(str: string): string { @@ -64,15 +66,16 @@ export async function fileExists(path: string): Promise { try { await fs.access(path); return true; - } catch (error) { + } catch { return false; } } export async function isDirectory(path: string): Promise { try { - return (await fs.lstat(path)).isDirectory(); - } catch (error) { + const stats = await fs.lstat(path); + return stats.isDirectory(); + } catch { return false; } } @@ -83,7 +86,7 @@ export async function isEmptyDirectory(path: string): Promise { const entry = await directory.read(); await directory.close(); return entry === null; - } catch (error) { + } catch { return false; } } @@ -96,14 +99,17 @@ export function isValidUrl(s: string | URL, protocols: string[] = ['http', 'http if (!s) { return false; } + try { const { protocol } = new URL(String(s)); if (protocols?.length) { - return !!protocol && protocols.map((x) => `${x.toLowerCase()}:`).includes(protocol); - } else { - return true; + return ( + Boolean(protocol) && protocols.map((x) => `${x.toLowerCase()}:`).includes(protocol) + ); } - } catch (err) { + + return true; + } catch { return false; } } @@ -113,12 +119,12 @@ export function isLocalUrl(url: URL, base: URL): boolean { } export function isAssetUrl(url: URL): boolean { - return !!url.pathname.match(/\.(jpe?g|a?png|gif|webp|mp4|webm|mov|pdf|docx?|zip|gz)$/i); + return Boolean(/\.(jpe?g|a?png|gif|webp|mp4|webm|mov|pdf|docx?|zip|gz)$/i.test(url.pathname)); } export function isHtmlContentType(headers: Record): boolean { const contentType = headers['content-type'] || headers['Content-Type']; - return Boolean(contentType && contentType.match(/\bx?html\b/i)); + return Boolean(contentType && /\bx?html\b/i.test(contentType)); } export function removeHash(url: URL | string): string { diff --git a/test/sitemap.test.ts b/test/sitemap.test.ts index 7bdba28..45eda16 100644 --- a/test/sitemap.test.ts +++ b/test/sitemap.test.ts @@ -16,9 +16,13 @@ describe('readSitemapUrls', () => { server = createServer((req, res) => { res.setHeader('content-type', 'application/xml'); if (req.url === '/index.xml') { - res.end(`${base}/pages.xml`); + res.end( + `${base}/pages.xml` + ); } else { - res.end(`${base}/a${base}/b`); + res.end( + `${base}/a${base}/b` + ); } }); await new Promise((resolve) => { @@ -51,6 +55,9 @@ describe('readSitemapUrls', () => { }); it('follows sitemap indexes', async () => { - expect(await readSitemapUrls(`${base}/index.xml`)).to.deep.equal([`${base}/a`, `${base}/b`]); + expect(await readSitemapUrls(`${base}/index.xml`)).to.deep.equal([ + `${base}/a`, + `${base}/b` + ]); }); }); From 05cca4acebf3aa1061dc37ce3691a950ee0f106c Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:51:58 +0100 Subject: [PATCH 12/17] Pass transition-styles if any expected style changes Default styles are opacity,transform, so a plain fade could never pass --- src/browser.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/browser.ts b/src/browser.ts index 0379587..5c5876f 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -129,14 +129,14 @@ export async function validateAnimationStyles(page: Page, selector: string, styl const after = await getStyleProperties(page, selector, styles); await removeChangingClass(page); - if (!Object.keys(before).length && !Object.keys(after).length) { + if (Object.keys(before).length === 0 && Object.keys(after).length === 0) { throw new Error(`Styles not found on element: ${selector} (${styles.join(', ')})`); } - for (const prop of Object.keys(before)) { - if (before[prop] === after[prop]) { - throw new Error(`Styles not changed on element: ${selector} (${prop})`); - } + // At least one style must change: a fade doesn't touch transform and vice versa + const changed = styles.some((prop) => before[prop] !== after[prop]); + if (!changed) { + throw new Error(`Styles not changed on element: ${selector} (${styles.join(', ')})`); } } From 2ad4d4aa5b62a2344cc5b249f6312919563d0f1f Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:55:17 +0100 Subject: [PATCH 13/17] Mark failed pages as failed in the task list --- src/commands/validate.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 31d11dd..87d7467 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -159,6 +159,8 @@ export default class Validate extends Command { } catch (error) { ctx.errors.push(error as Error); subtask.title = chalk`{red Failed} ${getLocalUrl(url)}`; + // Rethrow to mark the task as failed, exitOnError: false keeps going + throw error; } } })), From e798cc5765973cbc1e2447a24e4d3a62bc1a7f08 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 11:58:04 +0100 Subject: [PATCH 14/17] Format repo with swup package:format Ignore README.md, its commands section is generated by oclif readme --- .eslintrc.cjs | 2 +- .prettierignore | 2 ++ bin/run.js | 6 +++--- swup.config.js | 16 ++++++++-------- test/helpers/init.js | 4 ++-- 5 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 .prettierignore diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 114ec8b..6dabfef 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,7 +4,7 @@ module.exports = { 'eslint:recommended', 'oclif', 'oclif-typescript', - 'plugin:prettier/recommended', // needs to be last + 'plugin:prettier/recommended' // needs to be last ], plugins: ['@typescript-eslint'], /* First exclude everything, then re-include /src, then exclude tests */ diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..54a6be7 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +# Commands section is generated by `oclif readme` +README.md diff --git a/bin/run.js b/bin/run.js index 05438fe..65a42c2 100755 --- a/bin/run.js +++ b/bin/run.js @@ -1,6 +1,6 @@ #!/usr/bin/env node (async () => { - const oclif = await import('@oclif/core') - await oclif.execute({dir: import.meta.url}) -})() + const oclif = await import('@oclif/core'); + await oclif.execute({ dir: import.meta.url }); +})(); diff --git a/swup.config.js b/swup.config.js index f1ff4f6..f6683d2 100644 --- a/swup.config.js +++ b/swup.config.js @@ -1,9 +1,9 @@ export default { - swup: { - animationSelector: '[class*="swup-transition-"]' - }, - validate: { - url: 'https://swup.js.org', - limit: 10 - } -} + swup: { + animationSelector: '[class*="swup-transition-"]' + }, + validate: { + url: 'https://swup.js.org', + limit: 10 + } +}; diff --git a/test/helpers/init.js b/test/helpers/init.js index 34ba48a..6ab71ae 100644 --- a/test/helpers/init.js +++ b/test/helpers/init.js @@ -1,3 +1,3 @@ -import path from 'node:path' +import path from 'node:path'; -process.env.TS_NODE_PROJECT = path.resolve('test/tsconfig.json') +process.env.TS_NODE_PROJECT = path.resolve('test/tsconfig.json'); From b50881508d7c25b5ac07c8a233836fd2ef24d4ae Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 12:02:56 +0100 Subject: [PATCH 15/17] Add a `format` npm script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 2d28ffc..ef14dd3 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "scripts": { "build": "shx rm -rf dist && tsc -b", "lint": "eslint . --ext .ts", + "format": "./bin/run.js package:format", "postpack": "shx rm -f oclif.manifest.json", "posttest": "npm run lint", "prepack": "npm run build && oclif manifest && oclif readme", From 06d1fe4bdb776d47337e6ed8bb7362f9da3f51ec Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 12:13:29 +0100 Subject: [PATCH 16/17] Fail validate on empty sitemap or non-OK sitemap response --- src/commands/validate.ts | 4 ++++ src/util.ts | 9 ++++++++- test/sitemap.test.ts | 24 +++++++++++++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 87d7467..8d37274 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -265,6 +265,10 @@ export default class Validate extends Command { } urls = [...new Set(urls)]; + if (urls.length === 0) { + throw new Error(`No pages found in ${source}.`); + } + return { urls, source }; } diff --git a/src/util.ts b/src/util.ts index 51b16d6..f212c91 100644 --- a/src/util.ts +++ b/src/util.ts @@ -37,11 +37,18 @@ function decodeXmlEntities(str: string): string { export async function readSitemapUrls(sitemap: string): Promise { let contents: string; if (isUrl(sitemap)) { + let res: Response; try { - contents = await fetch(sitemap).then((res) => res.text()); + res = await fetch(sitemap); } catch (error) { throw new Error(`Error fetching sitemap: ${error}`); } + + if (!res.ok) { + throw new Error(`Error fetching sitemap: HTTP ${res.status} for ${sitemap}`); + } + + contents = await res.text(); } else { try { contents = await fs.readFile(resolve(process.cwd(), sitemap), 'utf8'); diff --git a/test/sitemap.test.ts b/test/sitemap.test.ts index 45eda16..48582a3 100644 --- a/test/sitemap.test.ts +++ b/test/sitemap.test.ts @@ -6,6 +6,7 @@ import { join } from 'node:path'; import { expect } from 'chai'; +import Validate from '../src/commands/validate.js'; import { readSitemapUrls } from '../src/util.js'; describe('readSitemapUrls', () => { @@ -15,7 +16,12 @@ describe('readSitemapUrls', () => { before(async () => { server = createServer((req, res) => { res.setHeader('content-type', 'application/xml'); - if (req.url === '/index.xml') { + if (req.url === '/missing.xml') { + res.statusCode = 404; + res.end('Not found'); + } else if (req.url === '/empty.xml') { + res.end(''); + } else if (req.url === '/index.xml') { res.end( `${base}/pages.xml` ); @@ -60,4 +66,20 @@ describe('readSitemapUrls', () => { `${base}/b` ]); }); + + it('throws on a non-OK HTTP status', async () => { + const error = await readSitemapUrls(`${base}/missing.xml`).catch((error) => error); + expect(error).to.be.instanceOf(Error); + expect(error.message).to.contain('HTTP 404'); + }); + + it('makes validate fail if the sitemap has no pages', async () => { + const ctx = { config: { validate: { sitemap: `${base}/empty.xml` } } }; + const error = await Validate.prototype.getPageUrls + // eslint-disable-next-line @typescript-eslint/no-explicit-any + .call({} as any, ctx as any) + .catch((error: Error) => error); + expect(error).to.be.instanceOf(Error); + expect((error as Error).message).to.contain('No pages found'); + }); }); From be69bbfa54ae5f1fbcf7f601103f5b1b2d5ecfa0 Mon Sep 17 00:00:00 2001 From: Rasso Hilber Date: Mon, 9 Nov 2026 12:18:36 +0100 Subject: [PATCH 17/17] Add unit tests workflow --- .github/workflows/unit-tests.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/unit-tests.yml diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 0000000..f2c333c --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,29 @@ +name: Unit tests + +on: + push: + branches: [main, master, next] + pull_request: + workflow_dispatch: + +jobs: + run-tests: + name: Run unit tests + runs-on: ubuntu-latest + timeout-minutes: 5 + + steps: + - name: Check out repo + uses: actions/checkout@v6 + + - name: Set up node + uses: actions/setup-node@v6 + with: + node-version: 24 + + - run: npm ci + - run: npm run build + + # Runs mocha, then lint via posttest + - name: Run tests + run: npm test