From 9b04e8f39b4816a40a54b9f253ced61972987e86 Mon Sep 17 00:00:00 2001 From: Cristian-Venticinque Date: Thu, 3 Sep 2026 15:52:03 -0300 Subject: [PATCH 1/3] Adding tutorial files, adjusting nav. --- code-builder-home/modules/ROOT/nav.adoc | 8 + .../ROOT/pages/tut-flights-api-tutorial.adoc | 37 ++ .../pages/tut-flights-debug-test-api.adoc | 521 ++++++++++++++++++ .../ROOT/pages/tut-flights-deploy-api.adoc | 91 +++ .../ROOT/pages/tut-flights-design-api.adoc | 120 ++++ .../ROOT/pages/tut-flights-implement-api.adoc | 76 +++ ...tut-flights-manage-secure-monitor-api.adoc | 213 +++++++ .../tut-flights-validate-transform-data.adoc | 438 +++++++++++++++ .../modules/ROOT/pages/tutorials.adoc | 6 +- 9 files changed, 1509 insertions(+), 1 deletion(-) create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc diff --git a/code-builder-home/modules/ROOT/nav.adoc b/code-builder-home/modules/ROOT/nav.adoc index 066e5833a..5ca084061 100644 --- a/code-builder-home/modules/ROOT/nav.adoc +++ b/code-builder-home/modules/ROOT/nav.adoc @@ -29,6 +29,14 @@ *** xref:tut-slack-add-condition-to-your-flow.adoc[] *** xref:tut-slack-configure-integration.adoc[] +** xref:tut-flights-api-tutorial.adoc[] +*** xref:tut-flights-design-api.adoc[] +*** xref:tut-flights-implement-api.adoc[] +*** xref:tut-flights-validate-transform-data.adoc[] +*** xref:tut-flights-debug-test-api.adoc[] +*** xref:tut-flights-deploy-api.adoc[] +*** xref:tut-flights-manage-secure-monitor-api.adoc[] + * xref:ai-enabling-api-project-topic-center.adoc[] // USE AI TO DESIGN AN API SPEC diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc new file mode 100644 index 000000000..d5905bf40 --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc @@ -0,0 +1,37 @@ += Build an API from Start to Finish with Anypoint Code Builder +:imagesdir: ../assets/images +:page-pagination: next + +Take an end-to-end, API-led journey in MuleSoft: design a REST API specification, implement it as an integration, debug and test your application, deploy it, and then manage and monitor it in production. This tutorial walks you through that full lifecycle using a single-resource API, the American Flights API, that returns flight information from a MySQL database. + +After you complete the tutorial with this single-resource API, use the same model to plan your own connectivity projects. + +This tutorial series contains the following parts: + +. xref:tut-flights-design-api.adoc[] + +Design the American Flights API specification, test it with the built-in mocking service, and publish it to Anypoint Exchange. +. xref:tut-flights-implement-api.adoc[] + +Scaffold the specification into an integration project and connect to a MySQL database. +. xref:tut-flights-validate-transform-data.adoc[] + +Add business logic validation and transform database records to meet the API contract. +. xref:tut-flights-debug-test-api.adoc[] + +Run the application locally, use the debugger, and create MUnit tests. +. xref:tut-flights-deploy-api.adoc[] + +Deploy the application to CloudHub 2.0. +. xref:tut-flights-manage-secure-monitor-api.adoc[] + +Register the API with API Manager, secure it with a policy, and monitor it with Runtime Manager. + +== Before You Begin + +Before you begin your API journey, verify that you have the required tools and access: + +* Set up your MuleSoft environment. ++ +See xref:start-acb.adoc[] for more information. +* Create an account on Anypoint Platform. ++ +Use your username and password for your Anypoint Platform organization. If you don't have an Anypoint Platform account yet, create a trial organization. +* Download a REST client, such as Advanced REST Client or another similar client, to test REST requests. This tutorial uses Advanced REST Client. +* Have some familiarity with xref:access-management::business-groups.adoc[business groups]. API specs must belong to a business group to be published to Exchange. + +TIP: Configure a long timeout in your REST client settings to avoid timeout issues during debugging. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc new file mode 100644 index 000000000..1186fe61c --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc @@ -0,0 +1,521 @@ += Debug and Test the American Flights API +:imagesdir: ../assets/images +:page-pagination: + +After implementing your API flows, validate that the application behaves as expected before deployment. In this section, you run the project locally, use the debugger to trace request execution and error routing, and add baseline MUnit tests to confirm both successful and failure scenarios. + +== Run the Application Locally + +Before testing your API, start the Mule application locally to verify the implementation works as designed. + +. In Anypoint Code Builder, open your implementation project and verify that the listener in `american-flights-api-main` is configured for host `0.0.0.0` and port `8081`. +. Click the *Listener* element in your flow. +. On the *Connection Config* field, click *Edit Connection*. +. Verify the values and update them if necessary: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Host* | `0.0.0.0` +| *Port* | `8081` +|=== + +// Pointer to Run and Debug +include::partial$acb-reusable-steps.adoc[tags="open-run-debug"] +. In the top menu, ensure *Run Mule Application* is selected and click *Start Debugging*. +. Wait for the application to deploy. You see deployment messages in the *Output* panel. ++ +When deployment is complete, you see a message similar to: ++ +[source,command] +---- +********************************************************************** +* - - + APPLICATION + - - * - - + STATUS + - - * +********************************************************************** +* american-flights-api-implementation-1.0.0 * DEPLOYED * +********************************************************************** +---- +. In your REST client (such as Advanced REST Client), test your API endpoints: +* Send `GET http://localhost:8081/api/flights` and verify a `200` response with flight data. +* Send `GET http://localhost:8081/api/flights/AA123` and verify the flight-by-ID response path works. +* Send `GET http://localhost:8081/api/flights/123` and verify a `400` response from your API specification's path parameter validation. + +== Use the Debugger to Troubleshoot + +The built-in debugger in Anypoint Code Builder helps you understand how your Mule application processes requests, inspect variable values at runtime, and trace error-handling paths. + +Breakpoints pause execution at specific components in your flow, so you can inspect the current state of the message payload, attributes, and variables. There are two types of breakpoints: + +* *Component Breakpoint*: Pauses execution before a specific component executes (such as a Transform Message or Database Select operation). +* *Error Breakpoint*: Pauses execution when an error occurs, allowing you to inspect the error object. + +When the application running in debug mode reaches a component with a breakpoint, execution pauses and the IDE highlights the current component with a yellow border. + +The *Debug* panel opens automatically, showing the current values of Mule variables, message attributes, payload, and the flow execution path leading to the current breakpoint. + +=== Set Component Breakpoints + +Set breakpoints in your application to pause execution and evaluate values at runtime. + +. With your application stopped, open the canvas view of your `american-flights-api-implementation.xml` file. +. Locate the flow `get:\flights\(flightId):american-flights-api-config`. +. Right-click the *Flight by ID* Database Select operation. +. Select *Add Breakpoint* from the context menu. ++ +A red dot appears on the component, indicating an active breakpoint. +. Add a breakpoint on the *Transform Flight* component after the database query to inspect the payload. + +=== Start a Debug Session + +. Click the *Run and Debug* icon in the activity bar. +. Ensure *Debug Mule Application* is selected in the dropdown. +. Click the *Start Debugging* button (green play icon). +. Wait for the application to deploy in debug mode. You see `Debugger listening on port XXXX` in the output panel. + +=== Step Through the Execution and Inspect Variables and Payload + +. After your application starts running in debug mode, send a request from your REST client: ++ +[source,command] +---- +GET http://localhost:8081/api/flights/AA123 +---- ++ +The execution pauses at the *Flight by ID* breakpoint. +. In the *Variables* section of the Debug panel, expand *Mule Message > Payload*. ++ +At this point, the message is empty because the query to the database hasn't executed. +. Expand *Mule Message > Attributes* to see HTTP request information: +* `attributes.uriParams.flightId`: The flight ID from the URL. +* `attributes.headers`: HTTP headers. +* `attributes.method`: HTTP method (GET, POST, and so on). +. Expand *Variables* to see Mule variables created by Transform Message components: +* `vars.flightCodeMap`: The flight code mapping. +* `vars.dbFlightId`: The database ID for the flight. +. To evaluate a DataWeave expression at the current breakpoint: +.. In the Debug panel, locate the *Watch* section. +.. Click the *+* icon to add a watch expression. +.. Enter a DataWeave expression, such as: ++ +[source,dataweave] +---- +attributes.uriParams.flightId +---- +.. Press Enter. The IDE evaluates the expression and displays the result. +. Click *Step Over* (or press F10) to continue the execution. +. Execution stops at the *Transform Flight* component. +. Expand *Mule Message > Payload*. ++ +Notice that now the message contains the results from the database query. +. Click *Stop* (SHIFT+F5) to finish debugging. + +=== Debug Error Paths + +To understand how your API handles errors, debug the validation and error-handling logic. + +. Set breakpoints on: +* The Choice router in `get:\flights\(flightId):american-flights-api-config`. +* The Raise Error component inside the *When* path. +. Start debugging and send an invalid request in your REST client: ++ +[source,command] +---- +GET http://localhost:8081/api/flights/AA999 +---- ++ +The execution pauses at the Choice router. +. Inspect `vars.dbFlightId` (should be `null` because `AA999` isn't in the mapping). +. Click *Step Over* (F10). ++ +Execution moves to the *When* path and pauses at Raise Error. +. Click *Step Over* (F10). ++ +Execution pauses at the On Error Propagate handler for `VALIDATION:FLIGHT_NOT_FOUND`: +. In the Debug panel, expand the `error` object and verify: +* `error.errorType`: `VALIDATION:FLIGHT_NOT_FOUND` +* `error.description`: `"Flight code AA999 not found in our system"` +. Inspect the Logger component's message evaluation. +. Click *Continue* (F5) to complete the error response. + +== Create and Run MUnit Tests + +MUnit is MuleSoft's unit testing framework for Mule applications. Use it to create automated tests that verify your API behaves correctly, without requiring external dependencies or manual testing. Anypoint Code Builder provides integrated support for creating, running, and debugging MUnit tests through a Testing panel, canvas UI, and code editor. + +=== Understand MUnit Test Structure + +An MUnit test consists of: + +* *Test Suite*: A file containing one or more tests (saved as `*-test.xml` in `src/test/munit`). +* *Test Case*: An individual test that validates a specific behavior. +* *Behavior*: Setup and teardown conditions, including mocks of external systems (like databases) to isolate the logic under test. +* *Execution*: Invokes a flow or subflow. +* *Validation*: Asserts that the result matches expectations. + +NOTE: MUnit 3.4.0 or later is required for canvas-based test suite creation in Anypoint Code Builder. + +=== Create Your First MUnit Test Suite + +Create a test suite to verify the `GET /flights` endpoint returns all flights. + +==== Step 1: Create a New MUnit Test Suite + +. In Anypoint Code Builder, navigate to `src/test/munit` in the Explorer panel. +. Right-click the `munit` folder and select *New MUnit Test Suite File*. +. Provide a name for the test suite: `american-flights-api-test.xml`. +. Click *Create*. ++ +Anypoint Code Builder generates a new file with a basic structure: ++ +[source,xml] +---- + + + + +---- + +==== Step 2: Add a Test for Database Operations + +Now create your first test case to verify a database query returns flight data successfully. This test uses the actual database configuration from your implementation project. + +NOTE: This example uses a real database connection. For tests that should run without external dependencies, you can mock the database using `munit-tools:mock-when` as shown later in this section. + +. Open the test file (`american-flights-api-test.xml`) in canvas view. +. In the MUnit bar, click *+* and select *Test Scope*. +. Click the *Test* component and change its name to `test-database-query`. ++ +Alternatively, in the code editor, add: ++ +[source,xml] +---- + + + +---- +. In the *Behavior* section, click *+*. +. Select *Code Processors > Transformers > Set Variable*. +. Click the *Set Variable* component and specify these values: +* *Variable name*: `expectedRecordCount` +* *Value*: `3` ++ +Alternatively, paste this code in your `munit:test` element in the XML config: ++ +[source,xml] +---- + + + + +---- +. In the *Execution* section, click *+*. +. Select *Connectors > Database > Select*. +. Click the *Database - Select* operation and specify these values: +* *Connection Config*: `Config` (select the existing database configuration) +* *SQL Query Text*: `SELECT * FROM american` ++ +Alternatively, paste this code in your `munit:test` element in the XML config: ++ +[source,xml] +---- + + + + + +---- +. In the *Validation* section, click *+*. +. Select *MUnit Test Modules > Assert that*. +. Click the *Assert that* component and specify these values: +* *Expression*: `sizeOf(payload)` +* *Is*: `MunitTools::greaterThan(0)` +* *Message*: `Should return at least one flight` ++ +[source,xml] +---- + + + +---- ++ +This validation checks that the database query returned at least one record. + +==== Step 3: Run the Test + +// Pointer to Testing panel +include::partial$acb-reusable-steps.adoc[tags="munit-open-testing-panel"] +. Locate your test suite `american-flights-api-test.xml` in the Testing panel. +. Click the *Run* button (▶) next to the test case `test-database-query`. ++ +Alternatively, right-click the test in the canvas and select *Run Tests*. +. View the test results in the *Testing* panel. ++ +A successful test shows a green checkmark (✓) and output similar to: ++ +[source,command] +---- +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 +[INFO] +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +---- + +==== Complete Example + +Here's the complete test structure: + +[source,xml] +---- + + + + + + + + + + + + + + + + + + + +---- + +=== Advanced Testing: Use Mocks for API Endpoints + +While the previous example tested a database operation directly, you can also test complete API endpoints by adding an HTTP Request configuration and mocking dependencies. This approach allows your tests to run without requiring external systems like databases. + +==== Step 1: Add the HTTP Namespace + +Before using HTTP components in your test, you need to add the HTTP namespace to your test suite. + +. Open the test suite file in the XML code editor (click the ** icon to switch from canvas to code view). +. Locate the opening `` tag at the top of your file. +. Add the HTTP namespace declaration to the `` tag: +* Add `xmlns:http="http://www.mulesoft.org/schema/mule/http"` to the namespace declarations. +* Add `http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd` to the `xsi:schemaLocation` attribute. ++ +Your `` tag should look like this: ++ +[source,xml] +---- + +---- + +==== Step 2: Add the HTTP Request Configuration + +Add an HTTP Request configuration that points to your local Mule application. Copy and paste this configuration in the XML editor before your test cases: + +[source,xml] +---- + + + +---- + +==== Step 3: Add a Test for GET /flights (Success Path) + +Create a test that calls your API endpoint and mocks the database response. + +. Open the `american-flights-api-test.xml` file in the Code Editor. +. After the closing `` tag and before the `` tag, paste this code: ++ +[source,xml] +---- + + + + + + + + + + + + + + + + + + + +---- +. Confirm the test was created in the canvas view. + +NOTE: The `with-attributes` section identifies which specific Database Select operation to mock by matching the `doc:name` attribute value. Make sure the `whereValue` matches the name you gave to your Database Select component in the implementation flow. + +==== Step 4: Add a Test for Error Handling + +Add a new test to verify error handling when a flight code is not found. + +. After the last closing `` tag and before the `` tag, paste this code: ++ +[source,xml] +---- + + + + + + + + + + + + + + + + + + + + + + + + +---- + +==== Step 5: Run the Tests + +. Open the test in canvas view. +. In the Testing panel, click the *Run all tests in this file* (▶) button. +. Click *Run Test*. +. Verify the tests pass with the expected responses. + +=== Measure Test Coverage + +MUnit provides built-in coverage reporting to measure what percentage of your application code is executed by your tests. + +==== Run Tests with Coverage + +. In the Testing panel, click the *Run all tests in this file* (▶) button. +. Click *Run Test With Coverage*. ++ +Alternatively, right-click the test suite file in the project explorer and select *Run MUnit Test with Coverage*. + +After the tests complete, you can view the coverage report in the *Test Coverage* panel, or in the console output. + +Coverage indicates the percentage of event processors executed by the MUnit test. Aim for at least 80% coverage for production APIs. + +After running tests with coverage, the Explorer panel displays coverage metrics alongside your files, making it easy to identify which parts of your application need additional test coverage. + +=== Best Practices for MUnit Testing + +Follow these best practices to create maintainable and effective MUnit tests: + +* *Mock external dependencies*: Always mock database connections, HTTP requests to external APIs, and file system operations to keep tests fast and reliable. +* *Test one behavior per test case*: Each test should validate a single scenario (success path, specific error condition, and so on). +* *Use descriptive test names*: Names like `get-flight-by-valid-code-returns-200` clearly indicate what the test validates. +* *Maintain test data separately*: Consider storing sample payloads in separate files in `src/test/resources` for complex data structures. +* *Run tests frequently*: Execute tests after each significant change to catch issues early. +* *Aim for high coverage*: Target at least 80% code coverage, ensuring all critical paths are tested. +* *Test error scenarios*: Don't just test the happy path — validate that your error handlers work correctly too. + +=== Troubleshoot Common MUnit Issues + +When creating and running MUnit tests, you may encounter issues related to test execution, mocking, or runtime configuration. These are some common problems and their solutions to help you resolve test failures. + +==== Test Timeout Errors + +If tests fail with timeout errors: + +* Increase the timeout value in your MUnit configuration. +* Check for infinite loops or blocking operations in your flows. +* Ensure mocked components return responses quickly. + +==== Mock Not Applied + +If mocks aren't being applied: + +* Verify the `doc:name` attribute in `with-attributes` exactly matches your component's name. +* Check that the processor type (`db:select`, `ee:transform`, and so on) is correct. +* Ensure the mock is defined in the `munit:behavior` section before execution. + +==== Assertion Failures + +When assertions fail: + +* Review the expected vs. actual values in the test output. +* Add Logger components to see intermediate payload transformations. +* Use debug mode to inspect the actual payload structure at the validation point. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc new file mode 100644 index 000000000..fa6037d7b --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc @@ -0,0 +1,91 @@ += Deploy the American Flights API to CloudHub 2.0 +:imagesdir: ../assets/images +:page-pagination: + +After implementing, debugging, and testing your API locally, you're ready to deploy it to CloudHub 2.0. CloudHub 2.0 is MuleSoft's cloud-based integration platform that lets you deploy, manage, and scale your Mule applications without managing infrastructure. + +In this section, you deploy your American Flights API to CloudHub 2.0. You configure it in API Manager, apply a security policy, and monitor its performance using Runtime Manager in the pages that follow. + +See xref:int-deploy-mule-apps.adoc[] for more information about CloudHub and CloudHub 2.0 deployment concepts. + +== Deploy Your Application to CloudHub 2.0 from Anypoint Code Builder + +CloudHub 2.0 provides a fully managed, containerized deployment environment for your Mule applications. Deploying from Anypoint Code Builder is a streamlined process that packages your application and deploys it directly to the cloud. + +=== Prerequisites for Deployment + +Before deploying to CloudHub 2.0, verify that you have: + +* A CloudHub 2.0 account with available vCores (virtual cores) for deployment. +* Runtime Manager permissions to read, create, and delete applications. +* An application that passes all MUnit tests. +* An application that runs successfully in debug mode locally. + +=== Step 1: Configure Deployment Settings and Deploy Your Project + +The first time you deploy an application to CloudHub 2.0, Anypoint Code Builder creates a deployment settings file. After modifying the deployment settings, deploy your project with those settings. + +. In the project explorer, right-click the American Flights project XML file and select *Mule > Deploy Mule Project to CloudHub*. +. If prompted, sign in to Anypoint Platform. +. Select *CloudHub 2.0*. +. Select a deployment target. +. Select an environment, for example: *Sandbox*. ++ +If there's no deployment settings file for the project, Code Builder creates one. +. In the deployment configuration file, provide the following information: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *applicationName* | Enter a unique name for your deployment (for example, `american-flights-api-yourname`). This name must be unique across all CloudHub deployments. +| *runtime* | Confirm the Mule runtime version (the latest compatible version is selected by default). +| *replicas* | `1`. The number of replica instances to deploy. +| *replicaSize* | `0.1`. The compute capacity (vCores) allocated to each replica. +| *deploymentModel* | Leave the default value: `rolling`. +|=== + +. Click *Deploy* in the notification pop-up. ++ +If the notification is no longer visible, restart the deployment from the first step. +. Select the Mule version to use for the deployment. +. If prompted to select an asset version, leave the default value and press Enter. + +NOTE: Worker size and count affect your CloudHub 2.0 costs. For this tutorial, use 0.1 vCores with 1 worker, which are the minimum allowed values. + +The deployment process starts and usually takes from two to five minutes. After this period, look for an ACB notification with a message similar to this: `The 'american-flights-api-implementation' project was published to the 'Sandbox' environment in CloudHub 2.0 'Cloudhub-US-East-2 - Shared Space'. The deployment is now processing. Monitor its progress in Runtime Manager.` + +=== Step 2: Monitor the Deployment Process + +After initiating the deployment, open Runtime Manager to monitor the status. + +. In the notification that shows after deployment starts, click *Open Runtime Manager* and then click *Open*. +. Alternatively, if you missed the notification, open xref:runtime-manager::index.adoc[Runtime Manager] and search for your application name. Then, click the application name to open its status page. +. Confirm the *Application status* is *Running*. ++ +If the application is still deploying and shows status *Not Running*, wait a few minutes for the process to finish. + +=== Step 3: Verify Your Deployed Application + +Once deployed, verify that your API is accessible and functioning correctly. + +. In Runtime Manager, copy the application URL from the *Public endpoint* value. ++ +The URL is similar to this: `https://american-flights-api-implementation-ij0c18.5sc6y6-3.usa-e2.cloudhub.io` +. In your REST client, test the deployed API by making a GET request to your endpoint and adding `/api/flights` to the URL. For example: ++ +[source,command] +---- +GET https://american-flights-api-implementation-ij0c18.5sc6y6-3.usa-e2.cloudhub.io/api/flights +---- ++ +Replace the URL from the example with your actual endpoint URL. +. Verify that you receive a `200 OK` response with the flight data. +. Test additional endpoints: ++ +[source,command] +---- +GET https://american-flights-api-implementation-ij0c18.5sc6y6-3.usa-e2.cloudhub.io/api/flights/AA123 +---- + +TIP: Save your application URL for use in the next sections where you configure API Manager and apply policies. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc new file mode 100644 index 000000000..e8860ccb1 --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc @@ -0,0 +1,120 @@ += Design and Publish the American Flights API Specification +:imagesdir: ../assets/images +:page-pagination: + +Design the American Flights API specification in Anypoint Code Builder, test it with the built-in mocking service, and publish it to Anypoint Exchange so other team members can find and implement it. + +Before you begin, complete the setup in xref:tut-flights-api-tutorial.adoc[]. + +== Create the API Specification + +Start creating the American Flights API spec: + +// Open the ACB IDE +include::partial$acb-reusable-steps.adoc[tags="open-ide"] +. From *Create*, click *Design an API*. +. Configure your API spec project using these values: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Enable this API for Topics and Actions* | Select this checkbox to add the applicable agent topic metadata and apply centralized governance rulesets to the project. See xref:ai-enabling-api-project-topic-center.adoc[] for more information. +| *Project Name* | `American Flights API` +| *Project Location* | Your home directory is selected by default. This is the root folder of your project, which acts as your workspace. Don't select a different project directory for this API spec. See xref:start-add-folders.adoc[] for more information. +| *API Type* | *REST API* +| *API Specification Language* | *OAS 3.0 (YAML)* +|=== + +. Click *Create Project* to generate the American Flights API project file: `american-flights-api.yaml`. ++ +The file name is based on the project name you provide. +. Configure the agent topic metadata and instructions using these values: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Topic Label* | American Flights API +| *Classification Description* | Use the API description. +| *Scope* | Your job is only to book, update, or retrieve flight information. +| *Instruction* | If a user asks to retrieve flight details, use the get flight operation to retrieve information using the booking ID. +|=== + +. Click *Apply* to save your changes. +. Open MuleSoft Vibes from the toolbar or from the *Build Your Ecosystem with AI* card in the canvas. +. Enable auto-approve by clicking the *Auto-approve* section at the bottom of the MuleSoft Vibes window, and then select *Read project files*, *Edit project files*, *Execute safe commands*, and *Use MCP Servers*. ++ +With auto-approve enabled, MuleSoft Vibes automatically applies changes to your project without prompting you for confirmation. See xref:vibes-get-started.adoc[] for more information. +. Enter this prompt, and then send your message: ++ +[source,command] +---- +Create an API specification example for the American Flights API that returns flight information from a MySQL database. +---- ++ +MuleSoft Vibes generates the spec and saves it to your file. ++ +NOTE: If you get an `API streaming failed` error, click *Resume Task* to retry creating the spec. + +== Mock and Test the API + +Next, use MuleSoft Vibes and the built-in mocking service in the API Console to test the API before you publish it. + +. Enter this prompt, and then send your message: ++ +[source,command] +---- +Test the API using the built-in mocking service in API console. +---- +. Select the *Auto-approve* checkbox and click *Accept* to proceed with testing. + +MuleSoft Vibes creates a testing file named `API_TESTING_GUIDE.md` and tests these endpoints: + +* `GET` flight data +* `GET` flight status +* `GET` airport information + +MuleSoft Vibes then creates a testing file named `API_TESTING_RESULTS.md`. Your API spec is now ready to publish to Anypoint Exchange. + +== Publish the API Spec to Exchange + +Publish the American Flights API spec to Exchange so that other team members can find and implement it. + +. In Anypoint Code Builder, open the spec for your American Flights API project, such as `american-flights-api.yaml`. +. Open the Command Palette. ++ +// Pointer to Command Palette +include::partial$acb-reusable-steps.adoc[tags="open-command-palette"] +. Provide this command: ++ +[source,command] +---- +MuleSoft: Publish API Project to Exchange +---- +. If prompted, click *Allow*, and follow the prompts to sign in to Anypoint Platform. +. If you haven't selected a business group, select one now in *Select a Business Group*. +. Enter the asset version: `1.0.0`. +. Confirm the API version: `v1`. +. Confirm the asset ID in the project metadata: `american-flights-api`. +. Click *Publish*. ++ +The status bar shows the progress after the API is published successfully to Exchange. +. When prompted to implement the API now, select *No* to avoid scaffolding the American Flights API spec into your integration. ++ +Selecting *Yes* scaffolds the API spec into your project. Instead of scaffolding now, you scaffold the API in xref:tut-flights-implement-api.adoc[]. + +=== Locate Your API in Exchange + +After publishing your API spec, you can find it in Anypoint Exchange: + +. Navigate to Anypoint Exchange. ++ +-- +// Pointer to Exchange URLs +include::partial$acb-reusable-steps.adoc[tags="exchange-urls"] +-- +. Type `american` in the search bar and press Enter. +. Notice that your API spec is listed as an asset. ++ +You can select the API, navigate through its summary, and see all the endpoints you defined in the previous tasks. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc new file mode 100644 index 000000000..266323a07 --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc @@ -0,0 +1,76 @@ += Implement the American Flights API +:imagesdir: ../assets/images +:page-pagination: + +After designing and publishing your API specification, you're ready to implement it in Anypoint Code Builder. At this stage of the tutorial, you already have an API specification for the American Flights API published to Anypoint Exchange, and you're working in the same workspace where you build the integration. + +To implement the API, you scaffold the API specification into an integration project. Scaffolding generates the API interface based on the specification, creating the flows and configuration that you then extend with application logic. + +== Scaffold the American Flights API into an Integration Project + +Now that the American Flights API specification is available in Anypoint Exchange, scaffold it into a new integration project to generate the API interface. + +You can ask MuleSoft Vibes to scaffold the locally generated API spec with this message: + +[source,command] +---- +Scaffold the american-flights-api.yaml API spec. +---- + +Or, you can manually scaffold the API spec from Anypoint Exchange: + +// Pointer to Command Palette +include::partial$acb-reusable-steps.adoc[tags="open-command-palette"] +. Provide this command: ++ +[source,command] +---- +MuleSoft: Implement an API Specification +---- +. In the *Implement an API Specification* tab that opens: +.. Provide a new name for the implementation project. +.. Select or create a new project location. +.. In the search box, type `American Flights API`, or the name you used when creating the specification, and press Enter. +.. Find your API specification on Anypoint Exchange, and click *Add Asset* to insert the API name into the field. +.. Select an existing workspace, or create a new one by providing a name and a location. +.. Click *Create Project* to start scaffolding the specification into a new implementation project. + +After scaffolding completes, confirm that the generated project contains listener configuration, APIKit router flows, and operation-specific flow stubs. + +== Connect to a Database Using the Database Connector + +Add and configure a Database Select operation to retrieve flight data from a database. + +. Open the `get:\flights:american-flights-api-config` flow +. Click *Add Component* (+) before *Transform Message*, and then select *Connectors > Database > Select*. +. Click the *Select* component to open its properties panel. +. Change the name to `All Flights`. +. In the *Select* component properties, click *Add New Connection* next to *Connection Config*. +. Set the connection to *MySQL Connection*. +. Click *Configure library* next to *MySQL JDBC Driver*. +. Review the default settings for the recommended library, and in the *Select Library Source* drop-down menu, select *Maven Dependency*. +. Enter `mysql:` in the *Search Maven Central Repository* text field, and select *mysql:mysql-connector-java* in the results. +. Enter `8.0.30` in the *Version* text field, and click *Apply*. +. Confirm that the MySQL JDBC Driver is set. +. Set the following configuration values: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Host* | `iltdb.mule-training.com` +| *Port* | `3306` +| *User* | `mule` +| *Password* | `mule` +| *Database* | `training` +|=== + +. Click *Test Connection* and confirm that you see a *Connection is valid* message. +. Click *Add* and close the *Database - Select Config* tab. +. In the *Database - Select* properties panel, add a query to select all records from the `american` table: ++ +[source,sql] +---- +SELECT * FROM american +---- +. In your REST client, test `http://localhost:8081/api/flights`. Confirm that you see a response with all flight data. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc new file mode 100644 index 000000000..ceb7e5ecd --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc @@ -0,0 +1,213 @@ += Manage, Secure, and Monitor the American Flights API +:imagesdir: ../assets/images +:page-pagination: prev + +After deploying your American Flights API to CloudHub 2.0, register it with API Manager to apply governance policies, secure it with a policy, and monitor its performance and health with Runtime Manager. + +== Manage the API with API Manager + +xref:api-manager::api-instance-landing-page.adoc[API Manager] lets you manage, monitor, and secure your APIs. After deploying your application to CloudHub 2.0, register it with API Manager to apply governance policies, track usage, and control access. + +=== Step 1: Navigate to API Manager + +. Sign in to Anypoint Platform. ++ +// Pointer to Platform URLs +include::partial$acb-reusable-steps.adoc[tags="platform-urls"] +. From the Anypoint Platform home page, click *API Manager* in the navigation menu. +. Select your environment from the environment dropdown (the same environment where you deployed your application). + +=== Step 2: Create an API Instance + +Create an API instance that links your deployed application to the API specification you published earlier. + +. In API Manager, click *Add* and select *Add new API*. +. In the runtime section, select *Mule Gateway* and click *Next*. +. In the *API* section: +.. Click *Select API from Exchange*. +.. Search for "American Flights API" (the API specification you published earlier). +.. Select your API and click *Next*. +. In the *Downstream* section, click *Next*. +. In the *Upstream* section, set the Upstream URL to your application's public endpoint, for example: `https://american-flights-api-implementation-ij0c18.5sc6y6-3.usa-e2.cloudhub.io/`. Click *Next*. +. In the *Review* section, click *Save* to create the API instance. ++ +Verify that your API status now shows *Active*. + +Your API is now registered with API Manager and ready for policy configuration. + +== Secure the API with a Policy + +Policies in API Manager let you enforce security, compliance, and governance rules on your API without modifying application code. In this section, you apply a Client ID Enforcement policy to secure your API. + +=== Understand API Policies + +Common policies include: + +* *Client ID Enforcement*: Requires client applications to authenticate using a client ID and secret. +* *Rate Limiting*: Controls the number of requests allowed per time period. +* *IP Whitelist/Blacklist*: Restricts access based on IP addresses. +* *CORS*: Configures Cross-Origin Resource Sharing headers. +* *OAuth 2.0*: Implements OAuth 2.0 authentication and authorization. + +For this tutorial, you apply the Client ID Enforcement policy to require API consumers to register their applications. + +=== Step 1: Apply the Client ID Enforcement Policy + +. In API Manager, navigate to your American Flights API instance. +. Click the *Policies* tab. +. Click *Add Policy*. +. Search for *Client ID Enforcement*, select it, and click *Next*. +. Leave the default settings: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Credentials origin* | Select *customExpression*. +| *Client ID Expression* | `#[attributes.headers['client_id']]` +| *Client Secret Expression* | `#[attributes.headers['client_secret']]` +|=== + ++ +NOTE: This configuration requires clients to pass their credentials in HTTP headers. Alternative configurations can extract credentials from query parameters or custom locations. +. Click *Apply* to activate the policy. + +=== Step 2: Test the Policy + +After applying the policy, verify that unauthenticated requests are rejected. + +. In your REST client, send a request *without* client credentials: ++ +[source,command] +---- +GET http://american-flights-api-yourname.us-e2.cloudhub.io/api/flights +---- +. Verify that you receive a `401 Unauthorized` response: ++ +[source,json] +---- +{ + "error": "Authentication denied." +} +---- + +Then, create a test client application to obtain credentials: + +. In Anypoint Platform, navigate to Exchange. +. Search for your "American Flights API". +. Click *Request Access*. +. In *API Instance*, select your instance. +. In *Application*, select *Create a new application*. +. Provide an application name and click *Create*. +. Click *Request Access*. +. Copy the *Client ID* and *Client Secret* provided. +. Test with credentials. In your REST client, add headers and resend the request: ++ +[source,command] +---- +GET http://american-flights-api-yourname.us-e2.cloudhub.io/api/flights +Headers: +client_id: +client_secret: +---- +. Verify that you receive a `200 OK` response with flight data. + +Your API is now secured and requires authenticated clients to access it. + +=== Policy Best Practices + +When applying policies: + +* *Start with client authentication*: Always require client identification before exposing APIs externally. +* *Apply rate limiting*: Protect your API from abuse by limiting request rates. +* *Use layered security*: Combine multiple policies (authentication + rate limiting + IP filtering). +* *Test thoroughly*: Verify both authorized and unauthorized access scenarios. +* *Document requirements*: Inform API consumers about authentication requirements and rate limits. + +== Monitor and Manage Your Application with Runtime Manager + +xref:runtime-manager::index.adoc[Runtime Manager] is Anypoint Platform's operational dashboard for deployed applications. It provides real-time monitoring, log access, and management capabilities for applications running on CloudHub 2.0. + +Runtime Manager provides: + +* *Application Status*: Real-time status of deployed applications. +* *Performance Metrics*: CPU, memory, and network usage. +* *Logs*: Application logs and system logs. +* *Alerts*: Configurable notifications for application issues. +* *Application Management*: Start, stop, restart, and redeploy applications. +* *Scaling*: Adjust worker size and count. + +=== Step 1: Review Application Status + +. From Anypoint Platform, click *Agent & Tools > Runtime Manager* in the navigation menu. +. In the *Applications* list, locate your application (for example, `american-flights-api-yourname`). +. Click the application name. +. On the side panel, click *Dashboard* to review key information: +* *Status*: Shows whether the application is running, starting, or stopped. ++ +A green indicator with "Running" confirms your application is healthy. +* *Replicas*: Number of replicas and vCores assigned. +* *Last Updated*: When the application was last deployed or updated. +* *URL*: The application's public URL. + +=== Step 2: View Application Logs + +Logs help you troubleshoot issues and monitor application behavior. + +. In the side panel, click *Logs*. +. View recent log entries: +* *Log Level*: Filter by INFO, WARN, ERROR, or DEBUG. +* *Search*: Search for specific log messages or error codes. +* *Time Range*: Adjust the time range to view historical logs. ++ +TIP: If you don't see any entries, select a previously used Config from the dropdown menu. +. Example log entries: ++ +[source,command] +---- +[INFO] Application started successfully +[INFO] HTTP Listener on 0.0.0.0:8081 +[INFO] Deployed application: american-flights-api +---- +. Search for specific events: +* Search for "ERROR" to find errors. +* Search for "flights" to see API-related logs. +* Search for "Database" to see database operations. + +=== Step 3: Monitor Performance Metrics + +Monitor your application's resource usage to ensure it runs efficiently. + +. In the side panel, select *Dashboard*. +. Select the *Performance* tab. +. Review performance metrics such as average inbound and outbound response times. +. Select the *Infrastructure* tab. +. Review metrics such as CPU % and memory usage. + +=== Step 4: Manage Your Application + +Use Runtime Manager to control your application's lifecycle. From the application dashboard, you can: + +* *Stop*: Click *Stop* to stop the application. ++ +The application remains deployed but stops serving requests. +* *Start*: Click *Start* to start a stopped application. +* *Delete*: Click *Delete* to remove the application from CloudHub. ++ +This action is permanent and cannot be undone. +* *Update Configurations*: Click *Apply Changes* after changing configurations such as properties, to restart the application without redeploying. + +=== Step 5: Scale Your Application + +As your API usage grows, scale your application by adjusting worker size or count. + +. From the application dashboard, click *Settings*. +. In the *Deployment Target* section: +* *Replica Count*: Increase the number of workers for horizontal scaling. +* *Replica Size*: Change the worker size (for example, from 0.1 to 0.2 vCores). +. Click *Apply Changes*. +. CloudHub redeploys your application with the new configuration. + +NOTE: Scaling changes the resources allocated to your application and may affect your CloudHub costs. Monitor performance metrics before scaling to ensure it's necessary. + +This concludes the American Flights API tutorial series. You designed an API specification, implemented it as an integration, validated and transformed data, debugged and tested your application, deployed it to CloudHub 2.0, and secured and monitored it in production. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc new file mode 100644 index 000000000..94e62a5ef --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc @@ -0,0 +1,438 @@ += Validate Input Parameters and Transform Flight Data +:imagesdir: ../assets/images +:page-pagination: + +When you scaffold an API specification into an implementation project, APIKit automatically validates incoming requests against your API specification. This includes: + +* *Path parameter formats*: If your API spec defines a pattern (such as `pattern: "^[A-Z]{2}\d+$"`), APIKit validates the format automatically. +* *Required vs. optional parameters*: APIKit ensures required parameters are present. +* *Data types*: APIKit validates that parameters match their specified types (string, integer, boolean, and so on). +* *Enum values*: If your spec defines allowed values, APIKit validates against that list. + +If a request doesn't match these rules, APIKit returns a `400 Bad Request` with an appropriate error message before your flow logic even executes. + +While APIKit handles format and structural validation, you need custom validation for: + +* *Business logic rules*: Validating that a resource exists in your system (for example, "Does this flight code exist in our database?"). +* *Cross-field validation*: Rules that depend on multiple parameters. +* *External system checks*: Validating against external APIs or services. +* *Database lookups*: Confirming that identifiers correspond to actual records. + +In this section, you add business logic validation to check whether a flight code exists in your database before attempting to query for it. This prevents unnecessary database calls and provides more meaningful error messages to API consumers. + +In the American Flights API, the example database stores flights with numeric IDs (1, 2, 3), but the API exposes flight codes like `AA123`, `AA456`, and `AA789`. You need to map these codes to database IDs and validate that the flight exists before querying. + +== Create the Flight Code to Database ID Mapping + +First, create a transform that stores the mapping of flight codes to database IDs. + +. In Anypoint Code Builder, open the `get:\flights\(flightId):american-flights-api-config` flow. +. If there's already a Transform Message component at the beginning of the flow, click it to open its properties. Otherwise, click *Add Component* (+) at the start of the flow and add *Core > Transform Message*. +. Click *Edit name* and change it to *Create Flight Code Map*. +. In the *General* tab, under *Target*, click *Add* (+) and select *Variable*. +. Click the edit icon next to `vars.NewVariable1` and set the name to `flightCodeMap`, then click *Apply*. +. In the *Inline Script* field, replace the content with this DataWeave script: ++ +[source,dataweave] +---- +%dw 2.0 +output application/java +--- +{ + "AA123": 1, + "AA234": 2, + "AA345": 3, + "AA456": 4, + "AA567": 5 +} +---- + +This creates a variable `vars.flightCodeMap` that maps flight codes to their corresponding database IDs. + +NOTE: In a production application, you would typically query the database directly rather than maintaining a hardcoded map. This tutorial uses a map to clearly demonstrate the validation logic without requiring additional database queries. + +== Look Up the Database Flight ID + +Now create a second transform to look up the flight code in the mapping you just created. + +. After the *Create Flight Code Map* transform, click *Add Component* (+). +. Select *Core > Transform Message*. +. Click *Edit name* and change it to *Lookup DB Flight ID*. +. In the *General* tab, under *Target*, click *Add* (+) and select *Variable*. +. Click the edit icon next to `vars.NewVariable1` and set the name to `dbFlightId`, then click *Apply*. +. In the *Inline Script* field for this variable, add: ++ +[source,dataweave] +---- +%dw 2.0 +output application/java +--- +vars.flightCodeMap[attributes.uriParams.flightId] +---- + +This script looks up the flight code from the request URL in the mapping created in the previous transform and returns the corresponding database ID. If the flight code isn't in the map, it returns `null`. + +NOTE: You cannot reference a variable in the same Transform Message where you're creating it. The variable only becomes available *after* the transform completes. By splitting the logic into two transforms, `vars.flightCodeMap` is available for use in the second transform. + +== Add a Choice Router to Validate Flight Existence + +Now add logic to check whether the flight code was found in the mapping. + +. After the *Lookup DB Flight ID* transform, click *Add Component* (+). +. Select *Core > Routers > Choice*. +. Click the *When* path inside the Choice router. +. In the *When* properties panel, under *Expression*, add this condition to check if the flight code wasn't found: ++ +[source,dataweave] +---- +#[vars.dbFlightId == null] +---- + +This expression evaluates to `true` when the flight code doesn't exist in the mapping. + +== Raise an Error for Unknown Flight Codes + +When a flight code isn't found, raise a custom error instead of proceeding with the query. + +. Inside the *When* path (where the condition is true), click *Add Component* (+). +. Select *Core > Error Handling > Raise Error*. +. In the *Raise Error* properties panel, configure: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Type* | `VALIDATION:FLIGHT_NOT_FOUND` +| *Description* | `#['Flight code ' ++ attributes.uriParams.flightId ++ ' not found in our system']` +|=== + +This creates a custom error type that you handle in the error handler, providing a meaningful message that includes the flight code the user attempted to look up. + +== Move the Database Query to the Otherwise Path + +The database query should only execute when the flight exists (when `vars.dbFlightId` is not null). + +. If you already have a *Database Select* operation after the Choice router, right-click it and select *Copy Component*. +. Click inside the *Otherwise* path of the Choice router (the path taken when the flight exists). +. Click *Add Component* (+) and select *Paste Component*. +. If you don't have an existing Database Select, add one inside the *Otherwise* path instead: +.. Click *Add Component* (+) and select *Connectors > Database > Select*. +.. Configure it with: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Name* | `Flight by ID` +| *Connection Config* | `Config` (your MySQL connection) +| *SQL Query Text* | `SELECT * FROM american WHERE ID = :flightId` +| *Input Parameters* | `#[{ 'flightId': vars.dbFlightId }]` +|=== + +. Delete the original Database Select component that was outside the Choice router, if it exists. + +Your flow should now look like this: + +. *Transform Message*: Create Flight Code Map (creates `vars.flightCodeMap`). +. *Transform Message*: Lookup DB Flight ID (creates `vars.dbFlightId` using `vars.flightCodeMap`). +. *Choice*: Check if Flight Exists. +.. *When* `vars.dbFlightId == null`: *Raise Error* (`VALIDATION:FLIGHT_NOT_FOUND`). +.. *Otherwise*: *Database Select* (Flight by ID). +. *Transform Message*: Transform Flight (converts the database result to JSON). + +== Add an Error Handler for Flight Not Found + +Now configure the error handler to return a proper 404 response when a flight isn't found. + +. In the canvas, open the `american-flights-api-main` flow (the main flow with the HTTP listener and error handler). +. In the *Error Handler* section at the bottom, click *Add Component* (+). +. Select *On Error Propagate*. +. In the *On Error Propagate* properties panel, set *Type* to `VALIDATION:FLIGHT_NOT_FOUND`. +. Inside this error handler, click *Add Component* (+) and add *Core > Logger*. +. In the *Logger* properties, set: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Level* | `WARN` +| *Message* | `#['Flight not found: ' ++ error.description]` +|=== + +This logs details about which flight was requested but not found, helping with debugging and monitoring. + +. After the Logger, click *Add Component* (+) and add *Core > Transform Message*. +. Configure the Transform Message: +.. In the *General* tab, under *Target > Payload*, set *Source* to *Inline Script*. +.. In the *Inline Script* field: ++ +[source,dataweave] +---- +%dw 2.0 +output application/json +--- +{ + message: error.description default "Flight not found", + flightId: attributes.uriParams.flightId +} +---- + +. Click *Add* (+) under *Target* and select *Variable*. +. Name the variable `httpStatus` and set its value to `404`. + +This returns a JSON response with a meaningful error message and the flight ID that was requested, along with a 404 HTTP status code. + +== Transform Data to Meet the API Contract + +When building an API implementation, it's essential that your responses match the structure defined in your API specification. While the database might store data in one format, your API contract defines how that data should be presented to consumers. DataWeave transformations bridge this gap by mapping database fields to the expected API response format. + +In this section, you create a DataWeave transformation that converts database query results into the JSON format specified in your American Flights API contract. + +=== Understand the Data Mapping Challenge + +Your MySQL database stores flight information with these fields: + +.Example database record +[source,json] +---- +{ + "ID": 1, + "code1": "rree", + "code2": "0001", + "airlineName": "American Airlines", + "toAirport": "LAX", + "fromAirport": "MUA", + "takeOffDate": "2016-01-20", + "price": 541, + "planeType": "Boeing 787", + "seatsAvailable": 0, + "totalSeats": 200 +} +---- + +Your API specification defines a different structure for the response: + +[source,json] +---- +{ + "ID": 1, + "code": "AA123", + "price": 499.99, + "departureDate": "2024-12-25T10:00:00", + "origin": "SFO", + "destination": "LAX", + "emptySeats": 45, + "plane": { + "type": "Boeing 737", + "totalSeats": 150 + } +} +---- + +Notice the transformation challenges: + +. *Field name changes*: Database fields have different names than API fields: +.. `fromAirport` → `origin` +.. `toAirport` → `destination` +.. `takeOffDate` → `departureDate` +.. `seatsAvailable` → `emptySeats` +. *Field combination*: `code1` and `code2` need to be combined into a single `code` field. +. *Nested object creation*: `planeType` and `totalSeats` (flat fields in the database) must become a nested `plane` object in the API response. +. *Fields to exclude*: `airlineName` is in the database but not needed in the API response. + +=== Open the Transform Message Component + +In your implementation flow `get:\flights\{flightId}:american-flights-api-config`, you already have a Transform Message component after the Database Select operation. + +. In Anypoint Code Builder, locate the `get:\flights\{flightId}:american-flights-api-config` flow in your canvas. +. Click the *Transform Message* component named *Transform Flight* (after the *Flight by ID* database query). + +Currently, this transform just outputs `payload`, which passes through the raw database structure without transformation. + +=== Define Input Metadata + +To help DataWeave understand the structure of your database results, define input metadata. + +. In the *Transform Message* properties panel, look at the left side showing *Input* (this represents `payload`, your database query results). +. Click the *Define metadata* link next to `payload: Unknown`. +. In the *Select metadata type* dialog, set: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Type ID* | `DatabaseFlightRecord` +| *Type* | *JSON* +|=== + +. Click *Create type* and provide this sample JSON structure (representing one database record): ++ +[source,json] +---- +{ + "ID": 1, + "code1": "rree", + "code2": "0001", + "airlineName": "American Airlines", + "toAirport": "LAX", + "fromAirport": "MUA", + "takeOffDate": "2016-01-20", + "price": 541, + "planeType": "Boeing 787", + "seatsAvailable": 0, + "totalSeats": 200 +} +---- +. Click *Save*. + +You should now see the input payload structure in the left panel, showing all available database fields. + +=== Define Output Metadata + +Now define the expected API response format based on your specification. + +. In the *Transform Message* properties panel, look at the right side showing *Output* (this represents the API response). +. Click the *Define metadata* link next to the output. +. In the *Select metadata type* dialog, set: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Type ID* | `FlightResponse` +| *Type* | *JSON* +|=== + +. Click *Create type* and provide this sample JSON structure (from your API spec): ++ +[source,json] +---- +{ + "ID": 1, + "code": "AA123", + "price": 499.99, + "departureDate": "2024-12-25T10:00:00", + "origin": "SFO", + "destination": "LAX", + "emptySeats": 45, + "plane": { + "type": "Boeing 737", + "totalSeats": 150 + } +} +---- +. Click *Save*. + +The output panel now shows the expected response structure with the nested `plane` object. + +=== Create the Field Mappings + +With both input and output metadata defined, you can now create the transformation using DataWeave's mapping features. + +==== Option A: Use MuleSoft Vibes + +. Open MuleSoft Vibes. +. Send this message: ++ +[source,command] +---- +In the get:\flights\(flightId):american-flights-api-config flow, open the Transform Flight component and add a transformation that maps the input metadata with the output metadata. For code, use code1 ++ code2. +---- ++ +NOTE: If you used a different flow or component name, ensure you specify it in the message so MuleSoft Vibes knows exactly which flow and components to modify. + +After MuleSoft Vibes finishes adding the transformation, confirm that the DataWeave script is similar to this: + +[source,dataweave] +---- +%dw 2.0 +output application/json +--- +{ + ID: payload[0].ID, + code: payload[0].code1 ++ payload[0].code2, + price: payload[0].price, + departureDate: payload[0].takeOffDate, + origin: payload[0].fromAirport, + destination: payload[0].toAirport, + emptySeats: payload[0].seatsAvailable, + plane: { + "type": payload[0].planeType, + totalSeats: payload[0].totalSeats + } +} +---- + +==== Option B: Write the DataWeave Script Directly + +Alternatively, you can write the complete DataWeave script in the *Script* view: + +. Click the *Script* tab in the Transform Message component. +. Replace the current content with: ++ +[source,dataweave] +---- +%dw 2.0 +output application/json +--- +{ + ID: payload[0].ID, + code: payload[0].code1 ++ payload[0].code2, + price: payload[0].price, + departureDate: payload[0].takeOffDate, + origin: payload[0].fromAirport, + destination: payload[0].toAirport, + emptySeats: payload[0].seatsAvailable, + plane: { + "type": payload[0].planeType, + totalSeats: payload[0].totalSeats + } +} +---- + +*Explanation:* + +* `code: payload[0].code1 ++ payload[0].code2` — concatenates `code1` and `code2` into a single `code` field. +* `departureDate: payload[0].takeOffDate` — renames the field from database to API format. +* `origin: payload[0].fromAirport` — maps `fromAirport` to `origin`. +* `destination: payload[0].toAirport` — maps `toAirport` to `destination`. +* `emptySeats: payload[0].seatsAvailable` — renames `seatsAvailable` to `emptySeats`. +* `plane: { ... }` — creates a nested object from flat database fields. +* `output application/json` — specifies the output format. + +=== Test with Real Data + +Now test your transformation with actual database data. + +. Save your changes to the flow. +. Run the application locally using the *Run and Debug* panel. +. Once the application starts, use a REST client (such as Advanced REST Client) to call: ++ +[source,command] +---- +GET http://localhost:8081/api/flights/AA123 +---- +. Verify the response: +* Status code: `200 OK` +* Content-Type: `application/json` +* Body structure matches your API specification. +* The `plane` field is a nested object with `type` and `totalSeats`. +* Field names are correctly transformed from database format to API format. + +.Example expected response +[source,json] +---- +{ + "ID": 1, + "code": "rree0001", + "price": 541, + "departureDate": "2016-01-20", + "origin": "MUA", + "destination": "LAX", + "emptySeats": 0, + "plane": { + "type": "Boeing 787", + "totalSeats": 200 + } +} +---- diff --git a/code-builder-home/modules/ROOT/pages/tutorials.adoc b/code-builder-home/modules/ROOT/pages/tutorials.adoc index eec2c9fae..36f334011 100644 --- a/code-builder-home/modules/ROOT/pages/tutorials.adoc +++ b/code-builder-home/modules/ROOT/pages/tutorials.adoc @@ -32,6 +32,10 @@ Scaffold an API specification into an interface to implement, and sync changes t + Implement a GraphQL API that you publish to Exchange. -* xref:tut-slack-create-escalation-api.adoc[]: +* xref:tut-slack-create-escalation-api.adoc[]: + Create an integration that notifies you through email or Slack when a new case is created in Salesforce. + +* xref:tut-flights-api-tutorial.adoc[]: ++ +Design, implement, debug, test, deploy, and secure a database-backed REST API from start to finish, using the American Flights API as an example. From 59d8b6dfbf0ee48fe035b74d61a8c9e8ca0993e8 Mon Sep 17 00:00:00 2001 From: Cristian-Venticinque Date: Tue, 8 Sep 2026 15:59:05 -0300 Subject: [PATCH 2/3] Adding screenshots --- .../tut-flights-acb-activity-bar-icon.png | Bin 0 -> 10705 bytes .../tut-flights-db-configure-library.png | Bin 0 -> 6374 bytes .../tut-flights-db-connection-config.png | Bin 0 -> 18264 bytes .../tut-flights-db-connection-valid.png | Bin 0 -> 2269 bytes .../tut-flights-db-driver-configured.png | Bin 0 -> 7334 bytes .../images/tut-flights-db-flow-overview.png | Bin 0 -> 10556 bytes .../tut-flights-db-library-source-maven.png | Bin 0 -> 3854 bytes .../tut-flights-db-maven-search-results.png | Bin 0 -> 29242 bytes .../tut-flights-db-mysql-connection.png | Bin 0 -> 4878 bytes .../tut-flights-db-select-add-connection.png | Bin 0 -> 10105 bytes .../images/tut-flights-db-select-query.png | Bin 0 -> 26336 bytes .../tut-flights-munit-run-test-menu.png | Bin 0 -> 10751 bytes .../images/tut-flights-munit-test-results.png | Bin 0 -> 7039 bytes .../tut-flights-publish-command-palette.png | Bin 0 -> 38327 bytes .../images/tut-flights-scaffold-project.png | Bin 0 -> 191255 bytes .../pages/tut-flights-debug-test-api.adoc | 4 ++++ .../ROOT/pages/tut-flights-design-api.adoc | 5 +++- .../ROOT/pages/tut-flights-implement-api.adoc | 22 ++++++++++++++++++ 18 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-acb-activity-bar-icon.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-configure-library.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-connection-config.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-connection-valid.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-driver-configured.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-flow-overview.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-library-source-maven.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-maven-search-results.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-mysql-connection.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-select-add-connection.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-db-select-query.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-munit-run-test-menu.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-munit-test-results.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-publish-command-palette.png create mode 100644 code-builder-home/modules/ROOT/assets/images/tut-flights-scaffold-project.png diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-acb-activity-bar-icon.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-acb-activity-bar-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f26ed43806db6e85ba1bbac9350e0bfbaf910c6c GIT binary patch literal 10705 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

ms_Fd zPTbUS$*NqiTz&p_vs=MSFOT>n92nPFBeN~{Oa@wJX~k-nN8D?aSRQ6egB(#Z+-0D* z$mEAB?T~?Q$RaLPu|i02P?i*B}DFjy6-n_ z?Fe&#T`Z&){@d%Ly;=7KDk6Hd>oT%3$L7S@G`>5*yArw)@+k`N7Ft4aa2OdGQ3eNr zi|ir}EZ`!SG8j=? zGC*4!0GP-UAjpZ|9jnK z9SQX9H?ud>lJkLuoS$DRPkgeNfl;K?`c>Um1LH!X#frruE8LKY`rtF2uyh9EmHQU0 z!1a;*Zc{n{%pmMUt=|r4Q6VwdjdF*T=wMQ0~?m_%qel7 z)5k<}IIF3t3BkE#pFe1b#%7ue+g6PH720@BT7LNtaDIXW17j9-j2KfHqLBuA70i8r zp%?K&z+R(W5BB#!5m1Y*@?6p>{xjnl}kVbjz*gb4s>>+q+QB< zHf?^b?tD6|OshEuFk2ihjvv&dHN(|5cq?vUVL@&HMp3!mj6C6Ndj=KA{LkMU$Q8IHpKI>;+RjKqOH^^UjA9IdWi@LK8X)DuWdC;%gcksba=6*{0U<4?f?F7pn0Hv z#rEE*yX#$A3vu#cF;eP8Jz{I0A{Q4a2TO#)ij zeFu2fHQE5r4SW1N9N@reW`Sqf&Psm+0CLJb0)3T5X!|`?HM#!{f;|fCw#g7v<<+{t zTUAw+!AC0P10yXjz(L<^*V^9mn*WPaRJSDpVt~76&_V~f@E;Gt!C?hrD?#thFCma3 z=P6<`tcC@+De$(o-csvBf6tobr->f@8lz0m5h@t}cY9>uvfK8$ZO2y1cF*svW~p5N;~AX$k-jeUq{H|mfjKaJVUjye4wnq_1p^~rIyOu z*3$2qhh?|CDF{6t_%*aSrkgKw?f3U)0ZcTMyAM1RCUKM=r%j72VDwl_w9zvl?PyUi6O4Gv<;nd5`sR*D1PU4#LbC-H_^1^ z#TetC-^tk(E&6>G1%7>(l}YS+=Nne0N8pzNfp>yQ5$WD%z@&maGYIzMM-w+`-46t! ua*Brg0CKEp;0z+!eps&le+C~n4~}^3e(p2SyP;3}L->8odxgr6U;ZCpAoFwp literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-configure-library.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-configure-library.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed6e228db1b7614902857afa936cbd54781907a GIT binary patch literal 6374 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 literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-connection-valid.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-connection-valid.png new file mode 100644 index 0000000000000000000000000000000000000000..acbae77ffc82e84aa6a4cc64015b0d72d1d78488 GIT binary patch literal 2269 zcmV<32qO21P)Gh}TFnPZF_+AT}3qO3ylNp=&pQX#1ZK`OmzuS`|Z%o4-xCR8azQ5r>o zYC`)kLbWKWigz<^x{Elhb)eEDU##R<%|`00rY=p0IW;b!K=V*m#)9imp(LlW3ikmBNhmN00>kJfz@c}eB!+?UP!F_ z!{NsBuWf&^wXShZLQn>^xCgKK3uyok=^~?wVM^wB_sj@AOHeoBe1fDUimO{ zXwr4!jVGSpx?yQruB}^-zp{n1xyZeFVc?c_l|e<|}f46v!E%*j+MW>ZW&Zf4Hy9Tg-ZeI;lGx?v_?CT4VK(&uWbUVGaTy zaNh{5prN_MtqV`qzS?LvTln86^Z)o{E@#i7(R1+0#eXKgwU_DFEMcK2?GNj(p6#+a z_|j|f0RkWZ0zYK}c5z(VkHw3VciUSwyBsw&&mV03_@LMAD0J;?`Pu&`Z!Otek|Sr7 z&Yp14Z&>@ff_t@rplxt!&Wik-c4Ql1f44G8}g^0VuS!reiu?*iDht>t-jw5Q$ zxuIrl4vGzv0$B~lrc4W5fB*;Iflg;aA zQcijNt-icczExs_QKh3-8=M9xstFBO5T&9?NtE|=(rCnxr(FCT1x0C~c_PYcC@hna zp>ei4ANq-Ly)jgw#E-wau%fN&b_?WB05;7FXaO8R?L!vi!j>KN;5 z9`OzWAW%^RificoNY%TIB_!Wb@?UZ4GzO$3?d_!TF|oZO?3x4Gf};?l-1LknB64>g z(AF^}sfCmowpC*1Qq8-yLX!N=xy%%i&@97}-RiZP3;Vk=Jd$b&7^>>++TEN=>g%-b zj-aNA?30wM9Le6$xE8%q(=ZCGPjBlEw_cSQOOo~zA_cWhk*Kw7omXmBd$j1p1NIK* zSl?-kI}iYYN+3{NLpRoMq1=svTSfK`EN1THwmjsq7irgpWJsuxWYuc7kF@Bkb0F;sMP>Bvg=hYt_{fyyONTti)LO&cy=x|u(3 zU#2^Y7bd=Ys_BvZX}@1;&L+p~%Y|lJyJlssDxU2&Ni&U#U$}XtRh{>$Z~BJ2a&_5o zOFXILR-<%gI=8%H8wSgKdb|2Ku252Q9YD9@5j1hHWqG2R<&+D>3PWZOTl3LdbaZLY zYAS=dJj25Q0u@c5xQ3Fu{gIthx1wpsKXf*<)xFtfJ?kX;m(HI2%=J?H&&9Rll=gK{ z{Mdl8tVxuKiPb=%t=6(2kJo5N>oQY*hpW6Bo)lC3bl$_BJk!sah4OG-t>uA-if(gV zl@zfo;4kfoB_X}~%-!a`bq6JfWu-;ZoU$4k159OXyr43wS&itdGO>{f%OkEp00b(N zzzP~lHJ(52TzC52D~a2-{OjwUs<$<~eeKA*bG19`eph3&F)qc!kNdsxV?2vhkJGeI z?8{5RaKJmtyXB&A#Mj#|3XL|a`()1nuh?)GF4S#zZYOoKU%fDzQI}%<`*<6NBRNKk zzOMeBPDNh|7@FQ~dvbuitbFjEk`^`;rNGkUSq*6-JAv4jZEh~(O{3oS(&U( z)1D4D*=unP0w7R%1Z+}RAi0L;d?%U~550By?B%;lOzthFum1k6*^5nEPCZwRDBp|2(jXR*a8Mh&35#w`+Stzv2vit>l{J)TQ~S%mdjDy9=VW@<->1)xT~FVb%Y8MQ zNX#7h^XI>P`?l+8&$*ZD3oB@a^%&`Z00@A<{Ufj%4drMX8asY@esJs2->ggg=j&Jh zHuK`!xi|lNr$KVRKiGJpBkv)6w#V@R2_Q5GfI#^OtWrbOgf>3f_H4t6!%gS=)#LCJ z2cNBL+_)AGsvEq400@9U)ewLJR?Sz5j(`9NJOBdF&<6m$0z)Dt5CDPF2tY$is*S+<`T6;3>l6A@T?Eh@5U6AV rKL7v#|Nk`BMh*Y~00v1!K~w_(2B0iTgY00000NkvXXu0mjfcuGr# literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-driver-configured.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-driver-configured.png new file mode 100644 index 0000000000000000000000000000000000000000..4c567a96f1a0bb40b5570a245979fc38976b915d GIT binary patch literal 7334 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%0D5GQXL0L?H|6T?s(=(az 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 literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-flow-overview.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-flow-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..c1996000568172ea8e435984166063e8d5c4eb10 GIT binary patch literal 10556 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 B%_#r? literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-maven-search-results.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-maven-search-results.png new file mode 100644 index 0000000000000000000000000000000000000000..bad71fec9171ca4010b4b345c2e9ae5c260fe468 GIT binary patch literal 29242 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

y*7{Z!{01qM=R}3Mmg$M8ym2oNT3FqSPP71 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 literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-mysql-connection.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-mysql-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca0127f6367fb4cc4f354258cba7a5c89e1a762 GIT binary patch literal 4878 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 Vr`WsUnnK^e$jhimS4$cP{s+9+aLWJy literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-db-select-query.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-db-select-query.png new file mode 100644 index 0000000000000000000000000000000000000000..9c135a84a5cbf228b2a5d5e8d84b3602a202d18b GIT binary patch literal 26336 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 S~ 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 o1=tUv0+A%I7{sEO4E}$}AKKY{QWMgRZ+ literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-publish-command-palette.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-publish-command-palette.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1136bd78f7ea4903592a5dff68c0d631cd1426 GIT binary patch literal 38327 zcmeFZ_dnZz_dl*m6*XE^ZC&_5TT_{ef|-Jdh=@w%@k3oA zq6>yZMCWc?yg>NmE%)X);pv>WuJQw->Ooc%;mt#PV-*Jt4I)0m>x)F^qMV6HP7Wdb zF%$lXh|cGpBRWrbK6mn2F7dzqd%-aG{J&nGyK!>hwNEB+|pSJaM6doq#=n91Egi}0!QlLV{s~YuKIO63k`HLth z<^c?UFf%PG87wM_m|o+O&KL@XI(SGoLYFuCHv%`jW0}qqU*vp7^nVZkr-T3VgZ~SI z|AT`6L&E=GAz_UpiOYIgH<$8sLeI>Ll!3g<@+YU%qb1#tyJ){!j z-hFhk%+d&Adn)svd?}XM*;)ysn!>*i%#lA$v+WrL9-N^DdCto`uCxyqy^=;_hgXNu zy`8FIKg}3ZY)==Sd*R}mK)?rJs7cBjW&4HgEgxf$r^%}wh)srhUw6=#vsM-<{9cgo z6_aXyjg)uGVr)Y_*sqY*%D#Erop+~ZRV3Lay$!B5(N?RqiqDF@k9N zZe0-`4}th@i6p%t1Lk;ynkPG-SR#U${&Bd@uPfVv{6oz?KOQ2B8)?usnOrd`J#dtl zO`CxI1CukaFlv-5(D~-0Iv}f!uSyLx1aWf>>W*I@MwS~JU;VOGj7a{xns#bN9_t9V zh}QuofU3TjWjOp`sR3w0EVy-d9_Ji*4b}p1>$!G@XXe(Bc#-nJzyOO!Xp}ulUe%=U z@m(k=KsH-Qz;p2G$v3P^h*6wM01hozWgFR;Zg2>ikB&@VU)(}=P1%-e>k!<}&60HV z*nkZbAYmz zSG9UN8MY#QnWInvO~qn%W{kr8LI%y|#$V1{!Ee%eYo(9rH3Bi++jppUl@VjEX=70$ zFjI1PUWhU1ARujs3!T@xB=%C|v-f8?11{wD$4h@ghm?mlocw3T45Ha>wL!p4Ua3#< z;LcTx)IrF*v1R5iKg8IwSxOb4?{A=U`gSiyzK!!?o39jd=kVJnqgH^rE2~yi#i%$U zIcnP`3szDBN899}z*}C$r>;q%&q>1GWt{RMTXU$#zFr6_+aE=w0^lfaprK0FN>MXR zJi55({cZuQe)9|%9|?)@p}i@?LHW`bK`hAESXB6wr^G~~ML6PjonlT^bWw*=ny*=LM_X`RSd#WZQQj_ZYFa)gEe zXJk%!8wxv0^))wwDpRVZ#(ij2$c*PZRPP%CVoSP@7d+cgPu2f;EGZxDbB?(k#b@~f z3js)NSrVmtIsCa-V6WD@#igQZgvNbZWeMKJJTJ24vt=4~hMdaz(p$XUNH4CG1KW4SGN~(m9xIyBr(>P zZGB+EKuG|sqLfH4W`e-uApo|qKi>Vn^A&BWB(Z1i&1`C;Ysrz;%8-K^b)=INiTXV7 zL0UklxvYB6qL)S#nA!E>V)XLcJQq*rMO#dRiBYz zNs&o#Tx4Cil4i9lgr~ss@MAg+vS&ftum8y)r0t<@ZE6OLN!Kg*N#JtE9IqiO&#z6>@}BywHg z8uJBhtwND>t@e5ViAKFpA|*1?*OXlt9&)W~`zhcZ)2Re5rO#w{7E**nLoOGlxLUCC zkfUwVmKrotwX}NBdmp%qSn7c*aa@zDvtO^LECQxB37c-xciaB4Un?Q`~(c9ak8%&wBD`!t~ffe9vi zYjs0mMfQEk-0nz7RdT!j48#o)pEf2^g|_c)t}<)n>bYdEcwkqAf1MI#Z}OJ zIyJqjQHSSM3kbkNQpbWWoF+GBPFiCAIYq0KLR5gPxr1@B@CR+KZ0f#v>NS~b@pdII za~}g@U+`^tg}xcBFdKIntp@sv#b)zdApyN6A(%eJE|zjZDtXty%E{Y>|uEp<6Js*LKiq}p8>ZyaDZ-?COKU8d+{Abm8S z8@*(}WpwAW(d|_+Y6S)j(bIBkgfrrPO@1GR75m(k?vNnXu~oHOA!#p#Gwn=z8Fh-8 zK=(y&tMh-&7p^%xUSt64wUXb3_hnq}3u%gc@rQi<4ISijMMx5>z|L?kv-U7(l|_qq zS=9EA=#_?@A2m{>WA!3>_g*&F&Nr>gDdyT^_(3<*&wNRUN7qbDb)$4;p^27t!C*)mG|Eyeeq=z9Ihc*7>tY0Uv2= zcMw|EAl?YQGyoheH&|kuj5@6Ld8*VW#`EpUb6%UwN*)vTVlnDnr|SgBt2Vej0j%(uQNKH&3Ze^88+C4=bQGDeOtoW{T=G&)Jqh-@Bp#lX*ME-I?o)Z@w z-dVi->JD3*_AvVJ2KnkewxtA5R%3D|{>j?nq`WKX_#34+7*4zhC5G5s) z75$tqoksDi;dc>2;-N18Nl{!%EjZp>!|_+LyFnW+`Kg4JOs5`@9oI-6kyImFNx5K` z<4I>tQORR=`yO7YShauf#2|l5HqSb;ue>JaFGohNLWkj7ysv`p3cf8NxQ$7x;J@gI zHXqTItnhvCxBUHXIrSbZp{@EcZd~OjCVrdt>t;$33{(T@Vg(1FXWeH7j&&SGscfGX z=Sa$DUrQ-aRu$#019Magn%DUkXS6w&D1K>buz29TlERvsj<=%@aB{ zNIx|(#mR=yH zsJ2`A7$P+i6{)AT(y9t`GO6Cp1DsYh5zJh)WJ+B{pRF#;y?wCy01;r48r$v`?={0! z^qk)&C(Sb}J|^i~V5kEr-9L>$;QMO|=R7C`Mm$jh1P3u7yGq~*x%PSP0w(VdKUk(@ zYcV*U^4?r+k}gJtHZ+yhmAP)Y<125*BNt5#r3a05p511%BR`iMLgv7BhM9?ogXKA^ zmnnRo+_NLikY03wbnNe`%zcJ^N zw-aV0s_gWJp(f3P0wkux^qv+bfGnYuY+)_L4&+aMU9*Y!efzR(zZf-Ks)6AAfCmS6 zIABp;%&rz(wo1|j??+WKRN4MFYX-pgR;+HH$ZIvX)7AXZU7!+v--6)O$jHBn9#R2q ziJqpE#ctUUotI!6%a%*$QdwI-6Z0s3SL7^LI?jI5!K|(63D%nbjH)vNs+gN?wUlPD zIvLqL@Ty_jWfx{>%dqnCfwS)o*5pXfpfq{^H8*3mzw&(MGh+V32VcbrZo1Q418`#; zibClk^&b@zB9mLD4dGD5-{9)-x6J;8q;aQ5y)yS1`}h6i-kHZLs5Yo;W7 z-4I-LYKNnZ92};zlj7twR4<`tayohImJV(+2m)kS=w4s-R!=Hl z;NwkjHMv;*X@RxH{ttWAxcs_+ZjSOsC=j)1lMxV@N^QGak&jYk*+7?2js>8tW~H9x zsutyeZ~jxExfdu$D)jiv)Lg#TBs*5oj|(ogOzD47Ezag|&}bgypA8Ah@=F4mtkCwK zQf+<52-;h3hVF)ZjPf*Q93mu3(19)pMqSC{tM{Uf_K(*8u1=n}@}+7NzG?@M-YdpB zo})RDK_Kmvt4r{ff_Xl{u9Jd6`#fn^ib9*3TKM&s!m)Q^F_)8z8habV$FBb!_fAUe znjX@8vPeZXqvjd@(Ad1p~a3L#m~r}W=5R!nOtWC zSI3M%jqj@AXcCHH+_$JiiGF2-z&xwD`^0nTVY)&Be--rd#3-PoHEp_3+r7e zYS&yXT4mkNgiWFd7k*kX(yKYPrD&L;*45;qz8R!_60nHmSpB;VPXoTRn%EO(7}VUHExH_eYKRPy2lBVZ=XO3{ra>K;uWl#3ZL~S7 zXGIjTa*LLj7v%}@o-$#Z7#wp%a{noW%bVm`jeB<$axAM42-qvs0JulGwD6KMrlN_g zBSXC2-+BHiw`)|639`5wEI!-Rbwd8=n$@i(0?spv}|3kF`y|5?!qGPp7ax@+grj`O?n zN&BhIuWxzcK|8-hi~{)Y{2tNMx}7x5CgoE@r+L4VS;D=wPh2fopf-vlY{IbG-1!}| z7}&7NH0dA{=Ji|Y?NvmdaJw5v$nOXO-{>0yS$Sxr->Y?>ZZ^RmPGMR(_j) z7o&Qc7ips=!|*~+oEBJ--su`3;Hj>pMKYyMaz_QI%_Tz|2u>C>o77QeGvJL#0<*T{ z+s_1V%3ujA$s_^JhgMp&j1{Y=#kbN2eEb=&7T^CG)}MIryPGDVpMuou9?!MWCT~aA z$$Dq5*OzB#(%Ai{Jnh4T=UscnsyblOo2?10R(zs1T`$?9`ATzb@Hk8(dQe(evXPC# zV1YD=?Na%d6j<5c;ZxfoLSN6?Mtam2b#9^RxctMe<=g|NQ^!rz$OWJ0H;G%ZQZ-3o zTFC|yopwR-q5 zI;YVwJCMtnLS3V$NW+kSUZ zs*J$~`AU+?@>TaAFpa2>5W?jN#YN})%bDJ5-xO&YE>JPs3C)S-9K=iqE@u@J#SlMQ zSysZethwZ{%@MgsX=qgQYUgt``Z=&dDx$ZpN3lL}%hSVMepsKPt(RyAjTd$BKp;;H>r{juC= z-(A~0`G?gCOjHB_;UCp{Tn#pWnwyBPa4WH;E>rFZm_Y;*-hHny0u>6U`P9gxm$QSb z#XM#Jl0ee92Xz*RYDKoPp==px$+lwuN zMG{|lW4A(D0kX@4)=Yy?c5L6q2WK%BU+j9L84?0aIKKZV=9&(#39T@6C%(aBR@O0` zcjc}9=V*pN{*qCAv=oa~qkEP`@Opzv_zmYm{L!+U%GEc|86~EkDtfV@M4Fb8G`2d< z(@bw@4h1_Ey$r2zT1(-Jj_Fg}96av3|e2^CEe_V=d=VWJ}HNzw0AYSrFG#Ud_%dcj4KJHPOcY%edy zsEsphld7%}ih-vTEV^*W#dud~2|Kc%6sWoBlrK9}tA(GrgdHwQLs9S&q=v+FqMd0B zoAj7IDoc>_y$8r;Lp9XBl!MlHraBhRBH^Cto4{xla<})VHmUdK3^W0T@lhbX`{1_U zMW@2PmzQF9wzCHKOY@h?6K}_}k4QpAD1}hwhHu+OOSg!zS~7WwC8ba6Rfz;$!r=#p)h|*2c2c4wh~OFy=TqacL@~Pztx+NtmOL z?K`UkK5=lKhY_^Kyq~;<(UPlW2MJoTi0q)1vcm4&Bz~hwC}t+ZE}GTnn}Xk3Z4X!I z%R>GbZ#H?R3*~EuWE(4~me|Ke6RX!?#yUml56bLmcGZc#_@-F1>_v(r9yMhJhOCTg z9kyhC(MKBoycrKQWN;|0a4;wwx0N^67~d2@1wn^ zk|P`HXR0vM=rLPpa?75#)GItEbPti&Wr+~TLvb01S3D2$r=}?Xbwuy>ac5W!_$^l< zZBjhp)p3dP08Hj3>AnvG42Zj(D)zJ)W;y zRUV=IC{e{UK?-?iZNFERumBws`)8Si7*mlGojbHEv*njw{PBVY5^i*arS$7^Q5ufnD+rlR9O`}bm@0i!q6cM zofHpvY!#V=%LC+4g$W`9oMnM`NI4Tf=X2$Q4Pv4ej6NGj#M4e``@OL|xM0uwavS9Z zyMO=Zd&T&av9ii)BZMr)B;f>X->v)*_9|%ety+eW$BwX?}?V6VC?jzeT`OP;l-GnX3Kkvl8mIwzw_yTQO-!tnsG8idU>4${c?T7I{iEva)WKhiifeY z`Uc{zX1-InJ){RW&b$)LKf*C7b#?aPHMFRtcdu98cT|MV%f~f)A$4V`U(idTY6w=LT}l8 zW`XZc>Cz@Wk3Od+!OD!JgF7vG^67^wI<&8>RRVo^XSc9l4OFcdiNTX0- zSz7*`ot07k-Ur%b>(YJqbixHrSXDYsH#zzceNlt2?BJGIiGFsNFg>k~y`R*@e1YfN zBpivj%fz==3Tz4JC=E@1ilca6N^_Y_*a)r3SHYD(GSp9}1^8gMUrK&Q@NHa`d=j9} z;1hq}4ZGgbri!O+bAa+bV}z8axNhK(+IZ?Zl=92LUP(-D$T|Mq^#a@~d%r`b$1Gxu z_wBFBxnmBS}`eQmib@M4WVA5)M+*ET6v*FX{1=LZ~DVOPG6 zg&4BFyog+6>FK1hANs@wUq))KvIqUTuJ`^i1K!BoQ)zfB^nUve1mMD>>}9mOSVB?9S3)(KbT7)_18km<6}ibDm3EngzI&+}wl1-8 zNp@W0GTDuhv=$M-2uS4`eZ3Ct4Lkpriw9pOEpe8mw%%fM_w2sXvfOjhE~~si>Uoll zZfgXdFw$OK?HqROW_vqyZ_-u8S}An!w9+Gfh*~IPs@+=X;a;q-_FWz8J@y^Q)AJSM zFA9yjcJ~IIn~n)k!gK!9r}BIRAM7dlX3BFKnV_AC>(Y-mTVjhaCgVAR9R=vJXa$p7 zB8R^U;^Jet(muTqQJ7aR3$Or$E@%03MbL@0U#&LkOl&_|6ee8TenH-}6=+ftj?S1p zsSgrj3U;tnw&lH|(=RAUcz<0REU3hmu>P~LbQ;Ur38#u9zKWR%_R#IDlF(uz>S6QG ze8(hOtlk+H;_;DhpCKk-yO&#ZK)g)PlT;lRe{jWrzMAv(a~9b4H%NJ6JAu`zo6sz> z$r9KcQm}CqC~TskMBQyx|HU~)iWkb?6>~!9{KhT()Aq0vwsE&X0qyCAkXW$ld~u;r+x`>1JJx$^2$iw7 z#Pm%Ud;`J;C6^P+pBnjnb(BRj=|Lhz0_pcJcE$zB!D6+wO9al921sjE#9Jv`S+`1) z^q&p&*L@iJj3-!0fl*B9YCpaDFc#eMsvu5wawc$@Ekn#Tc_2%AJdBXVQlxwcMK#^* z)374LTk*c zfy)kS@RoJq2^~3&bo1!(vMX2uOyrj})!zSod8V#LYrqk?89~PGl!IGyOc)$kz?HXx z{pcsO9n_|FQpb2H=ePTWwZON$#2kyg^&l$EC>|h40U^Jf6CUQZ_TEIdwRnGm(fp~x zFh~QkO0k?iBjg6E72y^l82VNV_l)v{p*{W7w+3gZRGzRaL^Wi}t$GqOc;O&qfn~Oa zP$D>hBf7*_!k6>k3c>6SJ}p;@%!Q8Pe0p!Eq!M$Wyp8tW?t%JCclPG)Z}~bAIK)Fy;so5(v;40M`e?WjIyxC0nm$a3khr(i#MJarr3=rkAH(_)?u5Axh ziMzf->tJ;xFUfc&$V!wsvsVBqk#SAH6-pmL?dwldc`u>b5{(FVmrNlBGWn-fNwvogG7nYS7N=)EY?ec#>Je6#;RQRd=lf2RWM}e=!s<)E0O5aVI$cHSj|5 zSYCnlmCLQ%XVI2PGNm+$A2|}Y*Q`2ep?p$27jumas9=xZ)EUk%{4`}xDO+(S^&2^N zRDFr!5^tTI|D_f$&{`~d;o5(w`#-z#9oh8SS1JA*1^lxTc_xyJm5Jxx-1sl&I3*{~ z2**6-_|H@SgR|JvbJplS;)(umMC|nRB!(Z!&cvR-@F+rrf>6`nr2qW?I_MlR|J3>a zm$dRsq$|m_=1p&XH>MDT-nh+4qY{XO*ng=otO64zcanp{-TrOIGhVGZpA#|M+mY_r zI&0qaFX3{nNhr8#bU`n75(JSH7gFey{x_bUu4$ro&B|d5wH_zveX`vOJ2WnH zYx5?{m==St71K!E2Ek_JuxHIQm!=WJ40Wb;b#Uo{q2>%H8Mb4CfhRR4DSM!CvR$*( zb#}vQ-1MsYeJ4y?8Y|Tq3BtPN88P2-06&jbSa~(uglEMle`3B+M zBcJoj$xa-7ZnWNQNxFa5rlu6dx55zL5TpCtghdc0vR`Y{Z@2U`oi#xAm$P-aGjP^` z&6*^y{TE(vVm*2=QAE;%FwA}bvoqTtOH>h)82a%`ke#KWfBD~os{}9py2-vA`ws{I zw{2Pso^`<77niL6{n0;OX@4bLjpAT>Ve0?kLDr2FBhyvN6@@Qw=%S*%4i>fbrZiVK z_!2Ow-pKF886s%YkwC^oSf=x8vjF);p<7=eWA!#!=}%3}PorF3>@rVj2ds55V=Y?R z5fNTo4W=@?SgM~8{2Kn(693b-oar4jJuhM<%jLUv?*DYAgrlr_D|C$T2 zW+bI3=dGzYmdwb73AN3+ouQaD4PuI#ka3O?3y1@H#s^`}f9ewq6!hxWN(13C5}{&g zdSmHI#B{#O8U zUDR&Wr<+l#KA|+F?8KyW#(}_2DX>9#k4(488E{3)EkCW>3AN9>Ly%A#NJ@y`e9fN! zGA8z#$XAU)$Cl+Z-rP=3-s`vhUkjO2nfyxRr>6t&#GdZK{tZ{Ojfu6w{a?P@m>yXf zD@&5xitLj>D2%^rY?5{OV;gG^I!;@AkKmpr%QF-eLtMo?Qfs-+Z2ID`0SHg7f_S10 zD=b=)eVvit4k1oXyQL<41-Je{r%ODMRk#>x`lsn%y7~`jilCs#lm=HpeGV>4`#$A& zHIB~`DYc+;H3lU^w~zT&G0^d<&$opUa#ogZEV2j}tdEBa)yh>PL59&Xpb^{nK%1Yo zGQW$wuO8_vvG{2;@z9=2C+2@I5e50o%U(UsIOx5e>;T8SD&d0{#eAA2*>Y*a#R@WJ^6~&DE~O((lRtt#eyg**==0XSiQac(Pe3DoXX=<7cIbwqWe({k@Qfr2UVi*v2| zE%t~lQ`KsQ9Us0h?H1llcjFK;Z86&{n!kyzyFolF)BHAc>Dk`iM8?~7qoIL@Bo>Ii zorIg7H8D4hn=|)1@(c4g$TnqGZeXeM=+o=Es}mVtQU5b~%|QS91s{t9u=em+Vy=kW zr{M)zLrr9#Ti4`4xcyAa z-ZWbCvL7s64yRE$YWb`~wbzWE@A;_aF9;CnHhrkIwj#}i6an=QO0Z5fHe~tQNq|09 zuO@vhSDJAEwKYy`FiRlE+$u9+U&Cb5O~zw2Dr0jpUa`ws_~)058hTkTx`Cd_Jq=(1 zIeE-8U20~p6Etf?xJaZn2E35jnHLE5o%Hh1Yj7!_jAfabY4g$La2+e$0U`?Y)_ zf6n{EgV?>yEa z)##B)URm$42pmr)8Hd5X)!FKJZT^b0rfP0nO<7xbA67-TI$t5``eS`5cH?_j_BPi4 zMPphEzha}NMwMdUg*1zM9_HgNSgMB4aaIQ1xD;y0!mCC|1N*&647Uej&Hmv0!*Kkz zymY7!ilA0<+O%NOJh6y#=go4hv7$9Gd7pCx5LqUbaoW~gSEL|$UiA0anD#jnQcegVt0;# z>#OX>I*+1vd8%0gZ1-G{#@ljn#k=_a4k3;B@p*%cHD!OzI;5qQ(<~cuv~3P~#k|b3 zk%IB%Nzl`hCsudH8m<8oP|?;F_&l5$qJ7pPu`&KYFUqIZ(&BBUy9%;k(*0ZdlHulP z(^A8FdexpH9molv=XmYXIy`^G_tz(ee&;!cqadm^u@UwlzvAf)g@Oiyr$9$m#B{W- zLXum+tYkyZ?&_ofom2B>8q?ksRxN>g2b=`@3btgwrhSK>#GpQo8px6~ne<#pd42Y7 z89lzIfCJg>F<3DykgrPydYOiCs8*l+1T+K-e+CryqenI@E|u$dl_do;QW&z1fSSa9 z`-QWNR5&`)xB?~GTRX9UxZ%@|J=mN#aHJ=zJw9FowDg_Va_yu2 z6zw0fUM2(d$;tnTYyHKc2i$V+e+Gw+f%Fz`i3-S;xWQ$Pn!7^NfHMDi$4jYOMD{w% z!FfmDwSvIa^>}2-WF~<|aBKC0xw!=DR^{M*)Yras&7h0hm$3LpdC9hE~xzFwi&VBkMX-l zNi6=suLwUD5IR??sq*aR+G+@X0T;Wa2B?Y0`AZOH@^2sejE==Wd%n??&-H2Hi0WUz z1>h@^gdC8Wz)aA*LaIo#x`OuQ=#p?G;UR0UvfV+}YU}ePH?hOtv*HD!`Zn+Zjig31 zCar_+AwH0-Pu_7ipd)v16qe;G-8>4;Q3=M7pt{ib+lnqx&jtR2?&ZdlgsmcAwz$p3@1Yrp zG(|IHj-^E^pm6VSO3ZKV9o_m<52b}&6IZuU?jroS%;s3{7>Zi#x}_BS00s}bMUw#B zi`onGiNgyom>~X|;U2k1sKWwhzPo3C_|}!7Y}#f@6|#OmWTj(p=9QBTUG_pm{9Y9V z6PZ^r^-C)|K|3$Od&^?_Z?}_<_@$p$q zSkVq94`=Wtm+QO!b<>`kJnv*U8Ti^8JV>(!vHBhvEp|}o&UY}Mt5B6l_05@{n;yb< zpcH{lKM_y5Tf17rR1$#A$q_Sax-1^E{&T8G=Uk`VLqP~$YX)LcR@_a!OEkmLHjmKB zw#m2d;b@zhjm0gJWHf@^I@7_a$J?E0e$xqcYP&YW9UjH5L%*D@wsKYJ@J9zzAK2DE zG+ss0aa5MZb1j3jmW6ZDY=iFVS9dUPRyd5r%}&l)R!kMtNc;zTgK^hPa>zC>&7k%$ zAR5SKaPhvHo)H2`8J%%{Oi@lt107!JbqPI|M4g@~{xK;FY?U#;WY3WU)Y7o{(BQnt z+G2Y;ok&DXdb0+ZPfXbQuO~E2W~rsu?zm2U^i&`!10NOQq!2kd88+p#YBX3H7a-LU zIXa7KMY_-+AxLGhh4@}voRu{{)H&zAF=39zZ>+gAjLY?57F^iM>^SyC9Q)MR-umpY zRK0s9Afnyw;6m_R7U^EG1U9kCBT+#{CRb;eHNM)m$x$E#8@B-L+@6BY?_p@xrbQe@omc!F`a2BA+B9s@`!57{-JbEnjSvN4(azlI?x~U3e`Z4}A8DCq%RcV>|abl^u{HXG+ zLH1p56oH(5-YCe+Hd?as3gM7;X{QdGxs4)iJ4#e+o|N`BLU4uiLBo+>W|WoQ#%!wN zyLYIW!;ZdhQTjVAX@nMBTGzL`In@*=S5}xi%)0s7audZe)86leS8Nuj zQg)WJJu;d!9NObbiWlfLXeMZ)ht)DJ5S4WOd#PC3&nGM;32SE-FG;1+k*3s z3-yY3l&{a`q+i!p@xA#=9z*xF60CcI^upHDN9!DAjom2$N^-dDOFn2D_FLPQg=;ce zTX^e(LyL{#vJAY?1|0fEY}>` zl4(w(l~>VYvded`+7VWXp8c@zEj_d}>X1b2s|cOVRLI^%M_`gf!@dV0^#^Ag&$rN< zm<>$@&4e!-1wOJgxzvose7@$P>9H~VZtqq2UQ#1R`Q_sS$&QR)!H#>(Sf|flMC_w? zx48I~gR~8Lf=~+v#Y?;}uj;vh$t0}g+Ka!uo=~Qh5)Xy64sV1w=UD{kE4R!iZurfu zb4!zO@VU}Uf_M1%M7YrAU}c>JP~)_}(GjPT6!zwUh+5jYt%GpTp_ zKxnth)zQcueIwlUWN;^f0Xj++I;3Pg#*E!SRQT_?J-o0_vjK?~^Rs`u+>4 zptL9Bfir7}PjXPRa&_=RJO|bn!#R9c#y=oOORBO0`up(6i?9pb<~s-|j%skNg(e&< zLqX{u@vP92lq~75%|1@LE0!Eol4%hyGjJ81}mNCml`l} zl|V?tjm&zIsp4bGZDw|6Lxz6xd3-);WxM*|Zi=oK>Hq;X!yVLn;_ni$PFVH|h3HL&dB@)&nFv)hr405uyEf#B`pX>J^aW9~-s%_4J zDtwybxU6J_{+F0BC>D;3kKR{0Zjm?)?+Iq<`+QER3jW*KgZ)Q(U9gD-N&Q>QL)fI8@Sl=)%!jVzysdioqA{YlCQq znVsRMNVxYpmL}-8fK~?zw~A?$Jq~7iH5oRmgd`^ zS~oL>F-P3&w4uXTzXRB;pA}w!E=(MDAqX$R&QhB*g{z(3KLU7U1O?}6V-^Zh;%YRj zRx$=Xeld7V+{0InFE@%b9q%6;`>i;&N9B_diDNf=0Yih$`%Aogt@yf(Rm-uv9Q%{j zG)|4G&x5zWV+)H{g<20ngNJhf>SSu^2QmR@#tReV*m}O*Y~U`{vM|!l>bU#oE%|F4 zqHQ_CtzFamHt3-cMYkz_>iByWe0>Py-Y(H4_0CuBcqem4g=J<7w?9^I;J1|{ zTO-|m_tRm3wf=bMx1kx$$xB)uR^PFbGc80QVV(LJ@} zO-TekrFrWOVsCqLUE?}t&&w!SyzlN!Q*L~4s~E5Wx1R%F6AKUE9x=PLGBF{AJ+JRF zZPO&-8N5*n5x4nb8a%#AKO(1gI0t&LGoSgVeRq)<=_=F}&v$K>uooyEdgue%pR&BJ zPa0JgZ&424lO;3+C_tBJ!UcZGa|ac9CAbVcN!VR$#i6B($w|I3H94l1I)|g8WX3>$_4XmDrMUv>$xGqj<2i|C#G#kp8e8n; zxFijqMaC!xk)(NF8`I7P;mj$dX;ASex$K<9h>ErLg_N-795H=bVYh4VXgEeYlMiG9 zdp;tHo=fR`$V@oo&UM7TQjxnw2Ot7_EsXu_Egd{=`PON59@p?KVv}@itv_WwSnStQ0r#&9%YzZ@6`)?Um3dB`|uK<*+V>>izQ$0hqbL0 zZb-B01v|~>RJ0#HvBI}ag1bX~UpjuD{zbj6#@f~7((1A4u=kQf54k$^HiwcY)UU-$ zuBYe8|J*J@n6zYUlk0jEe5c5LC#rUZjBCi!jL+2=F@*_nt)W^sOmx12{e4|9a{15Q zgx)0OfEuvhx+&b1a2tVmz;A1QKECq3pcUJ~Sh+x!QdO?bKkMij5lSQNw1ih16MZimiM|u&Bu`YG%1s-3CV$e1JRWOuWz&L$BA3!?cJoA zEUdF1(SlvYFQ{rnMV1TL`yItO%2(q0NP=w-Rn0cEB`n9~n;Bhjq=<4*f(uR17mZ9oy0JwTD=$Jv((=lWR`h35ND$6} z=68RiBA~k+d!FwkGD?XmB^tttn0T(a(l`C2<_1gR#s@ zCU=e{ODM3U$I^S_<5$<~756)5GA9NYfi&f<+nszZcm_}^W~o*4_gcE`5eLsYx{-0G zQBuOKrbNb;Q@_>9M?UJ-*Mi*WLC2||Nq!&+vD|G~KT`pw(o#?w|2mePRbWGJsS%$I z)QYouqD*MTFtQ^h$-e^78zL?1OhZ$@ZQC{nOsjS($BFSN!OgxT9b24ThSLm=`Y_fo_C4!4KdBy6U z_Nh^dbk??qIzM9r)C69kNBqKkvTcitI)ZZi(g20RkS$}zn4N}Y%w0BHU}7y@b%|BV z7ZvV;#`c-tPe&dfAc(q$z= zX=qZiF-2x84^N$Jr@g!T?6}H`EtR~y|2I}){9rqZKS4c1l-g%H*Dh*diL=#*j=DQ!I4c$_bW(^P!-O&41XX> zW=;I3T|`V@y4|5lxZi3mcou6JUzJa>X;5Jp_<1Z=tH)5H#ktPV3?!rh)ry={5!LgI zJo21rSNfImU>OH{`PnZOLpFThrP{&YV#s->M42CCPT`9!KWaM`rV|}_&33n@%EIfB zmFtpLs?)EH@sXhn+aUfx=CBMI+!p}L*wA@uC8X<`!PazVMyg~RkkO;~|7-6(!(Q*RT`)+Wb`(+$D;!weTJd`TR(&jee_kbrWu3)?XP>F4Uu09%fkU_I83cxH;oL zn2ru8Lpr_TGE#J3<)$4(FmB~9CmF!07Ue5*UQy*M#E9hfzNcYnsS6$-d&WN8g+B*0 zPSg_7Ut^ht8doy)hdNJ(Hw34iHDQU5ldLh5o$9yHzOXjVlho+sSigNgTlwhkXzvan z(j|WS{GkG)gmUc$5wkvB!!=DiGKN@2dd-GithIT{C5$zV@B0W?@tbPZWw_|#R_1pP zhKNl9jZ=LYiy#wG(IGRbrP%8GlgOUEV&pO-rU-4}lJ*;_!w0{$^~3FlycW8T59uXc zuM3>&&)Uk@&5^2J(!hOq%}!dKoa;V$vHOg9(e4ni*KUu8)Qk%@I^9RRH*@9!K%g@K za`=)(T7LTd6p*pkD);(kI{bMLgABD&Lt{2uWQIRU<|y5R5!xw;>A^^|HPT8qN=8xX zi~rb{iMRHx=ExP7=sVV)Zl;Ft?C3xSf%Yg#ssZ}#27L}t%_ZOogMDCZM@|Ox^@+r6 zU_Xhb^mR>29N6s)VEO7-f8F}#&H8%RN?xUD-tcYe_(0R*M?NLG|9hwLhACVRdDo|J z3rI^SR-HREdkY@5sBU^n+VPYfvi{QLfY&U|`D*a>R6@f8fG5*nFWkpM)@|wi_0wtW z$QXv|5*y|;D$fclS4WE1p+WGg{hU4HZj>L< zz@936;}u!H3$=rs&pI1U&M+Dy7w}(=ga`Z6$W4DVEs(r?S$E8RAGxl$zTr|(jNH`P zGGY3q@3!E+ifAK6vx3sk9`J6gZz+Me=V&k{js}#H3^?ARA{UGo8}~b9=S&&ZFl_}% zq1iJ?SFBO6Pd_(wO^p5%(3*C6j%68!74{hD#wZL2mAbt`tfaxFZ$fd&fAj`KLy!Q> zrW>RyS;^GH%MTy#aAziDHoC>y|mEl8HUw2&j@=pu5pN@i6zy zsJ$0EBf1*48%_+Z6+;QFa8wZuKR#a?2m-ATf&hOpAU&5^tzz$hOp~cLQ3p>A)r)W8 z)>y&5t-!_WGAwPcOqDP77^nK>rKQt4j3`%u#if76Oa z$fI?!nIx>P?=ioyRwJ>fLBIY?UMA{fZ`s6VPe4nq7 za?h=7GHOTWaB9Bc1K$3cSVODj)JW83IDt5XXkQ-r66f;adTKs?rrV*IO+x0&!(Hh| z6?=j4a}}+h4(D{w0!4}$?u~c9@(ud|KKO$5v~`InD*M&wsf5J(U{))ILhpLpGy7Q% zLLZRiwl<&jX89_(zXE+KxC^$r&8x1`g)EY_adf9O_`z%&$MQucm&d(HV8Sw|D$a1y z>2_Ei_K1f9JY3~*f-6(J5oP-xF+lIBnaw{%DGRg&e4)G7PNDc3&TsjDQF_4$*s#}{ zCtQ>&?6|sT=@Ys=$kai5dweNa@nJ33DH$5kCZIpst`cZV&WLUwd&t{#k-zl*Gw1D2 zwFn}f@5Cj;xW*i&r(KH2lKOuBeS7~{!+@kEjl^>9smiD~OIi8j^-K)Vqct~}g) z-H)Xy-{gl^`Efk$ed$-bq^d_@kH~{Jtz+LJJO{BYVD zSCU2A?>B3pxP5vjTI5mcn5hp7Y7gB*NK6;yb^tHgWgyotD@DQmPr@yt|}+ zH5yh#7O5m~SXn-dbkHARV)(v_# ztle^Bmp)g4L;z0lsf*WR=a|QvBz(>Cw=22!Ck^2qr8ZoS%d)zJ2?vSE7?n#>2KVN_ z%C7NQ+VAz&`+vGq*`d|75hxKlWl^iw~#M616%X71xwuOcQ}2HRKJ`A}<+e8yb(qs5PO z?(GryR+7K-J^Tq2-mKthX+xN~Zf4f4Knn*8HB za1FBr{3FnLqBoga;&4J0^-|UpRV7ZE6ch#W4xluf?0@1<;byTKgZ{{Wh1Tg(8J%&F zTz->C81>^_Z;3~ZMQ!xxig<_1r`o-%Z0Qlf4J6%S99Qz6wyqO1Gq8T~(Izk|BN{3JaY z66a)WHs}3bC1MkhrgUr{tfU2VBBN%V61{AQt-H<8znILf(^q1}i$tv#y|~pXtUoF! z^01Si?GQ=U>r$MP%vuUBODRQEoo!DZ`$R%zyls*=y|p>QPCQFiJbYbw+2x$f;o(Sf zC$l${R%i;kbRD&M&5hZwrrC+E=}f#FGi+vfh?Wd+_(8i9aEI0`8{EpemR8(9+9jf1 znmwWNcriS?@ipux88$Fm-xsP&dc9#MXxlG*b`C;KU1GBr z)VOU=T`-l5!(%yLbz1bT&f^T!W4+qx%=5fgQ;3X~89}>uSyY#Hs9TxJhaCHqa`SL? z@0|15(Y+rrVz=n9p|RwBZcC>w7HjN+7y}%e`4MxHS2FS|KNY4~Wj=9+yjwDi|56kx z=3PZ0Rm{*wupctnuDyDkZAA;`1GThbzy&#%eB0{$>MA3mAKT;%mc0A3M339VO54{>SIXFNv0pRHbWhAX$6dRJ(4s9kPl-_f%HH!cXjJz z^|Pl6=GUYwLFClw;kwcu;Y5`V@5*A^g+a7sT}E$GOHpD$m> zQUgb#nThSWRw#CXMkdST-aTRK1}u%q3|u=CVducR{4gS+q}t63`Ovg+tLz@RmAhqr z`*Z2Iq`PlCkK_95r7iF*o$Q&EucgTM#-QJgsW=`|ZciVdr_J@}}t_&omuw z{Un5y@270&`zxts{~+^fB#Ya`iQ{_;f+plR(N4i3SFoIt`Pc&QpDYLkOMB}pI^5`T z$yjKZbf2q1HfSK5jNd1vUk9%2pl* zEc58g_uVKJGr#cOc9tMGSrNowM^>)1r+?Pw=N;JXo8VdQnP#ZbSy4vrPiKYZ^w>JJ zmsy?JqiXSOfG|v=b)?MKlH9KET_8rn48Q~BF;HL3UK^Qmegz z@;%|ivXQM&xb(XiO#Diy1W%FrYBMLhv$XO;o)5eGYIL;Bq1bHSnwETwEQ>IN_ zGkO*)w$N>KYT(N)NUZ%?1^W`v1zDUNHo0Bxk| zRt8t4-Xn~iSC}iVzyp4U=AZLvcPidMLdGwE7yPbB#d*vylv{u-_l@u`{efEIR!wD3 zuY#B^Pho4LX=wZz3`wKn{Nd6+8mrtUIy`HFvS38kWcf9NVNhq;=O*9RSmB{zYaNaj z?R`}p=89i5w=x3LV4nwk-Ocqj;0vFykXY-b%WI6{Uij*6@@g%hBA0~~{LqVt25 z^2zAH!>8o+-y$BUUkOI4TqC39#mdd(op8V=$NcDLDLQWa?HWEMyz!$Sp3qXhph=gQ z^(EM(*U1ybdpr#W%^rB5j$i{spEFh#9yd{~F*Z=27^kb8dn=Rafw7v}Qv>~#oy28E z(ehHw^waABo$z9Xk48i=M*(~L%4@Wy+q$5(RzGBV=%)4l?MezPj8wbne|Z<5e9)Bt zuPhz?FH#rrhoPB>HKYE%?U(>VcjxN1fS=zj0=_jB7qb%z0q)2X0rY}ay%&^if8^+? z$v}Ld(fp%!NY^fi^J2G4A(0UMwUpXmHNLtE)zhmdQyBXx=r%!^p6iJ1YFbP&Cw2~v;vS) zeVg`BT+@{%1PO3Wx-38$P%%JC9ArdS+z4I;@yAyKl)ICYC3+hA2d2CX!Jb{}rI%Rc zhl zWX^YeX`68yT&`+-$m*Dr@V5^&;ApAP_@T)k6wvk;R`|oCGa6syiyDXv!M`dHJRB1? zBtFkwi)diyR@90w@aX{4G}Om9b*7E5Ff?TZ!7r_4BwGTE&ryRzW0cQm(_2 zooMDJXrSsrS=%Og0!pJQmxtZ1s$W;E2Pb$ndOs1KPHn_WE+BN;lT{J0b!^eo1J4=( zZ@0P_8|N5ZChx`O=!?TyO~T8-D~s zE{h8m=qB%*eCTBBHq{-u5UVI8yUaT2XuTDj9cEjL9H2kg;Y9dVt}6bJ!(Wj#wQNoS zdmU!HykGp5WhDT;)EPvcJ;~@U`QGW6rUM&;)uJpMMIat!urJA_sVltU`QWzJV481t zquB883SeW#-U7wa^2gI{Srrha187Hsg-+Tc&@|+QY(rJ^adBhtkwt+Ehmsj45rj$b z+kEFkT@|kfLc?IRYBb_C_&YJ?L~@F1L9B|b#XY?g4|+&fLa@bksF#zbdNH)QSNThD zYbd{ejb>I@;1#eBGq&+FExO@L!QtZ5VP9eR{(*a-RsD$4Qh%^>Q>{#rki!(D<*(zAH^H?56|aBxB`d4x4(NN`Yeex- zFC{}N-JB;hURL!=rhgtVtM@rP1jFTClCBn|5hBLbC$XHT^c>M#G5w#LOI&*jEZ)vi zlBm;f3laPt)y)V({Fh8MNkx_TNpQ(lF8}Smt)QjYOu83|^MWliDHdXhr0{r*Z}U*t zRd={>DZ)KGsrzSzcw=;GcW%XknH}p+2|2N(SeHHpmBhj0PGvJ46}JOBDfV~JQa2fg6^(H&4WSym)-`;TvpvkNFI@ z!0{P~t?_lUJvus@<=6Iqj?|jkd)(ic>;B-br$^8+dv4sYI949R|G?4*iSP%c4v3Lu zCiL3jYM70!hHJS!*Ze07yfDFq^=SpBYBbg>`X%YIH6X3RQh93qBX95#ATDRq2Gg}f zdv$R8y;$-2;LNa1PySsps$MgIfo+M~-Q)?kuJ*`IA%etScG593=&mTUDU+oWfbFbL|h=6P)>v#4Qx(kkE&;C<+)8ew9Q z6SzuH)Vg=^{S(`d;jrJ~qSo%E^LvHAKkhgiX31`~^I)@KDZ{sek~LwF&wDLbpzHBd zA8W2*XBJSNt4}BmKq<^3h@pGrhJPk?-YXFv6q&jl*qj3WBoaVdtFKnCzBrt(!rD-X z2(P7Nvea&o>_yeufbZBe?pJ@nI#!thTVq_K!MV|BAlw@}<-dJaWM(z?Sv00Het(vPMv_TJoLG|7t|H9vB!p%2=<9$UJ$YfiV^W1c8hA*10|BuwPU zDr34Qp;FMO*FxjDLo}==%e8A$w~R=h^V%|3a2fp`BgaXMJpW?s2VA!`pxbxFt%#Q~ zafH5-%ZpYBkti&bx!OT>%OaCKaQ7CjQM*yjm~B2%sc*EXiSA zuc|F|+(+B`dKcAu`D?z$DafK(PS%d5%Fe2Ejrws)V=_D{sibh+_5>9`j!GBDaQXODKb)&oi}zcW9M>%=+j{&Jv-QK7<*NwIUUXWn zOV3meSC*uf_h$gf+d#^sauD4k zoXXhj9$2m<0nyKy3Kn&%jQX*wm}gQ`Oe%ds52XYsWlpyrF3a3LrM=ZOxelO`3-^bO zUM2~-Ls$CiAK2GT!up)V73n_%-2)ubU^Cx8DnD#S3l5H`!L#8bi~!HIF>|^lZ~A25 z4>)Cu%2O3s*Ph7OVB{L`mTLq~mOMC9(uj0wM8ahVqP2y#zKgeU(6F=wSV}l{)ZZzp zJeua0u_dffH9Yk5!hcKt?0vZ-*YHj4dD zq`W(C_j=#Li1Cjb%~mck+z%z(O)Y#8Bxy}w>EUpidygSUFYgr zGD=2nsTOW03Nw0~38gc^LiUg@Wvfg%A0w@~_eV*FkhL;^5kX!A*3JyRWjnBs9V z+5NL8vul6=P)7T`c*rla1@exYb1%5AADYc->8Qq`sX+)iIZ3P+Qgt&^iZOc za;I&kHQI^9xRP^i$|clprGW}C2&X-K<#|3zcnXi?a7FqF7HHM z8UMYlus~i(VTXA9Mc-(kNg|M7FX+8YRtRcatjl~guE^i{c!SlUKI`vd zzlICMmKXM%cI2e_Rb%1yL2Fv{HN-vRZ`b`A@K%pAFp%Kh8w)mp3%q6IKy`IBU55q1 zF89G0yMO^*N;#5#oD&fQe{V?TsvPkZcq_7A;)HQlZ4!k&sGOjDzX5F-VRifQUZJxF zP*KSHd@@4peNOyv6xpM;8gE&T!#lhHY|M>v?i=S~d3vvf<)H6xw>(F;U|7lM+e+l@ zG^W7p2=j4`3$0e)Wi4EVU6a(~@m^#F>J(XNqDGZ?dW=e=Y`akOZ5kF0>lXqyG-_18 z(YE4(R8lLVg&DhcycrjeQPS!#^9L zwOWBO^y~x-j~~~n03)y`TBstTn-YdaZZn+RUtmuh!EoWBAK?Lm?}#4n!MFWe|43Y( z(-k@WL zg@naai^W__veh2VfVHg^PUQ(i>LJolJ^9sQWuwJbSGBqWD6J7g)CghNUQ{i6&t>kn zn+&Z6mg%qqGPot6Ca{i6yl(8x^uFpl{1!yUX2dY>O3DLMffCnRX-m*k@ZEAA$Laa| zBrt_5153e$I|z2t%nRwW$hmQ6{D>cSMLCn*R^{Ich2ksRx2^rTI~mNrL?WjykDC&Y zb=~B-z|s3pz{C{rRBC{$jAYQ-c#_JU>#xgKl9)^3xJ$TDMu2|5L!6LTWYulUMyq)QdUmX z@!c0g9`oeFaQ?W$`_rY-)zq%asa|zj6|ntz``j*{$phNq&HYd+{^MrnfVoIZ4N*2? zF^PNeL#-t7DFQZGvf%_>9z}%-*MTro@zJ%Tgon&QV9u7)V}>XYum&g(Agfu*P}HPo zkSkhsTFCWPq@!)N6M>56^*;wnAE~n|9 z7`rcGY;5l&#(T&%WZe_)G-8aSZ$ytvA?*xIKcqt0uJeK^eLS71aVL;AAD;_Qul_1? znw24~w;K?Q)bG;Rj;cdwLK5}6br@icpRg{6gW>k=P+dy3>Gqgnox!b-@34mN?i;A* zWo*8t&yCV~g&$78pjI8#gpCuTgk8am*`f!uO5iuu?f{X}*Nq_4Yd=%NxVabNFTud~ zAYr)LrM4U^<_3H{+g!PW^ss->M-)OxpNfwvWCg0t>$mYt3%XP*Cz9X+uXvhZFJQBS z6CS0kd(-v$oQ6nNT`Co2%7{Y3xHCgm*)C`FP^xKn;O)bwY7D!c^FX2*Fq$#r>p9_R zKp1%8nx>aBW4WMMa4F``9^hot@43wC&u^Gt)fr99$1Irt`X3{V9s)dID~wv&xb6Af zlUdl^#5AUH!Y+jecO!rcG6@gZD`l^X;eu1Aq5J~gwo?KQux8mA)vvi1hFjGY1RCZr zfnGhB7M0o*<)-n&H*IFN_T7Zd#E)-45_T&5RBM}Qm~Ay@?O!BNzjC<~Y&wmA>DMab z&7quX^Qp=crE-pUB7Y7x@KXxF-Nk$z`n(zp{lbN6KYqWYbuu}I;`NOd*}XwXd}wPZ zHjG&i`<(bt>@z-GWg|3V?XAk~Tz=Ckqwk2>xm@B8rxS@rz?=_utM#5TO_axUQvRga zwfp)07+UmfQ85oAM_!R8`@we1w+39MQ#7V)lO_3dpEE=C!TIL!exv^KNAa;#fZ@u%krDKWRJwB++*Ca{)##&Z{r2k(k3yxKak5ned2=Jur`R7?Zx<R+5`!!#%J5AtwPm?P<4V>7!>P1tP97TBiKG4D{0_ zI#q|6ztsk-AgW>BneVCY?;gg&pL6LpZIWc!RWTai)0J20b(aHJ0|tzW8hAHEQ=tqD zfIkd{u|O3bC0r&`m=4;TBnZQ2T)w`S^d#thniq694@L*Fq*CD%zUb1|A7B0~YDJrM z$6}|e0p+>C`r*xx7y~9_Z!(D^(yv0MZfh^^)ne%v^fa8`C*Hy`r+b_ZdMq?sG${d9KqEA;H}B*0w)9;^sY6QkuU3mTWrj2kJHC z?eQXiEpuIJJ2~@v8-z_LFn9cC6-%V(VBU$J!o77zoTmiZ$AApal|K0WaSbM&0S-BR zZ?7(e;_}eHET;dui1Wg%z@*_CVRAxgEq=;N#+MFANKfsXAYTn`*H zG&(`I@j~7uv?hYaHX;^TcLp(R2S+?q4&MGv^BI&MGzOrqyFvrjlEPWJx$q@p#LEy_ z%=E)zVaNiXGGQo(5IloZ{)BAxZ7!WezsA3~(ha<@)bkdC5qkhVKF^qrkaT~~Viglu z&vLBBtANo{heHV(C-0Hy*|?@;Jb9>HG^nYCQ$GTxk18+i_r@%Gek*BYcp_Kex?QK) z^YOH}Cyf*rHD=Y-xGnLK!MJw*JQumLR>U~Ch4l3c=X5dzM?RF?$J~0q)w!hn1?;vV zK6DA9-H7F2eifOxsIb;Lt2_i4*lLZ@u3oy&hY5(`Su2zkGqSStKOK&Sr;&x^5pK|- zXJU@Xv#_2y%pCTj#FqVtbs*nSxkLXYi0Hi(YDy7w9$`i|h7;)B>-cGzdfyzwAjm7& zkCusW!dYg2E(i0@#sm(m?)lDk*>rpHQ^CQ;6>nDKayi6YMk4(@i<*8 zVp)-TLVRLlL()#?Yp?Tevaa$XUP1W6ZT>wL^e>;ea->Uo>(+)KIqiJDpyMb?B-)2) zL*e4hnjf01EW`BLZ&L5G4p?f)m7@GhbEvHVu{m(#_S@C0Bd>+&m76>Xk>HBX*!P z?wc|cN-+20_d$)>tTXM$O*>p_YoNuQ6ILD!b=i$+$11as9tpp^D$nObd4KxPs%GC= z8Wk;&ZJZxw)JKhu!63bSw^y7Qp5#FT$q0hjibhs7aZw<8b2a8uDAd_?u-JOsk4goX z1a&rT0zZ3fEmkk9QL&eE@`=4XE9oDr$6X8e!&}t6(=!Cweb;r`K@(+f zFCA9S-{;7V$J4Lx@#Fdu4XBNNE!dYk8+;VlZD*@m1%9@CEP1STujjj;<+iI-?P3g< z1)AzaxKlS3^MDrq9#ypV-M;$4Vt86NR<$qgVW7ss!0tdyx1Uxl$k>XtY2=}k7w5;I{As($4zmPQuR8dlQ%xpXR8b4S4;972z(Q7VrQ|{{`r%Lr z$+9o>2G%k^&hKRLu$_y>;%^@*w7F1|IO2}D)f$3G>zG!s7z3&2mD`gAx8r*cz?I!^ zIC5x+GldhkTbbC$+Qj)XPWL!~ag`Tp1syUZ$lSFxL@5P;X1NgWyt)eSa99NU{f(aD z#`io)WaNWHtU=E10nHIUt^8bIBGrM5ed|zZo%Fl*7k6Lw&=AkVJe4BW@;x$;a{~PO z%1G?W;}w0i&2=%=iGZ@}`v;E&eMWL_lJQ?J+f~u}|3+7$CAfFo*RH5|sq%5`{LbgS zr}m5=+oi{Q$i(8v#m+Z@9q`6(#ueeI&h-CUwZFJ3niI|#V{5Y?y3)%x?kxmgc@s~5 zMbr1N*{wu>$^MmJaHwMGUCMJ*U8N@Ygz==^;6<);(q4Y5?u5xY4*x}1lAoA8-I5!gADvRyJR3g-n~YV>GK#?Ae(`g5cB z?|r@p4_5y8_O{0(`(td#HS+?0ks=GI>WN>nuq$-mQRA$0tf$z-0b4y>XD8cg)~(!% z2O>ta)E?aguULsb6Lvwx9>pw&aQ0~S0)HGFiJ27H&S)sSfe;XX6gpjpc(^~Lzu zonNANg>IjSvF7??`@4xt@I+1;_Z>h)7f|$3J83NXd*_MOj}HZQ5cJn|e+|j-Y695Z zRif2S2`pX|Yq%gusad{YHYrPtO;EbkBsBeYX9X1BX=OL-FW(CJAvsbgHJSnGR?A1v zC-!JB3?(ZI1JH@Wnjz`MTW$y_-J|j1ft@1dfBXx*6k5D3HKeRjXM@z#D5feuRxLyu zv6&DhTWe8Q5AYK(5=)<_0+xJcOSLv6M$>zzQ1}!9JG2NRsT+xoQdP+MuB1C zWXOiJO{w?uMheZ^rn*FX^1*`FW9!H!yedl#T=c?u;yxeu z&QGZGU&`6ASRD7DyQK89lfZTv4dVRPig?!SONG#p$U)H=FVTjCr|>&QgR#4l#13hk(s zk9+#nj0!v;LgE=fp(E!&S{Lt5sw{r_pSWQEdcJZuf6nfRdP~0^N$EtQZi-|CI>d_X z=--F@eKC$b{mtP`gVPZjKExZ=!#;aVG7y#3)<);Ht;2RK?mx(Po@nKs5I<0qMQE%f zmZc;N)K%I!9{U9_ErH|W$=p)-ZbkdM0qMr6Po?ExmVL-({hki_|2h*ghq)}LO4wkNR?b1Q0?4-uIOeSACbKd03*X zh;r5VW(m4_Q0rgM>`gb>v$Md~TU)5BgzN^3f?Qy+ob%3!Q}Z+IwSCncDa(TJo^*Ml z<4`H3z;7Az8|?p}N>Y5PFEj zXLge{8|>;cWw$pu$g0gPK5_hcuQ;Ox^!_Hpe~nS`g_b;LM9;JM)ah`@EJP=Kw!Cg$ z`}dV}*eJ7jkT|84KD%viY>`NnJ*@gARJ`rtza6`!l|I0&h{T3FaV-gf?l7`9z`^Mk zdtPM|umwb$Mn=Kw>w-HN5j$dRpWUAbfqUOh^gq*AzAo-|?XbGnQOn0XJ0SYYO6qE$H$)n;bI5&iEr#^07Nv_~RlpLpf#GWRcE#Z3gZaC$a-v@&WsuJ$Xs$VT|63eI!Ld}6%-C%@G(8e+ELDmDO!7E<8oz*w~zjG zE&+Bes1`({JL=sWfjYZdH|F`e)->5jziq8DK0wPe#he@M{|4-GH4SfYd4>2lb#dDE z%5NKKj&pV z1>P}>FOI!D^HN!raRU@{qw8qVOLShe%78|=co_lZV9;$0(MJ#DOYEI zJU*0fOX8b`lvzf3n84z?*7Ml>82>hDZO313=#4{CO~W@#%7lUkbrG{B7RjBR{*!u_ z7c;<3LJV_cQ@@-;O2<(2j>0N^zW=7Z4w&i4@oFP|R>q z)W5Fv?rcyiG!L=a2hDY?YNgyNQT*fAWW$R^>Avo5vH?o6>i)z&{mHWhrP=Xz^Gn@^Ii z70fIOlmgJlDrI{}6iTnpC(0D2>~qLKu#ab{y}c-ank(RuuhM0^7bd{p(rmx`al5{I zKu8%O^i>{6go7vE-~Lq=ZU0-g65L;shuHIAUA@grgiEHl5H44eU~ZwmA+AzYib0zUE~@uz^`c%Z#OuG#Mb97X$eCBnvMt|Ykl@A={QH+e6C!E%L_<=0{-IJEV};gFm0j?8pprOB^lZji zx>#FBfz{2wiSU2@lKF?bRe@#+>kw&O+nJ;Dw{h#L(z?)@f(Y6?lFNLZGB4mD4ho;m z$sT6iLJn6+?f4gpS-`K8r%3>C4g7+ard! z%p!`oihx1lfbwr6$a5~8ZRqFuQ(oRnwzC)xJhn+iOmfjw@MIGjDZ-!Bh5C@Blo5iK?y zP8-&}Hf+KQLiyRUK}fT_^xJM`>^|D@QtPIb2<&OPl;zuz>@I5nI7%*4x-AMKO_6+z7w@HomwgE(mCS{S~Vb#*ofM(yV9qIU+ zTk;EMz5aX7T|FASY$Zjg9XC(p0+@lY21_9ByqW0&ugFuguC?R0cb=a|>Ier9@rFpV zxJ?OLv7K|pK9ejnnsI?PpvKpItT1z)f)C4>`*_U$vbcY}Qfzp#TOj^!rH=P`A2PPf z1QZaauWD3Th&Y|{ioEf7z&{h1L~xY;9T%K7JM&byZ0l&cc-KH(xzFi)eL;{bunS}? z*tPJux?Vd7V;SYsR75L}qe!~t{wu|!@BW+K8U4dIp{ECp@p;icQo17K&hz$fquwND z0ylvp(M@szNx6>2nPwIvgP$9evy!WXIJL}q)*JJDmxH$6YrOj7ol#evKR-_m$S$Y_#Ht1f5IP* zJ*Pouo}P4s#-Q_sy4VUq>6TQXP^iF=4lK^Wijg7HNuF8EjEfpD`~2U>>TP^&Bf`b8 zSH8de#jDwq@b0;S;UXH80PEoAuMgC4pTZ1jui68`n=N44c~8^&}37-5o#S|2t*O zBNf9X**|MN>kQlw=X#ZpSz?`j!6SkxcPokDvGCIc@LT@>A;7k}S|4AP@6xeKrKlDI zM+}!T!P%5@n*NfTRCYNf=fr<3nfz|Y(D2b(2yXrREt^C#d`r~?r%K}ViHo93H$`Cax&^~0V83%sr|+HNO>++Hud5WQKkfe} zm+X?-xlm5a4$LvLmMxZLV{T>(dQ;db3KP-bT`g>Lh*Iax$^%+q*q9R5o-L=9*M(^O-naS( zr0SxyteP{5WGI&GC37UlFDhDO%ehwNr~cM1t$QT)in$IYRg+35nLV z3a)DU-)7wA3~#_p*TQ7tUc(FxjIRz^&SIvo+QMc$twj5G!sy@uvx8=FRkQwEKKily zO#9(3*NDi(Az5N_!ba2Ye8yi2WapK8@b2L6nbx~54(W|ZO6K~P+1Vw^7J{v8i~eKy zb@nVCu!tk)R~y|~Os1l$zMYs1DMA++>^N=zHD~`(wV`cCoV|K8+#4&6X8o=WIUB&T zn-+rNc09$pCt8iyU%4{Y(IMBI?n14Q<#m1&)eA)*jvwpD8>}vBDl)p^QS5cc z9R2&)Y|l{2J~7u~P=4cGn7el|Wj>KWw3QVN+quO*pR4Dh@#Rtztc8V5^_-M-RWXaOL zqojeO4xUEP$zSLA{ln;KrF-laKFTgxmBXPyo4>wA4;KFii~obgKQ;LOuTr7Kb#NQu+Dp2wendfd7yD07 M$LMCs4g0765AQ2Ww*UYD literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/assets/images/tut-flights-scaffold-project.png b/code-builder-home/modules/ROOT/assets/images/tut-flights-scaffold-project.png new file mode 100644 index 0000000000000000000000000000000000000000..795c26ac0836f79125bfafd33730c9ea52fa6dfb GIT binary patch literal 191255 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

Kt5Z>Hq=bJBzP^oV62y+CHbkmI`2WCHx* z0=FMLcvXWx!iek_C=iRIYB?m^lEr$%KcnF@b8{m&s|8;}<4y&1ille3Yxbcpj8UiB zBj3=tyqEMeV8PL$)SLr_z59V$GF~gC=w*%5Rk+#qBy&Ji4?HlR?Q48+t|<;CBW3ox zUc;6tA`h|q8v^#jLcRuu8wYb~v?-~Rhf9U!u|#eO9Hv+x;#D%|JoWPC@QPa{hiT1r zkCMwLBHAV(L-ICE#n$I?N+y(A!l7z`19O-OOPc;dArrIEn>8~1?7sBDoz2b7W#8=B zGj79Ry1&Kcu6`nel<$zzzG~v75w+(=a;3Ja)j2L3bo1!R+Ewjb$h)j8B>?iJ;;O9H z{f;LPfE7L*mCVb@HxNoOJmO9n^4I!smi*`C+9z$Ki9exzHm|S@&+lO4o)}{V% zXK7`Z4uYQbs9vek^Dz#ZsY+qgzIM*4ce0YWRXDpaeSF7Doc-~te$ehq*zVc{zat7) z#?V}-&S*7ZkO1pV!V}|K?{h z{w5%Co}bPK1UgsZdy}~?xwQnAln7aVfJv&-a-K^+A}TzUsPSe^*2BXC*8}*PB(@JW z{oLMrW1jY?=%^^Wx1U@)r8xD=>~f6bkIN?hhtvGSIUt@rf1U;;Bwq+j^XJA&TjiP7 zMF!L$H@1MO%ug#d3`YFi9I6ZZDY1%`eIO=0lJKe)e?R1E8Zo!c%wT zFiQs8bY|!|IxqjZ6wfeOJ>zu~C_KKT9 z^yR8V5b~2J?4B2H2c40Z*T%szFMk9uNC`EgAUxgRz_~r2vnsudka%PNN`||IpWI-I zUEGjFC{h!YNIGv@gq=-tEK>j{HeG-C83N?7ZIcZZ)oCtnC&%*{+N@mQGqA!S1NUcI z(5`k zEI?m`?%5wMAw`S}b>%mo87BdqJ9o|l4wH6D41epXIAj|+HWWeJR_cP_xM_6@;kneE z9>V*i5Z8~M?MShu1_@n)uDH>G1B6mIpqM-npCg;hZyzl?%Vrnf;d;$Zuawu(>Wx8j zA@h}4nVG}Eq{6-a*2O^u>9am(?X7KY0?u!QR?0JlLzbFp8=n3Tlwo+RjQJ!afhPkw z3cxRks#@pC>J9pgj31uMgAZGKjo~}}FO3TV3Rt^^DGL?A>Y2(PWNjE?3q}^@-N~1i z#KnD#2%Gg*jrQ`lx_s|nLw<6|r$lC~y1%RAAepzqx-ShhKU5z#F7H0KF0N>(KlNaT z?zLm`Ad-Dk_`0;)eAnS5s&`{{wiJ!1CdQ{^V)`d*7^{nmdmKqXdIZo3Lh?ahZJI7~ zJ$u=#%U$mXSHiSJM1ked{DBqwDf0dMY0_iFSog|A(L!rs!nGrbx$mtwfQQj<-_5;g zHL?Br@9VOGGOS~YMBa5jRZ_0RJTIs;p62dV5!_;NLHXFkf*9TuYJ!B$K?!$EzrENPH_TO zQyzeR2gh;CAk&X}dwT3N1Mh}iP%tn^ zUKs%>+B8tm;v{0bVU%^QYpWMGU$+Cel0Y{pV|Z=lmg@j{L#-A}HGX;7ZegU{5qBkd zPa%uYNwSm$Q8j<4MBOv!#5?JX)$_Cj%4d$xRB6fquXiWkg`t3L8FN^NSyCde)%+zWh)=Cef&7JI<61xy2A($$lThQThbc{ znCnOxkPkW(cYj=WO8jmRF}71;t>$o=3|WNpSRU5!MZ0bzh>KOQWCz3ez2Y9 zw;7tE2My}4GN2}N!;{hSm87HH)2a;QwvBxjGCZCW!05Wn>1tG9u-I#bHEP5O5D;+Y z$mT~qz)S5WjrMY7UC8~H#1=fp^EX`Ku)XxTyne#t0s^K0><4(>(xN{f5L@w~u=Jf9 z_noMd9m`VcNnIv$Q{<;1eHZl;(Uv{tbfJM7qv)`^Q5# z-#cZw6Eib2o2%7pE&bZYV+FYR(RF|pbZ^rdc|C+jq6{VMADO~fx*lNl%8Y@D2p*t& zJ@8=haI|{i&?lU(q@%O5-2AX~v=%79Le}-HZDB(>Y6drb-jqUIPg1X2WkI^;sS>7f7$$oTIU-ydU}-oOva5}msda=w zuU@@cbW}A;@_EUnQPvoZvjsmLPo6}5bWGWWVhS7gRzvvEri*n#Vw1}4zA}eLR_c~3 zA-mPi;Agu^n2{b0N=tE$LRKd}(wgLXVMW&?K%MIB&x_5Y41_uO^X1$m!vDTQId z+}rX@BhTI3y+q0`4TN!gIfv*(pZ{gcwJEWPB=O8Gx)XOR{6qn$HkGKbfz-1O#UT7O zt-PZ2CCj$g&cn}knHRYYPu`&LD`>!c74o2GoozbH49 z69};(scUuJX#R;pW+Cz*E0w1+|3nZs79bEN-ko&!SDxedJj(xGom!~?0l8T-9iRmA zZyW#rD)ezoHaIv~9tMMPzD4H#6oz}!qx$O%>0sfh$de-!U^dFg(-Fksj~+c@laY~u zj#-rdY#@+I)Mq=Jjg#|~&EDTcGnt{s(b&^uWYIA(=ZAnGf`+ChQTEdEh2!z5p8&J7 zvlqL}C|(k@c!Bb4KRQ{hV4hz9nUgO(b0~GQoNHtPC1+Mmkt_QS;HyIdK)OC6Zg5a1 zN4W9V4iZQjLS-l_HkKV&uDv?PdantH-i(YjM?I%&=66=g&LN$0dGhSQ*v;pntL54V z9OUtbmD~Rqxh^QP2?@w2rnp!@%w_tSm6$a--ve@FpwxXp?m*a>sI-SoHRgl-5}G_mJ}a7n`msM!52J3YJ=pC2YD^Ttm$y z(}N9f)mJ{98(mUJ$+z`p1G$CD+)DmAvFj5c$^4{m_+G6SQIe3+bT{ry&@3_~Ti>ra zHgC5`#63JL_r_koFpK7@Ue5bn9!Y&;MoFnj&Oh6JAkBJR9PPQ)%D6cJ^x87JWWf~C zg|u2$1R?;^W-d|dVp%v-DTUsA-@YShA6OSB2S%9Bo;q#?SVlY5@yyc(&!2vEni^|a zZ>J3}7vqOiRY1px&PG?8MZbRAMnqYz0J&P27poY38fnY~#?8D5BXjlnlO`E>CJkD9 zKS^}Y`Z|g}$UEyVCn^b$FkR%TUh08pv=dHQkW0Cr;~X-Ndp*c!f8K7Z`rFf=ZG7UH z^waIC4+uW6r=>Z^a`^ffHr?0>^3ABI&H0{b_)-zP7tRLd93(k+kj%x<4FGGWyXgCy;r-Ew38v$MXaqb{(NxY0(!$P+;)|d4x zn}&{M$$|(~atVwYv55K`YtKUeBK6>EJ30%_8cu z;e10-0Ssh)^i%dhGYhURz>!A(Yv)>&hgP0>+mm z6TTci-a61hQ2_-d|Czv;HzAm-em}khW%T9kJTv`W&*&8D#${l`P{(`3+4)dmLLVWL z7L4nM+7!SM)IR>T;iKz2cpPn9%xvjTFnd)y5v=rm| zgC9tO!uh5y1QC9$l;x|1QR>_0dR+PMW3iib&D{B~s6Hwyhr85}RPDTQRw&P=3>7vu z+V)O9n1LPV96BXOIujNJUFb@)Ihh?8I&(KxwK}! z;2wIV%X?~TG)jH;;K?#vk^!Ep0QyoD(ozv~J)wtF`Kc#Gbl{i)mGxtnW5i+Z0`qM> zNKbnbJNq&BX?*~)^0>nL-`!wFAR>P1cle+X7f{<~4?fE9J*&8}3sa2z{Ojkcl-IK>Q+@KPC6nSS`*~ID^IcB7MHg===A!m&Q}oP4of4F$3StaF8HJ z!0LP0@~ZSXCCLArJ_R z#3|LLL11sK3G94m4Je4VoEYw#p55XgkHS~3uqdoBa!##bgQhRUHFvHi^WSV|8ks)i zxdYfgm#W%ooSOQpuYE>2otGV2pmFzeK_A` z{f+TZF@A*DyyfwMoHxqZrJ^il() zb#Xp6%fA%>Ob~5{1-bU-RqTqW-_RFH&5jF^=8hwum8OIV?vIbEb2XBY%`|Q)BkHtY z2bT&^KtB?EBvqWL5A_QTJrn;ryXbIpe0c6hv7$P6llli_i`jJzt;!WQnLtsdU7*11 z(>0SU?mmh$TL<$7R^8)eGhw&aQ`x2dlbo!Q2hMUJ7PwW-yu9mBZ2ifS=WLt0h%5XU_ z6f=IR>>gn8l=I94bMa}eUgYjc#-Sa(A`^x83*(qxPvU1^)I;zo;nw$syC|Yfl8ZJt#C328oZfS}qjTXJm%q~l1%9`;F`(pFg* z)8l_6$0g%)>(-PhI}7{J+NXm>?5&)Zj_5Y+@z})oHVb>PNo?-}98pYJFG=kHwqU4I zFF5~!H!vXNhsL{l-Os;$B}9rm6eT&xPwC^R1{&@ydyT~J$?(MGa}v^H_g2#xw`gq@ zXU+*S)IT#5ya}Zrt~Ux5@Wp~cUv9z=gY49$CPM=XV#zToE!}Om6rR0|d!SS z_1!8KaqznDQL0CUsea*1DXLB}x2o;8;OPGSdJ>xj##*NGnbW!%!ke`eN*y-q6AOEZ zrkb05RRV&a>v*LcaUz-=75K@IOfCHQ$_~iZM{{gsD#z7}ECI%4w;2yxU39B9BJ)pA zis<&Gt%~!l<;$2+6wg_O=M6e554<+#hgYbVC_?W!gys!<8)zksO!hSlcs}I?JXjHU z*7d7GlmG?TmuL6Si#aG6czi-}#dM8`*ACsMbeG<<=?xRUOnQH!Pdrd(mXG^YTR;u3 zZebnMv$2o&0k?}LT81{N2QkK`^D@P1fJD)FX6GXS7@(FH*3ViDHQKj^^wwjha+P31 z`1fbKuRFVWyL(nDE0ag_tGuvrXENG%3bB)RQv1AOHj(L6ODZn|LC*j6u+@bMiP`vp{D)r`?CdRBIIM8L|oh(Nes#SxeDe}2uxt&A| z`_Ms#M;hmrl9{njfwz%G7Ui=W{iiHmte~eij(2D>@K5?Z=rTj>#!xKn3%>btzAHuR zm^I_V7vYA5v78#Q(fo3Z@Ov#3OtvnqdV<**b`$5g#sc0oqv5(2$9au@aJ&#m$4RN1 z_&BN?s+vWlUAM1k2&Y@bQAHeck6p6YosGj)sv-VHPv_?{;viOcSqYFdI(g5J*J6}@ z;6t*maEJba((hqG4x1fEir#C`3@hfk91$Td4en8&ce}zkniOrLYwWS&hO%EQek^$$ z1|9^lnwdOWBHeyxNvq@`s~f~%G@!h0tlh(m3Lj@0txhr!_kPBOXR5uOJ)7TN?Ckh71mdtd3Jr#16QTQyE@mv&*c5pz}WvB2@0BR(E0VhIC zR8YL10yL)-abj4@5cT8lXQ>K?8g@JvXxj5j8vHZ; z_M!+h2g$1|F3g?0)y3~Ka{R#M3!fd)u`LmEjfxeFU5#aCvrY%2quo?AMtinncH$1I zofhTNUXq=47ibu{Np76mS=w1xZMNdOniF};m0qeSgm)V`T0tt@+LHR`a-O*zCF@^4yb(zJWE|615$<^*F9M;UryR#Zfb(c2Q zN}RbYk4mezO)~ua{bG{mzEpMihwQBI#ltRff5<$8;@3#>mz-wFjTtsnj>A-m9}H?K*DA$7$^M@zbH+ zEXriZqB?I_gW9S%A?)dpBTqDAn1zy8#4bF*(FK3Zl2lk#fxS0AOF-h<<@FWWLsJ0^PKGRs?8Sy9-cAmtyxACREj$bmH zk*IE!_ZU?sOz0D)m(WAloa1$ToP%S(H_=N^O?(a3B=LN~m>$07nzWZ`yTA8Bx?%B@ zyoYLXs!^lgQ4quC(bL;yGX0r(i`7eKhs}K#iA9O-$}KdAv8w9mTrD4U36tDxVs%*_ zydjfZ4kNTe`*%p5|6o|XXFv71NAbYSHt}*tQ~cJ`cTLF~gnlEDrN36FRw2-bck}ba z_3Y<*tQ#Gshr3@1SR%7x{7Wtc%Xq2=H^>DyJt6!&Ge#JzX1IXiw}UATI=xjaR$|SN zQ@-}`l%HhiLwNLbNO^l)2>vh>yGE8fJyb5DbT?KXK){x!qh^=J8EW>=$`nZZnuFTB zbZoEdb91kW^9vJ#<64x)PM=J?zu9R!3?ztUrZwC-)PmQq#sJ@t()AXqsTnJY$8Ht- z<9sUje}tKT4kr0u-%XHA2G;a`B1>ym*uoq6xKy9*pm^xf9Hss2%d333F(GZG6{QxD zF!hy|OJ8PMwNocdsyZ?UmY$hM)Rx=}Pv(hqG`gwz4cIOWWWUS5BP9=i&?N}v#Tz^- zc%Y?KJwsdQ$4$SN5|cK5HWFaz$zo)xQ^>>7+=(gLpAJhM?%y5UHaAI z5?ieY>;Z7cB&_S#REtjDE8@3~4%SOORwpM=rOh$4>9gk3>Xv5#_<=v{j{}Pf5*(ay3Q0b6B)%uLePi&7@OZ^$Y~0-Yzj3 zL;Fl9@UW;WPRUnJ?y17NOQlS7iwajy3+~}@mDW^D)K@xdDizKqLL|q&SXxHJt&K_c z65~qwhd;Mh0SNO*(2A2>DVEVamLT)RvVA7WvzX%NHVKk%%kLzZ0=r`CWxznC*Jh6r ze{)ZUlKJ<~PmYGTeE*zZKt_|r*p2XNie<&`t~K?(cdyRCPCm#HeZ}<(?khYJ%Ppt~ z?>$nM$gs%1)^MiC+DpoDyWT8E1Vj2wOGodD_ub5@$CYO5z`r%hbF)_UX_9(3zZi5%^d8PUlZ4^lr#gRFT z3avwbEkcm#5D&}hjA4p?yzuTy!(?l&?M$d}#_qttRttB|tEs!f0+mk~?gT$+VJ+`0 zEx(}kk>4IWwvv_q78Q@$NZ{J+&*i_47v;M-^!1fU!ej|e`(v3=)ZloHG5zbPtCfZ0 zbG6SJPrG>&;BM)f7q^r?Nq}6|PUl}52PMJ_E=eVNr5i8nj}V`^$Xq_*e>gEVuo|-S z=Meck6?j(3yL({vRI>AU)P=39^cI850}X)yO?>AOA?z`uW;U?$>Y{yT zCwi*L$ceP?HHt9NFFk&CyR&So?&fO#QNnwnfD7AdX$9yWVbr&gMOPT80x11T^2zxU zmvTr?ThGV#nu3d5K*#~cP9$X1i17xz_IDf-DY}`pa_LQuGhg%7T{DX9 zP)~(Cu7kD0IO7Mbi4Y_{W@o}EY1J^h)g1qQbUXLh?Ku+Q9%HjS%Llmx`BH`CJD5_3 z&76$0db=v;x5M^6HwT%IB2&k!zyEjQutXNQ4ArAABgJxvlS6H}sjU_czp94}d1(uU}6|*0arU2u~+&$X{(CyxfW;Rnf#7!c>^9`a}+aT_JZqc+Ic2+CVQ3Wz*?#q z%*{@LJ(A7Us-VroMR@Tw-bP4i?%gbKiun78QU4(buv%08e$X)-GV=;m7&S8zK3uot{)*q&x$Xu1a^>n9w7|p-TyM*y zZ}{wB%bQx5+9x4btOV_SA%b1e>a|8#8l9_o5!RUd}9d z%}#a=wwZ6pS#*T>$TEqm;p3)Ka=d;Gx*nf4KE}PYml}z)sCS7{@aS4laWoc^y+^UG zY#y1a&W1Wfiw`;M1^|v=x)nC9fL6!~|O z=)ctw10%C9fynoF(U_)!+ypE%BMQ1_?>>)4hpZT~Jn+3T5~ zh1)yjc^VGKwcMB)>)8AP0TU{9_CkY?)VA!Oxp$Z2t{j0`<%^RweeW?qCWwohJ1Qn7M$5kOzY2QXGy|V+ zw;?5kJ)J`Q`W@*-V{C4uA1QYO>xai)FCT7~Wb#Ksg96w}T z2A;nn$S_|F3u)iDy&MApI1Ebco)WCk6Kjc+T|f(thlh`wJhG#QQKE(oP=3oD2OjUc z$E=4o`zLBRhcdwk4u|BoPR{GT=)OKUeY)Vy)aw9FL60alY+&)95 zjd9=I-}Y0KF|Ezg7UYo#cn_87r7wn_=8!@g4j-S z=kVT;)uZPD_*E)>;WvYMSsR~e{vTU!9TZ2mbq^0N36?-`C%6R*?!ny&9w4~84ienm zJ;B{wf-}M09fG^V%s0uszpD3po?CVPn6B#SnbYU=-fOSD_U`4F5vX#8nR7Y=;~>kV z=##+o2X}#c1ZOpfP|6t>Fq!Q=Q=JmY!<4R$KyTar7X z3A&@q84{D%+#jQ&E_bX5sd`O#lG027FTzt8?LzH!+Sy*`^l2XotFTklmoP|1%|F}s zkhPrVE32q!7zIMc+Z%>S^w;YV_C#&6>71U^rC(1l(q&EmP3(}_pQ2)?l6mPYZEa%J z+M9oilt)P@pCZ6dBcjIH(;S&N&3p6q9mPDfnB6k;xCWgIiR&0mNw0yI&oU23UdtxKA%nP*U7q`_jw7mW|glgjpJ?Nd!le-8dOnqZ3Bwq3fZ>C!8H=~ z`8`iZ7{fmE3Kcnf!Z8JKzQCs&*&l9>?azy9y3Y@woTU+j5XHR=_+b6Zr4fOzCcepi zsi_;JX9m_~B<3o8AAwEvEw*zk>kd>pU<(P~BQj&OTPt;cIaMCvx7dO!-r{Szbq3e1 zQEt-*NWL!Pq6vwZv)1q7&u%=3o?$5;T~oZ0b;;H}AK@OZfQ=*Gs*_jY2fc@UP@N>H zuWgGpmo#~=T)^<^-dUhR(Bx7foX7QNeF=$R{_}1)HWR7A!5qB`fv~z3aM>P96F6ud zqa3Etd02HXa6{4{l}SJjB_8hJfo;FDYgkaVQ4Ew}z8BNDTSyeznBeiAOJ`8+eI;rte;pSm@orVclu0wmn47Hfr;03eVNz0#rg~9D zQ-5WFpG*7!>(7J+*AimTc4t@<4_#lQ4``b79kbK;Sk!zk?~)o{=S+)@%0U)ot-hBo zG2v#-8`!p)cn9*_X5NfB8|djV*|lE;w?h$mt>tVfd&St%zak+**u5uL*2d3HSc-O? zjg&O6OhEo}PJG%x5FKru>21edjr$TSVKq_alDx_UnH;~jV86q1~=;~;Qs zR8)y_tqR~BE&p*;DQ_)RqXJO$&kd5D(^L@!P7b_u(u%2sj#8!IzE=%UKd z?<7kaR6(vv&F;n(T{BSe+fHuyvIw^FuMijfe^&@NRct*JkiJN{p03cPzs7uhQmzJ= zh^Okc^Lnhm@;S6h8Tt7NF{e=%*IXky8FO;#l>>F#eiSKi%(wWrWN|Xu!x*Vxz1`Fk zb#>L1}lfi^8?!8b3mrNEZ;XXmcx`&%AIs=97!B=fJTPJ_0!V$d)g z8ub5mgq?Kpf1b-;U?&8bcztas=hb-cRl8biuJz5DeSAK3e+hl3)pT}}-UDLz16%VE z90NS_{XGP{vUB=lq0;<(9qysbL+wgp@br|Yf#)-m2V|1){nYc1mxG8h@vc6rfqP@O z(I(K+)C;tf%j39akP2F2xc4h6lM(Oa#=g_3Z{oWkaB_qmAUod>yUi?Jee8L6lOFR%#AL|N9 zo7TN6{qQj=#-r&zRZ6FI-Amgkrh!ztaKvxAS1rMLgJb`&Xy6L`bO+iY%{i{6d~uP1 zlgBK!8w+=NrIN69csIZL`gztLSAl_}=QGn_mHb=m%#<0qw}@jiQ*tekfH#U?0tVh@ z?Qw+>bc`aO87~HnfiJ5@-ykcG`sXz!~OAe#(Dr|9m|s z?h# z(G=zJF1_Wc<%tQUG-#oV4wvb_nq#&W`nBl4i(Ap7pRQZ-_H8KK((kW%UBdbPDQl0J zDIxq?Zr>u~RLnU4JqPv3z73_^PhmB2_l&?Od15KJ%T@z+L5(RnYn#X4g02k-)Fg!t zcgXCmomF%Vq(iq5@N?Mn_O>3IuT=O-r+GWRbPg4ZPrWMm?B%3Fuv`Hl+pv&p!VgkO z$&;^2@te%BqSd{b*>zz`;buwR+xdG5tr9cvX-wT!sI?OvPowDm_jxkcegiXg?kt`2 zNC*_8P($<^6vxq=DeYPQTeTco~FER(RsL`Nrkowm>v&n)?JRd7d{B(z)| zd9m==M1)bBuj@|#%H~&%7tcs$xv&kZp*|XZMwoT&hQDq&Knhnti`7%2XJ{m?`@!#= zjh;0w0;=(?Jt<~npM^nBzu}xda8zaf_MhdleRVB;{>*&Q^s~E9DJ_B@YzNsT=$HRQ1@rDor>8|veV;ynHv|k zpO$(0z(QX8FnH=o9Ty2}UZN;4qG!bL-xrjya2UACt(X9j0n9Fag$EfJzR|;6xo@Svm;53S|{Kz&tjN++Hun^8H4@ z4>#in1|LVMe819WExtP=uOZ=SBzF zvk|R+T%mm>a5Jp(@-uM=c*ZmT9l!LX$?VAA*fa1ALk~FHakx35mpf9Bd|kj+!Jxxf zrNFadKG{mPGNj$T$$(W(;}dZlspc^k$<8*X-Kqetg{?rTTm4SnW+$|Z)IT%$7C*hfr)tgtqI2~_FE>W|A}cOI(>N*6t3E-N<~m8UQ|~=S zJG;T!vqjbtPK0UEWq0N-f-xSIE@fYWH3IzE^L8?{I5(TS;CI-m2+qcqLx*B*_EPJ1 z^&A4;l~KFogXxXnO|T4C6}kH5a_fu40O>14}Jr0@Q_((<`pu@TPKR`-fV&XzU0D}#F3sT)j+isx}c zXg7(smfaZYVuJ1ZN1u7`o262yRcMN>bO>q%vE4iMiQZq$5i5O4E)jX`)tR!Hjp`4pHsm&$Rip@YbxD1N)XX1~T7>MCuQ9M|9>Qht!n;Mr!bCdnrRnOr=zQj?c{K&unv6S78=#0>b?CvamxtQ1Ws9Nz&7S=$I#=O&K zoB9rGP8;$3?ESZe<%-jIQiaaZKHd5Rm%Z2DnL)Sl{~7kQu)M>2AH9VG(|5Lxn81`s z+2`kn?V7n=SW;XLs@|jw+FJj*LiyK#JAroY(VN`A8By> zD^K8dqS~m_1j&(KM}H6@=v$kJ&&p!@)6Y{bi&x$Cq_j&$T5Q>zn2|_ zN2b;7bt0TYiDOT~`UsP1u#}8Mws(Vh+jmP(fLwhxd%KQygd*Wozq`VZ-+erdXBCG4 z5&Db(H9#@aC1lYf$Z>4w^vwh^QoZ${w+JkiFf7#sJqo-#_wZ13<)zcWMZ3Yx!O#<- zBRmE+1};sD2r+>9_=H&&{hgGr@~UNDzwNxRS(w`Xw>f=@>%&~Esa|=G>%N}ovi3T6 z)%uMAhM{p;u;;2f&sieL*7h#52g0WTWCJA=zR)7H1Nv!&qau2YF*X&`nL`zOIHW+| zY)?T=%~F zbC?Nl`#?ODt(-E~Kxjix>&4oBJV=wxGIby#n&mLFH*EG z>FORl8pto9>D2Cih~& zy8c|(Z~a{BhzegK@xoC7;~D6|Ue?{+b=dV$%MO%X^K6mi2E0snNJk`-Bu2=LteF>V zpqZjz^mW?Hk@wdkz@(*ny zz~L*qa2b2D6#5+{^noA4+oa4N;BXM5@($B3dII;QKXM-HAS7I*R*z4j+$!YxP8m3H zX=SU#Dtf#;aekdON~h`5#DUZLj|E@if)R2v!=LZh+dE^4UHLiiU^K=+A9pujCgvx2 zs0z!UwG%1j=1_O#S5Zl#`)km$-u<&iwuA4hi#x7|&PcOLTjUTP@r2%^SxuH$a+jPW z9Wo|l_mRim#(+UK?#aazst)03#bGwwQ*yBWl>SwiM{?ne|2M5j+Zf(B zGe%7TlIVlhlK^kI?25KR^p6jTm~=Kc;w_}p>v!MkiH2Di*`~f?J+|3+kQ)o=()LrE zNyp2aZ@aB(0@wL06J2uk;WnCxpFU+w2#Fi?YQ=Q+Ohn%-9f2JJmGyc$x8rL~PAUsp zg(h8_LE=f^K~7QAd1fU-&+}TyGN`7r?dv*%TSTGamtIQt>>z95aG8t(hj5R)Mo$A0u~sS%gzJrIEi%Ig9_6Xe~l@g+s9EySf-S zk_nhQ4Nr12vr`gtu620xyYwhhC4>*}=S3T;*oD=4#fO#zX5NOB^5qJiL=KyAsQn%Z zGWJS0zeTsC9r%QU4P(d%{wkgLTt0R2WUM+9Yr`I|NVKAT+G_uem)u>Zli+IKj+@MY zdBxVzyQihc-Q@N(_vm$s;LRC~jjdBav$FYP!|6>UiaHa=-lu3gMZpP`Z2c#IM z`uHuPL(;B)JMbuI9;juUf3hh;R5k{11Mh!q(Wt_=&E#+1I;`cRmd*y7r13IggCt`z z?c6E8K(e$6cQAHe7YIf|ln6ezT@@244@S^5tSezxqc-};5)+zPc~Wv~bPxHie)o5* z5Hxg$Jf$$06zt`RK3HD3E;fHuIGxM9+>bde!P;}U1hZtAWZb@8{^|Sp zoZrJG)*FY*H%?J)YYCPvic84Y&=DU;Q1dazCv=J2p+{J@IFxTsn%eHR;%@Cg`eFkx z82`a~FmI}9CdANA&0O44^rSz<>qR+q7F5+am+KFMI+tV&yh`7SNce^^wYH-Q`IRBM z%kbr-6QiMWc)n0_f+3P<)g6=p@Kc}ck?)Njn4`Xpvz6FwAiK#?PHI~EGVGL}y~U!~ z%bY7@4PH)B#d=HZ{iYx(I(JL~nTLs;V8#Ng3Qcj8j zMfEyQs>>JNQ6eDpUml~qHEBCN`%$G?awQrmr(yiqJ)|TOU3urbMtjQ4e0h0dmi}@) z3(g0_5pa^`jiHerB8Pe!uH34yY{SGE%}SW`mQ<^T+7?BJhlUO|$W|%z6lRA{nVa)H z0z!~=V>VzUgJSkH;NEVTWndv)sO7z&i6=N}sx z+K4B^0yrcVgfclcwESs(xVc=<@JwF6gx&*pmuK0G7t!%6o?3LHu6{phM&w6Yc2guN zlnoo>xU5v5qZ8iTZ{LfGqP;wLIwbOH7Y?(q=vp+}N=9>6Je}7#7fb+X;8=rH0gW#g zEuhhdq+EJ*B}G39m{%y!{qpa@!2^T05^|g1Hz`JCG)FNhmEhRstce7GOcKm&9#f7_j3Z@`s%f_1J^@Ql#GZ*rRLy_l`kg4%sHi4cWYs6;tBE1_?}!!#w&eB!1{ z-!+v~9#rZxE2+BryuCLabwPT_%{mg(amJpZ{Gg=5^PWhmUx?>LjYpms;Va`Zog4T` zQ+l5E(TfHDhb3R2+JKN)@ajdJ14*a~9P8^oh)(q=H+px=#?>G*$K@@qxo7qfm`4_D zH|hE??I9LP)ip~+$_ec`KJ$K{IC?&ee%;Q1Y#h=k0U9*_{**W=uoD*lopp-j znvOZerBjlmOZ;)3<$af`DmGa?FM02NSvH?)-bmjO^X3F~r4LY?t( zzoO`fT7lq4m$H6V%@Q|?n%babX%POnuH_7-Mu}y2j*!-ObbxfN2IUpYob#vHnHY^; zK9Us0<07oP-g*P(S{)p`#sdd`aY%t?q(;(@Q)-u9XiO(tIG2`SU^vCEHosTC;@zT) zLz2tocao<87!0@4Pc1bxXa=kE6&ZLcD) zL$O2Dgz~%NEDg`%u+s|SZ)iOTZlYlifZ{=7Tx<06iUew72i?+9o44<&$ydd}#*6X^ zA$Sj7?VXT#RW(E)rar2gKj!edDlvfy2dZxYJuX$zzNHDo=&gUutvaLXz;(QR)J{l2 zcXjs3O+ytKZ--Pz_mz4cp!OkjrisOeB49V`i6$cvjg57;izwSDX^ zql($^>iR>5C@*CBJzsqXjm+dHS7cVY`06bw`5zN4SzQhQ?qYhx&<)A!u3hhq-OW-3 zTrP~u2>{D97iQ4afc!psTwSo_$jpb1q_hwVzUY^_9F~;Pbgp6g-_zIZNJDTbQEVq( z8}V^VmEMaLsF+H&ey}2WrSG`;aAixgg>H8>$8v*@@YDe7M^r|90geqalvsM@_omeuGz+ ztvaF5LAp4%bpBK z97)|mU5{d&N(it9iXSgD3%vV%k}Aqs0=)VAo=3{*A|V!(?64%!R(YM%>>YGJB>0%3z--EDACdQrzB%D{47iSyf0ZJ<1z+X-)>DAUBtm*UwAyEq%@c-~^1N58 zeBY$!ySOzv&w_8mmZ3|UsS9uU@yOfpCavSYD8*j}g`aysHXf>n+Z*GbbiN){fzoxm zdq&x8KZ@Fl;hZX7T~>;{A(a8R>2t5_#7frRzX!go?G#kGd{Qs}eRg7`26KMVC!)7= za5Ruofnsql%sC?Iip;2^k%1eVd3R~gUM8w;xZ;O=#jAa^TpIVAbqnKUQonQZw+9}? z%PJAvfg6)(OAM#JxslrrUQJ&*E?nVd?W6SUu-o5o1WgJtw05o_xwuaY4(ZIIwwsJ& z#hoRe#Aa}Q=@d_TJ9ieH(06@#fN`i~vsj7{G^i-rY%1IcRLil~E;@j1v`mD=k51Nl z9~pW4UPW-c4Yi$W=;-2iU!*IAcUW2Mkxu(OXfc-Vb6I7lk*0ZR4Wo*0VOG2v&7 zCYpb*4~!(m#ycX~)f}Mk?aQvIv_ab}M+F&=eC?e?gsKImoN+@F8B;+yeayM*8;A9q zEuk-li)@{L&8sA(FcLtLkHQ+`ug@0lK;f8~!1;Z^7!!4cr5TkDR?Y%AW@tSM37bOf zh_)<9z>lrW?>X5OXM z-q2^<5hviwx`l>hM68r~Y%DK-I@MH9X=oRVt#U@andZM7+?n>!nMqxp6bE-f;S6OO z27*5eX%2mu#p1xmiXQRnO2N7=lU;1{wTBLsa)+Zan$*~eB?h1byf-v#*;9TXxG`9Q z(#Wrm2}%(mS`U9^c=C!pQylOzk!xbpGozpX%^XYRlEY)-O~h`k z)|EMX?UC?YS7A`OJn#++B~z7v=CUzUCt`gT?2gu$#d%kG^nNmPtHx6J{mnoSWC`~M z_t)-Cz~sJ0_=Do1quv#ENN0UwYIs~5%s-~{vps94Zj?SSXa1a*!Rl?|9Vy`%Wy;;O z)HN>wMA@KOVp{UsgN2%F>B{305hu76h2rW8m4F4z-Nd!Bx=kwxm9X6c#ruawY(B8v9N^OnoKe&e1Z8I@(R`FA$$vN&knd}) zN@-(M+CES95={8H^+j50G?`*l-7cjjm#uuX^))>#hCCtD(d_RI2fOxX$!RLGik}PM ztnVF#+}!c0%93sfSVAWszdvjupF@dp$KkqlkO9YMpnDa1t+iFXGA=-9=!(Wt2H`uL zusC?*^u+S`sapReYUF2JpIqAW{rpy;0*Q1w0lC3AzT(|mVu1Zy->y=)+#EW~K1Jn_ zx3nC(9ug3lyCA2tL7cYT3T?v3)}I_M`hH@4T>( zY|=O>$9j0B-}#w2V`2~w+*C%6I{@KhCZb+{xtXeMziVu*&hoKoHCXk(!OvD!P~X0P zPN|Gz4|c)%{$as~Tl<+at6MTgpA19KH+*q#zzGrbQpyZ~bDqf)_s0g?>|<~~oMug! zGu>Owo|w3C2KuyGa#Y1TcD^!3%0{H!%Vscfbz0 zG1Apu@hO%?Y^FBjc+>DsgX=?Q&W-uwX_Ozx^-SG^da(iId{s)>?O!wD?>!Sw)-4IM z|0KPpX|CC9h9W6Z5Ho6ej9 znOV4VLD5+ntP*P>C+MHgM2A>qq$0F;>kK)|L9>%~gEddO=uikN)^{b(7b*T$FkGvAq)|dNq+*Xa_ivz3$jY zXYWYvU+C!>6Vb`n0;H}6=-c8^cROxcYIh7fsZ3L(vL*87i`-jzrIB11Q>Q?BBzPx! zcD=xUA2AsLNjfz?Qu#;yIR8xo$4X$~2o?!me#^NYu08uq4csTZUYm?gHv<@p3n zKc79>;;xhr9LvBx_Pv`uJE)ik1z!_Ua8mSDlbRd@;9GM)nZAa7dz(yQ|$rjV>y zvFAoRPCtWOWxcce1Hcjk#?pMyp~|Yq4Po$2IJ%NyHA}JEqmXaBN9i-P!?Nm5p;L%d zVIgk!-JIksilx&*SZkh%-&u#cJ>w*3E+RYg_h zAkH7dooo3mP!|!?w#-#h0`pE+;eDX1K94|xqmnN{Q0}%5xI-qb z->jknH6p)Gyr@1t7CRsoe@UqAAIm1$!dg>k_jJaZdFy@4eR2Fo|CZ;kr-Oz9v`Qc$ zY=D~EP4j3$HlKC7azi%S#@GMmPbM&7SoOvL z|E8a`=&xn@F~ki+B+a5B=|>?ws%q+|V)lil!3@cRH^Usl3^O*xIq}J}1P+j`t-uV+ zYG_cT^3rqYSL1wT6ed4BqkBZ5I(QqOC$J1sFS=vEMOY{B#Mlp*Ms$l4Hc&j6Bd_M< zNV6#q0L;){sxjr~R`+Fwm|{Uv&5iySz4wm7uTAA>40}AS)cT+V9WYlrV4j?SNbyZB zo7VrWgv^*f-ta1Lfg5IrBrGN1n+e^>Q2ZBl260qrGdmWCSLm2A(I%+NONm%p`EnG58!aqOVT{zt3LLC(@%Sr13U98ZjPB48RyinT09veX30nT`7_Ch z3o#O+e`J5es7OLumj74MYoZoD78dYhOP3@$1b&8P)JV@$E#Uf__M%E=22KA1!V;!U z%-AwdOKW&tNFm$x#T#68fZtErztj=ONB{O`3TZjeI>89YALPk~K$j{-^e8 z>znPz|Ll{C8r% zd>GjyYCoPNMs+d&`Ra%|*_MkMm%GS{e`9s?8~E}T{uAWAE6m8)>@*go_u{3XLV6_x zd$rN-Dzr2RrHby^cEIAig_~`VV{MX^Qe1F1_>T=X@3$hN1kjh!#kZ+orP2i?N{d|I0^1Es(u9 z?C#zL^e$Y!ikP`isu~IBN&-k)e_R&-bLZtn0NeWMOKfbluYRp$rGXe$mBsche*-44 zB_mw^V-KO^-ZSRsem46>SslttPEJZqvcOT%KVP=-2kc2Za^UpW%vdKx|0Ez}@Unfy zzaaU~zd!~vNUpS~o9)u|Isa=_WVyHWJQDOBcz}Yfoa7>b?yFR zwK=cN&SQP>@}Cp_oI{MVfi&rk)N71~vD2^2prssE2s@F1xMPN)CVf>Xhom$}?d0<3 zN6npKn~jE46gN3KjQs9VF25P^bHq$t)J(dKp#Cp691VZGe~I}E?!byYr6?E(e`Ux# zzCI|XtB2q9S+ZU?3z}uZ!J<{#eM{^9wFFHJjWA%Qe4x?)pB}2_II-W zm+<9;h*yE36PnLThZs~uu)m@LE3?y7$sQ0sZJiyFcj})8c%Lx-*?#u5n8Ld7R1l;4 z@i8XsNdyVBPlKW>+^HEMQyGYnNq^7z2bP>rfv3*`O?%D0S?Q(7m5hS0hKj5*ch9S~ zcdY#Kv5{>^dHNIC`wvh9mOp9O`hP#tLc%fTeA2Xh{>TMw*SgE|4Gxf>sNyI~Ra7k= z(2?0U7?qF^41H|lQ)5!r-p$Zqd$b1A!r zeMPH*R1=8EI~!lg88o4pUZcB@YdxXQA#i>lz(-DEcJGz|60ULo6vs&AA|NM@?rJ-^ z{}}J*O-acxpz;{j-a6g0CW7&9Up+vcfE^5Nqk^s-KkUGHRZn;-2sAuRMv@AijW*i5 zfId$?>sn48OnZRXvH`FUUH|1|u(h^(uJBe}^uGBi=^jPO-Bn`5qo))SsaX=M4SzS2 zwyK4_r7TyT@?BKI>|>nmOt_AP>CU7K22sZ9A&MGN$gh~fh=>E+*Ix>MN5Ktj1i-q$ zOARNBuLw7{9m;=;Xl`BbRjbiod~B?^Px&(+q5$DEt8#ReSP4d@B5Ls$+!B5YLH2DD zTWlFp31+!L5w8cJRe60jalWxN{J-3va0aE)MdwUw5khEf3lDpWX8v90r#C5ybYs#K zwsX4Kb!#XoYqTj9>wC1dz0eI3E!XYKjB(|rL_45MGQh~5Vut^mVb45HN8V8k|2C|D z3BVsKRPR(QncxrzvuFOb#=Db8a!og(fG53dZ5H4H?`|L2BzJhqoLy;Ru+r#jdPuf}+mwULinyH@?H8I)X!N_0u_kyL%J-l6j7ih^aJ=mxc+ z$wIC~N&az0Qx#&uSwm+6@f4GTQzp(`3R~L;8bvn5F1se9^7YoT_18yl=zVyR_$=88 z8}wKO#Xr%=ZJ`f5sp2#P4hyuD^FlxAqWYz z{o4h>_`N*CB$9qcNCQc>i(Z}lf$LXe@Lx|UNu$IYeJK3dwbzhZ_PS#iU!n<9$QN&se-K2=rKNL-HVuDaE;q+}xv_HdnSot&rN5u(>zgB^MUxX@>Cr`D`1 zMY0l)Nl~7ZhQxL>x>JK+g=4?Zn3OR-h!BGy?3gsWL#~|<0YuYf6Q|A>Jp?@EkwkPx zn;pj(&e2a}ijgCv9A9P4({RyY@OfVT>fyBKseQADHf4aer=BD_idF;7Az$3uvqvMT zSL`E$G_CmL0`Y8C>7m!vAZTXK{SnNKi2)?Pm*rwgmJv zbeV4Dz034j)U0Hk{5VLpXbw;rw%FE363nPl zutVBrSuRI3(=Xo3YpLT#tN?`*t{`=@>lDJ-RN}?8cdIexc2a7>?_o`)Vq7n~O^b%` z#oA_C7$h3!Dl1Frho;&aF*@3m{wRxLNO`(SXNkUe0A0e}r99;DW){hprWvCqRACed zJUkh-rMj_@p$3kha*4E`8zym$5nJaY+GAwKtKxO7U?6+#;wm?{DDXc?1#W-9zz4=Y zrvoc~!ZSlWh-`}H^}EJ_!MBIou>baJZ_LSI=Q`-KL8H4CUYV?Jnw~LMquZNlP=n=M z-3;}`{*PGQ+`&w;gY4~sM$F^33K%)sF^?zb_Zp*zfa(XWJnvF;fcB38h`o>$K9QYV zzh>IQ`}jmX#tZHK%ln^l_$5;h{@JtEN;R-Zp6d-+UC$3AHCv~LaRk}EZ=&Cy4WWnKdQ1m#0<8yU!LDb!%KDNp=e#X zv3}F3%5Y+?S}adOCd#RikAhgvNQy9#{N!NbDkc4VMXVUIIr*&_l#L?27RO#pmO7t)A&c}Ja6yX>ho?^pQKT$8&#)c8S+$(tkC2g*wp6KI zQr~r`Zjdy#E<|#~+XrlVqtEH+mP}L0qyEe>{=%?cnVbVzpcLRm7#>Xs8JaaiXI=hc zVD2I(+UngvD+A37l2=;lrh8i2=@oT3&(eBuybV4ajsa2zwlySdroVj|O*{H-TwUdT zGt(cRn#|PH$t7tkXcwx>mB&)bVe`3TyV$$Myp2(1_$8XWbE(nR@vNUx-m4n@Sfyqd z|MD4^!KD8dk1?+1g>N`vdQkQcrSH3~QoHjfU(wr<5_y8l3;{c29nVOCjRclJ?DH`n zPek-)lUANZTTXN8B6q-0)a7w|WqP^BLb#hC$r4))ID5;rijzPEe6X)M7!NY`OdH3N zZ*z94_bxnu)i~p&7w8S#T|A;0y6ZYigvyg1$~w_+nxYNDh^Dr$*TxA=dV&L|=w=iv zHT(S!Mpiy4MlV98k$iP?87FgRVF^woPcqCz%d)mScE#=<%_B84j2;&djgdF2q-rPw z7?H7NoH!zF!Z~l3KFZ<53RqDBx~MYJ1t_wKL;^a14H z%e3aK1SM8!HA_W*_HTPe=#;Pzb}nGI+;v@-uKvs?_nMHvnhP*q|A(5Fpi z?j$;?>5NYkns4hK>kVVO=z-u%ep@4O!FW6S3&+b@D8yvgYF_3W!I)G1sY}~76*G@& zr*5}^nbhMFBENZ1uY7>F0B3k3?D15R z5vxJxZnd1o4*>SFFr?nGN%x{DZ3!1RowE~3)Nt>xfH4(F(F-iOOxi{3%dDv`DLERv;8dxN|oidpzH$)gIJ)1_%7Nfl9r zTj4380vz!94slz~@T92Jto|ffbAJfYg&7YMpMK5rwZ;iI1*nNQ*^M;S8XL2kNzkBR z&^v?RFk;4hK@aV!?MwXbo~ADrH|B~%59`~ToV-Ew_RUbG43+QeNZii+*JH5KQ&+ea z=o2|Hz}0dEw2++&uW?R9kMg_4_KM4ueb9UH7$cy~kr8L9P-!%Z`7--_)JN+YlCi4M zr|p}}^AtmMhwck8-Vgyv6_Ww>6y!0F>&@Vlub`@*q`0j#+H0w43bz1y43Y;px}9wmQ4Ft{$=_o z4B7i4@hvvRM8`X4mw4YiOZZ!d*5NOqQp~AwAw8Xj{7r4m%nk0XU?OGA?la+lCm81T`}#h z`&7nMK`^dM>%NILNN+hlw+@MCLhO3DjGuvfOBaqWJb`jMck>Yi9HQQF-Zh40hAry+ ztGc`6nvqGe4GMU73=9VZSirN4D~|AWMg6wkuXz2n^Iyy7LXX4_#WAa}<~s+5_|*%3 zj+3sc{?X()sJLs-i(K<%qG2-GCKX5@0?zwBIc}zA2ed+a!<2Ym9=$8@w2zXQ)6_IH zft+t%?Or`_8MEgP6h$`T-!aI-DAiP&L{W7ac-$Rho4@W;qVt=EqZrM3b}#v$vTPSf zxzJ@*Y(!EVjl`O5a6j|f_&C_HcagGn7@8N0tV1MX?(}(#uN}=>tA?0|^LzK3dw>VR zzW#h7j8Zem1?2?;IQ`RQ6!i1Hm2Lg3pH@hLQjKQOA7D5jY=^S2CB*va~{9qM{)m#Gvj^>-k5&BToA;10I%;q1o ziZ__l0&QnhaK`e+I|Q+WS3-Rq<*D^P9iAZ2&!xZ+2pGwZxqpFhXmBV6xT{IsZtTk0)y<|Pp=%6-auf>ipUt6wiU`1V z$uPKivPV@wxdLyoCo2 zKIYlkGv*{%Q{P?0`hn)*41xi~KbxUNVFT?loFAK~LQhZvTZjhYwbe2PCO4|%Fxbi6W4;DWCW$E7MI-E@c zk!>GKj$iONllhKN{EBVx8fc7SW4srX5h1fI`KtG3I>TgAZrZ()W?L?`JHrVLdspdN>kmNQ%@{T zA6Ymb%y&Xc^|0CP-`SSL>$y?KM6igy4NW2t(UcgG?gL2dEE5HyS%_#1V_8(x17Owt z{qo`6y}TBP0QS1M@K||RC$v!I;;x|lG@yV>g*z6v$jklcW9Hv{DkvNNzSk#2U#6J-HV1qz3Yqp}4#;0-?_*4r#G18L$$w3Bp3S}V zIsgy`JGx3gZ)EngVBmx@D4y973For;!Ez#ExG3>p=Tt^BEJvaOQ~=NWr%rwS2xduz zyAxNhE#G`BrW`PjT9EYT?W<4?E-C1KC$Cvur-B5aRkjvNBr93kw|DvJ7msLpt+pEs z6%p4uK4B&J`k@05=^z|$VV(#Ptx|45_Nqpm{Bt3Hg8~0JVPW94P1n*cp_Nc)66D+2 zzXNco?h6z(R|BiANGFeI;Oj+EXc#1eT;Hv$U&jN0SFgllKJe&gqoh|1cCk;IS$VVQ zTCU_uRV-2$uPy(PlfX;!jS>c&&}DPiN3TEva9v~%>3|fTBVQ@j%rkA`<*n-Whn=;G zt?`$42zOustOwfv6tYQ(XjCTbztO_tn-WBbj%NmUjT7wsoq<+VAHEHCn=P_i;~>{Z zk^l~`LD>-cY7MUM`zN6Kuon|UlQu*i0MQ&aN^Htm!GP5hsmajool2lbrNqiIZaLH< zl?h*x(xcmN6iYi8MoRPwdA-1Uc+GjXKu!?el>d4xb$E_`6_PRJGs7cUFt(oE&{IFW zgmk&ki;1=k^sjx|X<{Pi@9Gzy*%ny%d5%#8L*!Yu;SEg;kl&gX7p8STxUe#h`Z_Eg zU6*@%?6%F;b_FCL&JfvqZ|+pHXe7bUp!{5yR3%P)$1N``&_f^lFvw%Y*Eop5ocV^V z3dr$cT718^__RD6L8O()5?$kx^wJAe6^9T1d@<4HS(?G zVX;x(kmw)ygF$gVBYa$B#DMRRJByqNaQJ&!b=cSua-EzUa9{Eo%+ZDyEE0TmzXwPZ zmg!SBLB=ugZMiAaEcNMM9*sc8Z(B@Ax4QMr^X9BhDLM$BvH zci&$ZYmucvem}jE?|T^CM~hST;Uy@zD`THi({0Ffc>IP@rsY@chyjf<^W&yiRy`%O z6L~V>$h@LMt&1_W5YXW{lU)4;2Ut;g?haA&e+j7-2vA*AL3Ju&f|3e%eCzi&-$ogc z5Rc%BQ5Ob7dO}~PL3Gubs##b`3NX;4jowJ)R=q#G6ANm$8xl6tUfP z@F*G%bwQ?7O@vLL9VCRF#tpRF=)49#NE{+R1q}Jp^52&^bk@R}25OHh^7W*_lG}treCdma z!*H8rg6cYOI!RAgixrZEtHAUU+U|*8R6(@NP;5@Nh!!i+x*D%@Jj|KpmgQ4|mo0ob z1(i*LoaX_QzASyxd00~=zDqhdI{u>6J)dLU+?_Qo0#+8$mpzEwv?Tk9`h=Zo^G}o+ zAx4_#A2`q0W&5NfP>!MAS5(vyF}6J7D;vTRoyqO6YAf1SqfrH`P7oE;TNqpA1=KDoZ+kOSAx$&c5+`L=~uXy>TW$HYRVL zLim41KL5{9|0|aRb95*I&0PU4E!D+i>ltiPoa%N4825Zgw73T*AC7embY0$d+vqg; zRh6f4HgrbFt0D)5BSj+x3TMM3JO$k%(@GmrSA%08qBh5!wTgg zq5AnwN3m9$1&Xh#ecE+d7duY5Jecnu7V!*`H@b9Xt40gZ#i12;6aA)NSa)E=vPAcqhm2hSw80_mRem{RNKqt@ z*)7H$X5RF3)b{=N5Ygooa~zsk6Wk9jlzRIyyfLZLHblp43t#U+lfQl`5?5utZhY9#I3Q38M|8a~Rbd9Ts z&9>=P)bTJc>!}m8H{uu(B;zG>Cor#crOONGg zC-}B;gRjBr=q7}RS_T7pUOAbh#B(4mDLhs+pCWAa?0@D$$tQI6`;Wi1oCMn-oyG83 zs;Tb;yQB*cAj(hS8+1u9FxQt(_m-7b?a3^O+~`p2COocFi9T9KC=6XmBXqs zNn@F9i{sW>JNHZ%wa|bnrbDBQpn4IV{KtHa5z4_uoyyzTi9rqwb?Od{SSP^YVBUkv z54rKVIfRWFnHa_iYLH;~| zzcYgqma@Xg#0xva!n(yTLD*{f+4C9hkWTe8`l5+BzRx+PbnA8_G0SeEYSQA!aMZU>>VKv){@W*kbhJ|^u$83Xr}D$6 zUPz0=D7CN@PZ%{t!Hadf(yEu2 z-9r9q)bhrF`NUItHh>(Ep3QOp&vo^WPwo(PVHH_cqGE2fK5dLr1e7eX+6u@3lZpru zVsLpcG`@?%$xaFDl8@r8o$Y`HGHuOm4@c{zQT@KLPr76>A*mEPR@7cj!Q%mJe(F=d zKhIUDuG3M=$<8ao(cwJoXI7usXdk(KfW`KDejxqZ&0bZlsdgj3;ZK^swf1E znz(gmiQkMIiNmbp>0&;Kofy1rJgiGr_C8w_{|{Kmf5|2PO_;_8hywu)#?V&l|HyR( z(ou;b2hhQfTK%s-mCi+jpU_}A{PK?^*?()_fBiF1Qv!AXul!?NTl&A-#ea{VGCmwX zK>bt5=>Psw|85?PZGlzPF!O8MF#TUW^#8hb|L3#%C)n$0#BDqMe`wU#Pq3k$3dbbK zko_NGTK~6ZYW#gY4bzs)e=sHgZo)qvba7z)(C{<3zv%y^Kk~Oxq8hN*Q^qG|{U_4( z-?N+l9;yG|!?ai?y!G$C3rwa~R#lyG5;)9;4IDZgJw1K=S87DyK~o&UxE((iTy(2~ zy9aQ9n_O=}9=?&bhoh>g;JArmu(|DWXN6`;9TD~&hEBAjLSIs2yr=%;c zBJTnRXaZ7`sMZ8POPaa&6ASL~yLx?$DYbKD`s2Q3VfE3D9ZI%9Js4KsNE}6c49{^-QHRr9CXP+;9o>Nf?F!ipt?Q%%GynFNN>D*$Oh+ z{JL!_DMubNuwD&G1y#9=XWQ|FGOs{LQ$AQz2e#ojaN@DFK2kk?uXGP8wDYw~Z>;3N zO!!T~-{slj_^ZWIx?U5vgcc5hxg%SbTO;B0+Ga83A^WPWF8P_M!aT~c>X<#o8pzw} ze!#7dB<&*yKQ7xNW6Ur*$`&Ws8Nxge)j$yKcq@RiKx9$1?c&p?JqUApU__VAqQj?D z(m9R^CpRmFT~cy@?(y2T-@n$cDC!cO|J*}CJwaDC*YkD3TR5qA##D5-vcxzEkNlrA z@+BD+&4DA+rTzkAspT2es_2+nsa)nTQ|f>Y&uUeBcc~uS$Zzm@>^ojEH|k0{osMq! zfukms*@OZ*zIAC|FC<=+558r^VbL1XhxdA}l}m~o4yGdwtkgNQY%M z{1wXNc!_}fRTI8t?c!?cyl}&4e=kW|xO)3|Y_m=2J4s2300z|c)ey$t1N;^VW;D>x zP;nq_cCGjqNJh@OB_tmqfKUBd{9g-yT&YKY3zUQ?=-ugp8;nOZ?vLIggf+c$T%emjXs_UF!Bk% zq6P>v5G@M2UahP7H~$s(AWH~1ZJR0L)KD(-m?5Ey)r&9U9{3DTvFN}aTMJw6Knghh zP>*uzfCzs6eK8DCHN*>&s)Joqq9d!bLg!$0#L6_{#kYZfZ}EZM%0$|rRq1?V4GhI5 z3h9$5+E^>z>k%Jw+g-s$js?T8wZ8@;@PNv=9hHfr?t5xM;bnL0kh2JlvIso8^k+_l z0h2e@R5N$c{^V(Z=p7N85dN8>$|2S-F1F3nOU+o z?%@N_D;F3tL6!hOU*0eau~~HuH)(3v*E54nH~#HtYey2O-b-o?5{)uB+?cKB@k0p5 zgiN)9a>co$>uTftq>asuF#dqQndGj&o)F&B`GOdr%(aE0*PWn$da#*510X%|K2Ar# z*=#&c?8hh*kKyN*SP=dRm4%ygieuKgyhH&8E%aX&R1`#SY(TWNOgAaJ>kkqsJNc;h z4lt|&Jb7cyApW^Fz2L_CzTf%tN^)#{*>4_)tJk)#IDrPsU9&fP zwUoQqfkDqZ1*-i&e)rRC0!ZGN;q#}gNNby94lJZee*wzZz?MViroZr7kT z&Q;IeuCN{Hx20L3a9H3 z{oBx7Z6`_LMo|ULyZ3r8FZ*bZ604ZOBC;>lF~b9$mrjGE&g0jcc9{%+Q9I<_*}n<5 zkq%d|nY(=5nCImPKlf<~zx3Muf?!(fm*z}vLDhq97uUvBSSC%$TjoAhA`v5HxIw04tcIN_}Z-O|4%7tD%$HF3zZip4H zedND9c(rj2BMA?PkrNau3t>lGD2GzB)Q8s_<{78DOy_9u`nF{13%hCZ!cue!vOVJT zoM`%S87oDAfO8&t>x?&^oy^Sx2J&U1WtEJwKQLSR(@Q!EL@D_JDNFGNRs|7?dw(QS z5-{5o`M3C6+ao@_GMqT$>i=wH7h@D2=YMG-M07^r>OLlz{(BJF& zJ9b6eJ~0gR)55k>?VUgl%-xLgXnX!9J`m9%A{*b|f#Sz;SOkzt_#GSzmT0UzxfT*z zym^(qz4c99UqMAS+(o|cA;fW_Eu?;q=wdgYca&%`lbfTtK2)H3JALPE%|t>rV1T#4 zN0OaPR*!PC2Vjz6o2iCOufb~>Zw)+=I#+^i&W3$SQI0@#{*E-TI{Bsp`C$b@Wr7|E zRT)W~0M`K#o=#Ny5V@Xvh}_83r<&Y0a+bK{fH~|2YN?go(at(Z1hsDS>+@(}tWu^( z%V9h>*rGRpSB%aW4vfnS3N1Dib;G>2??OywtW<&)Nz^(RoRw_uYl*eV|Twi^PPmrT| zC$rbni_1r*M&&ptOT*nL;pEg`usjX&y1d0f#dM3mz*NLt)|l6)%A}#ureP0g9Uucm zezqpd0+>Ew$5|O{=}ks&oHfk|lVMq}edlVjz@v#A7a(D44K<3Aia!=d2(XO zF(vv-RWIDma%rc>?J-kVuvdh8&e;y}^ha39NV-hT!bs{VUEl%TR^eijryC~V!B1cX z(aD*kc7R8)@0I;Y%T7 znLe&G4%{(Jn#_8c30ftORuKx_6D5d!*0 z2*&@W@bpw20+v`dhoD_9+|Tb38Rn9R0X#L07wBN;b#Mx{@ka!xIA>-}>wK;Fp;uKWD^*sT=UP#gr>Kam{#(=$?;LgZ3N zWp#cI#HcV94ybHi7M^SNrtcnh#R!9~&6!&O+)pTJ`CBv|-%|n^y)MO>1)De<^7imL zC#K3SZ8ouMlbAHAr?yI5Xj0LTN?+=EtRF7W@0+KG8z!MiZ+XKjR+yVtgYtIi)vUh* z>!6u!F^`+klIFep;R<2hs0RCZPP0d#yq%5yZmtM{<8$|v|1tiI0rdNs!k-WNR^_JKcHWwj8l z1z)DB?K*ezDepP%_$FQa%v)jn=%XZj281^>bQ#E*h`4^bZyiuB$Y-?R70FoxcO_H7 zb0baroUmnZg_z5AbX>8BaiLz_*jVpFuJBl81#+T3*RUPB8a)$SE>r|C*r5#=UF-Lk z{uYrfiK$2Q=98IxOSoJLB9mFnygG)hzq7YLI$e7P&ks>pv1aGT6preNRHpnDd4xfm``T8?V>S zGGKT0C&B7mWqw5P2#iJ;DG?^gQ{yM0F7BHd58YpM1)Ey9#BbQNThX|u>htHt+`#m1 z7egAAD9aFISy?kH?lr+C$!z|ONrrG4gP587x%2xtk*7} z2y@$rsILJUXf5~gaWlfo;yiM4KC;Pgqk6my*rYI8*q_Bzw$36XQ+Z6drLXlkI)+b(6H1RZ|1jRovqb2yr5Ug3Hu?8K_A~OQgc6qB1MEJ8rGXBp9oUHuG-F2L}r%hk5OHpo3v?t|U<@=QS-!avazQ zz>4qp;Di=>{j$w8C}A-Ay}7;mfy}{LD8g{+%XY|*efEotBKrrgVa#2Y%ZvTuRA=*v zW8bT&>}Ci4mY0){bzX-mLdYh!I|^f$0Z(E92!$LBAal$f59awGZO}V zjEFEBZNmMr_|>1>?pXZ-!i@=+5pFif8W-k3&*vIhA4zeh=%H6B1sW8#t=WBTT5t z#fdHt&oq2@(2#Im7=l*>BDxQ5L0jc`EM~Xz05UJmiTmKR3!d3e5zNgmpuW|ZUuAiKa+J_cgJm(+)H=V8XXf;HxYDvx%{ zipw?h6GYhwv(Ayd-szJ4eW}r5t_}82ItY;nfK2S{XOAB~1tGpf8924k@Zu+9`0ZwQ zueGF2!GIqM6N#&a8P+Qi3|{5No!_m{4R5ZvB{2Y)h}|&S0tP=v_I*@$`N^@dtLp^= z;>{nSLXL5bo=KCfWziQ9r$)4-WK-9MfZ1=|BwpoC08z02rrQ$Hs3RT%a)8fx;jM@( zn#cBN(m+7;OCD6Da?NA~Y1gk9yBiM%ibYm=yh!~mPZeA!Bg-2^9JE@tUQF}*1;CI( zDX&;@{5^-2^gS?+*6H^32eat`aekG8#|~M0n%uGg;pdy?(ZX`h%F>=1==7SxRWqBW zw3Viv&IDBh(yIq|N}!S=yQ;Hyh&!qhitzzxvt zS`S~4^96C4so>4VJgK}cws!UH$2Q*!2Idii+?{s><}Ja((< zZ-4%hxg(QFmWlB*BNMMUt$9C@^B#=1*B4rxx(k0u0A%n0`8h=YvP3*Qjq%zzD9ImL zKtMeZhz%CBEIfQOk#uOE8Fu_PICFxcZGx432}ayc-R-t>V_vx2Zz89?8o&R9OK3zD zc4Gf^SVdqV+m{yCxdC>S1XJ87t5dSu=cwtKkfzAhgn(V#o=?JEiwpN;?`^H|8l&A@ zDoj2P=##t0!ESijvz6An#*5$YsfWfT(w5s!*T5WEj8Z(O`c~u^>4740SS<}{)Ca(o z<=@&wDe-%XuQsp2BxXI3~ldHD$;AyV;$Vl-Vr5 zGL8*#MI(kW$!XCBo=t8rv-%~D*)eF@`8(m&7{I5NnmF4o6AS{$K7&Xwt4Vk3P*k8& z8xUDszf5|hvXQx|Ai))BLWh%3&ocBHU8=KIMg9#BOY!pkI~oU7yq?U4h>etOG=$B| zCScdHQQx-l?o%ZPStj<8|CYVItmYgA<4BblW&@^$R_#JuqrvQ}6A>FS_%gpnic?mrnC!3l>(gRc&2bhC^PUUPjW&_7uKrr_ir|OS7qHBQ z6(4cn7EDjGr}{mu5?B`F9KhhIkW9XYat@#rxvaVdAR~}icyhexerz&w%C+RWPv2%m+@s0r2#rJ3(kOqTB-A+ zuNYbH3BJKmb}*zm741h(277xC{Z%lQgQe6!RIa@+wY+#Giq4*n>Psa{0b^yq`@^V# zK)8e&<+m-+Iu(*YLsKfSN{m6mXqgaE3LQ*fZ^WpI!kX%7T1on4a&gGhh+A>fX9N2& zL9(mwZ8W7KyQje_Z;PIQNsZ(;->Nb`SRVzPJnXr7J~n;mmzotKlNpOOT0G+gb3hhF zl5Q!PY09o&k>MMk2*Z?>9{2m1_ZtQ1iIKkv9is%9!0$F!E_pe!3v0k`1=vrs9)zhy zw_B>){oo@sN~;}_ST`{^S=1acRQF?X`DBe@P0E0h`@COPYj#AmbrL9S;HfL(DLv_5 zz|iB_>84e2#I^wS+2A=e#2<{($} z=Qe+6?+PMtbes9v}w(K~XfD0XGOHY_?E3*0MvBr%GWQPN)>TcR2+nFcu zRG#ok4gL%v8N_}U5?0$8(`8B*P1^ThwBTuL6jzo_20qhT_Sq(nZ?$zVR9!U#T_d43 zIKsE+b1c4(^2nOjjawPu>x{MzbCu^iI1!@prttX~?e}buPXs;n+)2m4{E2MjBXw7v z@bzOjKcPBzntAs-qXbb>+JI7aO#7zb7!J%nJ@LqI%2u*Zu4y*icb`Ab`I*3etfZh% zE!Jo^*#~7;%%bJb8HNS+mHFU+eA`sHC&HCi^SY*%^^5=-Q!PLIH+%amix`*B{&zhQ z2KE0(3t$34xQq$BOP}|h!s<^aA>2_ILrIu=`xkp=x5cW8voeq_G`aEKuolF`!@>}r ziz0pAnKJcG^a|>GzV|(4Se~;qz%x`SHSO=k63UGpmw~P;uNwYm{ai44hg`<^Ifw7lAL(rO)J?|q`KOWf*C#!$8O5HBF51;vI(3OJX3g~R6_L_u)a@en z3m*n!jK~|sZ?D}B{Oo#)!OF2EPhYsfBvwB5`_cupM1Av?`Q-<5jH}{$<&%6ekIsd4 zf;$lTb~==&?#?~ODx^UjV!b;3;GCKb3Wa(fBy~9-Pwg7R9 z$)uik4fd@rHutV)v{oJbuxB7Bd$MBO+2#Luk9D>zkNHTasRHqGxRqP9bAuy8M0+?w zxomW-l+a?@E-go1B1jS`p(*AUtav98hWWG}rM89qoDZE6!@333^{hgH8@}h|F6Uap zFO9Kp%q=tbCj!qX2fdX5zvSO>%fBfL%wbA;ZxY&AemFwuF<7p_V$D1JsDwQ#x^CYM z+H@Gg>0F&}h9N%#>y*8CJ{F0#fcc>Fr!PoJnG4O0V1rA8oiULz6KXSPwc|bwiuPwA zGpWKGQrf96d&HeKp$m#eQ9>X00dAJp2r(v%@8b-hy{!QV{+}@49(EQRXa3Aqd3`08 ztKd(62&K=j7pA_RF>+fR%g!)Y66#)@5NZF$U6Hd$Y{4t$z`E6A^c|t%YzKALE7vbr z@!)CC&hRje?(lh_7SDD=;r@`AiD#j9R#nyJ>rWE=0^h;Hd znZd!H$YczHm@V%KucBy)SA+=Yi4Rk3*_Ve~I-K-Q@+(j$9`|zmCau{x3{u+Uc$%AE z=!Z@XG@)hA74qcEa~CeJ-Z;G75=F#3agN2Oe>~uz(x2GZP%SuHqfLD|w;2v*BYM*R zJafnQ+V*8Av|{@`b%ic;BhZIg-W=JN5{6rY)z<@y`y4+Y2W2wX0RXfHQUzJwiLI=m z{;J;;(dnSdJ%n%LZ7>oGRz0f+FEp6*qt+CMe$+F;NvD&-1IkC zm7HIfB0Dqmb*URFwZ-B?uH|fTj8AZ#p!BWM;sM?afxB1mD4_=%3GXoD@S{GYjakR= zGq$&xLCQ7;!>UCO*k)aOeyIg_s$J78R*8vOejLCWalyFW?-C_TWh)k>#d2`jeGYZ_ z6QXv0cbj=O+z31ibfwpZFXp}p=IpljeDPkbp>?6$xIKTlMkEAm`A&eCqfa$Ro6HcU zZukniK;h?=W)Q0h4)XT^fJMVSBtTeMK@n6a#=2BTZP5X8iz+9D!-L|{ya<$8C>;ea zV3Y|IKYz9bEyre$uM491wH*Jb&bnUlk4cpNnwVG;)&UG1WB2+6f0%p78(R^8G^wI= z+V60@P!~O4N%8caHyLt4bOPpxCK?%#{>Q$KZO(|_JaxH7w{1`vQD9BX4 zDU+|8cZHOz$u32ezm4B*FvM)%)5XE?H~emO=AwO9lPY{Pb%FK_$5GmWZ1#c zsZ~dgC4==f&*q~wk|Q>t2m3h$0S$=lU`&bpjO9y!YONwit0aM1UAwD#I%=p^jX# z7zt^ZAoe0%Ip*C@sG!cD34iEKvd~N0Yus|*vmZgD8^z$qRm5`y%r_R8xiYm2>m-EK znR%abun>1;Kl`(#nP#3XpI(Y#<>_N#r2lY!5xMlLsvZX+B?{_1`%mimh!L01onl8I zFn`DmK!8KOa}*64A8x+UQmS$s^X{&`G`i19I9F`q`%z6g-pShRJnW?Ba{l4_+4FrD zQl_J|$jgdsqFl|ZMT4)jOo`WuNY!x2@R$!k>>0E06#3n|K3Cv9-~0Qz@!LYg0Su#< z`a-1+^LEXuOULGm4cwvDKWD|XyCb?g+XiU%xw(e{2*@1B+KVM@$mtWw^RIQJ<*PJ# zCLZ*<5j5;5Z8x*byID7FZLJd`)mrnI8bv_vK^;NHxh` z8VZ~ST;-m?0EB5i?0C2%wC)e4685C0=rvHa;=&az6II*m0~-q5Y5t+XOIoH67iXc~ zrxmlZ+F2{vzlWtldkf)^U%rqHHKZ+eB9)s${d%*<%ntVp%qTw5)j&scJXhUV4Gjx; z_qJM$z(XT*Op<;))j2SQ^5ST za2HtEjjsa`Wi;Eosn8mE;ngB~!TEX?A~bRqQ;)AF3XpciRP?WppYdu3c|A&hz`=e5 zx)!tP9$K|`JC3rKYvuoR{;Ei*@819jkk9&k0XOJO&gWY`ssr=3l+9ug;;?L$6DV|G)}eK{Ze)g-;_%}RpN*{{Bz+lCl#ukuuUcF%Ti8C@8B%qi&! zQfbcKBJ0ax>hoRs$*qC_a7sr|zE2dqsQYb+l~K;*-1#=_n<1SanU)2S(Wm^U*U=eNo}mr86O~O83<)k zHntylMLmbGd~>m_1c?^af9tVR^*XvHpP$=lA7IX6NXiW`?(j=UjC|Vy_zeg`ep`3N zNZoVJlPSx@ZX&u^w4k=xnFBQZAE3;inZN?BQnz*_MbOIRpBv=*asQ(&4 z8btb~jmAS@_-+gMzQ&ki!v>IW=9Myke3iuC(^PyPtRPck*NLwjR%8 z+4iO8)a&cyWhsj~>+qP}KSecJf7(M|ty4HA9in?_Tk>wUt2c}3Hs9CfYGU$jw@4HJ z>#FnwVk39F&G|yRIklR3mfUUByMvtFOn#kWdQ77zTzFNPVa87|ip&ZA_&q$yjYZok z;v9A}qo7yD>fnHv!4&J3sN6(96&U}3e5TA@m?FW@YOw1kP(~p=w>VD;_heqv$c+8tQg`0oISV;FAtefL zRkN3Rt~0sWq|mkHSl%sHUso)YLS6gtdz>dnO1ltCUftYof$=H|D7*&UEKlA-*>Ko6 ze&@KV>$Q7&C=uEOYUOOoM|f#u22&;m)|vgxC#OkdIts#XdR@Au#dr7jAk*BHmDiIn zHlQm4Wl(e2AwOTe=&~hy0_-E_QdEM9sM$?109)>&k0}1AsO~Co5Gg<~vWQ|2THuH0 z4ThL4S-_hq;78uSvq|D0!29RE${*jGWkbC>m(33xS18}z-yjAJtEp8QWB@@6d>_K) zx1&gI$Q-t|wnYb?4n9*%!Sx2B{}?8H`2w+`DQ=ceFG8=He6Mg3?#Gm+zE12cr#?i^ z1xV}0PUECzeA(-8K`0A;7aGZQh(I<8?7MP8ETI-gUBhUAEw=INgm#MDm zr3twEujy(>HvKPzVdi{1@P?ZLv~ZH!waAblHQ)({t&%Pw6sg!~xpuBILC;lUtr2~k zw(p^ceCLxpvxox^IM#Ql(>Po2H#c-}PG)VA&$cYze94*bK3-!v41(F4a3N$t$oEBr z-@@9kIgfHDZk;iD= zhI!PWT;0oAg6ewG?8gPZ;nH@)kBw8!XG4)d>}v!%G4bR1O%GkH!`Pfom(Hw<$@{ei zMsj66hs*ny%IeXb7#B7^ash+rFPtMeltTSTtom0&glD*0^8(E!W`yW}-X6NjfY!UZ zd?8>ey$1eeR==+eqq5cd?|MfVus^44-9!XY)eK-{tlN{Aej`;pwG(JqhMH_xA$Mbi zf3)bGQqpT#KoXE>6JF7N0iTq3-Hg96uKBcitB>TncD*pEX~clt=f&Mjh)>q*!4_8i z{1J6W19sdvoumHpfrm>gS2X7i!{)hS|86O?yS1C-$9_flLzfEXjdVoocUhH_xqHV+ zy>6iQ2a_h%3lu>IGpYuWCHL;ywL)mL__;HD``90D2*x!z-CnqbNXCgWp<*|Px>*wC zCCru8WuM1Hr+8O^X(esTbW5z$#mB??3e7NxaR;oS)iSSI3(;{h`4w z3n+&ji*gs;k4CdZJKbnzo&KHH@6$2e?vgpJ8|2x#jN7&%URdJ;jr_plmI7>kkH9Us z7=B0$XPyk->za*{YfWke)@ycL7!n-%KV?UOoddW}7r4FV;Y_ucDUD?9_DN&E1M7LBpwuHS_ebuv zBP|UmLvFblbHaxnTGTvwpAEE%-9U3XIs^JXoAnC^`(SjJqyTtKL^2e|wirDdL1$MZ_E!ewin!Q3RCKg2DqoCY^-FFTb; z|ET!M>eT8=GgInjMJQp#Dn3V|ZXlBdAoS~WdEV!Q8vVlj_!7*H8+TXgkOyFRocoe@ zA^Ht>e?)i2GPt7Gl~A|CN7Ypdy*Y`k(*n`nOG5eZiOsKp$+u1Cdvs-IU$6Dwp+IIp z4rc)bfCmHpr}NBg*Q3?JcH4G@h_QG^WhoKOuLWosz#{yJ{L7bEk-!n*XUnEaJTj5A z2MFS9mvO&j2CbCuqGsbdyJ#C$l3I&NJ&pBdNr-@^D)DX4X3lDN=V%bJ3ZN`adn1H= z;TPW~%&|F(cC-^+q{HO#9ixoM%=eqz;NpXhuI5sVt4np|S%=mWN(phV2v}BJwB6cr z-|0v-CQ#EEPCev}IcNTA&hc((RE_PW9Cvg;ZLJcq}PzPBpxYFX_)nqs3$rG#FU z{0%b&c&4#bgZB4pvKe0io`w-L>;Nr_O9;l%^xDc1(PpburH10x_Gold%;0$AKB!sy zy|25gM%6nN%=4IY!R2hQPo1n-g~~-Q1s_z7=ozSVKhrQF+~wi>$*Zs$YUtO{$;uUC zX3aYqX!Prqt9_9wmcVHW@hCa;@#R_PM#}0X7n_}a>m_4Ov7uKeLkB#N2hLj)pX6~h zhy~n>=hP}6CO59#1ME@70+_;#EKs)Je%igcx-8TK@mIayCuH~pSkK!e%6aTON#g9W z&)Hmpd2F>#sD+iED@Upf1jesV@>g{%^Il=E!Q*f_7Wp;jqD+NKtqtB8w6EJIo-_Q% zffFqnfrizGpWpgU%#AvrK(|sivr((b@7ml^v)nv06LMgxj+%EwwjllyuC87&BhGx* zqG+XVf5dJ6Q9Dc(06R?U%rl{Vys~Bg(#rD{?>}7}NMGPmB<03h{GdXef{4#qRn^^0u`QR?CaXK^ zARV^7*hbk=e6Fv4YR+^@!y(~?T!q>`+jYDS3ZHX#VA&F_-4i{VOa3za^DA$s*^JBT z4aoFJb(vo3)G)_p^^hfUL7`}uv3$|uNxw{%R*poNCSO8r#u8zFOuq3G)N^F$`5vXU z<*c5vVx^}mgbbbGuU{8{paYC0^{h6gsXOa)h20Ex+!O67SNBIhZpG2YUK_QT3F4)_ zJ~~l@i!bK)ZRIel5=2UdR=tS7VktHPFYc?>a3^%V$2P^ch`WE4j7Y z1fzXC?zdZ(@0K4Plc`J&&y@_e;OVH=?JEX5h8izO#BP+P5T4=DMA&}wzbnrHG4f$6 zBJ!bko*IDtMsP_vS`yZsx8pQrKB5b#^8;=|F8ID1871bpzt%O0S?~%v+ZRpOQn`9d zRDQu%W2;q0YrhIwc+H7hJ9dt7q_6MiUiA`Vid^lzKdv<2R<7Pv06#%BdUs)OHoe2u ze!eYqAg+L6AHRS7?sNxno{~+SsD1!r$7Xzm3+(Gu#$Ca-A?NbmD9&7{y+4B~k4Ohn zu35M|iD&v}-J*JErWguXG<0x7W!3;BnRq0B{>_#b&&(ldJ{f+=xM`TJ(sVo7 z3yT^yt@M&-BbFFhP5$Ap>xB5wA4d3unQT2h)cd3*P=$rn7x{rmK%Ik~+o!}Wd~#PGhxODNsuTRuSe+vh z)^1J7o@o5N_x8l9BOAZ1H4$IiKJhKCo;9YCUv4a_*eV+(0lxmpv?$+v6tohk_AOW( z5faeJ_t&?=Uuhn5@meq59Qk-xaH`wNGwX;xUYXN5x`QTGJ2vNh@or0W+Hnhf-rdaB z{XA3EaV1->MxTh7kTP96YqJ(l)m~vX1Z?&<$2y%QzM8r3b->`9NU-nN(XQ5Qb&;1Y zM`U^Le_)$J4w_WI-E{9{o^YcDG))?o7?)5!7k}|H0!6-CQ2wYu%X}^u?idSg7W!f> z^2Dzu@&_huWN5{$L=k)B0egv_-hseS3a=q1&5EzZIeu;4tKge1VjTn&lM8XwwTH{TI@a5e>?j$t>z6XYdIU&Z?RF z)G$j@NxA1tZCW}`4IgwN)ZlFZ6p`Pk9&E23tG1Ej{qpkn^mvDiOz>XUw7T;yeYN-w zw5Zf{)Qi|&=eO&>lnA1O8Q$j&K%xaLKkhMVWR!@_(3~LMJQYcVn8IzqwyH0h}go4!ki13Vf zdXM#8%7WIhMrRcICt&GwPkNo<-@buLTq~TOMW^~5zi4kwTNy?IZ3Waaee~WTTEuh1 z;@34Id^O(pcBDdH4eP%5>l2bKzTi6uUzQlDK+~JwVnkgbxsVuZ&6Ou^Rx{byrdy`h zxuWdlnyeE{Nk8gU(G(bH2QLEmdEO&RzDZz39cy{|#u_wQZDLg7(@W{B_1dYcz!e+O zw_6dTGQlt~LnIZI2%4brGf%Bv7jr|T9S|M-C>-31Oojqf<{|^MVh=&cu+cv#m`~MS z-rY8r@;IuN-JTOxqeHn?Q!|T18|BAs4l1}n3(G7j8X|sVDOQ6N(Tr@#zI zNe4nB4CVM(s1Wd)5rn_kpKq@}5E zmhR7AwZ`U5RhbUpXO4Xiepl3aT>pgZH>Z(Ch}q_;+mc&rYf9ENn)$mmt6PirS3i?M zscnu#+5Uf9zodO9s}m3{LQ-6{$Um_VF~4cj$obSh=gj~7OGshe#iXGlO1FC#SWrAI z^TbYF)3rA?^eKMgEw?VUIW4cgRxwO239zw64o~2o3|uwo#>Ml~u+1wUytLPA7>V?3 zdJ{=c%g+6AsAJ8vz%|4%`058&jz>z4?@p${51nEKI)`Adj#YF(i(Q-!9>?Yd*8nGr zzkIE1CPkc?Fny2wO1oL$wV|*y~Ytys(71|%StFqs%jeg|7V zG@taeGC9Z74d7uhk1jOC)Tj83&FYstRhfM}UOZUmGww3AetY5DTlgHg)4s&=j6`li z8sA>R+Hv+1t0*7Bpkk3K{b`0Tqmhr2M$G+G0xNPR9&xJ~DVkAHpTK5b!}#f7VJeu( zGV*y9&@+2YsVCHhC?p7@fjSuVANl8Qc^=O5nE3f@1*pLuAoA5mNnoh6e3T)+Y@pNd z_zkxx8yOl0*ydJ+PW+4^LtDGRk*A6L zOTI98qU0@||6ye_zI#;u3B7p8y4T2eAh=<8)sApl{6ZH?bh}!+-Fq>i4CGX8S===K zjcJ&%UydSFYWE4Rx!VS%!HYNi!c3oEOfLjM-3<}jiGg<4PnFdStL?=pub^_Jxcr1f zlpq|ZuG^2BLirEB(Dvm~y)Fu}9ujz>Yg84~zb^5W&$5G_j%h?LHhO$6t}t^>3yD!V z4F7m`G8bIOCG)skkf1Y*<@&Y5vsC(G1=FN*Ed=LrcHCZHfT=R}KTM#o4dB-JkMD-8 zG&ms2O|2Jp{hCsWen>)?pC9Y$yDg9oH8_uI41UT1>CPBm@rJ&vvmj=0if|0dkOD0P z<#sKx*wt%dP1-#UL)tfLs~tCI%>*a#zHj{3vAw`qX!_((-TmmNO>FXg6N~TXD+B`} z)&I^O|FP*0n?2ZA*LU}d2y-Qc-U5aVM|j=yLpR%wA5x9X51SQ6pdwSm;Oh&BN+8>2F>Gto#YV8&UO8G>m|H3fFqq3T2hsK%ZP|l;<HO&o>0fQSSXI;ME&5sCZC+1jFusNY@` zOPu#ZEC_gwrdlk1NMEowZ;mnZR4_bTX=^&bJ*m4M9BZKN{%SuSC^JCIso&&|WGW;R zJ|&Xy|GWh$+_G$?-?IEJk0ma^tqZr^0w|=porT!kPJ0n1<~--Fa=yyGDfP@(WJh)=Y-?-xjHG7xL;w=z@JCe-h8IrwQ~ zRqWKc8JPe!RQv=bvkXdLyg#`lk42dE<*Te2;UZv}?(jf|%kMJvs)jAnDGpp7< z`fiIlfVh+>W@Q5_5Dm-24$Fma3c2pIu|Eppf$4tgtGS$gNS`(7|CXNJVO;FlrhOKA z)Ks~syVbME>6>La%3j1W*X?08>--w7dZ(JeoW%^G0--&mf!P)(l#@MC6?oWom-bK= zG8O=*ullLGEaa|sa2Jya8KWJwj)(BcQ(Qz6jkHvLF6rS5bWDreVQf-+G)N85EY}fC zHT~TDyE=tF9d=3S*R6b=$&SMTqHI0l%Kx2VPw%6nGXa71U~f>qW)0d1+RwOR)SN() zhu`TNf|66>NXBE8{RTt0BeIK^*v=-N2+ywRI-VTd0pL3K-a3pkPTg>IIWQNF$p(+` zd(pthbGX8I)=|(oHNL#FOX9~rS!(k(-D4S#Vu+QSkKYyvp03ZV=+y-8#__Ry3i%q# z3}>i@qX)l1mJ6Em6(OopFDI;$TrruLaqM5KT1xv%pdV(w7z}EyfMA^g9=_*5oMW~~ zk!FqrZ`r-6%a15PG1o`wEVH0F#|5fCsZzj$(O7>uPGLq6QI1FKj>oIiZ$?`$ZCZoxCW5sri!2KzE=l;HucSJrf<%_X~(PJ@?kFU$&dnWt_`CNd%U6GhHD*m&o&#W&@8Kj@N!#qfUn*AkFaC8pF-27ES{No{UoBE_a4yrT zCZ2i_UC57P&ue)pdEi|cRLFba&GO_W2kJLo(d3=Y?7iL#B}&%2V*#aIj^Cl4i(J*9 zEVj^Ru$G*Zf@PDL({GRt){$15E&0HGpNim}p@nL;<SK2O@obd6l<5PV(1#e_=GGUvjCl zsJ~Y8nRBG$vtwOF386dg4(p(Kqt2@(p>6^Q6Ea{YzM_&fGiS;>tG8k8ZIyVE5#RVs zvHa$LMgD&vEvh5PuMr0X1goieC@;u5Ew{PaJ6x@E70?=gT7)IN>vvqb(X)OiHG=E7 z&UV%>a3^_hoUlagZ@n#GM4`oZEMq|r0yCHECodO}Ge51e3>yx?2|9PdML~`5bHhcp z42Dl;CbO>idvo1F4H?~cx(Vbnu4x})NR!>EpB-_3ZvRGaq%1oJY2t3#UhA*#mmqB8Qi2SBjI13MU>K=8l}*V)0VjkwX`#1XXRM`r z8UY*kaY1{0|HJW!Oo@_=NQoSLdVU*ZZRNZ%M7iPRA|6=4;k{>7=ZQ6`M9$mvi@&>n z(jOeYJZZQN&bGFA-9?n54OIO{tgGl&)46474VTYvOb&yoZ><^0fN7$MWglCo;R~&9 z;>QyoyWfuv&+5zL%#|+zLiHztWwUL&$KJg+Gnw(i*4_~>^A~MbeuZiA&;?^OY^B-a zrhCAvH#~THjy#4FWV0Q{MxVdfMTnWWB-0S#((Z8@1)b(6jNK|f!EQ|~?t8I9*2R&Y zJ8m{Uw~4tpn3lKEV3}%W+*}c^YddSvaCT864tULgmGC;yU9VK-FB#z1>2iUaaleQ5 zfG=KKxeBF2LY$^*zL|+s#EQC2edRhpTG=2LSI3h`gHx+|*9~TYnW)xm>hi5*+@U!7 zpt|u^+%b&@w#O%4u01~+Ty)N_Ys7cRzlq9Me=>CAPjEIxuJr zTrGDCF{Z$SFVXCKav?y&B1}LBN+)%vXiQ5!BdYBG%gYzFWXq>YA+O1-89#TY+FjJJ zrcp^*b^A)VUeQmC+-=$~tArVv<90ALw5oYz--$ZMS1$=N24GK7H_YxihtiwqZ~eC8 zSa$a5ZmJ3>u#xM$gIDvLi`q?pF zrA_S>E3zE@!Z%-f?YP3O_ES2Cn5cL^hmcV^hL*DSD z`V}DrJlm$*v#u#P<2MMWGu^?ZLOw0p*XRrlM?WiK=J@9-6-+qGcHH9S#C|2rn@g6$ zGW1?qR;Ix>WvW;jXCZOwiv+jD-JmUUbGrC%S5oQT_AdR@3S4rqzX!R+)xG$x(ddU9 zA-xk#gXTnME=#T-_Iqf+lRziqSIaGfR0;hHDF-{vASw7MjxWr+%X7%d-=KJ~Yr11{ z)b*pA5N70>R1cU&>vRLK$JTC831)Ww_D3g;i}@9c#vb>2INO%?{u@l2+~6Y?uLmA! z(`drz!T(d9ji!JjE@Z}~c8V;qbo_h*ltMqLeI;xYuk zdviQ$)8-jZ6jP-F*pr6d<^Ft-(qQzUMJJy~^~3KaR^VK{`t$B3l>;?{XAWd@uU*p} zH1y)^;W`yE)_Fi~q}~H?!^dF&;UN5~GU`R*iD z9~@BsI{C94xwrHIqwEe7sH4yJf1z;`%`10K5mTcHhqJ#pnC}J6PtDf(6}x(EvZFB- z172F!cHUj)3BGyB#7RbVO7Xp-!d5w9aj`WqvRCdkA_jSsU9W- zmM=Qn%ldr2$P8Wn=4S@+>DuJQLniQJJG1IBbaMp{~^o4RO>)CJ)`X>fSeu^um>AK zE4nvMtNCA};b5xheDKfm81xsC&~d9OxcW?&J@&$CQiA&4xLCo6i;Jf|G+zo8RC<~f#_P)h&iq%D1_1%)K! z)J;DkdzCU+{w0bMyC=6o(h5VYq*#i`i-!1ldNC<1<&G!V;XFeS-DTFHM-v?l;Q2qr zgT)3chvVBxT~o+mSO)zzA+}QAA0}*C!Upbk?oI6!sk7m_wKnvv9%9*hOB7ANc{6v* zE9XTSTXp5QV&Buk7^O6rJi-_&49@Np4{`nS9A&>t$_YY*ZC=;CkCb2=0D-GSzObsg zUa6*r^$0Vj2;#62?n9pmKAcd4{y7=gRr?9j9fjq6T%^I0E#4;uoyD1Jd}Ol%V%QLY z=!*mrfIF%N7`sW^5U;gt&a4ps2W^$b;LiJ^x9OyqR`?OPadMj_Lhcdx5Fu<*dfo1_ z#Me-Os`)0Y@7>?=;jqWpuO5-F{1*}W9s^_4VXCzCktx;nc4DV7yFNF_E;0G@30l}?b-h8$ zF5_U*P_@)7LlMQ8=XhCFO;?r-NQ;YORv4W*1Rlej4R(gL)O$^dAvbcTq?;%Zhrgo9kAIZrx)mFa zNgP(N(!HdyWy0}d%Fnd=owSB>xatJ3kvN1jqNF`TIJ8Q@0UVh;M=>;7Yev`JD6KDF zOyhTL-}OHqRy49xp2~Rh>l;^AHnSFCPV(LlO-{s9C-SFc;uNlLv^$O>2e3}O zCI1xPg_Vs89IjiHNpA|{j06-m#f`rRzs)xRF#?^%Yjcwn=}RZ_|Gv$cyqG$5r^IdS z!xAazX03+>lqL=sPnqw0DnxI(2d%tSdP)XfFJ`A}?6@T6{>~J3C{6{#3c0Fj*C0e7 zmwW#G%9Igu_Eb3@W+Y`8-`&4P%|urasTF@2|0-|3?b1bYlYB4gktl5*x$B!4S$a&% zR`F_{IL8@!d>R}VrMHH0Wg}smbH60B(;I)LH_IH;wE)bZY%pV|!ZjXxJ8`mVpNluh zt&G+L%^VKZjN$00FcKS9;0F_H=15_M)zgK zaTL6E(ppx%D3t0tPHWShTM{gO08>|{N(Ck+DAqi9fHPqM1Be90Z1tO1#=9jfzLeLo z7{q~2OLK2>>W?NzknK%N{Yr2tka?yk;?DE40om)wO&L}=J&9}*cE30i#`C>IyQ^xLa zwz8hDy5mo|9v%yVVsfHacq3#g^}}Zzfe#7AJR?zn&#&aOF-Jq#p*e}GK1>C{cX$`i zpvEhyqB&%m1Y6>qwh?llwut?kjqy>}Ntz_C^kBk{fyo}?vn2jHDd9<#n2l_7Myd1r zylN$NgLq4)9{hL8nne|58S2nVTGW)pk2vqP z*hRd<;&{J#kBnZ28IBOt`n} zQeq#aP1Lwl5)!TN`+YS_^l`whE?ub)x1TB83bmP9TJqc%$mM1Cm`=oP@JYLAxTRRF zqSYr?jt}@YJbyMmExI@9kv4J{D-CT-%Nscvl$OW7J1($-FfaseW`Rls-80o`a;5uF zPF{@3MjHHKCD_@&1#HwBYz#OYe)WhvS$reZ37Pq6*sQAowtjlcNpl;rF82*YZA$wd zZM4io$Men6GD1zilD>8*W?4c>it#jG$xTIIum;Z5-fX=WQWRJM+oC%k`moD8YJaRISS=Hy^e(}}FJf;y_rG!%SzM%<)_r*Y@R*KXG(QRE+mVM2cxORoT z%uyCXr-#(y7~LgBGyqj&@GiF3^=DOyA#uca7<=NoC&=%*9hW4{WHc%>%FXjPDFj2; z_UrlD)jmgWkm?B){x8JNo@WnAxs+^aD07X#vEx->^n^3jOKCEB)WcsfLT@cJ~-BT#SatdpYFI{x64yhN#s?< zC#6`|?7nNIYn;ptg4o&wZ2itm#7QPeH5(LXY0 zEpdaPQmO_vs<7-sjeWs~60^47K!HrrA@B{iP*f2KbeTDADcDtZcYaeM`%(%A*9mZn z`HMdn3w4(1TBJaylZzoCpH+7K7p>Ce`ZScI<3C^8_dxxPsl@#4XG0xI`6W!Q@%%5P^w-A43lA;W#y6e$t z_I}Xzh{nrZV4W;Fz^UU@#bLFplOg#2R2~rWgrlQ(61qNN%)`xVRGh+*BgJg*t&hB{ z@!6-HL;*PJlE3(1@BYN|#T*VB870n6Ce~GlSpJwP9B3#iD>KZwn@sHdX!VtVh?V5L zDPyQD1bU1AH|~2sY4!!YrPbIWi{Zoc440R-Tw*JLtM2qQzrvT>=y2AH=MYU`rMGN> z^SwzM^Bl9{e9^V6P5Aibjap zAnQKrN`yz*P#nudd+eAAW4bzK>=hbh61maJp!xh5z4_$NlCswG^e-WG;JjSWWg}*& zOULpSWat*^AhiKh$miR(zL>>gOqRkzr+kI0|JhA7vt#75DUJ>$njI!MgfV1EX^ss5 z*h&?mn1B6&LSp^0)XRI7$JUh1;(p~>WSru!(`>mR#RR6}{Fg!Gm|nSoC#8b(&@(?w zdkV^8SkmL|Zr-9Iu{31li$Hy@v_Cc)KzZQaGW-8tBa~>q1P%$R&L8{wL*rP>3LQ<1 zH>&X?B+F4HxB+?L-aF4jk{|#0aa_NlLJjxV#(ilj*=G_3+;CAu0nJBk9oKoLD)oZ% z?|OyYen7MiZ}%khXPAty03;C>^gQ>Z+p&FdqIjDk$)ymjON~WpPj#__f^y1{ulMiM zAXD;Q03}X9))&2F+Q+ZW!`2A5?4Twd63g;@(#}_b3A$Bl(`?4AxW+O#9+qy*A|jL4 zkIt)I%YK&!o|YP*ulmXEfXH;~VZPB-3SLjiU$pTZ(`x#w)a+@yj2tVQ%lCCxJs)#M zB`GSeM8?TDWW|jl++mv2pkMEE^odl&w$@DPkh^3V49Zm4*u+tU>bUIa(6W0p01dB5 zj0!8LpU6-Q7g0(wh-k%^vCO5RklG|d98bsoY8BPaG=BsDKup3Leo3*(gQrXwDKkI2 zUo|n{V)Wc5>JA2qo4KR(YpsTEUOsdTmCc28hTkuaMTl~O9dX)EaxCbf&-Tz6-^cX= zvGQ0}Rp`VSnIs4`NR6(>09!Di z#|Y$B*Y)N*-=&;J{h-Km45MeKk4jh=58MbfPCgxvaDf=lkJV$TX$$FFP+ZGRyGVm1((deW{OhgIh8AbvrfRtZ|B3MbuJ zGV_lIdB{KlgXFA+-cY;G=`^CQCtJR}XKT-pCC&GJK8 zE18Sy9<{*g;@4)b@OR#=RbLFfHjRWf{P?u@Lw-oxG~2fB?8wqR|kvv=R~)KCTo5O zAh_FV#EfEFc0v!fbPXA6EcI}AS;mYh2=hY&n6CVME4{14B}%1mH9ma<*-tHqIoeLl z$A>Z{b^n9agI%7XrHgapl_*g$av8n)!p~uvzo5_8wiY~$onl9@poV)pKwpO^^%-`g ztf}hdi_7zj;s164Y`^1%dqCB=JML%n<_3``9_bz%=2X04nfao1p1xkf)o=HW8q609 z{W|})9WH4#+8-0R36$4{xw5ZbEDxo_j?UD?`imzHcf{?gHxG|B~sxDq;0@SYzgFaa7 zts35qzh5o-^^LkEB%o&y*Nv=KD*uZdrpM|nZ5ak!;p5`B*EWaT%jewizE_}W*)P|* znA|CGYXnGrXo@+~@0+45v*ijKG%A8;J_M{V&wwfHiXsx2SQ zoAp6ft=Y%l_G*gVIP?e|MBtXnZ!GOzG516N<=^xW zv@QBq<|G!fp_m!mmN6hd%;37n9M&{_+_aE?Cqp^hzn)-MOk$2-QSAaOf|%(svse6BeRV~@p}Mv4Vj!Sc@8@QTgT6yc~F z83S9iB@)CoU$Zn2VXYcX+g9UDTYOi8c4{3#D!ztA>>?e*t3sN%^W%!A!Bp*jq&#)+ z*f1n{AW1F|bO87JC1UT0<+0|T?|=Pw&_WIkM~Wy->v$jfyyAO#0y6il3G1x?<=}<6 zT^7Up=Yp9uAmQ-l{#(ojDNq7Gh+cFZ8$y^&<0X=R^Q`FNb3J!GJwG3qMrOEcoW@iN zS2iw3&e~sz!5~|D+V(=X6Bqbt#dk+@_J^wJ8!$DlYLcpWned%lZpHN&hdvK=%IQid zy}2vk4$nryXdvkJB&RynY5r7(JR2}m`K6VZP@d!kjYyo&FK>C5th{f$^$zJ$ZrkV_4X^^e41;}t99EYU=T_yjYknYUQ7eJK?8NgD)M_#OfTt+Zl)Skk&O zhO3YL#N?TWc&ilA8b1Yvy-Wbd&7n?HMmHwXYa((EW@{`SXQ+SKSA_pA5Uj|{{%@h( zj?XTv=1lSlOhmyyR9=E3?hvJ@S>4kRt zhrT}pwvwD*L!|RMAve`Q1W#88?_@z&FwztIw|gJWB@<^nvLB+}_4V^GCCSgP1ftklW}6K|1yV z!V|s}VDzF&`ZntEl}m?7GfQxe!w{{KVVqKhe)oBv7^WWU`NZ1?Jt4De^tZ&3O{y?Q zwX$Do+l?y^h=SZr{M{}t_dNn%3R5<;KIjebk=f`y!9QraY1qY6(gS88i>NeI6Eiu2ychQZeiCXU|NJr1 z!tiU}Ny}zJ-;vCoBo2|dG+cCRdqS*a$_+Zi+WtWvzIe3DuY^QzF+G(QEC)ds7rkfjKvq5qo|Jd1a8+Dl9`J=aZHJ1Nq} z+JBjg`qDIUmRA%Isw)RZ5u!U@yw~QIMcxT7h}Gm!zvbmb)r5R!Ad`Gzkb<-Nt2u3O zf{Z$+3|iHCG4_037^kXbi)?80VajvoL^L>sO6(`GSbM60~t z^D{}lTri)7%=E{V0Cd0~$3JO$)=S*}?yE9V!`w(Bt{I3qmS!=8hJ}0|x7SxgpMo2B z1-VKRz?`NsN}0B~!rh+98$AH(MsF~Qd{5OiN2pucTJ~!guqO}I>ionmsGVX(Gdf0@yqP>e8);&Kk-07M|&?fsbjVw`W&MXh0_(rtG9Hxtgc z<3Zx^%0H9&P1Y~~ZxZcq$QH)KL1g5>DY9=j)$ECePfF453PVNK#7H=T#vbm(d`NyH zlNhyzQ!<yNf}NpL_nx`L>d`h^$WNQj&kYSjttSG``vo@ro~B zY*e7P{hGFyL{vulSNoH_=rA`%a;Cf(4U(V2fV7W zn(oTd_cwWQE2g52x{7~=^20JP@Zv#|31|LXKUeRj#e$G;)R&LUg>1_malyb*-ysPO z3{;@;MY%xr-R!X1nayHqvg}Uc=PK_yUTG_5v3_g+;Z&h`2aW{+=fF8ANdKpiIkN=IEu}w;Nf9~CcjWM#ARgF zv+sxYaLT*B=!o@fiQ0cu-0zsHrTgaNL~_82=Z4{34!JL;J2>iZ&YptynXSfUN^+j* zT?M_6R@7*Fcu?0s&cZC^Ax6#M~dct02MM@ee(}~^J<-`H~qE_^7 z8QlUW$*${#d{R-r8VMluj^eg>6v=-Y-GU;9{K9w~#O61Ud9goktBU#RKSjC|J}+zG z9`hwp@G;lT#f{n##E0}nqm#B=r;>ywxszn3-LlMz7Ar9it2{h>cXHyNji&C1J{lQ6 z?|R!$d({YmftEEnrC%50>`|LxtD2kRWh#E@Eae;1B>v6b0^2nC-UXzyk&q`4|I=ZK z=D~=bh0AQq8wfw?C}e^#oiPO_I>3Y@Xp3<^23{_r+mtddUUgUzyGCj5!E9E}YaMnU z=5(VB(^PMDZMpX9^^2Ry|4A4C8-rM*F4{_m#BbkzJe#a@SOZ8sTAWy8LT?sTXAue# zrE`KQzt6|8s&Q~|)bzNWId~~elct)C&aF~h?G~6mWikAzEp#pS&}l3~JAq}Zr0`U{ zC3(TMpZHLuTJbq?aMTsaPJcXqc&1oEX?e(^M*m`RenMm4`RL&*F`AtC*}1}=SX`(y zi8OplBL}mhozRl&Q~0a%ZAXozCnEJ%J=>Ege6zLt z6FYcMmZ`%~%d{u_|H>Bbe@@z-O*#Gjay*g0@y)M;bNC{I601&$27@oZX$?NLUD`DT zh1JQY6KaXEjDhc{h4AdON52gky}-hcLn@ONdTu}<WIH|=3pv7FK zdH6_GV`b*b87miBU{>C@)IEtbj0rx! z_+QgY5UQavP&NX?ync^6MvWZi92++c&mN$hBmG{joX-lqu%u+%$oo%6$Afq2xgmWi zq5mG|5rTZt05rAon|ie(udkzcghi2XTPgiI1}mNjy+Lf_(_*2Lwzk^o`fD3U$duU^ zUGWK21~b$Gc4_Pu6kNVApSn}!F_@&WuM)#gJ>(NYCL*Vx^9_)z{r9sCcEImwzXm*M z8#w}+%YJp7*m$e6;BQQ!?=h`>xuu2Bjm1(jY%KdeFu- z8WR=lz4w%zbhbzi($DpR;`;GFtUa`v=q8h-99I9V)HH~p;t`B_5}Sar{cXCLjB*&U zQkjXNawZXm+6OaoSe#kK#z!?|79E2GC4pW{;1DL<8{oOM9bV=geUOhNixYJoz{V1P z>w1XZ8X9+ASJH=!x)il*S-J|bI@}}^4bgso*CwvBJ;mvfBbmw! z=l>k5oht2ro(v1N92m^pNULbndio7&jn8T>hUdynkYhVmKS%2(h(oT2D^kK-=|4?Z zZ>P5{Pm>O!^`68qgYBm`zP8-`s=|LhW)Wg^Lk}HS?nm2trBF1{RmrTf)cB#X(oeb` z<7M>&ndJe=yL(1L3!6QCYR0+V8Qq|(dRfyZc8-@WdVxH?a?n<+CrY@LGSIjsM6OVZ_+2kZZcB)Fet6mYyG8e{6Zz?|SlI^R6 zN9Kqw=loQ7h7GeXvzjv2pzb%qAr(h6W*O^!>d3sj^(oA6luaulmzj{|Ae*S>?7cj>EjB%yN708XXTQIaiv231uS?z;GtB;30aDT?vv*=O~0nz&!BbHct2 ztWW{HD~55@b>L)bNz96O-Ye7r>+!+$U8(+0vvcvGRzW`?w4k=iBn&*ceu-jJoma4Hg1Z;4lUVkM&2NE+3^IT#AY$h+oiBl-#vG>-f zd1&w#`#caqdAc7ku0l6aV(Hp!b9dhQ1m2ibc@BZ&=0ZrF8#68dHk`Wl>i^4C^C$FW z#vEhAU*ZF4t%B7Wu`d-h0#~?Z;tZ*hnHxVwpaaOrryLU1i=j&L@6`$JVwaOJYWSzbun&J!4qCju9knkzrGp~>YmTE z$+e4)jz&7O_QG%|aCp7!oaqL`38QiT{2FdfW@%CLu;N$wg=4)&6L82)?csS_WI>zs zS?RvokW(UJa6NEQO{Qra)A!q)e~0$qd-`!2L7WGxw76&v>tC;3H8|~=XV2vEcDxAd zWHlr@iWNZsHo%LWWw}^js zt~>MZ-OV^1s9~5zIqBWCfhTG@`TB$4=mBD8dJ~)nw!$Y8pf?Omn+*6K_kQ9%h(B25 zedq%}j>+7Jg`388Jjn0n(DK85iw==5bOn~?dm76#1`eskip(~2{_?oMi%bYfEOraJ zY&oO6&fZ|e!~aKq>5!K}`nhdwG`-Pve@!v{bteq?cYP9AE)Q>!oBR;RN|Rum9mK5~ z9E|8Jt=gEOv+IQzoh8b|MfKFTmj_w$v2Uq4Xv4)xw_Y3c2bYm|oiWXaqYl%BVS1JY2O^qyIW2$=ie6ryYUGD}B zAVk~pN#NhI?C!KX^Di`12p4643<}(H!eZl0K)%U=>!CW3!7kRYQ*Pild4YEYw6)@W zWp4;r)$OssZCfs;-+#BDyl@&dv$B#!vZ0+pg&ngF&4jh`Y^sRxOuq1&ng!{874G>> z)N)F1w>TuTJFyLVs9qwjG?uER&pu`K>iBj`e}Ni+(#UxTCLbXJ1ggnlXw2U7-iAm$ zm|?rA`7e8GTb!Jkc6OZ&^IdHw$}S|aD4Gf&OwH(@kICX(RPdVpjG#Y`{zAU->Jewe zjM(~MrcURDLYdoS6}wAH2xZXtlR*+WM}VHdVmgHy75X34{(>V}YWnqAw+5LH;Di9B z+}r}sM=11Rtn(x|#i7_NU%EF;d^;p$jJURHEamZE3G-<+rSVXAWAN1l`$Y}`HhoIo zU$cKC67Y8XvI__i;zsc`%tVX5r%V-1W9wW9K z8eh3xE}CDdve6_T{Uaq#^oj!bH)<-Yz7OtW+@)nnsUbX5%&%GJA4D5-&XaSV-SRvB zIYIpt=#&>QGHEh?bUaa3W0a5~*z2blK_WFAv`Fx8>@bi&CG24%QpOu;apf$&Hm+SF z)vF68C3@U!Binl{HG8-*)OeDAB#VM~oo~ozUjMjwsa*Dx>+vvf$bX9tbn>J^zfE$C z+i*5flw{^?r`aNE?fhlUJ*5`cHiy@vRBNP*DtYB_Z7KVoDB4UURO8VK#arI+d_Nn7PEo~MR z?OZYs(rQTT8j;{GVNwVEZ_xig{&@catfl7n#@%{fRi5Ct+Y~DCetzhzTRFv|Q~qrT zk?m_YTaq5f@_xHStK9!O&f6M|NTY0Bq0>n{;S(DRh2r77Al;?>L($QDIgWOm zu#zX@fvjXLfL(vy;=cnL>^@>=S-89k8p~Y{y}DA+H#(M_R*6C*V$9 zN(Z;EWu7qL3E3e-qyUVhP6~lIlm58-r9afhtxKZ{1Pm5$g#@RDlE-dxPymk>_GO&( z4A=+dpg6EUnA(7TI9)TLr#x0ezkHvkQtKVkJqPoN!G(Ul=6#s-^^&{SjJ_elCNI#d zXH@9x#N(#ihrBA>QuI8zQQd_4yI|SzlrfqQ#i?#99g&*(_D}uwIn<<2N`1lZPe8$+ zp>Ksfk-{o#N?ngze-~iaBYJOuR#B;83sFdCAWlbW7|qv0tw3;gcgyv2n}%O#FD*#! z#P_NVEqh{L5)LQLR54c4YdOOD;i>&nLQ7*ZooMbX{cEo9qbX#QS7xnvg7BVH077KU zC#K@F%Xdk{&)@z}(%-!)FSmErBY|4e5azWG+OngD>&qh+45p3DUo;mCM5$5QC_e!9 z;(wZeid!~P%6aUI;z_@x2FPcVEB{e7*Y#_tagD;DCm|Cx{N{djBoV$wj_{hxo}RIG za;=`W>o{%5{o9Ih(&7J;lWVrUImdF!;wDSlcLv~p$TYOb9k_$QNq^=1YF0L)3Db;# zoa7x||U6z=IPE(~uM{YMR9Ef1aV6V{~~U4{Vc+zvA14q;zl%qBW}7N%r?N;*ZWz z&SWEt-(e0()X8_(JHY+)9$W|!w{TGA`QG+}C?w(K%R6E&=%>6kzmSmxRTn!61IC6Ut{ojCR|3>7}83SEPhF=<2ggJhsQ( zI&!mjokp@rzh^m3vYXDo*EYi|p+t2jZHlJhTa1dQFPjHm>Ld3{^UfBOUCd;_T5T$n ze5>VlGX8Ks-vNzJ*#U}){h4_tynGkwAnjps-@s7(i#&pa-?*&5fC@iY(7~F2r-rex zeUr{j>ouR?6&CB?cUl<)Q#)LJlx>*5x_wv6uGzI7A2nz2NZ74nfQ%kQKq*0kmcfT7 zawpOZf+<0}`>(~%d3nkPr&8Y)oje>W?Gk>M^q`vM4=y*R5d~)!bxCK2VLYNj8?Yp> zhn_Ju!H&wuA9*wcT(VxDOEeyx+(PTb2Xi~_-epK1AUHY>xjmIFc~|j5wJ_Smns9`` zYQQ@d3b|n?X=VnxE-S8A+JjhLk+gndx1TW5w_v+QFV2feuNrbW#`(%Vjqznb^34mv zT5Te?&QPYA$pt(Gx>5!Z(RXM8e))$-B&5VB*!sH9Su!MOEvQX)#y@@yW65a6lOrX8hTgySt4v>4 zVNXa@O;;*5p#k>f^KGRHItj)P-$$CgGWl})Q~c3=H-wz6sc(JF zSlc8m{oCQB(~W+b5UPUowBMU$7n7RhLi=LA-{vAc+P>mHpaE;+sho3RoxjjWpyS#0 z$&a^jx$fo0CNz+SNw#?ozko5#R!lYaeYW)}-Op=%xdkk?#NAsD5@ei)J4qha#DRif z+;`SNt{atkxPaiTv!a{_isfgwZ(dJ}7SDAFB7Zd7TvW;1+@Gzirx;r2ET{e9#mq93 zsisNB*!1!N@fgs-_(;0a(M#fB9IE-j4uPYD|XDEpaI3h!plsZYJNmVAZb{|9=w z^@to7)5~qQJO38^j=)~V90@@G5c|dyC~SIPLV=vSTpg_xG~;j2;s!>RQWFRV?TC!%_ZICZ^N@^ z9OyweA~TJN)**s98^;?2S{+t)IoD$1HBmC2V|YPQsG$#?HBy_lKUi1Jw9-I@(^KU< zrIJP_d*pk1Z{}!Nushj`;7x#wi{)?{kH#byE;A1gk436^Ywl5-4{)*pIK%l14u-dd z#N=Y+c5G8-j#y;sKnOYa{G&g~=td;eRO*5hiTn*YpI12OCnopmdD1ki-%q6s9sdm6 zZH&H91IT5zz5Y`7vGWr}pWN_)XYw~?sR;MVDMO**JyXez+kaux_MH9bMJy3$+2GGS z^|%0LBvTkh))kZ!Wc3o(qN5w3=MmjO*83p?4;bp0q*}dqLP!V6Mw#ZF-dA)JKix># zgj9!juU`|L5hCuThF0jozp;SqBWs^oI8u7EgIW#kU;VLYInDJ&50x=5lfVRK7Z8#! z+*kb;0;S`9^tsOCqQNC(tgXg*5vl{o4IPx+?S!WEJ4e`LsX}4^4|}7b=LHg7_(`d8 zBLo6Qb-$e2_BkatqW&LKZ@~~(6Krea?h*!+`Sj1hdtNshP7wC%*a>GcNsUwS7Dg$`)Hn z{gM%jHRuy34g2C(#|*{Ozk`cyui7(@3mfzDxWxT{qmVCC0}am|--7PW-b%zm;tERO zDKt@2@A)R34)~iFXDh?QavF{dShxuI6NWiY`wI8waO^drSD%|6fxL3 zd)}c;%cble#-@=;&m~!t@Py2ccL3TQ+N|rHVWX=0`$uW|4I%Nthg;L`mgA6li-&2e zZ-EA)$>)pn&70=5W_5oGZyqQ4or9`9XrL%Af@RNVQt#SWB_O>LG`I<)9#=^3kSK8B z_j`@S#|V7{0;5JlEck(C1B*gp)L0bq9deF#sQh;=`WPye z`Xjj6z3$a<+#B;^kCIq~7^1s-wA%XdDQDW{a#{sdn7LJ^?{I% z#n~Mz3@1#U${m+DqFUh| zuzyj1r>rLa4$tL0^D=3k?>&VorM_<2#azwBVR8UEWb6R$Fx(-~e#Z*PWnYuRc3!LP zKXgOSfz06cY&{KR^EZB~mCPF3QciKkM8;g(Po0o2uq^IvfQycaJo<~AnA+1=S;|3`TLIqccm;E5WW zbWTgWJ?&?`6Pq&78?&c7o9ACFC1-u2p4@P_cZ`VBmh zBaHZtbMS`UAo*qYI{10-%qf6;?6OgD^tY&zGLvGi`=`T3e+O|}B+**F>=SL<=Zlx;##ix66Svv?Jwy5$z$aFky76EUBA!_$_Bz*7(`%}_$^&ltR)9#!pYt0fS-l-< zJ6*z}rYcRng7j@2-)s8UT>d3^N(3C=V zL&YSp*wkWQf6WeW1B~H6abl*KAiV$LOJ|f=C0(@m%?kG*W2XIX38O^6O*4FUGIR= zSizlJHbd%W9Iq=t(%H!|-^QRKa z&JLAVJkr)L?-*@P8B$|2zQ@H|^X2rDh(xQU<)K>hbPM7$YM*qM9RI$X65F#e(eoby z4_i=AGkF*m`snZ$TFHVct4zpcg58BbVxG*ZJMK9Xb6FHiOjtOoymZ@# zUlw;<6Bu@RJ85;A*<-*#LruEirvJn5{BQBYQwA(^YOl(;rF?!LDgqlp%{Mn+sWkW_ z+5xZI5|jyt$Tt$-fV@cAZ?9ow8t^``if?;Q`-iFP z6FkVfO=NAL!PmM&goqt{JHH8ancr8T$Mg^sQg$p~(;OC8UGR0V1>Q*Xi2WHH`KG#; zp1rsrxa|(My1Z;;)t9buSr6y=CYTNzQ1*VoQMq}b@lB6Boe>w5b_kdM?sh8?6lW=+ zWFZ*OICA#vdxVLB5pOozW17J|^FC<8wGKCu1-M1-74Y>!2>qAqh>lW@$FLAljjwHHtPMVKzbr~3cMJn}35-TXtj@g!um$+2*(@y+-h z>ii$#(u)lPN}(imhEoRIr_}mjQkeGr2Q$8@u@Svydhw6z_r@m6`qm}gKaKKj8mPeG zJi2u2Nu%d^ZsA?8f$Z3Nrle(C7`om=?vAs)I+;b>39-_i=eg98;e}34FLaFfGL=!& z48DarsWf2nF@B1rX@85z5Q9R*FUZtsEiwFeVzmy_cN?UBsP$6Wh&^ih`MajlPY^9p zwe?T@z-bf?pVZ$jWbe%E7F!BA!s2(Tp!RU4JMcS!n&%U4%Q{oP9xqgtK*`McBPuih z4y-O|Q9}(QQwnZ~*M2x0*@bene>%b(Py56wJa)l_gkeon z&5E1(JMzh;EvH7K+2Wn~&ZePN=qQ!vuiz;m(90pqX7V*!Pww=@dZ1sGjDkxG+DH1w zkITq*Zww|35-ez_2KEKo&1{N_PvnmaKD{g2pZ}jqMkugsv2Hs0F}amhTm8J_DU&yb z-CvPz1e?$1vMoE{DMFdReCcnfLDN2{D=3` z|C>^d##I*?!#@ANUDF-#>EY8Tom1&wniA6-!;7!+xa|_!3uI)Wfb(qvN-GkbnE_qsN2x1)seYdAaYe+~zI zYbeE-_hMhu>Q4{KAA?@TXc)uWyFNxMr7pYF(s2CqoZ(;o1Ih`I4Dd%v@qMfk<_s<> zS=GxLUoj|`SutUeS~WS7Tr*i?mZ%IEbdxeb|8I`V|0+#yChUS3<_Yye0}wtyrH7`@ zl&1G@F>T_#*KHZBK-q88tdmy5@2=(4l+Z%^l-H~I-;$^p=zIsF=zhSPFi1gTE8@lH z&OqfL;7GWNpYi_HcdNU5Xg_OfY_>A`UN3iYO%*uo0t(XK&z+;E~XJU;iH%OLJ2T;o=em*HEqxx+9%P)(-FM!Lp_d(?7F z%m+?=6L*I45L!PF%=~iSH%x6RYpCU;x>Srr2LmnYty!E$cAs)iax8$8_qia;Ef!5+ z--|{>09zKW3B~809v2IF-Bd@hNI+iyjf2p$ACu-G*~EuQX;>Z(&qtaH>(ccmh0^HBex zag@Y9K=QTe){1kC^Utq7_bw;{0B5AaRiy62>imG;!;rF~KHZprY5R)?HPrBR2uUj7RxEqPch8vO3k4xri}r z*WD#V{UIlm=W-#(mjT2pGBjr{^z%5kEC?n+f7_>%ze$lwKCY<^!Yqir?}HStJeOK+ z=iy?h70b-*^+(t~md;;t?@ucpQAqV{QFzkgraZk`JATenvt~s&A-7`S>ovo-Og0T6 z8^@N|_s!xE^>&lP|50mbRabrq9$veT)G!SR!RYohd72-?rvHY+Zkil#wfO0Wn=KLS z3jCV$N5@A(c7t;%WeI93ZU^!6V_#R3#83fNN?Bx?@k1h+JWe~U*fn#lpL_&lWK@$e zIwyt%lt>$7yzUkLq9Wq&teY;q!=_X!#Qg64b)vx@HhGDEUls(W0G~5j-Pg*BbsYg} z0&$R5?f16RmBhw_7LD8YBe+WoAcJ3*@lx9tmDnG^zXfC|i~Q=FRDLoK0tOc)R-cEe zs}qL?pa)O*`2B_kly^&F*4jU7iDF8|jKnvHg7=d;sAPXAF!Foq)-nC95GxEH>PT_K z_9+$MkyuLqL3j6JR|a|5r3&$;vgw-eta4YVTfTTEN#`O03bV)RYnc?d-@S4f+|-e9 zyG~&t?>!J%|jI)RG;V#GREM+Pb` zG=))F&U!J5n@mNpfdzwHW{$(mGG0s)%?#N1-D#P}yw1l?I~xqsgItT7g4! z$BY9LlsP!iw>6HuTp~@8ec>1}XPM+5ar@xcuIi6eOSu_gPK3SP;zSB&MIX+Z<(Asg zuT8yx+Ag0WCUo<7452#CXO`7N_^n$MwP71Uj7w{?CF3j*Zoxq9Y3GR>f}@nmn_v5g zBH8pXI|-boQ0trw1<+6i5|(66{#{r~3>zIbI5>o#-eKS38X^W_RVLHCm0Mzi1I=Dc zgZ)AeQR1}!?Hrzus(EsvPygg#w{qDrqXdYt{UQSaN={CPbg9|rnShf*N>>asiDAGh zp_#H<2eY0rc<2o}DJx(LrAYE7k;=`;m67<)1te_$N(kic+QOaWCRzB`?ns*C=GQQ72k&}T)>8V zPe*~UtT}DQF(Nz5v`JgJ7Q$LD`9ZL;oqzIAMHld`GX~1ZL+P++YAJJcuJvg<05fs8 za0R~av96KlfLi+DVn;@4u!;19AG3x?=@xbFG_k&IkwWe6*sLtrQYx+9HVE=`Dt`u( zul5Hgx{HxA_}OU8^uhGz(;(xa>rvwv$6;X+U+mth+DCXAd`;m1tiix3&)Zz)D)yoU z{nnyvMZ?iGIy>d#_}I(ej`+$-D$L|e%S>T9XqEh`EuK-3moc38iAzx94KF_m6V~i* z69%79xdv&!*A2B*l`Sos7NDFw9`w-~4QH)sQn{f>P-9RY-$SXiP=4q8S@ZWi!qK3R z01+Q1{ISc6w4etrhFuytF3l6~BjLfT^4N5z?%}p<O&_Fc=-Ugjs6Z`OPR-Cpp}oLr}53>5FEHM+3hR`M9E-?1c~Z}%j!%xK|3 zi*%TiFs|KTz+E;hj%B0)VlqRcpOc1z*OsRYbRM33oTNQpzJ2@hi1p+3h(rlaRj`90 zK(#Sn=A{RpJ%Z|s1Z0yM8nm3e_9hQv;e!o*DEkXTZZjVNx~@C>KBN8P)v2cZx~L8@!Lko#rXigFvfkqaM#vRlP{pvWV_rdv8GxYi>y31|NW2| z1qz7SxV|9*;WpYE0-j$S>JkT#D;cgr9rE$ z7OgC@^DleVv!a9Uw=sHB`!fOwOBy>p{a*)^qqIUch4t~MKyZw+0)Nk6yCN=EwlJdi zJRQG07E;Rl=+T_axRXG7_IMo&@;~;}@O*){%a)z{K(iAR#x zK6P=BmqgeCiu2=HL`cB5@@&+U=C;po@w{`}?B+C3y!fMv4D%|mh zI={DC<(k8zq{h)HZ_Qc#s8d16;C=$j<;JVF$~{4BNT+@#r56ua*{5Tg?kb<0Ze4R)%)f9vW*6rT&T zlA!4tbnKg^f=ioFyrmsa|0L|`4&OC{VIg1gkq#zQKo5>?PZ4OUCjM*wN!*2nDu7ZQ ztbOSJ(ov_)0aV-?VB&B#^;THpa`Xbz=i`^&j z?R{CQBHnJiiq1f&7#u8$@$w5Yv%hizbXFJ3hjN(93?V^M38XU5!VFF)4pf=;))ylX z;m&Cs%uMR;vlc~RW#9e|7a9(Cd>Ji#4;%XJt9j(}K5pmfOe$6+6< zXO%kMOXb0bHS=P627JtMj1!6gZ97&bJ|)l?KRotfS?oErGbKI!`>XvyO4ci)SBBeo zXMJaZi_wcnVT8l|lL~SfOnh zRL1S_%1IDqsmr(IP#IT&vmxfh=S^EWh+c%PCre8<;iDZyC|^zY*B$Re!LDj%5pT9u z3!3zI)=+m%VXNm_p38L&Sz2Ppond$X6*5=@Q&rvY!Q9;6qEt3xWLGCaH6h(o20L>k zTLu}i6BQK&I95C@xr9S$WV3@8lOH+Uz6jN%oooEELrOdv8Rp(2o-1t#BAY$t1d>O!pK<_(x|&>7j6mNQ&3=`JsPWz2qiRV)#ZX#`Yp@Be^=gWOewopt__HX} zF)-|8y?e#K@w1a`O86@i6KC=^fwDLRjTYhdd$eH3Dv>l+(GN8{DGf%fM{}M<;sC_) z0iQvHI8r*hr&TIHf-~Y(eqnVi$HJGOLl#z`ub~9H8 z9IGFH#+3X}RRUAv)-}PQ5@nMRMF$Hhk7=mNv_L+nvr+aj7v;M}tJz7j(}!anFc!=q zMF}I+YU{ojMk4r|PJHh%3>DBvc45bhDb!hk;VDrkUB_ytctX%s=_)v!mDCk6y2kzYwq(#E_xisySVJ>|P& zuuQSPh#c4i%6C~dMnOa2AQ z$K=qb$Vy7Oxbei`+jqi+>khu7Rrr(nvMkq=o##)UqAWY#nC7ZC9yOHRk)+E}9_@+0 zw|UUU3wYcV!kgLWGQ2y01EV;} z4@@5%w=|1yW(LLS1Xv)BzUq$8U-KYt7N^^1zxG?PS@{<5fU!yA8kL|y6F;1<)bm{{)T-Xw5v`WykzF?Q}79$)x#uV;L7r% zi?=OiH9t?bUM+X86D4bK{0MPlmotoTKihCJxD2)j2+Ry78Dow!zU{G$C5|UqC9ORl zedoUW#dbOSTcc0h2SuF-aoPH|)3!^n`)Isx5gqO4T~v}eTc`=cByE>j@+86-pKiFE z#0MY~WITGWRxy{wH@6+b`T3=;T9WRW8_bvy`m6=HD-QP)x>#k5V!PSo-fs8u;KRG& z7R4%xeVed>-9BZEOx#HMCMx&*>MK>Hy<*w8QR1fqS*J5oh7RJ-iP|k&fbOMDSlh5& z|AqE|UB>Ns$g0OAu=6?_)nYc5Q8eX1bGot3eRVzw@^}{5!XITnF%b|D4oGWbmy+hS zS8S!SIOyZO?4KtXK$$7U8k)!<{APQd-)VaUAN1`DUVVQ5YrR05dZU7L=4biUw02~P zY1@>ie#UV5yEcNo4PL?1)wGxjOD)J1lnbd|aHttWkxF||n^%k6 zhcuMB%e~$xrQ{27=nY~2r?rY|C^_oL_uiO-9PXyePN!{uzo5Y^t1q+9l3PhdtEx=Z zZGVmNMmeaH`8>TZR^O2Hc5;p);|KwHiN@O(e+YJyFO>W*KmY_{<#fomGJX$+_!Im~ z4xyPh0t;G%s28Uk_tz80#+OZ?=b{QeN#k`y~O&Aha=XR}PUOm6dM3hmm_YiM-f7@uwUvg722AzI7r1Cfit7*Taf zf1~ZR0{KwH9vM{<#b!4{%}HVrKSEy+@oRTgwa)qF@E(5>O-FE+Nq#4Ho1;-C+Xv@s zL|VWWq2`|%DJ0njS|D(Pz0fb-Z(gj&Nt3Xb2^cf#gDY$Rv(QmTO7^#D1<2#%Ld`V} z45%2VXYMt`k%rd6-aYW z5*Y!AHr16;h~OlxDrC+XnEwP~oB6Z3UyH#L>c*5`N-Y)WKd91cRDT<)KaT&++bEx* zg*5)xcFREr(qsL}+}YOmt6~1P>*&{W9Af$lupN)iA)Er2*NoVeEZidsOm6{tf9j1% z*l}3zmbon~VYQ@um*x$$Q#ebE}Ax69lwAu42 zU`S8b6U|o1iG7G5oKFLC9(q(58Q*|m(b+%u00D0QLCX^DJ24tyl;q6pl4i-wapGVE zNB35wG0K26Wf98YPm+Jp$Ij#{s&70`&U6EF;s=)w@@)=Did_rEUob)HY!IVAzkB?u zy0K2bpzWQB6n0mbXczWGl2UTShw^KOvy%UJS0aYt*e&)ICcO*n&K9;VpI%H9W@#K6 z9vAjTWXmoKAB&odu?F4vO+{xuAtTDf-w$r(n|CXfD9r0*G|4g42?s8r25|sNr+-bu zX8b^U^qEZQQds|)@)uJs4PkEBI$ToBkM@5bG&4Qv6R+4VdNX!cw=+?z3_k*u4bycz z#mgK-p0npAt&%aaD2rU+J}s)C)AiJu*TXf$hrb}xQaM4lYt^dVL;?nNJ9{g{)M=ks zrXU-X7P!d%dburNp+O#6SySijb_TWIKB&5^@32G!y*>1Y$5mqx0}alvJ@7*NziZyjL60JYL76lu*V2Engxo?3R(5=~4N%Bwh|Az$tdBOq?6C^6;mWcqUF+M9cl>2Q)lC|!Q16ZQgtZ~rr zvI~4d6C^}kRi=5eB(BJX=^NlDQGWe=?bYIsQ$G7LJ`=Ed!s32jDrc`{v#H;B)735M z$>P<7657QrN(i!T0v8~%;XgR3yW%Y-7 zvEu%bNwnmYFc6i#x4n^mxKjJ>uQTiAv?57o`X@X$bI4Rz3>IqcfF@o>FElID>DNJ? z1J7j+ht@|H0h=*CVyLJClU|&}W_EMYH5W9WA z>fd*s+b37q&fD7H^@OuH|cD?TBt*uLtpIwQq!?Ur(}5ZP2@-HH*A@vH)*)Neb~ zM3F~5zd-fTU7K4)em)&bLhdHY)oQsOWN0Mc%5r`?UEHE3v2X|{NKD~WB80=_D)oj& z;63tkyQwr>eu3`8$832{7)gfogx504WSWOly*^w>_!niNeq*X-r~+ zvK{r7J#sq(C(95t-$|GVG4bmXt3OlTwf zzc&}a(nRtu7*O>LcNKfJodtO7`9c=f7Z#PK{TMun^}#nN`fb_$)gE_nlSccl{_pV7 zLzjx|Y7~M@<2{!ZU<->Vl@$g#LIgnR7ej3vEU*c?TgdN0P0qByq@2m|%`n$}QxFIc z1!U_;8;!$r!XIQwQ)(L);a|t#wi9d-;u8BwDO~?)r-Lc-2`3BrMFteg&xJ9Fch0`X zagJrR&#jIUg6A&}6V1jvo|k~2K^qHX|MMqK#Io~S`a*U$9GdLMZ*KPro$gVgEkE$c zr*~WZW#Ra3pid_{ctLAp=U?tw^h4;PecbuyOk(^u(vmXB`F=LEfVjSYbt6nvDAGHz zVza}&bsWxXPUK1+&Xosd=VuY?p#)tCVW|zv((&u^5*zCY>{|tK|8Aq-S6y6UQp?-V z&jEtQlJV4JuGucLcnRQ8wwAPrtwYlsA2*~&Uos;!Tw))f6x9@#3dRw~f11P(L$e^p zKE$SK?iOOVJZ6_Rx3ux27A9|8xuaImj%R*PWId{euymQ(~b`Yk;K2% z?j*=Yvf;qyj(TSWOhx1FnJa9NLyM&R3#@C%p^3l=x+fzZN<8%smi+bn{h2O77Udd$ zY^99#!GPb>NF7>VRYr(P<`b2jUDQKnbo?et6ij+T92gRwb8Oi9uK1}EjudG@rR|3~ z4|Fgd@IEL5^!5l&9M|vwwb(@`u(6!o(FE-s*$dOf5yq z@m2R!xlMLjh9yrJ7Bz;VgUaD880WFi`0R=!nGlPwt-d#40PX~jd(}LJcc^lpbuN0Fc(Qhd~=?)e9 zpl)}F=f{E{oewbgtn&KAqmzrwEwl3^7Z(U9xctL9qn$MY<^8qykuWGC@hGRKh=31& z`8bV@HT@pCrA$niP&HCY-Brv=xCe@1&IC#z$}aG(sOr&8Hk=&XL`RDE_V~{*p`qlGE z;B1jFk-y@K5{$SR^W|U7&KHrDLTV`rl{`;3LZ+?V7YTxR32KA~*b1!1eJk^}!`SyT@NO{=e_@X+-7YwN z^Mr>egv8-0ERbblJz(PrG5d6zIb3^EmHes!hsZkJabFz3L29-*Mn|T=`dYYhUZ0p+ zc(CFR<>Kct>6{1U&O$0m^ZIeDA24vj#&-Xo{%H6@G2c8ucG7pdR$B6?GaNKvoSNAU z_!rtLUlibA<;bq^e3IHjP*?+R_P+nSv_3~cMO33=LywIZ8J_L5?ykJ`!aGE6TaAr* z`@y~uwqGLM3t@8pBn+gFHuog|LMj)5nO}vAQEk#^~6xZww*^p3jloS5NtCM znir$+>&*a6rh$_(Io|Tfu)Js~lKlre+XwfCKqtBT#;m676G!q@Jp{vH+s8NF=IPE% zEr0p;Gb5U)q>f)s8sYLP&yDLp4;vK*vRjWQ?WwpTpCn91V2-2Sfd;kSu*L+9OCO*k zfK8&xwL3rbE570*+3P7Wav{s4LWWU{f*dJg08fa-ig0##QSKrRuO64t2|L-HVndmr zxDyV+FkZu+pbtg{IhpuvWZ{`&+tkyl6eK8fNYph=3$>Sz9zzsK5Alv&;)iS5UKcQB z_33D1g&aRdCw}=9vYb_{U+2;^ePTq0tj(MJ>!-tF3dQ$z6?b&JwFji~aXJ_dyb7ak z1szF|FA=1PLN4D8Dhh0V?a2b@Yjz-}u0xnY!R~>s{2O~L#3FCuut6P2RDbCnQfSd> zllzirTs5Y#d?%p+a~VTR%T(IFdBnFm!im1#G@8S9+ZIT#&U8Q7v%Pm4j}C%C9p8G) zg0Y`6LOF1Re@`z4uD-mzn%92YA`cW94~T(^AlMg?&ILUn0U$qj+P|6aVm?KNE)gQ_ zS@AlUXkP-T*c(iy&aWTa3h!J#Nv2hRnE9zkPi?rt>%+nu_i>zvaLPsSmpu^9{3v$^(8vx;Zuc&AD8+54+w=%H_p z=rLY;?{Nh;b?l?TV}%<3?EEbIpc``K-ADFKb|h{=xk!k9%;`P)u=eglYwM|V4{$k3 z#h7BDe|HlM3*|1alCg*~C53p+-=<}E=2OQ%L&*un1{3V#3&F zP|@LEKrnt8RvaxG4cTG}=zUgdK)ecf(fIXy{>j-}R{z{WHaK+Tcwby-MznZJb;buR zs_;TzDKL`sc8yY~fHj4HiXQoAlfmk4?APS0`M=p{k&hl5(Y3x|*ziR<@^Ugm6#%gWjGuC+X@L$UfcrgOAHh$qc&xweEaG->E|1+MW1ihvC zT!Kj?G>y0-RUX=yiYrcfy3e`K!J^RF(^x>zVk?Jk{=ZP8GYTq-epAyjnbB84YuDPqg$S^9#80G}Lp^YtF^+Qylyn;;6?2cRt5iLQjmdmA;s zk?JfX>M~W7H`3))`dRS=w-cK&6lCz(_Cbz@^2l!Q-&;8+lN34Z1AoEM&V{$Fe;+Nl zAkwmW`T5n>7}X}-^LnCSw*iUB{XM&EWO$qfQ}FDeOrj^W$et@ewwq_A7S;j&tDHU` z)%F?m6!q03wN=qG*g(&xN@u2EsoDM>2(@Beq_h(q@@C>eMy> zt=(l?inEle+d<~f)rjxg`%C`U)I6$nE4c7Wa%qq2SEq6r=BR4BrL`SL>h{9aj>zq) zKsVj&=d4)5k5^8d&L>S)OVL`uLAe~;z6J4=>QaeI9l-j>At!~$trmT9Zp`Ot=Z9%n zuhY;ITavN5qRW^e;lS;pc{};^ts7EIc+_qy_U#utejbfSx9-Ji629bypSSqb5w@v6 zOhj0^?FMMOnqNm*<_AAG6G!=TJsSnH3Pc@#Uk~t_9D!Ze$ue%4ApG6V{&hU46&_p< ze^QMJ$0r$PBRwk@m+t&YF}}*;nxV+3^@k9_Cd82lA>5Aul1Xn-_=TLskq82L*ouoF z;2#fu(?3vh!Opp~dYldd?O`Tyq0a7>z_=Wiiiiq&Zv92;hC9qFu^X6KUH;0k_>B!A5OY^0&+pAoqm7%=!vhBb5R&7DV(D!)e$^OmYXqdLO~3 znh)-^Ex}i-B8JU#xQuXYgI-{L$0EYJIzt<=iut7`b|cIEJO}i<oCq3?`oARO|`jJs{KKfN83NJ$YursT_MqG>~p{Tgt#xv`q5o_ z)TP4q1+k2!ttf8m90B zy%yOghs!Z!9C_OIye~RQ>x{mKkIrdq-5HEs;>EX%?t&Q75`c{bt_SG&gKfhtmYT-_ z7(erfHS6(BI3z1p-#)_fzi!Ck>dQbD{rk-(z`-@PW|1WV_TG9Ejs@@KWXe$MPJDJ? zX~1b1Bx7so@@D;4?VQkiq_m7Q5gmDzfKafUze7?d)S9t%dURuVN7?aeZAE4$*mt(w z7~ayg=Li$dk{9f#c;r{Vi(i+O|83DYYZ9Czg!au&4euNGd&j!*VOA1hz-T}e9b zgeiwz0HtFk3cP(t-eWoc4koO0B;ZeVS4^kl*=SGm z{fs*yTptK&YFjfyFR*1LKctDA?BZ7y!Jy~6G_BI4llPRS0|&{y`vZnblT8$NTDqUDR}T{Mf+5?_zh;DG zFRNbel;bVUGj#lfhA$uKjEb*67E+@e{=p9PntP5gj7v8$I9D9&G=v-fSVREE|Kp#~ zk9{8&ne_#Y@|013@{uXe+F%XCcj{@y>hplz8FRNBlyvgTZM@TAPG0sgbKHBC5*sSV z>i37%-TBI~G@t20nK?oL%crebjpehOx@ z9fqHd@J-#Di)#q!-y&T;*)}4YktJJwlF8+}`8#-yx!M4SzfX z1j|3~TDF@3q`GH}(9G&EEGh?8}1=TI4nOVtpeJ5#s-g1VXlfukE>o zTYc1TMjJM<^y2M}f1Z+ne>v!P5{63kDIDD9;u!tUCV(S=5k(F#`Vxh^*#|TL0+*kV z?oS)Z)S36yYAau~S1%x3?nxdZZDD8e)9)E2?9LEk1qohM9~ZUZ?b098Gu4TvnOaJW zSr)!N_6B>oMz!(ng-*OMkV8fSGb7g;_RCPVhRY%8)5g)%1@5(*T9iy2G%cXlRo&V^ z{4+-Q?}|^GSD`uj#oCI8DoD}oqf3hm3oG^TOQ?T#GB|tN1|M4yDLeF}Y%9vY7Qx4I zTG|pPE$&|bAQNlri=b>ataFbd#i3T;vj|*m_JdvR~#SaHA2O_16&aQ6wovgK6 zd}5J8g}~SsGI-~ykZog~&VEkqPM%i^)ERvw^0KR+-&{|$X_PL&hN{eK6D&5OtY9mb z_~70D>hHdv2 zIg;=ct&oZY+xa;x!l1G9lbUYw@l_O|6<$C+sw}(jxl&+`wba zMVAlCEF&>AM|T2*>XcbRA<5{JUcN`qH;-tG7dm8PO#CNF76(QjB-cVB8Wx;NJ z1T=JUNaQ*wJ;#$P7hV1Sh-{_yv}EJVIK13dzr7( zQv$72B6a$Ym%gN<9608{D)!;8eA$=DtBd?_qW&z15=?;>UbyqE)=Px8Lp3q7v3){5 zOXC1lS(7h-p@;EA3r@19*Gp&K+m0OD&dRMF6##9CFEmU9`o7E9)mCx(-ru8>0`d%x zXm^ynNW{071ovvgq>KA3zkLj~TfCtVM073>=`Bo#6Dzk{+!RD$7*$QweAW08u|sz2 zjoI1Fe8y*dQA&~bsUo|B@t`=p9fYq2&L>y3C!=HP(Dw-bzO9b2v9Z9)6+FIb5Y z*sQ<8Uu|bU={XB`rweIcvIAi5C7%q3c>&m@#?&2oKw|+RVZS>9OJA&+XTz6wC)V}> z)@m?k3vtL0us9L`lWBLGn}VA<>g5%}(E!$aH2(T&f$FXmto)v<)d)1C9(=Dx+AEH=q(yc6I5I*_elQL34jt(nA@8SVH*_{ zXzbm1R|J^!vLCaY@^A$h5q72(TG|gKKc17Ny`$hG|@^RCToLxfX=AC zef7AB=ycni*U0uG!o2*ud7N%dPYklV{S?^k{f&sI2EC*9MWv7JkJ{xV0c&Ha(GyS5 z2O`Y+_LHDve7VLgl5z1Oq$Kr&1p0_)AwIFjf+$=UPf|_GSJBu0t17!cl@Az@gWz5u zdx9^y4-Q@1D~NxM1pT>r8f0KCKkZSKl!QM-dUlfVBt2%Fh=}0D_+*J*d|#x4k)R7v zt({y-%jSu4!*^=?LP}n9dhNQp+?0uZHN;#|=Lr>fpi* z2?o*x4N3*|4vppF{FM)8{hjc0rN&2^h>+fC%(}~p%ZWR|UrZ7}9hTMB=X~@@B>3uE z_jH8ODL!WF%KiseT>h|%?WmT|`d$!h?j7audDq1hto;xjr12P;0WCb?(cyH$A- zX4V-x+$SI!*tse^P`NTKxu4bl!N?v;)g%M0;7%inoCfXTt@+K}z<(+$okwcUd^}FV z+#LKhXVp>@+|_!ua{QyIy8JC24gMJysr?Nm{?E0wbZ|&4I|ez;ou-SVN3bo?7giFm z@G*a2FjBZb76B=}5gDKAD`p^0PY2HM7DlK-la#}Id}|UbXV3p$B8)5NBOyZcqs8q_ z-F=KnjIx?w%5f9aJw!HgKLeDFXN`Wb!*=;A zfEkT*_2F5%>cpvy^O7+^cmoo+N&T~7Y8fo%J7fSB?{BfR2`8~ky7tli_2 z*Yg_8)zka$!yMIiE5%zT-6plvVXufd`7!-cGRNXxuk5z57X{;VNh+1mhqCYOJP&s# zsbk9wK+ie^-`(?uFUHnT>2$dn5rLXhiBPVW!JOeX185}OIxMay=nmG780k^xMkagu zp4lkcc6Z)Q!-w7@YI|Q}lG#DgJadah_PX;3VK|YBbq4tr`(c(z>NoK; z=3q)IwW$#y2$Pbv3Ia()H31PoaSWmrE$N061GkViL}-{}c9g5-mTUp5N1Ut` zQ)GsGXAFJHmX&+mZ4`!lx?^@Kc(+yynNbSk3MJ?;&2vX5M8=PT5#Bq$ucf|$9{#MM!9Ca62 zvn8|D4D`1>)m2dJs%V32?+r7<>A%2TUgD9n2~){q&3K3=wwD!VAhxKTT^54~pyw59(99Ta({Ue8*LdU~{%Bvu)_}MZsjl*t z=ee&0N2ffeZIw-;c?1y(T`OH4$ooFH)v+xrb_w1y@G1)L9#6!KPP+J$;Bim*CZ$^c zxe7Lbn9Sh*XZNUiSocuJ8oJ-zCAem49V*?KocQEoMkw=7oGrs3MgPTLEIoa2Nrui> z8Nx{YGOny^87GPk&2`N{URy@a&yt?5_WX?-5i6J90U$Z0u(0iWr~TQTr|rV}s_ni0 z!oj;jPVkjYR6Yqrn!W+cdK-I)sJ0JS2NTGBY&WJnCWza`*E3|D+@4&N-Vu1VfxB1g z7VBECOnlLh$zhXc&ll30kp&@@v-=no4hWoISnt3Z5_0Y*jK8rWv|J zqtLJ!-p;uHKf2yBtgU8y9}ZHaSg~TkU5Yy??i8oEYbowdaA|R;xYOd$;_eP@afblG z-Sr>N^PKbkzPulD?POocp3Ka$Su^*&c*lXblWIihLrQ%wAY zPlKOfn`FWhpPYsGg3c6%X?ZC78AdYn0}yp9PEFpD5}62w%{r>-N@d??hp)r=4V=4} zACa@AQqyDdikv>#hQyU5v~pQ#IH|(+Wtlgj6aFl9M;+QR0aV#!+k~3iwuBz`W2vH^wMl*HkNhiXLEp0&J#sDUA^I;^^e*SJi))&U#+;bfrR=oL42%9(6mfz_QZoUa&O!rFe31O7{q zX6P%8$G!|3;R?bFfB*byzpjT0C5!d319DYS(p?pLZ~LEO`|0$waGflEMl&S2v7%!R zTJ0!SJL|=aHr^UJpE}`g!ZMhzq?{pMbJLf#x2fITE!96~PT=gP)aJJ4D147NOskF$ zk2fP}+FdH=JpAo1x{n{m^d~%^#hN*(bY_pZ+$b8|I=(i6G6{~Es?RsM-%~WrMNp>d z+}RTO9$x2=5CKFZM-|aLi0gjM9+jXxHU*=oU?cgU4>3dEHpwDw<6otjyVdt-+0`d< z)}Vwpw&2s-ZzUy62!cFpMPhrUJ!#5HmE5~g=52ojTw{JXk<~4ixx$+rI`Z3W7|&# zrYCc0;f}7A5kC-cGF?q;s`B#=o<0m1_O9Tx6aTsI6SND65ue%OE*!|WGrNl%@(~)g zywSuVsOcrSKk5`OY+aBmDdpvyPFK|HM5aU{{(|(j7sd4FE?)$5SmP}RURpo3pBdSR zHG>aJwJ|uR>$l~K_3lzg2iDk7yjChio6Z*JZ%=+{zNY`_li`{XV{GQ{Rl?U(Mp0Oy zalf?=8F(Id?Scw>`7Nk}at=hF7yV(3OrjSe19RS5;DnMo47{>-w@WK@UO)tPixby^ z%KF{}BZBw`;e!cNhmM+ewj}2!&4=VyR!DbTxDX$gcH~*Up8=2k7j`?r-DgNqw$IR9 zk?Y2LTsuNUeQYtjYi@mq`$VrgbOjb4&i+kduKK1GH-9s5jBJhFNm~60*?|~5S_uZw zhufRFMkE|ifXH&bM0m;-KAEmVeOq8@ADmDa_3bXR7a){9SSH^8G476 zY#=3zd~D$@?VE-kZb(tWg1Cz@T#dIQCv%M^CaVY~8l`ijDK-_x5;KSt>R7}eOd)0I zy;TWn>TRYkAbnJUk`j{mbb^;$ch=r;vCes5uI9#n8{|LXuS~ChJB7M++}x~-igh}; zCW*!SZh3izPX|wK)auB5V_4X z5jjLWWzb3|zZvD|pY9Wrh!OZMgPc%yCDD=3)3&>eaT+!G7es z<^uRDH`8byr!9=UX4SKQyYy>9e#UP&Kqc`A#7s&?fRFuUUm`llR*%xZ%E?n7Jt>b` zZ4g(&yw7ml#T>Aq-Ei(=r_^&EVh7<$Jx}*dTfKcvw{ZczVe4&$p4;eqM-Y{45=pH< zfn}q@#9>X{0^dU09dE)0PO{gBlo01DZhwW%s>UcpUl|MkxhYbb*~&lN(YP|^^qez} zGP9RzwqQFimnQEblkl}*8<(1icgde)4u2zah9O+GTuabA9>pcxz#C{3?~&-aEP8@_ zCFNsL1%EPp$hz`5XS&zw>%NYi1)J$mv+l}g3%2?|mzXoOp<%<;ST{G3vWkPP?60i@ z!-nm!*^L7ErcUSsQEqAQor`=}Imw5UB~CvK$woWWTD=F$q%VcZ(ii0Uc)p1TB;@yO zR!mEson-1at#wM?_Kmt)sw&gYEiOkhWF9rwipX5MWRuvXw4FS3xm!@re|?mOm6OiV zyE4542$N6dwAT{clH7Z-_5aYjs%=f45NT50nxc0}^|#49BlnsN^t`YK@IvHSap@`FCtN?4+Qe%Nr+ z1ZdTpYHq>i?@<-JRGZoo>#1B;OOQRSW2p0G7D@hULomW!0@md-&C*))jC~zN{|R39 zESK)K$}PbNw{5Pk6P^hM$VJ_AzU-NS(KTPs6K_X8xhjv2BtqGMG$pahoeR}U*$WbQ9YeXS<(FvxZym z@sf&eSj@oo65!enIo~kn_W&bHF2frZT7i4KxnMED8itDPws9L@X~GMzNgT7p*tevI z=nmC-g)sDi+o4~XwA&LT+>S%h@#( z6|GgGattAN4f)1Qeok@LbiC+L6#LJirH+MAW{D1Ps3XK|{a41Tf`IvxIi;AdVc`#H zmdC|vEL=pHb@;Dkki+gnVt&qiZEqkIaC(yfLh)*^TLA=IV;vxmFTF|%ss9za6TM1g zx^uZrrTW*0g6aD$WpA_-SAp+qOV0NfE#E%bc2NT#5cSq}FjtB*nhxAkrJqrZtk&MyaVoR(zLeOt}TBAZW1f!DtchQS{1 zFYAH<1N2aeRYsu7?u3Vgd5q^NUs!o@r$aPgPfAqYHuvs$JL3se8c}=mgCWVQj4d<~_B(n1-HczaW`dbT}|-L709Q5P8^Z`Le}mNho5>?fzY^@8M`?a!Kr zYBiXMnoc+$aKIF`-!M)I4;IuoM9~hL1sPJQt;==8J#07o1d$LnYnOm17?*@wF3ul% z!cdY)*W<1|Yn5^SwAt#I#&w)(O6#<);1EPFed2a=D?0ZWj{X2OO`q9J@x&tVN1a14 z&8B&Z?(Qe-E9WmfH%yG-o5?!dzO?ts$_QwUp*IeN9c5u8zCH1-?=#RU8H=e263WVW z-Y;MXEklrLgoXEFKs}9F&)j-VW)62_J~j$(lwxyT zO?UJML)_4_A*@d!iW^A$k!F*H)aeFY(I1MP&f`hOceTIavOzz)C^S6f{l?%k{0^Y# zD>#;wBMhGj=%?{~u2%jOB`(G0^@f7eH*AHWH^l|RwD6QR=1VD87(id%=_q5rYjLoL zf4ngde{Tb;{@8aQk(3Wee&qiPGR?PqhC9M+)8-pI+cc2=QMv{c!=)JtnHX0+!z#WX z7l@(VFkYDa1QKvbh3!>y5qUdtLGb5#O~+4(#5asaa7l_F$cwx&d}Zd4_vOrsodWYH zXvg}S+Abvn`671YO@Gq~&Q0DO+yz({KB*i%@7=iGzUv-b;StjF_ci|kx^!z-eOisI zuC?D1sq)B{%EZdMd@Wpj-eht=Kc+{r5Y;TmckT?GAE+-FJ8ITt$v2Uev52LO;rS|6 z;E%u?WoUVWdK26t@{ZgQsyu2dk{Hf=f?OgpuX>;yYg7L1sh7~WgVtw&VBcbZDf-FQ zU}&{b?gI<(wo?`F92Py&vOpOV{2qe0=;vb21+IFmiwP0Dvr{Bs?i^b@=LcI-6e)5`x6|)@nsQuPv#;Yl zvq+JXtQM$!ZqHOQu%Kxz7`C|kpP?yR6$cJ6T878|n&&Oas%iF6s?&zuqlbA+AsIg? zRSuSI3v7#bQkQ!hd?VyN_-@g%uO%unT&-veos zhB>K`d*TwatiXGLD~8x^CFBtQfoo4tY-6e(TTkBe;5|bkwq9jP!f#83-T;@Flf_F? z3x497xE*7$KBC3=Pv!)PONZdWiPD1-RYWL(7eO?|r^dCxQYHMuhfTivu5p7iN5heN zdH~lIss(?gdO;UtZq-TE&GOOW4wY}t?MD^R6y_hTcxo!Znl0Hwz>ZC)l$>f-8lmht zvg?~|ZK~rnuF0%%pE==`)$)VT{bkM+#vY;ZrQP1n7!mNGVQJ<1#8LBtz~}5~La@7m zO+VR!@gKjLU%e3plRC$>SL0kMo}QF0I0oS3_l!MJ2E_2}OV29_#Ds+(xyv4)cD*q! zFcbMT)B(KEH2CB|@_Afr(NMNddJ~h04E@v>=Ec-D%z<>MvYwxMe9j;N9Yocvsoef3t zK)`C8XNBJtt*GW#z_u;y;q0128;v-nSlN!)SB8nE}a6L1a5~QoGFe(2Vdj^R%r2ETzed%u9D6IDS z$uNW4v%O57+D|=Xo=d6U>W&E8GfWy|GX&AIA`OpBH*VFnKsWUQ2oG<8ez<{wH8D2^FMmy8$th(w)R{b&Ty4ms#n!+i`GfX@{6OUew>vZ9K0tjyc@^MTt>M^-*fX|}A(rt9P3c9w#C6WUq|yjj){ zV>ne?4j*de1)lo%sxdxz%;KkhYvxV0Pc>+t)niHPc=zpg&h@XujeVr{$@R}o?M$$> zJIaCbcGeegHtqe!hB#4(i}|jUw6cy-eoz{A)oU19W6^;n!#etpD#Izot!dX2RQc#> z(_?0u0Bywqwq{#pk#65*nY|!kcg7-GbT~Xzt}jy+DNw2(J91q_GGa-y-`g7tx1&jS zed;PJ@^?4u^|1vvS3z@mcRdGedzYL&e-uQmOEbLgq(j3*0JI=~{eCJ$Opk&GqGeDI&l@_mb+f61a%LN$!_V>G6}>2_ z@wdCSegfaJ)@Qe_&P=B^EL_xI)wPH$LxT8gMEvgOuk;iqb`Er88YiZ_!r|uD;5h1$Mu8?pkyHa4mMh?kt67$ftXWqJlXZW1; zO%~B&J;sVRr^w$N*#=00Z=f~vbpi=Lw&ae$+)SH>-eRREedWc@gjfhl9mzQyGqS zsrlqgm(wqr~341@H_wH>uvr&reVnUvne1GsPQ|Q65uTgUgP#WNaJ(jCm z$xowGnUnom!T|jfITaYvGy+?o#ylMLKXCKnjPBjj-CxtLT7J~M#ehEodKKl;eLNU|&Utoq(k+nzz?Ps) zeGlO|(|oJW^mU1%l@3ezYp!933`*uxE{n#C89#w^3(*L&-Xyl6s!y)c5X2U94!^xa zjWaZ%?4{PMwsF^dsN}TUCV!<|ByhIs$c+h&a~48&CT40LxqBdzvackQ(3P@Vth7RM z&}g!pp#ZfgFQeV=IUT;R#azr<4{^8VE)%DtEKYo zSGwKC7(3%;Hf7tGoH^b)oc7s_TGdHW?YDgNJ=lLs)-Ip>IjmB9An|-)X z&&jAiW(?{Qx?p0tPYzQP!n2FK zjrTdX4Mk(o)obtl50vY>MwK^5?ntsjv62>nMB{P=2hvuqW;gIp{qw^%H?jAso597a z`V=+Uwhf9_TDV5)U|$nF3hC>0!MNY%jfR)>Ze?%*b|@r@NE6X~Hj1WTn+YGr51VLj z66=5*;$H5~I3HpOEmuJL3yG@ql|^dF>y0hlxS5B{lJ}*Bhe}0;^lQKMf&p-^aRefe zb>V~Y{bPcyKQhJ0e>w`pN1R@E!2jggLk&-;L!}*SIOjku=mi%G8I;O#KBosNo0Cbz z2Zg>R7hIP644CA+%k-gXZ!wwybY@u!3lRuir*+)Xr(qkHa)dR>cT=fg0D_uIGMjle zlGZY=TJ+|X5df@!1EJ$hkM^WyBsgyk$3RI1N2b9>fAJ8NI@!+-k(&iHMk{-~-5U-w zJHz^iZ39bIM>8VJp`z%ckAKzkGhj=?H+Nuaak^sTo<@N_!u?T`%Qs z?D6hB#Wk=MDA<0x{n@D{aFI-86t-5pVVNxL6n_sOiTkCdW2CR%m9$RhORm81XvH6 z|L3!dQngpuyrkbTFX9qt{EV58oGXXp)XyvXe&I?p`z!&2K*@06q!~0EmNB+0rh(aY zG%jgix`{vR3f$22n#>lA505|a!JQuqUro2kBDrZW3^Z@w$qAtDEa15B!f!5;ZRU0z zW-jY<0>qzu>6MraFWnrKwsj)|f5!vD()RewJ$btJWV4wMmS8J1mMR-%n?adRvc1&{ zEMS%xoZZ(j37v@?sC3d13k7osCpP@`CA&PGRIL@8@>D0V|*d_`md0a_5#5Wkl6bw3Xh_&JQP<0v=p0nzqVRD2qq zmb$`tZXm4$lly%FQ_^w+8_=vR9hcFW(RIr;*J@HT795jY!iHBNp8JfT=zVoQDV=ubKNxmsUR7o>cBJpO?psh#2oRiC zsqs<8q1Z`_+YXpFstr1DJF6j-*dK_l=68+AUUK4jWu{K(G)03dvsX`bePXYd%_ql2 zG8fPrl=b4e_*dK7AKbV9&W|uEREqcF|6zyW+z=;qoX`3FdD$#Ki!6FLeDiYg+m{5frV7b)GRhM58~86MMyMIl0HirQQU0aFCzXM@P8+!N&#& zULjgmya2vmIQCv}-#sWQvbn~`Z{J4cDt86#;+>_p?6>uV?nc8&1;}WhKb){Fz(#6zD|RiUvM*)yK@gm<&{_0=3H z*LQ6u-%P@>8LBn~THGSEr`=x>-Ph#TVw%)+#U>MZ5Z<%4)evQ)h3R#4b=UgcI#}&V zOq7eUk3!~*=cL*Rm3ZSM5lZw4`8aHC!^kD(bTe)BSSHN$_TN8Kswa#Z9a|;lf}8Q- zVj^pQ2u7A@c`oW?qW;pwBpaxM9m909A*k2)ba@y}-p+0~ns{e5cgKcKIzk|^`GUKJ~{PIth(RJ5(&U&*PI&>ea_F*(SUeCP%UFHYaqdkrL@$Vx_QgDZqlz5m;Njxq_ z21AeP?|g;5qvHWOo|7}q;>9NGm3XDC4x#1iy4#v8aGC{OjF$Phuf19r1e<~MwAlex zBP})Y??F(!AazCDY`vL|T8@khIn12+yB}lBobxV|*kZQZD>HZ3xDK609sIreaZ>X! ztWH88utwDX!)1@iZ>BVbRV-)MfO3hCNx6et zjDldrW{LYK+>HC-d#0HY(}W$oN33k;3JR}Wr@j-WBTZD9jZfRpmFfyB&~oOLM(Ft@E3;R4P#t^bg{c!*|)JI zg&8VP8BrV+zN#i+*N~CH@#a>p&2-7{2OACtP|QwVn$dN^Z^(T^XevW)#W z?(#_khXfV&?YTr`vwwhxwu*<7c{uI4OJ?~|H;EGmRsNuML98vc-x+}gnh!+QMFM04 zR|!=*pyYwWs_l(2K>{A0j~8{FfNw=DiZ-k$DbF8`~QDa>HQi#ZEk)Bp8{4ke{(F z#cU5LWmsUd_9I~z@ReTrU_{K!ri(^@1`4(vJJYGm?Is8{o>C3}Fdh!o|Ls~_L*K|4 zBu(>~bk=jukth3F#^a6$%N-T}E@_J@FA@bg*i7pd2TUJJEmGKOb#I?a^5(x>087_` zk7P6`xwy;AJBvo`tB+bXRxHV)f!}Zz8!?}l3#^rZb(?lY{Pwhr&AZ20iZ!0Uek#$< z3_}FJI?pZ{8GLn8UFR6q9d>+Ipzu&XZ^=@x#GfCpkh@#&L~b#o9c;Cgk;#FAc#@}QvVt-d+aE8MFos^ zbY3eFCz(n6Svwvr; zPKZ9D5ukTO(wR=|@H?*&=oceq95u+SR9}x@%Y$5YrAYfBXM?MgCI?)@cAIurMV$JM zSF2B-rx%u%R@)A5+sKoi=J{D;tSns)ZuT4FAEyH+wnjan<@WwZOwN$OiJ8I3Eymb= zrYWHuwp#*fzjQaI8De1Srjuq^-Gk!n_pE{D7H7wavC1C^1B&pOCRZu^VM{sQ_6aq7;2Wj~ZG*94WVpI`laR;l_awfovsJK3SQ8I;-2@7$R2-O}1L<+R zDFpGoVYqKVx6hn1`5Q|DHf{)OY%-1X)t1BlgbIfl>&Z|$oJ)hYsj}Yqu5*44SSAv_}>JfK~+yPn6FeIpDBIvujMmZhz1Naplc3`3Dpd)A_1Us|&51_L_ zaTwx@je2y<)bq;Y`66WDcWI2LO!|$2AV9WpFtgl)@I^>=y<9iG}_RiT)8Ua`>V-&^X(9+IdY= zO+g{b0Tx_?nk{&C4@OiX6_C;3`znDDJ{<{=d~$U3gBk!oPxh{CABLBkxg@-v!3m>9 zZnpsW)0d^m=!D3^cbk>r5!?vxSkp4a?pwcq3%o2+vlW*%-WMmTL>$n@>mH0$RU-T? z2OB61xGjf@yn>EjA%I&wCMwgjEw;Vx0NSS?`P&8mmHmHJ;Qw5}Z;UTcq=Ag#-Tz_M zgVAt>0b=IeZV+=4&f z{onropJ!7|GQltLuOvach-xbgi$$1T6mXInd(L1p9;1njF)ZlA3#j-%ZCW&Dt-0{< zdl>wCCj=0yp^HUSi6RYns&@JlK-*^R`bqD9-tHeG3uF5PNI1*LeA4bCTME^6gWdfE z7pM~AIvQ2dpc^5%tMmbl!MYYUM;981IQf#&MdD#S>vP0U9VJ)!GkUPLzexm`G~LsO z$clt)#i$Zh3Pf-#!fprQ!CB~tEpX_*`>!?suTig}>{K*s|0jmpu|sh@PkYVzf<;q7 z^rnXAwpD`^ugujg(82Cdz%%vi^1pO1J0gG#ZW7l=asLJ5^Y37ZeFeNX+}SFrWD{GI z(ygJ8&V{#{Iby{zndAEBdCjlk?#nSZ!y=G5fL_^V?vdFe%O4+q+`f!rFaRT_k&Lnm z4KI14G0@;1C`?ew`3neZbteOcO?dTfU@KVwR9Rc>U|LzB3HuA3l*U&{j~bcMfD_!f zZ_)o(Y9#}**{HFfYRAdLc^C`7h>}a>=IYaw%~8jc*itl9+!IbN=u73sQpbIHQ~A9n zaEl`e%~@WG$p(Z&KtzRY;@67%^Y&$4El}9;z`5Tur8DE!Ih{u3OkItmvEY|A-zmce zrNFntZvHQvZ>hmsN+IMD7pGkl`P)4C`hWbMf_o#ab@}j4&MR%FVPJycu|m2oF9YixULfh3gO5|88U}jSzoMat zk_03C!2nev9zUV5ls#Gh|H!YXDIRG0h47io<^^O0JNb?ek3L|8ar{~mf<<`BGVqh% zc9Q~BFVZRiuj%wo_C?Tu@ETv@2VR}Y)_M*)_Na@0(7<;aJam$fW-dp$U_c~XFGNDe zL>_omxDv$~hfPj3#6d-T$UzZjL-|ECN2;?@-RmMkgnf`N)1D9_7s+M@%Eo zc+WpN|F5k7=MvZ+DhlL{y;b|KHRv3Jm}h>i_;)NN1LQeAMqT!2PxHd&0e~&5Mx=xs z^rCR0h|Obw+|obP%(XUKMO#~(9zMS|lX!Y`D0YWIWc-amdBeZh(@_h`q_8MS=@0iyv-usC{0`O$R3gS7uiRPa@OO`4ClN}86wR|8r)mbWh}GAAZDmqqBc4%PpLXF6cR2FQf2517aXw|G8(}_tvz}U8mlu3PuE&TA4Sq%f$)8}M~3s+Wu#wqVbNof zZK+eut3ZdYxUU+u5HO8B96|3nR0lgM1r6|}@ zXvD)5LRj#Xr~?4(BuC4~o#{(H@^8jaTR+A+zy2U%!}vwiNRk5nhtRMi= zPj%|fuo3n3aLe;ksQ%+1%kBB1g86ccuM3PYi#6f+{aMWIhdv7Y8xh|Fgo35ZF*ERL zM`+MZvq&qw0`HOa6F|_}A-tPY*Tv zvHlN>$g9Iw2Y$uv9?uZ87uIpU9BbRNs#vYzSav0T)Vs){Qu2%2pQVU1(51#2pJzU<=wa=6!Q}kwx)4d>_4iJEZT~+fI7Kn|8UKdF_Uz@C zFc;*8qT&yU|MQQ=UGO6AG4zP}>Ft-eeHJwcL}S|947J!g>ndgnxw`1Y`Q?UNL0mq3 zoisIsdp=^}C|)Y?mO_P8Uh4L6!jG<_{c~8Rpr3i&`mKaX5JxMxHc3-sWcz)nGt1sS zCg1beHv>-S;-NESK74SC{zForHEQwQM^E{WABB_|sT@ZGB{pYQGbp)A&}}@^H zFhp_8Z_=UZG>w$saM2_a%@dD~Ny?YIe3%C(OWU7?A+V~3blZo2HkI-9v`*#;hNOs2 z^;Vd5w-T%ng6-UWIO=)G){#Yfi z2AkTG;l-UDi&HfG)O0^CJ2Hs=GxNWYp$#z*2gsN3@j#4l_6^3zWraJ9j6B%1V4!R! zc@`4-+Ne}EFyb?I-n+??+Rikvr9LIwxm-@nn& zHMA2SBuGU#)nwoj(0n1M<~cce7hId3xA^XG_+6NjXtKW39~vT&!W>2WGhuAXm4WqZ zM{uv}r-YV7Q3*I{F5|2p_Ysjxh3maM_>^e~WIOqxhM$DfWkjo$Sw)=G+F+cN%vc%h zD#g*H6xary+B6uiJj)R=0DJ6~LFsg{vZ<(PLhE^5%N@Oriz`%wds8sr5RgHFlQ_zO zHH-tm2pSwH{a*N_`rqsbe1Iso($rqgTF4frsFQBUi+@r@Y@GUDXe9+m1#z1y1uU~k z%$zOh{x9^p1I7<j0_U4BG)8{D#8@c2Fds_;FP=#suoOnwGz6V0 zWtx)?o{_=cF+hRsjCW|bz;OZAy6=*cW6p96#7*MvjxbQpm5Gyaki?f%uvyQa#FCgg)AYSlQM@SJ+mQ-u0CtU;vz9O!LP^8EkBR zwZr=0X^CUPzM}~?LH!tzaoqRt`w6R6`$YOxZI%Y`HHx~!lO~L~zRpSbrp#q#&}yW9 zXcL?0tWBM6L>EY{65zNVs}Bz9ZN$u+&(dOPcz^%hx6vFeAI@|0!K{C1xIcxq{>1$T#xclfZ)aieEw(2uMz~oDG_IP{UA@wuJP7NW}MVjV?AIte9?Ma$L zZnWNlApI(ubV)hCwFSTFepvDGiOUL~{T<$u`!;sL*23T7G?)4L7%dSaYBq}UM+^E7 z310lq4~a#37;i6@$P%(Cl-qu3uRK~JfN~4AGN}iKCs@;1otAE2P3JA)XSf7F;P-pM0Z@i2;{3k5bVu`B3&90#{6P#P$s2!sdGkH9#6VC4OT zOo1kY$3{jJMV{ms2yxeMVxDXyebYEO)%{&(#GDr{ROuWNP0+wEeqQ9kBe3;so>+Z5 zw8LKlRsk;1a6`lX{?EQqd2+{?A*=GLD-)G6O?nPV?ENyVDuo!*ek=#(MqmNyHE-3S z&-IYmv%#l5;^2BC=Ows)QQCKmZ%ua5wrY`AIAx@!C}#$VI=nyjV<;teJRGISH`t#7( z*1Krmw$G`c2wD6WS{9ehuIf?ACgXlYE@j*{XFP>ysG;YK4Vnd`2B>SZ`A2ZY_xMfREhBKQZThJ zk_qr{0QB}cWk_?)hhlq=jZH|tnA(VVDURUbzHXXMZJ@8iPa@2MZm5EQ4AU&;$@y=N zFsF=g>;2-_56hFj^Fg1ep1ae)#~IPx5$LO3`q_d^e+!-Lvpl96c^f{my#$3YjfVx@ z#PE!7F8@y$Osj6`>tK`oPy7#u9LRqoaa#1R<&_Ay`~I_WWroQv_Qlk^LWH*js34#P zuzCFSy#f`$socUMjT!CU`=D4{gw1`@Y3Iu+LNorgr>x=Tl2x78Qj2^l+E`^8>KkQV~p zb~>Ze$%%5jq(g*#w$S+bLTom-wqesgh@qLhYZ@Z(rmL zMaz+>(WAW9_xi~}mW%V0ShR?a*&Fg@RBHcvP{*U4X+W9O9-SRC{Li=H6Ca}oc=>bo zCX6r~8e(Vt)0PIsoBPOS@Bj$HfQof0NOzVfAScH`w(!Sww2P~~JOJIZz%@A8&aD3)E=jtM8s$A-3tl{uC$IgUzH~XN>5?bI=1bZz$K{^AqfoSiZ3<`{>j%-pXiB zX@n!umjc2+iKgh71svmH5&{Rj2ac=KEM6LbSQm;@&tNO|Bl5mRE4>&o24AitBlrII z)JQjf*nW!;bw=~oRCYYgf>67ZrWBz{i426i)uh~XdDw^p^D0x}KVd}Fx9eudX13u( zkg(Q#PBTXdNIZeRzjT{en1k2RF?W3vVn6*zgL#I)@PqXyr|F*KVTI1ia_W9UvTA>; zz|sC16yQK6SRF>eR=;|6Krfx=PoK2UExzuVJ>eDXyC|>mWOTZ=*jVz1u+fpsugST@ zx7xApVV}T?ggQrj^IGpDX5hI&C8nDDci!M3iPmj9Bt)l`Spj($41d5>nf+W#%flh&yyM}Lixj*0wQJ5@cQ=2BH^X6LU0GnF;H$c;}V{ZBi9T)Am zoT%Nm4Da*d&Gr1V1T2-~74bXUEnG1NSt?S`z9B`1a0ay5!N=diQH>GRJT2LkP$dYB z$4x5-BZ9rJYKtX^9v@Lr)-3cmx4K43hLa;ot>kh7^;@7tw{-HUo2L^cSjp9E6cWR$ zo>$tp^FLvbuIg#IjfYLAUAp1aS6rrPl5`>~Q9HhZ_`T9$RQWe)(!T;gw z+4G^8$a$4{Ra}fh>&g4@qWF_XLIuqfd6VV0>Z&Mt3d%cts-N$69{|32N<{H=p(>KH zQJ4-ta;nIsX`VyXkxBBe0GTLCjr(?x4_&SZ%Xyrl)XtEAeUVBb>@TR4XAktuiks(w z-D+O@D=wjh43YCreC?kj##{V(vB%NeU|e@4yGtDB*H$F-5%T=ppl}ztakZ{>x}US0 z37s^KL}SX%Dbg}XK8va9EXsaAN8i-4Jzt?iqB>zmrzo8>uopzAf>z&@r`bf==YYz? zZxw5w+Z^}?9iASe%NN{5W5kSD&U-o&K_x+mu^G41x)+Dc{3<|E`@3wqi59nVh=ZW5 z%B2Zkem{}lGhx3VNAo46gGRpRv(REI_-aO7Y-NDbv=!dPziGF`%6#co`R9 z7~<59Rw!5%smHE7M<%_zdN-=YU)wcWGRU5Bf91??b}-10)Nm}MH7;bI>x8!s)Iow@ zY39wGwt6;1Jwp7>DmH)5tW0FBf!MBBr{#Zp9g7{`F~bkg9?&v*km;(~{7s@9)FU1e z`K1HxH9@Rjb#JNOWPIU!_tmo1;gw9BJaNR2oc#W)LB`LxRJZdfFtTXvfK>-$Ae*3n zwLnY^UDRfY*#NZzI9A{{f&3d@dcyj308o)X=f)5_;pfu*uy6Y9mM(+hLA*kBipq4* zIE`z)*F}F~G(uQi{dwTpfs|epXWubvHiL&DKioKlm}9~q52W{0QyrFl8xIvlor)APps2gRxVZGRUp_7?K=MZ7I}x{O8^$NiVAB&VC&NN!88dX z9iIQV_oYC<{i}5^&Co+1epe! zTZthgDLoX@Bl5Ztlq9OcB7~(-(FsBki5Rcp^gkzReHdyHZuTk(;C&ExbSV&*ORrS-)YhTWJNL3 z^LEl`tEl=IGv%Y8|u#1|)AkP1a4-kQ-_v5J#v@BrjqJb9^$?tClAe3nUu zW8%~oHf#KzA)`7USiAS(xKq}5!BKJm>nPbc6N_-&5PjoY?ZHP!(Lr$(CAj>wT{M1Weqks@!joBH zkE3O34hXpW*4D)XJrfRzsyp-ho6<^0eu!@gXV-{hN-lLjMMTwid-sDi7ByBFv_MT(755|w)>HmRQCczKzTydW7m!u$H@LrKqkR$JRPgB{;sc{z zn#e`*#D&)Ytoi*YOW}(Z0MG!bCM&9I4OevZ7$H80a&m6L<-?6ljMo@$?eHB0o5S(xGvVOJ5lraRNL1?-brVw;sxra}6683PeJw zvGZtpd}t)o&&!{^X$NGP@|TGO4qlt-$y#!<3889?n2N?Fu31bq7o7T)iRAIqBQYUP zQylD0I`UJmD?8^j%^dqa*_imd2=Xuaoze)HnTnvEHZ)17On3fnf93RmEUBTMou#(- zfvwY>t0Ks+4TyVx9xTw9)^(+X=ZaE|qFnEZ)gKAzD?LRcOPki<*=JxWX%n3wjFLuQ8l}y&VV&g5mj)V*F=PyU?V@5^k2QVsC-nWhLPN_WjLiDj{_dw zt1GJL1fGXj6UioUkxEnKTk#%@CnB%vPnDMv@?*lN8sP#ae+RDRJR6v1WONq4JufDF zL_w`J_&PJ>%4;l-=tBZug3e@LKJV1|bXYu_vBW+&^noVREJ(3btL+OTD^R z=x7AY8%}~k$bB=Cf^Jq*w9wKg0A5cpo(fa<8e1trfKP#p*0U#gGvV`!h4cYui5Je` z+48(pSf`n!h@D7;bwU%3pf$~3qEkiAvuAt$-?CpbuuhEpB-$t^D@r}~A7>uuP(c9m zt>-s>`r2xYH4*Sf5q;7j#8QEy4>%GaJ%M$(N-H5rKD|rs5%1t5KA9oGA6pJMol%<| zcRy9*o>rN2o~l2tJa}j6U(Y>nUbal|#t&R=7Jn3nyYuSzJ09*NJB?!^XTwDoTthp`ecp!bS-W znZ7rC(dRBc1?u8H!_zJ=R?iPbWjN>eLrgt&hpw=;9-qxevcmVwV=vR6A=^+$dTwYBHOcvk&iT>#%n_w{~uXj85LKvbUh627J?1#?(Po3 zEw}{;!3Pfx0fM^+mtesO7F>e6yK8WF_=Y^sz29By{l!|GGjq;#S9ewI+Pm8K(;L+b z{cYWNh#lU(0eK`H!_?!mO4-zShV>)ThUZ~H*IJf}c&ny!PlzXdw z#9RoYVIJi@P^I1AyEnNTWpd8t45T?>bw*TjmjEL3iOo;Z-z0q7b9pGbc8IB=G2ubC zgkko3<1G`Bzc~j*cMfHC*Nd(owQ_BSEvBS%W-hDO{u5x!l{>`DnwyDr$cYu63XU^2 z6a2nLH|a|+yA)3r`aIa?O`b4RQJhC00U&=ER73(u$H1?r+0mIz;7fV4Ii{Dg_F4ro64gPXaVh5os?tc&+p!iojTt zAiWRwzbB3y&*y~ML8?azbg@ZzRMGkZMB^KwYQX}989Gwb8?Ci2^CU7G^F&E#5xjOU z&u=b>j}HC0omSe;u5=~v)Dv^ddiXlCfDK_zRXOA9U-sefOhg2Q=4o+RTY9vMpq6e1 z>ZvuMcPZ65R6^HP>Kx_YPQm@zBALygEi{h8d^q7b#^NSV1_#OY=N~2Nl>P}iTeUDDoA}Hs8 zu6F6vT5!A^ddI!{vTvgoJa-Z*y9wB>H`m~thvG4q>`4-Ef7T}uu84%e&tfC4_X5p@ zB!h#PtWgs5-;zNFiof>l__@q0so@Qjy@cPW%8zmnr!XQWctx91>*auhVmSj^ExP(>$lhKD&up+TYLD(DK->2; zGRSdWt}CWSU`W=Z?eVvjgrA7R1&Y5!t0d`T2n?ItXRHVHnEK2>dZ%%byLEPq%Vknu z;d%Ontw;+_q0p@;en7sTWXqqaSVxw=X@Sfv>+_8GxnU;ywxo} zlOa8OaEfqsGMVOyr;C3&viOaHWOKYE)%buZod7Yyc@5n7xB_N7!eJ8zl+wN%zrh^B zlK1&|?(oRwEBe}cy^+|-EOyHWV+)Wx0M~4NIIA*(<&rgh(-_3DC!YB+oo%}bH@g@gP22& z;KdnIBizOL=OIGrp^8Ar@f~_vzg5;1H@63Rw;DE#?L*bvz?i|Gk9W@$AlO09RKla0X7D{{eAT{3JSyLq}BYvYX{C;6u zG3$W|Q;1pp!yG6N0o1XnMU@hmG{|=(N&aJk^`z~)*b&|K5i($TqNt#WHiG9{X%|w^ zL7H?7A9=nn10>b@fw6Yq8RAv$lF5F&K2RBKDvCSH`){5W1fT^T<_R{m=TIp8Pzy*I zpcQnqc>2eF8=#>Uy-N2Z7WDZY2P2)zvzK_j zBxvI}y?bsHGjs%DPqS~dg>ZZ!kBmhaIR4Z3Y4k=>GX@~&;B0?4$x_(IKssmV>sn6s z%Nk={2sM8-(jwY6PL*VdV+G@mGI;iAAl7%)=UcuKfpN(CwjR44MyaXf@ZFnQ=eOl>iRPd=cR_1ILpY(tO ze245IADEf6prd_K-<^Gs9P30J zhdJ>>?>ehTG6ctB7L_SFp9~}o)#?26okV13>r1~^;m@%AT$~|4h@^O_quh$tb~RO< zX|B$?8Io@sv|D*O5)lD4egJjwmrX$l`j@=5AX+q_=f{~3cWpO5oSVwMDTuO8XS+Y5g1Z8SwJ z^~VDA=%!0;t4$pLkqE%|ThHGM2<*zW@uS?;gD^@xeS?v|rlH!^`>ch+{7%SXBD^&O zyJ>~wx|2IPER|IQD5d5m0HF1=;1kraYi-DOuK!i^L|bHYZL7HDji#ehWiW#@t99Gw zf*2Pat)HZS*WfoY4F89zOWxU|?~jgQ2iacHvYtzk=fRGvLfE#Ag=y1=xgrfJt<@#s z&n?a3VW;=9+=6^6&#r2L5z0cB*rEfS6|hx(2#;i>Cncio95Ro&SDxERg{_>9o1;q} zR_dA>aD7t3_E^(*RNG$x9}VpbU@JrTKXiiD@JU++F^dIRnV_~lg+NO7g#BJSk|$`L zt1HKFIk$80^5(2`nvjnMKS3F)T^o4d%X(BWB zXeJU^wRQ(ThMU>zIzHZIML3CnILgGf*;6;KN5;C6tZsv#M^B*r9s$UUONXk>oIx3< zm>MgN=t__Q3?Xv*y_@$`8eNPYg8d*W=PTUY-^ai<=Nui)Zi)GsnQbNbTG9{1!?&xq z9@)p&bBQRyI%5-UzL;`D-t$@#`ES_OYZaG}!HS+K~^1=sBjX=;T&2~k- z#eY)(;505Q1zly@_PKSNRjgA8c~0fb&&lSqN8CP51;>a*5_Z^KpZf&r+<0StZI7_o zPSQIihg8+oy$nzQ`(Q*Dd~e2_(aS9^IDejg@#BhF<<@R2`0d)2v5Owc4QrvSB4yf2X8k zRxH!bv~(Oa&J8&WM1E}T9!|n^4hh2Ely}g2YoFMvm8*5^L*RSY{8N#)Lv`f0H-lN? z)YmY^G)qfMh>JP?3^ng83=H~TL{NMht}ma!h2Yv_Z(&@wv<4GjmMIERBjQBTQznws zue7DwcQN}Idx(GJcgQljMpwHA3ZsVuU&$NAF2%lyb^N6lWUEuGIlu#uBXtNF zwt0+_#Q3+fhuW@EBSBcH3kPN97bd%-r>!cX&hz)A)GP& zcV8one!5n8-Hru0qLHU8+h#phYL57>LAztxHeCNyJt{8;bniS>cw3yuiFi$OHh#W0 zmf#eA>3?^J;O+G%3E#0x$MhR!=ux?X@?kXscxCmg`zW7@$O#F&YBLyh=P3ZUk57eT z@7>1}K;?-@{rwWCaN;+UvbVYHOQ9VfYza9gyW4Li_dj{&A5m%VwwMuvBt*5?TmXCY z6yJ}Wxq!}ql%`tAuLXevQ$G_ULPRJM!ZH0(7_4!nwBHJ zFL@8|r^NBNfFad>fH{XA{7!m{!-5M(STX{5e#PMA`)_TO- zLJbd@h<7kr8Qc?+m~AlqS2SYJss-t)ClIFzoFGCunlTo6$4g6E#p9uNiK>06c?ia$F z_XuhMT(U^#8B{XAq|Zwaa&wqo2gQvH1Dl?mbsW9;YDrUK(6RV3QIlNyu98LrzVmY3 zK|bb^2=aAcM4%;`&je9pmC(L|PFQ-aXE*^R;sE{fIv~4=HyP#o+t(3M!dN3ln~xJp z;*L^EhaVuw#~Yx3$}atKSo?1T4eS4DsSr)>Iv!)G@Ye^H?`Qx!d}=0*zuDvezVt$v zC{r#yp4j`|LdJhTiU=ib2TLCPgC-IUpucHV**;BSQTFX`D0D1NdPysIWbUDLyxuTU z{FmarrUXMS*c^;~yk6Pr5IIRTl0osq91{HlPShz38hVOH8%OB=_lf!uqD03?cNhx) zQ`ol1Nrj=HDzN zP}ICk7A;?&0i%DL%{rk374>KTj7O6t&d# zHEKfvE_LBRI+^EN>9bzjH!Gu#Eox*0K_0#)4O0Tn@&H(}-7Vs{zLCt)AGcxpubSqS zV?GiJAo+RracY!m{u{pqNv&p>UlWFLYt5;#2;xj|@9`JyL5Okt=LG`tSmMY}Nr*w7 z>?}8`f6Cwgfcy&KuYhf{ zt1(dkA-lCSxc1Zk&cHtlQwT`eho{*Q{O`1X#sO;2K57Px|M;pQ@TxO`$6Q;9qzC*8 z76=J#eVvdKv3AL4Cz8UO;uVgf1#GEycnlSI012MiQSM*k`2PbxhJ!&X`X_?1FT*7q zOD=S(kio!Y=x1b@sFoxty=1<9a~9bT!Rcp@e1rkox5Zx#ZCNDyze-5I|HmTSNXLW* zl(D*OEfbeiTWi?E=~HX!px)8=Oi)Pkv0LEnd%lh`0n9xZU8ax%eVLgZ{bpqYj;@D) zR-{9@AzI^~U6u$z@`Lv}KQ@#(l@_A|WEi4UC)gpb>3>P_5Ps}1LJaATGTe3he=Q;i zFc|^k&QCycKrma!U+RGRtEbWWQ>{Maa{%D_=TD6K7W!vf4T&L+29rYi3>_0)km1ah zK%HHpqCz{+6S}t7-*iTv&B>XJhdgi%0U_lyFphOfB5|C&n% znm?XwMiAV+T*%6I=U-LhaIeJKUW{yLQOA5HT_)|>hA97H3&_Vr3nl#cs#25FU{ddS zU4E_qb0<7xCoCtt28XWuV7;C4|8lAEcgO@I{8n5&@W5qC|7WPvDcXa39##Lbl0^(s zvI6wT7F&&45y*=flVJot5&HfcK}y3oqwhxMm3XVcG?PHN08XFTW{CflusDms5D*Y3 zY{3XcYEsu(qmpiWV^a_eL9-Th7rT(b&{mkABWwgw)o%BOs|=eWn7x%qYRVT=%ai&g zLw8LKZOEVo$Wl<5Lao_=eER`FT0~<@;4MA-g1uDs z1^Maof_S5^-TPhJ?7GrPG8G+$xPVX7aV1K#oVGFKV?ck;9kV{%G_u&d0)(Gf{^XLy zA59}Sbqfm+oIk>Ff7I%)5!o8>$I2+pa8KvgTWo*`u3J@44s0SPuW5mi2nn-OgMMR}ps8~>zS!1Lk5`rFLH$RcX{Ip0#uU<&^kS6G8($Dq4Q&r^#6?@sP;+UscFmI3P z<6#BB$)$hax7sS!TM9KUI=I&=Ow>YVttrDCtgY%;S`)2qVP&MG6L8366XS?0BzUag zJz4h|7ucx1`2O%m40{nD#Fv*z`FS=RPQdy51%4wRv&5t=FHNR;7%(?={q7z$Wl30q zdZ2-juqo_(Wor1@KjS>#BLPX-075WR z`eC9U0%aBO9Qj?5c+8Vs6_H;TEQw4z$${=Do^W3kozNXGXu%t@+E3YGKE%2j;~iV4 z_9(ga8FDu)5J|Q7Vy@ZxR%nat`|kqCWD*rG&iu!YU$>DoOkOMbnNrk5$6l@PYT=J1 zZ&5$g`gkjqc{LQjE4W07Ys-2=_q5UElUeia7r$f--w8Yksg}kp`8kKmV~fH`DoD%L zpatd(tv&RtMt5rlwMX61*E{4GhRpj169Sm2xTs{GeRd+YJer?XflHe*02;d4&i2z_ zgU4bOqy)PvcB_lfD}iP3+-#drE3y&>NHUGb%6_9%N(r7qY`>xyc8UG}I6h_fWlmLn zWXbibJdF|NcJ2ft`ngo%vi|R4Fn9~K+~qQ#Gx?PPC>-hM^nNBX=8eRkmnxFM?G<-( zwaviC`VwlkIY0aU!whf4-`ic{eJb6`Sfb%iS`&fNR9GO4pAo zME0UreNGL}FYf@TRSh+MGUf-8OXk__S?7dI%((|GI zWSzg(liquq;W(Ej$F0ECR;HWL$B_h0)DIW^=*e;uLD7TFnoYXAUwF$Z&lEEsdS~DE zS>CiVq+M?j9ji>P3Pzagm@C%sSDz1VL0+q`dAcb*>camEyZd!K&Yo6}$)MYIusL4d zY8$6=!OC4hrT6hq%|*1npR3JO6(e{3MfMFf%*u&RBRmJ+XTOgQ4DP90aF6sp7`-S> zFnjC%GI-2qG;C828~m{aLCO-aPdpZzcURN4{U2_Ug)TZ zF-x}EDn=2Hd}k#{G3cPg*BhX(S2p3`%ithiv_FBb?$Bs3?04sG`Z* zgBuVbev9a^iayd~sFggH=)djR))Dk4kYfi8|T$a)Y8Q zt035;TFCS_AVbvzck%BQ8xySDpV0j*b4b{JWl=$#x&gweaH1!#79Wv2n4vFi2`;s^ z>Ybs1CY>`3Z=40KyHyF)(t~2Epzp_g6opfLr`a#1&o_k(5Wc-ke|JZ*5|!c8)8lvh z8}0dc14;o7WIYg%FQm2UUHCLFwGy+4dqc!=)`uObB3!E<|LFxlC%ZC%l%@{dCb~f` zu{}p7M9GcSZ@&0R<1H-&-X+T2L$}x_ZCg!i6JtMrx7}0I`_9qkb{)7Ib4E8E>mKuC zd2}G{r~P6VcbHP^g~uL0nXh*eO6gU`$Mxw*X&ibmQ|~*Wh13flJil|%0%hQ#48=Mc zqO2+_$~vCIEdiemtoZ@65%Be)=F_NHrmX`mEsm%qE9&paT1QJVmTsmtdt%*S=D$bY z;JX^2eVJ6!PZ@YOCzi|NFG^`Aa4NS~6(eEJO(JPh7eoYo3^UwI|gXouAws;1JJeIF)a z!S;M)S6Zc)O9vQ_-yXz(<5k(`S*|^TUH3}?x5#FZZSRsi^W;iD%M@(yxK9Ro*q_(Q;0YU`VVu}n z@geL|=hO{RX1(845tBVPi4M?B{s}S@>O4AJt{V_?bbmn$JTowbku+BZ5!Z2-DNqt|Y5hqxBHvY!?)NM60z^3aQUb1y{K^k6lM$#deZ(&4}a><&$@73JT@9y z@OTASU~aR7tJ<3Djq{qJEFwkpUDIp2ehqmxCn*ucGw0nG$bL}Rr5d{P`!)-l^jSjQ zjic-GB!~!K`($cQ`BfP-sV99UpLDy&8jbn;+IDOf(l7{NiwsfH4UZ?2!SRQgx=F2B z((F5&=N)_9H?3Y2cd#f2xI~nB*y3iCKCh8%wk-n88v904v}J_sUJt)xaBuea^{?+IG7gD1OYKW`avR^8l`RjlLYY;mtTI z3jm#&DSvWh!1}jHaXG#$DHIN`KR<^L|5lo9yMUY_#V3)Qky&Ve&kU5hEs-3GknGA~ zm-JrqawB)n&8!$IirMuUvK`Nbrm9uxDUOqA8%*MjdAd$|gGt-gL0qnvuoc-NV&}!#De;i;r+XL72bU;6t-a?DdY7(9 z=}=f?9Xz~jDl;Ev2QqW{Wg*=V5SwM(kE0)~%sa}h_)PtrZs0v2g@)&k+sryO6pNCJ zS!`8VUTr=ivTuFwrt$OADnE2TcGh|hRRxhQ7m%^1V~!Oga^ucNzqOavc+jQ5f7zL} zHlN=?X*|qdr|u+Dj9toglz0Qbv2PCyX(VgGGG876NnU9o69HtmTF}+5AS~nT2rG9~ z$1S6ZB|2PX!Y{IS-36}NEZir<@zK6>R>F{qWk<83FxYEM1?uaaWni($4Bn_<5k896{-?4 zx<1?VluLG{g7AY$+Fd%YTBM)Lc$L3PI)Yka$}v>&YFq5kZfL}g5u)WwLIVQ+6bEs5 zO4k0vWKD9~^ZRwX&GDOLS@OOoqb$#e;=!}FT7jDF8j^Z^O<-N9G>Fg6DEA~`-NLgV z`k2Zo=_uwb;Mbr-*Tgp*31C*1s69brdeL7%GGlSw=6=jzG`DqbFLYw;OS}8LM8jYPNT*^>6`qoW zsvbGQ4{|)h&r|po!sK~jKIHc%4+eAX#C}B&Sz%w)abK>>Orb5|E#JyTw*Dzv{;HO( z2x&`pcKe;6j|x3PZ~)=P!Y>aUIQR(nl$&%GjUT+*DZ(i%h@=rukv5Oy5ds;UJ=Z7H z@@&bt6^j-csMP3+@l~JH1#<_DIzTPE6aB-oA4g2%#$rw2EBHpDb&z@bb89_=jtIvn z44G5dWu>nbxmCvL0_n)+l71)?2Jtn%pE((c#q^F-TbGowqfyuk|?Xn+bPMG#|gq=7>ToeK#r(^ zU*u$5b}btxGk+@A=fIsizO-ZO*$=!}STUiYsDSZaj5rX&wwCrITk&;$G|p4&sEciA z+fBTiKo29<=rMkWo+*J7b1(`DKiKYLzV1GGd49kdM)rZ z4IqEA{v4HH-Ui${`o7LCQ|TV1!}*CEekk<#Vn0Z>Hb>zn1B}y|fCz5javC0l);>1L;pGJ}*ilU#287wiAVZ*Xis5xlFyX#Q0ZJ?L^<)E5o@JCd zq^-~CAjR1@o*?j+a;|O$!K(swZor0uObg4kLm%>|U@G23RfxXqOcpGg{|OBf^~4N8 zMoys9?!p3rMv&>P%(cWKFMkss&l#fl*b*bWB`P`4^JKf(xu6BLkyz^+Gpg~KL|O}5 zFRVC4^8<$FSJ>s=@#Q{R3gtdgAtAd7QpWZc!u8KQ{`zQG!bLi=b6muq58ZAPbM4l~ zYjnN+Hh>hBGmu~IRzIdD@1B~A51``n47HW*Ydb=KF~^04jrjp#!--V=g}2WLt9nRN z*#a2%L*$FsD$4nF;P`$I)S6Swv>S!Y!x@D~|AkvRwS#I7JH{3dMbW;ts9Jn%iwLQ` zpwndhDaD;~vFE!n0Vlv5(!}}psBau1sT&hKAns?qgpW_xu|A@|JfYnAP21up1ZAul ztxW#hROoio6P84#hYM6b1@U{xJ~q&$Ma06B&ebEB^6b^mO*XEKmDcTH^<@~!*w-%f z@i@qxRFNm3TbXt1!PkFrmUNJ$Wt~zYDHF-!3#`Zy+f$VrfR?e0a|Bb6g_w6tTR7Ae ztBR6$H=7x2NGpqd!t3~U^&1i2`IOAywiia7Gawu0UOuZL3Bp1EO#Hg)8Q;j0O8f5i zE&{(|afE~=UKCD`!}rGjL*r&+g`y;v!#xR@{JruDd)HbE(Fl~2)*+|u`sXqC0JGW_ z==O?HBAP6gWo8!tluY*OLj6EasFBj@g7+b)i{>W)QPA9ux~Rq^6hMO6$ZzfGvbXFU z5hTEUTop-%xalI`v`vF?5BfoiaRB;(E?P9|dC5*TZ;QWsbcgOm`j9Otwvpy^K*#&O z+3BRQhcBSlUn1e9U2H8{)-*;_g`N$3O?oGco&SLBmT8v`C97NEcMdtam65BrrWK(9 z&3tDb>p+_Ps*_D6>oa~7s`CevpM18;u2l*x7mAGR{?)hrgP5u$cCv$n#4jKvM8b%8 zn6r;rnKC6270*71BZ_R^7JtHdM0IOk(%WoaN>8{6X|ST;4?=%?_0usX>x6UnTlh9M z^!xkG67N3UfOpnv?=aQmn)~hmE?@LU@GW)(Cn=gk&-W2j{H;^Awdt{)iL(Qs9>m}Q zA2@xlh=*bu#bq#)`q|b$JD~W!T*zVJ*bxSY6W^=6?_?t*@J$As)VE=T z8sAL?4^lz>0fL%r^p*9M_ew8>!P>Xo+m4jQK3Hw5Kob5|FfkjBD6N``K725-rv(fL z!fkZ1RObDsRFDAY^!|bgQDIvX8ZaGNgKPRbZzQ;B z^^bQvLnRb?Fs<}T?>@mUl3+_&L=lGXt~DP2{p=mQnb{3%Vb%}m-1=dd*~{S3@27no z^I8Sg^k6llX*f7)@qIKiP?7+bR5m`O7$l}NTiLky&Rox~HXW5J-anLS8u96FySM;> z7sA0Zbot!+Rlp%wdFg`YQs6^-7hp@v`>6IR)>@+AYJI<<4Qc{RgJ@+>+N~ldQHV2DN%3-xV@ei{vf$; z7A93kEj8N>R`A@NACB%Gppt5*_NK!e)ki<8A&ERk+IU@g;6oA~>6rMy!r0Fy8p3kw z(o=6oo+A(4cW1xSz5rFbDbM6~p7yKh&O3<;39C=%7nS0ND^^J@$nU>NPgKDvBgu|U z;L$0lrH@ZgDq1d!j<-Jn%V{APx zA$)k^ORIGCN}HmOsGh_){ERt~1x|dbkyQvp`uD6`Ez%%CEVVdGw&2CxvtZpl%0WgyPIl zL)Tn(FI~s2?^kj;Pqz@oMx*82bB|*6!;#)rtaX7LSyWy?P|J~&QC_F`kf8AC^U?XV z2s7IV8IKTOZ_K2i>s=Cx`$m^}TvFhhHx;Y2sl3ONZI45|CKwX@)MLDD>=%OyKSkJv zA5N7T!GB0E@LvcgMPL`H^nFwB6i*zQ`RW7KEai8h3G()Q7cy&l!0x4*@uEzJJzf-HH)ViK@d7DnJJXOrV&C}5XrG%E3yV@-v1^?)nPKOmqv}ucZ z!%TT6XyEgS>pc5~bRKc1^|iX>IZ1z!^XWVV?jVUT-)~;RDn&h3SLht#^`SZRa-Qqi zjGE2MmXSz5E|R-65vWV09q}=-L5cF_U7k1nd`8E~7Bjf-(4Os>?(B`YD$=YTwScvL z!CG7WDLPHtc^Th#gdR38U(uVNl79Pw4d|8S_6HvJ?)j~gx-hbj90apUr$x1ee;kDU z0HI#=qI}P%^CWFLM5{c$O=|+P@Y&PM9snpMDPhj9ZERDkf+{)h$G0)SzrJ$C8Ktw2 z2y5Au4x-k~a;JO{Sn66ogOp7npti)xq)o7z=FB`n@5L0P{OISG$Q>po1S$7Y0GFa` zwYw_Ib?S59a9Ex-+HHVLrrMVM{Ce#KE^NHq!D9bnR#$>dmRfl(kWT@n*eLG$@HcjC@L>Xm~oG zq4wjDsnu!9O{Z`)dR zG_J5B4qN()8+{@UBTQ=EIZ4LdXAp0FG~`?xWAD29at7jrTaYm4C^sskSA(yV*d2d$ zO~!8#^QyC|EsRgBdx7^uyC@Mc|JZaD$Fz}*QH;=vu|A1g+k!_W-H}S5=0m7`Kg_UC zR?K927HtAWub+|Wk!;-RZxQnJMfto()cGk{TY%=bO%zw%?~SePAH}mNzQ#7n@M%OF zBOz|Id07{b5pau-`(Z+?iI0HT>^TnBBIKELxv*>84D$^o<3{E-bvw=j1S8{*BvUm)F!{(B9dt@>ngpX{^XB&p}=8mZ}YP1!(~8w zr+nqtFX1U`V-~W6SnOG1Ggjrd590NS7%C*9rR6Cm8IigVHNkTlIN17!*_9;|#R-srkVA1~)g6Rb`HBCaF-DKDDfl`(rJAm7VO#aNBuU9&V?9WjPk%Hp zCWzcPr_U+zYZ+e;+Wp#DmNENuWf8%Kgq;M9QGq;SS`sq%qVgm^~J|G7RM3v9d)y?r|c+%(Z0>L!)K?l$e?@)>eiO*F}R|6GV&& z_1H`7tlYcFcz+?~1GFofq$gs4#zqc8j^D$GC4%GaPKXKt=81Y$LIl+i1=$bEfkwk`ZY!w3l7d zBnzKfxW@Gx@&Uo|t!NP!FC&c8I?$g8-2w?Hs!I-)n{2S&PxibVd^%#_m$bVb0~1g% zC9gofzcv+}V%`$=ByFxU8vXv}QmV=-h?BM)w`X{!0 zt7qC+n~3A^@nx|n=K7$K4f$-gTwex|JMXdYXBYo{j@8w8 z1G7K#Kyx_HD_DMS?E!4Tk?{uZ!y)?*H%Bx^^G}h8A+6Is>qJ^iK#?Q3&Dm zVZtkPji(RvU=W4@<4F!9S$n>tWK%Com(>r$5GC!7a;Pd6+{a8f|WxPc>{8` zD=D#Ummu2Wx;ER^O@>^D2#%I>1)Ewi^@aJ@iJ1{bTQ<;z(a!0XYHMEWY4|Yr-JY(I zo5bZX#V<%z(ehz|akUn|ifdo_FX-fcc)I&1oevt(LgUfBsCJGGZDz?lH2e(UiwE`h zOx$5mou4e3%I|gTDfdHRBhj<;x)E5|9q^SoA>-F-fIfzo1&&%9_nWkP6bkHW*no zVqAurXv9-p<%S2$m{L@vItA;veT$APb9Z^nL>i!hUB%*++a?5{@)&1cqyL* z4|#x#lUs zPyb=1BJ>aprx2e=jv*Myi2A-L>8wLw{@RD1n|gCuV`;sjrZg zj$?L1oFRh{F9aE3hsi;nHbVyAhf#EC%K&RABAPv$Qwj|sPzBZXypJ=eH+2MqC(9G1 ze0t{(;gcGANi3&kDN8dk)I($M?6q%w;YAwKkL`Y!pz|*OfH0yXxIo6?H4?5DpyaIzW5{A{CGC-DPNQtEa8C6kC} z!$gn9tSi#$5Y1G{B&@)MUrRyijm(2SA!gp z1uo%=9j#y;DoVGNV53FM(8^L=xA{T+_U!u3qVoF=d}C$Rj5EC26CB(tIZH7mTo*@G=-S@(Fq3aGP}tAPyhd0VW@pP#mhEhz6sO351^x7K$+5B#?anZ{eI)L$}{ zU61fZe2gs;JV+)*be=hUg|>P)Fqu{-k0vCXr8Fx9U#6!tn zuvjaU@8zCpNRiSk;jF~S<3&%3BH{X*pk0RaTI3-r7hs0K9zsWv6FskU_uMf>tbM=) zmgr+NhvbbA%cwmypR!uoMS$vQBDe=Zssy;;-&xK50~J(EqM^$hV?^C@I0dXb9F#!v zBft;m#GuTXJjMThnVPf#)AuYukRi^yB2z6cSvpx%0On1ru?a4fT3v14waG8ov)+Lv z63=`vgPpJfHD-1t4v(gg`(0!@9TCW$E&eb%b&9{h@wO@(SI$+g*QWcOUXTli=>0)F zFAQ#)IORSMekMw*^|oK~O2p})SlZIRcO3t#8QQLg9wX=-I<6AY)W(}S8HkTw({#+| z+5;mTF_*>qmX0J-%_mYP4zEYKY+EomGQ?Vu8a;E)>^yD{RM#>}wKHI>xn(n-8?q%V zgqDZ57un@Zh_p76Yt9};)-7QpjMaM?RWV^15dj4K8)n8aVeI(1#gq=+#yZ+4%=a5x z{Y4>+gg2%c2Snkrn$bdcSEx3%$>mbnS~ivG0*tyFodVAa^R-Nq6Z{-NPh>)ryH#ZC z^fsl85kU>%)jCUWaw`0i5(3tZ3-z37KmtX9GwuxU@wzAnQB;zhW@?$mq^{;t4tlP| z(`axox7=+!Le3xems`L^JaM?!0^2jYwQ1sI7-GzE?DN;P%Fn-3Fnk-0L!4$GW1r&8 zdm5bYKv*lgLZ_{Q_Z?V`cf~B*MiBgEt7@8lAdbW0?mb5FYY`b^HbKRr^%&ddp-%s_ zy_7oiESuCfzR8oXLJyP)uail zm1IaVhME@$RD#H9>xJ{Ra&5>Fm+>-4fIva~6AN-J0XYw?xxMFQl$@u-UWTon-nJMT z5nXDnmsN}N$3lk1?<4Kp=|OR+5#owbMGpmr>ri96)u37}@8ohcfBd zHGrCOGtzlO-U#Bg?V2^#pL(I2#4XYmDK>F+AItUmftX0j3uoU^Me|g>Yev1|rjQ8Er;l5o zV)apR!+88Le5C%@pSyc-4oVZ@j$c`L6Xz zYTP4)5OeK@$ae@(Ta%gl$K&oI%|OZeCKEceqWMR)H{iNfV^j@B zFxs!N=S*n9xy-W_(NL432I>3nTe+XeRHMyEq(>3zFm@u$a>oK>zxOTf3&__{pvvc) zf7dVX^9pocos4Tm@LAIhAEhjeUDaBKt^~HXOsbo~fHENI+YEWTo^-i`{(+!*ME6ms z5a?p&oG%=b=n=rcQ3dr?^w7vU26~kIgkurv`3l%v{;Nn1*ZlzVg|@0E=#R#<<=i`% zUsA9GSJ+rv%{gpJ0pIj=B8YcP5n|AJJb7`Mz{CdC(r(Bx4ANf*7Oj5-PP{zGqxm)| z#s!4Cd!@8JZssF|BD=H(nW0^*8VL3SYCw16Mrk!YTLNwSrEKgE4@`>cfiO$2xnE?T z`KYPztzCR*B{kd7-Z7;136d2^Q zdKP!9z509rMlC41?@8Hrjvn2Bt#(+oOA&S*R_^wP624{MXd{E`07KRb<@lW3i`PBI zc-nq5=8S25sy=H{9uGnJNa#!ca7|>c4486MpajS z3WVeG)M&>mf$-n&_5tmCH*x3m@fR6rI24#wZ9;h}viu9XQf>>vC|MVnf}c6_#zX zp*INI4E6qg`I`{$p)paLpk+hpTpX3w(*?&`EZ{qmZyr`hqsuAnF4cwqXlztf#y$;Q z6{eb|0gb7>$M5{)IhX7{Ui0S1MUHQ3S_+^z`uYqJ!^~T7u|o5e3;qm)+;tazKrxox z?}t$ENM(dmht4wP)I5oFS@gc!X%1ZmFf+3S<$_G*Z^Ix?UR!aIJD?J`o1nlf#*0R; zF<9_ndIl-7 zpV$pPc0Ulwp_o{_m>CpUEln0)HvLZGBi!-rf;T;555$RIg3sXaBn%BtP?7;Y+=Iz+ zO~72^;qf(=hRQy3(bKKPpLoeSVX_{i3l`+Ym>mI2%E6rh>uSoRrqvK+pe>TLbZ8)$ zZxY$*2uUExE1$Pg#&4FVoaR8+{_OWB-_llLEa1=}QK-4Ji6EBReIq2mcIJXxA|3yipb)^$hztXnW6moj->=ZVHTc37kb|$hPXC^XyUjZ zBH<~(VU@f!dq&|oFe-MMCCF`1p3XLb(OZLS59LolfvZ4d6GJmD_aV#ukU~5FvzEk$ z^5M1Fk3x`h8x^LV*)19Tst_3vMmJD_U;=tuia_puE(8OcN~zd!P+W9@!{~OF!L`3a zlsc}xJm?14&ofXHyzVqeOCkbL+vOl_RHo?f-z+3O;gi#oF4}#YNGN{2I~hD6XF9Qc zj^Bkk|2&Vrs6fb^$=%J%6w@9lnpKb!6(E_F6{<$#ptO+|d*EzCI=+gIxjAH?87Pcd z_$H>@l=Na0!8fkkrZ*M)p&t^3Cw7oFFwp?{Wo=+FAK3bOkPA`Rch6cBB-4FSXu{RW z5J%5#KmHJ5V$+4NcP!J9ZhfHd@e$0SW-Ls4KY8$@rL)o#DWQ=`C;F={SP(BNkHEUS z!#NHcIW5RyyWDfjj;ix=_+ZS~&H$ z%_2kaQYB~O`VgD6M^?imZ-MgwUYJi@DRmvi+LptxWnM&0ND$&K!ULNF*h;-aY!P9Ry`uH#d_+()t zAY810Wf74XUIT^SpdA;9Ja*tiJ6HEgik1K7z@3AngbW|<=V45a50?17nHS-k9nX5R zH_p5w7;e|WPkHyy6?_G2vVcry0)Ed406swQ0~i%PH%s4$*T+`T#JKi1PMfu#yg91c z*X-pUL|E_obk$PGKd+n<**~{j2yj!*t>&v($~XD8@akPBlOe_+Goo1kUZinJ{(nTh zWmuHY`~STx4bn=dfOL0ApkpmcYKv~+h$3ew#m-5{{^?!Ef?{{A=5;8>2m zX0DlY&U(Ga_$Dk#&evjgawc1TS>5+gFfu`^9=Y>R*syu*5m_9%jARsy{F7&LUN^}R zYF$`f5OzAsD}7Q$sH<3WUF|oIslMcX)XRIjC4^!k6#FD276Gb!Tc{;s`nkLBw(7M2 z*|uBk6QS~4xyRoan(eK4k7GE9SemwDIKeR__`wz{c_sJfHb<(@(9Qx{lk?y9Q(c5~ zY9V35Nx8bP>$#opqyxLV<`l!X7;*Fe^^rTH17C$7_?y29-u9VXQoSBysD@`-H5pME zRY-C^&Iq3(;Ug+f%n9-M^9U=pSZWqWT#9LEe!&Iqre2x4?)PG^r6-ZQJ4O?hoQhp1 zaj9inm{|pUPv{N6tKWvzDC#4?9>Q5KJZ)=rB>V66t*uPob53w}ADrI*?V?*0eQf*X zy9LDau_N1D*o@w?GP-rrIz#FcT;NAi@qAf-AlY4BX4(a#4~@aP;5h5|99Xi3XSYFC zKcBM1E{zds79WaX&63t&j%*;IU@9K-ZXYY}BWe%aY6E=70g z6))g}{ou-&i7=#EuaL(5&s?aC7al6NC zx3I(~cS`4hx+6-0uKd@cKVN#OzeY^qgsOoZh~Oud#k#x2H`)&jGB9P4{kRfFz55f& z_IM0*4b4eaR@Bn`m#cgX5oL)Mq+M4vWugzU%`Ui2jCp6toH2HJrltkVjH{W9vnmLB zm*S#!GA)KM$(*~(+v<73*eYNQ>M^AUl9S+DXa6f6WI$}lt-7{$*u{!3zYyXNj*8oB z-*bp-n`^+rcAw*5>H78>U!iO(O$g#hOnlyGO=Vi?0>Q|Ak%~YE!NS@@#-Ep<{?d#i z5;7XLkBSMVF66#y8<7D=RFS>YGL&3BxF;-XJqQTt?$TB{CzZx;Wl1Wv=JIrz6IEv@ zzh5$)VP@F>k3k6nI7N^+MTvm1)0B{f5(X>Kg0PQVoJFV3l7&LG#{S0flqPPj^*H9a zZ-@UuuHwEwKaQnDC>y6&djAZJzOrNeF)IM>Bp6afeE@XoFhweD3zYJt5NCca~;t3X~k zXajPHT%L}Uyep4bH0{t=ssb^IjqDC3)~AzUnTbv`)f*qmaahw1_QM*oph(u&*Kgo3 zt!W;Kco|`aT%|1a^f_C|}DHR|#W8i7eG>iDT z*&-{O<6BRLc5L1%-Y;<874d#+>ni46_)LOt+*eg>tp!Sf!_(P>_BD^{j6PBXAvc30 zOde0q(!(*K1PDtj-esJ> z%=UGfEajs7-;UldDB_*t!orxLprRf{shKZLb}(uT=9#n-zyO^4kBn1Xar^75L@b8? za2Fwj(+hROtJ9Y{yGs-6O)Q9CKz9}Jr_*=zMDJ+o;v{TY*44>di( z2vGc8w$e`C;*JmL`f7(t%AVU<@Kh(zxD(~%4Mny4Gp6k6p9kU-SyK0FDIL3|XUNgq zFi|GR`b6N!Y1ie}w@W<{j*^k=p3fW0Y-*3aeHv7fK6 zwJ%cF z4p)|4W4ckjr`^+3%uD`~E4CsoDne4dS7Jvt>K?_~xjLSCa|m z`vtK^17>4R8SLZlQHmI%uk2;rW3HJu^s@eDy-t~Iv8&zuf4|Udq=rmWvmZY0Sku0P(Wwyw}q%W@$dN z4{qFN)p?5Uy0^cC9QVk*bictWGr$jytl5HP(x~eRr7!KXvMt^{T~6$1SppXih5Moi zk5r4Fd$@*MYk(}euoo>DEiO7k&p&gh^-V(Mt$>)wpYYw6)$l)92uBlTP`102pA(71 z%U|+Z;{h3fhrpHY89me7k%gtuU`B=?ePOPEGI3aM9pp~-FEy?>m~c}n`Kv5|VW{uS zp1qqx2;~i7c>oku@WbOdJ%ORk!3jZxW*pJ;4MVeJSO< zVE_77vD%#CwA-^Sin4dLgN9#Ix}4jSfT(U_`lF1i_S?J;I=42j*jziN_Se9rehv!0 z9E`c`e1(`bRR?DHB>8eg`O0R0*e}sq=M5}MG4#*M z`vv-aUlRpJkmV3+nvF8qeO$@RRT=n}iSY&we2_YFI;j8AH?7A&MDe`UxihK3@OnWX z7TCyc7%^Kbp0edV?^#zfXee9}BNP-C?j2Xuq@uI7ipxY3Zu7kSNsX1-{>A}g&4QXK zNwI2PXXO&g6o*q^RWm*ZuioqWjTPK8-x;J=nTmQ0aE5QJY z_ZBJKau+&9dYZ^v&EloQzSwX9Pw!-XYbC2jnXtuWoCH)>Ow{VYu_xX%E!v=hoJ;<{ zIH=1=ljOhf2n1jU}AJmHzKwV$F7-%4{NiXKI0KDOGK&?#!)Ays`j`dFm`Brgdq5l+G;GC^0)1&!gaBP3j}0;k-r;AM zJ>?}6MHkDpLVqy|3l+UiSjL^kCBanj`+SS_Yf4(B<{P=l#E38IiaZ)5Ix*Y=L_Wp) zUAwK$x^1)yyk|eT@-8Ns60isy@de*TQ_QV*YKP4sWZmtLJsJwAsj0GjNwBh#%Cj&< zBOc>D|Cyr5{|<4lm{w*iG3JT(wL?y*JNNV}Wv!DxDD02MRc>#^+g4yeFP;fOI3VS>SzQ`hAB?@DRZ3$r&X!)W{@+Wek)SLsPzo6BpT!p#KEg3 z#4u;Y@eDr-hNiubjcVy;N{wD}1A)z`Ris7$Et;Y4c^vOS)e=}gW zR7rvtSJh4Fe1?%gu&i^Z_rVdTk9TJ0^Puvdy+33nM|s+YV+YNMf1-Fikf&1oA;tCjTkTuSMKpLqB3}K zS?iG88Wd9UAlG|3)nk78-hBk;`@&oGfAg>sCXUc7_t|^Q{VPl@%DPNLHKa?+y)e46 z^mxJd?+Ms~EhkyTxJYWTbd#<+BtqiHUn2Ak9`t`;dOjTjL)(J4Jw@1UveI#gvzBaj zxFDd_&g37ui@i~*#_>bbkKY3@^`ZFxjDt53FbiiJT9b!XB!m*6hZugo*Vd};QY+#7 z`hIwz$m-(H+Q~I0x8LMd+@1i-n5*#6@@7XvRB`1@iRcu%>cdBj%NeNF7*~Tfp(La} zDU|33v|n1^0zaVK_GEV_EHJcyxTvx~h7;$=cw{P3royf)4JO}^@ldR$t8Rz#%tiIo zb0VJbOTP(y0(shXoygom$G1RW2j-G**4N+#kN<_7+c|;Jgx7Z_7WUdh@~eL> zq9GQXwg~sRugD_)UmuW-vKQrlvdNt|FqFPsjX^2T!f%IpS`@Z1{(2YgJ_w#^b8@OY z+-9q$G?4E=Y+{h%mpZ_QINJ;rCpm-K%lMv}iL{W66jx}gcLb`aYdQ+8y}o%CWid3* z=cJfe3c@LO9oT5oFxN}8{d)&l!9u4N<`g7R@Sbw*LdgiC(}o=dm!-<1DUunzM4?UW zxPgI=4B0@vGdT=pl1vVB4mki$_Dc`+7-5Ga zHZ7M zJA`2O@ucQ1*ys}hY<2yeua#hNqc)W5@?qKg4^CM+s`^Tc=Kpx{!#NZfQ!CzBE|=#m z7O`matR$kf!Vmi&8zEo?C-KK*d*AFlg^2p*7OBa9)OBwY$}WtP^b7cM)Au+uyuFb0 z0$wP<1e{4LP5uM4{(hYx0}w|7;;J|4yo2D}`c8&BG;~*U;pawuDgzMH%h66$zt$>_ zc|Duz_L7jkqA^8T0McW?wVtiSnTsHHMnH$b*Tb+Q^P>w^@cFFu7G^EeuH#5-L{CNn zbssEcCh{!prEEb@Mj1|#=44u{3m2mas9)5x%89}}=^r)`!WKKr%F5z%*9`gee4oSh+M-RQ}EIYdB*`N>-X)sY`;U z!r8%jk3UD}oEd4VrW4hOa6LV*J`j=F+na?8v$IODo)gfjw}*VF8R^yfj(HO;Oh|j7 zV$mQLN0Rz3El2ocJ^JWg$fVZKjchXkGTaw`^@LgsEkkv>l=)^)>BL*RMic&b2)ysy zn7$75bj{C`X-JzGjUho6(JCY(LAGUBQ_oijqFA2*Hqn3bM9b4YP;3p;U3;dIexcK` zH3}2AuqZMJc-V7=JRB(W1iW-s2O4(0uM1a;!mtZq@w^rN^z?6KPy&Ps7CIGOYW z(U)5C{k%^KO2Y0wq#Eal>P3#0N3TI)NXD2O%=8*(v(FU)!sF1AlKHbbp~|Zbmd=w1 z>WWAOx9IW?2rsZY)RfR4ydD|06Ggx4%uF>kBbE^QCl#&fLxbMQBr|Flyr*1j0^5Ex z+Bt$Voz+~&2=kY_;3V>hM~w~8Z+K{Naq)vVTZa{ag3AYj9~X3juf>`bn(aKL^#AtK z<`Ba@5``i@^exZ0jTcRti8k}y$VPu@NMdpm@~tNLr={wSh~P~@6szAS)5jOb-B!8M zJR~gv2fKwid&Yu1$dCypE`SS*ZG_w6%$7blX2{W!r_gTWXq9o=iV9pb&PIahuxroN zNp^k<8Wgi?lZC3F|3Ae8gE;ZYaPbIUFYYk9ot$|C14A|@w+fnygpnRwlj!U`at7rZ zHha(e{U5duFEiOz7eQEQHf#IY-UlYayjwJV^k<^; zw%*>&ssVf*=X|J)gp4%eWp_7{7(>L#ETU>Q723VN^Xn-tpjK)keQA=P6m~;kq41xH zyLTeJqXgB1ZOADodao;;{w}ap9Qwijozr@x>s~=(&Zyk_h4KjRauGe{RqU<%Wew96 z&s_5L2W)4J9T#nM^V$@u4||l5o$BL{ZF5wNAb4>eu&!!fuAg(&NtS-tJaxzk@c~Zy zx=}>w0-tA*?5mU+`%!Ag3mtRBHzW6+`L9!C9*K|v%JUU=*`@KG>LTf!*%i-|&z|Z$ zdX-N&m%GG#fI8~6epSPt)S&`;I?I&O&Khy3A@JXkiFgcmggJjWe*bEhdA_{{JX2+u zQ@109Hw~p(Uf_d?agZBS$Bwqz6#p;ah52Aol!U4z-|n~5L@vUxEd6oz0zEHA@F}>C z1C3m?VmR{hMUD}9P~E#JdG#kbdXYB zPEe%`^gh#X^IkDI!lz(p$?=M|U&>)p;IkaL*EixCRD*~KGV5%#Ul?G6o2Q`Py6`Ne z@@RBhJ!{r(21u!QD9CWk-rkX|a>5F$H^Jt8v6Yen=dpadxb&Ev9+LvD7sW{y2oTZr&fB zNuTdMCNkeG6L$0`GKF9skNl8<{yd*fNR zL3-2B{6fTB?^P+j*uw1vmIb~WTRt^wxHN5S8v}zBHB)w3t;)%`s z``Bt`!U7*UFj;fDiaX~{T;fJy@ZGj|-e~E*0laWscU=Ia)eMZV=6?Z?l?lAcb0}N@ z(F@$7AD$+utp2;r8>UqNGLBE-!3ZteOQYti+2tyg(F^XMfqTF}GuTC8!Eu;brH0XI1 zZxe$%K98PZeT?G6fx<34krx(4f4>{x+d`Nj+TQYfl%~Erz|kc!w4AF(N3ALDD_^N$ zx|o8H0-AnF{EIe^Uf$3|yuwPI9lonv9%-=UenVXv%QDEz$Aux1LZ~>(A zyO@Ou>Yx>4RDXh`S2Q=pp5!n!ACcK=rHN!P0Oa$5TNA?d;3C4WGBnuyOe|pB0 zNF2Ngq(KU_J-$9?37x2Y`$#>%`Y}Z{JP+XUWt`6#>IEpJBvE_uh9K;Ns1!7Vp>4`= zAUjeQj3M(J_DZK`)VIyOx;?qV95Z@hZ%y9!>g~v_AnXv+sE*&Y;-^!P?pKTKh*mmf z(8hls5=Cy&A+K|#2RO$>4P@ed(NH=p*N?U%UF1S*33<=L_}Y&@ig1=^f+gPWTO>#w zw%U2lwjp_4*Pxn$QONxVNz|{nz877Q?o!wibxh#;>h`Ba!}WQG^J>SYj?|_~kF)hA z69QEg-wU~mE-w^p%01}QMj9&HHmwir2bKNcy|=^uL=KnRWVYYr#WUs(``F~Ay@AUz zpJ0Q#A1GGrgQ&p*r_zY1%(cQOzbY`_3Rl#QTVHe~l}{P5^?P=Dukifcb}Zuv4A-EP zA?^*k+W&s+_B|tNyzMwsnnxwj%l%_BF{5wCk$5J~ zR1IToU#-WJLyJ7}YnpWgV)`8)5h~tyhXJz!IqSyfdCC_{a`_;0_+ynDFPoJ~OeT?c zx6bXFS~3CWKi^_bg4Buip%XFoUh?II$I2F#LSIz`x7sDh)+p%R*=i?C06+*hsT(uA z7CMEaFw<NU@n9VI8mmJwixp>X(VyYXWX1h{O`n2LR}NBe(T0IO`_rzo;_ zz-w<6an0bJI@}4YS~zeO|FNqdZ)`Ij>Z9EiKSdggR_PhV@FJ)th#7-s1db|SotH|T zSIKg5+ev(wr&^}iFHdj%UF!rItaCY1{j)7ulbwdy_1JX@8*DG^v#=LS*Mv0TpfkN; zsI_5bug)mV+BdC}RiK%}Zc!6_T&Rh;)k0RGTT#Ae&>J`beh;2HCF9Kxkbct5Vl-{U zU9yl%DiUsh_B+zVVVI(Bv57^bEoyeThCK8Bydpt&_*PV@HJmh7R-4F1mxIKpQD(Ae zoz_7#*0XQUtq@nkajlX|zcp$#yQ9;1KrZLYQBoy(MGf_hP z8Nah0)?WhWJX#qZc&x-=3-u8tJ%jb`6nISMqRUn_1ibG?QgX#GStaerOs&477^UaM z7U!Nfc$Hpk<2mW{_X+;DTe3Te^I!EkrBoSfP>r3*)&YKPdW_gIUg!NBSeSFqs^`(P zM8YH?db=%mu@bTHJ`iF-L+bFbnrwwJSEky((&FT_H~L0BQtgxIgW3k4=4NdUvbeBp zP2olX8v0qlrI@ept^OY#l{I3@q{;$-&=qk*%-We949E&vrg$*56$p+eXrf4Lg-TpHIXQs?xqkHPh$$}1w=eQEj zm*&qHuj7yiOFxXJmkuQHg+?97)!C(RdMve44{r5;D|8)wrhD2nc8Xf(xsBVkqr}D7 z>Q`MrB^f5h+iBsBngpn1*2He|{Xgq*#KT@DA$_9W5v;gT9&9ch|ImTC3XNI+t(WfR zgC|s@D!uCMe_g9@f$J)HUwT){bNaEU_ zloB-<8eqblsy!!`S`$?8352+dM%*%G@t!uyAu2V-PM5kFjG>5qZ`>g?d#n+Om!uLG>jydK4yw$ED{HtAJ@w8*#3b*^GC%)gB+wE9{+Uv`goZ*M# zl_a@7;Azhc0tc_Ry{n4E-%`>U|1+Zj+<-#7Vp^;p`!pmtEKgd7*K^0J*`=vy0D!tr z%1e{`r%2Rp$iwgd+oXRjg2kt;mYhU~<$?ZYL*1w8_>5I`7J5r;M2LJvjV1*#>EZ zz8GN#MFDGSpCS&|eh0u`hoZR_?9e|%#e6E;kt~sK2@QnVi8Lg@1!;oBAN)9?RcS-1 zp>ETI%lBp`#F2Z!-;g1I0_}J#?Pq+}tsWm<%%{+t|7_6+PcLCPrIkWiy$A_`kDctD zMv8(po{5NHZWse^tXsI|eS zcPTi)lXM`T*ENoQ8`F9-*$6gboo#^a@0EPl&Zh4fCM@MC5oiUBGf{^Z2mk+^$$vre zjr4>PoRzOMTzjo{(_hB;d<1Og>Q@bLf-As37us!KtIhuqDeKAkZ_`HR!@V;`sd?6< zr>H^PJ!Hcwwu98`FFUS!9eXI3oNd;eZoG$c=0YFV$dJSJESFE=uP`!fqOM>vAK)vN zZmow@(^Vkl`-?JDgeQ>2FfYHhEO(sst}4q{>lz)-)B55-3Ml<;#`i(9WHmM?quD%d zS+uT!6kB18>If5WEZD=WV8NL&gH}7HfwS}86 zhnY4@tyN|u0{J|Pdc=8}DKUYa5eGe{N+Z?pWe2JJz?lx4-zqmmtQbbmMd-7s^Zt4fK^)namxf_B-G@=sz++tf8_(Up z)8~?>HxsK^XhuUXtye@%g9N#7ro{i93~h|^cvIvtT*^{yZueDq7q8GfzP(}t#uMjm zy45E+`SN!wN%-@4r{ZZ^;&b6`HUL5t;grMVx=J8h<8jR~Ph z=&{|_z#?GzOhuexRF9ATxHE$}rtAB!_vU<=9?zRum=eEiVYS-m#$;HTqb`nLdqx z4`-&=^==lQb)u2y1lU*CrDwAlNI5(6y6DE9bQl3ag@IwByqsIpW4RSJsw#gW+UohJ zYa*3M*Mt{;Wkw8sl}7tD9K;dqA#c@})-Fa2X*Z&by6YW!(U35j5_y*m-CQ>g(62y zI~A^Y(F9+baU-Z_^~*zwD){lTZJ|)nUqQfo={&$A+F_|~vc096&f;UJKfBepm&fG` zgQtydDomGO+Omxo3dWQ5Ei%6vz>2oIuEjrUSWiWqm-efdegjZan39Et9+pZsOWBqW z-koU6FN{J|Y~AgYOuWnu7p z%`L7?`%GQKS}dIll@TkE5D~M_bhIa_fbq}u@081(z+~qDieb4u?mzeI#Ht*)0tJ9@t+h@tyg~O z`pPiIYjwOMYQ)L4i7mXR_>7T#Pi*q-&(?M!QGK>ck?5X8jAgJnJ30+P03%UC{Z$AP zW4eYeZ|tDCs4QcyfB&IIIkreBUi!z-xH-XLYa-r*;aB>_ltj%@zXE~gZ6P5R!JiN& zn;p>+=JDyvnw?!j#~3TV*>l$a`uxvdHNmJQf8T~TnP(9v=dh-P=-b%23;c7hQHPxx zcL`HzmLi@)18;L$n2e&br_hU4qwI4Ie`ia=0w1Lj@tSFbHmH*z{HEbrupC4pXA@{f zp8GKMD*s?;+=>Yy^3f%LvP`STG5ge@(KmIc7J>{rle3Z1soT`(h{tmcuZ^e$mdF1H z0m$G;hsBs3`>gv@wNfTWT&QoigB`Lht@u;hZN}BF=HGq%S*zSLCG4RWYI@P^M9>kz z3C-x=&n<1YE4X;@f5L2NIzejej-Lo_LX)Q+8Ej&%G6Yn%~`P)>z$3<#1bES+9wy+n&|Z;X)j)(8P3> z9ye|pf5*DC#XEe-rq|K`j&054TH9{OKyJD2EHvDW#}ySA={9l z-S41!$(D(C)Gd`1|DZqb$G$k0KQN_PY?T1CGMq#~* zkOTi^Itg*+Ztu?Dc2V@c&0(Xs)R0xT)~X}N=fDrVaw*Ujz|b8BlGi%g$m;ssK+hV* z*SlDdyEVp1b$2WXyWM<*Sv!2DJFjV!*FK5wO^~w)^m_T#Y7Q>Mf1eD=WSEbb4Pa#w zd%0JJ)O;$qH8e^Zqy?D0cO|tGZ}BYh^2*wE1#9H3cp4S{4%_){@~qJZmGxU_Jl^B! zzxroU|RaETX^35jDf)23;bkYu&^{i%)OBwCnb9? zC~c_1@XO_h6HWl~mfHocBh_*cXttGDG)qwe^C{fR znLkE0C9zyQ*049y(#|r^1<#Cnbf^RUuevTDTl@qGQ%{do--9tGPjY`LwA4|5XW;$h zGvD|IuAKjJ2I8eHkhF7q(k+jFUOc@Hd@X=7+UcTZtIMoG z`Xd~m!mD&Ou!M}=h{O5kp2X_Gi?+lBTlrJKo+$^?X`D9|JFX_HN<8GkDY{8utfduX zQ^qS^&QqzmY?+5Q_b#7|8CL98!RDS1-EeE`dN_!x^y+x*6YIEZbQyavwEr>7w^YM= z?D^|r`tdhNi)ds&P<44v=nhp9x5VAfaM6-j85;%A4p{>_o36#3kY-6dR7!FP58zj= zv#R`%$hyzVTegtcU;UMlf9UTj~=1&@aQJ7emvH==8c# z$e&}I)n-{HnUL4wSQpUR-t$1~U{L(%l8T9;c9Vo*U8_h&gFqvHI;Fu>IzWr&9~@pj8&N7O1DNCP=La z4iq9yI8l7~QC?YFT#!w(>IYeYDNCex5-WaIBqKBSWOmM{$?jxFx0KsAAFqt(n&IAb zUdm_sm)LW2I{iy6PzGYK7j<3bKvN%}@<`ezdM=E7=}^z<=aeIiTT<LQ z=5VHA;r`~x-_Ssc(p8d+5&@9fYv0uMfjJ@~@JQ09(e!cWk8sOk_fG%fIvIEn02jeE zGSqFkth_ASa)*)0jads=F>1D)R0Vu_Jzv;2k(8^Z0m2Ik9L+EZlZlOWtR;`16GBVu zqA@wd4+0h(Q4AetKEO^(Y$lAYYLlHvM>3#@BlXjQiYKdZkSsy^U6Z-82;x#Z7>3h2+jX%Q0){vj?RwCA(} z`8VV0s}=4RJbQ^k4Y~tJQE?|?+Qa;Jsuh?*D}ez8=Z01CS2E-HMTup1i5jytC5K7P zr=?mcHY#%+4s#}nap1>OjgD4DAE9EUL)OBz+fhm5@8ZwKE zWjqJ(^*OUrTxQqGg5$b5I}&!SahFeA&T?_Ys)+QkQN3enRfUjla@%=mQPUcQ&Me3?umZ~oL{bVlrL zIDX|Tx9XmK*$Sm5alhO|(QZv`b}!TBC!OMOy{s zsyFlwIt`Jqb>q0{7P{g?^bR;;HOP3-Ag{~cNRcfz3dftM-K1dxSiFx0j zfV7BtSj;H1_)e~OlBHHn*_a1aD~$Ql#26L=EI{Z87QonG!LbUnvGp4C_m+>Wg^)ALmX9vJ6|9cdb*&pS$s zNIP|*L!u^VV7eu7-4G?l92{ZOc`ElR&$g36|Ji&Q%SEr7u*;`kmRS~9vHTsJve87* zHMxx6;7E}3GxNvts*s`MSH(fxeIacN8(jpSE}U!)2NSthA3WCswDC>6@M#^3&gzT} zQwR?Yg{G?=RF@y;(W6%j8V@c`?6#y9LGW1k9_)FC@{B>({m?7OWmqJqUGPfa+>*QO zn+~YXkFv6CvaXXGkC0-!f6ALgJ zGXEGX3^FwHAbxDK&n84dy3xk15hwVUT5DHdSj>&tF{kmw?9fV9qi*vf;A%l= zd?F~go@CKi1ETzT^cd6en6Ez3>4>JiP;9x-D$;)w1QZr1KmypG(MCA9%2Y@pGE}Xo!uy5kX8BW`dm6~dL#f( zW#Isu9}OK(8%&=z#4lAO&V_1DEx&Z|aP`7jXy9omYffEFW6|lq9H*?+nb3RhbWogq znMT)C<`@qmU}QS?$OWHyF z#Ym7_2#vNmWL(Vn&~TKr#vD<`dutsPd?m)#q%>~ZkT^O_5(RI+o)`U9%SPV%_K7ZdD$w@<8F8Lu6|V); zHE4G+bkZX~?%Jf)rrx_uS* zPKX_*8DmtK`|H`y>C}2%53!f|qp=BFzQ&;aI`pukr22hNY|JT^_KiCro;xNBhfBNN z&cL{Df3W?4!Rzukhkzd-Zg|w3GLhjIkkbnXVrtd)DgKIhCxsYfh#mY`6Tr2&G4}#2 zL%ft&=0x?>YAFFPjl(-zl%{2>Fw>Nn+pmWjB* z@&zD?v&h87{0tmn>v^)+mI0*XL<0LIMQE~xg&6*>Tf}Iwx$fnxy}MfM8Cm=wj_t)H zuF>iLhf14!*gZ&=t%U6K%y8p9DjE+hakr%$YY?mSOSJy2icYTU)h1ixpu3F3 zQ)W}cx?zs)Mb@lJfVH*KdaS1WPLw6ctmR4H5aM~iy8^f~Ud{N69eo|xaAe*Ga) zI_8Y9=nCB0Y8X$vZcsc;EpLfrr66C-T7^Wym?x)TlNrv#oZmOa4tt9!h(sDTs;_@HbNwzX0dk}ym3Y_IJVl#R?Ss9(W= zQGsvGAj^~$))TKGj}6yZB^O@h%yeh)Z_&oh?wX(-CHQCunc@RfDYKnshPp`RdA$#2 za45SZq}smD2ho_qw6E*$)V?XIUqYj5xa_miizC$m$}9wXV3qmxZdbYBCOf=*LAD9= zM~5e3ej}dVrGZvy{>BDnzb@cxggnh)m=HNgX^C6e`#@9(o*?5L_>|+xvncW6-5cY} z&6A7Vt_)ta>+QMsF1))12nxcOc?=tE_ch%}k(%(t6YP2fo<^A+%4jt!`^g_G)ENXt z4SoRt$g`Xd6RFv+ANuIDb@u?gsIO{m{K}(EF4=%z)R5;@{RpX%%ai#45s0aLNhqzgA zG`qxuF{8M*=VA#Ou9g?sH=5p6v_Br|@q_??!}aRPCd5YnjgCV($htmw3IPLkzw6rt zw0O%14^bm)K~WSuaDx%F7qhBvaG8TK!Wr;s$=)w;4yd||92{pcjb}jmz0wBQ+epS- zIKX}xckm{P#Bv6%T{Q{+I>V1$KXHwqdye>E!IEX-g@di7nmsv6t0?Ugv&%WXA z-V0`B1&zAos>%rKj>9rmC0kbNh(~nofM=o{5^IW7%3EAZy?z=M9;Pn>ZE8Lp7ef$m za`o`t@ySjPX<4sl;#l_vUcozI-A#)k_+)W!Xv^YoJMwlH+EO!K$B*Fo)l*YARDh&` zr*BrTt>ePAO96h;4Tm{ zxylo}qVUz21STO|`fg!e)M+H-%z&cP)70+XY6Z>jCY7tIju3k!`rvW>;rAWy?>f7x zY~aP%o6krFKX^WGl|Wc+#FXrjEv~PhzKDtScL7J8qwyIBz{5;_9e!W8xPv8vAGWR| z6dd|89jY;g5Qq+<=>TlcvAw;QMZvQGA|p+eT=Py5*Y2*09xlZ8R&j~Xgz(@aZ>OV9 z@@^l{tjD$Q{94z`P3f%tVe23(tkG)GBO&-Gx&wJLYquH$fOx*`w?TaI`1IRp!h;!i zP5;Eh*j}rb%tX8vyDaSC%M%LRTCdL6hn-@v?1S?$3WR5Gtvfg5I<7Sa6NE}qV?`rJ zV|04wSO8~jU~f5`jX5}S9Q-uq*X|dXGBmng6YB!rp40L$Xcm1%P>Y_7^E6bW*||9LV1`3uy;zhn34(LX%F4T!0YwOSHpjx@A-_WE@pf%pdXGy=4@^b6>EmSw z0Fry*5LA9Np~A*`uEwOQBDD!TKdO8CCtyoVEa#!;ff!{0 z@Ja!>A)T-DitM=qD$0og5~?g4%&wP~`p_o*Mns#7i@HP5B1WPVWzUp37@FI>&oaW! zIb7ZKcEffdyz;_GA5u{hgr^Gch<`fdIRVf$oz$#OKNHotdG+{%G|gi}D#mHwM7mn( z_mOx_0t#Fm--cpKN(J?*SfV+(N(2GtJmV*hlUE#Y$t)xvm>{CCWQ#KfdoyYbM>7X8 zj(p@ZA^k&=x!m!P9*ZccuAMYar5Yvd)>@p*G9Pp<`$OwGrWynklbFMLu@}yD$F8>M zc|myt-PfA;PcYZ7kGnU0;*lxX|2;#8K2bjd) zu)O3Hb_%(b$@nuSl2MZ*TO2JH~`l zX3~E~n2i%`y>oS9pR#o?!0HqEwIk99345JA!ZOb|u&gXZhgS8*I;y#NnMiSLCHYp? z{vtM8LJRy+Ap1xjNn=s8PtwFS^AH^9r;9}}5SrVgYy~eni#6Uuhwy+Bj|=#G+$^zR z)FY!->ZjH}<)orq_(iGn4lb|m}b^J62$`%e{oYRy5PBc<@@7pH_=mR+2%Jyi< z!X@d`WD_O7B0Gr*P{Ne6Qh?%7+RCp*>(&6k+e*bb&4vruQr5oJ;(dAL=d(m=>3D~^ zK~r#dlkv*|_$xX9*<$Kpy~gBa(2Oj<=g_&5^URbI@O29n6izpQ=IjIIJ>NL__GFti ziXvPJVR;=Q3PA3qM`$sIygamPue3kC5ro9Fm%LBe4p?mRC%yl|YZ}vfU2YV+OqHIP zyO~)=3iMy@ytXlEvtISpQd-19Lc{_9mVoj70_#}^; zo!K*;vE~FOLhe^(Aa;bdZ(XHW(J4RMW#P6?aSua2dW~B2;`i2dsP9X@utsB(ZkBPv zpCz|p;UT03KV7v4k&$W!b`Ejxy*|9QL|eF<@+q%~-P^hVQatZG&aV4Uwz>ae;Y@;CDW0LR${5Z`mZ;`2%1fn@szAV$I}hS{ z#ZLyCc#Wa<1?CGvBmkVfK)mB@3x#`LL%WGXd1`}2)o3mIY@t?xdB;>dbN&16ri&if zR@3EnRw*{&Y+NBA$ZOi|)xjdZpo=0e@XwvsWT~KUnn>sJ=EA(-Nfc#;)w0S8BD9%9 z5O>?IIW>@aPk&!qR=`(FFn4Uh+GNC!769l>Mp!<1d-^`cDf`;bRY>JlvQQt2h}s%2 zNRal0`hC?Wc_-t*wC!Nc?Ta@#Eb82Q&)}z5vPoxLIa0Ev0ZeqMNNeG#4(~gs$-cFP zx0y8xThCP$_auM?h9CUU=yx;h)ngn-V@adyu!b$+HEuV;j=&wpgN!t~a(nk#PsH>R z80<2H3romO-mI)PSN|SibS}NLt@;Ub2l<5nF%=xfF(To6KzTJ>~*#@N2n*v5zXxKWm z(ZXTNpKpov&{iyntgPb9A&CQfY1oypnM-?exN`x+y_IzmcYV_SdU{wvGQ=o{k}4u% z+pPv!;~i?G4SnwrkJ@Br)9iUi5qpE-0QqG=eIT3<=Lz!5l|SNxeus(hfwB+E1fB|9 zJ~>1f4&leGZVfImSE_^S-GgTx|7RipkPal-;Ak~9GhMsIGOK1*yJO>*ZsyhmCF#N^rv;&+is3tj9MG7H z_;u#}8fEz1R;Zrdvzxhhl62rhNW6vhGhqHn(jc2fpUV(r+hI$V`nBjMOE#y7I$Zt7 zlc{Q(CMtyjD1^fw<8=p8XWe*^H^r`bh@ZVDm44HRuE91ryPXh@1R{Ritw69N@`U!m zX}$TETWl*a0Fh!ws;S$4%5eQcWj!gdU_}N# zC?7lbV>aIqH9P(iuRUpiZROYV`d7ns)Xi182iZH%=q^BZehf|gfXXjWqyLYlvutZ~ z3$$%;hZZOlEAH-YrO@K;7Q7TM?!jB!-6`(w?(PsAiaQht8gkg@-t!0YA$gx9Yt1po zBs_l2BqzJHB+I9kvdTiYY>hG z2p&?95XxFX&bhU_7?*netE)*<=9r>1s;Xpnza?%r?)~?r1jn0uoi+J);8^rCnV*uHh)wwYqvV$18zBDCy2SMj8NAE2AsB z2q=*W99&W4mF*F)x%Il$4vg;AFJ>wyekY-c#5`&X>485}HRR9?bdO_b>Vls)e~wWX z^$zqk+J5@3jDC;p<^MJ~BHS<7b}7Y^!mu4gs9{MG2-!h}`&w6*mtWlV$Y7DEp7Ao& zn??34L5<`yepI@u?mA|y4t4*CAOZkP+kU?eawVPOyjeqrwlb%ke!hyU!)z_gltEZo z&33%lr`{te&jsCg@<$OL5BbG`JqR}?Cj)P-jN$oxth=Zo;% z1~KpUbV{sXj;XU~%sd6S)0MeMr6WYG(|2+r|HHi~UGC1Zx$oxgg@XfzfYAM$rzi(3 zCd-MmztTPo_w+5#I(+PhX&j@1&=VCsb|Q2k+wBPzDHp~%Y=Cx;LvI)Mz*_4nTjYJb z89ZoE2tYJtnl~9NPMNu4J99oJuu>f9V4tK~zhoYSawOHQ6qTt29!ik=J&S|xZTDPF zTMTE9c0qpW&^(q8tnO=Erd@W1jr<3oAld-D6|c4)S)5dF$AWNvzFF;QGfxRDel6h! z;QPnPLDYGl6+KvYuqRWKtRs@~e-2-z<9L^!3v-b*n$^>xC2Jsx2K!3*OBo{!|3>a8 zCA{g?1AxqT zi>+C-wv*qIFNXrW?Z=z~uaQL4M)1ShUgodmNh2iMhor~XLxw)BJ{(8zuP!nn08Rl= zoeBUnzfstLu73HludD7mnGZRepXnSr2yfmnm8r>Wg@x4qLt<>5%tRRjIkRBX_PVLYWF7&6JGGu{|XM;`v7n6Jhj zjtGAzcv-#;X-V;FDs|}YYROQo_S2SATD85v8Vp4W1fRn9BksQETFC=M7xgqqIFjml zDwo(OPkL8jNFIBcHdEBV2vwoZP?4RdpKRvqVbtwN;gZbjR=x0xFd9y(3B%e&)ukJK z!dfX2|6##sry%cZj3j-KVi4!U_VmPRLj#3Y{(o${8qOBthXgaZ0>Gnvp9oO#yn4d@fc5U9 zFhh?cXrvU?YjLnoYUG#}e_fh@XGkfs%2@kKRm!0js2a+uTP3)_=m%nH2z_x-*1|H6 zv2pl|7eLh$nS$ZahA(-V=bqOdX1>c1l^Umu_?*1x)AZ>x`9-RO388L_z`Rx!<5~7F z&xa)TP-cmxLg$Xfl21toFEamSny7OUEC{eolO*vSpBCz4=>~_7YKfi}S7Lww{9*B;LR9E0d3MLUsf$OdcKd&}(iP9vnA4@ef?D z)i?!yoBa8ML;ymH;Idl@#}qD15LaeBKHVXQ4a`e49F}sD6zY*T%CC`;YzO|!>6RNi z8-DHPI?ctXTPlg2H(@D9X8VCh+_tI(=YBL-O8dI)jc51J@BuQnTz~#{^Zk45`Mcpw z*;uZgzLuSu!vpRD*&mOJ(jyNE>%W^TiicgdR^nIk1 z^+fNcZE^k1`ywKZ?{lwy)h>6=Y|2*`<-A3N&9n-@s(TSK(`e}d%nNE``dvq%pRQL8dN zi`zD46`?K7e;A*?ubqOMF}kw|*9hb2Re_up1qYE2uSFV^LX;Aa2blI@%SG;fRQpLx zv3)7a@oqbp%CH?$B$S(Q-~I+@_PiZ}7JI}*r#-MGVT2;d$F=-Zoy&9H1oW!Y>+oF4 zuq%syx0uvYd%*Imzaem|cOim7yLWPrPzdk4F64Y(Dy@;OxHxh^RG9yZ zTB8N!i|#kSVa16C>c=qNpP5FNpRTpqwLIL)Gr6MIny?-8vFmKyi_G*Hu|Vad^ymI> z^@w<4hJnWl|_c}*_GoxqZB6CVM;d@;YPEg|zV+lW^PnU;Q5wA)14@K#Fe-v1tZ zQgaZPP1)UPg=C{n?czQv_Im2-Yqwuy0=bMS4qp}TMY^0;6@5l1{klfY;W-I{jG-FY zb$j{+`<5u&Yhjg@hCay@Kwc7>v-blxZhxIw2bSY70>rHz37-3tM9FBMY8c1Q-v}B_ zEJ!-!oO;>Zy{q6OfGNUc+XiXt;^Q3a^YgdOShSZ@`L?xxQSBerGj@+2N7+snySf4s zqNvdEd(~9559?(D_HsmCLf&`yJ{)ixx`_i2EixH)eD!{KH_k*83@S z|KjlXl(;+V8O&Fh^}R9{OIx1O%EIOP^&%NR-m-n@?4hMKqa)Z8bgBu0&`4SqPqJU~m}SK2GXG@EW}jH9I#t*J^d`wBvKv?5fu&0`QXU)(a(G zlWk)W?KqJA@l*F*j}bYPGGrDFt)s2ycDwxrXErVo?LR#N;}MoRV9oMp>ldu+9^#D_ zhQ~eu2;n__*I8BEESOjWY`9ph*O^mOVgSpu24JTd*3RaRSi6%Weerak82u~1SHQ;I zKL+7OO+%7La3h~)(^++Ol&eIJg~P_ln5W3=EI!H~qSvd%rDETp@0sCSGQq?n*aYF4 zAzsnfPiFs|ReYRnGJBg#^78 zUZzX07LcRAccg#tzq4Q>`V*2m-L0hU$Op?lVb>#|{CevraeZaJGmPn(8|NDE#_rikr& z;v3K!V&yHMkRapamSnpQMkC_0{_z^{bTan0`??KLzm^Gz6V#rz^*lPyWebFP^k+Z) zwb}Mq>=|e8wv7>mq>BC

`Ympq&^#53VNtU~6#40Vh(JKQDcRCMj&Irk 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

U(tf|^gmaJO5o=4;C6~eq3BG6( zSv|N!6s;fox2+XFY=f)zWyT1eVTAfhP;pngf9amw2EmRzetIMj@Hr3C1!qsEJxRr4a^{poUJB+k&mu`fmEp@c5+K#%O_0i+-{c^`Aqi8K- zI`_*Kb4W$W{5icib8Cd%R*;waX8F!X`qA8}tZIS&q{skt>V!r+!V-emkyx*aw2?6I zu)1q8U!S7M)|d2Mh{0u0lCz5TSrGCia^CM|pid z130{=Yc~{Me?M6DG6leGRamD}oQ*1i0Kt-418i=JLbEpxSwyrit2Vqz5B zi;t5QzOM;E3{R>7nd9OT4?FXyK9JgYW=FA}hwEj}xl6|yqVYB=JM>3X_r1c<#yffi zX#b10Vb?A6b0uQJ3yxWaV4m|?iA{A7(k^6ZG;Yi1@lD%yxTymHVxHQ?3k zaOkoo6IUNwmkjs1C5GP)_cgU)tQ%P|vWzHDWR2f6uzEj8W}Q5gqhfvZkit3(=+*t4 z?j>e7@w|a=;>#i(ZID8h#O2*`xXY+zc@lG(OdW9V-HV`&C}aUbBJ885&RCK-?R4aZ zwrhB_b&s@WNdC;pdW ze-&850s|m2Ox~H~--P)SvHr6RKByjZC)@w^Nx6*KI=f8Kr~Nme>0f^o1O1@+*8+d_ z0#gh|LkCO;kVESLdu#t^*#L5a$N#x7Q0;#%B)s^0>;F2)z@%*cYk|LY6PT1BDv;99 zm98j{lqZF+&h<&!05@`vOR*;kLHdR4f9nKr-v^y2i1%(pVtQO$`Q=8AXWlyJd|mx} zK5b{Cxk7sDw=A)T}j=szzo z+>1uRAYNG_>H3-jlw}%7`G<$YGoV;PdE-QrRqJVbri0t?i@6Ts-#+%A&jT+;4UKoP zq@Ua|Q{5$0v!9fb^D$#MZ{kd5`Xp;Ul(B8D?5(QBn$Ghq*D8w&wV=OR|Fs&7VABQ{ z5f?#0%Fh@wbKE*1+u%ilWQehw|89j*`y!@*$p(1;eclY(ZuBsmC)K;;Y~1^3>`t|h0I(XTe2iw)th`@V-r>@0qWh#6X=+5+2Y?{Y|u~*L0cydzV>->QoaPNQ| z(z*#m>_2xFhw8y}u4<&Ia`13M(A8&-x;`p*1WVR8cCB<+QA-KwQ{>HXsN@$tYsZoQx8b)c3;kt^muygl~CJzaqvnXXj-v(X~i8qtW# zyrh$gW2ybvzfJkCgRV*s)mBu-7A9|#9iPI(dVIs@{!_;rK5`Ij+3eEbEYUO9GvQh< zCy`@x$KKY0XbUbc5vIlW99w)wL{5}yCsN!aeLAw!v=jHx)MHs^X^+yd%oPA^ogzkx z2+s`CCUk1W` zj-kq4eUMIEi~>FflT7WO(wCl~%e=8qB#wJ}y$x^($KW8kv%Rx<^~Ko4V9KBB|94Zv zh+c~i69h}M@Yh{Qnf+k+o>k)ZRu3;LWqkgnx3(@%--xcVfwRl?LoQ;Uh?o2vYGv#l z0&iv8uum_obsCfDz4JHy&&C*hwkr>zQQ$$h&VQR+#)lU{r*BUZgk5Jkm2U#ke^^(5l`#t+4co^3p>;YRL-MN*@*ZgBh;Y&?#!Kp5GXbs9+#cab^4&)Vo5i`Y|3MN;#8@NEN=?%UoH5O=U7tf7&0+<;6KUQDs z4tovuIYw}o1;{g<>;-#Y6sf^sH6S@wF!Nk#Ah{MS_V^h_rC@Hj-|bRJJwBZZ4|=0% zY>n-|DxI~~QjK5x&9r`06^79@S~orge$%_{-snrGJS`-5S%zc%bH*T$8LU zu>&ige4KB-63wTyi5S6n?O~@eXHdRPgXb^)v6HadL_c~if{ykztJDa*^}kQ)pb7dh zUJW*i`@>qQ#yIDnjr|GJmI~&hJXet;z5nb9|Cp`;97AO%JsswM)RI4^HH19{G#&e) z`(H-!XB{lpAA)#^YCAA7;vW?IyiSSisMM0oXS{%GjIme;lqq^l&;B zd<7Jevuyak3Ysv$@+voyi64zwU{vMb#bm@izSg1I6>mKK(HjK(Qi+@L Cg>ps! literal 0 HcmV?d00001 diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc index 1186fe61c..92379200b 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc @@ -461,7 +461,11 @@ Add a new test to verify error handling when a flight code is not found. . Open the test in canvas view. . In the Testing panel, click the *Run all tests in this file* (▶) button. . Click *Run Test*. ++ +image::tut-flights-munit-run-test-menu.png["Testing panel run button menu with Run Test and Run Test with Coverage options"] . Verify the tests pass with the expected responses. ++ +image::tut-flights-munit-test-results.png["Testing panel showing 3 of 3 tests passed for the american-flights-api-test.xml suite"] === Measure Test Coverage diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc index e8860ccb1..3cfad6c73 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc @@ -12,6 +12,8 @@ Start creating the American Flights API spec: // Open the ACB IDE include::partial$acb-reusable-steps.adoc[tags="open-ide"] ++ +image::tut-flights-acb-activity-bar-icon.png["Anypoint Code Builder icon in the VS Code activity bar"] . From *Create*, click *Design an API*. . Configure your API spec project using these values: + @@ -82,7 +84,6 @@ MuleSoft Vibes then creates a testing file named `API_TESTING_RESULTS.md`. Your Publish the American Flights API spec to Exchange so that other team members can find and implement it. . In Anypoint Code Builder, open the spec for your American Flights API project, such as `american-flights-api.yaml`. -. Open the Command Palette. + // Pointer to Command Palette include::partial$acb-reusable-steps.adoc[tags="open-command-palette"] @@ -92,6 +93,8 @@ include::partial$acb-reusable-steps.adoc[tags="open-command-palette"] ---- MuleSoft: Publish API Project to Exchange ---- ++ +image::tut-flights-publish-command-palette.png["Command Palette with MuleSoft: Publish API Project to Exchange highlighted"] . If prompted, click *Allow*, and follow the prompts to sign in to Anypoint Platform. . If you haven't selected a business group, select one now in *Select a Business Group*. . Enter the asset version: `1.0.0`. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc index 266323a07..2902f9431 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc @@ -37,21 +37,37 @@ MuleSoft: Implement an API Specification After scaffolding completes, confirm that the generated project contains listener configuration, APIKit router flows, and operation-specific flow stubs. +image::tut-flights-scaffold-project.png["Flow list showing the scaffolded american-flights-api-main flow with a Listener and Router, alongside error handler flows"] + == Connect to a Database Using the Database Connector Add and configure a Database Select operation to retrieve flight data from a database. . Open the `get:\flights:american-flights-api-config` flow ++ +image::tut-flights-db-flow-overview.png["The get:\flights:american-flights-api-config flow with an All Flights Database Select component followed by a Transform Message component"] . Click *Add Component* (+) before *Transform Message*, and then select *Connectors > Database > Select*. . Click the *Select* component to open its properties panel. . Change the name to `All Flights`. . In the *Select* component properties, click *Add New Connection* next to *Connection Config*. ++ +image::tut-flights-db-select-add-connection.png["Database - Select properties panel with the Add New Connection link next to Connection Config"] . Set the connection to *MySQL Connection*. ++ +image::tut-flights-db-mysql-connection.png["Connection Config dialog with Name set to Config and Connection set to MySQL Connection"] . Click *Configure library* next to *MySQL JDBC Driver*. ++ +image::tut-flights-db-configure-library.png["Required Libraries section with the Configure library option next to MySQL JDBC Driver"] . Review the default settings for the recommended library, and in the *Select Library Source* drop-down menu, select *Maven Dependency*. ++ +image::tut-flights-db-library-source-maven.png["Select Library Source drop-down menu set to Maven Dependency"] . Enter `mysql:` in the *Search Maven Central Repository* text field, and select *mysql:mysql-connector-java* in the results. ++ +image::tut-flights-db-maven-search-results.png["Search Maven Central Repository results showing mysql:mysql-connector-java and other matches"] . Enter `8.0.30` in the *Version* text field, and click *Apply*. . Confirm that the MySQL JDBC Driver is set. ++ +image::tut-flights-db-driver-configured.png["Required Libraries section confirming MySQL JDBC Driver is set to mysql:mysql-connector-java:8.0.30"] . Set the following configuration values: + [%header,cols="20a,60a"] @@ -64,8 +80,12 @@ Add and configure a Database Select operation to retrieve flight data from a dat | *Password* | `mule` | *Database* | `training` |=== ++ +image::tut-flights-db-connection-config.png["Connection Config dialog with Host, Port, User, Password, and Database fields set"] . Click *Test Connection* and confirm that you see a *Connection is valid* message. ++ +image::tut-flights-db-connection-valid.png["Connection is valid confirmation message"] . Click *Add* and close the *Database - Select Config* tab. . In the *Database - Select* properties panel, add a query to select all records from the `american` table: + @@ -73,4 +93,6 @@ Add and configure a Database Select operation to retrieve flight data from a dat ---- SELECT * FROM american ---- ++ +image::tut-flights-db-select-query.png["Database - Select properties panel with the General tab showing the SQL Query Text field set to SELECT * FROM american"] . In your REST client, test `http://localhost:8081/api/flights`. Confirm that you see a response with all flight data. From db81bdbf3757fe4896982563a033473bf58d1008 Mon Sep 17 00:00:00 2001 From: Cristian-Venticinque Date: Thu, 10 Sep 2026 16:41:47 -0300 Subject: [PATCH 3/3] Some editorial updates --- code-builder-home/modules/ROOT/nav.adoc | 3 +- .../ROOT/pages/tut-flights-api-tutorial.adoc | 6 +- .../ROOT/pages/tut-flights-debug-api.adoc | 141 +++++++++++++ .../ROOT/pages/tut-flights-deploy-api.adoc | 14 +- .../ROOT/pages/tut-flights-design-api.adoc | 8 +- .../ROOT/pages/tut-flights-implement-api.adoc | 23 ++- ...tut-flights-manage-secure-monitor-api.adoc | 8 +- ...i.adoc => tut-flights-munit-test-api.adoc} | 188 +++--------------- .../tut-flights-validate-transform-data.adoc | 29 ++- 9 files changed, 222 insertions(+), 198 deletions(-) create mode 100644 code-builder-home/modules/ROOT/pages/tut-flights-debug-api.adoc rename code-builder-home/modules/ROOT/pages/{tut-flights-debug-test-api.adoc => tut-flights-munit-test-api.adoc} (67%) diff --git a/code-builder-home/modules/ROOT/nav.adoc b/code-builder-home/modules/ROOT/nav.adoc index 5ca084061..6a2d5cc7a 100644 --- a/code-builder-home/modules/ROOT/nav.adoc +++ b/code-builder-home/modules/ROOT/nav.adoc @@ -33,7 +33,8 @@ *** xref:tut-flights-design-api.adoc[] *** xref:tut-flights-implement-api.adoc[] *** xref:tut-flights-validate-transform-data.adoc[] -*** xref:tut-flights-debug-test-api.adoc[] +*** xref:tut-flights-debug-api.adoc[] +*** xref:tut-flights-munit-test-api.adoc[] *** xref:tut-flights-deploy-api.adoc[] *** xref:tut-flights-manage-secure-monitor-api.adoc[] diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc index d5905bf40..9f742a78d 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-api-tutorial.adoc @@ -14,8 +14,10 @@ Design the American Flights API specification, test it with the built-in mocking Scaffold the specification into an integration project and connect to a MySQL database. . xref:tut-flights-validate-transform-data.adoc[] + Add business logic validation and transform database records to meet the API contract. -. xref:tut-flights-debug-test-api.adoc[] + -Run the application locally, use the debugger, and create MUnit tests. +. xref:tut-flights-debug-api.adoc[] + +Run the application locally and use the debugger to trace request execution and error routing. +. xref:tut-flights-munit-test-api.adoc[] + +Create and run MUnit tests to verify your API behaves correctly. . xref:tut-flights-deploy-api.adoc[] + Deploy the application to CloudHub 2.0. . xref:tut-flights-manage-secure-monitor-api.adoc[] + diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-debug-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-debug-api.adoc new file mode 100644 index 000000000..69d2340d1 --- /dev/null +++ b/code-builder-home/modules/ROOT/pages/tut-flights-debug-api.adoc @@ -0,0 +1,141 @@ += Debug the American Flights API +:imagesdir: ../assets/images +:page-pagination: + +After implementing your API flows, validate that the application behaves as expected before writing automated tests. In this section, you run the project locally and use the debugger to trace request execution and error routing. + +== Run the Application Locally + +Before testing your API, start the Mule application locally to verify the implementation works as designed. + +. In Anypoint Code Builder, open your implementation project and verify that the listener in `american-flights-api-main` is configured for host `0.0.0.0` and port `8081`. +. Click the *Listener* element in your flow. +. On the *Connection Config* field, click *Edit Connection*. +. Verify the values and update them if necessary: ++ +[%header,cols="20a,60a"] +|=== +| Field Name | Field Value + +| *Host* | `0.0.0.0` +| *Port* | `8081` +|=== ++ +// Pointer to Run and Debug +include::partial$acb-reusable-steps.adoc[tags="open-run-debug"] +. In the top menu, ensure *Run Mule Application* is selected and click *Start Debugging*. +. Wait for the application to deploy. You see deployment messages in the *Output* panel. ++ +When deployment is complete, you see a message similar to: ++ +[source,command] +---- +********************************************************************** +* - - + APPLICATION + - - * - - + STATUS + - - * +********************************************************************** +* american-flights-api-implementation-1.0.0 * DEPLOYED * +********************************************************************** +---- +. In your REST client (such as Advanced REST Client), test your API endpoints: +* Send `GET http://localhost:8081/api/flights` and verify a `200` response with flight data. +* Send `GET http://localhost:8081/api/flights/AA123` and verify the flight-by-ID response path works. +* Send `GET http://localhost:8081/api/flights/123` and verify a `400` response from your API specification's path parameter validation. + +== Understand the Debugger + +The built-in debugger in Anypoint Code Builder helps you understand how your Mule application processes requests, inspect variable values at runtime, and trace error-handling paths. + +Breakpoints pause execution at specific components in your flow, so you can inspect the current state of the message payload, attributes, and variables. There are two types of breakpoints: + +* *Component Breakpoint*: Pauses execution before a specific component executes (such as a Transform Message or Database Select operation). +* *Error Breakpoint*: Pauses execution when an error occurs, allowing you to inspect the error object. + +When the application running in debug mode reaches a component with a breakpoint, execution pauses and the IDE highlights the current component with a yellow border. + +The *Debug* panel opens automatically, showing the current values of Mule variables, message attributes, payload, and the flow execution path leading to the current breakpoint. + +== Set Component Breakpoints + +Set breakpoints in your application to pause execution and evaluate values at runtime. + +. With your application stopped, open the canvas view of your `american-flights-api-implementation.xml` file. +. Locate the flow `get:\flights\(flightId):american-flights-api-config`. +. Right-click the *Flight by ID* Database Select operation. +. Select *Add Breakpoint* from the context menu. ++ +A red dot appears on the component, indicating an active breakpoint. +. Add a breakpoint on the *Transform Flight* component after the database query to inspect the payload. + +== Start a Debug Session + +. Click the *Run and Debug* icon in the activity bar. +. Ensure *Debug Mule Application* is selected in the dropdown. +. Click the *Start Debugging* button (green play icon). +. Wait for the application to deploy in debug mode. You see `Debugger listening on port XXXX` in the output panel. + +== Step Through the Execution and Inspect Variables and Payload + +. After your application starts running in debug mode, send a request from your REST client: ++ +[source,command] +---- +GET http://localhost:8081/api/flights/AA123 +---- ++ +The execution pauses at the *Flight by ID* breakpoint. +. In the *Variables* section of the Debug panel, expand *Mule Message > Payload*. ++ +At this point, the message is empty because the query to the database hasn't executed. +. Expand *Mule Message > Attributes* to see HTTP request information: +* `attributes.uriParams.flightId`: The flight ID from the URL. +* `attributes.headers`: HTTP headers. +* `attributes.method`: HTTP method (GET, POST, and so on). +. Expand *Variables* to see Mule variables created by Transform Message components: +* `vars.flightCodeMap`: The flight code mapping. +* `vars.dbFlightId`: The database ID for the flight. +. To evaluate a DataWeave expression at the current breakpoint: +.. In the Debug panel, locate the *Watch* section. +.. Click the *+* icon to add a watch expression. +.. Enter a DataWeave expression, such as: ++ +[source,dataweave] +---- +attributes.uriParams.flightId +---- +.. Press Enter. The IDE evaluates the expression and displays the result. +. Click *Step Over* (or press F10) to continue the execution. +. Execution stops at the *Transform Flight* component. +. Expand *Mule Message > Payload*. ++ +Notice that now the message contains the results from the database query. +. Click *Stop* (SHIFT+F5) to finish debugging. + +== Debug Error Paths + +To understand how your API handles errors, debug the validation and error-handling logic. + +. Set breakpoints on: +* The Choice router in `get:\flights\(flightId):american-flights-api-config`. +* The Raise Error component inside the *When* path. +. Start debugging and send an invalid request in your REST client: ++ +[source,command] +---- +GET http://localhost:8081/api/flights/AA999 +---- ++ +The execution pauses at the Choice router. +. Inspect `vars.dbFlightId` (should be `null` because `AA999` isn't in the mapping). +. Click *Step Over* (F10). ++ +Execution moves to the *When* path and pauses at Raise Error. +. Click *Step Over* (F10). ++ +Execution pauses at the On Error Propagate handler for `VALIDATION:FLIGHT_NOT_FOUND`: +. In the Debug panel, expand the `error` object and verify: +* `error.errorType`: `VALIDATION:FLIGHT_NOT_FOUND` +* `error.description`: `"Flight code AA999 not found in our system"` +. Inspect the Logger component's message evaluation. +. Click *Continue* (F5) to complete the error response. + +Once your application behaves as expected, add automated tests in xref:tut-flights-munit-test-api.adoc[]. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc index fa6037d7b..303d12578 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-deploy-api.adoc @@ -6,13 +6,11 @@ After implementing, debugging, and testing your API locally, you're ready to dep In this section, you deploy your American Flights API to CloudHub 2.0. You configure it in API Manager, apply a security policy, and monitor its performance using Runtime Manager in the pages that follow. -See xref:int-deploy-mule-apps.adoc[] for more information about CloudHub and CloudHub 2.0 deployment concepts. - -== Deploy Your Application to CloudHub 2.0 from Anypoint Code Builder - CloudHub 2.0 provides a fully managed, containerized deployment environment for your Mule applications. Deploying from Anypoint Code Builder is a streamlined process that packages your application and deploys it directly to the cloud. -=== Prerequisites for Deployment +See xref:int-deploy-mule-apps.adoc[] for more information about CloudHub and CloudHub 2.0 deployment concepts. + +== Prerequisites for Deployment Before deploying to CloudHub 2.0, verify that you have: @@ -21,7 +19,7 @@ Before deploying to CloudHub 2.0, verify that you have: * An application that passes all MUnit tests. * An application that runs successfully in debug mode locally. -=== Step 1: Configure Deployment Settings and Deploy Your Project +== Configure Deployment Settings and Deploy Your Project The first time you deploy an application to CloudHub 2.0, Anypoint Code Builder creates a deployment settings file. After modifying the deployment settings, deploy your project with those settings. @@ -55,7 +53,7 @@ NOTE: Worker size and count affect your CloudHub 2.0 costs. For this tutorial, u The deployment process starts and usually takes from two to five minutes. After this period, look for an ACB notification with a message similar to this: `The 'american-flights-api-implementation' project was published to the 'Sandbox' environment in CloudHub 2.0 'Cloudhub-US-East-2 - Shared Space'. The deployment is now processing. Monitor its progress in Runtime Manager.` -=== Step 2: Monitor the Deployment Process +== Monitor the Deployment Process After initiating the deployment, open Runtime Manager to monitor the status. @@ -65,7 +63,7 @@ After initiating the deployment, open Runtime Manager to monitor the status. + If the application is still deploying and shows status *Not Running*, wait a few minutes for the process to finish. -=== Step 3: Verify Your Deployed Application +== Verify Your Deployed Application Once deployed, verify that your API is accessible and functioning correctly. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc index 3cfad6c73..e509d760d 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-design-api.adoc @@ -21,9 +21,13 @@ image::tut-flights-acb-activity-bar-icon.png["Anypoint Code Builder icon in the |=== | Field Name | Field Value -| *Enable this API for Topics and Actions* | Select this checkbox to add the applicable agent topic metadata and apply centralized governance rulesets to the project. See xref:ai-enabling-api-project-topic-center.adoc[] for more information. +| *Enable this API for Topics and Actions* | Select this checkbox to add the applicable agent topic metadata and apply centralized governance rulesets to the project. ++ +See xref:ai-enabling-api-project-topic-center.adoc[] for more information. | *Project Name* | `American Flights API` -| *Project Location* | Your home directory is selected by default. This is the root folder of your project, which acts as your workspace. Don't select a different project directory for this API spec. See xref:start-add-folders.adoc[] for more information. +| *Project Location* | Your home directory is selected by default. ++ +This is the root folder of your project, which acts as your workspace. Don't select a different project directory for this API spec. See xref:start-add-folders.adoc[] for more information. | *API Type* | *REST API* | *API Specification Language* | *OAS 3.0 (YAML)* |=== diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc index 2902f9431..f70da6843 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-implement-api.adoc @@ -10,17 +10,28 @@ To implement the API, you scaffold the API specification into an integration pro Now that the American Flights API specification is available in Anypoint Exchange, scaffold it into a new integration project to generate the API interface. -You can ask MuleSoft Vibes to scaffold the locally generated API spec with this message: +[tabs] +==== +Use MuleSoft Vibes:: ++ +-- +Ask MuleSoft Vibes to scaffold the locally generated API spec with this message: [source,command] ---- Scaffold the american-flights-api.yaml API spec. ---- +-- -Or, you can manually scaffold the API spec from Anypoint Exchange: - -// Pointer to Command Palette -include::partial$acb-reusable-steps.adoc[tags="open-command-palette"] +Manually Scaffold from Anypoint Exchange:: ++ +-- +// Can't reuse because collapsible block conflicts with tab syntax +. Open the Command Palette. +.. Use the keyboard shortcuts: +*** Mac: Cmd+Shift+p +*** Windows: Ctrl+Shift+p +.. Select View > Command Palette. . Provide this command: + [source,command] @@ -34,6 +45,8 @@ MuleSoft: Implement an API Specification .. Find your API specification on Anypoint Exchange, and click *Add Asset* to insert the API name into the field. .. Select an existing workspace, or create a new one by providing a name and a location. .. Click *Create Project* to start scaffolding the specification into a new implementation project. +-- +==== After scaffolding completes, confirm that the generated project contains listener configuration, APIKit router flows, and operation-specific flow stubs. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc index ceb7e5ecd..01bc682a1 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-manage-secure-monitor-api.adoc @@ -6,7 +6,7 @@ After deploying your American Flights API to CloudHub 2.0, register it with API == Manage the API with API Manager -xref:api-manager::api-instance-landing-page.adoc[API Manager] lets you manage, monitor, and secure your APIs. After deploying your application to CloudHub 2.0, register it with API Manager to apply governance policies, track usage, and control access. +Use xref:api-manager::api-instance-landing-page.adoc[API Manager] to manage, monitor, and secure your APIs. After deploying your application to CloudHub 2.0, register it with API Manager to apply governance policies, track usage, and control access. === Step 1: Navigate to API Manager @@ -37,11 +37,7 @@ Your API is now registered with API Manager and ready for policy configuration. == Secure the API with a Policy -Policies in API Manager let you enforce security, compliance, and governance rules on your API without modifying application code. In this section, you apply a Client ID Enforcement policy to secure your API. - -=== Understand API Policies - -Common policies include: +Policies in API Manager let you enforce security, compliance, and governance rules on your API without modifying application code. In this section, you apply a Client ID Enforcement policy to secure your API. Common policies include: * *Client ID Enforcement*: Requires client applications to authenticate using a client ID and secret. * *Rate Limiting*: Controls the number of requests allowed per time period. diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-munit-test-api.adoc similarity index 67% rename from code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc rename to code-builder-home/modules/ROOT/pages/tut-flights-munit-test-api.adoc index 92379200b..bc28c9590 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-debug-test-api.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-munit-test-api.adoc @@ -1,148 +1,14 @@ -= Debug and Test the American Flights API += Test the American Flights API with MUnit :imagesdir: ../assets/images :page-pagination: -After implementing your API flows, validate that the application behaves as expected before deployment. In this section, you run the project locally, use the debugger to trace request execution and error routing, and add baseline MUnit tests to confirm both successful and failure scenarios. +After debugging your API flows locally, add automated MUnit tests to verify behavior and guard against regressions before deployment. -== Run the Application Locally - -Before testing your API, start the Mule application locally to verify the implementation works as designed. - -. In Anypoint Code Builder, open your implementation project and verify that the listener in `american-flights-api-main` is configured for host `0.0.0.0` and port `8081`. -. Click the *Listener* element in your flow. -. On the *Connection Config* field, click *Edit Connection*. -. Verify the values and update them if necessary: -+ -[%header,cols="20a,60a"] -|=== -| Field Name | Field Value - -| *Host* | `0.0.0.0` -| *Port* | `8081` -|=== - -// Pointer to Run and Debug -include::partial$acb-reusable-steps.adoc[tags="open-run-debug"] -. In the top menu, ensure *Run Mule Application* is selected and click *Start Debugging*. -. Wait for the application to deploy. You see deployment messages in the *Output* panel. -+ -When deployment is complete, you see a message similar to: -+ -[source,command] ----- -********************************************************************** -* - - + APPLICATION + - - * - - + STATUS + - - * -********************************************************************** -* american-flights-api-implementation-1.0.0 * DEPLOYED * -********************************************************************** ----- -. In your REST client (such as Advanced REST Client), test your API endpoints: -* Send `GET http://localhost:8081/api/flights` and verify a `200` response with flight data. -* Send `GET http://localhost:8081/api/flights/AA123` and verify the flight-by-ID response path works. -* Send `GET http://localhost:8081/api/flights/123` and verify a `400` response from your API specification's path parameter validation. - -== Use the Debugger to Troubleshoot - -The built-in debugger in Anypoint Code Builder helps you understand how your Mule application processes requests, inspect variable values at runtime, and trace error-handling paths. - -Breakpoints pause execution at specific components in your flow, so you can inspect the current state of the message payload, attributes, and variables. There are two types of breakpoints: - -* *Component Breakpoint*: Pauses execution before a specific component executes (such as a Transform Message or Database Select operation). -* *Error Breakpoint*: Pauses execution when an error occurs, allowing you to inspect the error object. - -When the application running in debug mode reaches a component with a breakpoint, execution pauses and the IDE highlights the current component with a yellow border. - -The *Debug* panel opens automatically, showing the current values of Mule variables, message attributes, payload, and the flow execution path leading to the current breakpoint. - -=== Set Component Breakpoints - -Set breakpoints in your application to pause execution and evaluate values at runtime. - -. With your application stopped, open the canvas view of your `american-flights-api-implementation.xml` file. -. Locate the flow `get:\flights\(flightId):american-flights-api-config`. -. Right-click the *Flight by ID* Database Select operation. -. Select *Add Breakpoint* from the context menu. -+ -A red dot appears on the component, indicating an active breakpoint. -. Add a breakpoint on the *Transform Flight* component after the database query to inspect the payload. - -=== Start a Debug Session - -. Click the *Run and Debug* icon in the activity bar. -. Ensure *Debug Mule Application* is selected in the dropdown. -. Click the *Start Debugging* button (green play icon). -. Wait for the application to deploy in debug mode. You see `Debugger listening on port XXXX` in the output panel. - -=== Step Through the Execution and Inspect Variables and Payload - -. After your application starts running in debug mode, send a request from your REST client: -+ -[source,command] ----- -GET http://localhost:8081/api/flights/AA123 ----- -+ -The execution pauses at the *Flight by ID* breakpoint. -. In the *Variables* section of the Debug panel, expand *Mule Message > Payload*. -+ -At this point, the message is empty because the query to the database hasn't executed. -. Expand *Mule Message > Attributes* to see HTTP request information: -* `attributes.uriParams.flightId`: The flight ID from the URL. -* `attributes.headers`: HTTP headers. -* `attributes.method`: HTTP method (GET, POST, and so on). -. Expand *Variables* to see Mule variables created by Transform Message components: -* `vars.flightCodeMap`: The flight code mapping. -* `vars.dbFlightId`: The database ID for the flight. -. To evaluate a DataWeave expression at the current breakpoint: -.. In the Debug panel, locate the *Watch* section. -.. Click the *+* icon to add a watch expression. -.. Enter a DataWeave expression, such as: -+ -[source,dataweave] ----- -attributes.uriParams.flightId ----- -.. Press Enter. The IDE evaluates the expression and displays the result. -. Click *Step Over* (or press F10) to continue the execution. -. Execution stops at the *Transform Flight* component. -. Expand *Mule Message > Payload*. -+ -Notice that now the message contains the results from the database query. -. Click *Stop* (SHIFT+F5) to finish debugging. - -=== Debug Error Paths - -To understand how your API handles errors, debug the validation and error-handling logic. - -. Set breakpoints on: -* The Choice router in `get:\flights\(flightId):american-flights-api-config`. -* The Raise Error component inside the *When* path. -. Start debugging and send an invalid request in your REST client: -+ -[source,command] ----- -GET http://localhost:8081/api/flights/AA999 ----- -+ -The execution pauses at the Choice router. -. Inspect `vars.dbFlightId` (should be `null` because `AA999` isn't in the mapping). -. Click *Step Over* (F10). -+ -Execution moves to the *When* path and pauses at Raise Error. -. Click *Step Over* (F10). -+ -Execution pauses at the On Error Propagate handler for `VALIDATION:FLIGHT_NOT_FOUND`: -. In the Debug panel, expand the `error` object and verify: -* `error.errorType`: `VALIDATION:FLIGHT_NOT_FOUND` -* `error.description`: `"Flight code AA999 not found in our system"` -. Inspect the Logger component's message evaluation. -. Click *Continue* (F5) to complete the error response. - -== Create and Run MUnit Tests +Before you begin, complete the debugging steps in xref:tut-flights-debug-api.adoc[]. MUnit is MuleSoft's unit testing framework for Mule applications. Use it to create automated tests that verify your API behaves correctly, without requiring external dependencies or manual testing. Anypoint Code Builder provides integrated support for creating, running, and debugging MUnit tests through a Testing panel, canvas UI, and code editor. -=== Understand MUnit Test Structure +== Understand MUnit Test Structure An MUnit test consists of: @@ -154,11 +20,11 @@ An MUnit test consists of: NOTE: MUnit 3.4.0 or later is required for canvas-based test suite creation in Anypoint Code Builder. -=== Create Your First MUnit Test Suite +== Create Your First MUnit Test Suite Create a test suite to verify the `GET /flights` endpoint returns all flights. -==== Step 1: Create a New MUnit Test Suite +=== Step 1: Create a New MUnit Test Suite . In Anypoint Code Builder, navigate to `src/test/munit` in the Explorer panel. . Right-click the `munit` folder and select *New MUnit Test Suite File*. @@ -181,7 +47,7 @@ Anypoint Code Builder generates a new file with a basic structure: ---- -==== Step 2: Add a Test for Database Operations +=== Step 2: Add a Test for Database Operations Now create your first test case to verify a database query returns flight data successfully. This test uses the actual database configuration from your implementation project. @@ -250,7 +116,7 @@ Alternatively, paste this code in your `munit:test` element in the XML config: + This validation checks that the database query returned at least one record. -==== Step 3: Run the Test +=== Step 3: Run the Test // Pointer to Testing panel include::partial$acb-reusable-steps.adoc[tags="munit-open-testing-panel"] @@ -271,7 +137,7 @@ A successful test shows a green checkmark (✓) and output similar to: [INFO] ------------------------------------------------------------------------ ---- -==== Complete Example +=== Complete Example Here's the complete test structure: @@ -298,11 +164,11 @@ Here's the complete test structure: ---- -=== Advanced Testing: Use Mocks for API Endpoints +== Advanced Testing: Use Mocks for API Endpoints While the previous example tested a database operation directly, you can also test complete API endpoints by adding an HTTP Request configuration and mocking dependencies. This approach allows your tests to run without requiring external systems like databases. -==== Step 1: Add the HTTP Namespace +=== Step 1: Add the HTTP Namespace Before using HTTP components in your test, you need to add the HTTP namespace to your test suite. @@ -329,7 +195,7 @@ Your `` tag should look like this: http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd"> ---- -==== Step 2: Add the HTTP Request Configuration +=== Step 2: Add the HTTP Request Configuration Add an HTTP Request configuration that points to your local Mule application. Copy and paste this configuration in the XML editor before your test cases: @@ -340,7 +206,7 @@ Add an HTTP Request configuration that points to your local Mule application. Co ---- -==== Step 3: Add a Test for GET /flights (Success Path) +=== Step 3: Add a Test for GET /flights (Success Path) Create a test that calls your API endpoint and mocks the database response. @@ -410,7 +276,7 @@ Create a test that calls your API endpoint and mocks the database response. NOTE: The `with-attributes` section identifies which specific Database Select operation to mock by matching the `doc:name` attribute value. Make sure the `whereValue` matches the name you gave to your Database Select component in the implementation flow. -==== Step 4: Add a Test for Error Handling +=== Step 4: Add a Test for Error Handling Add a new test to verify error handling when a flight code is not found. @@ -456,7 +322,7 @@ Add a new test to verify error handling when a flight code is not found. ---- -==== Step 5: Run the Tests +=== Step 5: Run the Tests . Open the test in canvas view. . In the Testing panel, click the *Run all tests in this file* (▶) button. @@ -467,24 +333,20 @@ image::tut-flights-munit-run-test-menu.png["Testing panel run button menu with R + image::tut-flights-munit-test-results.png["Testing panel showing 3 of 3 tests passed for the american-flights-api-test.xml suite"] -=== Measure Test Coverage +== Measure Test Coverage + +MUnit provides built-in coverage reporting that measures the percentage of event processors executed by your tests. Aim for at least 80% coverage for production APIs. -MUnit provides built-in coverage reporting to measure what percentage of your application code is executed by your tests. +After you run tests with coverage, you can view the results in the *Test Coverage* panel or in the console output. The Explorer panel also displays coverage metrics alongside your files, making it easy to identify which parts of your application need additional test coverage. -==== Run Tests with Coverage +To run tests with coverage: . In the Testing panel, click the *Run all tests in this file* (▶) button. . Click *Run Test With Coverage*. + Alternatively, right-click the test suite file in the project explorer and select *Run MUnit Test with Coverage*. -After the tests complete, you can view the coverage report in the *Test Coverage* panel, or in the console output. - -Coverage indicates the percentage of event processors executed by the MUnit test. Aim for at least 80% coverage for production APIs. - -After running tests with coverage, the Explorer panel displays coverage metrics alongside your files, making it easy to identify which parts of your application need additional test coverage. - -=== Best Practices for MUnit Testing +== Best Practices for MUnit Testing Follow these best practices to create maintainable and effective MUnit tests: @@ -496,11 +358,11 @@ Follow these best practices to create maintainable and effective MUnit tests: * *Aim for high coverage*: Target at least 80% code coverage, ensuring all critical paths are tested. * *Test error scenarios*: Don't just test the happy path — validate that your error handlers work correctly too. -=== Troubleshoot Common MUnit Issues +== Troubleshoot Common MUnit Issues When creating and running MUnit tests, you may encounter issues related to test execution, mocking, or runtime configuration. These are some common problems and their solutions to help you resolve test failures. -==== Test Timeout Errors +=== Test Timeout Errors If tests fail with timeout errors: @@ -508,7 +370,7 @@ If tests fail with timeout errors: * Check for infinite loops or blocking operations in your flows. * Ensure mocked components return responses quickly. -==== Mock Not Applied +=== Mock Not Applied If mocks aren't being applied: @@ -516,7 +378,7 @@ If mocks aren't being applied: * Check that the processor type (`db:select`, `ee:transform`, and so on) is correct. * Ensure the mock is defined in the `munit:behavior` section before execution. -==== Assertion Failures +=== Assertion Failures When assertions fail: diff --git a/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc b/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc index 94e62a5ef..3c2815bfd 100644 --- a/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc +++ b/code-builder-home/modules/ROOT/pages/tut-flights-validate-transform-data.adoc @@ -2,7 +2,7 @@ :imagesdir: ../assets/images :page-pagination: -When you scaffold an API specification into an implementation project, APIKit automatically validates incoming requests against your API specification. This includes: +When you scaffold an API specification into an implementation project, APIKit automatically validates incoming requests against your API specification. This validation includes: * *Path parameter formats*: If your API spec defines a pattern (such as `pattern: "^[A-Z]{2}\d+$"`), APIKit validates the format automatically. * *Required vs. optional parameters*: APIKit ensures required parameters are present. @@ -240,7 +240,7 @@ Notice the transformation challenges: . *Nested object creation*: `planeType` and `totalSeats` (flat fields in the database) must become a nested `plane` object in the API response. . *Fields to exclude*: `airlineName` is in the database but not needed in the API response. -=== Open the Transform Message Component +=== Step 1: Open the Transform Message Component In your implementation flow `get:\flights\{flightId}:american-flights-api-config`, you already have a Transform Message component after the Database Select operation. @@ -249,7 +249,7 @@ In your implementation flow `get:\flights\{flightId}:american-flights-api-config Currently, this transform just outputs `payload`, which passes through the raw database structure without transformation. -=== Define Input Metadata +=== Step 2: Define Input Metadata To help DataWeave understand the structure of your database results, define input metadata. @@ -287,7 +287,7 @@ To help DataWeave understand the structure of your database results, define inpu You should now see the input payload structure in the left panel, showing all available database fields. -=== Define Output Metadata +=== Step 3: Define Output Metadata Now define the expected API response format based on your specification. @@ -325,12 +325,15 @@ Now define the expected API response format based on your specification. The output panel now shows the expected response structure with the nested `plane` object. -=== Create the Field Mappings +=== Step 4: Create the Field Mappings With both input and output metadata defined, you can now create the transformation using DataWeave's mapping features. -==== Option A: Use MuleSoft Vibes - +[tabs] +==== +Use MuleSoft Vibes:: ++ +-- . Open MuleSoft Vibes. . Send this message: + @@ -362,10 +365,12 @@ output application/json } } ---- +-- -==== Option B: Write the DataWeave Script Directly - -Alternatively, you can write the complete DataWeave script in the *Script* view: +Write the DataWeave Script Directly:: ++ +-- +You can write the complete DataWeave script in the *Script* view: . Click the *Script* tab in the Transform Message component. . Replace the current content with: @@ -399,8 +404,10 @@ output application/json * `emptySeats: payload[0].seatsAvailable` — renames `seatsAvailable` to `emptySeats`. * `plane: { ... }` — creates a nested object from flat database fields. * `output application/json` — specifies the output format. +-- +==== -=== Test with Real Data +=== Step 5: Test with Real Data Now test your transformation with actual database data.