From 0b5512865fe79c1dc5a15c204733bd0441e24044 Mon Sep 17 00:00:00 2001 From: Emile Fugulin Date: Tue, 10 Feb 2026 10:59:39 -0500 Subject: [PATCH 1/4] Fix index of navbar --- .vitepress/components/Navbar.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/.vitepress/components/Navbar.vue b/.vitepress/components/Navbar.vue index df60bba6..0e86f1ff 100644 --- a/.vitepress/components/Navbar.vue +++ b/.vitepress/components/Navbar.vue @@ -57,6 +57,7 @@ const isActive = (link: string) => { padding-left: 32px; display: flex; align-items: center; + z-index: 100 !important; } .second-navbar-container { From 89d5334cfef1b68cce550a97a68dbac901c28bbe Mon Sep 17 00:00:00 2001 From: Emile Fugulin Date: Tue, 10 Feb 2026 10:59:59 -0500 Subject: [PATCH 2/4] Add headless orchestration tutorial --- src/app/tutorials/headless_orchestration.md | 349 ++++++++++++++++++++ src/dashboard/concepts/registration_key.md | 2 +- 2 files changed, 350 insertions(+), 1 deletion(-) create mode 100644 src/app/tutorials/headless_orchestration.md diff --git a/src/app/tutorials/headless_orchestration.md b/src/app/tutorials/headless_orchestration.md new file mode 100644 index 00000000..6f94675f --- /dev/null +++ b/src/app/tutorials/headless_orchestration.md @@ -0,0 +1,349 @@ +--- +description: "Learn how to orchestrate headless Caido instances and automate instance configuration via scripting" +--- + +# Orchestrating Caido Headless + +The goal of this tutorial is to automate an headless Caido instances through scripting to ensure it is safely registred and configured without human intervention. This allows many usecases like: + +- **Red boxes**: Pre-configure isolated instances for triaging/pentest/etc +- **CI/CD testing**: Automatically set up instances to run particular tests on-demand +- **AI agent interfaces**: Provide human-in-the-loop interfaces to AI agents + +## Creating a Registration Key and Launching the Instance + + +This is feature is available starting with Caido v0.55.3 for Teams. + + +To safely deploy Caido instances without human intervention, you'll need to use a [Registration Key](/dashboard/concepts/registration_key). Registration keys automatically claim new instances, ensuring they're secure even when deployed in automated environments. + +If you are not on a Team plan, you will need to do this registration step manually. + +### Creating a Registration Key + +First, create a registration key in the [Caido Dashboard](https://dashboard.caido.io): + +1. Navigate to your Team workspace +2. Go to the Registration Keys section +3. Click `Create Key` +4. Configure the key: + - **Description**: `Headless Tutorial` + - **Prefix**: `headless` + - **Expiration**: Set an expiration date + - **Reusable**: Yes + +For detailed instructions, see our guide on [creating a registration key](/dashboard/guides/create_registration_key). + +### Downloading the Caido CLI + +To download the latest [Caido CLI](/app/concepts/cli_vs_desktop) version automatically, you can use our [release API](/app/reference/download_links). + +```bash +curl -s https://caido.download/releases/latest +``` + +You can filter with JQ for your specific platform (here `Linux x86_64`): + +```bash +curl -s https://caido.download/releases/latest | jq -r '.links[] | select(.os=="linux" and .arch=="x86_64" and .kind=="cli") | .link' +``` + +::: info +The binary is always packaged in an archive (zip or tar.gz), make sure to unarchive it before the next step! +::: + +### Launching the Instance with a Registration Key + +Once you have a registration key and the binary, launch your Caido instance. You can pass the registration key in two ways: + +**Option 1: Using the `--registration-key` flag:** + +```bash +caido --registration-key ckey_xxxxx +``` + +**Option 2: Using the `CAIDO_REGISTRATION_KEY` environment variable:** + +```bash +export CAIDO_REGISTRATION_KEY=ckey_xxxxx +caido +``` + +When the instance starts, it will automatically register itself and be automatically claimed by the Team. This ensures the instance is secure. + +::: info +For more information about the registration process, see our documentation on [instance registration](/app/concepts/instance_registration). +::: + +::: warning +If you want to expose the instance to the internet, make sure to read our [tutorial](./instance_internet.md) on the subject to do so securely. +::: + +## Section 2: Creating a PAT and Setting Environment Variable + +To authenticate your scripts with the Caido instance, you'll need a [Personal Access Token (PAT)](/dashboard/concepts/pat). PATs allow headless authentication without requiring browser interaction. + +### Creating a PAT + +1. Visit the [Caido Dashboard](https://dashboard.caido.io) +2. Navigate to the Developer page **in your Workspace** +3. Click `+ Create Token` +4. Configure the token: + - **Name**: `Headless automation` + - **Resource Owner**: Select your Team + - **Expiration**: Set an expiration date + +For detailed instructions, see our guide on [creating a PAT](/dashboard/guides/create_pat). + +### Setting the Environment Variable + +Once you have your PAT, set it as an environment variable: + +```bash +export CAIDO_PAT=caido_xxxxx +``` + +You can also set the Caido instance URL (if different from the default): + +```bash +export CAIDO_INSTANCE_URL=http://abc.remote.cai.do:9000 +``` + +::: info +For more information about authentication, see our documentation on [instance authentication](/app/concepts/instance_authentication). +::: + +## Section 3: Creating the Configuration Script + +Now we'll create a script that uses the `@caido/sdk-client` to automatically configure your Caido instance. This script will: + +1. Create and select a project +2. Create a scope preset +3. Create a filter preset +4. Create an environment with environment variables +5. Upload a hosted file (wordlist) + +### Setting Up the Project + +First, create a new directory for your script and initialize it: + +```bash +mkdir caido-automation +cd caido-automation +pnpm init +``` + +Install the Caido SDK client: + +```bash +pnpm install @caido/sdk-client +``` + +::: info +Not all versions of the sdk-client are compatible with the targeted Caido instances. +If you see errors, make sure update your sdk-client version. +::: + +### The Configuration Script + +Create a file named `configure.ts`: + +```typescript +import { Client } from "@caido/sdk-client"; + +async function main() { + // Get the Caido instance URL from environment or use default + const instanceUrl = + process.env["CAIDO_INSTANCE_URL"] ?? "http://localhost:8082"; + + // Get the Personal Access Token from environment + const pat = process.env["CAIDO_PAT"]; + if (pat === undefined || pat === "") { + console.error("āŒ Error: CAIDO_PAT environment variable is required"); + console.error(" Set it with: export CAIDO_PAT=caido_xxxxx"); + process.exit(1); + } + + const client = new Client({ + url: instanceUrl, + auth: { + pat: pat, + cache: { + file: ".secrets.json", // This caches the access token on disk to speed up other scripts, can be removed + }, + }, + }); + + await client.connect(); + console.log("āœ… Connected to Caido instance"); + + // Verify authentication + const viewer = await client.user.viewer(); + console.log( + `āœ… Authenticated as: ${ + viewer.kind === "CloudUser" ? viewer.profile.identity.email : viewer.id + }`, + ); + + // 1. Create and select a project + console.log("\nšŸ“ Creating project..."); + const project = await client.project.create({ + name: "Automated Pentest Environment", + temporary: false, + }); + console.log(`āœ… Created project: ${project.name} (${project.id})`); + + await client.project.select(project.id); + console.log(`āœ… Selected project: ${project.name}`); + + // 2. Create a scope preset + console.log("\nšŸŽÆ Creating scope preset..."); + const scope = await client.scope.create({ + name: "Main Scope", + allowlist: ["*.example.com", "*.test.example.com"], + denylist: ["*.admin.example.com"], + }); + console.log(`āœ… Created scope: ${scope.name} (${scope.id})`); + console.log(` In-scope: ${scope.allowlist.join(", ")}`); + console.log(` Out-of-scope: ${scope.denylist.join(", ")}`); + + // 3. Create a filter preset + console.log("\nšŸ” Creating filter preset..."); + const filter = await client.filter.create({ + name: "API Requests Only", + alias: "api_only", + clause: 'req.method.eq:"GET" or req.method.eq:"POST"', + }); + console.log(`āœ… Created filter preset: ${filter.name} (${filter.alias})`); + + // 4. Create an environment with environment variables + console.log("\nšŸŒ Creating environment..."); + const environment = await client.environment.create({ + name: "Production Environment", + variables: [ + { + name: "API_BASE_URL", + value: "https://api.example.com", + kind: "PLAIN", + }, + { + name: "API_KEY", + value: "secret-api-key-12345", + kind: "SECRET", + }, + ], + }); + console.log( + `āœ… Created environment: ${environment.name} (${environment.id})`, + ); + console.log( + ` Variables: ${environment.variables.map((v) => v.name).join(", ")}`, + ); + + // Add more variables to the environment + await environment.addVariable({ + name: "SESSION_TOKEN", + value: "initial-token-value", + kind: "PLAIN", + }); + console.log(`āœ… Added variable: SESSION_TOKEN`); + + // Select the environment + await client.environment.select(environment.id); + console.log(`āœ… Selected environment: ${environment.name}`); + + // 5. Upload a hosted file (wordlist) + console.log("\nšŸ“„ Uploading hosted file..."); + + // Create a sample wordlist file + // In Node.js 18+, File is available globally + // For older versions, you can use: import { File } from "node-fetch" or similar + const wordlistContent = `admin +administrator +api +backup +config +database +dev +login +password +test +user +`; + + // Create a File object from the content + // Note: File API is available in Node.js 18+; for older versions, use a polyfill + const wordlistFile = new File([wordlistContent], "common-wordlist.txt", { + type: "text/plain", + }); + + // Alternatively, read from an existing file (uncomment readFileSync import above): + // const fileBuffer = readFileSync("path/to/wordlist.txt"); + // const wordlistFile = new File([fileBuffer], "wordlist.txt", { type: "text/plain" }); + + const hostedFile = await client.hostedFile.upload({ + name: "Common Wordlist", + file: wordlistFile, + }); + console.log(`āœ… Uploaded hosted file: ${hostedFile.name} (${hostedFile.id})`); + console.log(` Size: ${hostedFile.size} bytes`); + console.log(` Status: ${hostedFile.status}`); + + console.log("\n✨ Configuration complete!"); + console.log(`\nProject ID: ${project.id}`); + console.log(`Scope ID: ${scope.id}`); + console.log(`Filter ID: ${filter.id}`); + console.log(`Environment ID: ${environment.id}`); + console.log(`Hosted File ID: ${hostedFile.id}`); +} + +main().catch((error: unknown) => { + console.error("āŒ Fatal error:", error); + process.exit(1); +}); +``` + +### Running the Script + +Make sure your environment variables are set. + +Add the following start command to your `package.json`: + +```json +"scripts": { + "start": "node configure.ts" +} +``` + +Then simply run: + +```bash +pnpm start +``` + +::: info +Modern versions of Node.js can now run TypeScript directly. No compilation step is needed! + +If you see some errors, make sure your Node.js version is up to date. +::: + +### Script Breakdown + +The script performs the following operations: + +1. **Project Creation**: Creates a new project named "Automated Pentest Environment" and selects it as the active project. Projects are containers for all your testing data. + +2. **Scope Preset Creation**: Creates a scope preset that defines which targets are in-scope and out-of-scope. For more details, see our guide on [defining a scope](/app/guides/scopes_defining). + +3. **Filter Preset Creation**: Creates a filter preset using HTTPQL to filter traffic. For more information, see our guide on [defining a filter](/app/guides/filters_defining) and the [HTTPQL reference](/app/reference/httpql). + +4. **Environment Creation**: Creates a custom environment with environment variables. Environment variables can be used in requests and workflows. The script creates both plain and secret variables. For more details, see our guide on [creating environment variables](/app/guides/environment_variables). + +5. **Hosted File Upload**: Uploads a wordlist file that can be used in Automate sessions for systematic payload testing. For more information, see our guides on [uploading files](/app/guides/files_uploading) and [using wordlists in Automate](/app/guides/automate_wordlists). + +## Next Steps + +Your instance is now configured, you can start using it directly as an operator or via further scripting. + +You can also check out our tutorial on [Github Actions](./github_action.md). diff --git a/src/dashboard/concepts/registration_key.md b/src/dashboard/concepts/registration_key.md index 160faf8f..fa89b3f4 100644 --- a/src/dashboard/concepts/registration_key.md +++ b/src/dashboard/concepts/registration_key.md @@ -1,7 +1,7 @@ # Registration Key -This is feature is available starting with Caido v0.56.0 for Teams. +This is feature is available starting with Caido v0.55.3 for Teams. Registration Keys allow you to automatically claim new instances. This allows you to deploy instances safely without human intervention. For example, ahead of an engagement or on demand in CICD. From 4a68fff0dddd588d4761488e897d3ceb5dd68b90 Mon Sep 17 00:00:00 2001 From: Emile Fugulin Date: Tue, 10 Feb 2026 13:30:33 -0500 Subject: [PATCH 3/4] Add github actions tutorial --- .vitepress/sidebars/app/tutorials.ts | 13 + src/_images/github_action_secrets.png | Bin 0 -> 56405 bytes src/app/tutorials/github_action.md | 252 ++++++++++++++++++++ src/app/tutorials/headless_orchestration.md | 6 +- 4 files changed, 268 insertions(+), 3 deletions(-) create mode 100644 src/_images/github_action_secrets.png create mode 100644 src/app/tutorials/github_action.md diff --git a/.vitepress/sidebars/app/tutorials.ts b/.vitepress/sidebars/app/tutorials.ts index eee59fd9..ddcdeedc 100644 --- a/.vitepress/sidebars/app/tutorials.ts +++ b/.vitepress/sidebars/app/tutorials.ts @@ -23,6 +23,19 @@ export const tutorialsSidebar: DefaultTheme.SidebarItem[] = [ }, ], }, + { + text: "Automatisation", + items: [ + { + text: "Orchestrating Caido headless", + link: "/app/tutorials/headless_orchestration", + }, + { + text: "Running Caido in Github Actions", + link: "/app/tutorials/github_action", + }, + ], + }, { text: "Proxying Mobile Traffic", items: [ diff --git a/src/_images/github_action_secrets.png b/src/_images/github_action_secrets.png new file mode 100644 index 0000000000000000000000000000000000000000..8e58a396e6935bba6df6f841de7acb4ceba59106 GIT binary patch literal 56405 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%0A*tg-pAq}Z4Cl^;Y{fy!XU`gQ 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 z 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 +This tutorial requires a Caido Teams plan for registration key support. + + +## Part 1: Creating a Registration Key + +To safely deploy Caido instances in automated environments without human intervention, you'll need to use a [Registration Key](/dashboard/concepts/registration_key). Registration keys automatically claim new instances, ensuring they're secure even when deployed in CI/CD pipelines. + +### Creating a Registration Key + +First, create a registration key in the [Caido Dashboard](https://dashboard.caido.io): + +1. Navigate to your `Team` workspace +2. Go to the Registration Keys section +3. Click `Create Key` +4. Configure the key: + - **Description**: `CI/CD Pipeline` + - **Prefix**: `cicd` (or your preferred prefix) + - **Expiration**: Set an expiration date appropriate for your use case + - **Reusable**: Yes (recommended for CI/CD) + +For detailed instructions, see our guide on [creating a registration key](/dashboard/guides/create_registration_key). + +## Part 2: Creating a Personal Access Token (PAT) + +To authenticate your scripts with the Caido instance, you'll need a [Personal Access Token (PAT)](/dashboard/concepts/pat). PATs allow headless authentication without requiring browser interaction. + +### Creating a PAT + +1. Visit the [Caido Dashboard](https://dashboard.caido.io) +2. Navigate to the Developer page **in your Workspace** +3. Click `+ Create Token` +4. Configure the token: + - **Name**: `CI/CD Automation` + - **Resource Owner**: Select your `Team` + - **Expiration**: Set an expiration date + +For detailed instructions, see our guide on [creating a PAT](/dashboard/guides/create_pat). + +## Part 3: Configuring GitHub Secrets + +To securely store your registration key and PAT, you'll need to add them as GitHub repository secrets. This ensures they're encrypted and only accessible to your GitHub Actions workflows. + +### Adding Secrets to Your Repository + +1. Navigate to your GitHub repository +2. Go to **Settings** → **Secrets and variables** → **Actions** +3. Click **New repository secret** +4. Add the following secrets: + + - **Name**: `CAIDO_REGISTRATION_KEY` + - **Value**: Your registration key (e.g., `ckey_xxxxx`) + + - **Name**: `CAIDO_PAT` + - **Value**: Your Personal Access Token (e.g., `caido_xxxxx`) + +GitHub Actions repository secrets configuration. + +::: warning +Never commit secrets directly in your code or workflow files. Always use GitHub Secrets for sensitive information. +::: + +## Part 4: Creating the Automation Script + +Now we'll create a script that uses the `@caido/sdk-client` to interact with your Caido instance. This script will demonstrate common CI/CD use cases like creating projects, running scans, and checking results. + +### Setting Up the Project + +First, create a directory for your automation scripts and initialize it: + +```bash +mkdir script +cd script +pnpm init +``` + +Install the Caido SDK client: + +```bash +pnpm install @caido/sdk-client +``` + +### The Automation Script + +Create a file named `index.ts`: + +```typescript +import { Client } from "@caido/sdk-client"; + +async function main() { + // Get the Caido instance URL from environment or use default + const instanceUrl = + process.env["CAIDO_INSTANCE_URL"] ?? "http://localhost:8080"; + + // Get the Personal Access Token from environment + const pat = process.env["CAIDO_PAT"]; + if (pat === undefined || pat === "") { + console.error("āŒ Error: CAIDO_PAT environment variable is required"); + console.error(" Set it with: export CAIDO_PAT=caido_xxxxx"); + process.exit(1); + } + + const client = new Client({ + url: instanceUrl, + auth: { + pat: pat, + cache: { + file: ".secrets.json", + }, + }, + }); + + await client.connect(); + console.log("āœ… Connected to Caido instance"); + + const viewer = await client.user.viewer(); + console.log("Viewer: ", JSON.stringify(viewer, null, 2)); +} + +main().catch((error: unknown) => { + console.error("āŒ Fatal error:", error); + process.exit(1); +}); +``` + +### Adding Scripts to package.json + +Add the following to your `package.json`: + +```json +{ + "scripts": { + "test": "node index.ts" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "typescript": "^5.3.0" + } +} +``` + +## Part 5: Creating the GitHub Actions Workflow + +Now we'll create a GitHub Actions workflow that sets up Caido and runs your automation script. + +### Workflow File + +Create `.github/workflows/caido-tests.yml`: + +```yaml +name: Run Caido Security Scan +on: + push: + branches: + - 'main' + +jobs: + scan: + runs-on: ubuntu-latest + + services: + caido: + image: caido/caido:latest + ports: + - 8080:8080 + env: + CAIDO_REGISTRATION_KEY: ${{ secrets.CAIDO_REGISTRATION_KEY }} + + steps: + - name: Checkout Repo + uses: actions/checkout@v6 + + - name: Set up Node + uses: actions/setup-node@v6 + with: + node-version: '24' + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + + - name: Install script dependencies + working-directory: script + run: pnpm install + + - name: Run script + working-directory: script + run: pnpm start + env: + CAIDO_PAT: ${{ secrets.CAIDO_PAT }} + CAIDO_INSTANCE_URL: http://localhost:8080 +``` + +## Part 6: Customizing for Your Use Case + +You can extend this setup for various security testing scenarios: + +### Create an OOB link + +```typescript +// Execute a workflow +const pluginPackage = await client.plugin.pluginPackage("quickssrf"); +if (pluginPackage === undefined) { + console.error("āŒ Error: Plugin package not found"); + process.exit(1); +} + +const settings = await pluginPackage.callFunction({ + name: "getSettings", +}); + +await pluginPackage.callFunction({ + name: "startInteractsh", + arguments: [ + { + serverURL: settings.serverURL, + token: settings.token, + pollingInterval: settings.pollingInterval, + correlationIdLength: settings.correlationIdLength, + correlationIdNonceLength: settings.correlationIdNonceLength, + }, + ], +}); + +const result = await pluginPackage.callFunction({ + name: "generateInteractshUrl", + arguments: [settings.serverURL], +}); +``` + +### Running Scans + +::: info +Will be added soon +::: + +## Next Steps + +For a complete working example, check out the [caido-community/cicd-example](https://github.com/caido-community/cicd-example) repository. diff --git a/src/app/tutorials/headless_orchestration.md b/src/app/tutorials/headless_orchestration.md index 6f94675f..0f9a7c15 100644 --- a/src/app/tutorials/headless_orchestration.md +++ b/src/app/tutorials/headless_orchestration.md @@ -10,7 +10,7 @@ The goal of this tutorial is to automate an headless Caido instances through scr - **CI/CD testing**: Automatically set up instances to run particular tests on-demand - **AI agent interfaces**: Provide human-in-the-loop interfaces to AI agents -## Creating a Registration Key and Launching the Instance +## Part 1: Creating a Registration Key and Launching the Instance This is feature is available starting with Caido v0.55.3 for Teams. @@ -80,7 +80,7 @@ For more information about the registration process, see our documentation on [i If you want to expose the instance to the internet, make sure to read our [tutorial](./instance_internet.md) on the subject to do so securely. ::: -## Section 2: Creating a PAT and Setting Environment Variable +## Part 2: Creating a PAT and Setting Environment Variable To authenticate your scripts with the Caido instance, you'll need a [Personal Access Token (PAT)](/dashboard/concepts/pat). PATs allow headless authentication without requiring browser interaction. @@ -114,7 +114,7 @@ export CAIDO_INSTANCE_URL=http://abc.remote.cai.do:9000 For more information about authentication, see our documentation on [instance authentication](/app/concepts/instance_authentication). ::: -## Section 3: Creating the Configuration Script +## Part 3: Creating the Configuration Script Now we'll create a script that uses the `@caido/sdk-client` to automatically configure your Caido instance. This script will: From 260afd13e55510130a7ee30b558629043bddef18 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Feb 2026 18:31:25 +0000 Subject: [PATCH 4/4] Optimised images with calibre/image-actions --- src/_images/github_action_secrets.png | Bin 56405 -> 10027 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/_images/github_action_secrets.png b/src/_images/github_action_secrets.png index 8e58a396e6935bba6df6f841de7acb4ceba59106..c882353d713b1ba8e7dbf77af663655f7aac3922 100644 GIT binary patch literal 10027 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 literal 56405 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%0A*tg-pAq}Z4Cl^;Y{fy!XU`gQ z?zej$Z%w8h1_R5D`S; zry3Vb82Pz?fM<1^l^I}izB)P&X zaRAk9aOjQaV#YJ>)y;uPBznuwgy8nh6%eUP1bl2 z%N_>#zTLL!Zzf0wU``V;STCWQ;C>7=+0SC!#q9~_+HTWO>1Kk~Z)kq?)F5&ilX!cv z$DY&xY`@90y&ONy;+Q8BDb~bnC)x}#wN%_!BiC%DvRv1AH{j%8!tu@k=ZBpx`&Tw` z@kKo&^ebCdZ>s~-+}xZ@t};iaOo{jCavL+qTWb*lvaHv-#z(K|Ta`}an*hI{Gj^v! z8we4yUm{Wu7rYhnKiG9$9iSA;vFgWuQw)Li(s%h*Tmt}C*p*0@z!|`0Rvq%$vzlu- zblLLvaSY+Tz8F+pn!8lz^=$sISo26D8EpPIL`o&^vA3eaV+)irc0)sz?iKiVhs@F5 z_Q$Il&Qg%_4yQ57E9_85l0s|p1RVUI;4wgE?Iz8HV~P;Y;3djBUAA*;+`t^Y*g6(u zGCIUGJ{<|NTC6^b=vo|=`K2FWU0vJ;h@xHiuF$IS#|A) zbK&#jEekx&S0(RDEXFU+mZLLo5C}C@#@`%m*E2H&USv$=Yxo_xp9B6KKnnV{E7MM? zVE*HN%fpWZuy;{seXKgea#(D3mEM$C$6)mmRt2E-G9BuH%+`@zWzF^Kgbhz%=r6Wo z(2^i^i_|}$Z(QNw6Fc7}Q)v)6Gs=$%dR-S;pKwbHNI!5MjY}m7)7Nns^V>SO<;1nGtTZ*ol-V79y{{` z$rj-te}AXvr~c=x#H(K3dWYGRe9pIEVBrwaNdCM?!}gp_zTxDft-zkAJBS^uecGdUtu}Mu0jl^+ka#h=> zJ?Qq&zE(b~L*Z{x#5KOF$E*M7fp5`bp7|?9_qRiA)|C6;E1H{vQ+m_ZK6<4OkvVm?1%FNHQ`^ zR^L$lAQ?oo3?Y(Z;@J3jWBkv4wY|N)8+xkgaEMx@BpGd*;@%WLeg999Y9k}kb;M-l z{`*0H%leN`_;A2f8Cp_=e=(+;uR_wC6Oy_r*1iAZHT`|Fe;)sj@c*By-uNAC#Z|hX z-{=#K8SQ@ z%8|%_nz6qgh=GL$rFe$*+mXBhCbLBRP5eKP|AqPbNBIBmR4>93vIh4&H<`NjIHF_ zHwwQsW+#s6kgIlT;`BWREWcZ@h$POx{$WdsW>s@d3P-m;Uto#~hsJjc=9fQMUOMv$ z>TnBf!~XjJ!5_N7(()xF@jYi_!vFnuy1=d$h}Rof^}7e5@g?vfqh-(p`1|?1`psa_ z_(-0>Awn1X%^8$ReM1;!Uv*queMz6LG>kTwtdwZ+iw_V|XwduZWYF5wV8M)MZHtXZ zf=TrAo^Ie?M$(kyO!tJq4F8EE>7Okf9tU zDN(z;{()Q-F75OatdC@d_Zfc1e>$J=NctWuHqxbNO4wS-meS?z1$Yuy7(X_{$?pyK z>TcouX8tbsFcIaanBP=CO18(a*cxEek@B8R9*)B%uTgJq2tb6UtkG6Ac-Xu^wmjR&wd4uBIDYoq3A@su-IE!!Z(CGv9(%m7X(;OPc?&p&2|QwzHVyZpla>n3S=K`N z1f$~89@+?}c(|e7ernoiWB!y=02M>lXtF|85LR8efe|4w8H&;e6n{zl0Iq~Kg%AU_Q8Ea8b)wxS6S6hQ)F5e<%h;OXEUt==^Ov!We>I zDYnZ;5t4Lu0TZVegl9B1#2U}vJ{&_T>bk9h0~ChG1?q~LNr1V$WW6yV_6be2+oxN?VIc1|*q+>WVs5gV%8QziTLG=EZm&ZIT@*Vkm9pi;3MLHds z>2VnPWpy?BW!pC>?;_QrWjQnBy4tH+Py>+wX$5*>$J4;-^BH><`(uLdfD7&NvLEL& z*Y-2KEs5th2^3mrMnL<1)BW?MSnHWUCO|WApZ5Z7D?g+ZL}^gfh;xV1x5EcndB+{^ zuCK(YBw`qhx5fe){i_l+o00e1W<4$?2svkHxvZ+U@-|%Wgf2hl<K*!^XYH{;&`3b35 zPC-#S?9+k)a8v;0)4W`4OY4t!jrVOKkLGUVA>guQtI!-Hx7e9BR_pFS!CF>*#L zb=6++pk$~!GgI5%qf2$OjhwR9E_S;^;Y^u|!aAqDdCGyZZ#7qyOfimUYlZ4pchM&? z6vr!vqwl6NnkQ0d3KIQjR?Wy0P+k%{uD;*^WfY0W{@g4SI)txwxq0j@!f_a*q60~p z7-gBtqb=c(efb^@>|7KgfGg^r(ZoPa7>mco0+g53y({UlpeM zNH8NaZnP3Rg`|pwx3@?{r<}Gorw%M(r)s(*tHNK+M7Vg<%2KscriuwEi!Ra0EddH5 z|1li}yOVX=^jNDXMV{?)GP5~%+$im>{`?Q;`fSm@4>&qD9`7Y8THnTwcRY){IEcSK zq+7ivqmHu)!gXj{CrrdE3FiY`RNara{lOUywkPI=<0-8`iPP4en!WABxvFtG>^A}g zyw5@)d`|R8t_pQ;Z|sJVCf-j=lOOAJF#d|-B@v#% zt9%n5O32*%e1}JfaP(Ux)Pn6nsTWFR*gFjlR#owV?!MS05cK(EMzEa}>yOHJgwbM( zW-65#1{m(^|Fq0_N@DTYGGHuWui zns}!?xn?!GjtYfMx33|ssE1Q5EdGz`Mz|kF2#Bxqk<``Fu$4ISw&>ddKDaz*kghDu9rrf6w;CvT{ z>*Ft@*o}4ed!y_4?x0qG<7FFmkAcO0vn@s+X3si>*HW>K2oHF z^|!%M3-sYoklgRg==ZNwOlHE&@a$-O_2XRk1!l+J>4<`IG-C_9ExE$#Mf{VrcTd;v zkwZ*d@ZPn(i~q39-Xgx3R_wACC`5!OO5QEdlWtqQE#xsVqR|{IGC^{bUDOjYUBxT8 zP9*jGI|cK#6i1IX{?;2wo+Id!D8Yz>h*w;_4aJNPd=ZZW5VyU3yukMO&sYBsW z-X1a%JtWb%kW)OU)(hUAru?On;D+DqvGQ1reHp7k$oX8n@}w>g-H=ukJ9C>Lu8Nk; z_69GXs)MNp+%OPZBx#aG;|@KY!k&HZYM2$MFOFe}oHocJAx6_NUT#igj%)m)&5|FYr`yw9yoP6C+k4K^` zS7ovKpyx=av2QN1BycUIT~_Pz3o4p&|mo4DvMD#@0tD|n$Er06xBSuRV6 zexwE^BlbyG-csX9G7kbXPmWjq-G-tRki=j^{pS)Bw*~B7$5N*G74kZwgfBuBR6~!g zEdtVY#KS@NKrfsoor5GVRo{M%W z7e32Mf(oVf_0zIG)rF|tL0vTtv&@yXcI*+jja|CkgoUx>(WCgK;SM`sKor1Xw(E~i zADm9_#1H6K_e<01R%)}~*<$THYsz_ez|MJh!lu}$=8WpWqJhq17#JlEJ$>=T96E;CF?-S{SYp4Xz+GZK$bU~?4yV5;)l73;s{eMiQ?EMDRo=C(xV zUBU@bkMaRlEs$e>x`7wXvrg~goxxxr@I%Bh>x}4zp3!$#t;#BP6jQSh4kC|CtcHqSX=xLU_Y*lOb?CvUC8)8<>eM(C!YwG2_W?*O4pSv$Y z_$q-v?}bOI-EqZu;fHgp!Lj|z6W;uAoTFh-i@DA6<|NTlaAILDY=m8GFIWob|657J zA-&)`609~!YkurAhj!B9;h?Kd0iVr)q|62em(ab5iXD=etjx`!9b~+FIQXRItN?cr zM2`|ts!lb~9J^Ew@sCVkAHlXHqofMZ-6idJ@QQtUy^KuWh6Y}W0?kGTBGm2BZ2%oA zEEKuDg-Uc0@IAi9$ljsrb>ybyi5S(h)IqgEAxeo5Mc3<11S>CqD>Wp))pSmhQd+dS>R?717s;k?JnGjJQYM)S_uiv42 zetlt{r=%0Mg+v`kqRmtTJ?tJ$(>=LtoZ?8D#yPU1gH})ZHm@ER+JJ7}6v57D1N7gm z2n2!poZDU_=cFToN1OfA50Pp0iTWg>*~MBvEBZY!yz(F-pa7dbOV*nmjTMFR0`0qN zGd0oUM23<*R1)}|HJ4{mm-Gs``yO)07}~Q51xwy8kP4Wt)D;eQ%Ob{%y^a>c6%32&ShTQj&ZlRLl-lsr8M;T z{>D%aGv`Q>ga@HjM5I5zN7C6z-L>KI6Hc5T zjeZLlDVx#p9{JA7Y0-w?oorNdCk4$3*sYUGU{PI~B z@8WFbiSSs4rU|XTN4)(Uc(gGR!QEhbr$j97c%(078hK}JvX?>Ve6Chxg$*(%DY;eq zSU-WEdVGX~kWRj1-4wk#j4`j40iWb_Ej>O-5(~R4ey|dd8+T{DAgn<}fpA}6C_m8) ztx^krXsd#Gep1(KfQs6_B&j-6qGWv&IPRJ_#qzmJHNgHTJOpK+;37{U=meZ^j75dC z`U3G-k2b918Q#P^r6@z;2TV!0s{THeI!?Q-m~UH!-I2ou;hr=iLWi=x@v)u;igIpb z7o}8=qLqMC(`1TYOVe6FNjcUt$WuWpK-x2Q$YaL~Oqp8cigFar>6Sb;NaB$I8zOq% z_WP|UIUU%2UGujoX2y{Y;z*6ne{_CKNZ_Y91E8?j1)s94R?vW(ZFPu9xW+G3?HP6xA$3P-A5oQG zc+;h!lKJwvD=}kkRri>u6k{?kD#B~2Rv2-L;apiMi?~m^?H_`B3=@xf3g+)!TzK@fb?UxC!SG4V{F|*$CqL9<&yl9@3RRA zDUz`hI>UG9riieaYs(?PX|31sw^1pwOV#r|pYtFVS)dwywfUA(tUgCzl(B$r9GRjd?8l>U-(ElV;Y2a^dt_*L2w z%IiUJ3ShN}>MMkz2+I=*PIedXjod2vvl;U;+9zYF{e&3n4IV^c9OiNUI^}a5TRwr z_~J-%wqi}kU4E>vlbK1qb%o8x+gXH?${vFQGju7!FlDeRCttq^NU^GEtwk1vP4WpE zd3>g$3A&M=%pdaWn%%MjIVz*dwO2*oZ*oL9j77`YCI@TLFF?c%PC-@b*0DzQ2B)S9 zr}wB#ZR%9m?9CTy?eQ0FO15Ejt=5X9<7bqwCizser#`-l{(J|Ybyj^aRPKwXWK4=4 zI5pPnWf6{5xGiW8&%HRxb9&mD^Jbb1B$?0)ctb;>x3RYgu(qRX>`}_TS!G#ljx`tz z$lr}(ena-Z%XK?{8juHuOD7ZimG1%4W1o?ix^IBHWwAEV&7g1c@*_bM(SyT;uGn)| z#Zq1>sW_T&RWmO|%MB(oU}I4`FMFzXM161+E#;15{P3TKT%Ano%TM#Uk0@67nNUkc zG03J%K6&{%^CTmXTwo)^zzkS~RYO9VER}Pv3p?g$YmjY93-`=DsTz$we=9vQMQp{J zNA|YW_W%!3<`ioj2N9}8?p5i+CkPE&WKa8J8Gp1+!xT22D4!vIzY1Kq0MeHpQDGOY zME2RM(ef*j){(3B-C6pPO_O$JcS0fBl#i?h3p`ab>lCtUhmSYsE&)1<=DQ5 z<}raRjBC5&dS?2W3kIQ;UW;$~g=QF&64N(_13yJ;>gRTroj8gmW+iI{(n(rKPjC`> zXyg^RYlI&1s8!o|S^GCtw-?3<;XdJ9w_j$HzW#tl`eaE}6YKhr?UVDP z8ll{ZWq&)*N4G&{lyPs}N0N1A_*Q$PyH6Jl3F8~q@Z+tC4pI*S&EpCe(S?Zwd9k68Eb>pF4^C9|uqQLvs%#(sXnmD1 z>I&qv+J;AmjyFoWUO9SBifNAK#?I){Df+po;IsQ1`D1sP__q&fvu6w@zCBMddcxjH zWtnt4CK7C9_euWP$ndtTm}ynsfPBQpeVA0+;-slsnANkJ+$0-BW5ue09s69bo@#QM!{yOv z1H-+`5D7PwpKQ`Imugh#YV3O7RPXaAgZkOFue%;vZ>Slhfwof7(2mfp_X0fqSC{AA zXcCoAy7=6=T;0O9MkMrV{H_Mi5%18k8t1$j^_0Aq+knTex2p{ZryYCIfqcJDC4QY= z*etyB2%qgehWWN!^p3iN3L!S?cF-1v&dPOXHFoiJ5A?0MiMjqRFN`oY-j_cPVsS$3}w zGLysx%WR)f-^m%QI>)s){>t?&|ha_8Z|RbcM zWR|`N#kfXQ$^6v-%TgiXJX=`xd0cHFI1td2n^Rm?Do=80v#57pXsC|}A>Ls>a}-nK z3ooA4*B3J#AQyDwSX{&*RXTxlr&-kNF9BSIB3Okwail%t=`c8AJ&Z^)#;C(Cz;2tL)KC@VU3n5P%CQ9M5e_08#J3%=i(HJrRQ9zgUbaR$Szd;K=`l=-}D-I zDj408&word-jqeL;91Le_m}v%);&Ft@Nku0d?Ny)2ZS3~)@)0(X>-d?0;Lq| zGlY-AeHZrQ`M$V#e>guD@yp8Xabo|9{i8DtHU&JoKG4apw{kg1gwqi6xkBXQ%CoVN z>F+pG_M;}wh;jO=xb#As>MIQw8Dg0xJJaeSnVI{a4TaS81J(1=N&- z`pKAo*5JSPMmIW;0)|Q=zx*Lh^gn)e(E^oiiey36U#QZ*2Z$&Kit!mSSf75fIDfzD zcF?mX{K}{L?@xZZLi++r+7J%fd;h-gFACa0=%8Nji(~tnV)xBol0ac#u@lW?9{ev8 zryvIt$79_8(M|YEG9=D?89;vgODT{3mx&9%0uyI>vncpK1op$=T_ErvA=M$G@zZqw zepY}ln7CGP+wZE*H*Yi%G$9~{1~>k#13z7n;DL#^>jwU#IR7Zl-`e(nRB_27Mu1NX5uQQv8U-?!I*ULG3AEG)K$iV2K^yfVx0 zS2iBGIv0(b+)n&E9=gWLSzp_rDa7A@8y*7IFN}lk|8~bnGGHoX<0wvCerw(MV6aFa z(zl55!+n4Moitzo+d`<@Km4xs36TVH3)l**dXE-L^1qG44_5)Sz$~#WiI@@p{fd9Q z!r}vl0Dd>owEf5b`TN;g-oWOF1MwjIBc2~beDmu+;`#rj_AK_lr2nTy@1GXE|6?tB zwx;{w6cAOA*Y@DH4{If~j=2E6aLXsu%-cKaoE}#yjz_}^2!o8~c|V!z01a3UcyibC zyX$>I4d;jlk07G1n=LGRY*rvgBAx30}-^LVY554dN1j zuOe>4TxjV8=eQ)tNgja1aG|I?hmfLckZkSZeklFK{$YINQ(4d<67st0a!aMkGW`E) z?@Ys?Zu_|3Mnz~th_XZoWz8;2vX`AH`MT;0cg-N*Cdd3pDuS946$%=th6|MU0ze7-*zrYaeqBvcaZL%`#Ai3dxL zWsZ~3{q?3OFj*Z7MyAZSf&$sfT2xgA^+GnX?FGo9VSYCAU&cVop)(-=omb#RS2QTq*3=Pa&!3mP9m{PpRnh{n9w|^7BshTn z^I#!FF$}yY*6qcjnx zVHHmr*g#m7E`t$-6Yra4)$d}}%YE0IsFZS*sVACTjE2jKKkF!-U5He8!JleVLk0Aaban@6MXLW)*BH3u3h?>z(6x!nKTRQIdnL|U- zf^%k|dd+rHsvbo-582W^Tt7@u!fOmBgvf4yb8BoTL&M?o_=Z8 zwW!YjVEeOkWe<1vxo(~Mhq|LCE--G~=SfQ??cgc( zd*q-iW#NpFjLneaYWcOv-!)}uBMpX2*;6k$jE;rX%?(wKs~tK23xPbCH+gjet>Mu@ zrCm=OP=o5PZ;lxCc9Re?uTAkk^4g%p?+$^Ep%igj zz~4CNu^3tj*H25p1db^zTo>>xUqU~WOI6*}@0;`BFA=$m8}aa(W-sX!2g zJ+x#y=x=*2;u7a})nM0@`hwprjb_(XSocZHP0h4ue0YhKR*N^*h5nFyFx*pkI)Y12 zw_}Ikc7V(82;ApOc(rjQ#YuiEh`YoW{lj3i^Z7ReDgY zMIfVS%8%^}wMDXbVqmLV<+Ggv<$5lDLg(4dqC?zVT=(H(pm6aGpf|FnSSTCt$Kn>=0Nd|2WyIZ?MdK%53m2{puiToKKrdp3A~n#BXv z=ec!jIEKD!-{Iee%<8rc8~_)3PK`^q$kdzPT4np^ngv&ne2EgI&|^7a=-MM6q2+Oe z3LpV5N)eVPog3fMdd3dusF8bu3UrSq_t1pva%sy!BQ?Ag3$*e&h~L)H5*C?%k!=KZ z4T%~mM8ES)r4C~<(N>PTH${|UoWCVv1!xsPuQ1dqFCd)??IrJ!Vvk>UCW}mVvCp>0 z#wI(|KX{&8Z1l2uHctVCEyqIcgSkIS*s;>4!$_MuL}u@gP%eWnImbSG8!fkdP?NV3 zSG@TezbOm#IDB6>vqF(-ZjV7H$`rVCitgeUhlJ+QsnyjscHT@RXQ^v7e2gy9Z-3xD z;4A@M;_ri|dF(4!vXLwmdLPw z-7vzVb2{1>nt{yg^mlXIR}43MgMvDT9Z|$?I|^UpDkzCzsljC7jUi^YtXw^lQTyQO zK2aVrT3-7yiGv06&0m8yePxRF1j3|BqM5a8Hs$&3*y6ruhJpkf1&@&Hh?8`(ZrtQc zMIZlG=0BlWcKF~R)#;>${W%7KHy?BzZ2SK&5W6lbR;2C_L!m9dgnas0^A6qCUiJ~^ z;;`LMon`;I63|SsD9(R{aK?UsXe2lb*7Q}_2<-nF&>%XyJ(4z!xbZ-B5$$-Rbi!C^ zJ8|K`j#Opzey~;7ENII)h4Xh91{BN5+VryN9$+SqxVE4PcJ3(rFr>SG*z@f?AIN!U(u8Xc}+UVqXUNigW>Pq8YAs)ZpE%% zvjy|-s-A`D)#37rzJ-uZTXlMJ848!f<^}|Qjl1*+bx=u4j9hZG5}2GLc2Dm6ytW2< zb$^vH!CsO}umqb9O~+`l@tvhcdhdLg>q<`S7)BxTL@gkL42_B za88pYhS_1|NFUT;pSOLL)FOFKaw`yHPQu4O^p+3?PT^N@A2$ts_+&C4g}LSc^CYyY zNJFuVy34Q%mYCY5V{4?;UPLv_Pi$hEBv{sjYH zFXS18RMs}%TZ%H13rRqTxEhqatl#ZXbFf^j-zS%)Yr)n&Cf8m-~gsC`@v@#BI(pL4Y%=DA_ze3gi@egGLVuPa%24{ito zOHPxE*gSpSQOK99yv!($6>gGAefeWjHMfEC_|p^RN@vMFnYWbrIZZS+Q33j=X_4m{ z7gd7f#n?1Y&~rIyo7wu+0YTW9E1l3m)Hi)73742>W0NqLaIC={s05DvP z{u0o=ks0trZPm%*U^lJXv_zCy`mbfg+vX(89&!2++-SHlkC^gn;iDo$xVJ22-x=xy zWBhx8?kCpW3cGA$54YqTM>vVlPqesqtdSqed!!()5A7J~SQ9Fy5_SY%hJ2=+Q*t#{ zb9HC~Sh6q@cTI8?(5;)B$G@mVQx;w(Y0N7OPBmsvK=@}r>{11o-e(z+W2u>Bq63%t zRubZ*^6Fi6jU$o@&Y`d#UGYKzcsYT|E=a#IoBZ}aXlWCiD@4A>>Rj`YbJJKRJ?%;v zUTV%H0N=q=l!5MwXu~shL(Vj<4B5$ZA`bd5xYC0fPkUGw8dff~(wfNcB;0*AZJ$US zFQ2R0j?m>O=!Ufendh3aiA&eeoM0mp%V$7^A5{iIW2%g*&G(Zjl#ZT&i}8Fg3}Pab z%YiAs?Wtr25RrNK%$r3EoI~y0Vj%!{i-vc_P>-IKREJQKiSf?tB&&@H!86JVWT?}<1#!>U*+yK^Dcym={Qv%Fio(hnC-f7V%|?-OHXEZ+OrNTpKxyt(s; z7Mj4ZD}BH9-qKUFd5aXU|L$YnUYTHaBo*UMwF-JQ??K^c!cQtBiUuo$a0y(VM41RX z`iWw`wpBf$*xcTDY*6#f?z(N%z`;iwY)WtmYNu9WXT&;2XI^LUTV!%Y+Rq;h5N}q# zPunFXLDXY4F9BX%7NI-E)ZzRp!1OYU?s}$OyaRT3U(?U5baS7MY$VXFwaeFrE>|Ku zwa&dgOM#p`LFRe9%0D2x(U)67Gk4%9aOmutt)r;zesbR(`H8S~q%$AwMsixAsY%*R?FWcAEvZ7|!k} z`SehlsU2tnr~-N|Z#;OZ9Es!xO>y|%aJkL5$I=NkZ7^7g+!>scrMojur%*2$aew@< zFK$J&pSr+_`yi-^esrnNG~6$tf6)J%%vR>0dLBH0Y$bO9=_68p{L--@vMr|EPr9G6 zAVGACu0*j%5{%XrL1)gSz6_Ec)=bx`znysmBlT%nPy$HTI3dGmFhxV!iIS0jL{&MT z0nkZp$=Q}Mqb>io0vXTj5Kw;7=(U7UHt?ji&wF$@&w9wTv07T{owtixgW3$<-Er#v z7lq2x?zpfMtB1;nP!0MF!w5So5{gL69Ebx8eXP04vqe*H@Pt$fF!u&ve%B(TcgF>s z2cIdDgbOXv%i|VFxWQCWS~q{EY>LBk)fl(ba%~g=@%hO|7WRxB$+he|jCi?_KZXa3 zyu#lhlazCcPEOpdSeP+_vjN7}vWM0D@?X6@UHl5DswCrAemXt+IJzu(@v z=6>R(s{}XW#mL?aguA z9^jD66r zX4NS!qLE<3)WVH4^Z*uTXFi?N2JQG%gistON7QLJIx@Ywq*7UefpG^=kq2z1AZc z0o$t+1FxhH|EYZ#y#2n9qvR{Lq@ok+?0oShV%x#SxBR;FzJ-gcli-^>;k3#d)6HE{ zjIpL;+klz;!z0(MiPSkj33Cs;n9R1 zGmxLGS?E6TZvR$S+ujwe+kHRfvi6^+6}(=)@DH{<^-o0g?!ORK3=0PKa%C>GdRaGb z=TDT~v(2I!d2gD8)E)sIW;m`Ec)I>M*4=K?!XxYX(t_^r*cL_)VnEOH)pUz(%l0g_ z_xn^+Lx|FXlSCDH)@ryg&J)m*y9S*}`1f7{=uIJ;o`|g;acR5R-Sj%Fzx3QwiBPF) zJj(Nr5>_fxdU@j-bK-8jTGv1vADx$cdP=I zzQW`N{QxM`B#8sU7gTl9IFzQbZA2~j8x?^NT`bf5ZmKEAu=2}Xk=V<6N-7#vhqYW1 za_FaKl{gD>?V2t5k&B1{x`GSPY(J-A1nYK_dyxf?`ARi-_TzFzNok4ChZircK~rn- zY9i*w9KZL)&B(3gx=6O>6P5RYE!ei5*Eddp<8ej+}Dtn20znyrY z_`Y`w=fOlFF_IIp8^;G(+$I&E0j3f#^MO#J-|i7!tDXPrK^AH))Mj zs!;!h%eP7}eKQ9nMzQG7Nb9W6ic!!q=OM0gd;jFeA;rq!tpg_?((-&r*4;@jCynU_Hz#6(4}jz9EWS@`<|4b zyakq!6SoIU#leH=?N5e!AI7ROK}N7ZB-{;JY?eLNeDf?{Pgt1%IMMGyZ>w*`_E5aZ z{^?WIOD~)@e?7p~Gskj0R=hiNm?Yaf z2)}~RSg>@ybE$Bot&Qgv$`f7}%-9Wo*23KM*30iMGi!QWKHh3)38s$vTJ0m|tvZ^p zH$H7d6MdDyPDNy(m+*WiK^S)#<;|B15%2tkuVvNEko7;VJl}Q&YDa?!I^kW%goa6f z0sky>9PKYtwN%YelAw>_hDkb!S06`W@kJKBYR zYh~U>pBa<&|4gge%N!y|0Vw0nWYp~`XIO^p(zC2Cy9d_2#H`pI2gbL4B?D_3Nokvg zM@uPmjXAN4h8Mql4ie~>zj1P_EuoMJQkp*;L`dTe@paqFqb`94vXJV4Bv4_MGo18J z=Bx&$VyK_=uy!@{>^?xTI?D)66c0fGW2g`sJrgP3EqEWIqG+v4 z3NUC4QiPHM_J>^i-uSqQ>hetY^lxpfmh5sah zdEqSw#AUcuI!tH`KHut0ZUvgab3oS4sj1a5Gx;o+9!-^kP&9COG0vG_bWuLIx$>(S zD9s-muogzb5%jpqQ#JgBB(EoE+%x`&E4-DmZ3LC)dy+RRgx*9B(XGfuFeNKz z$ogo%T5mj$Etk|jIzSH)OZo9leaKz>E;~&-ePAavxnYcoxsfW!dxFmqYn?VQk3DBm ziR4Y)i2n0-Hr?PuP@4G>(RoMWfkVA&!u%-%lB7nZ@&M)|@&WrUpAf z4Gtdj1sCVc8Gq}1w?@1k=IcyfqoDfL)sdlo-n?CP zVA!-H?_dObMi!DYTJ1%uTb%apW4gN_>Hj)@j_n>WBOLW-Sdq`T!jiJaWt#UkG@k4` z&&n@d7!Un6;Zp0S4CD_|=IJ40xN&)VCyWl}aB27EJ)Zy;$Fg~_f$d*Ezm;-b>W?*Y zAVt+wl^O-j-+Q-ovbos)3vXu-EZ{qPep@6tIu)IP=MhoK2dJ<)zDtH9q72t7M}>z_ zFYI{6D7~dC=xx`7@f5d3WMM=vP9tqb|I{PC?#8zkf;WfX+J1dF_aTLHEq7xUMpoSvL2WIY{H5cn0cUZ~Cadh^fXWRpNucgHJHsL?!*{hgz`! zdY)9%b(M;E{CdUBlK&7qKdDq-G9GTjD97D36E-oZ^p>ZcGKCKRMk)nplUQ}V8oN|l z)Y4M;Gg7aCLi-#FJ!U@6v@QI!4_7RnTPZ^ImOZsZGw5btH0&L2nBo^Gxs^=iLxY6V z2B$)UuG!k9wnkP@#$g;C?atijD@IS`H3o6~km3airye3NAnt$%zx&g(@p|=92Owi_ zWc57Ks-Nnuyn+Q6ybV2c3~{U6_%g!<&0p){A22d<4pBW*o10w@C;TfJb4^TnfNzvhP^*?lQkpJvW3tgDH=kI6G#hpWu1JC}=u>ayVaTA1QF(o^UK z3W>%ldQoI6(}e*S)EGn@qQ%!1Kdl)4i=`jMmd+S&c9fvxDYUJF3Fj$49N^0hfgIXY z<$keFQQ_;`P{u;-lE&0)@@SayP(PC+FjW67K;^danbpJKWD%5ou%7a)5hw_Zht`Q> zN0o$O?ewJWk|<&Afi?Z4akB^*qk7TW>%KFrhClvsFlm3OSkU`Q*v41!>{{LYo%m02 zG3sJ%4sjY%#6g1kSg%P`qQ;Na*fC~IwPQRID%a!-HMMH}&}jAjlE~93;pp%o z>n=vpu|GAG(#Q3^ODFZ4e+VdE6kEj+Zn*P!_v)+0%+D+LfI`9ke9k@cBAPeOk-g@` z&fy#*Gv(=qv-PNL;O-6}nTY9Sj3{U|`p=$-AVJ@6^+9b>i_IITiO_ST^XwN>n!eTw zQf5ILZf}^{EuOd31-%!O4zMvo4ZdF$0>#-rb?;wJ;m)i?vpj;ZTlb52`!@B!!e|S6 z%T_|J8m~&5W+a-+#0%wKE$E#A;TB6>6|Xf zH$J6kH3l>Ru2WGRNXpbA`Eh7s&*bepd1fqG zKv>3wrN4G#FXw%eqoUjlzF2G-_FkmLie} z;_P-lKt?%n%-K6S6E)fp^C>fUvJpN#?c%Evs=*Tc`hu6U+Ta5xn=effUh;rZXa05X zr`F3zG5Xiod`bq!W#rFc1z>D-@N%#D(+=-5R7N(d0kuYWD|7_Q1kSo%!$r_p5@xcF z6K^@jzOH4|QaoiZt2sQ^1Vvc3g8I`sare4u6)A56#f{4zC~gQwu`d}lC)BXg=*hw$ zrh7YtX(%Q(F1_SdpWOIS?AXU|*G(pp-az+>)8#Xr=9B6=m!}KKX$|`%G2Ja+Pn;Tq zpj-6kLgRpoXKlGx!|`J;wyH6XWYt1b%;Y;om!Z5-`=OT$Qk3$@7Q{Tbg-btjlh0$* zb0*U^(yXmeP2_L;^o6=bsJM1aTJ8&Y0^-R)k_sXTt3Lhp3MweoI#d7rKghHzV3;2a z$u14AHWaqK1W7N|XwVC{dhe9Z8TQ(d16SP=zdE6kG|{U~Yq?VE2IkL*2n@#QE-#(a zch|IuVP0?2JzBb~00Ii$iD`diing7tCG65TE^tV;Ty=b2HO-M;6h616c`OCv(km`f zy&>IQG?wv(FxBZ$zKUN=INjI( zt4|Hc&T(A=@P(!*++0L0K`vL93A9{cVl!5n~yJqddw{<7a9QOqrgPEBqp z#TBa#&n{~NLbIr4*(YA#Qk#X5Vj`m-GQP`h!WB7*+*L>=ADENWH))A%`;y#C;COO{ zPz`uEdj=1x05UyR+K#F-`r%H;`Dx)ScNi^6OB7q+=yn5`S~2dQj!;+?Wp8M@9S9Lh zMI!E2%*%HbmK#!zgoX*C)Vu2dw{6@RXHV|$%Ua~>rK|U-OFP@!O%&7@RsDR=B0;M` z zgw#kfMkYNs@1!m+_W9iYIqFSBFc)i2;P>a>!T1%HoeuNuLBQJE{yONgsu}OIrISk4~wHU3^uMMqA6* z*X~CA<_ci?Ur*O`28Pf^JoGvJIgg|;I=lW@wpEw;2Gc6cEqH30)Yz=f*}#K)+@3L? zqUc4(kCPcakI(XhqhcGVN6V$a^&2|ZCNk!M?)a8|fo<+UJd<;z{D=3}4=+YQ;@pg^TzYqjTa` zL(Wd@3=Rm)=*otGr|B((u`{~Jz)ou6gmYYApgcWo{|Yq>I{RQLQ&^&O3qOQnfXLkB&9vNP7WgV?=s^Pnv*U$Sib>=(7M zj%KN|b~d}sK5%HZm3+r75k9aP1X=#|6np{5ugPtnJ3*J6TP2>igA>vY-csM^f{~Zy z&Q$WU5*S`#ZZo(y_O6y5zHCyzpx}7a{aiTNX5__^FBlZEhGwmqRJ(Rjy9UW#;RL_d zdpiJjxe&vyp2B9HzL!0VbO?{D*nJ!KA_kJ4IlCxLEWUY3+u9G7F;b_e;a|WB2^Jnq z5rZXNVi5a&;y>0lGAfTV%{17a$~MbpzY-xoK|H@z#_;AH&1_h<-Z;Ro!j!@UjeZQuPh?dC8gg0xV~)C+QsLAC51J z=4Bz|L(469TzZnOIwxIfV`Nzb;T4}ChLg6DkZSiz9Q@Dq(3c%wWK`My%NkpsILU%# z+KfSy8P{?9E#ki?2-<{AicPFiHP|W?laemiym3c89>z?*48d8NR?qGXRh{V-8B*!^ z6mF0rKKd12pDN{RE6?{a;k=JHIAf%q{jMfF+&q+He5)Or<@orq&i;2QPBVFM&RWtXGtg%lGo!>pEcU1y7@q| zZ$97Ld-0fR`TP^f$6FXxnMw&e4B43sKk&H3l zThG))8Vb3P5ib{A!`PL<9XpjNrKcloY&k*(Sh(~)C&9^GDHX~YemgY3<1$4BJ)WQ& zx#2i?QKS%NO}*p;BYaK=X#X$y$uZn5cGnyh{3Oi`FE%b+V4kLYf3V4q3KAQs? zUF*TYVt1wqxjWnbGhNlcB6n8GQhP`hoENWT;-!I#jNVRL=WB)Ziqftj*QET5FL{_0 zS;7jwAmzqoTB@-ZZXgNcJW-dJ?B_mR*tzktqn|Ly#AXzb^eH1}vB9_N0 zJ0#^Rx|MujDcp@T?JO0e{O$6W<97ocMMBYCfmBqMWz2+0mEEUyG;pn&dflZB4gm!8j^1##MxGJFB~XgQDfjP7*SasIwP)V^_i#d)yJtLhaXf0t(6#tnibdB} zGsd}bc1GF#)jC3Z*=)xOJJf~wr*3Tv7kgs+p1!3;zq`oK4~xE*wKgO8qw{VVEJG&z zksbbLKq>%;w&D;fZcn-{emp^~_eRD&;Lj$aT57bf;u#1CsiS?M@%T*02a?||Jm3cQ zlDJZKxnreQ%&w^75|RZyBZFWQsg8|E57-9Ey6=y7`&{G1^91L6)$+#CsTh_%=Pebf zGt~RDN=}UX${EhH+&R6^-bOd%fnY67S5^6|XGj!eS}wzND{YnI3E1w`O&})bx!ybf zdx8GK?aO(8E6iP)+o#GavtK(!p}N2}R#$&;+Jk>3sEuXRr_#OcrpMQFuYsVp1$p#8 zL+w9UX#X?R{==8@Pa^VvYU97}lYeQ!{=Y38GNX*?Pg?4+a#Wx$Ph9Ky6>s8qkvizV zT8eAuDjH0dh{tQkM;Z->&Kh?)q)ztMV;W_p2V^J5!`U8xDb1Z#qOu>@({CU~{$8p& zb!OlAXF+yk^z&x*4}cr!ChWrQ#wYK{G?%u}#IY!ZwSr99+a~@JdV3Il4*lD+$qg^&zITF>l$9iDou31)o_2?GcU+}qa@^5`fj$hm|eGNf8rBG zCaKbw)qFBRbNkDMmC|RIf4{x{RS@&y{t$`1?tR|tYQe+huTAw(>iip}z(+R(H-AF? z(2V_Gt5E+YDSasWc9K8}jDmVmsZQ*5L(?<>Ey;^n#Xg1zUMaeN>F{^%_b)%K%->?+@2lwB9?hC)JolcFBUD~c>4P=K8 zpk)+BI5j{wdBaFdj=SR7Kf~Jq<_Bz zTTuX)+gvN3YX9wH{`QZxdID~i?)V+z(cfPLn$L>hi_1rh)$lso