From 38b815c3c4e2dc4c3e3f74345752d0be4f422818 Mon Sep 17 00:00:00 2001 From: pru46423 Date: Wed, 8 Oct 2025 15:26:11 +0530 Subject: [PATCH 01/12] CEXT-5335:Journaling code and DOc --- src/data/navigation/sections/events.js | 24 + src/pages/events/journaling-tutorial/index.md | 31 ++ .../registration-jounrnaling-events.md | 35 ++ .../runtime-action-code-journaling-api.md | 432 ++++++++++++++++++ .../validating-journaling-integration.md | 90 ++++ 5 files changed, 612 insertions(+) create mode 100644 src/pages/events/journaling-tutorial/index.md create mode 100644 src/pages/events/journaling-tutorial/registration-jounrnaling-events.md create mode 100644 src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md create mode 100644 src/pages/events/journaling-tutorial/validating-journaling-integration.md diff --git a/src/data/navigation/sections/events.js b/src/data/navigation/sections/events.js index a3a9c7e1..8036aa47 100644 --- a/src/data/navigation/sections/events.js +++ b/src/data/navigation/sections/events.js @@ -25,6 +25,30 @@ module.exports = [ } ] }, + { + title: "Journaling Tutorial", + path: "/events/journaling-tutorial/index.md", + pages: [ + { + title: "How it works", + path: "/events/journaling-tutorial/index.md" + }, + + { + title: "Register Commerce Events in Adobe Developer Console for Journaling", + path: "/events/journaling-tutorial/registration-jounrnaling-events.md" + }, + { + title: "Code Development Using Journaling API and Deployment", + path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" + }, + { + title: "Validating Journalling Events Processing", + path: "/events/journaling-tutorial/validating-journaling-integration.md" + } + + ] + }, { title: "Create an App Builder project", path: "/events/project-setup.md", diff --git a/src/pages/events/journaling-tutorial/index.md b/src/pages/events/journaling-tutorial/index.md new file mode 100644 index 00000000..d26bf995 --- /dev/null +++ b/src/pages/events/journaling-tutorial/index.md @@ -0,0 +1,31 @@ +--- +title: Use Events and App Builder to Extend Adobe Commerce +description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. +edition: saas +keywords: + - Extensibility + - Events +--- + +When integrating Adobe I/O Events with App Builder, developers often configure event registrations to directly invoke a **Runtime action**. While this approach works for lightweight use cases, it has an important limitation: Runtime actions must complete within **60 seconds**. If the action does not return a response within this time, Adobe I/O Runtime will terminate it. This makes direct event-to-runtime invocation unsuitable for **long-running** or **blocking** operations. +To address this, Adobe IO Event provides event journaling as an alternative. Journaling captures incoming events and stores them for up to 7 days, allowing developers to: + +- Fetch events asynchronously. +- Process them in bulk at their own pace. +- Avoid runtime execution timeouts. + +## How it works + +Adobe I/O Events Journaling provides a reliable way to consume events asynchronously without requiring direct delivery to a webhook or Runtime action. Journaling stores events temporarily in a dedicated endpoint, allowing applications to pull events at their own pace. This approach supports batch processing, error recovery, and ensures that events are not lost when a consumer is temporarily unavailable. You can read in detail here:[Adobe I/O Events Journaling Guide](https://developer.adobe.com/events/docs/guides/journaling-intro) + +Consider a use case where a product is deleted from the Adobe Commerce catalog. At that point, At that point, an event is emitted asynchronously and sent to Adobe I/O Events.An event provider must first be created.The provider defines the supported event types, such as product deletions or inventory changes, and ensures proper routing.The Adobe I/O Events for Adobe Commerce module enables Adobe Commerce to subscribe to this provider. + +When a product deletion event is emitted, Adobe I/O Events stores it in a journaling endpoint. The endpoint holds events for a period of 7 days. making them available for consumption. Consumers gain access to the journal URL during event registration. +In this integration, an events registration is created with the provider, which returns a journal URL. The App Builder application is then configured with this journal URL so that a Runtime action can use the Events SDK to poll and retrieve events from the journal.A Runtime action then uses the Events SDK to poll the journal. During each execution, the action: + +- Retrieves the last saved position (cursor) from state storage using aio-lib-state. +- Calls the journaling API to fetch all new events since that position. +- Processes and logs event payloads, such as product identifiers and metadata related to the deletion. +- Updates the stored position so the next execution continues from the correct point in the journal. + +For more details on journaling behavior, see the [Adobe I/O Events Journaling FAQ](https://developer.adobe.com/events/docs/support/faq#journaling-faq). diff --git a/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md b/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md new file mode 100644 index 00000000..229f2b20 --- /dev/null +++ b/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md @@ -0,0 +1,35 @@ +--- +title: Use Events and App Builder to Extend Adobe Commerce +description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. +edition: saas +keywords: + - Extensibility + - Events +--- + +# Registering and Validating Integration with the Journaling API + +## Prerequisite Setup + +Create and Configure an Event Provider in Adobe Commerce.Follow the steps in the. +Before configuring journaling, ensure that you’ve completed the standard setup for Adobe Commerce Events and App Builder. + +- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in (Setting up Event Provider in Adobe Commerce) [https://developer.adobe.com/commerce/extensibility/events/tutorial/event-providers/#set-up-event-providers] up to the section +**Sync event metadata with App Builder** + +- To set up your App Builder project, follow the steps in (Set up the Adobe Developer Console and App Builder project locally) https://developer.adobe.com/commerce/extensibility/events/tutorial/deployment/#set-up-the-adobe-developer-console-and-app-builder-project-locally up to the section **Set up your local App Builder environment using the CLI**. + +## Register Commerce Events in Adobe Developer Console for Journaling + +Define which Commerce events to subscribe to and register them within the Adobe Developer Console project. Return to the project workspace in the Developer Console, open the Add Service menu, and select Event. On the Add Events page, choose Commerce Events and select Next. +**Insert Image** +In the Configure Event Registration step, select the event provider created earlier in Adobe Commerce. Select Next and review the events available from the provider. For journaling, do not choose any specific delivery method or Runtime Action. The Journaling API renders by default for the integration. +**Insert Image** +On the final screen, update the Event Registration Name and Description fields. Save the configuration. After saving, the journaling endpoint (journal URL) generates automatically and becomes available for the App Builder application to poll events at its own pace. + +## Validate Integration + +Validate that events from Adobe Commerce reach the journaling endpoint. +In Adobe Commerce, delete a product from the catalog. +Open the Adobe Developer Console and navigate to the Event Browser in the project workspace. +Confirm that the product deletion event appears in the Event Browser. Make sure to click Go to Start button.The Event Browser provides a visual preview of events and includes basic metadata such as event ID, timestamp, and provider. diff --git a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md new file mode 100644 index 00000000..51e732b2 --- /dev/null +++ b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md @@ -0,0 +1,432 @@ +--- +title: Use Events and App Builder to Extend Adobe Commerce +description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. +edition: saas +keywords: + - Extensibility + - Events +--- + +# Code Development and Deployment + +## Writing Run time Action code in App Builder project + +Create a runtime action that processes product event data from Adobe Commerce. The runtime action invokes when product-related events such as product deletions are captured and delivered through Adobe I/O Events Journaling. +When initializing an App Builder project using the app init command, a default folder structure generates under actions/**action-name**. The folder includes an initial index.js file, which serves as the entry point for the runtime action. + +### index.js + +index.js file implements an Adobe I/O Runtime action that consumes events from the Adobe I/O Events Journaling API. Its primary role is to continuously fetch product-related events from Adobe Commerce (such as stock updates, price changes, or deletions), process them, and maintain state for seamless event consumption. + +### High-Level Flow + +- **Authenticate** → Connects to Adobe IMS and retrieves an access token using the provided credentials. +- **Read State** → Checks the Adobe State Library for the last saved journal position (to ensure continuity). +- **Fetch New Events** → Calls the Journaling API to retrieve only the latest events since the last position. +- **Process and Log Events** → Iterates over the events, extracts key details (e.g., SKU, product name, price, stock quantity), and logs them. +- **Update State** → Saves the newest journal position in the state store for the next invocation. +- **Return Response** → Sends back a structured response containing the number of events processed and their details, or an error message if something fails. + +``` js +const { Core, Events } = require('@adobe/aio-sdk') +const stateLib = require('@adobe/aio-lib-state') +const { errorResponse } = require('../utils') +const { context, getToken } = require('@adobe/aio-lib-ims') +const fetch = require('node-fetch') + +/** + * Retrieves an Adobe IMS access token using the provided credentials. + * + * @param {Object} params - Parameters containing IMS configuration and credentials. + * @param {string} params.client_id - Adobe client ID. + * @param {string} params.client_secret - Adobe client secret. + * @param {string} params.ims_org_id - Adobe IMS organization ID. + * @param {string} params.technical_account_id - Technical account ID. + * @param {string} params.technical_account_email - Technical account email. + * @param {string|string[]} params.scopes - Scopes for the token (space/comma separated string or JSON array). + * @returns {Promise} - Returns the generated access token. + * @throws {Error} If token generation fails. + */ +async function getAccessToken(params) { + const scopesArray = parseScopes(params.scopes) + + const config = { + client_id: params.client_id, + client_secrets: [params.client_secret], // must be array for aio-lib-ims + ims_org_id: params.ims_org_id, + technical_account_id: params.technical_account_id, + technical_account_email: params.technical_account_email, + scopes: scopesArray + } + + // Set IMS configuration in context + await context.set('my_event_provider', config) + await context.setCurrent('my_event_provider') + + // Retrieve access token + const token = await getToken() + return token +} + +/** + * Parses the given scopes parameter into an array of scope strings. + * + * @param {string} scopesParam - The scopes parameter from environment or config. + * Can be a JSON array string or a space/comma separated string. + * @returns {string[]} - Array of parsed scopes. + * @throws {Error} If the scopes cannot be parsed. + */ +function parseScopes(scopesParam) { + if (!scopesParam) return [] + + try { + // If it's a JSON array string from .env + if (scopesParam.startsWith('[')) { + return JSON.parse(scopesParam) + } + // Otherwise fallback to space/comma split + return scopesParam.split(/[ ,]+/) + } catch (e) { + throw new Error(`Failed to parse scopes: ${scopesParam}`) + } +} + +/** + * Fetches events from the Adobe I/O Journalling API. + * + * @param {Object} params - Action parameters containing IMS and Journalling details. + * @param {string} params.ims_org_id - Adobe IMS organization ID. + * @param {string} params.apiKey - Adobe API key. + * @param {string} params.journalling_url - Journalling endpoint URL. + * @param {string} accessToken - Adobe IMS access token. + * @param {string} [sincePosition] - Optional position marker to fetch events since last processed position. + * @returns {Promise} - Array of event objects fetched from Journalling API. + * @throws {Error} If required parameters are missing or request fails. + */ +async function fetchEvent(params, accessToken, sincePosition) { + const { ims_org_id, apiKey, journalling_url } = params + + if (!ims_org_id || !apiKey || !accessToken || !journalling_url) { + throw new Error('Missing Adobe I/O credentials in action params') + } + + // Initialize Adobe Events client + const eventsClient = await Events.init(ims_org_id, apiKey, accessToken) + + // Request options + const options = {} + if (sincePosition) { + options.since = sincePosition + } + options.limit = 100 // Fetch up to 100 events in one call + + // Fetch events from journal + const journalling = await eventsClient.getEventsFromJournal(journalling_url, options) + return journalling.events || [] +} + +/** + * Main entrypoint for the Adobe I/O action. + * + * @param {Object} params - Action input parameters. + * @param {string} params.LOG_LEVEL - (Optional) Log level (info, debug, error). + * @returns {Promise} - Returns a success response with fetched events or an error response. + */ +async function main(params) { + const logger = Core.Logger('main', { level: params.LOG_LEVEL || 'info' }) + logger.info('Fetching events from journalling endpoint...') + + try { + // Retrieve access token + const accessToken = await getAccessToken(params) + if (!accessToken) { + throw new Error('Missing access_token in params') + } + + // Initialize state store (Adobe Runtime State) + const state = await stateLib.init() + + // Load last saved journal position to continue from + const lastPositionRes = await state.get('last_journal_position') + const lastPosition = lastPositionRes ? lastPositionRes.value : undefined + logger.info(`Last Position >>> ${lastPosition}`) + + // Fetch events from Adobe Journalling API + const events = await fetchEvent(params, accessToken, lastPosition) + logger.info(`Fetched ${events.length} new event(s).`) + + if (events.length > 0) { + events.forEach((event, index) => { + logger.info(`--- Event #${index + 1} ---`) + logger.info(`Raw Payload:\n${JSON.stringify(event, null, 2)}`) + + // Extract and log event details if available + if (event.event) { + logger.info(`Event ID: ${event.event.id}`) + logger.info(`Type: ${event.event.type}`) + logger.info(`Time: ${event.event.time}`) + + if (event.event.data && event.event.data.value) { + const data = event.event.data.value + if (data.sku) logger.info(`SKU: ${data.sku}`) + if (data.name) logger.info(`Name: ${data.name}`) + if (data.price) logger.info(`Price: ${data.price}`) + if (data.quantity_and_stock_status?.qty !== undefined) { + logger.info(`Quantity in stock: ${data.quantity_and_stock_status.qty}`) + } + } + } + }) + + // Save newest journal position for next invocation + const newestPosition = events[events.length - 1].position + await state.put('last_journal_position', newestPosition) // default TTL + logger.info(`Updated last processed position: ${newestPosition}`) + } + + // Return success response + return { success: true, events_fetched: events.length, events } + } catch (error) { + logger.error('Fetch failed with error:', error) + return errorResponse(500, error.message, logger) + } +} + +exports.main = main +``` + +## Reading Through Adobe I/O Journals + +Adobe I/O Journaling API acts as a queue that holds events temporarily. Each event has a position marker that serves as a cursor. The fetchEvent() function retrieves events from the journaling URL provided in the parameters. +If a previous position exists, the function fetches events starting from that position so only new events are processed. A maximum of 100 events are retrieved per call. After processing, the newest position from the last event is saved in the state store. +This ensures that events are read sequentially and not re-processed. + +## StateLib Variable (aio-lib-state) + +**aio-lib-state** is a key-value store used to persist metadata across function executions. In this code, it stores the last journal position. + +- state.get('last_journal_position') retrieves the saved position from the previous run. + +- state.put('last_journal_position', newestPosition) updates the stored position with the latest marker after events are processed. + +This persistence enables the function to resume from the correct point in the journal even after restarts or failures. + +## Getting IMS Access Token in Detail + +Adobe APIs require an IMS (Identity Management System) access token for authentication. The code uses **aio-lib-ims** to generate this token. +parseScopes() converts the scopes parameter into an array, either by parsing a JSON array string or splitting by spaces/commas. +A configuration object is created with: + +- client_id +- client_secret (wrapped in an array as required by the library) +- ims_org_id +- technical_account_id +- technical_account_email +- scopes +The configuration is stored in context under the key my_event_provider and set as the current provider.The **getToken()** uses the configuration to generate an IMS access token.The resulting access token is then used by the Events SDK to authenticate calls to the journaling API. + +### Utils.js + +This file contains helper functions used by the runtime action: + +- **stringParameters** → Formats parameters into a string (mainly for logging/debugging). +- **fetchEvent** → Makes a simple HTTP request to the journaling endpoint using an access token. +- **errorResponse** → Returns a consistent error response object and logs the error if a logger is provided. +In short, utils.js provides reusable utilities to keep the main action (index.js) clean and focused. + +``` js +const fetch = require('node-fetch'); // Import fetch for Node.js (<18). For Node 18+, global fetch is available. + +/** + * Converts a parameters object into a comma-separated string of key=value pairs. + * + * @param {Object} params - Key-value pairs to convert. + * @returns {string} A string representation of the parameters. + */ +function stringParameters(params) { + return Object.keys(params) + .map(key => `${key}=${params[key]}`) + .join(', '); +} + +/** + * Fetches events from the journalling endpoint. + * + * @async + * @param {Object} params - Configuration for the fetch request. + * @param {string} params.journalling_url - URL of the journalling endpoint. + * @param {string} params.access_token - Access token used for authorization. + * @returns {Promise} JSON response body containing events. + * @throws {Error} If the request fails or the response is not OK (non-200). + */ +async function fetchEvent(params) { + const response = await fetch(params.journalling_url, { + headers: { + 'Authorization': `Bearer ${params.access_token}`, + 'Content-Type': 'application/json' + } + }); + + if (!response.ok) { + throw new Error(`Failed to fetch events: ${response.statusText}`); + } + + return await response.json(); +} + +/** + * Creates a standardized error response object. + * + * @param {number} statusCode - HTTP status code of the error. + * @param {string} message - Description of the error. + * @param {Object} [logger] - Optional logger instance to log the error. + * @returns {Object} A structured error response object. + */ +function errorResponse(statusCode, message, logger) { + if (logger) logger.error(`${statusCode}: ${message}`); + return { success: false, statusCode, message }; +} + +// Export utility functions for use in other modules +module.exports = { + stringParameters, + fetchEvent, + errorResponse +``` + +### Changes to .env file + +A .env file is an environment file that stores sensitive values like API keys, client secrets, and org IDs required by your Adobe App Builder app. It is auto-generated by the Adobe Developer CLI (aio) when you bootstrap a project, using the json configuration file you download from the Adobe Developer Console. + +**Environment Variable Mapping** +When a new Adobe I/O Runtime project is created, .env variables are generated with long names tied to the project and workspace. +For example, for a project named journalTest1 in the Stage workspace, you will see entries like : + +``` js +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_client__id +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_client__secrets +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_technical__account__email +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_technical__account__id +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_scopes +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_ims__org__id ``` +``` + +Sometimes referencing these names in appconfig.yaml may cause errors when generating tokens.So it needs to be simplified. + +```bash +### Adobe I/O Console service account credentials + +CLIENT_ID=*************** +CLIENT_SECRET=*************** +TECH_ACCOUNT_EMAIL=***************@techacct.adobe.com +TECH_ACCOUNT_ID=***************@techacct.adobe.com +IMS_ORG_ID=***************@AdobeOrg + + **Scopes as a JSON array** +AIO_IMS_SCOPES=["AdobeID","openid","read_organizations", +"additional_info.projectedProductContext", +"additional_info.roles","adobeio_api", +"read_client_secret","manage_client_secrets"] +``` + +| Before (auto generated) | After (Simplified) | +|---------------------------------------------------------------------------------|-----------------------| +| `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_client__id` | `CLIENT_ID` | +| `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_client__secrets` | `CLIENT_SECRET` | +| `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_technical__account__email` | `TECH_ACCOUNT_EMAIL` | +| `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_technical__account__id` | `TECH_ACCOUNT_ID` | +| `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_scopes` | `AIO_IMS_SCOPES` | +| `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_ims__org__id` | `IMS_ORG_ID` | + +All other credentials (such as CLIENT_ID, CLIENT_SECRET, TECH_ACCOUNT_ID, IMS_ORG_ID, and AIO_IMS_SCOPES) are auto-generated by the Adobe Developer CLI when you set up your project using the downloaded **json** configuration file from the Adobe Developer Console. These values should not be edited manually. +Two inputs must always be provided explicitly by the developer: + +- JOURNALLING_URL : Obtain this from Developer Console > [Your Project] > journalSep Stage > Event Registration > Event Delivery Method by copying the Journaling Unique API Endpoint. + +- DB_EVENT_KEY : Define any string key (e.g., journalposition1). This key is used by the App Builder State Library to persist the last processed journaling position. + +When setting your environment variables, ensure that values like CLIENT_SECRET are provided without quotes if they are specified as strings. + +### How to get the JOURNALLING_URL + +You can fetch the Journaling Unique API Endpoint from the Adobe Developer Console: + +- Navigate to your project > journalSep (Stage). +- Go to Event Registration. +- Under Event Delivery Method, select Journaling. +- Copy the JOURNALING UNIQUE API ENDPOINT. +- Paste it into your .env file as the value of JOURNALLING_URL. + +### Changes to Appconfig.yaml + +The appconfig.yaml describes your Adobe App Builder project’s runtime actions. +It pulls inputs dynamically from .env using $VARIABLE_NAME. To do this, copy the variable names from .env and place them under the inputs section of the runtime action in appconfig.yaml. This way, developers don’t manually copy-paste secrets into the YAML, deployments can update credentials by simply changing .env, and secrets stay out of source code while remaining easy to rotate. + +``` yaml +application: + actions: actions + web: web-src + runtimeManifest: + packages: + journaltestfinal: + license: Apache-2.0 + actions: + journaltest: + function: actions/journaltest/index.js + web: 'yes' + runtime: nodejs:22 + inputs: + LOG_LEVEL: info + apiKey: $SERVICE_API_KEY + journalling_url: $JOURNALLING_URL + client_id: $CLIENT_ID + client_secret: $CLIENT_SECRET + technical_account_email: $TECH_ACCOUNT_EMAIL + technical_account_id: $TECH_ACCOUNT_ID + ims_org_id: $IMS_ORG_ID + db_event_key: $DB_EVENT_KEY + scopes: $AIO_IMS_SCOPES + annotations: + require-adobe-auth: false + final: true + triggers: + everyMin: + feed: /whisk.system/alarms/interval + inputs: + minutes: 1 + rules: + everyMinToEventjournal: + trigger: everyMin + action: +``` + +A trigger in Adobe I/O Runtime (built on Apache OpenWhisk) represents an event source. Triggers can fire on a schedule, in response to external events, or based on system activity. They do not execute code by themselves but are linked to actions through rules. +In this example, the trigger everyMin is created using the system-provided alarm feed/whisk.system/alarms/interval. The alarm feed generates periodic events at a defined interval. The inputs specify the interval configuration. + +- minutes: 1 means the trigger will fire every one minute. +- Each time the trigger fires, it produces an event document that can be consumed by one or more rules. + +This trigger acts as a scheduler for invoking actions at regular intervals. +A rule links a trigger to an action. When the trigger fires, the associated action is automatically executed. +In this example, the rule everyMinToEventjournal connects the everyMin trigger to the eventjournal action. The flow works as follows: + +- The everyMin trigger fires every minute. +- The rule detects that the trigger has fired. +- The linked eventjournal action is invoked automatically. +- The eventjournal action is expected to contain the logic for reading events from the Adobe I/O Events Journaling API. By wiring the rule this way, the journaling action runs once per minute, polling the journal for any new events and processing them. + +## Building and deploying application + +Before building and deploying the App Builder project, ensure the following dependencies are installed and available: + +```bash +npm install @adobe/aio-sdk +npm install @adobe/aio-lib-state +npm install @adobe/aio-lib-ims +``` + +Now deploy application using: + +```bash +aio app deploy +``` diff --git a/src/pages/events/journaling-tutorial/validating-journaling-integration.md b/src/pages/events/journaling-tutorial/validating-journaling-integration.md new file mode 100644 index 00000000..c4f34537 --- /dev/null +++ b/src/pages/events/journaling-tutorial/validating-journaling-integration.md @@ -0,0 +1,90 @@ +--- +title: Use Events and App Builder to Extend Adobe Commerce +description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. +edition: saas +keywords: + - Extensibility + - Events +--- + +# Validating Journalling Events Processing + +## List Recent Activations: + +Run the follwing command: + +```bash + aio rt activations list --limit 10 + ``` + +**What it does:** +Lists the last 10 activations (executions) in Adobe I/O Runtime. It shows both triggers (for example, everyMin) and actions (for example, journalaction), along with their status, execution time, and IDs. +Sample output (masked): + +```bash + 09/05 11:36:10 success nodejs:22 0.0.1 ************ warm 15 0 143ms journalseptember/journalaction + 09/05 11:36:10 success trigger 0.0.1 ************ -- -- -- -- everyMin + 09/05 11:35:10 success nodejs:22 0.0.1 ************ warm 6 0 231ms journalseptember/journalaction + 09/05 11:35:10 success trigger 0.0.1 ************ -- -- -- -- everyMin + 09/05 11:32:10 success trigger 0.0.1 ************ -- -- -- -- everyMin + ``` + +trigger everyMin > Scheduler fired. +journalaction (nodejs:22) > Action executed. +success > Run completed without errors. +duration (ms) > Execution time. + +## View Logs from the Action + +When an action entry appears (for example, nodejs:22 journalseptember/journalaction), copy its activation ID and run: + +```bash +aio rt activation logs +``` + +**What it does:** +Displays the stdout/stderr logs generated by the action during execution. Use it to debug and verify that journalling logic executed correctly. + +### Case A: No new events + +The activation logs shows 0 Events in logs.This means the action ran successfully but no new events were available. + +```bash +2025-09-05T06:06:10.574Z stdout: [journalaction] info: Fetching events from journalling endpoint... +2025-09-05T06:06:10.675Z stdout: [journalaction] info: Last Position >>> ************ +2025-09-05T06:06:10.713Z stdout: [journalaction] info: Fetched 0 new event(s). +``` + +### Case B: Event read from Commerce + +When an event is read by the journal, the logs display the raw payload and event details. +This indicates the journal successfully read a Commerce event (in this example, a productdelete event) and updated the last processed position. +In Developer Console > Projects → **projectname** > stage > Events > Event Browser, the Last read position should match what appears in the logs. This confirms the event was fully processed. + +```bash + 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Raw Payload: { ... } <-- masked payload + 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Event ID: ************ + 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Type: com.adobe.commerce.productdelete + 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Time: + 2025-09-05T06:27:02.455Z + 2025-09-05T06:28:10.754Z stdout: [journalaction] info: SKU: fcdcd 2025-09-05T06:28:10.782Z stdout: [journalaction] info: Updated last processed position: + ``` + +## Inspect the Action Result + +Run: + +```bash +aio rt activation result +``` + +**What it does:** +Shows the returned result/output of the action execution, such as a success confirmation or event details. + +## Validate End-to-End Flow + +- Ensure everyMin appears once every minute. +- Ensure each trigger is followed by journalaction. +- Both must show success. +- If logs say “Fetched 0 new event(s)” > the system is healthy but idle. +- If logs show a raw payload → an event was received and processed from Commerce. From 62e7747791de57aa20dacb04a604e42abf2b912a Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 23 Oct 2025 10:58:32 -0500 Subject: [PATCH 02/12] Apply suggestions from code review Co-authored-by: Angel Rojo --- src/pages/events/journaling-tutorial/index.md | 2 +- .../journaling-tutorial/registration-jounrnaling-events.md | 4 ++-- .../journaling-tutorial/runtime-action-code-journaling-api.md | 3 ++- .../journaling-tutorial/validating-journaling-integration.md | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/pages/events/journaling-tutorial/index.md b/src/pages/events/journaling-tutorial/index.md index d26bf995..3b5f462a 100644 --- a/src/pages/events/journaling-tutorial/index.md +++ b/src/pages/events/journaling-tutorial/index.md @@ -18,7 +18,7 @@ To address this, Adobe IO Event provides event journaling as an alternative. Jou Adobe I/O Events Journaling provides a reliable way to consume events asynchronously without requiring direct delivery to a webhook or Runtime action. Journaling stores events temporarily in a dedicated endpoint, allowing applications to pull events at their own pace. This approach supports batch processing, error recovery, and ensures that events are not lost when a consumer is temporarily unavailable. You can read in detail here:[Adobe I/O Events Journaling Guide](https://developer.adobe.com/events/docs/guides/journaling-intro) -Consider a use case where a product is deleted from the Adobe Commerce catalog. At that point, At that point, an event is emitted asynchronously and sent to Adobe I/O Events.An event provider must first be created.The provider defines the supported event types, such as product deletions or inventory changes, and ensures proper routing.The Adobe I/O Events for Adobe Commerce module enables Adobe Commerce to subscribe to this provider. +Consider a use case where a product is deleted from the Adobe Commerce catalog. At that point, an event is emitted asynchronously and sent to Adobe I/O Events. An event provider must first be created. The provider defines the supported event types, such as product deletions or inventory changes, and ensures proper routing. The Adobe I/O Events for Adobe Commerce module enables Adobe Commerce to subscribe to this provider. When a product deletion event is emitted, Adobe I/O Events stores it in a journaling endpoint. The endpoint holds events for a period of 7 days. making them available for consumption. Consumers gain access to the journal URL during event registration. In this integration, an events registration is created with the provider, which returns a journal URL. The App Builder application is then configured with this journal URL so that a Runtime action can use the Events SDK to poll and retrieve events from the journal.A Runtime action then uses the Events SDK to poll the journal. During each execution, the action: diff --git a/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md b/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md index 229f2b20..83c5817a 100644 --- a/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md +++ b/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md @@ -14,10 +14,10 @@ keywords: Create and Configure an Event Provider in Adobe Commerce.Follow the steps in the. Before configuring journaling, ensure that you’ve completed the standard setup for Adobe Commerce Events and App Builder. -- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in (Setting up Event Provider in Adobe Commerce) [https://developer.adobe.com/commerce/extensibility/events/tutorial/event-providers/#set-up-event-providers] up to the section +- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in [Setting up Event Provider in Adobe Commerce](https://developer.adobe.com/commerce/extensibility/events/tutorial/event-providers/#set-up-event-providers) up to the section **Sync event metadata with App Builder** -- To set up your App Builder project, follow the steps in (Set up the Adobe Developer Console and App Builder project locally) https://developer.adobe.com/commerce/extensibility/events/tutorial/deployment/#set-up-the-adobe-developer-console-and-app-builder-project-locally up to the section **Set up your local App Builder environment using the CLI**. +- To set up your App Builder project, follow the steps in [Set up the Adobe Developer Console and App Builder project locally](https://developer.adobe.com/commerce/extensibility/events/tutorial/deployment/#set-up-the-adobe-developer-console-and-app-builder-project-locally) up to the section **Set up your local App Builder environment using the CLI**. ## Register Commerce Events in Adobe Developer Console for Journaling diff --git a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md index 51e732b2..09548c5f 100644 --- a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md +++ b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md @@ -292,6 +292,7 @@ module.exports = { stringParameters, fetchEvent, errorResponse + } ``` ### Changes to .env file @@ -308,7 +309,7 @@ AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_client__secrets AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_technical__account__email AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_technical__account__id AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_scopes -AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_ims__org__id ``` +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_ims__org__id ``` Sometimes referencing these names in appconfig.yaml may cause errors when generating tokens.So it needs to be simplified. diff --git a/src/pages/events/journaling-tutorial/validating-journaling-integration.md b/src/pages/events/journaling-tutorial/validating-journaling-integration.md index c4f34537..13eceb2f 100644 --- a/src/pages/events/journaling-tutorial/validating-journaling-integration.md +++ b/src/pages/events/journaling-tutorial/validating-journaling-integration.md @@ -11,7 +11,7 @@ keywords: ## List Recent Activations: -Run the follwing command: +Run the following command: ```bash aio rt activations list --limit 10 From fd1db7834ec009d89a2366c8d3db26d0d364002e Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 23 Oct 2025 15:58:28 -0500 Subject: [PATCH 03/12] Review edits --- src/data/navigation/sections/events.js | 18 ++- src/pages/events/journaling-tutorial/index.md | 18 +-- .../registration-jounrnaling-events.md | 35 ------ .../registration-journaling-events.md | 44 +++++++ .../runtime-action-code-journaling-api.md | 116 +++++++++--------- .../validating-journaling-integration.md | 89 ++++++-------- 6 files changed, 162 insertions(+), 158 deletions(-) delete mode 100644 src/pages/events/journaling-tutorial/registration-jounrnaling-events.md create mode 100644 src/pages/events/journaling-tutorial/registration-journaling-events.md diff --git a/src/data/navigation/sections/events.js b/src/data/navigation/sections/events.js index 8036aa47..d95f9c3a 100644 --- a/src/data/navigation/sections/events.js +++ b/src/data/navigation/sections/events.js @@ -4,7 +4,7 @@ module.exports = [ path: "/events/index.md" }, { - title: "Tutorial", + title: "Eventing tutorial", path: "/events/tutorial/index.md", pages: [ { @@ -26,27 +26,25 @@ module.exports = [ ] }, { - title: "Journaling Tutorial", + title: "Journaling tutorial", path: "/events/journaling-tutorial/index.md", pages: [ { - title: "How it works", + title: "Integrate with Adobe I/O Events Journaling API", path: "/events/journaling-tutorial/index.md" }, - { - title: "Register Commerce Events in Adobe Developer Console for Journaling", - path: "/events/journaling-tutorial/registration-jounrnaling-events.md" + title: "Register Commerce events for journaling", + path: "/events/journaling-tutorial/registration-journaling-events.md" }, - { - title: "Code Development Using Journaling API and Deployment", + { + title: "Code development and deployment using the Journaling API", path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" }, { - title: "Validating Journalling Events Processing", + title: "Validate journaling events processing", path: "/events/journaling-tutorial/validating-journaling-integration.md" } - ] }, { diff --git a/src/pages/events/journaling-tutorial/index.md b/src/pages/events/journaling-tutorial/index.md index 3b5f462a..dca8dc90 100644 --- a/src/pages/events/journaling-tutorial/index.md +++ b/src/pages/events/journaling-tutorial/index.md @@ -1,5 +1,5 @@ --- -title: Use Events and App Builder to Extend Adobe Commerce +title: Integrate Adobe Commerce events with App Builder using Adobe I/O Events Journaling API description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. edition: saas keywords: @@ -7,8 +7,11 @@ keywords: - Events --- -When integrating Adobe I/O Events with App Builder, developers often configure event registrations to directly invoke a **Runtime action**. While this approach works for lightweight use cases, it has an important limitation: Runtime actions must complete within **60 seconds**. If the action does not return a response within this time, Adobe I/O Runtime will terminate it. This makes direct event-to-runtime invocation unsuitable for **long-running** or **blocking** operations. -To address this, Adobe IO Event provides event journaling as an alternative. Journaling captures incoming events and stores them for up to 7 days, allowing developers to: +# Integrate Adobe Commerce events with App Builder using Adobe I/O Events Journaling API + +When integrating Adobe I/O Events with App Builder, developers often configure event registrations to directly invoke a _runtime action_. While this approach works for lightweight use cases, it has an important limitation: runtime actions must complete within **60 seconds**. If the action does not return a response within this time, Adobe I/O Runtime will terminate it. This makes direct event-to-runtime invocation unsuitable for **long-running** or **blocking** operations. + +To address this, Adobe IO Events provides event journaling as an alternative. Journaling captures incoming events and stores them for up to seven days, allowing developers to: - Fetch events asynchronously. - Process them in bulk at their own pace. @@ -16,14 +19,15 @@ To address this, Adobe IO Event provides event journaling as an alternative. Jou ## How it works -Adobe I/O Events Journaling provides a reliable way to consume events asynchronously without requiring direct delivery to a webhook or Runtime action. Journaling stores events temporarily in a dedicated endpoint, allowing applications to pull events at their own pace. This approach supports batch processing, error recovery, and ensures that events are not lost when a consumer is temporarily unavailable. You can read in detail here:[Adobe I/O Events Journaling Guide](https://developer.adobe.com/events/docs/guides/journaling-intro) +Adobe I/O Events Journaling provides a reliable way to consume events asynchronously without requiring direct delivery to a webhook or runtime action. Journaling stores events temporarily in a dedicated endpoint, allowing applications to pull events at their own pace. This approach supports batch processing, error recovery, and ensures that events are not lost when a consumer is temporarily unavailable. [Adobe I/O Events Journaling Guide](https://developer.adobe.com/events/docs/guides/journaling-intro) provides an overview of journaling concepts and benefits. Consider a use case where a product is deleted from the Adobe Commerce catalog. At that point, an event is emitted asynchronously and sent to Adobe I/O Events. An event provider must first be created. The provider defines the supported event types, such as product deletions or inventory changes, and ensures proper routing. The Adobe I/O Events for Adobe Commerce module enables Adobe Commerce to subscribe to this provider. -When a product deletion event is emitted, Adobe I/O Events stores it in a journaling endpoint. The endpoint holds events for a period of 7 days. making them available for consumption. Consumers gain access to the journal URL during event registration. -In this integration, an events registration is created with the provider, which returns a journal URL. The App Builder application is then configured with this journal URL so that a Runtime action can use the Events SDK to poll and retrieve events from the journal.A Runtime action then uses the Events SDK to poll the journal. During each execution, the action: +When a product deletion event is emitted, Adobe I/O Events stores it in a journaling endpoint. The endpoint holds events for a period of seven days. making them available for consumption. Consumers gain access to the journal URL during event registration. + +In this integration, an events registration is created with the provider, which returns a journal URL. The App Builder application is then configured with this journal URL so that a runtime action can use the Events SDK to poll and retrieve events from the journal. A runtime action then uses the Events SDK to poll the journal. During each execution, the action: -- Retrieves the last saved position (cursor) from state storage using aio-lib-state. +- Retrieves the last saved position (cursor) from state storage using `aio-lib-state`. - Calls the journaling API to fetch all new events since that position. - Processes and logs event payloads, such as product identifiers and metadata related to the deletion. - Updates the stored position so the next execution continues from the correct point in the journal. diff --git a/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md b/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md deleted file mode 100644 index 83c5817a..00000000 --- a/src/pages/events/journaling-tutorial/registration-jounrnaling-events.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Use Events and App Builder to Extend Adobe Commerce -description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. -edition: saas -keywords: - - Extensibility - - Events ---- - -# Registering and Validating Integration with the Journaling API - -## Prerequisite Setup - -Create and Configure an Event Provider in Adobe Commerce.Follow the steps in the. -Before configuring journaling, ensure that you’ve completed the standard setup for Adobe Commerce Events and App Builder. - -- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in [Setting up Event Provider in Adobe Commerce](https://developer.adobe.com/commerce/extensibility/events/tutorial/event-providers/#set-up-event-providers) up to the section -**Sync event metadata with App Builder** - -- To set up your App Builder project, follow the steps in [Set up the Adobe Developer Console and App Builder project locally](https://developer.adobe.com/commerce/extensibility/events/tutorial/deployment/#set-up-the-adobe-developer-console-and-app-builder-project-locally) up to the section **Set up your local App Builder environment using the CLI**. - -## Register Commerce Events in Adobe Developer Console for Journaling - -Define which Commerce events to subscribe to and register them within the Adobe Developer Console project. Return to the project workspace in the Developer Console, open the Add Service menu, and select Event. On the Add Events page, choose Commerce Events and select Next. -**Insert Image** -In the Configure Event Registration step, select the event provider created earlier in Adobe Commerce. Select Next and review the events available from the provider. For journaling, do not choose any specific delivery method or Runtime Action. The Journaling API renders by default for the integration. -**Insert Image** -On the final screen, update the Event Registration Name and Description fields. Save the configuration. After saving, the journaling endpoint (journal URL) generates automatically and becomes available for the App Builder application to poll events at its own pace. - -## Validate Integration - -Validate that events from Adobe Commerce reach the journaling endpoint. -In Adobe Commerce, delete a product from the catalog. -Open the Adobe Developer Console and navigate to the Event Browser in the project workspace. -Confirm that the product deletion event appears in the Event Browser. Make sure to click Go to Start button.The Event Browser provides a visual preview of events and includes basic metadata such as event ID, timestamp, and provider. diff --git a/src/pages/events/journaling-tutorial/registration-journaling-events.md b/src/pages/events/journaling-tutorial/registration-journaling-events.md new file mode 100644 index 00000000..d196b5cc --- /dev/null +++ b/src/pages/events/journaling-tutorial/registration-journaling-events.md @@ -0,0 +1,44 @@ +--- +title: Use Events and App Builder to Extend Adobe Commerce +description: Learn how to register Adobe Commerce events for journaling and validate that the integration is functioning correctly. +edition: saas +keywords: + - Extensibility + - Events +--- + +# Registering and Validating Integration with the Journaling API + +This topic guides you through registering Adobe Commerce events for journaling and validating that the integration is functioning correctly. + +## Prerequisite setup + +Before configuring journaling, ensure that you've completed the standard setup for Adobe Commerce Events and App Builder. + +- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in [Setting up Event Provider in Adobe Commerce](../tutorial/event-providers#set-up-event-providers/) up to the section "Sync event metadata with App Builder. + +- To set up your App Builder project, follow the steps in [Set up the Adobe Developer Console and App Builder project locally](../tutorial/deployment#set-up-the-adobe-developer-console-and-app-builder-project-locally) up to the section "Set up your local App Builder environment using the CLI". + +## Register Commerce Events in Adobe Developer Console for Journaling + +Define which Commerce events to subscribe to and register them within the Adobe Developer Console project. Return to the project workspace in the Developer Console, open the **Add Service** menu, and select **Event**. On the Add Events page, choose **Commerce Events** and select **Next**. + +**Insert Image** + +In the Configure Event Registration step, select the event provider created earlier in Adobe Commerce. Select **Next** and review the events available from the provider. For journaling, do not choose any specific delivery method or runtime action. The Journaling API renders by default for the integration. + +**Insert Image** + +On the final screen, update the **Event Registration Name** and **Description** fields. Save the configuration. After saving, the journaling endpoint (journal URL) generates automatically and becomes available for the App Builder application to poll events at its own pace. + +## Validate Integration + +Validate that events from Adobe Commerce reach the journaling endpoint. + +1. In Adobe Commerce, delete a product from the catalog. + +1. Open the Adobe Developer Console and navigate to the event browser in the project workspace. + +1. Confirm that the product deletion event appears in the event browser. + +1. Click the **Go to Start** button. The event browser provides a visual preview of events and includes basic metadata such as event ID, timestamp, and provider. diff --git a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md index 09548c5f..360d75da 100644 --- a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md +++ b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md @@ -1,22 +1,24 @@ --- -title: Use Events and App Builder to Extend Adobe Commerce -description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. +title: Code development and deployment +description: Learn how to write, deploy, and manage runtime action code in an Adobe App Builder project that processes events from Adobe Commerce using the Adobe I/O Events Journaling API. edition: saas keywords: - Extensibility - Events --- -# Code Development and Deployment +# Code development and deployment -## Writing Run time Action code in App Builder project +This topic explains how to write, deploy, and manage runtime action code in an Adobe App Builder project that processes events from Adobe Commerce using the Adobe I/O Events Journaling API. + +## Writing runtime action code in App Builder project Create a runtime action that processes product event data from Adobe Commerce. The runtime action invokes when product-related events such as product deletions are captured and delivered through Adobe I/O Events Journaling. -When initializing an App Builder project using the app init command, a default folder structure generates under actions/**action-name**. The folder includes an initial index.js file, which serves as the entry point for the runtime action. +When initializing an App Builder project using the app init command, a default folder structure generates under `actions/`. The folder includes an initial `index.js` file, which serves as the entry point for the runtime action. -### index.js +### `index.js` file -index.js file implements an Adobe I/O Runtime action that consumes events from the Adobe I/O Events Journaling API. Its primary role is to continuously fetch product-related events from Adobe Commerce (such as stock updates, price changes, or deletions), process them, and maintain state for seamless event consumption. +The `index.js` file implements an Adobe I/O Runtime action that consumes events from the Adobe I/O Events Journaling API. Its primary role is to continuously fetch product-related events from Adobe Commerce (such as stock updates, price changes, or deletions), process them, and maintain state for seamless event consumption. ### High-Level Flow @@ -92,15 +94,15 @@ function parseScopes(scopesParam) { } /** - * Fetches events from the Adobe I/O Journalling API. + * Fetches events from the Adobe I/O Journaling API. * - * @param {Object} params - Action parameters containing IMS and Journalling details. + * @param {Object} params - Action parameters containing IMS and Journaling details. * @param {string} params.ims_org_id - Adobe IMS organization ID. * @param {string} params.apiKey - Adobe API key. - * @param {string} params.journalling_url - Journalling endpoint URL. + * @param {string} params.journalling_url - Journaling endpoint URL. * @param {string} accessToken - Adobe IMS access token. * @param {string} [sincePosition] - Optional position marker to fetch events since last processed position. - * @returns {Promise} - Array of event objects fetched from Journalling API. + * @returns {Promise} - Array of event objects fetched from Journaling API. * @throws {Error} If required parameters are missing or request fails. */ async function fetchEvent(params, accessToken, sincePosition) { @@ -134,7 +136,7 @@ async function fetchEvent(params, accessToken, sincePosition) { */ async function main(params) { const logger = Core.Logger('main', { level: params.LOG_LEVEL || 'info' }) - logger.info('Fetching events from journalling endpoint...') + logger.info('Fetching events from journaling endpoint...') try { // Retrieve access token @@ -151,7 +153,7 @@ async function main(params) { const lastPosition = lastPositionRes ? lastPositionRes.value : undefined logger.info(`Last Position >>> ${lastPosition}`) - // Fetch events from Adobe Journalling API + // Fetch events from Adobe Journaling API const events = await fetchEvent(params, accessToken, lastPosition) logger.info(`Fetched ${events.length} new event(s).`) @@ -195,26 +197,27 @@ async function main(params) { exports.main = main ``` -## Reading Through Adobe I/O Journals +## Reading through Adobe I/O journals + +Adobe I/O Journaling API acts as a queue that holds events temporarily. Each event has a position marker that serves as a cursor. The `fetchEvent()` function retrieves events from the journaling URL provided in the parameters. +If a previous position exists, the function fetches events starting from that position so only new events are processed. A maximum of 100 events are retrieved per call. -Adobe I/O Journaling API acts as a queue that holds events temporarily. Each event has a position marker that serves as a cursor. The fetchEvent() function retrieves events from the journaling URL provided in the parameters. -If a previous position exists, the function fetches events starting from that position so only new events are processed. A maximum of 100 events are retrieved per call. After processing, the newest position from the last event is saved in the state store. -This ensures that events are read sequentially and not re-processed. +After processing, the newest position from the last event is saved in the state store. This ensures that events are read sequentially and not re-processed. ## StateLib Variable (aio-lib-state) -**aio-lib-state** is a key-value store used to persist metadata across function executions. In this code, it stores the last journal position. +`aio-lib-state` is a key-value store that persists metadata across function executions. In this code, it stores the last journal position. -- state.get('last_journal_position') retrieves the saved position from the previous run. +- `state.get('last_journal_position')` retrieves the saved position from the previous run. -- state.put('last_journal_position', newestPosition) updates the stored position with the latest marker after events are processed. +- `state.put('last_journal_position', newestPosition)` updates the stored position with the latest marker after events are processed. This persistence enables the function to resume from the correct point in the journal even after restarts or failures. ## Getting IMS Access Token in Detail -Adobe APIs require an IMS (Identity Management System) access token for authentication. The code uses **aio-lib-ims** to generate this token. -parseScopes() converts the scopes parameter into an array, either by parsing a JSON array string or splitting by spaces/commas. +Adobe APIs require an IMS (Identity Management System) access token for authentication. The code uses `aio-lib-ims` to generate this token. The `parseScopes()`1 function converts the scopes parameter into an array, either by parsing a JSON array string or splitting by spaces/commas. + A configuration object is created with: - client_id @@ -223,16 +226,16 @@ A configuration object is created with: - technical_account_id - technical_account_email - scopes -The configuration is stored in context under the key my_event_provider and set as the current provider.The **getToken()** uses the configuration to generate an IMS access token.The resulting access token is then used by the Events SDK to authenticate calls to the journaling API. -### Utils.js +The configuration is stored in context under the key `my_event_provider` and set as the current provider. The `getToken()` call uses the configuration to generate an IMS access token. The resulting access token is then used by the Events SDK to authenticate calls to the journaling API. -This file contains helper functions used by the runtime action: +### `utils.js` file -- **stringParameters** → Formats parameters into a string (mainly for logging/debugging). -- **fetchEvent** → Makes a simple HTTP request to the journaling endpoint using an access token. -- **errorResponse** → Returns a consistent error response object and logs the error if a logger is provided. -In short, utils.js provides reusable utilities to keep the main action (index.js) clean and focused. +The `utils.js` file provides reusable utilities to keep the main action (`index.js`) clean and focused. It contains helper functions used by the runtime action: + +- `stringParameters` - Formats parameters into a string (mainly for logging/debugging). +- `fetchEvent` - Makes a simple HTTP request to the journaling endpoint using an access token. +- `errorResponse` Returns a consistent error response object and logs the error if a logger is provided. ``` js const fetch = require('node-fetch'); // Import fetch for Node.js (<18). For Node 18+, global fetch is available. @@ -250,11 +253,11 @@ function stringParameters(params) { } /** - * Fetches events from the journalling endpoint. + * Fetches events from the journaling endpoint. * * @async * @param {Object} params - Configuration for the fetch request. - * @param {string} params.journalling_url - URL of the journalling endpoint. + * @param {string} params.journalling_url - URL of the journaling endpoint. * @param {string} params.access_token - Access token used for authorization. * @returns {Promise} JSON response body containing events. * @throws {Error} If the request fails or the response is not OK (non-200). @@ -295,13 +298,11 @@ module.exports = { } ``` -### Changes to .env file +### Changes to the `.env` file -A .env file is an environment file that stores sensitive values like API keys, client secrets, and org IDs required by your Adobe App Builder app. It is auto-generated by the Adobe Developer CLI (aio) when you bootstrap a project, using the json configuration file you download from the Adobe Developer Console. +A `.env` file is an environment file that stores sensitive values such as API keys, client secrets, and org IDs required by your Adobe App Builder app. It is auto-generated by the Adobe Developer CLI (aio) when you bootstrap a project, using the json configuration file you download from the Adobe Developer Console. -**Environment Variable Mapping** -When a new Adobe I/O Runtime project is created, .env variables are generated with long names tied to the project and workspace. -For example, for a project named journalTest1 in the Stage workspace, you will see entries like : +When a new Adobe I/O Runtime project is created, .env variables are generated with long names tied to the project and workspace. For example, for a project named journalTest1 in the Stage workspace, you will see entries like: ``` js AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_client__id @@ -312,9 +313,9 @@ AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_scopes AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_ims__org__id ``` -Sometimes referencing these names in appconfig.yaml may cause errors when generating tokens.So it needs to be simplified. +Sometimes referencing these names in `appconfig.yaml` causes errors when generating tokens. In these cases, simplify the contents. -```bash +```js ### Adobe I/O Console service account credentials CLIENT_ID=*************** @@ -339,31 +340,31 @@ AIO_IMS_SCOPES=["AdobeID","openid","read_organizations", | `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_scopes` | `AIO_IMS_SCOPES` | | `AIO_ims_contexts_Credential__in__journalTest1__-__Stage_ims__org__id` | `IMS_ORG_ID` | -All other credentials (such as CLIENT_ID, CLIENT_SECRET, TECH_ACCOUNT_ID, IMS_ORG_ID, and AIO_IMS_SCOPES) are auto-generated by the Adobe Developer CLI when you set up your project using the downloaded **json** configuration file from the Adobe Developer Console. These values should not be edited manually. +All other credentials (such as CLIENT_ID, CLIENT_SECRET, TECH_ACCOUNT_ID, IMS_ORG_ID, and AIO_IMS_SCOPES) are auto-generated by the Adobe Developer CLI when you set up your project using the downloaded json configuration file from the Adobe Developer Console. These values should not be edited manually. Two inputs must always be provided explicitly by the developer: -- JOURNALLING_URL : Obtain this from Developer Console > [Your Project] > journalSep Stage > Event Registration > Event Delivery Method by copying the Journaling Unique API Endpoint. +- JOURNALLING_URL: Obtain this from **Developer Console** > [Your Project] > **journalSep Stage** > **Event Registration** > **Event Delivery Method** by copying the Journaling Unique API Endpoint. -- DB_EVENT_KEY : Define any string key (e.g., journalposition1). This key is used by the App Builder State Library to persist the last processed journaling position. +- DB_EVENT_KEY: Define any string key (such as `journalposition1`). This key is used by the App Builder State Library to persist the last processed journaling position. When setting your environment variables, ensure that values like CLIENT_SECRET are provided without quotes if they are specified as strings. -### How to get the JOURNALLING_URL +### How to get the JOURNALLING_URL value You can fetch the Journaling Unique API Endpoint from the Adobe Developer Console: -- Navigate to your project > journalSep (Stage). -- Go to Event Registration. -- Under Event Delivery Method, select Journaling. -- Copy the JOURNALING UNIQUE API ENDPOINT. -- Paste it into your .env file as the value of JOURNALLING_URL. +1. Navigate to your project > journalSep (Stage). +1. Go to **Event Registration**. +1. Under **Event Delivery Method**, select **Journaling**. +1. Copy the **JOURNALING UNIQUE API ENDPOINT**. +1. Paste it into your `.env` file as the value of `JOURNALLING_URL`. -### Changes to Appconfig.yaml +### Changes to `appconfig.yaml` -The appconfig.yaml describes your Adobe App Builder project’s runtime actions. -It pulls inputs dynamically from .env using $VARIABLE_NAME. To do this, copy the variable names from .env and place them under the inputs section of the runtime action in appconfig.yaml. This way, developers don’t manually copy-paste secrets into the YAML, deployments can update credentials by simply changing .env, and secrets stay out of source code while remaining easy to rotate. +The `appconfig.yaml` describes your Adobe App Builder project's runtime actions. +It pulls inputs dynamically from `.env` using `$VARIABLE_NAME`. To do this, copy the variable names from `.env` and place them under the inputs section of the runtime action in `appconfig.yaml`. This way, developers don't manually copy-paste secrets into the YAML, deployments can update credentials by simply changing `.env`, and secrets stay out of source code while remaining easy to rotate. -``` yaml +```yaml application: actions: actions web: web-src @@ -402,19 +403,20 @@ application: ``` A trigger in Adobe I/O Runtime (built on Apache OpenWhisk) represents an event source. Triggers can fire on a schedule, in response to external events, or based on system activity. They do not execute code by themselves but are linked to actions through rules. -In this example, the trigger everyMin is created using the system-provided alarm feed/whisk.system/alarms/interval. The alarm feed generates periodic events at a defined interval. The inputs specify the interval configuration. -- minutes: 1 means the trigger will fire every one minute. +In this example, the trigger `everyMin` is created using the system-provided alarm `feed/whisk.system/alarms/interval`. The alarm feed generates periodic events at a defined interval. The inputs specify the interval configuration. + +- Minutes: 1 means the trigger will fire every one minute. - Each time the trigger fires, it produces an event document that can be consumed by one or more rules. This trigger acts as a scheduler for invoking actions at regular intervals. A rule links a trigger to an action. When the trigger fires, the associated action is automatically executed. -In this example, the rule everyMinToEventjournal connects the everyMin trigger to the eventjournal action. The flow works as follows: +In this example, the rule `everyMinToEventjournal` connects the `everyMin` trigger to the `eventjournal` action. The flow works as follows: -- The everyMin trigger fires every minute. +- The `everyMin` trigger fires every minute. - The rule detects that the trigger has fired. -- The linked eventjournal action is invoked automatically. -- The eventjournal action is expected to contain the logic for reading events from the Adobe I/O Events Journaling API. By wiring the rule this way, the journaling action runs once per minute, polling the journal for any new events and processing them. +- The linked `eventjournal` action is invoked automatically. +- The `eventjournal` action is expected to contain the logic for reading events from the Adobe I/O Events Journaling API. By wiring the rule this way, the journaling action runs once per minute, polling the journal for any new events and processing them. ## Building and deploying application diff --git a/src/pages/events/journaling-tutorial/validating-journaling-integration.md b/src/pages/events/journaling-tutorial/validating-journaling-integration.md index 13eceb2f..91f20bee 100644 --- a/src/pages/events/journaling-tutorial/validating-journaling-integration.md +++ b/src/pages/events/journaling-tutorial/validating-journaling-integration.md @@ -1,90 +1,81 @@ --- -title: Use Events and App Builder to Extend Adobe Commerce -description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. +title: Validate journaling events processing +description: Learn how to validate that events from Adobe Commerce are successfully reaching the journaling endpoint and being processed by the runtime action. edition: saas keywords: - Extensibility - Events --- -# Validating Journalling Events Processing +# Validate journaling events processing -## List Recent Activations: +This topic guides you through validating that events from Adobe Commerce are successfully reaching the journaling endpoint and being processed by the runtime action. -Run the following command: +## List recent activations -```bash - aio rt activations list --limit 10 - ``` - -**What it does:** -Lists the last 10 activations (executions) in Adobe I/O Runtime. It shows both triggers (for example, everyMin) and actions (for example, journalaction), along with their status, execution time, and IDs. -Sample output (masked): +Run the following command to list the 10 most recent activations in Adobe I/O Runtime. ```bash - 09/05 11:36:10 success nodejs:22 0.0.1 ************ warm 15 0 143ms journalseptember/journalaction - 09/05 11:36:10 success trigger 0.0.1 ************ -- -- -- -- everyMin - 09/05 11:35:10 success nodejs:22 0.0.1 ************ warm 6 0 231ms journalseptember/journalaction - 09/05 11:35:10 success trigger 0.0.1 ************ -- -- -- -- everyMin - 09/05 11:32:10 success trigger 0.0.1 ************ -- -- -- -- everyMin - ``` +aio rt activations list --limit 10 +``` -trigger everyMin > Scheduler fired. -journalaction (nodejs:22) > Action executed. -success > Run completed without errors. -duration (ms) > Execution time. +This masked response shows both triggers and actions along with their status. + +```terminal +09/05 11:36:10 success nodejs:22 0.0.1 ************ warm 15 0 143ms journalseptember/journalaction +09/05 11:36:10 success trigger 0.0.1 ************ -- -- -- -- everyMin +09/05 11:35:10 success nodejs:22 0.0.1 ************ warm 6 0 231ms journalseptember/journalaction +09/05 11:35:10 success trigger 0.0.1 ************ -- -- -- -- everyMin +09/05 11:32:10 success trigger 0.0.1 ************ -- -- -- -- everyMin +``` -## View Logs from the Action +## View logs from the action -When an action entry appears (for example, nodejs:22 journalseptember/journalaction), copy its activation ID and run: +When an action entry appears (for example, `nodejs:22 journalseptember/journalaction`), copy its activation ID and run: ```bash aio rt activation logs ``` -**What it does:** -Displays the stdout/stderr logs generated by the action during execution. Use it to debug and verify that journalling logic executed correctly. +The command displays the stdout/stderr logs generated by the action during execution. Use it to debug and verify that journaling logic executed correctly. -### Case A: No new events +### Use case: No new events -The activation logs shows 0 Events in logs.This means the action ran successfully but no new events were available. +The activation logs shows 0 Events in logs. This means the action ran successfully but no new events were available. -```bash -2025-09-05T06:06:10.574Z stdout: [journalaction] info: Fetching events from journalling endpoint... +```terminal +2025-09-05T06:06:10.574Z stdout: [journalaction] info: Fetching events from journaling endpoint... 2025-09-05T06:06:10.675Z stdout: [journalaction] info: Last Position >>> ************ 2025-09-05T06:06:10.713Z stdout: [journalaction] info: Fetched 0 new event(s). ``` -### Case B: Event read from Commerce +### Use case: Event read from Commerce When an event is read by the journal, the logs display the raw payload and event details. This indicates the journal successfully read a Commerce event (in this example, a productdelete event) and updated the last processed position. In Developer Console > Projects → **projectname** > stage > Events > Event Browser, the Last read position should match what appears in the logs. This confirms the event was fully processed. -```bash - 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Raw Payload: { ... } <-- masked payload - 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Event ID: ************ - 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Type: com.adobe.commerce.productdelete - 2025-09-05T06:28:10.754Z stdout: [journalaction] info: Time: - 2025-09-05T06:27:02.455Z - 2025-09-05T06:28:10.754Z stdout: [journalaction] info: SKU: fcdcd 2025-09-05T06:28:10.782Z stdout: [journalaction] info: Updated last processed position: - ``` +```terminal +2025-09-05T06:28:10.754Z stdout: [journalaction] info: Raw Payload: { ... } <-- masked payload +2025-09-05T06:28:10.754Z stdout: [journalaction] info: Event ID: ************ +2025-09-05T06:28:10.754Z stdout: [journalaction] info: Type: com.adobe.commerce.productdelete +2025-09-05T06:28:10.754Z stdout: [journalaction] info: Time: +2025-09-05T06:27:02.455Z +2025-09-05T06:28:10.754Z stdout: [journalaction] info: SKU: fcdcd 2025-09-05T06:28:10.782Z stdout: [journalaction] info: Updated last processed position: +``` -## Inspect the Action Result +## Inspect the action result -Run: +Run the following command using the same activation ID to view the action's returned result, such as a success confirmation or event details. ```bash aio rt activation result ``` -**What it does:** -Shows the returned result/output of the action execution, such as a success confirmation or event details. - -## Validate End-to-End Flow +## Validate the end-to-end flow -- Ensure everyMin appears once every minute. -- Ensure each trigger is followed by journalaction. +- Ensure `everyMin` appears once every minute. +- Ensure each trigger is followed by `journalaction`. - Both must show success. -- If logs say “Fetched 0 new event(s)” > the system is healthy but idle. -- If logs show a raw payload → an event was received and processed from Commerce. +- If logs say `"Fetched 0 new event(s)"`, the system is healthy but idle. +- If logs show a raw payload, an event was received and processed from Commerce. From 75cd00a554a56794c1c708465fc46bdb396237b9 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 23 Oct 2025 16:03:29 -0500 Subject: [PATCH 04/12] Update titles --- .../journaling-tutorial/registration-journaling-events.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/events/journaling-tutorial/registration-journaling-events.md b/src/pages/events/journaling-tutorial/registration-journaling-events.md index d196b5cc..1e38ab0e 100644 --- a/src/pages/events/journaling-tutorial/registration-journaling-events.md +++ b/src/pages/events/journaling-tutorial/registration-journaling-events.md @@ -1,5 +1,5 @@ --- -title: Use Events and App Builder to Extend Adobe Commerce +title: Register and validate your integration with the Journaling API description: Learn how to register Adobe Commerce events for journaling and validate that the integration is functioning correctly. edition: saas keywords: @@ -7,7 +7,7 @@ keywords: - Events --- -# Registering and Validating Integration with the Journaling API +# Register and validate your integration with the Journaling API This topic guides you through registering Adobe Commerce events for journaling and validating that the integration is functioning correctly. @@ -31,7 +31,7 @@ In the Configure Event Registration step, select the event provider created earl On the final screen, update the **Event Registration Name** and **Description** fields. Save the configuration. After saving, the journaling endpoint (journal URL) generates automatically and becomes available for the App Builder application to poll events at its own pace. -## Validate Integration +## Validate your integration Validate that events from Adobe Commerce reach the journaling endpoint. From 17686b973022a608a043741abce356ab68eaab03 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 23 Oct 2025 16:27:14 -0500 Subject: [PATCH 05/12] Redo left nav to handle 2 tutorials --- src/data/navigation/sections/events.js | 80 ++++++++++++++------------ 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/src/data/navigation/sections/events.js b/src/data/navigation/sections/events.js index d95f9c3a..39466bff 100644 --- a/src/data/navigation/sections/events.js +++ b/src/data/navigation/sections/events.js @@ -4,49 +4,55 @@ module.exports = [ path: "/events/index.md" }, { - title: "Eventing tutorial", + title: "Tutorials", path: "/events/tutorial/index.md", pages: [ { - title: "Use events and App Builder to extend Adobe Commerce", + title: "Eventing", path: "/events/tutorial/index.md", - }, - { - title: "Project setup and deployment", - path: "/events/tutorial/deployment.md" - }, - { - title: "Set up event providers", - path: "/events/tutorial/event-providers.md" - }, - { - title: "Debugging and development tips", - path: "/events/tutorial/debugging.md" - } - ] - }, - { - title: "Journaling tutorial", - path: "/events/journaling-tutorial/index.md", - pages: [ - { - title: "Integrate with Adobe I/O Events Journaling API", - path: "/events/journaling-tutorial/index.md" + pages: [ + { + title: "Use events and App Builder to extend Adobe Commerce", + path: "/events/tutorial/index.md" + }, + { + title: "Project setup and deployment", + path: "/events/tutorial/deployment.md" + }, + { + title: "Set up event providers", + path: "/events/tutorial/event-providers.md" + }, + { + title: "Debugging and development tips", + path: "/events/tutorial/debugging.md" + } + ] }, { - title: "Register Commerce events for journaling", - path: "/events/journaling-tutorial/registration-journaling-events.md" - }, - { - title: "Code development and deployment using the Journaling API", - path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" - }, - { - title: "Validate journaling events processing", - path: "/events/journaling-tutorial/validating-journaling-integration.md" - } - ] - }, + title: "Journaling", + path: "/events/journaling-tutorial/index.md", + pages: [ + { + title: "Integrate with Adobe I/O Events Journaling API", + path: "/events/journaling-tutorial/index.md" + }, + { + title: "Register and validate your journaling integration", + path: "/events/journaling-tutorial/registration-journaling-events.md" + }, + { + title: "Code development and deployment", + path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" + }, + { + title: "Validate journaling events processing", + path: "/events/journaling-tutorial/validating-journaling-integration.md" + } + ] + } + ] +}, { title: "Create an App Builder project", path: "/events/project-setup.md", From cd417dd935e34a81fbae429e60d0e5481a09f1d2 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 23 Oct 2025 16:34:41 -0500 Subject: [PATCH 06/12] linting --- .../journaling-tutorial/registration-journaling-events.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/events/journaling-tutorial/registration-journaling-events.md b/src/pages/events/journaling-tutorial/registration-journaling-events.md index 1e38ab0e..28c6edf6 100644 --- a/src/pages/events/journaling-tutorial/registration-journaling-events.md +++ b/src/pages/events/journaling-tutorial/registration-journaling-events.md @@ -15,9 +15,9 @@ This topic guides you through registering Adobe Commerce events for journaling a Before configuring journaling, ensure that you've completed the standard setup for Adobe Commerce Events and App Builder. -- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in [Setting up Event Provider in Adobe Commerce](../tutorial/event-providers#set-up-event-providers/) up to the section "Sync event metadata with App Builder. +- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in [Setting up Event Provider in Adobe Commerce](../tutorial/event-providers.md#set-up-event-providers/) up to the section "Sync event metadata with App Builder. -- To set up your App Builder project, follow the steps in [Set up the Adobe Developer Console and App Builder project locally](../tutorial/deployment#set-up-the-adobe-developer-console-and-app-builder-project-locally) up to the section "Set up your local App Builder environment using the CLI". +- To set up your App Builder project, follow the steps in [Set up the Adobe Developer Console and App Builder project locally](../tutorial/deployment.md#set-up-the-adobe-developer-console-and-app-builder-project-locally) up to the section "Set up your local App Builder environment using the CLI". ## Register Commerce Events in Adobe Developer Console for Journaling From 2622d1c64257811b5653cb424b16d3be32b893a7 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 23 Oct 2025 16:47:41 -0500 Subject: [PATCH 07/12] more linting --- src/pages/events/journaling-tutorial/index.md | 2 +- .../journaling-tutorial/registration-journaling-events.md | 2 +- .../journaling-tutorial/runtime-action-code-journaling-api.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/events/journaling-tutorial/index.md b/src/pages/events/journaling-tutorial/index.md index dca8dc90..284f1f6d 100644 --- a/src/pages/events/journaling-tutorial/index.md +++ b/src/pages/events/journaling-tutorial/index.md @@ -1,5 +1,5 @@ --- -title: Integrate Adobe Commerce events with App Builder using Adobe I/O Events Journaling API +title: Integrate events with Adobe I/O Events Journaling API description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. edition: saas keywords: diff --git a/src/pages/events/journaling-tutorial/registration-journaling-events.md b/src/pages/events/journaling-tutorial/registration-journaling-events.md index 28c6edf6..33685730 100644 --- a/src/pages/events/journaling-tutorial/registration-journaling-events.md +++ b/src/pages/events/journaling-tutorial/registration-journaling-events.md @@ -1,5 +1,5 @@ --- -title: Register and validate your integration with the Journaling API +title: Register your integration with the Journaling API description: Learn how to register Adobe Commerce events for journaling and validate that the integration is functioning correctly. edition: saas keywords: diff --git a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md index 360d75da..ac876d67 100644 --- a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md +++ b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md @@ -1,6 +1,6 @@ --- title: Code development and deployment -description: Learn how to write, deploy, and manage runtime action code in an Adobe App Builder project that processes events from Adobe Commerce using the Adobe I/O Events Journaling API. +description: Learn how to write, deploy, and manage runtime action code that processes events from Adobe Commerce using the Adobe I/O Events Journaling API. edition: saas keywords: - Extensibility From 5653e6420cd8e4703a412e99fda0e34df27ddab0 Mon Sep 17 00:00:00 2001 From: pru46423 Date: Thu, 9 Oct 2025 16:20:55 +0530 Subject: [PATCH 08/12] Added Image --- .../developer-console-jouralling-selection.png | Bin 0 -> 306129 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/pages/_images/events/journalingtutorial/developer-console-jouralling-selection.png diff --git a/src/pages/_images/events/journalingtutorial/developer-console-jouralling-selection.png b/src/pages/_images/events/journalingtutorial/developer-console-jouralling-selection.png new file mode 100644 index 0000000000000000000000000000000000000000..419d9a1351b5430d264dad0a561c95b69117d430 GIT binary patch literal 306129 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%0D#k@M-oh`>naGk$L)M}C&= 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⋙k(!w5ravwdwwTB;r`QbG2!PO^KfxCJ{bTj(#yu^q@!5x&q|->s+HJSE@2LT zU<6S%#fikGbHGJ!l4z6oq?HyN$=T7SDZpA<7RLiX-V_AAG@8J)TOaxc0B7)mCJ-2A z6Pz`K)ky-X^-VJkUeXu>AU^G5tT}kjsrKH(*Ac5_r7tB{zx|^dTc05~bEO+l1ul>4 zu1kO$zBJY(T5b52c?LrErIR2XM5)sn)qCY^1ANm2M=0|&B43VX)er%P8UDl4;|65f zGUxj{G&yAuDhb}^#Hqsd>=muH1q|ly6eWsieG`;X0WO=fg%t8Wvg4x}otr<$TK`RS z?UA!y`|7Md-(Rdj0yojXx#O9 z5--S~Yi)0dBZCND6gP&ybTS z+^TIBsMVUb6)WE?xOEA|^#A~4_a(n_jh2vA|Iw#c3vC~e`EQ-v1qZl4z`n~`6x*%# zr)%+ivRR)c*8~u)^6aG7kqR7#-ibW1EP4{`*@-Ziz!kK)a(g=l0feVQBoaVnzYOFc zMxo+7gm(#}e%AOc05SV>Mlgt7B^x-@5}fbvo{pDUCSXaW=yAmtGe81-Ll~e@plY{; zaMDpldF@*&0ESppUgt9-@O|wu-87|T8J`Mvavzk8Ncvj;Z5;IT%dcd|2Hk*F|N@LzFwTC*qTaU`^sMC)UFx@Vr{n zAA89M;Oqv-Fu0IEV7hSyDDGMeB0cw6V&G zeaLf5y6vt?jdRKRyGB`F2yEoAJ!QdO2ZISfRxtp*Z|xSA{%S4g5`|svIdcQxZzTD~ z1QsSN&i9zNvTFunHD3DBAjM#qt6mmdlr0$o{715^9spGywg6IxMsC26Z-P$+x7^W5 z)_WLwAdBYcmoN+^6;?;O?lt$2!jiB)qs06U;{pFnhd)|BQyOxzD zE6CWhzx#QfPuusw?mQg2`S8Wx^9JKO;r=ZQh*K4qAScCC%}d{KBm$N!9_2KLBu{^b zg8@5$FshF|`w0?g|LQj2HIn4y24HTW7*d?hD(e;Q!Zl8yXGekgG4T?vK!9UZ=-tk2 zGkZ+4g39(KlFFSNfE*rzk*&7h&3_Ygq9em8&xjkde|cnnBo^&(0@;pV_AD8#o-+`A z`dP&$?H-5(1E4JDo^y&Q=u@fqtzvZCmm>R3fNYUo1c-Q3cZ2A5IL!whDBCiM=b$ef z6u$xJDTHM+E4VgOE>5amzJq6j?zxy9klsKv+rcSn0)9nTUKofT{qD!e{n9|^X8DH? zbr;F9t%QTU;M8;W^IddNY~qmk==>>z;x}WjKaM19)X{V5`wSQAOxg-BnVwPsMCaj6 zo`3V~|NX#&&pKY=L>;9Q%)EcRFXNAr8Q-GGlfOp z6cBovB@zj{Y?y)P>5}5YVezgf)y@uh`)&F#e$*|G;Xrd^fz$FO082T)X)kTn84ija znuS!Qw_z-PZigQ#2OSL;!&(9^XVO!9K66-l6G8?|1ioGLw#5ZL#C-HgBCdrwb9HU4 zPGF-ymKtg;(Cj~y(>iVdD#_zhYQvuIstP9%$R z8=+11h5;0Gxz^zOox}HNb{G*r8^^D?3G|ElIE@#j&o^8Fc<8h>C8T*6EV3oD>UH-! z1&v~IAar==rE}he7+iI>MuR#~$>4q3k5%?+^S>KL=c=g&4$1`O{?r%PTx;;B3(#;q zU!WEQGmC7!=TNR{7fxyv{z$>4eGR~q1wdB%W~R6>jF7AjR2G+3Qi12kpnEb0?RqH9 z=x&}5V-h7T5JzpR15^i_UYw1SPey-Vu7AO_XT(Ss=7?Cr7PF_wuNJRwA@> zAO0v33lw;+D}I5%;Et?gl8-mTDaZg;P?Nul`rt#%(edbyH}&5Z(f7}As+>0=8-#y+ zwN|}EU5bkhY4~s-tS?!zA9fr#edRX0Q#0vF_k#qmDmWWnbv`uw^w(`YD}cXu8ojw) zyaQ0srSE9a{t6u23Vo^6Bg+A|r$gt+O z!Tl4?SxFub^p-Um;qCpyt#j_^5Jj_-Od4Q&I{KqCpYh^w9`xs>aC~7yR6p8{9#S~_9d~5DLFedSB5eIR2&Oj!H9aq9Plth~cv9{q z*^i^r>T2$!Zha>=t!^Cpq?(gZDJm*bT}nsps(|AXV1x*%5PG@-rOBb)6bbT&gd9h@ za-K}X?qJTF+Kql9^K<2kci?F7(eaJmFC6WHf2`QQUEfPaNkC*Wu4WoR_4lLan@{-> z?U&rv5855sY7VfuN_2n=r2iDhTmW!rv2B=97msK+aQe-%KI2Syz>Hs!z-GuD9;S{+ zPeszw;U@8LUZaj{wP1c5FaeUxOtG`0h01n%kLSnpq?KuRN_=rzJ3eXzxFPNOvTTz0 zG|=0A=ajo|Fy1P)ze{x3`FIpODKGt5!e?fSnm#%#b-r*XxxSN3&*da*6xJfOLGrQh zEP!Qd)DG%-1aPei0K9XFyZi4N;gNTy8`@2jn_oV@S*MgGpAcY9{e}YsL+L2kqdHf3Qb}4@j=*eS%&A*woo3U{EfXou908 z&wiD7$o`}FVc3%`st}Xqt3L^RRWd00RiG;}|E+Wl#W00YF-9PiIJyj|A{O zuO0zt9pqP2jDQVcOHk!P|JOS_*Y_+Iffv=OUUl{8tr7?48fjY=Zqx@?SDQgP|D*Hk zl2J8yzBF`wDH;BLzVI$~gXe*KR8Z6R=9;fQppazD+>(0D!0~FML3ky**#khk`JTsn zG`w31Rl!Ffpa-1Tg_2nCve&4$+fhfmZcWeHgXuQG)!%k_WCpe*;@-Imgdel3h`m?^ zpW+c5zXWt!6@ZV&0BA2)Pac4G^;koXsVf_YcL)qt8W)`mHehC>jMfziFu+~&>mXe* zO^P&6DdSbC6-$}VA z8CQN>Q*2K@l*5Dk#uwz)QeLj69NGbg)g&NDwu0lp3(x`t#*MehK3D0o08X3Y$gZl? z)VeWVW(|&M=YzC`r>*}PO?k9(>DtZ?Jje2o^3TPreCq4gL|~hZAbI@h-hTvB0HD%} z0z8+Mmqcj(=;A;>Hv$xxO`(4eZvU6hBpkp`39IG2`RD7oHueNedseqh`2GF^L=^WW z-`?ZKLxYSrMt`0u|D_)N-;eX))$2 z1#oC$mh-ne|Mb%Tn;-An!ip~^ zBtD1yhx_ASmqNmTQs&NIFe=XH0H#Y=8R&?|uw7Rqet4pmdkO%F=&m7}R`>XAKF(&= zGg7Ftz6VH+K6#PN@~=_TDzPe=<7K8=k*uouK)N4i!IOXc|M!dj`=a*ea``@G`^G(+ z0y?D2B8kz-#DuR_lN9(YhQ=QFUIJqEQUKK)_297mO%P1Jy-U9_8*MvUn7}Y)mZYWJ)C%Zx zQye2zZtHcjUjo`tsfDZmx;6fFmH+LVBe9In0z6f{@#a_z8lf+T^rKfI6iL@I@h4q0 zXc?j0=>wb;p#9oY2O7cH{uZbx%;Nut%L~4(Lz~gK$^UI=^o78>#hyAhq~kIWFaSJV z3jp6*zj0^+kX)33W^D|IIg_k1>owHjK%ln(XN#cGEP3}{4zyTUEx;6mH@p*2q;r0E z%Ef#1aHgNl$x+~Ci!>7h-&?0zq&xlj7Mn%nW3}K+OMOsvY%n-e4`7nVzyM$c?ETS? z^`5phO7pkD0@jC5z?f)qGG$Y{nGcu~mZ~DJL~i5HljqAJN=RmAU2#*dvPsA>y__^rX>EzK zkO1KeT;a1gpmR+AnsV()v**r0Uv2|%qOU-i!E2BxMajH7|Ak`$L{wOk*vLeK&TH9^ z6>v3IJU}#uH6X2NjMVymy|}GogkxLpz4-hbb)|*@_JTxPk%RIi+RD3}9Q-%vaqF|w zV_eW@Tqmspj)ubx*qMxBoB$JT0lUlu(AAcLLe%ttyaj8@PHp-(X7K;^nXd|dHRzg} zo$yFuFi!#!{!0X8^C*Efw;CVfg2p##QZH%Hk0xCJ&Qb6(oT)z_0GyKmf~E{=Cm!l* z^}!?1miT#vqwZQ#0w>O%rU}eyvd5GXq3kR>Pw}V>SUX^5VhimdRlraG>!9XZp#Uuz z0sR>UaX#TZs$&YKtE*)Xu5JSYgnc&6YP{5@2LFCx!^v8J=x!(&j1UJ*6iL1R*~IZ* zJa+cJU-9Y76?2n69Fg!f2>H>KCrshf<3Nz|pu-BXB+8~fpuZWdZK-odZGet!zicWC z>V%Vt;5PO_-z)(=_vLp~;+{VupJ+Jv```?IOl*j}q6Q0`ZL=~7f$bx~89RZZ% z)Bo!5f3|I#cdkGNRo{b~e7gUtH}+r;-S;a&53*MrxcbAM4irAicx=6Nds7 zFuh{%+7D&9WB`nbE}++z8mt9?`J;Hdr@Z2ZZCB$2?Niq&-T|yU(;LT}fQ`t}$zwMw zk*8fGIS+rqyK%EC=H4`4Lc03>}Hu8GXVq};^i z+Z+PSQ)*plwgs>h`ha%)aqQ3&%hOKiXa(*v8Oc&$z&#gfr)$VLoIiB|2cA5RhJM|7 zS+8bxP9tEm@n{_EDjR^!Tk;kre*tI7R5=1?G~!M8A0K>5mls)PB_F@MyF zg+q>J32y&o*((No8D=2_BAWzIirjT`$?@;NwFro|pr}g(^n0ZYnpJ*RThb-II$`?r zHF)9x$fK1G&a%u?an7eVAYdj5&<_NI>2DVRgZ;&3-eJqy+XnTwpO@&5ayd4JkJAw% z6u=Ymc(6Dz?&jF*ztjn1CxpxJq-~h@o0sImtBiTTnA!Gz}%e3YqmWYE@W7Zi4Kc5g^o>D&=ADEzq4!I_f?FMgO}lwMy#qPoz+#nYG7H zUf_8jFWsgQamkOv-4Cl??XaY@IOQ3B#ereMGvn0M<~O2i-!p9`-rHf~`mK}6F~BL% zc>su7+jjAMQFv?u?KM;9&TlcqOd|#@_b{ITsiMZfLuc9f4rBP)^jF05IOnzzH}9$Z z3sz6oFA@cPx6XT8R6+OH+LU-(m215-DG9$wqpY`0PRB|wSWka&g}n;v%3)h@Ug6lO ziskmm2}&p(>#_CJzxi0X)UC6w`_C={^sZSFi3Id2Ka3>F<3z?Jmzd3(T5%6B=oX6K zE`>q)1;H&BRzOTuSQ3%61-bb#d4?>EZxPNrE9o8amsJ>G^o3Q#jaxg8z;;;$GFG_0 z15MtuTr3rj$=3?&Nq$X*IDYGVz_#?edE!c@&3P*lmvA6xv9=^BF3wUc$qv*9iR%X~ z3Zq#tnGy1Eko*#VlTDL1{uk#TXbRzV^%|!fhaLI_V*kS3_ zD6xTvvGa5!<-k|>y8N$`RC)d9`LGz?i43-~Xt1usvK zo3aVa>-NXPsC3=B;)es76CX|!^WHBBXCkPalhkbUz!^1pT@@38SO!49PU|ziHF@-W z1RG%_!qMn;1Ul)YJ6G3#m{FC*Qx|dF`P-=V8NiD9-FEczbZRS+uF#}?np5yv7o-qw z3#5ZzK2WbRpiAz)%*p${?u?|AF*KH9TpKIU~>+OAF)7g!tn@s*J zHk`9VJhoEjI=HpPHFH9mNU!SDW0A3e{XjD@6#Lp*MgH1PE}>f_7j}`uA>I`p(8BYc zdhgNu*6@U`6Ai6>6dLk&eAaeZb2EN#qfz>pP4gCi@SjbBmK38N9yx2SAAJPq$dFKp zj;^?)DLA5Dme$hizLcp*>!4uKyFFjct-%x(q0sKqxh@=&Td<%Q=1+A*=`t| zjd9a}b9!54Gi}HHr|3-37rfyEe5?Z>6X{x$7ge4E6MZD^fbS_(FG=;lAOIL?jk~j` zyaULYuR|YyG2twJd9idF15o0R)Fa}%KW`isd1Lb=L=u z7zg15a4n5q{aHsv1^}pT*)}tRv_GT%fNnZa9&i1;-!GxP*GEpHcK_GU+v{W>1 z?aU2HfEYV{@p!Y?i&bLY0Bj#sKcpdtB(D z+SA20YXHD}oRT|WID%bgf^T);r~N|P3l#s`CV!X_3C)*j=z2lFmUU_nApvx9gz&cZ zHCe7a(4V#ZklIhP1W1V7QsYvT*3@JnuZ}HAWGm3_@zzMLjTR+go*{{NV*c(Jc0z8M zjpWAyoi`h|8%Tl!#F-}UgUPEbJ|o)VTXOp&fjq z+6&Mb9Mf2U%btkCg41ByQ_c#c08HDr(_Kd0k<@p*LYW?FVnF65<65}vl4zU1KDI1= zYksmTokGhqw!m4GW;+y244j0athlmuh}-8bGfr>^WN&DXZl5-P%p{K``xn!L4J$IY zOO0{NO*NVo7KQBms{XxxDo&DH8HD3oBXw3a>+Nk%Tx}+I(cA|!1&v(T@WISd88u?S zndw582^yv_@TFm@|qpVpL>%+}7Y3dj2a<_Mi?S8Y?E|+le+fQ7totqMN zFED3ebbFCXukG6@ugeO0{z%@`Y+G{Kr^m2T}y|K0aD0kG*?>IY)-^eP|b z9ZAU8S8Bda1(&3glyZQm+6Y$p5Iehy={Nb9xgS&}Gt>^#<%P`@=jdLK0K4s(Xvchd zxO^!n(OuT}$Gz7IF(4J@iwUy*X(UgP`TWmMnKKVtu*1T8wGDMPNvD7JtmF5SP1|p= zX+EG-w{20~HpmG}bi`2=0$QY93PMW}%z23jFw*D=$fs?6G!7>_s+zUQkqV`;TmksM zF^;%aEz}-ouUWnKSfkXa;VoT*ftb~U=%UCagOr`1u;2Lnz(8)G0Kt|6eoL>gS)p|H zP}C|o{}QEoGGh?$6-OX3bmXf-c^c}plW12HYD?BgSrKX>& zc||-?(`5~@N453Xaa$Le>CFQ7R#LqQWEXrTlVU8)xzYUaW5wS=B1Skcs`{d6Kx8h& zX|>> z{e=?>Y1))#(t(tx)%($d>&l(Oa>6+uY+7&-sZ()5B&|NQITH zIl_^I)zK!UXI5Qh)rAbPR_%zcOKzN#l((vfC8+@64j=YtijtkdB|%ky(ZJ&ME#oxX zT1I%*T7Qc7`B|YX*dC7cU8YJB+p+)q%}<}wdY1T)<7AB4%QD-r^INS1KfM;4Ew+Ve zaX(wpG`jS#7c0Ho5bnJaBW@bYSHHz0;IbK8u~|CEz5bqGr>S+P1huh8EM4pD(%9fj zr`-6eZRxI|%N0fRxQ=%O{Xa%0W*ngW;IbPP*Si3ZypQB!-UV$;QEmWYP>EAMv11f4b~hAA)3h0i?4fTp4=M3d@TNeR@g zuT#W%ZIL?Y1x@FjzL45Aou{O~aojL2MFqDSz$PelLn=omD zXi30Rp)cvg_ zvUvhCxVts0jTK^w0&n4zvA`&C*8o~W;Z@aFRvI=lr4E>Pr|~Pi3bv?G6b#Hj+HgX5 zjd9@o(h)ikOL-MJJB9P1Bn%Cz_y{P~T zpLvjr^CfiSY)-(=F{7^v2=byUKl`uN-~FMIbD;Cf_8S-f-SLui$LHRueoWRU8A=e-0Issc&fZFCZ>zZ1NsMk^@;;cyGwY>(jmGw1zV)mCe@NGKg=~^=;DMG_ zZbTu4R<3cF9DM)uRizcvU^z@j*-3oudnw4RwJKKE-3}$JKRfYg!wDsTY6+1nDtzYb zHR|jI<|Fw#+BMC7GzL#IM@vpcyE0gHC5td;La)$Q+>zAr(GlSJ8;3d-BnmlZ)@Cj} z(pPF%$TiJ2n(SJnlCRWe!ik8^#s;%qlxebn`3k7 zAyP=@+^Jr!!b-P@;aI3aW%;ku9~#$q=8~Si9aLkxi2fe7B{*!a{%yrotx5DWYe8|8 zMr;r%5_Og#Ow1qoUUw!VV#C8b*M~S#ZB!#tfMYb(@6;rj8|u$SvGWa4idl~c)|w^= z7h5qyknDM`ZQraB@C4_rrjFEa52h<_9qZ^_KkaCznWd!$nyvW8!{sGtvMGyK^d5o+ zh4SJbG##w-G@Xb+xA&PD^1eE^?9s#+A96ods|ipo{D#@~>QXB#IsWo?Vo%l5DmpjA zs@8h%%wu{Ap{5zD^s8W~@^^GkwdcfF_b#j9wTeo|NTo`-PpNY@D<0~TIEsN&GF*TML8WHBA9mEnu<0?`IV&O&U0xNGd>sL>a8 z^}5cXE0RH-53MKh)fY3i=G&v9u+}pUd8OFO-bc)^LVv=8-_8Wyre-5Zp13H-C)XpT6|hOBD0cDZcC;0UL0bQ&C3+xfGY zQP&(g$Kd*RzxECjSgRaar-9s9v)Cv@wQIaE7&{eKcn1InuH%&)RY9s9`ms|Z)mFds zwvGneqhHd`>Pzke);;W!_7C~)d^Z@Ph#{2yng#03DE z{&i|9>H|s3)V0{0{zll)AVWe+dX-78rR77u@&R&lgMkpI6Esd#1!=;}FnT6VyG-_A zi-qmye+D>jgAsTnPmLp~hwxE0MU0YXVkVOK1wuw*0YsB#(>V{lp)SYy4FFCYQ4ABf ze~7>V$~d_!8GCVoPNtPK+A zhWHPzW>uYiFct-3FdQ!O#{bLRXMsPs&AdQzoa`ze+f*Qa?oFA3eV}R@2M8g3&s&8% z96(9>G!0K9oA?5u)(29#Vdit-bon~M11y!J`e#7y`FSLZNT+l(OW~xK;yiJ&e)!tU zgGhEHMkRz^Y|8cCflrphK9Iu$5&w-Uj=8b(t)QNlr#hHUwR9Fq{Lgg48b`Erh-_RF)pSEDS^}^e8 zJVBi)m}F|_HMSjKc64ZQRzybt`5!+LE5Y%qf7|OMXa_tpuC+M`h6T9E+!@9I`!*XB zrlebFc;dAWas*ww9@a*mtlO75{$!&(jUHWZz_;Ijcl%+zwI*BzXUAAcM4ehJWnfI} z1au&f(|zl6j+U269&r^-4e|_peenem?iE^Wxn6rySl`G9m5fB zsQzWOdIdy0I=x=6+6L1COC^)zN=Rb(DNiYUmZro)d!=^m=OeMSY-xV6bEaD2BK49M z%I6rM-F-AwRZ$nrvFR;(^dQ_(k2JygTx9_52dFGz4>6BUT{t;ZGBokgzIMumOW1^_ ztYXQmURSTAOY7?Oy~x<#wyhkuVaqGAZ@X?U>QdW4XnXfDep~&}kv9WZlJ?P`j9!j9 zX|zo{ar8MBBoa7n9H%e52E(}Gp6rn@>W(bDebTRXY&h4%gg>!7H0tO7| zI>qiVwo_;eTy~xDs#_ljcto?(X<5W?DVJ{lfF+8fPU0kgSb2`o08FG0Fb(J`u>^&h zb0!Zif9me_J5p#%9r&s1$I}QM#HW3om+Sqn?>lXd^4+Uz(*ZZdZ`EuPu=03`2Wgp2 zK}_GTquUj5PEPM4S+w@LSgX$m*~Sn{jC(!1u>(Txz*DKu^s3mSRd-Fe$DFewX0C@f zKYc}6?EK;DGmJGiY6l&63W^^Uy4}b)Sm2dH)T7~Y14K_*^bBUa;miPw7>O*}clous zw_H2!F6SzD$w)D6DtZPxPINWN9D+SGZDC#Cd^=;)pwA(a>@xp_=S;nFg4&g8d2eRI zgu@bQ#^+(vq=H$D6SARGaLTtm7tXfm)!Jz+vGvxD;Aza&nYK{yDBgaqJRY^od*Ki{ zpzK;k#)dAQ|HXa9)9nnRJYCrt!D>RlAUcrl)>vk&-G0VJ(3e)$IO>ol*OaH7%SI8MXTbA!@`9fps@57~Zownhe zSd=|#b3%Glz;D|XKF97h7kj2`wd#tpo|}(6Jmv|q#+0r{A3GlF9j>m2Z$H3}lGJlI(;(6rZ5bKTV1pokoWUxA?3 zc+5{2T(%O@rdYQuYD4%$JlpM@*RvXVXJ)XTQPz5e0bctu_XReyU7k6@JaleEs@+g+ ze>Kc%9qo8E->8dN^8={pGL;y$9}u~_l)aLN1jgC~w))^!Lz7Sr+hgwW4i8KUDj8=X0S=OVB8 zhKuIpX9>(6weo)B4Au1Juv-K&9@h$UY)^y_Jy?maLxp+ezmsQtCYpo(N_-+K`@`f& zbVhc;*)pnZrmDb}W^v^aW~gL*9cz9#bGu9%PAd+VSAC_KRkk*^`$474{Y(c^abT^7 zgO#VnN!Lc0&1XaKxxVW_riLR6AL+1T^mLXEJUijeEF8`djz?x2zpI!gX`Y!JO}ivH z)GbD6y1YQ0W3l({65RhAEV*QaQ@s#@h|ebq!pH~cwD_bf2=f}b?QS|l{C;aPOlFka zW=-r~l?n(+7@h4}84Ni)`;h;a4aQ<88A2ZbF*MQj`mx8UqP#G4GWAr9+RBso2aQq1rRW_31%#uTk zY#`3w&BCvWY?&n%xO=3q{(G}FgqrlIDxtGYAb7}Ps82D-HDd4G%B_xLh4yc2g5l}H zs%e!wA^R4yD>RO58l^w^h)8Kd1J_mk#enuXv;)lcts0kGEfxXN$Tk|oQ)S3f{!;xn z;=YAocAyXROD;7ez-9N;;wV*W-yn^_OF)&wOFV}n&`&IkPkYbZNq&uXNc<=QVc5=* z^gC-tA4x-YQuC@Z9{(lf^NjTErUp||!m^{bn%_}_yoC31>=j~8cj$C4s?ti*^adVkV3@~gJ9Y`&XVOp#D00sD1kQZnPXZFtf0bzNC+RS~zAMx%M6fwe zNIv5ByqIYAZc%WT)93@XBw&}V+;~>%$Tx@*9d?$L*P0hqBPdX*=gX0O)!@5(QgU$q z$nxi{UIo5*^O|cpuqZUik%j2-;VUP<%T4#;ohCo!d!W&f4uO|TL+9}Pbne>R~_+ADv437y_r6Wj&6?IrRM!5*Be|AyWbm@hJ zC)_t^IMqfE@7Uus<$1q1HDuu7tgmY*XYPkBq0lV#NL^n%15OFi#%-=q#3(PME-}L+ z@N?1Yg;@I5&b*UDFqjER4Yn?Z+~kuWPlABcofD*e!^qY&-eMNvjc%}@uE(C?o|!8! zH#uS8z?_adbVls|)(dGV{jlQg7Ie_{05gQRM45kwe_pNORCLgy+HdN0g{SD!0p{tE zc7YF>4#UDrc$fH?%BT#(^L(NOl6y*w&vVn8ED0Nr(zgwu{K`s-&vQ-fdInu@)H{n0 zu1mv$IrP}QOls(s4pssK2Q!Xv^^ms_RKqEPVV)L{g%Guucmtu}C7`rzd|dIdNMRv% zMAEHDrZUk^^N4O#0S>n%f{hy`%`ny#F?FqEv8>7?xFVethU@tfDZ8^7FFvfl)J(j% zl(hlXh$UYHb&Z0^)bzxYnxm?%btV7Ea~i#`BT%;-h=4~TJOc5^V_^(%aE63qY}~rv zBdV_KeN9Qeok4C(5kOv+-5JJ;n5FxJ)Djbek&;NOxg*;Pfbpo z*?lx9zZqX6_gUcZRy%+8I|XNpYX$d!VeN~MuOxZn_oIPeGv9b$yGF_}M{KyEGChhF zqb1b-ZQJ@mewWjVN_%|bL-B5;!PDO~<{*AKWM9i$mpPm9YI?tC67TkOyhKW|X=Dnb zx8ji8d%Y|jtK!p*Aul42P>6i9GR+46>WHV9v#0HTLeJj!5_Qh;=vuC{yj{S+;3$Jx z(3+Y{>zp?UGf1`-uo)oOJS)I^w1bNogYWGpo{${@X0XKog>7gQ5} z4Z!sNNf6un=99VgP1@`eq$og@gJ+Ib!(pDo48akHz(X*a-3}kjnu*U1Boaq{pgkB% zHU^_rLv~3(Qjr3-|251c*iRb+M7Vs!eh z;65u7aNG?+5`2+CRkd0fP5*KB z=34yV*^vZ39gVPbSESZC@h%urCrose+{Bs3%z!iQwYuj&QuEDE&Nc{WTcjku=U9H( z9#;%n#8zjy?;e~G-EHtK*b86*Nx$Yzt^3G9;0I4Itbt`0I>l$(hxM{}i|68Htvw|z z8@{G?b^jr6inM)gG~ZEPNiJ5*@q0^NkJjZ9}_fUsS=FE_^Ub5bl*GN4G+nJ^GID zd!S@B?9O@YR;(&sE;KZlx^=y}Mc|#vw3&9}uhgdk$NV8yg!f z#~v~C<HJ`0JoMZ~c34J!i2D+7@w5WBoUrry%NaN4-kd zqu1`(hGfh5!nvBH^&_H6c*<&V+BWr$sXz zOE?!ibIvr?J!k-Guf#j2W$&R2eHCn=xax**SVLrEZKS)7*0c3=gGvqrSiQEpH@}Dd zw*QX6w71m|uT^VGT0k=g`QG?G6=(UO>&-JDri9VDcBN7NJl32p08PS{he>Z}N80M2 z&?l~m6z(mf1qj&USl#`18osj@WvvUt4O`l=Vbz277!7M7ierBX!TkwlGPzCN-+Ok<0JT zHvx1j@*pd;3@Xd~cH?|prcoBY^vGj`dHmB8 z3P`$DW9gMoMslSpo!2!Z2RX0+I~E-e{zQu> zp{yRZ>!M>BUZ&+$6?hF&E7gs?-OG8@-EU}xXllf`*KL_lH z+VU%fJuK9PHmyF(eBlynL&pqLY~L~H{cybA_$24GbF>h*|%*7r!nQuRe&-HtHEW38S(_Cov(?-1yL8!B6iSuo;&(}~| zW$1BXeRXL`!BYeNo>!40=WfKN4+Tqe4fDlDmSfYm#`b;{v{I-M3dgKoNWE)0!X=+p zmOOQhAi1IS8q32~Ge67sWpqzgJ=4wo{qUp5Fdc7qe9k!}KBmr73=s%6yq`7|BR09) zhV$dQXwwKbHD3zMSXNd+KX{q&d{HK$|Be@%Nkf(V<_Om~2|Z&uzN_>8``JsqvLk)O zXrP?8?o`<+uGaRi|4>;!_inHPl?}5ptVA(y*_pMMT@75p3&6K9khiMgu!^^)ZP9~E^cHJcH&%S!;chI~O+w3Z_ z2Az(LcKS-WVYqCYV#odN{TUOb52%N3il%Sb$kzxj(y`9_6ib?NS9Q0v@q8za8n5)C zO@q7UKePL2&+(jWWMd2-H67J6LoRj*bO?5ED7KKS<0#Qc_RB(;_-lKsm=p#1y#^ny z3aKAgJd*ljhj)X0?P=CZHy1e1h%7O+B=HFc$2Kp9T|9}TZHvnqUyPyCXEE<;&RS<$ zoemyyY|ahpkbeykD`Tt{og&(O_!a6FjHj-k(_KV;V1tdip= zrXaYQlPn;H`^FcVxcQ^(5|63#d-Gd2_r7|Fzw?fGA@oi&~2bX1;cuHa}SUdVlT5!6)Uq)ocOJt&!dSl;cB( zbs-PocB|>55!158@6zoxMQRD9weem?I@3#0wlIF>LNBLyE%JrPFt_RG2Wa*}o0P=a z1~2YPM(#G_M8V}2=lK}zBT%qb`Kqd&0=g3$wHfW)d%uW==3sd@ZG{RkrtHT(rhMPd zEu%HtQ`G}rxb-g+~s>4w)*@I9eMskSDo@`5hinw&J4X*uG^c~<7MQtjQx>cqk5vF zGCmjo{$NzN$n4f}L&oIUAH@a~o^L{U36j?!hlXu#mUcU%)=A!H?w?V71LF+J{=J4s zT85q0y596J3_1mljC*Y%wZKT^SQe-$O}2jF0x{ouvEM>!H;EuMFdfAI_BZEpgv3+o zuO&Ac{k}eK+lZawKNSpSC@V0CQa(+#L6t-9wF=SpUY9JB|6~`~^yKXDgZrsIndz@& z#Z>z2qeVX%4}N=G_-;32C3|;UjnpAbgSHwAt^CDzEMOl#dMk+Eqi8 ztdcA5xzp?N*Ee&UUS2GFsx|j%L}BCEMJmB@gB(Am?&O>@vPsA0x$AFu?dUi^e&_7R zlTA>{CkUM^*=nuKD2AF0zMB?~ZZ5e|=1lbdYO~>d!z5|}Hrvp|KO|OSd?hcul6EzV zF|ahaPEh>Sjy@e7g@N)f`@{H`7s(HgW=}GmNTU+0^OzlLT8kUw!(n9G2Lu8x78|w$7Fufw7ZujfP#P^*$L!i1uMg5h( zXJdv*tWGb^0MCQWnL!gZ=V%iQ%Oj93I$Tm9fB>w;iE7@B?cX!$umF{){5+9fn* zV+ZT*C7uMRqU3ipwy(4N|K-D;HqG=_(L7Bo~2`hNjZMF zgok$D9NnnpduGW{9rh>RTw^k7i7T$9A;XQo4XZ4ma>5c4Waq0}?eWK3&RC!sXQ!e>h9e&U+MtNQ4&daWl_5EC=6ctLhN?bp(n`2-F+0=)ZnzBoc^iw2Wp~$ zacqSZUVL~HEuI(xV_B=VT-Ua{%AlrOe3`~@R_7)KjefJ~lge>dr;oji?C_uSZJEg6 zQE`!@#*aTdGTZ~j7@YNnxH~CCSh2Se@Nma1=9uJ#d$vTUuSGVMn2}vG-FsqZBF)y` z>xus9x;@q;86`BZ*xe9XFYD%Wovk`E+vcms7HjdO22EY{nleJRZ3oFYD317;Mrf{% zT~(YhU0FdZr^hK@)(A%g(~rBo6m;h8XQeX2h`skB-NG)Dp6olcb;Bv={vXJqHuETD zH+DO|=`B)lTqnxkzKQ9$D`zp*I&~6H*tInKnuLkmHyJ;aLw}@%UVhwFdra}OhJr1J z+=`Zz`;yk`fcNgtyYKG_N|X<5oRY^IqTjGtbWY#Sl0rKXn;cQNZVwEzJ%Kd|pp0W86KaU#oPDm!|7t{Swp^+kDvK@5uj?rM|H{?&r^+#XkILk9;3@ zZHYuit8JShN0ROczu2PRPt)?waJ`bFSL>%WO8)p2^+JWg zEzE02j``Ppg{zo^I*~Q<+i#v?2%qb^uX+-?{!AJzdt$z@JQ(Q-iV> z);Lg($JWpHesY{6_N0oRaANXU_c5UR?hV2K1a5E+EJ!Z^7Yaq5ylhI@aFzAs$O|t! zkrA)i3C`D?COYrMfEcBhqWz4MVd<*hoe{q87ig*N*eqUpb5@}#)?G}@7ZV~9g6Q#0 zKLFpH<(uh&-r_6mbk3<|OC@ACfpYRSg|B|5oS=Kt?vrkCe0~!jtO>vnu5f?kp6&Ko z^&bnogqO|3sdal$==&JPijH%myBU{>nSP@oNY>W@#N{yEUpe_vv%r3@mAv~RDe+CJ zdyTW=O+cLbpq;;68S6B zpL|Mwahbm9a-F_Gs(_UOt6N8=j&;6eF}kl(RonG{9jO~G!7JjaUi$pDLxvwuuKj*? zpNO!CCqbD?UA?Q)OCzhtDqhT9Ua+o}MUE6sAb2}>RiNgnDX4 z{NZT~op&`U1w*CW1lQxX^cWU8I7+Z>ByR~etSm7LYX2sSsCKE=G7*0>7ILl#*liCLls;%j=0U7Dx}Ft zJIP5luFJ6_>UZI!OIQyEKQYNIq@UT`O>fYQ)FsLulcBDmKF>n!` z&I9JI@k$yGx{tGgFt*kBgu?TVOxQSzaC9(%7+F#H;(*1CXwAc}SfSrAZ7s(*Zu4mR z5IZhPP~hl1#y8%9-+Y)ddc%cQ{Z~oT8Ru(P@{O{47P3|t#)8`FQ#fNj;12HSXP$xR zCs~2pn(vaNs7l``?$iytdeNp+@L8!uYIhc5b&KW9@hHZ15aAm?uZ<nXur2gj zV*ISuRHiULtVLd8GO||+3mnITt<&15_&Yz4U?LZ~V|fy;;UoN426+v-ew5^7!j}^+ zxBr}e+{3eRoQ+A1LdFmHw~ybMndHx5uds}edpR#R!mez>78Q!XA}b+|X#zZ0`gPMx zy&W`(`+45D-<=7r@UyU`yv6N@d5d`r%eDLb-|_g(jy1P*R8RD@I1N6%HWMEZx^-UR zmf^V5em7S5D9dpp&`iIGXT~w3=_)EjXZmMEw*IiNJNeeIHuVr&jPH3VaYN*sAz;uv zAv?uS{Rn$j!!V7ZJLRp4la$8X|J8FmjAA4^ZR%N%f z4bvgD04ZsZkPhi?5Cj3G8!74TPU(`6k`xt?PKgBy2uO)^cXvpxZ?5~^`+N3%f6w#0 z-+q7ZtL@l(aBb)NNVgzkwR2;E&g-}Hwz1328ETR^AI@Y)pFP0RYi%$kF& zu4PvneKh1f@=Tfz+88?FKPl`|LUQ{sgW`6$6!XNu7fP$wV7D5%qCb&rv_T^4Ecw=! zifp6cBMr}w-Zpe!SkHXlwHU4UA6Y1q7wN?g-DP`LyJS_4l-sXj8AF>dwhVJ$8UBeh z{1Ho6Rf0kyv+;S5|10dmLvXMi27DH8P@OHsyv#Mdq(PztEyrY;g8J^}L`^{X%X*5# zYqGVampDJEm#e7OA4lz(o&!BkB|w4i^aytdT|vrbG94!)t@-&$CN^hlL>L+FD&Iz* z-B0raeZR}dckj)zAn6*mnN_fs737C_3iSYAx#9FR>H6cu)STNT;C=~YdJe6!BIw`T zqgixA+7RZ0r<{mA_=1z>B^tI6(Zx2D9PAa4c=|EA+km0NiuqE)4`QDU8{D~b3YAik zBZSpata|GRMXOc41e><7uemk258E&ORu^B^)QYC^l9(xsVhBzAj}AR zPZ)Y$?)BfR-*ul9hqDq>=;H-D_x2~N3bT$x1YJwT_+KxYx;CNt;)M<>Z%unYm#D9r z7Rs(uC#l_^@wJ`^o%o;{tRA0qu2W_;)0QmkyKDfl?a<|zsCcIlP)7`Hlo@cxsh2R6Q&Dy~sO zK!g3LcwyNJSGT_jnZ<)|z2~p_jmyw`=+wPUeL(~)Ma3Ier$SPy^(M{UqOGls*y(B9 z0mcWXlp8hn*S%^7yp~TQ5x55mx?iQW_@7UU0@uXdz9@TZLThrRp4ui+W&6xspV14{ z)gv%vbTv?xasPnXNvCHL^Wr(q2s=&v;8<;5b+&y=)up5#3i{GJSC8g9Wbc=H?YoyD zJDJ%EJ9=X^Y!!cmJR6Ro1cTh*D-~oskv5q;4`6=%8(+Weay={6+RjHzNe5+W=fdrx zL!7nRTkZQ=Aevr%Wibyz7c;Htq;u4MsBc7beAUUgzT@7Na~zrteZ{JV$KFMVeP5c= zLIS@PR7U*jze3v;vWRY|JWi)runEDf(3N6FG}>JHW9sSnJrwHmM7xDdr?S0<8gKFG zlZf(9C$8C=&0-Z3HH0AD{kdB*d6w=|pV+$nBJo!)`mrH$U~2He)3~SLk`nB7-3+*S z`!WPQ`mkLLOgP)m6A=Zd zX)MGL@do6Trxpkm#CBd6jp|0SN~ApsWK&8XSaAHjw3^kHc+}4B5)wOfRrjV`nfN43 z`;$d`&4TCF(3z~PwwD>54#(c3oJGV-g)`+X6g-I8srRMT7OdN`w_8B=x^e$htZ0M- zb(tj)UHiW(Ur+_pAcBOBKyrolzi`$+FxT&xCXA~GZT&Yrc!HRFU}EbI^Z!lf1QWW1 zP|y?t1y#byEN>#|5h*$@=38j|nuQT)T7_4_D9L9ntt`XMCCAuK7@nj$snP-)hoA$D zRzQ}tng7ys%}u@*E{RwoF^WzpzgxDMp-wz_PpV6$tg#I!sD00m^r@+|5LAYBLqu0Q z_knWEMc_>j+uICEBKQ3XhN?3a0cJT{^VM z`3!GF-lV>5`a1iwZ*r09^xY;9xM5yJiFZ-Jq#8DIN87@u@1&%wCK9z%oiI5t9oA(r z6iL|b;nxyrz}@s>%ol?TPQD%6Np6pVV(Ke?CmNevg&JN-djO8g~|J0NXy? zrcpj>7f34OwP*B+4}4I$AbJ7QPX)C@7m_Dw1v1^^oIOKMaT^I@fi#(Ub^EX5p$~5Z znte#tVoN8;>uc>t<8}A=9ITA%#?d{=Y+zaevru0ixX-L##M6O5!tX=%{c5HHDORCsxhAR=W;eW%y4zTXUVPG zs;!U{>$fw+j4nN$EcJQYe?p&bMYE4SUo&=S08}d-qA?%^9f0QaETys7NR5E_5m_cD zfF8>~PsP4=z03=KWR(BHBFOjsN}lv8-UZvFK`{ai zWBm5D4Gf>3|LO5ynCrC9+aD*~hTgv}g$5tZtvjy}uB^RDYHxX(!55I_uG-HZcfrYh z(4?u-_vR68Va za*J_Did$ToyVn1%YVdTBRnpv@NNkp!lQV}R#^npK~BLY(U?&9cqr>*&t1 zFcR)UfPSq7q0Kxge`R4nV1GicaTr8s4EuUk_n2mQ?9I)&D}(ttSNlZvapdCih}&FmpXqOvc`6KJT>z=V-osyL@w^5;OdsKmkB00}rYome@3vkQkyG;exynKN1Pg+nvZRM}sh_l&(GRLNfH0?skF z)Fs?0jlw!MZO+Q>2$BzWUQ&5tpU08$%ENs*(y?n!mfqHIi`1}YN5EwXp(^cMg2ARG zzI^0>Y&T(?ZsvALS zAbHsjKEm&c0F3}DSx-U7WYsEEH;bE)dtgv{mr17qX({HM4=#*EiLdwkFDSS1d^t^2%?WD+ip1 zdJEb(w<>6D!Xkkh(0A@0ij_pu@msibI_7W)cFMWAv$;?<{XY{Z^}#6UPW^&?R;{@f z2I-6EF~S6EH_^f+X1anla3ul`-z>*T(!MlW2Qfp+`Ve%%y@P6H)Ay8XKnX!aYN0I6 z;Y+9+{}aW@3{0D0?ZwNoiFo@y9#B)7*L_isUsWW0;n6=Q?&}=;px!(i6AYtl7)WIN zQB*4S6B_7QPJQ9D7Jm?qDXkKv!bTYTbC{`g>qK-gSnua_@ej>|y19fia0R_JHn<%H zC7Ijp{rHh)Vm}V+0B8SbD)JXVQUY>YuYMW;dP4mBm^#5xD1?8DO z=%c9^YS?n83`vHoKYoV$KKL>Xi?c9i3>5FawKDMiby4_3_b~CFa9h3kOygZg+l5W* zFhg!DY5#Pa_Jth#N_WY5Q_7YI;h_2To?UK&y2aSu_6@~GYK2Xe-)^08@d1pn>FMW% zDGiUgsxNbt&23{@Vy)ksr+zN2!eTeZ44ku)1Ez(r()yw4_oEJBI3bZW4%F<%s%%cr zs9>|E8ndngxHT~c*YfgyyghplBs!EggdFvuT`%76a#&GkK3Fnc`^Y!CIbgb<(UoP- zbYZM_*q&Z_!#kCh;7jtNflJx{r)y;Yvc;!tnY*6?_Xl?Ku&7zRHl5FNT}Ekln9fIb zS_=+5kM~O@X0=65B=}1w3zTl{*P60M6&?(W?)f)emZ2R7?s<$FI*|PuEIYZiHS(SQ zQTx78_paxrQF3ro_fVo+|I3c3(5kTJJ(D(TUH;ld)3fb5moldDDkOAvV%cYn@r8O3 zSZXJWj4i4l<{Y)d`xqzvFL_iVJIJo88M;sZ@?A-!*O)p?S*6s{NtXaX zVvq7b2$jJp5ZxSr{u$4Nd(dUQItC(t(^9Jn13fN}4aJLmTm;4Us&QNK&^w?v)kVSp zUo?KRS3?p-a>G7AVQIh_l{zB_B{24Pcwo;rJLg>62Krplvng zC%igcCFeBoF@8l7t{c%rwvQv;@Jf!JpCIgqfE_l`0Mpz>sc>v&7k)7UniOWYmXxLg zyodb+6`3^K8Xb>{VnBGUB`*1$nYHf_uXjD23_Is&R~0WP=x*T!-76}9Dw(GgnNJ(! z7VDKPjxHoeWdBnOU>(fKhOCF_YnlC7$s>-J}gbKWATnrg4h0tf>sPZ^L z1C>Op-OYHC$50~Nytaa2OY@(J)`S&JH{)WsN6ZCV>=6DX&OvjOEU_iLm(I>ogEe-Qt^vMUb;pYA^e?m;M4A?S#hORRYmAlDCp{HdA#AF+S+uF6&YLtB!+m zf0>6pwC|Ar)hX5k>pPU-`I5fEsSg^ojNVqAm-g*B@KkCFq*8s4#Jp~XIW51xz)Nt? zYN2Y6F>sMK&9^+vIACN?)%1yV$@0x!5z23P>MlJb3x_v32^EFTLUZ2FAut%iv16+2*tME;YZ!(p2@ z$J*bKg?o5+Vey&AN6fJGTheq1;7`$J*2ZA%Q_<(e=IATNA_VtKk&wt*29ctheW*4H zBbD{B*_LyctW8(h8;7YTri*9nCrkYD544%Dd{PqG>{cIpATg$=mkkS^nZG@~a=BV^ z*EoJMotsMg6v z;wgPU68uXhMiX3y(SdmjR9akdgWb2s@C9eTX6Bszx+}E{RKXF30!K|{T%lD+y1mo7 zlwIwh=i~zLD7il(`P_R95#hQ96j-fy*0Jt_aXCKQA9Q~7vhm(1#_xp6FdRQafBa(; zG*X@8-#9&q)U|xeXlE0cF*Htwa=C@Kp78>bB($8}xOchdALhzS(I1+Ynv4x+EXe_DhAL6=xH=L-tVoOq||{ZDhO7HvizA zX%4mR@>duO0rG5Jp12-lJ$@ag9HcpGV2I7rqBauhP3TToK$6k={_Q>>MLJJ}9(b(V z`6--|39@&Egdhug1iuCb0t8F6I#gq!V9<8Puw6uHu`3M+H`B?hrk)n8`1WctgR((p zoy0x)B50i~CRN!mma4W>X_#h0ogFG()=$1k4~rR=3W-09MR}2i5VTXWO_8#xTj%`_O05AmZCI4^^C@?6-+BuQoWoxux(XdjwSup0q=qm4M7gWOjV+-@^gqN z&B>x7oLae7f0e4!2U4ye>Wq>0?O|W`mf-3`<-jeo3LwU(-<^+FzpL(s#zD^?2+Tuk z$jn8{)1#6LRy<{Sf%<_#{zf5@B8|_3tGGomwF^5rp|d~B%jZ*jx7g#Hr>q&5Mm<50 z=KzDO>mAfh=C!!G(2vtbSdjgz9y0t%H=X3jIN- zM~1XivAVBYUH4#r;jEq$arZ6k94wYdHYn8R&wTS_kZSfgRM^sMK?TWxFIq&N*BqkY_cdqY92HJZLCX^p zd^&sW^-t(Z-F)VuJ%Y41QED8O*t8fuy_03Fkb~XZ)f`NwxEAfL+yv)vt&I)l_os_h zFg8O5dydOqp=I-hm&qiPE{1KryQE{eU@PPr~pMU;=;$W;0u@ETV>Z`CKSOQLX?iO z#ih5JJId*}?z0}(N2^)w-)}kZcKM-6%@db67CXt`?2=MAWiNY8orYK*8xk!Q6Utlr+C*jHJr=`+8L}xR9@ei? zlX#4$*o*hCIBCr1fiv^(^%bNg8x8p!C z1k53klgY>7Dmc`YiCPl>ROe6Ry$l&WpsXDjkInAh0puYCPLTc)F;Q=?FQ6%Q+!^cT z^mP{Qn_32gt59YcQsdtDocCr*76kbGkz7vAz4Id2*RuCos|Z%_fG4Kj_INp~6JwsZ ze=|0<`0N|RL3ODb38x)#u4nHB<|5WW<8z53-fafRo$Od@!ga3Z_|)D$R$2^-vK@~? zIgh-w%aL-Ta`%A>2TVr(gaWw=X;f^*Ldyg5)Sr?ZyKo&OG9a%VlNwZtTZ-rOPDZR_ zH#O=i=-^eo=y-ks@S+B)>O@d5uEXRcFWa=}_PNG;~dGDENu8v6+-URc?hOPjZA>8MLf_J*~puOSJN5KUn60Gy*3{+e&$2`K@9ec2NUldptRru2x3pS>+=@NXh zfph6b!9h=TQ(vZv5?J&rjUeM*qCi&1wN&`ls(}@)3E4xc(e0vHms-UY+%eTMh%yw1 zeOW|z+D-V_K56x1kScaB1G51L(N#FSi>Gk}SJ|6Rvio${q=O0dQ$RYCX*eVl?uEet zS{qK+duJOiY6h0H)Ji)=tv$WOdrKMS@k!tgnLoqtCE=Cp8rC+C@Z+;@zoK-%&nqK? zfMTUQrYuTt(u?lhJ+$j0Mku7EapH3YO(w*iS~f&c#dwCXG{^>2~_^^E#(gIgzhb zrTt#@X5{@1&NKGtdHx8g-CTiK{>fI9A`RGB( z)Q{xGt*kj-$qcWS{Cxr36N)e(q4855yRn-%U<}edX=u^zUU2BWEJ&wopFC{_4!7&ott=Q%=KV9%#ac2?hLPRpSi55HLpUgSfM|O=KgRbZVd>`8rq!Xi zEe^itso^&VH9gR|7*;Kh>RqQKTB4o%J+_W-kRbAT4{P^Y=s1d;wZxZtsLnXrXMb9l zgraNbR&5k*7dGOAcc>cAAL*mf9^ij5A8((bNCT%UPFET6!(u8gSY|fN4KjaSdT;2h zt)|L&Mk{aA-G4k?3@r1mK96p!DFx^a3?`6`dzKo>r?Kg?r8y`m>V07+5;En*@nheslGItr9Vu z0>nJQ1q(bs)~=obkM|Mgcfa0yoej8p7@rP3@wVK2Nygu7LY>j(eIeEMv(3FMfk3q5 zL;GGa>Ikh9l5CXVMyXGAKkiJU?kUWm(Lnsnaxrg94zqEmpfjbQQ93gLv_uLGS(JuO z9z1E{VR$*6&A_v~BNPyZmA!t~|Db;fy-2=Eu@C(+$L}Wz&s~F@&Kt(FhBwNs%n#T4 z?x*Lq`dn^)YH!>mad>}WnsZsTcbZ$cwnL4@cpCH@4R___PVbTLFMUqgVe`Gw`E)xJ zyw8C=n#~vF8`aIHUk%ruf5y?8ELntk6b5E+8v4X}T%Ui`R(IGOmF!DrU!r5`cm$it zBkB9l5Puvq(q@CR`!3!=TY5TgLg~tTWo^f#XEXQ5*$Y*s zCF z-XD4{_?nJ@Tw}GJ)6H+RtvbLx-+r;pj#&?`+T#YG59Z684nGB zP|*@I!v6AIMH){exPxrg6rm8b%Hn;_a$x1xvU0ewA+GxGCCWh_r|5c#k_aIvN{*A0 zxJU|J_9uXOnk_)FuS3z$S#J`{OC-Low7C0?-fpEiorV<3Wt*;R3nHTa7_^S@|IK|3 z)Q_;@iV!S+2T!GmWl*jU$kyga!u>J=_Jz z76XZqSN?$sQST`19=f(uWE3>5NBFtqA;gniN}&~ehR%eb#k^kq5z(K&7zWm{m^k7% zOinN=x^%UzLUDx|Ug^2lS6=8g*gVK4j1M38etNM*pnB0b1XT1J9G>8-zts0!BrUDU z>OMMCv(&OXB@uimJ=>L#NEA037v( z`h_ekS)=s?xD(^;H!M(lEh27wt(X}Fki>D@s{Ub60KpkA;ZJ4~r7P}LYJs#ETY5qM z6xWEe>n1_^}kF?6HaqQU%rznE8SKxELp z<@>P{p=mDxv!>>;SHNxVs=rjiHv)6Lfp-;X8{XH34d$5KLSg%m=C5Q|FTWf>*)}RY zLLUQ|W;bR>B6*B+mCVw4L&~SzR*53}Y_iek?dfH3HG?CB7LXNzGU zCQ`!Wpt@ZWD{y-GLo!09%RDKsM_BbNp^cB54}gJ;B7UlAi$4tNDLWgiC_IpyYIxoH z5L^H&KP!2*>)|{^$%W#x#>OhM=8GePe-LK=fkv1NWN3HecLE|;W>6>ZgZEp?=-84lp@vCxV+mP|$!xN6 zB(Qf4uUq1MBChHJ31v&bx+lA_PAWoCAAh0SL*c7m#*AyB*kv`1d8S|c8WH!3WslCJOClq0=n~qFmGj5Ox7vqQ z9Yb3=r!c7OijaP251}3@pJ0g(|F|2Km#T6fP=n|Q!8UzzNlgR-KaJ0*Oy9>HJvI?b z@xW*B(y8-_Gw`~YXj4SI3@5unNF`IfaYkFh4dXTs)Fn+(`Eg~dap z$S?0w$S6_=#jouo9-ziU2gZOVlzXIp57Q6M6b1@U+Q%JuCcP=f0&Igo7|%44* zZYWXBiNbXrQ&(s*%y=OtSi`*iFk8Usv;7Rzz0(FWiIL^S$Cou8Y}}zDY%|S;v0S{x zIXGf#DEP)sfr~VlJ5x39T{B`8w+l*XK4R{h4|`MX;jlsW=m(x@SG3>x1QL5aMMi&m z^GHT^4xvy5M^(|u=oeYSo^vnBL{WsT+-*(Gj~#I^k|QfcT7u8xVn6iO(4X) z;$ExDpAj0wszSJ;jVpO)0VQxJNfP6VaRyT6w}wu!;TXz!Z!+&uB}(z{?SRV1#b2^A z?;9@)@5ZY!H23+QvU8{H@XcraCE@ah`{U*MeX#?R>E8j>W*;ki?~o!mJkAhkAg$*z zOj7%Cl$ui&XaL7FbR`3Q9C4Ys_zs0iWiFJsbPh&J(JU;$h;D73?g>X6{rm<7DAja~es>ReIaT zA!~XQFww#vWcyrZAu8{bC8;>0v|{j03S z%?HHZs)RI8$g)@ABL31VPO-crX~V`gVhv{^ALmT4v$?{dN zBfWXg>GeW$O#Nm*$E==PF<#Xi%zV-J!l#S3Q`el{*EVFS$XcSh{w35h7r?ig?{GaS zb945Iii%aHJ!8!>2Dbg-5JvV`ux>F>yQlUegQr2F_(y0zwQ4$*+Eb?uuakY`IqcIr z%!zV}N%t_q`?dBOhE#243yTikdn*fTS3OvC+FyJWlu2x$jC#92coI&qy*!`viFL#t z?tPiMqO~r4sk5jf`(5%YDk;U=rAZ14S7NsGYoi-oadL@<#6!d+`a$vPiW}pW-%2iz z4<26N4sI@}=;>_EHnw$T{YnJ1cE+gZ5DTT>)<)F+A_@+>68XbT_(X+e0yBXLFyh%6 zHELVd8Lde@JlC4b!dcL7i#iUXgyi~NS(8gVos4efY{;E?rfQeM()Y_JmKodsuBMHO zo}i1!zdhxm?WSvJ{2unR&+6^va{+foE(SY#cZ{+=l4EbUB{&kl^=nFRuf=QZau!^S)rD=iXo;N zF|F7&IE0za5!V~Exx^8c`fbYLj9~D*#XZ~2(Bdn;w($kiI-LhNd9k;e9ET{RTt$>y zbLL}l%>DIZYtx+H=B@!X>rKFCm{w`PiZI7H-P`Paxd4oo^-|jvkH0|C{{tytvJ7)k zVH!vp_DR5Q=ri^>HcRa}aR=vsC~7(o5LJd7i>|0-7bc7Ge;20c0YaV20Ywoh7=s^b zj2XXk?vvgm;xPqg6XHraG1u2@c2j2k5Emrr%!dOG)j+EmD|<0I#FTM&m#y7tu#4?> zd@&W730F|NLkhuQQ8KyWi(-r|s8T<)hzk;wny39Ro`524IXl`;bmIw+NT_acn<}q{ zUSUQOj}eV!ntdA|IwlrHbEk5ro(R=F*u(CH0y(ia+?Ly4`NluKU}ev$^c%Gg)j^17 zfn2|22^tjzx@#&6_&tLdW!HsiPAuPIb4^}PadMmcGNMJ&3ZfNKOTBzs-e3ePbY<*O zC=Qm9=z9!&mL@o8rSG{ee?4ma>{I}4RS+xHD30cIiRx=Ft+&!=s-xIUA7Na4iEPDU z5b5qR;by8_t6z(}8q6PVzLNc=^SE+`|H5|CV7kd7-ZxS>R{Z`MNucuugm=XJ+_zRh zw5MjTpU2+VDHZwy-yXrPT@OPz~u#rPFg^Rz}O(oy^m2Z!K@47#N0SKmN zv(U8&AL9;h?l##xtbE3KAm$Xi@h=YtTXopdqu@t-+N8EvI)w*Gw{H@QD} zhX;8Uij_%7{J)D|JVQIhhe&_u?U(@4i#@XtA3bTaJE;nSxSbQK^dl$W7XH=~5K}TW5ZDV2f;^=KTgI=}tNP+%tzSIzu*hTI7jW{>mTTIR%W8(AkHDXd3HES9(d8h`OLb51qMFFI z$Rn;=+^o;jL?Rf%IZ01#unbez7{hI95*G_%fs*Uq~YYpf7C*vBlG#OQw4!vhR zM%OQ{?i`av)9*^XLr|Pp~3F0Zx>PxOdT0EqAvOvx7j|cFwe9hWg}J zMtLDVM$c7Ym#@?wL8L*a^#X$W=hGb{Hg5s4^dvST)p)TN1{l9Gst8O1r933#jsCaWX>sd&*yjaaI!~L1)I`{#)QUJNJXpu~1~P z<_lo#w$XUY$a+<7tP5k>DWO2hO&2?Y_mh|BGxuI1WdbNaRmjxim_I$B_7O>v1)yO~ z4q&QKxHYzfcpDYPhBgOmj<>j#(obaTNgVe%Y)cqL_?@=I93E~J+TXb0sQOPBZ#-E? z5kDuT8%2%#3j&c0dACT5$w&3K0ZTwMtyCg-W<_xySK_zl?j*Mb+9;5I?*)~!Vn_j+*e@!Yw^^j_%T5AGxMJWi@W_V0ffKx12hZ3whTtCwLHDSh z9ph>TuxZ}uEOQiGp!zEHAlp7UGSj~#sWV%9;C**%<8twidahn`W+IJzaJFkf4H}w2 z_lXElL^{8H{nye65$qY1pu_*~mg!hmhS#z#-DFn3NkD^Eq!;iYSOG;OO}EAp^L!{z zVqwp5wy{d|Y)n(5M1@R3OglQa1AKZ0r|6KB=iieVc*RXYk74ySQ?Aq2^~C`vTsQo; z4&%drIeCC}rzpP&=wzuWs=`WeM=_pB;DBuKQcTcRiA7}#&nNt!U7(=yM+r$!R*-}W zH_`(-DLrQNXU@ z7j?}|`pa&E|EqTxn6aQ2C+CzQ=xnyC3tl=4I8M#a0pX1Y$J0(2WpNA<9dCfN1!(&B z!|{Jmo6NY~>rMVI)dz58`Q&wu{$ zxs4_pfB$_c6EK9lZ?xP7Fcqn2l8x9`_@#}Re_5UA*pAijDQjRgTn==A2PdJd_awl< zEP#`S=YgJ_hnb}c5=;Xr>Y0$ou1+QpN526Iy8Hg5NmTF#6`)!7w5Q(V%!2>SV}*`u zlIqxN_av2D^D01~mrY|cW*2$Rx^nyGO+?G{)F=0aSMm5=|23-91XF;po=7iA_2>Hh zK{o%_t^e=+JuwiRl-0aPu7BIV@D=;_|MVsSm_i6?b?M*x5dXt7TrvSP_AZl0;s55N z{QcAaXW9O*R`EZ}_Mc_@ACBjrXZ$~h^nYER|0xjuXW9Oj%^`PsPF_v_Y!0s~fk%9cN+ypS zm~&?1wHizXHd)HRD9WN?&LahMPM!d_$`g0t^%{JPSaN~Exe2%T96+`8(*`K&l+)c} zrX_$I^@Qg;_C-f{dE^Kj$=(1nM1wAzwB6-Gl?MIi{oPE?AHQ((5~q^TMNLH7;W)%)cxY+{4fpp)+y%*yVG5` z_LQhCMzdBVCP>@~7KU^_@&}_~{mgsaDz(4|dPgV7jB>QZPf9A69Lk<0M~G zd(oT^%ixJU2UBRGz>3Alt{JDUhWV=0u0I#Z$ZU>uy{34)06bsxUyYUK8#nz~P5n+M zRHSpmpesD2RSa8D0%i5T^~dCd5xxZmg?HGE`~rsAb}cWe@v1|8i+s2;Zf|5^>8u~lX)FkKCQAWp_PF|U&!0&8IA+jDxw!>7Q($6~@nw-Nk-c{igEoJ=!1Zz|RrPu62ljerFypR01&+WbBd> z(r3MAWyb0y>AlGIh1(A7(a|PXD*@g%F&N-BGr))Vb^&S=@>sJ(B}q;EQWg!Hlm=M8 z*DE!(W#VJpqk1dgNac+R!QTZm&!lUCHlqE%xAXicubc*6Wjf{jo3AT^phPp@zuYy^ilCxPyNBE2eI#= z6q)k?*w$>|yt?PRsgqL${5JJo&$POk6WOax0ehR?O)JoVkfObd?dOhBt#uNx-s`le z0-XkU-1tU?l_Uq+MYoz|hArdHmtYXISoSqRg#i)E^TUgsC+cgTF3oNFkVzsPuK5tlF_*p`hRdR%108Lu;O;WoI0moe91z?`X+DHP)MzIG!7;L|G zjN?yQ@u{-e-9zIi)UP0-yN0=(9|- z$)sfoS~8-iUVXhIn}r06z#+ev@zLgT-g|@68yHo()ezFYyY2YUX3*pUjN=pntZgC3 zLDbvi)A4%G4o$u(TIX5w!lzdm)4{|}KPFT5;&CXiM48*xXh0Yy1+Vk6?8E`eHC3t= z0J$ne8#gvNJGWB#PVXoxqlsAM&#A2&;I4yfsQP2!@S)PH zAkon|WT)TP2kmp-r+3Yq!3lO5lOCV#aojP^P$%N<67g-2f-c{{HxoZCQchk=dGC`h zMLf9({*Bnct1TvA%lf(>edY0&>*0U<{L#dA5VLv-0#T_|xP#+FY!oh#203px25vwu z;PpowIn6Ax`2vgee(?FIGr=Wv2tvYl;4DrLq0s>YE4c=KN8gZoTx_MFp>vV$f@66u zeUHG^Lh|Uv$LCHBu8D1M|Kr#b52oy5_&qBGTJn4A!|oUikU1%w9$Ye>ho3ShYFhV! z8OeMCqw|OyNz*aldT;2VG{{alHg7R{gRQ>?yr0;<-d9J5(^ZTWgF>TOj8}0KuEFq$ z67234>&+Ta_DEIcX!+voX-J-#TAH9-IqB$4i6z zU_G0M);eL!%psq=GjxKYR#dzs_(ekwm8pzh%*_E_DUaSqc8UM~)C!ohAwGEhB?C@x z9f8B9CB49cUk%|3O`t9C4*mF!vde}F9~nTSuRPzEHP}w5?teK^ZLkM`cf2u|#ICG9 zGKo(1BI334kg&%tGf+x~Y76Z*t{Avsk}o0HV-`f^iuqoJu#VZpi6SE+?F((c7{ z#pGu+HJcHe?)ZJQ!Z4Y)3+{gxu#{LRT7RPa!A~P4hfI-=A57(I z7LL1g&X-&CHYV{*#ymhQ+%)~!v{3($bjSKDo9r9kt>W~XIf$z`&`vl8@uunGe(cC! zXQ2Ln6ml>lB>kdAsIYaH=}i}&gq!M5r|e+U@f$!VVmPh91Kk55-N^mN0&6SZ=0IOzyyy;kCQ{C+!$y~tU(am>2BYE2L_n79 zowz5s7?$8;ZV$RYqhO|{;d}jOyMAnESrDV_#*=nf41lsOm&2?eQ}XM+O2DjgnXyN$ zQF%`&N`nW~?-3#?T%u-yW!vBgl^H!>6xH+l!S*a(86ut)B2@k_vT2X+(dp?Zk19wN z9RoA&-&)*R!f>58mA69kv6Z4#0 zL@8sYrDoEu3SGB2!Q21&_)?E9nF6Kj70~`@9V^q-Yr%Rls|5XG-@Xj2O~r`2{- zJkZ^}S6YXM-Qgzm31!JQ5Yx4UoLAlMTQl*E%gEjN|Fc9?5! zdYXYs$=mmdo-cb@P4q}sU`8yAV!VmUEa4sz%Ve3x_|k0I2-35C)2@i(-GuAp(`Ih0 zYw(OY$?hqPPhWxz{*G@dr?Jidd`e+a)RFRQ=oL;m36?5puDgK&(=bo)$N4$yhewA@K+gjt6Y zGO4QI|27dRsFXx->7n%O1vUa2+jqIX`&;pmg(CYgt(Fuq%xH}yaHCj!Qb;g^CKQ=Y zl*0Kd{@rDw#J&*4?>gKfgRjk;EQ~?Ss3Xc_G#Sv{?nZh29(7d=ipntHS)L5~Xpzo_ zROQ<2Bzy+^*G(g|1ot<9x1u8 zaZfhlQqVW!ohis|MqMXs0?s+J18UlH4~Rq;Aec%x%aLN|lQRF@Ll?O~i*;P$-mUIk0ufSmH3MouX;^;JkW);BJMA=}6^aZ-PI5FYhu}ThHTWQ<61W$rg?=xF@->w% znu5e5By*`M4C;Ids~!S(JIv|rYiV>r)G zz9F(0d4V6Z2DdcyURK4K=@o4-(~(e}RY(&l zUaBrrbCK@ECIP%UZw`Q3?dib@cs|4V2Mo)HU3lq6fZlJ@rB!wkI2kZkGJ-(EQaPez z*LnpmQ4PA+i_Ki0oRfJ9aVIh8qs|fVk?5>wu8_y=i*PXf+`1Rs)X9cb>x?n#1G&OF zQ1Ho2oV}%P+`xc3W*FBiYXNHsQzXP$fha+z1rW@(8$qHYhv(jjB^$sD>Oqj;X;FEv z;*%uF6Vil8zgNw9XhR+DXXiiW`|%Pz^Aock~)+v#Dd1%<%F z*zJ?y1qM?v<69>c8|jPmiWDh zyrCF-0HFi*B=si;%L_1LrVvfSx!;CPFA2BP9zw?i;~rAzR_=ZtnHARjhrqj_0B{c{7Z4N1M*rq=>g)Qr}tK=Euk9`a{ zChYt1Hf%7I#~^b^>Ox}`t>=0qt^%#{SHEeQzHn%(n?0ZyYnvEsUYM=ze(Tp$-+UdGmGYybPXtz>Gj2o=H@2VBg7rlf3H2rmpY>QU5Nx$bad_QUCDrjz4|j#>fq^e9Bzu4@uw zg^85TYzYqyks<6Y7Y5qnXri{EY$46=1ZqywLTSku3}>z^+)K0BxRaF}40B@EdUx~; zywyuk&$PHM&o)+of>54{kjbmVm*mc*UgdWiK!BLSfbT;mB%AJP9Q66;sOc>EKrXlD zlQjOI0I*j0ln*Pyce=cA@mD%9dOn%@0*vB}^{=WW|6RuPw@5|)x`UX(E6DW+Z6rl9 z&$SPQ_RjAZvfps^4v9-(eMHNkoOap{G|)nNP$~VApuohL13mznM*?(DGim!SwFx`% z-<$WuU;PrYZ2)FiKPnC!RceqnPE1fRe0xDiVv2h5E`sdzm->^2aCX1SZvD2C4#Q9RNg(4@oTkNTO9@rX3rAoNdn9 zo=1xVc*Dbzf{B9wl-#GIvlf=+wHbaFTnj260ik?U6q3q^7OG5M@EX43gCRTlA1It* zSUOPOk;YTgo!(@V>bXq~+iC0YzDw0qRdUuCkUcbM3j2lgGQpYyP&Nmed0)RX#vK2q za?SkGY^QMVqLQu(BM>lOECsZb55>fj;iCBSDoUn`LHScl25PLsS~K*v{ZrKnJ2C4nDTqxQ87GSttougxDQ6z4DkruK1P@ z<6Q23@xbvdP{e*THata5wE>~~q5-N)IVdRA_5YCeCD2r_Z`&C%ZX{xxHc{-NZ1c2D z2_-^gD6jc0h z_xDHhlvYAA#?rDm`&?$7aaIP#^T6xJzDEzflqwH)&9lxUQo8r z;S|My4`nVR3X@*|jEmWP+lzZL`{Bo}p zcLhCwo%>R_4f4x4dVg)eCHE`~l|0tg`cf@f>aYYmIq!KTVg}=x(X%cCCJ#j^pDegB z;w@|^Mjh)|s2i9P8T(}0YAuVv%@+!{XE=Sw!$4Ll3<6sN>$BK7w>-XI7ucOiWsQ{{ zrwYiiiurh`FbdfdeZwv*$_QE9!T-@@yI40{?V0q!8!|gVVTI(dL3|GNOdYog;_WMk zE%8xnjQ`J;XrKzA#_*iAFE({D?5eei3doiDz4pFsNVlz(Hc1$qT>tY&tB%;OJSmP7<^x>cc$F>cL!ls8Qf{ol$^=G zPG|TF#QDF<50Hl)MS{YgU3lE0Ov&}*YaQwrLXz#98YT#v|K{B3=|9*m>Dn5WLDH`9 zj_a4md+gGkk31U0Vyi})sfMTb??T__)m|1Mqfv6K>z=Urhe~Uk zA`uPZp+b(ktp@@rmkdZ~XGnSJ$+>>554vfyPAVTf?9lu2$Xze!8k^xg^>ncHzVJ5^ zjMzbkxUl1<;tr|dD`{4EuJzaz1)8iYOTiB<; z#nxXkl#Omv=#n*@fZ4A1k&zaYdj+E;yXU}jd?}TsGvEmf&TBu<#FklEVVB2O?7q(P zyyHR(`Ba%xOc3RvOvHs5BBQ+UMjxxHhv zgb$YZ7m{FwR-9o?OF2YSpiK1cxor5hWEcd*Uk#xX&9S{hw_qM|1=hIle$=QXkk}{A z=*!n4qbi2=aA6G<_RuqMV%#qJHZ12U#4K#VDQi)4;MYiXHRd<3Dq{QHzn4dikQL(x zs3dqK8|750{da$S5=dY9sw{ngvEs_5S{2+D+1V_#qKeWIn26uyc}qTQM25UV)A02E zD^C`p2Xiksw~*1DF9%LwIB6P9&$#xEU*wTK$PO12Q>k9)9M{2KT)Z?G$?O>^$9#tB zFe!6*zy~rrpWl^3RqMa~5}Fr$6&8l#lluD?rhli23A8_x8gLYQ?@Ju!CfHs9g7=kM zYfRP68y;skczHl|_{$#nJKewfmyl#}lhC41s)3L|kv*Gid_aAwq$eEohyO?h3 zI;(f)fsiP2A}%(;+~4bhL!U-TSg;P6Ws{*>qQLux1A{L&aSI4^o3PV+n5Y&KKCZYIzFZ{^HJlS1 zdz$^2P?>0|%3`Z|W<5okJDtUsSk^bI~5%(}(bFrv6U{P72rQVii- z9_Vm~kcyq!uRfOfh7{M+r`{Uaj1OEflYct*BF3w}B$=b@9@X7DRCkqf8PCyS=*_%l zJJVSGSAJV0VMQ%Iig^&6H&VukSNCt|&hB~Sz~tzKDnl{5=9B|zPaI7IUPV7cvnJv` zi1s#Zygm|48GWddRSLz4Ye~DFlQef}QHoBAKpbuTn0x>&Bc{Gs_bQTYYHPyLI^^>! znjp%9DRvh2UOS7;%@aEg!olH?#-&$&56N9%RXK<+O|mc%wf~YKDI{`h)wg`eW56D# zjQ_a_^mY32OmoIVB>&_q@HGDyYZOMOuNpEwU%S4toK3V<>*@D%54j{mP2*lbcwpC| zecUyb)t?#-?#kRQZz~um;BW^*5#D#w2xcR-x3BNb-S_{JHqYODnd8(o(-@6uYJ@uN)mjiWi*V#`J>8XE{AWUfp=lb-$kX`mgw`P z4TE7PLap7G2S)ZJy&t*e4me)fkQ5jU#82Mxd}sTp$CcWp?s=m+*X_9ZCUZO$p@`L^ zv>(|xIzRmC;szHDMq?6$V%I)Leumx)pTT+iV9H8~IS7|YHy=*c?pvXQtj43o_Oz+X zZg8t|4TDH)?YG?faUiE~m*yj(DWmA*;aNo)^CDE2LPu}UbIqAm0Z{_>qzo4;JlDXN zM_o5wu!c;9RX;Grciatpl;5eMTOnR0G?p6EopSc#eT{JR$PylpC)SX4S_dEZ{&+Mz zBt~ku&*PQ(PfxT%%BTb_S=*X8!6I#fPG$beDhfmO2ByOv#LFbQnm^K#Oqvgas!L(i zc-DM>%W!4w{u5UYLf_JGj%>^57|6@C9FE1x9yZH~iz{EX!?h&)kI7w>(ZNu;-B)Eb z6_iN!&0=CQX4<_EtC)I6VrPwH+>lm=B~x>fuu>)W-3OL>9RMV$6m&OyooB@p_i#LlhF9Cl!y&}@%q~pp`b9Q`FX8s7s2pM*3qusF$=z2j9kVbBU zSHjESjS&52^M=Kf+uuGJ2!?G!#^VUC>50x4y4VRYYj>d-JT%vG&xeb)GR4j2>0$Rb z*FLX)g8|2hxu60UYjr>OV{Vc_y8{z$EpfeW3P|9#88RVa>)0d|b5u|}8xVdxP~RD= zn6Dag%_u}w7)D#)$G^OsxKWV$6VkFE>CF=j{JMb(nI)e63>s4Hcys!OV^hyEtE zi?Y9-&Y5(o*|Fh)5Gu5NX-~mGC`bW(;ZPbba4L;2ab)`~+AUM<=U0h{>+0lZmHx?B zMm^OERdD#dEO3U5gm{klN%?O5%C!Vyi2-JgQ}}JFnRO0PvnW5Jma>W zT)ou~e(csQlBpwbfuzw(1K}npOgug*G?6@|b3t8e>9UdV+oQVRrKi};W|!*mNnQPT z7n|1}Xr&V~b=~Hbd{3PcmLLbLlTIzBlD_B7&bl`~`t>;X54#^9A0U#IM3}yU$*@Pf zLgZ|5^764qnulkN9%O0^uj0yiiV$7rn);K^)`mr>rLMK+E0*J5JInu-f7bc#+Yyyc ze~!ldoat5Ec|Nj_$1r{{whk|KaD92?#1ip7J03v;B=y7k#L}?Ef=?hZaM%J7=R7f% z`Eit_h#~*zQHq#XZIV|jXv3Ax1`TBjzdnnm3Pt7jTvaZQV%g=Oi%cx0vgeFai3L`Dj8+vl9qVq*~N;zi2r8L|M$1K3zLcxrp+cZ2mg{Tlw$c^ zd%k*x3#Pw&PsG3$oM}9zQ6|)uB^`qqaeUQQ_efhI>0kf^ow^1lZB9hSm~veo+JE1x z%3^$s(|=>ElZVtgaAfzlXD6re^5LKkSz0fkZu1SOJR0n6= zQMVpY0h(TJuDBxI+j*LbfdQm!I^ZCUJrD`3q^Tf8>h3vtywID$Tb3KdF_F`S7+CFA zu?DCjnO}a`nh_cTD69xK(F^>}odSJi?8|%41)(`$5FkDm-k+b)B`c!mA0D-Y zO&MRM+^FSP9j!15Le(V$$K9<}T5v5Imhb;Nkq-zDB-$hx*Gcr6Fg1al3Oxs>fF3)U zq8?OQk$M%vd!4R2*OB1cVYOt#ClL}c+3_X=!KWs10@%}z_T8=CYI-EmlvjfVCaf9b zBQzjD--If7`R>NfJT{mTb;ehr6tz>Ptbl8(Iae1g)P?(wpqhX3HEn`y6qDh1$$vRF zJ9E_HR+XbM7BQ;m?Np_i_KOhg4^S*_dh5k>}~^d*|Rp6u;zhr{-f zX_cKVl*k21>bq+V31v5@;CJJjjYq86Qx{Od;oyVf_0A(=gd&$D;WoCj*7S1VzHAN$ zzf7~o#6o5`hF$WzeKx%q0Yq8`(qU-}J#Cz?G+ZfH4-nz9a9(@Vzqj~bHunGff4bvH z*zoQ+i{rw7iE6xG5^BcYm>o*v*i#!|`c2hDO<%oQ^xJ+SrJ9{G*gJ7`mr0ip<}~l0lTX>z)s=db!_tCfQ>|3v=5wY0};(>QHC3E zd=&~km2Ysqf&w_S2p>(NwYbQT`&XOub*r#`3~1BDF$y(C2Kg18%5e)szw;qi1de)e7izC8OC!b7$l!)}zGq zH7-1mO{-ZS3E+lhPMbRuOhHEjsKc{-LFyuW*c$F2%LWLmQ`!z!{|V57OqM~5q;uMg z*@u7QD)#xlq@`hS9@2!#7kiH@%Kg{K4WO83@1V0w_wz^u>zqRcVgs`T_#ZVaC0(-i z-60$-2k-c!J^t|{N=F`1`rDU(dqnpSRm}W)UmveM^n}yN*)zD)jLTnap|nl)(lkbU zG+L~k3UJM>Hotbbiy}}FuY@qiV~wolt?gjpX&8HW;dI2XTxsz4e-!HAo2L&W(eCgZ zTvz;;@S%hWJQ>Cy>i&^0-&$=H3Qby2RLv{kUdMTzG2te9xS{5X(X|JvH1*RVfBnh- zci{Qoe?Vyp!532{-{SxF@Ys*t86#U7^l{nSklTsb*e>wjoe^3x8qor-B~6reYcBpe_P}K?@Lp4B?<=9 zW-~*U|07vUlae9=A{v5JqI=i*dJx&zpwT_`^vBTCC;qzA|Gzw#PAshd3}ctqKTAsg z_hk*dD8LgOeo_4;ZRG#=ssA^=p_>nWn|Fxp;to`Thnmowgxw7(VAdVji!% zeu`sK^B*3%|B4`$$Yq0+VnqpvS*RYQR8}OK-?=3&ie!Zoxv8R>50s^4BV$YhWT1jOFr$piu3( zx2?gi=S~9#o8SlqFtuBogkjs}Rp+rgR_POdb6FKFx_Ma`Y!9}h45d~#!>4{qo= zqOdicT}RyAUS~*gEIp5RnN)eZ05_tA-joJ-VHjd)?k9obl*S2xLtmuu^`p|eP_=s{ zLLv2vCqZ$Bzc_ zqthd#nS}Fpx9&~W$-N^6Mzt3kM?gXf<%`9OW|+kCO1FG_(E<)F3>a;m=QTK8x2&|F z*#YQecaBbQZ?z~uHJF|@eJ>050lbK6WOr9MH5OpJv#kdKfeEkLWgQ@`;P`8($daI0 zq7Dp*Q`*f=DBj=iW?#;2aPJYrzkngzaYXV1@U^aAlqqf2fhloNoj}QTEC4QH)^QYm zw7Wi{_+HrD%QeLrr8M#S55up|1wf@hch#{(b@&;(f(OEqA(nR>-o^*Yz{X{? z8mHe%=S?3VHH$g;$;*y^2nWM&w(dz@^; z0sFhI0K#oFb`UHN+3#vhXFcF{MxywgORFT5oQL>yAmLaW!ur9 zNTtIb&{Ufx+qm@d#vok0K)h47Z~D|C5ABzlFg9ijX_5J|ujLVeQ}+^-YwnqQ(<#ZCc_tRRH2M_mPVVDqh!RR4YrwD?TalVyM&GSw4Il=->QRR|`G+Y3k zHI6r?OkwVT z^M{goa-#2*kT-E)V;|+PF&d3R9WSsm!M%Ssjmr$W8SM1~NmNgk->QBl1%*pEOfFZT zV}ZtlIU>>p_3PBDR#B3J9>TW7VzA(accbgVUpa}Lxs&20TkKX`_k|>M3wE7IE97~P zllqphW)G}mxu#n zM5O8SSr6=0X?Cs;LR-`6(NNO!h8@igWWyZap!1Cg*Cd4k2q}tL4D?c}K?ml1*@-Arev(fm9oh+^vS}k}VRdT_jJ3!J6YSe`s51 z;G`pD;PUH+Iq2O57#Ieb1{bdcu|{>%lB&sf4}mLQVGb})7|&k06;Wx|8wyG?HEDFW zg{Ebggu(Fq*cfs#%)PK9*9g!>i$b^?k0;3~o&VD5{`nUCH{gyvjy%SUV{K8jGX+H$ zXu&kns~{Y&(W`~dn@3zDAh*^7JM?JYaA*UP3kN++MM6KhJZoI_ff4C0$|hADX2zkh zOmVx5=So1Uq(n(-w%)gfNEk`MNhnp)^_%{ZnRJvA!$Twwv?GseU33;f%1|hhzCZlr zZyECVE*S$Jhlg@r_bq0EG#aIO5%xS0K#;)6K?X2dnt*s}S>A6;3(Z93Jd3?33{D8i z$v4_d#2{q!qQesz&m>Fz-hN*2l18|ac!tAf=lR_Hl^@o?5&q0oL(pn5{6qXlem1{V zsfu65?>3pKR7+sL&$WjYHypmuaBEqBXcZ`eI#ZR50H3ew7_VyxHJ4Ed&YZD1X%1VW z(&ofXz9T3zM3YUfPf&~wC2lEiBE3@&sMW;J`LN^f50C7vy&*!kXerxfUHaO0;NA$D z`+uus{^?6^$-wkywezu2Vt~^CuHgTvMmLJM8sPz6b3v> zik`y zo}A5?I=o@bj!$HT3)4pMt#CSEYAA?Ms;YkeTIIk%;~>_4cb*(!cWQz!30>7y7K~0m|JUtXK$L4yO5wo2qJvZu=n{-rsbMp5iIKZRZB|sxNqEII)G!> zu~1eu;e&80Vzo~u){<=|L$-B*a{}~9H(EH3?Wn~8^*KZvS+zRj1KFO&qA7Qiy zucQrfZPUDd+FNvic4|Utoq*&RZ|)M0ByXmpssGalZpXOM&xS{OaY+~`K7#bg%@4J9 z^5H5#b9Dgo4U2gFEx zqxyXMy`ye1VGu7o2XtO$!2X`Gkyr>$m=QSS*5r-<;Pxo7A6 z0UOV{B;VcD-cF0)o;6_CrU@JH+-diLan2&44m*ZE;|sgi5?})j^ab4hLwSN&%@Kpg ztr4v#7zB$dZy7<^wVOW($Ypd3ZO!wvW0%J(Oz3j|!0U5T9bXSN52&d+{bE6B2;j~hZ9K?rX(u#r~|lrHN}<)ZH{QVfZ&C*3@LwehzQdoG}H9J8~#DFMwX$)Ehh_HjsAxy<_j4$0t69zP+p(5OwRCOogKS_`v`@Ll;)PO z>tY*sL0t;DAY3KxjFj+}5EUZ^F7I!yAPjfjF*D&))sg!k1+pd>Sw%?d;w+Rp{Tl8v zzNMM^xj6>(ho3Fg9d+{PV->kb)sIwhV{fW=of0GqHdB-vAYG(zaZ5THNrQ**Mx{i? z-HYFme!YZYfZyB(rnh_09nt424XG{^SHVM&#Bk#VN7Jyv!k7DEsVNu`KDc7$dBGVN z&{#)GD|846NyUK1L!cP`JmOzIlt#e-*9F^%d)H#^pXcX9nsLi^jRvOFd<^x7EFn{4 zIQ*Y%*EwoXvnV@#*qV{7ivv~asdDo0AF2axs$!cM%Xi92vb`Z2W6O*1I&`q-e4^`8 zn|(|i__;z~TpazG;zCb&Ga*AwMmXPbR7b!3!;=mO)FefOhgV3g3_oYf&5JmXmc-fl zmoH`|t?%W@O&WWB638fRoyy9d*UsSk**c$o;n{{8PsY1GKMkbOjbR^R^qC^Fs!|uZ zg!frq8BaR4UrQ56%z@xs3Yt!&`f<1>8$Y6E+!yTg3e{C_q?{a8z+%IB^5N z0obm|C4@K=?Pdf52g)2TzFppee+o`kFwpi3@i0h&J+vHU&%@JGJ;6Of5`Z z^%uy3nrS}ogGj}8`t6Uyv@D1h1L2r#w{4G=e7z_a3LLzQ+}?MGqEM)+_`D-)tV2Hi z8v%WH#z_PCbpI&A5vu|ch#>N#ETUucbwR76W( z;%M#7bQx?|(+iqq&FEOhG-@Cb3Je|z#dL_F-26lANKjXgKe=!qG!+zS{K+i~li#5- zt5CMEAt9f=!&@P`{Jn5sR_W?IXYk${ajDPmg#PEGzRMHeI!mSt%7?vYiSXua9)Aay zM7CYW+#Shxbb+NJPYZ>-xWjod%Vf;z@6Wtb!Mq#)AUBb0T3ZhL=}GN#v6r1kCOg^I zdrXTuhh}&eo*C=kZA>w^a{ZZ!aLZ7{Q}t63yB>YQGN9eh&r^`^L*oeWn14{TkiyY?wFC8DEPKj?^hTdk5r60CSHwx> z;fS6Y4;7;MUAVSj1GH;oq(-5Rwdk!MA1iL)$E5l!f)Q@?d;Z3(ypT}UN|z-V5MIiR z%+U+$;?THk%5iOoCx5&u5b~WYRQXU0JGXIz8=uYh4kIvj?pF0iqj1(GX>Jupvl z7FPlZF_E9;FxFZB_{C(b=rhME3muiJtS3D4mPA*eRA(H2e(rh z_zzao8b^YP-YgEauy+V6z3h_D$85W!KGBXN5V`Y5U-`-v*&{lNI-dixcID$Y&s%-0 z@OtgapK3Yq8Sa5g2kTxvWP9xCNzqpR3QpjuL0}~plO9d!UmLvHOowor;`pB`D?oBx zUPfI<&0WDydGqs+*SYNJbIk?d z$LGpJi>>W9%7l1oNLe2KR?QejU(!#Ama62K;NmgULI@)Is*=jRaL>XgN#XQWway6y z!;<;CGGg`!jb03bon0J*^yr;r)$659L+;rHE!ipK({YZs^-T+ty;vTXZYo9@zJBv~ z>|Ppc_xpv?l5-RctJAx_9aC*|vJVj_)#zlboquH{Utwgslb@&-}Ngv4G{J zAL-XqBna49j-A^+EgnAWt6r0x#)V5S<@w_UXa`|4_%Zgv1d6M#&Rw$;nWOGqTzF_h z{KBN6zy3G!;J$i>I{YQm1Hxox8yV50(%e4AF_hUs$gH7CB2e(*{<~WT&8F{3d^5U! zKkv?MPzo9*u$|hH{nwo8#C`5OrbBp^6{XteJ7z|qER%e~mBkjv-yqbM-svfP!Bz+2 zsDK*y`Qn_#&BX(jX;Nr%M*AR&Nk??5aUA|y`V(s#Zssmf6xWJ@ zaI|aw#4Y@#;xPyc&wi>L;J(HHXb#OX=@r+frE@1xH3<ZCv(27*KyP%&D=m2)ce^w zu#@bJ8TDRgMKJZ?OPPGGf9LQ(k%R-74&ZuXg!W+$gi7j&EoJiHG*u|uerJUk3R4+Q znP$iW%s2muILhW(uAp#I7iLq;?9}b@b0r*ncR*9%tE+JhnMx5+PIj{EUPhdO&)$St zNi1)#^!GHc3bsGy{}v$-)$;Al@=Gw11_mO)C>kxoD@ML>7XR$=%1-x5DSASa#rn{4@wTNg8?Zi9I}D{W+Ff2(FZ^5xu)$SF;q)m77;H@yY4 z)|b4t)-OYLx7(N$4v@*Yoa_9+94s4ARyzEDV-{o+5$WX45sme=<_jmHNt(!&OEB6@ zz$^RfW2fF|QpJud3XZ%9UsUaX?Y;HZwtw9nGxTfE{&TmRL4U1LK4?utCwy9>{+%9_ zEai1$1TW1s1!I~% z5agAp$rkK~OrMvDxs)mSG`uHU--G&HozK^$*bj7k+sKMy;!QZGzVpRBbaI#S-)@@h zqO%-f3*IQtExnd($kJ6D->sWv;_%{i7ti+vHS(6G``$L6#`y^A zCWu8Si1u{fZ_h?KG)s+ABx*}mmSNss&srzwU%8ma?(*D#OLbM40>-ZS>AJV6E=Hop z-&T(6GHZd=HAV~zYcfA6(}$nqfV83X-2fLHT`pH{+*8Ejtwv4WNL6I%N1-ZycfD~L#2NoKv3-?$nSx`S<|ds`2wN2I?31vfXY#? z$u>Ol>pu=6(ZmxPh?)ihKzhisbU(tPdh;4l=j_jb<|yX(`>a;2{m;AFTcTMAYnw>Q zhLP!IR3zFAe>_{GO2&h~m0sjI`pGS5JoAfwf@A(8k%4vVE7yG+uj$`&rO_V2F^~|X z=AdE`5h#lfB%|~=_mbFfCPn2mpul1fOx-`;jEmA*-E3J-8(T#jANRAAwl=f1x!?0lb!c9AnDKUr+;Cajr%waG8-6*(S_((Yvrxt~ zCHJMbjSJ|KMfG$Ofy zheq6;sZc+#Gx)zS9{w-MA@aO02C{)-usGWY5jX5KQd-{t>$Vrxi9@jNI%$h{p?|A} z2UWr93&5(OzW`WDje%2==8>l8`9!P86ErbGJL=ZJb7#&%1J7N-1K*av{1j6%8}XWY zLa+yi`OD1==P{j!lM}}aq`5&2g|?Vd(q)+UPqwT*Scw=wB&Im}uXm3IR_;wH?nj)z z^`d<{jx>l)c!sgrQZZ@bl-smwZl{KpzHn2&)t*1bs%@pM zI?+tJnvYw!q6|Hjj&z4uk4}_az`T1(X^xilhFX&6Q-pF^tfG(7*Z);t4Jv4#;_6I~ zpi~OHK{uuAhh*S!BVu1X$GzZg>a8m+u^-B@ZI$Gw0js*gk2dR}KU!e*_`8!3WA$3n zWqjB}!zP~UEvNp~YlY*8n63=a)VyS+zO2VvkJ9Xk-aZz0zfBAH@8IDO>nJ#=-lel*iU&( zIfJ!6?UtJ5Wo(AO_d1z1abop=T8xI+gsE9_Ly@Rm`vt)TbW|-aj2D7}i9ot8DfjdEC6DWvP>U|N28_1Wpe;ZwqR zoBHHUZLzKyw2}J@wb>pu<1nJ3>)6Vy5IU#3JQiF4oPOp4-f%2b)R zwEmnRBsgEYXn9@VDd6%zRFAL^rqow_>9fRgT0UFATZXh(UZ+p{gxUY>55d2_bdiO1 zA&5Zhz1m|qk;>FT+jdTDxuaBeq}4ZV$C&Na&|GSebWAHPa`Ya11yc^kFQSzETz(8u zZ+?2TM&ORmxw_`78=Bw4SGim)ts>~>#J7I+wM(uhT5(s5X4&q$fHjw!by`%^Q!`U+ zftWL3=#hWQbNjE|X}BCl0z}0+@Mvu{HvTL0X0C$xDA3S@-~4C`y{#}#G|kUlEz=SR`Iy|QheDB$0``{E>yH?kSn5s) zZyp`N3P_%WMj502`wsGZ8xxE5&z`*p!lmiR=Vj&_Q2PAZC}CM&_BGNz_!Hd1G2xbq zpM_pEI2pJPfpjw=IY~Y6r#eU75t-6;?}M=Mssdrl^?80)P_Lie@^JA;W#|T}9Dtpb ztVikybl&t@0<+j5@$$r_$Xre-aF`~xf=0<|w0L;Tdio9t*|=obfx!{({f%Z~pLJ}b z_0EK~+|4|}e1s$wNoO^6*VP*0HM!AUM-v3^MKk&AZ~q>TZ+AQEAcUb~;wy*%Pm7-v{4G^lpSA zJnz|X#ho#R+VA%lxC`fWXR_&%GFIFmkEzvD$u$YD?t^=WUZ_%se}3pRyQN_q_tFyd z*Bqu#$DP; zM=|Rce2{QK{g68HREVI%)VJKN%07v6(*Pl;a^UzAS`7umObX@W$+7?H| zv|5Q@=G$WW&gT^2)e3H|!}4UTC9i!A*%pMH1>I~fWOteyJhU}yPi*qrx*W?!mU6lD z+C^obi_OZP8Ctx$1w%F;pYVDuD_mfR!96p#64FRlv6q8XY0k;9AyIO3_{|Bq=AzYu zj@xfVx6i$@?u#vn+?Ps8d%bMi)UYyhd1f4V`6JF?QrXa~@vWzwK;zk>qM~!2M+XuH zMXb+M3Rot_>c22Fh+WarP*BC$=w<&MeR7iqxfY`EgZ^cWb+VcvjKfb5zWR-Tve z+wye06pQgw(aD7@nX<+%B{+H3@7ld}*w?mEr_i4MNh;!2#4mF@k7Ov9UsZ0`8 z&UZQnX&!VxF>RF`lS#!h?`7WG4llrbmBY@UMQ)^a;D;_0EGV2S=oC+$SC`%14VkKY zFVb{kI5x*mcI+B)^!oL`IdwAx5Cf?8Nv)y(s5|~>+tJG8Iv)|DIqR@kWK!Yay~DiR zZ#H;7HK*Wh44fG!@s;4v?W?@1O^4CBG)Bg!aa^_T_5RwM>d++HfI9@S2+E(WWr;+u(L@U?`kNW6%zP-(NBQp z9rvih*EI|BWoBr}V!gz9eH+yC%NX;&w^vAQ_nCFK<7uM}u!>I~RCsyi`ad#{7LRP0 zdUnIq>8ax~3iG_&IxY@JwWz_rx0e9+LRX{(QMY{EGEdKTF7OPghNNmxXDbv*M((nh zg^wN&nqOkYu(6pLk>f58GIRoU(Ls!i8XI@lPabC2S&3C3YgGRMb?hfpw9bY_^!Xze z{*f#Jl@Hh`5h14)9axf?#~_t`WZc3c6wE{xgJ%eFS2WK{2@7eQ!j>J0SkPOp>uc#O z%!*#(ZRt`y!yQ4IYQD=HdJHvks7W|L8%-MrZLu%Ry*5>3VrNI-8Zocj36bAz2K+hP zrRA5%VR`E z!g5r{n^&{&;w@ZcT5+9`KgCvVV~=gVJNM!FTD8}@J8+C@3>IEfJ0i@9(;cmeP3;mX ztRt8_x54+^3r_Tx8WLs=xEAhSz1^-kXdCKNuX6xtGsxzZ)i6RD2Jk;)_$C4=_CzRZ z24jO2zJs#&uq~e;S-fc_xGdTwEXc6s@>9_N;`s8lfnNlp+b=b}FE`;ns}H-xuRM>A z*!zBYhS&OlpPjsAbkhMF$bbdZS8k(LFrJ0`{A15oBNsUr{8WQTssq+m#&8v7UWcoP z^Lo~W8)^v$>J5bnPs{DZnmE!7cQ}Wec%!~PpkVNbS$Vv~m;T33n*V&_mKLvb_&Tcf zAO~Z#n9c`P+4ogC3&@loNt<8GTHK8UTZ%U^c)e;ci1)j_(f(Y1f)dry7WH`5*kgEq zOX2MenMG9VV9L#6O?C;wxd9ckWXYem=<8>)HlMNKe>|%dN$Gesq`OSowbnH)76xNR z{D(cZem69)`ln_@`FiPX zy2x#)sv`%mM>6{EX4qdB9B(31+^uhu(wNR6L_Q$l9@KFi3s#IoVe5GFYsn(Vu?#$D zR##Jl&)04n#TjdMCNp^cumQtgjOA{)c{J^Y1(=KUC=^1nR(>2AU%V7Jp7#j~yT?P6 z8svq)qeMkdH|t`H<7IWPSg5|iAC-Sk!EL8|Zvngy1OWFFG%dc@eq{S(TeZ;U*9IFh z^Pg%7y2V>m*y7+d$;nOE#&mEyA;&QKM@59;^a=%ow&Je4iC1e~zc5V&PWi;aNt9l~ z1b&i?Qems~mT07WPD5+UuekRSe#K`?5_^)3V;(Yu6yjqZP@geXs=Wmf`IUWA*41nZ zhO^=n2~^xgW8q`;bB?bamO5@U+J2dc7e2vcuwfmqr?9d#*2}D7+?jr4KzD~X#=A>H zZX%cyC9uJXpH`R9lXr}#e0U|S9%c^i_2%1DY`UFC5|_h zmTJW_7nDzcO!vM?`mXE+)3cVTdo%}6{(iC*Q_3-*&Uy3f+z1R4ZM+(CtNG*Im=3@mUQ$n2 z=34QS4|6X(&?cc%qn_Wmg^sIi%RaEXj}mJ=L>HndlD=&*mtlencLm zsqrt2t~TPx51v9%^@0sEFHg(-dP`5V`J9-4CZWaXdYE+d8{5$u2@xUXK)xg2Wl+B9 zsbTq7s=M6#)-@!4q$`B)yqY=L;x{NaLAxGJXw=z?0wGHRamt9`ZLYOaUl%1kFKojVU`xBV3?Bh_Q#j^FOtdf7dindINJG#$`3K{DTlx>^y& z_H8Wiv-FWkON7I3lJ3f>8e6?v61}NE^Moc;ct%RlKKp)j*S)sc>H6t?Er^9Iio2@D ztv@w?1o~uM6iEkGgtAm2f-oQd*xg_0d(MhlwG_|;tO+iH6Q+RBmih`aDk2vdNH1(% zV)kUKPW;?0meBIv>~b(=m&RKuSz$hBUDJJNLd$xLDJW`Po@O|qvURlO^Hx`PP0!NT zIg__D=qA4(=X;Pa=&@@slXcVD>@3^TT$oO7o|~k$tyzOfOOtCf)AM_Qsv5;6y-W3y zUFWK-D#zc(eE5P7vZ%b#GShngl1dS`9>dLOvFydNi(cB!ENLRmieD2mX?z_Y1Xh-O z98c*w;l{gQd}sOF>8}3`%+}^&EGav%(WZFCjV0^733+*auE)zuwMNZ5q2-^eM25#| z4+vjsoton!X~ycc1eX*Eey8ntw$`dr9Z`a=Ze{#sUPv#p@GAZrhgVLHGjT7tgrS~w zhTIyr`ov3cd^=YyP3x}S>(omJ7o605XiWgOXTM?Ex`M~)C?-n~>{s5Vdx^W@q8qhp zzo(rd{LJF&N$D_rlKpg-iu0=%NpmFv)dr*%ulrOg)@9sXm$g~A=xdUa`%n!DsXsQe zX!Q0gYqrU@G}1mJu50_s8x(eU0V2LVHC6I*cdwLpbTZm((2qHx&jNh`J}}1FoA-Tw`(5@c;#(5cXO0Jq+joxelJtU8WAI(`ev;U39?$* z{ZoDI{))AOVRn=p>1-W&=4CD|LF*Ta&t4-Q5}8i_Hxc|Vv!N2hF^IMpqr7*={}OGd zf0H|Z*!(%ihoZ?WPv)bc!m9FM{WC_NL>k(jJ$mnQan+@8L)0<_gW1vhv7fM&a1pw| zg|s6S#*=LZpO(1EqZD?oTw^xUse8@vps>M#f~&$-O0~NC+?@?G8P+#zzgnJ#EJEpt zQ-sb4*NW0UN)H!e&2ILnMHm_O;#KMQ_YDtg9yxug(C}d~VF&u5pBAKowR%SPZ6Jdu zf0||+hqmD|e%Va3s%kYgp?3Rth$zjci?+Vh} zvsvN|;ZAxy>Jf3Ny?GcLWKScR0M zM`&sbNs|m&=Z7~Y_jJ$XGGq!bj?Z%cN>UDC_&V*O{yHkoRM+1(y%IRZCXac;OX?&M zYvBYH{w9jJbbGsQxe+t?paprAO-AF}yj!>98t>}|CRq;?!htp8#inGshXH?312Isr ztBB9v=H{ATGGWiyy;D^tHKM1!@>V;kMDf^>+pW`eS($m|z!Ef=ZgI!8`0c7Bp$=ka zAEOIejlvWdpRqG_9W9J?nOgEM=q{>s-`SnKsX5U{NRnd7AZVFew|vA(bQ$tpp5<%d z$ExvSe`Ml}%QU1ceK{^R9||bCZhW|RCYn2-U`_1lV;YTE+aEgJ)juW!-F>eHy4)zf zAvkb2VMi>@Ytjtm+4`~eG3{8vN_B(aL+@1G?%V~nJoQ3RN3R#jtSQ|0`Dr{_t#$6N zKWr}VS$sK@+CNp0AZfho?& z<(2I+y%47s^6NIJmE90-j`O`OB^p&r9e&tps~R)y9bfDVxiujbvsS8RpRGDFMw%aY z4Sj_;qFS0dOG~lu7@{VcPt#u5)GewMT>?s-S=*57@u~Th$9wgaogx7P7Qu9-Jgvrw zQAz5J5c?aj8>IPGe>n8;y^lW-BZ{AB~byf7bB&_|x zPp?R1t~?ZfF1C@|h>A4xUedVuw!+KwTz0;?vL%J*52m6{YI?cYyLo>vWNUgb0yXfd z<(aTR-Y{`~RX@L1>sO0h*28LX&C}N+jwcj5HjHGwi|P!kn$=)6yqv-R8?f*2{GM!jc!1am-#;$pmT z6bkdN?$C$1(aksaMLGkF)_YgEX(Fu8qMMoXO>5$|cDdpn=Y z)GU{bk;h0GX|GufRWoOsfLT%BO`i+rh~`gHt!VNGt2AD{sI!C$!^XlCDS4Y+Rji(T zWXVM=))wk!y!uY`E6u-WK1)7F2bs`kUcIr>wl#P3U?fe3@jE@ha#k#6#F|Igb%DxA zPP|L^O+RVzP`B{?`_J`*W?eBjj<(pcGPG=+>iOnPWxSj8-*v;4%{sGu9CpYRJQ5Vz z?kas^slB-wB>3$Uq|Ks?h?~f6QlX=-32~X@;w^rs!qxs}-}7ybt4u~a99+Yu`Pv~|o%%tb%X2V+zK z4brZ);tDgojSgRGY}g_vmm4DS3Gy~oSA1eA1RSLPx? zq!OQR(b*M)FwFDD(Q&27H#9DgdKGd@aY|A_DzolB`%p_ZHH5nV%{`OhuGlZ5kAjyG zu_kS5a<#hwZr@i4eDOtf?(+qV)~3Og`(eXf!7Wd^b7izkidfmDk(Q%)GfbAg8@CH>$HP6}+Sx>Fh8>!p6tZwCl3h%V4G^ z%)TToxQw~DPNM$A+o|!0aOvft2Y^j-aAN*KINdhH(ujYi!`%NwTJpAjTA$C_%3fE- zTVzDR>?Q)a`R)8Uq7jcQiT$Uot$VLPcKx_5rGlR8C1e+t50C){`XFb=@dr^`r!tbgqpR#8-i}Wd4hFs_8cdu6{iM-rw z%gy~A{UDL-6fI{U-uK8_`s30kFrr#ok+{orS81Dq;>MfbWe{ARq`^0d*(j?3>mu{dXt0R;H?pnr(eU=xn`~k zy=aNr9Vy8Yo|;XUX~=LR;tHlvb)L65_@-|lpivq@lh);*!4obJwXm~Zj_Juv9hsx( zSkW5IR~^`t+0tQ3dHVCio7%!wEap=c_Nzkv%PJtfhBrM22N(`6yL^If*TYoM0W1(u zGnw*C<66F{8vE_RI%B0XvUfhZUgmiGnG3Qt@VSWRJKvs>nVAN1uD#e?)WGaeH~;<$ zg)ua`24Y*s;A|7^UH-wUd}4@&wj7EyHjo}XDStk*CMMi<5en*fI9At^tqW#cI9z$G zzwHINcqg8yQ|s2{hB)VT#6at4CU#{eS>kLT)25P)an2l}r25L-KC&OEYvp@H(e(f3 z4D5pEjpE8H>L4C)o%?y^a+am{G}Or>Z|$LKe{76@-?x$R zuDdLJsf_kIPVKe3c1v@aIXZ(%LChFP!|XMf;H`|i%P0xfEQ2dgF=(mXlY<`#7SB>G z@3M2C-1c6KeN&4ovfpT7<43{-?_~~`L)Q<&>_yWLQU7-4; z_E~;D$HkdD|BkWcVtdI#%-FTp&F(X3tyVO>LoOEg=B98o$@I*J7W#APU$igD$-lKnW3kQ|li=)+KjKgqu)BHU}Pm-uT55>rD z0@%|hN>m=M zhfavL>fV&YxmE^Uc;C^^kz|M^!_$%Mb&>3}UOCa3*4Z!*(P`p~u2H=5VF>_84I#Gr z(+2*QVEYx;LwsX~9bG%iWAwI`c}p=^LwitU={6_ZNDo+tij`ki-^_`JF@f4p#w(p& z#rXZn=ap;`@TxLVItq=A z?>#v;v#+zb;A)?K9Le8Ob!g}n$_c0in3nHNtTbqGu(NCOxYSFuB#HaJb~{N#>250y z<}<8{W~cmkQd%-*zpyv`yIaGrcMQ;320>I{6w^$g ziRHBU;@giSgrN2|@ zsZ9UIk@E5v`6e3!f@hfB$2!+fhd@q*#vn$jt%CzOCbO-)bW7$bw*1#Y2?&C*OV38B zXJU?uO77>bZ?$PCA6=L2KXpn2SuYtbUKeg(<}Jh3TJzK8b&iR=)|d^QWCBSo^7mku zkEGwhl{|nHa@ToiUSHRU;X}>kuTWbh)RE05N`0s87`kL5V_xUAW#=(r4)8aoI#P$O zbJK}egAydh5L3yKJRJ^2t15jKXIFgKY(o~B2q#}7@rb&ch$VaWdSI3Vr7!;hCr-8i-%HUpWQlWS{9DYDOV zUXQB7?(Q~d)aWiobgngMP`PF9zBYV4^vAbMDlJ=aev@4zDNon=$5kn{F0+)0rzutm z2i#(NMjG347@*nuWZi6WobS0%F50O3j&hqB&`Z+?a?>GSo=5sZbwK_gOYrnA3~dCW z_5>;yO3&)M@_uN?4L&wk*Jw}qdzSDd^!{h5LC-Y4N%{Rs zv8Cjpk+!LZrwgio&a@`6kYTGd_p~Qs|CAJXBXMDOx~ey4v)2Jg)rB|I^0otV?nl@a z4Z{sR#-&&u7d_@5SVr!AYT>EE!n!x90W0l|j8`*}?1}-LTVJ_B8MTFCiwXb)U#6R? zxHoNh>vFL|iW=QhLGb=dw2$9>V=CXm%n4w7^Y6av<2^7)my2jrq;6Fr_!I?WL#4GT zOUj%}QzQ>`c&D1N36^&yDCZc$c9ZWvJ+TH7fQ+}oPQqUj1j$VvNjUMEqyn?F-{AHQ z1n?Vn_DfT%eq|2?$af7AFvrrYIFHf8@I7TjVYkW0*MY z!S5WIdIV(yFJ%W=ZyiMn*Us=l?-OmgHac?0>4ijt60pG)rJ4m0klw4W5XYEAD(8W28IeU-Z{q`a*9Nv`vrhr&>a=g$`zLH3~$qgWM) z)|Y)^gh5V9=^}?!gUWcM!0KjEUeI_m8&Xmow%Y5yf!UaRc>bH}tj>K~tY}Jo&-qbs zewtm{%>C8e5^qe*;Bmk&Bw%6GwW5B%XcaXX>Sxl`Mptxo@dX|!mL+KH7c|U0FY&FU zyuo+fHOV#xJ^33yZ;~}?K1UDnxjDThbnc{d{()|$ZMj;3K?*;vrN_M**1;Ui1cyCLFZX> zb%di6$`yVYPhwe_YTZiV5kODLCH1>Pe33Lj!>XMpsR^FK_;eQb3F_`zzD$pUs6rUN z^17)Ih+2)HbFS~Cq53h|*f@JVQOR|!(IMoSboZqd!9^SO1cGIRbFYJXG2lQ3svxBg z9;r>DC6zN=)_%qN58AY}1Ed2dO??c{oq*4P5w8s>O!*TpLZz!qCdsmTk8+30HR*44 z*6iJ4{Wa^~ld!D5@BiqQD*yu9%#QmOa)x596k1!lsDcdT*M!dylOJ;!3@lZX-WxTg zQ9in=TQ0PO@v~ucQE7M2XYvj7Ay2;kVGO) zIyV4xnpSlVb(=#Q%QNDkYoi79I+^jZ@TYdI7_^Kkmdnuy3dNM&Gh4K(8w8A(6tDgG zjMZMi_T$-%@JBO-VgesCGD;F^#v~|LI|D4#LQn!}J^^gsp?j4Hur55dci)QR`P{t7 z;YvB7x(#P%ZjyA-=cS-M@O@93oy$0%yEF+?X!=LY=F|(K;v8CTBv>Wb z<9T~T8;fLnf-~y*bUVNBN>(-(Nn7{@H;ufExX64w5J^-*L+C2bn2qhv)s|4Vk=1A%GKAX}!{+DHS z2?xgy`op@xDcKf~V_G$n*Bd{iU**B|1M#|SpkP=E4r9%8@kZ1{;{h_vnrbJ{#&r}> zuyBHsjan{J@?$U{72b$N%IGUa@G`%DWj70IB|mGX$amz;4$ExJqUL%JMe@g=9lH^+ zIuUzpr;W$BLNUYeM`gpD$N? zxT>t0+l>KjIYQf?q!#Xz^WKhYNxpsFh;q1GAf(?i(xWY4 zOD_E?xTKKPCU4~^CdI{!p>0?5S^me92R8qTre~?8W;=ZMg#l?c#mCe=)ce~t%ip(O zBcs5plr3ry(v2K*h7;~L+5iP=zIGkw13*)VqQeYz$nIi_3bS(JmM5yy*S$EyY-CR$ z9N$u(thI-uffGoyp5zb6pw@E5!M`NU*aS&Dh-GsN+$Ic z5*!B3mFj&b>i2We5%f^!$>L{`_J=?uyV#jvK&fRMV%7pehyxS#c&^y)a$e~|Cq;g) z9|nzuMG(8mVgD3VQ8w6P!e2od=TLgC-Bh{UJL^uK9doBAXpbK?)?hO@K>{^S5mB?+ zz4OZxHnnvVOVnm##R>Ar@XxLsd+y90jPRJMDWrDkaCNWo@)tPjO*O-i(O>oJ&Oc0fn8Q8B zo(~p0mi;TIFQAWZuUBVARqla*jhop~xQnO1HpF;@ec6Rp54QutlaAMQFc@IvD6P^j zG0GVUVZPVsQYHx#IpXg0cqRF9kR16E2Pbb;G$?bB`MwkGb$kmD6f!rW{)mwayIERDSY`P8 zPTC`af|6WrQ7P?m5FvV38;d#Ga9Yhi52;2M>8S5-(*@X46DB1A!c4glj2dCSB618Q zh3HgE@7$f_2fSi?uPR#vIad(5)%)no@t>Q(F#Vq4HVdkl8_sF^DNCxCmdn+oyvV){ zcx7xm>1|=4FdJ8(obm{T4Tp>N7i~CpIG)2Sk@>cZ#J83suM^3#9x{2>WNR=A8$`!k zFjt&xZ@JP9;gszwu50HA1-1xqY5y=q*F6)^tikv=Jxom~Ewl%}j> zE>V4XF4MA3SDuaExMnJG?}eY;!3QRZ*FRbry&!HxhOIRs+;u#R5a5r^TLfjR{&}Xg zUOdtbRvHlHo*Z>x382wp{3dws$RZO#t(v6Q6|_!$MPIHSa%tU*TKm^^eMcj#57XvN zjojAhgX(6ub`K2rW2J7S3`ib;I?K>)#lfj$^GDZJc^gVMvtwlV@JMqzMBA4{vEB}mtP5s$)u30v_*R)Jk+5l+>0<4(9eXUMSI*@2w zU0!9t*z{tCmJzvOAEN}+3Q9WLpZD^axYI&P{$Y6&Hj_5OQX((-)mmMCklv zgw<{Kl8L|fi!{A@+WS!19tB~zw7>s8NzZ4q0g!B{_Eu+^g#hVZPtUQ-cn)wizirCt zZPs2r&+&7XFe#x11QCUF1Sr*h>0U}na&oZ`HKcV|#j*^oS=9?HkV!#>F3Fe7L@ND$ zxoiSdt}aO(iWSeB(Khp`*#f2;d*+KrXtT<%_9Svvk)AULHRR1~FMqHrz1@;|>q-QT zLb<_Ld%G$ERJl8jSaqYq+3k1?i$u=Pvl7m;(c4X^ESujliY*&tUwzog!nlb~O!KPv zt2u-87!xe(^|AM3xWK1elNyox{{uk8Vi4IEk5&{J2Hf zfQ}G)_laFM+03ONs!uvlSr8g%H`!f>eZ3*b*-%cIR4OKCD&+m);-Oyhe%TvmCO zkO1dl#LtD{D}B8F(8PO-++`1L=7JK}wsa^B1w|Z&{ktDpCvqe03EVd#aum>@W`cS% zeuPPfVv}4gFb&4*9O_qT8lJ9#-IM@+JjXTbISI#Rxa8YEmE^2%$)qYD#njX^w7R4* z$lmqPVR)$85|7ql6PCaFncH&`)f&%^;aa44cHLw?rURu=_k??E9Q67uO3R*au6SUv z@gd5F&!HIX&Ewpg*DdHe!2o~a%nd7 z0-P!Di`G&MRga}=?u z)3p&nenel;74fXrN$}7%ou42a-mt?|hozvRjDL&4d$BRNC#1fZMM`exJF0bWr*rZj z8}PxiBjvEooTr-7E{QQTD5~p_``AoY*>8?OwWh(x%Qa+dc0!uZtfVj8Rx^InvoVCd zf?++%#d!)z#e>oSHU3BRsLPX}B}m8esudtcP1X_?vAZK;=Vc9|&Sa!SmmqL*Tc)9uOx#`Id?0vnD0j=OoM|%V$P9wSZ_K5Pt-# zZdyoR9I6nA6~kDV@Hu=Tq%SF?;wh=|4F+hgq23BI!T_|_1k_i)mI~P9444Y-!g@a2 zkh@`l{1u;8fGEv%1pZtNsFgbi2C2SFqf=l{wMp&l8CD3#2Z|e^@GQn(wEjwHJ*5)2 zqV#SX_wry~r<1Bh{y8%!j+Irn@ZM!C22m@NEL>>YVf&k_i~_4)deB`-qLQ4Eu$M_} z;nSeJM|!BV9}f5j){ko$YT)3`C(n`T@YE3MHg-94SO zyq^O)pI@iqvGomqCK!Hy4e(wl1*~jx^+5`;a%=90y)BlXl30DGu@}>TKL;Yrym7_x_%1vIVBrY`61_YDN2wR zOjAvdi{9HhHZZt{)|nhsP`&PKHalPwQcoLCrW)@RwPR(3cAa;mf5i3HDgiJ^^DlMQ z32kDX;jSC@U?SN~r5tnUdeJOk-LYzE?3I1}*?2U%?PYE`--5qm@l?WnlZ%@Kmz zG5U?GL?8Y27xEI%{MV}jP^ci+jlXLQgs=hGc(A zLjUkX)|*LwKU$xKTvV{WKQ~!Z;S{1=0~B7Mh)~#Iidv)ez)kVv5RfxC$g2 z^5wXL)BtD5+$SlnrcZ{$h^YAi%V+vFk~ymH#m|Yk?|voiUy)W`D|`n_@8)9kz-Bg9 zKIp1{@HM_NjsE0$pWi=$ok)R|@b!q&9gpvZ6vIV>dI(s&olU&iMmJ2y7=41yPR7_dM#Anj{4W&~0)cZ@derbDO*p*(kOji78bXfN&kXD2}UEui1669di zH@TX^P@PhvXZlv3gmJC?q7lg&Ck1&GXs`4L%Q^{>UU>+orb~Wj9i)5`XO+4ivW4|E zwpLpoSR~uxsr!=SqKK?6F}KzfHU4D9a)nM)@s0G3UddhUIL>_-LT5cM+lf=G2mmoPr#mn76muHQ5m6kDeYaRt@;`H4(aoO6N!t3Pkx zlNg>zc2~BU`Tl#ClpJedye4-@WPI+hN{-4Df`(t9MYJzgf~i6l9+0djTnYG>H#Hj{ zEL|m-9ZwM%(X|1aTmJQ1p=Ob;G0i(W$UJ{0Up72MVGR;MBbT&dN?;-SuC7G}%6*`Y z|E$_nF6Si`XTAz$S>j0_(A02m_PW&1V34$fjLMkHl&NL^x|}gwV37`=yhVdj(37hr zQZ%uGyw;Mh^}m{Ld3TF}m|&T>G-$rZkK@{`@|%QNYF-}IXX#57aTx|j9jdOAe6vzQ z2`7DDZ1ef$7glx~-LD)fiLyLL{}2hdYW#f)Te++HSm^hr-xIzv>bIfXPAF*|;^m42 z{6mA9gu&0)ykcFhrHD=U8vO$<)+(f%>y~5ks56VmJxun50c<^WMdz39*G9#vayY2gzSi#*VInz*wWaa); zOdef3zN1Lq785c;{9RM4yvj>y@g(^~5xO=%TMvcT51O}qAps<;f+-=**%OkFMHFSk z3WcBJ++m$dz48et^$qrI&vLrXH&GDX%=qxJW$#`m=23)?+5;X6@=t0!pDZ#ge=;&$ zRXgC7*8!Z;im%j+`n9&4C;UL<-i3P3M(x)3L7)3zj>Q&&HO4tJM)XTx zni>YZw2$+_3)F*CxPBCFEI>Z_t|WQE!8uDKBakjJ9+84|{Q_v_@5O}-bSNFkc_RiHjZXoAcY(cF#rowMz@Xo|~no|VM-!i2?59+ep znKMp&7`fOVqV#Y18;Z}$P=!Nq0fy$PC zY-g~Y!J3lcITQV@w(=zx6IW}eE=!rt655E=V{=s09XNGd@`!(d&*|%6PRjE3ljINY zErHFN%2hMNjh`vM$1wfSMlLq~%Rza1fqZFa4 zsGT@Ux>tf&7RRArJ0|Y9K8)XtfdPZI?|mo>S>ju#=#ahLDi@uY2MFey2P64DpuF+g z4i?o9vO08BMS3K2sH~`at05+iv;r$Gy*41*SzDKDDzZ-XcHtcsPGnzmSHAAv{iC(C zESn^c?7Hx+y=hd{P6F3geVLIN#>rMcJFQb0Gu0MVDZEPfE}=KDQr)YvG#swldAd%F z8=~l5bCmT-D$?`&T6QW@e#DU#f9&>LBGHb&b52cSeKDc^Z%m#B%S zee@H+?=^U7#+Lt=W0@7uiTXgg>(TMV4v_0JSe4xhf1~N|i<2|6N8HVbcN*gcb?ni_ zM%@UpNkDr2ts<#B&>mrdzE-&WsSB$Nj}`*N(0N=dhY-?F@68|p$vVpyum#HgxVYP zZIE@F`8mf@AjzQ6cl*>uwSeL~f-iMIl>7#pCiz|$*pg}dts>~y@FSKK+{9}NpSaJb z3#Cg6B{L8MebgZ#k+F=)ryicMxiBN6;Kvsidquv%U9ED=g+RofZ!m_{wZH%2@w4~t zvU8^Z`QZ|ujR~I>MPG?QePWXEW$iWn@jzJyE$08u?^=p=y7g5>v%a)v0!!vI845Bq zk~rxv*>AF6zbP?)dXRTwfyAt!At*@qqgEd1&~kHeARy5m)$X~*t!X1`-ynC2^U6(B zvtRwh)C9s4-*~Qm4o{FRRjP5>H067ii~7|q$?J68QAU*X@OsUc(#yYV0Sw;Y@E_cU zGIWck@_(AhtXrzqvK9ck5x_r$mz0Ub3h1fb5y?+MSGK35bvaUG$+C>$NG zY1X(D(vD}Y-xr>(u1Y)fU|tFz>qY0GbTC8Rk~JUnA8sVofAWmlo=9FlekH4tC{6sb zuX{a=UT7T6ysW)L*IJ!n2sfFbhglU3@xe?~q2U2yWb|J&5ygj?*UFK->`5;~$N0q|!(RPo7fhP-Ld8ts;PIVog%i^9QG;wL~ zWI}uU@&ZcIH)DrB&%2+-Fz*`I#?(>l1Txa$5Lpms-K}eq(ruV1NxzPRNA$x~g%zWd z7nAd{_OyByS^s1>->ZGQIO`N|pfv4p;&awS+*sZb8b}>get3IGb>e&@6`9N@2tSE^ z1$SOFVIDJLN=2%YkPW_1agu`Pr|!b;LjU(iro^og$g}~l^#lB zdL4}iGB+Njwz~x=9ju=$Z1(PScqZ=cIH31@43B;tMUf?{A0ShU+$Rm?cGmMeJ$KN_ zROt)OezuAQQaDYRVB#6v!KNLIefDsy5^~jC8u{fAnZ1qtc4)(h$+^Qm3Z<+m^mI}> zKuVGAuw<6Qym)_ho$h{&h0=NOT4IytZ&afr0qIVwCwKA6GiYywf%iuIw8 z#{n@rA29?s-k!Vg`#<#wH^ip&?-MzkT>MuE&%(jy_pu+g10A7DusS zV09tG&4=@9;a6>Is};nMLO(AuIO$XER%Sq_#BIuk?mj2K_>!VWZ>lAfwz_FM>WwIe zUX4@ZsZ~b3gvy1_n`1__7YJ5pyf@(0MECtnCf_CW;@=`)2;DP2HiZsd{o{`R@k+0o z?8Zg`YJ$wo?~jMXzA8v0Ff9uJFsC8yRV+>mjW@{cJ-INRt;|tw<`q57AyZ*6vl>%}slMx!$?)ffhQd+9f`v53q#Q>w@=-H9p^Yu7xk?yk?1m zPa-#Rz0+qObVIBZXvWqn36~3T&R^WU>@y$k()D*ko91)8`7kQEir7h(VU({D3YAbLqIUU2Zfm}{QM`T% zI+@|qa_hZ?0trxStV&g`{ahQ5qnbE&Ho5np+3U*2E>mVtZ;MSaeY}itc>K0r;st9< znfMgbkZ)-YVI0uqD0A6-?Of0}3p#}a%(Z{vGPP`v;^g-{cA@2Y?S~jDG?1Y*~Ia)C1 z?27yCnd&E*z_MGfkl()c`-=PL{4tXE#NvVW&Q^RTU6=D-*xbm~D9r}a3A)yLU73lV zG%M9$cyo=~qZ$M+{Wfx^WO@OCr|Jddy5O-qsLJL;&UpvM*o- zaB#a%6RF_B4WapHgPd32UhV?see^Dnt{hvn=}Gby25P4&06Ur_0=~5XMHF(KuLZm1 zyeR-ZwpGflwK>!Zl45(Aj^U+mmIi*}5z~+l82#B~un(|%@B9T)_hC#*`Cn%BD7rp? zn0Do(G=m+E#Wn3QP+GSFtx7{5SdTwcq$tC#yrbH;q>u&Te9-Xo#B=?;n47oll>XMQ zpDL+Rq1%xoK4O%(jo$d3W9j8>N<}PFIHZ6Ook7ef0&x$u+xFz-cHgxW@NEL8|M;G1 zAog7Z3MK`mT}*b{S;F>dTxB8Bx&!R(gQGVEhl-l_ z1>AA5<{DSDaV=BWxC!o1uBJ&Wzf}>hQJdPy@xk8c@~=jx@VCaOzCDFX`#BdO50VKV zAObXsd69z*W+O0E)kAf~V^w!XKvMnJ`x>7fJYYo_t@6LYaUQJC~O?}^(5 z;5R@Z-96r2cCz~83s>S1QfV8l4fllZAqlF#S;SHPd8L8bvVRJe42gK(<$t-uKR@dk zKlyLo_!Wm;Y{hBJXMN{iebT?2>i_h{4<@i;9$kFK_m>6p-~ac6!-b0s_FbQ%&baUY z>6iZf-);n6B!K+7a=Y_ycKUA~`)}8YbrD{1`SD0rK+P{{Mpb#|-`d1@X@%^gk|$+bp)t@rfgCqWp+W>4-w{ zF9XllZkRLu-@U~@&8FTHEL44X^_&*>8OKwtnxr_qST>z+<=TIvfG_9$rO)!;-_J4p z9BA`{d)71lQ1*@^fLJ2xnmi93Q|VpA&U2_1DP&-fRaSwyI_1qLYVbk!C^k#xzA)L+ z<4QZ2)nrwFTNEqxUQfJGr{@VY)oQe=iR7N{01@R6+H#$2+F|PvbB@yy%fMH6%@5G& zHV#K&@nyftL!$)3M;j=DGN2ipw-pUjW`n3W^^9aG#;eH7aP|^4rceC{I}lghC1-tKV=k2&$=4>CpUz=17i|Tt>x>=e$0Cm3of*u_eX1n z7n_eTTagqt;-Ya8r5p2cx~ro7U&aE_s?C<7SsquHJ&m6Wtw;F2F0)8)?-}JkZFL;l z-6wK7qS#q!zAlOY>2E~lB^Av~CD>?^?2<F7?X5wMecRX$QM0Cwy!`5Y_3}(}ZsYF73FRvKr>RRSQ_k*FeF7ZNA zUO%f(B^`4dXM-rY=&rsp{Cn_pX4#(ID7-&_J@yJ-@Y&^Gu#8)D&85fkLb%*v1A~jc zej^FLU`~m!T~i^?d0$zZ#8n@n_asa98V{=T3?`x{PNL1t_}J;Z46nP3aB@!vlS1Cm z^0N>qvf57L;MXObLNe7UX!~jtbUQa3tTpPBn{tb_;zP!A)YGHsou8P|p0<4QTb&p` zu&u689*oAs^4pXnT0ITOOit*Eg=_d=*#fhibY1Q6{AK2tFAn)qPINzq-Ph?-v;AG7#N0!td?i(*jt55wG_CbF>?P|jpIH@tm!e{pvvM?yNbXn;zb6P62xJ_VU zI`=Il6*A`vDOMQGyx61eMew5=+1-x^8GWH-fr*Btr1uzdSTy$CdNqXBGs1l)DEh{# zj<=UoGMBt}5ntgeU3SQpi^Q)s8@=dO4wY(5J!7}m>|>9o?VW3UF7ZhVl&6>_){P73 zCkub2q)}8vK)F6lpT}DAZX-f=b+$y$Hz;ps=OYWk8=u^ES@*bL=pM~6+_N&&%xh4z zB<+DnP05ZRN`WJqf4QlrguA&yz|+23Qy@=I`$fKfI_X_KT}}-XiN0MkeuBtCfd~Bl zN~~uW)PHo|hIc?6wL4Msj$l~E?7m8ygyIRBnaipWrUR8do`!r=wIB^t_ctUU7bFc>AH5FpA z$_TVwbVs6gTUOvEycKg>x3o5H)SQ-O))5&8RIpi<`ICGcrEGM>Y?aHNloZ?S*XJg@ zd8J+rbB1zko+jg1UG6SP+Tj^yv|t(JfHfz*sac)9alAPWfARDZbA&BWOYx@}+jbx3 zw3rXtEKks54nCzf?P;+>IHz@Xaf=ejX?Z=Myj ziZ>3eeqK)OWmW9(Rk@I9Vi~u(Nk3p=g|x1(bg#SAjPZ2o0<}Ye>7oFB;#Z7#u~^m{ zkz9?j5OPOf=zGdW@4yCalJZ~;mC$chM$04?JqMwBh~e2Wymrs&_dkPI)=+hhuv`5X z$TBni$zDmpw`)UR#1cx(d3#DDL}^rP+o$0wIir@H?%lSrB<#B1C#eTJI0KIyTYf5A zjzmgpOxk{B${oVt^0Xm^Z#f^ykN2=@i#;LUao5Xx9v?Z<5g!8on~ndw?S}wF*97_n z@6HZpwa$&f`lfw>FC!l^;ZF1xy#+P&FOyB>Se(=RsVGm28jQOz6INb_87)Km1%2Z2 z@G{GC?B0ar)V6`=oU{++B4_Yc|S zz`99AsP0HJ+kEv!j^!;k`nf2+Lk_yT@2FgQ3WcRTX|zmg>YxX+g4G-Ia1(=y>Aor_ zGlcnCglhQV`0-AcSK0HbdLLNCuBwYuuzaGWktESvu`T>i_Z6ZlL9t1dRHSLuStj=S zO&e1ueC0mjuRDY6!%;)1P%A6kE!5ym-2dnj&kUEhABaz`^%a1u%O9iacxNv=Z|KraCL8>NQi{Zn-dGGcHH+o@Ru?8$W(|BTQ+6&4G7g%H)|s)8++I z(R)a})jap^cmX;WQ|PMPk!$lEm{Ms)E$_)3Un-(MdrN=Z+}~d5ol<}!_vxg29^D_G@SeE&!F*~u zqqVN&i^)9)=&FM!r_c?nA#c;4pZQb8>O5R?)jl2%Wh>$e@HH$mVqW7g#8JJna`%uF zN*VK3DRL1T(%KfuZg^^{##9q*bY@`xcJF6q;{3%KkV1Rc-Y9kU10%{8 zzTq)2B<%YNZ!|t0j(^r9U!;LgC7*2(AJ9?u2$|#LyOCHs_fTL&)FUZzN6(7@^5(iA zLgd7)wECFqbfRS|-Jf(OQpefLm`_A=)4A59Zz&y@99Z#r`lXS%%*@1TCQD(|`>4&Y z#voz%w*%@~%lYG7wo4${7ZZYW_IYjyVehn&?}3(MSMt!&_&y(j-%$zl=mpGq^nUqb z2^ssScI|SYbM+jCZNnB-e93YpqIs=qeHn4XiZUc<5ppt8FsPv|+~4V@m}ze3ZZz^N z@5RFnTWyW0WZAg-CV0Ye+X;H;rRwQ>TAEQp>8NMJBD803;7?=u*EgOjgOo+~>jCLA zS9x0!f~`mmZWbHgcSJ96MVH0%q>OAO>nk(wsxRsN0hnTALiMUkdn}8S3J%;0Bs-_8 z)4j&jhrOmcvX$?e&sqyl%204oQ?HGi@&8)PU#(n}9WOhf8Z65*832B+zNtRUF&Aw% z=reoVIPUMI7N}`bsaz_$J3pJF_4Bc(b7S|akki;aCnDE$`j~L}&qnyyCpZ)E{JRwo za$65zebdoR?e2Uer_sdbA9=w8*mvpTk@=G3a1%;-35 zt^(m{>j2x_lE2A=hpx=Bb+&LeJf$VffJvtE7`S7L5RB-1b1{xTPpWyxOSLwjldRf+-W-UFz{U+v+SM zw^&coj?!<%*Y;Lh=V)^#9M>zA#%;~Ct4pj(r`}-w9yZ3)%vY%Tpgo+NN3XIfrdjO? z6UH3gbT`;V9vL1ky}P55C8nb)FrNR!8((>a-!csP&?{0%>K>FU$4EMD0$ya+5GZ;w z{yNdCyd@(ees)v5RpaC11ItAl+SMW^MuZJa0P$gMXC=;9dA#u0|9@WGe=PIgU%jQe zu`$K`r&Er%)>ROl8oqE+LN#f#zFsb)cWUKBj(AOKe4W-0Cx#5Y$kQDfJkSROp8IdY za&@X7H5t&*tBkcw4m`}7ZMr;Gz=g}eZ#`+PI)3mTdb0X;N+b0W_7D+x$VkTLEA?=L zd*M^n(Bgo3Z`1hUx|b!tKl?oNRC*laIUCoiId)!h3&E#EiP$iqs_5)>pIY8}|6e{$ zffq2|5%{{OYWN?Y5X-w1*Jl#o4$2}d3|`BdLrE$>la|`~zKqK9d4&m?!aMCK`i(iW z3?kbp377JZ4R%2iB(>vQ9q<9t+yVxewp7e5A3oA}F3_mjt z2;6-R8!2D_D&AzAtVwn)^?MU*UXDV2U7~YIZ5bEasS51ViPWck4zB66hQ$k6jRrl>P$!Tf=fEDB zi>`h2#t@QD;yYU+3;VHw#ZVs7d`_0CjNOdsBgEBy_c8VmE_x542e#}&d$UQSe&cY3 z9wsgFo{=(W=3thGmNH=1+6*Z|`_S0-K>p76`CDn{NT-fY0?+#G0%1 zI7BP*Uph)}{>MT4W4|-J3C=2HH=NF%Rem4ZKd$-@uf*1XUHyPMbp0vXJTrd(;j{nz zp%?=24Hw@{{6Br@?8P6Buqkb19N&NY)PK7tu{+p&)%n)~XJ+W^FZ|y}^H&|1Px8)T zP_PK5=k`HWtWxw_+#`=;K%zGK%BH7E(OJc<-*{1g&)Zm6AyM|rJuBtxS9U0? zk%HuS=dMi20P{2k1wA+0HmB9GQJ@XKG_+S*-{gaP z$+9Dwr=iri478Bvf&sY|=+yL$sVmjhsL?g7w|Je632}JMWT? zCc$EnJBl=)N(LQmhAJIUa)^n3c2fX?_{@SoaR_G1$LN2za=dF5e_uFuGvD6~M<^~Z zDUL9u8uZ2A@F$+Aax4bFh9^CcuZtWjF*8V){Zi(*JTwZHym^17d^xjh)JPr?1hkYB z9x5^GPa<`1Z#>*tUIkR)LJ3mg0bpMgZ-l_20`S)yfDvjqnJE3B?{!I3(P-!vB5Z=dAhGPu~5&y^$0w!(9JCW+Lt!q7GUO z^c(ENl~@v7Qn3BCunQf85&NKRK@PBzC{ZuZ@@Kvn0n3r8DD-@%#avq?T6rRKZ0MZ3 zE;#`!C@5<}L1o(tDCK*8nE>5QREmwC3uyZIP&zIR6k_{6k0hFkdtb)oA?H?L)2XRY zhN*P2tLDWmTq%cwFI=lg^gR4IAWyGa?PSHFS(amkDC<%Xu zQJ@Yx(iJbHtzD{EVyak9M+}JrX6XdHac9wFtvmivAPN1Faad1)=@e5IxklE@^q`%U z(SEG+96Q`g!HX3Il$nON+ot{;c@>Rr+Y47GEJ3r1(g~ogzz+aHZ;ojAElq(;Sr!;q zlc8GoJ-ySBLIdrjnMwC`$Mg8BE`VI5r7+XM*L``(ab=`8uXb0XoPii}G4k;x8UmzCt1n)A@G=t`&VNqs3MOS&C)0(~TSR z(R13@U8wJyegNIwH5(2XJT}CIKobmKM^0ADl$aYHwo(bxH{`O1k(u(0N1*Zc_#^Vk zN1!V;7O)|Hbn=TR=`uC<4cm1vapNY9!=ix5B-iaNqmn3$q)hyO+bsWSC}P$`hBPh; zCcH%V_c6UM1k4A1Y@4W3)T-qWlr1!ZUcnaFW@!bktzq=m^FemAEx3r3OClRd0>>Or zr(_4Sl_z44F;yZIBO_IgFf62DB+h)Qfl&>n!s!l1Q2SkjO+N~Vk-sK-Z}a~6UnEAxDqiqM< zo`fHIxE<|qTZ1srz3R>4Yi#eSosu-zlLP2r*-dd;6~a{_X1)dE|n&R7BCMBSf@^}as1M0z=Dg^h_f_g}e)GvQGX zn-14I>E1_(0}`AS7BKAI>v2&* zLwn2Wgpdd>-AQ1zarYp}{F5Gp6B?E-CXS2aXd7Wr+gCsYv&JcvPw+&hUc@OoY;lLemW<797%P@go4X zsir+X1wI>ZqF2w=|MC{9+lCaf@ivrRh<`-DsEwQhcw9}@1@YlxqjpLxd}zFk(d)Q( zoBz}n2qB@hlbRUI0ro_**f>-OO{|7thJ}fJFg^f zf!>QFKr&;z=v1~LytqrS-Jcl*CuYFo?^G8-nk0I};&2au8*Ny9-&L^zU@%{OsMxShAHjwhp?4^5R{|zOuH|UaE>KvCPACQ&ZH2=^K4{FY2I5>T-2ui4 z7C0Pi0lQc@Tb0}H|6%VtqoT~VZ6zZa6FDd8*vh@Ifl@pStBH+EvPZC%g@u z9JXK@yfH}HewN$zX6f}p`Iw>-DiV|`z(svwUl<|dJXK00QT%?mBSpf;YAXf){VY{4l@&c}Uy9*7_p=Q$*V!<9?2b8PS?nnU8( zgFkdmJ4@Gris-^3c*z(Ww(q`UnG@47sBTsf|IxKzL9k${;o8L`|KI{a|TXmrusJn;f+~O z^Y0RxHu66ZTJc34BBcvt5e%zUpffasLrJ!Di84RBh))33k~iKEw$tO3%s|9Y_d?)Z zbf@&Fq7#ae%_c_5qZlS(YgNVVbSpDq^R0T`#W*x|XJ}-D%+3X7uM+hLKJ%lfKT|?L z9oISzkdmqlGZvnl$id9oA@JI|gNID7(z|t>#_MdFZ!i)0iGG;pb!7F;KT;W~0$@Db z?{x70+dJ^{tuZ;THG<`6J|jCa3C*0_ZX$+t2dXd+sK5 zRvjwg6)%;1LqOe?u2KNKrx!)5QRW@<6cVnBg#bSXD5I!df=&pA82b7G^7&8(VVSxP zkIdH6st?+5kTwR6DMqI1v3#ND{*z?zkt-xGrgO-#tlKL*Gz#QdhT_)|pu*IycokeP|$@|boKW->(VN9Kvgs#m|>kTYz3 z#s6SZxuhzSfSRvrGZoPpif#b#Hhat@;xZ@UGVf4($aW~tME+(Y-{!!PLT_+v-EKXx z=#zIbKT26wF4#%=01Ig(I!2x5^wS0hIkXy0zyXF`cW{xV+qe+w1nmhGqVJhg|BCDRz!xolj z$y$|Cp7zY~-NeYI3rL!Y;4u5If6iw}|LvmDZh;oYFcFDmw3T@x5jc}j|%$x@d0Ec8yU>Cg=u0%!nT8@!|x=}IAf!p#i|`UYY19-If3zZ zW#>>Qg29WWv4t5U&Lmk1{g1K!ykJOSf8lJ zs{5_U(X+~=y+wHv_|yi)HjaBg+dH5gz-|_q0Xepv?vdg#enUIgsPU@2C^!m5Kt9kS zVk<_A#yvi>GQU;k`R}nTABH8jr$gFM;!F$_lpLnPIb zB<*Up0Sfz@?yu$g#1a?mJWZ^rPY`>MWzn8gb&l@UO{G)n&}CoFG>^0G&!pMd$=Cr|Cm4SwweaTOx$X|(munzTWfwZeU0|YdEU~Ng*#O`Z z^db4nMlX*Sdv4u_LC8~gQF@kxg&D{gx;A}+exaygy2^~|tC6fo!2BRL7guD0tqb%n ziEqWg9d9QkUSI$D3C99Jmy4~pFun(X&3qgZP6Sc2+3^|_I}IsDvf2Xk;w%>qfI_dz zbIWF^*!IH1i+0~i$4alVd377M1G6&!^u~q5#ny5H6izU|7G(Jgs6)Dy?nT)E*p3B# z=E)jkYI=Le$q4eHETd}g3u74e5F5C)u<`fTLFG=-Tkf)81(_##?_6)THH>yDVgb$X zg-rxZiWzLV%=Pk;%1_5NhBF*xeiI0()zG~+i74}?=Z=j5yuehL0epUx!Deqh*%I4Z z?Q>w<2iC-vS6Q4j^H>dUvMX+ILpEjC2U*SnD40XFAI!N&P)To&#dzse?#~mme#iRL z&vrm>KMIDBD|eJ=CRdKh{+sj!D2Dq;Sf4t3fKhHXuuM5+#6w1&%MD*xt)Levv&g!y zttXP0^^(;U0c9jldYf9)0N1Gh+Rq=&jR7RPRIOLkvve<(FeaJQEJb>spT})ZL@qt8 zkzc)ybq-`mLXRKj)_i+2Pb}@B?9G`2x^%T0bAE}qHkOCGMNe=IU$371mXOjw;P*~Ii# zYf}MT7d`jCh0J6xkk1$S22U#!GJIGoU)P`OcyFqFoDx47DE*e=E8KClvIRfnaGj3QyC#IY30azmgi`4+;LrYm!$<4l zZ}(qL2}7IDc4xetU9%9uMNKEfWnV4`H~TRV=4xvr|KD+y|B~Xo|0`A@4DDH!xbK(A zVGoDRy{;Y6x$XFiQykuhOFSOsg@*jybRD8`PiqrKHXzv+197Ui$XZ8dDU7emp>Yoe z+SYoHJ{);jJfyv`iszk6L+qyZ6CkhA++-o zxC%XBYIfgc|0i*r_`~O=p^F8&89cF8j?sO&M)ooXy9F7K z0q>U2@#q&?ek=2s{WO2uM?2@5?-SrD#f^wAuX+aFa7n6kkoeU!^nZT<%k_;84leI&U_#si+-0O~w^A+> zW#0a9KQC#Z4yn2Uu*lKxOjXEMO%#u1soUSvH6F+}FNRh>&L~bb)=Z=7s+nhg|0q%Z z1v-xMf+IB`^6IywwBMi5`(V!%$&)(LatzD$p#2-IDCNkn7#0A~FE&d&~(I>+=Ih%r{OXBD_W0U*T5p z82a``+~;^DU?K*fT5qJMPcsg4;qMgRcAi7U*K5}0{>4AU^Layj$f@4L;EaCgiS~=& z&T@bRgJdq_0!YWSZ2G#5%3ZP%J7Voj?d%u^YVW-@9cy@s4qp+L4m@ZgjJ@m)Ak6MZ zEPVUW1*F{!>UxHLk<~Vt%{4B5z{W8TUwR9#3S1tL!k26=Z%i!s>vYTn9!dUqjNcr0dtbY%j>ehI8?%)*zPUmdM|-5x+U*nAA3EjFnqcJ%|uPzPKmTf#ip zOI>O$!`^_>$UO8Vu4Q@*bNUAN8?3kc>~{(J2VaKs_P?~m&?-y8$Rz7R1!dYdNO z|0CLnHLD=X1K#)ti`Lk`48XqO5bVuf)l2^|O!mLVpZN5+01P+NB^tq{@g8_Dc$O`E zv4Mvc{xv7_DC_C0f?w0KIfqIe(>zS~;M$%qj${;Sg2LfZ4GVkylQ@FfGXqFw zhTg_X3O-DJT2TYdx297`9ytZqe34@9_jN_T2KSTMu~2q#B`BV1 ziG8+cHrJP1vb8d00IZLSfct!FV2%9zu*5E|-k%a)dQjj+$fT=u-MAt2c(G;YDT&#) zX<3lNUSpAeoj^CHhw`)b{)ZPpo12FIU-zlxBQg+fE9T$2=>|@8JRE^kP0Df#=!n9D z{f+9{ZK%P=ts0Mle_6Bl_6(HT=Cwi=to%TxGxyx*h?;}omUOuBuuatxGd-oA+e_@dy*nd@fgO@N*%eJgO-`;o%% ztPWD{VOtZ@*VJ)#-&ka6nZ?x9Ljhs-oz+;e%oL(2urg{eDlvGp`&ztA1P1YDXXc6w zXD$J;6wxi%<)zuLa0YTr-&o>EzT2f8!y1MjP%%Nk-%P{?)2+&2(0&%%3>=X(61RZv z(k{cu#Xjg+HH@z78{c_rp}2AD43HX&`fC|aZ4QLU{kKz(EHT?%9W>gnvXb(o-t#^< zXEA(GY&*2A0=2FiUEyr!A1$uH*WcQcy!S)t_!dzD9S>f1N|CA3=yzi2kf(NTk64O4(5%eztbUi9A>Dk*u*@lACx_=I=3%)EnbXWv{NITB zQBp|2UzxD{x0UE$PKNKyZy|C_ya+!Rm~-$&SU@s=N5 zPp$FCKSCzbk{~9~nex(R3=8yZF~YY>Ls7HT_FPNK9@(LQ8ykzmNUg**K2Gr7UD&Dx zkh^~vQz#t)|7&}sQds7@j1^yg32Sdlw|}#ST^}JHpj!1HB^*};WNS;{u@SgUVtlu- z;^3>F5BzxhY;QJ`&0_z1U@W($YTcbupr*B+e6ZVS)&m{v#wFVqEjut!4J6}38p9#C zf8=!H()>_KZXygM(0+R}WvtX~WpV)8l$oUV@6abJuOn~aHB z(EGK$P%SYgKsS@MWiwpN`7jx0Y>4OoOWM;{2SSH=Fh{2G|{d(qK>KCtQSy6=f8$W47s9*@8bnGUqMl-^3(rGp#e>J*(H}wW8qP8BED^;^_UK zJ663}GfBA`s$vcHO*jn`qSm0XW-z0lqCkusTi73fgTMd~G?SVAaKLP~Bh+ymw~xK+ zEMTFs3)rw`-$jBk;#E*)p|O_aHpzfos{Zm$MyuhQdTM?w_sEgpY6vD$=?{bW$VdZy zSdkhuVhn%?BQ8#Lxjx1}g-u6-OxC9PE z(f0!T(Z#T;qpOC!uW!(4#MDK@W=!Aa;eMO8#CRaJ*uEgMCglR7g}1c+PSTkV0=<*u zmdwBH+X1?cG1Jx{OsZTpV*=b9UB-vsHi@DgF!1c$w%(dTyR+c;2`Fb@wIq%KFUeY+$Q>9f10%6-h!}*I zM7kP-p9f7u9dGANg-y{w@b{dxQ0e3mK`aMvDzu{^ZJ&pd#iN-OWL&~g=C62UX_DaY zSNoo9$1=!w{`P|oU9*!t*3GI1&Q`;GMNic4jaF6exYoA2Jbkg$rS-DkyL> zbv(KJ%Fe)_958+_bp6L29rXcFTg&6OzJElfVmvsoj3^gb-9Z_-{Wz|{ZVb3*9SW~I zt&7L)&ZF`k2;wjg8px>-YMwHwkEz`2ixm`&B1Asx*^g1T zUyhm<-`z?}W~49z+GKjtX>K`3-RnFsFyW7>x`nJJiP)Gor(_Q99pzLFzo$X)d9C;W zP2jOtSq{Y%0g7{*zR*F3qiMggp=b}5KSn2?!FbiOstcfrp_Go8K@)SwVc8`giZjwH zt+S?sgd#e%fZG$MD`hW+?FO93uRZ~ST2fVIl0L~Jw1C=_I<8?RZN;kh*(jraps^va&x%G_$`;=Qk_E1 z$jy_72Qtjo;_7XKqYLia4$K^YWXi%K(OJ8c+>V&q%R<4TjkKNO*i!lF^e3M~tBjhT zpL@1iz?^tbVU%H8tfL^+XJS=ybLztV^V)xdce;g88~7)*{`jNp7KDOaYfyA?eSGf_ z4k~-tmqKH@0t}m%poUWpqpNn`?R2x7Q6^B)QEp2^spK2Ri!!`#=)mhR2`hkU))u9) z4Og)L5TqZfHj$ECxsvZoLRk!qX}&cu-JSAwf!UiS#zk}M zw8152x^dQBhCC>uGwT?bn*0oI-0LcCQyuEW(dGrMY&W8$y6BG2W_A_r2|Pm z_<&Y#abd;#W|6o9(1>LWq)wG_Qu1?E?PVnZhsx&OjFjczH8BverfwJ!gsdfWXB+gn z%=ep+>1_I9_s603=A}_-SI0$A5Qj z4d@%~^n7LpdW&W%qlZW7w5QjmciNw#YC`ary-D%qkffx$^$ z;0H4()$9!Wyg(>N*w+W8&Yg|wgN1d4>gK0=-YV;Qz13o5!f&VDVuWquwg%1sY`hz1 z0=W{Sc9E5qPVnDp@5@IzORepge{12;JJw-*i}K34z35U;X7o(tbtfZ1c8oZSxKkcT zCapS;QzqGUr9U=u7QoxA-5I0@3ohd|z*$GSwMy%#Kd&l|Cz; zDUjyX%m0XI;FvQ5!F#1U^w_!a;=s{MY*YoC1gW)zM5?=oyer*|?9(>Rj127wvG0Rh z`I^?Zy)LitVvmO7I{n~%#?(Cosw}2mRvRUQj)xCqj3q0E`KCTft=b04tOfbVY#I*j z)okO0u2{q%GKy>el`c&^At>E%B@AglvN5o-I-8A-~M1mcuSlUU; zdwTf>bQ^-b&;W~I)G!H^W_vKIE+r1;{(Yg6n9p+%n0X0u0;Kc>K=Fvi61M0B!VWpUQ3jCk6$O@=kEFmLnUC<;g-#XUiehkV!p^4;PrVpgC?Oc-Ob zeOs`#gH?tH8G00C$IpM)7GR3XED4_D9j^+gXYw{!T>-lW{>qF|y2=-K>`STX#DYeP zS*gyN^>P-aJq%5Dl$~SLG^})Y=GAw>r^fP!)tz*ot3(lzM%!0yeQJ~1_-6c!O_Pm^ z+|mLrQ(LkVT%uz)R`-`eJ*L}_?{^Q43Y88=1JLbkHKR?cl=D5-YKI+dS+dw5l}V2C zlI{C`{`_!Tucack${Fp^p&B9mBZ6G$TLMvGdCU<(6sq*GDeTd7p?vQ2&Jw-;dbdR}gr$ z3V1&^edk-@Jq?;GIEfzZQp;Xiw(YMjY~Px=a5RZ{3ZoWK-EwXXA{pJ$(<$W0?3-tN zyrSch!^^$b*Z#I@qwb7V#**j3gH(6vE6)a8^%O^QW2KtK)zImuvNO59-Jf|KU8cu* zDSqb162~UfKO<{@e~n!La;MnC@7ezNGU)ENg%?{Gm%ykAQKM?@fIz}@ij~Ru?h(B2wTcJCu>^UScl6Nq5edIn?#@Z4o3CV_>au9QB`r#U|iD7 zAwTXdb(}CR7#Rl+gYzi5^v6qsmi7n?F?3%VI#c^cD4s}7p{;zeUp!<-zWqjz2g#4d z7%Bm%7=}y)991RNcL(_5r^lT?cre{^D6UhsfOs>Oz$qV~X(K2)jwFb5UPk$UOfz`_ zI?b=E6^hN^9cBS63aK!sK*6<3z9fOiK%L207(d`gE%|v1=r-zik)YjFmDyW0mMX&` zYDb7ZEW-&{clc={O%UBM5}xrq0GCRUt}ODZ0E?2(vqC$?smTK$kmG8_wxCvlzK&3;-2JPukyhf`w>sgQtqEe1VAZdt)JEN&91q6mJZ`uXzeTp zjXI6}P&_81lz9s+ffp364do?E9f9;0S%)#gt`#R59AIh~{4ic61^ zz3SO$C?!vm;Ve%?;98FRlTZs6y->e)7Dq!FJG~YD5;j=5%JzU(DKbcM9bDmtpayzE zQ|t3}lguk;wxwRXKWcluqf>!)6cMcg+WBQC1+^8YcxDZl*s0*rvh99-kdoX8YSFju zWdpiL*5sY*`?A*1XC(U4*KaLU`)QHsZl%s~YrT7JL@Dh&YNl6gqo-kcwJ#YCr3(SI z_y^Q%2M;3|R|EI<#PfT!u*@|?i^VKxY)bEAg0&o=dnJ|_CQ&y zLJ;qjp;wSz3Gx%~9xp`_hhP$|V3LW<`)Ev+{b@KuZA&EcnUs`cI_wzW@^Y?Ke((Yr zPnFwHk8dzi?gl1~C82$Yi0SKzV!L6+77EOQdweyqbEcWFl5XRy?awm0^PM-rVi4eS%SabTT121%iT5ZAZyw5Gy9T&t_Cv zm4RLt;Qjf&F=L}tdraRtxKnhByqt>z#T8b~1caX;o~y^2x{waNf-g2Y zj9gbW+V2Aa?>82LVqQM^6sb1=y=(`X^Jo^B?OU4y-2n~-VwUy5ec2%-yC(-Lq19p+hGi@#wC#4ZGvWrmyj zZ})0G7t9+9iYY0y5bQ?-*XIJle-ewYHEyk+Fb)C4hh)HjwpN<=HcSCZUvGNJYt6`x zsIZ84>V1RJ1m!|8+Rg}!GN|^hy!R4Mh8^MVT(J)^??uUBa)A;yj2LI+I_zA_w4CPO z>AFTijd&QQtHgf_xQsY}k{z_~_YwM8_@Mz;rrm;C$7=zQ=~} zzJu`<5=)#T(EY>jw{PGPRW=MqPY-SVI@wq#dhrL|tos3CM+brmgccr2Vy)UBJ8Zd* zXQ)#+tO?}mhhQjZ6nGSrFFnX77}A3Cf>1PUjGpJCQZ3XJq&qu8ih+i2)P_gOTSlX% zoh-+~XTZkT>0UbRmH}d1v__rz-Y!?v_prrwq#*)nNQ(a^#SDY(@^Zw#7w-DUY3G{Cv}(Y;ke8+yGQ_wma(!(1db%gC*5>4xTr;>YLar zf?e{Z(<59rPqVRpd<$*#7%2r-|P+F`0>oXc?tTB#kK;V`ROb>9M3~&(BvF( z#T0YXr0pC}dJH=0Ea8dchC13gttBt6A2^5O>ury$D#$Rok3@=&lhS!cm7{_>lar)8 zh)qJ!qvl_TS)aPSbUx^b1`W)plne+(97oH^xC5&RCR#Noas&Sk+-?E5ZDx0c@^`rH z3p`mX5uT?;r%3e9!hQji67BfQjeHQX7zof8c{j;KHcPNOdyk~oift*c>vRq^2+?c# zH#|G%9={3H!V?p%HID6cS4zno?d&*@<`QbPO+~OGea6fXH8&KtvGtGJ&|as^)`V># zoa%_GtE{EGlMCg-SIiG%uj?ZmU znup}u@0SM13u6~Le*nz*kf(|+&qC-I=-7M^&*t`>mX4IPuX81xf!Onl>VX%Nn)KEy zmTyIoj!`b$@GYL z=;~1Je_nUBlSmmT(DB%}rnj39)haM@sS|ahfdEGY^NebO+Jm7Lg& zQ({w>1AbsP+OS@R`5xm4$MFM)wrc!~y;fR9>`*US>hz%A)m>ag zO~-d9s{vyv{1}QQgmc~}CHm%vLcCEw2J38Jef41xar7)ai88 zY)gA>Z}w2g2*o$R7{a;B)SVqcsN@bFLKx|&IyS@9%mqDXFe`DF@u3k!SRbX9H*J}D z4KNJ;c)=d1^8_i`??8*Pko|~cKOJ8T#v>Q6txSgOQb03Y(hI039TugQpAHd;dUn=0 z?H#70#86W^MTZgh?mT_r@zykrAZ-YG(>N5vajmG$bIlH=6ClVdg4!cV<1TR77o2F4 z^w>MINc0w}Wn$arDuuZH>zKXM4;yh7sO{aRVif!gKVKR1j*P+bVJV+`@!Gr$j3B!x zGf~Dy=6f4(g!cQp3Pw_0?GB@BhAU9pV)K~7a}iT7K1jL1llQQEwM=PAh493>d?=|B zE$u5hxp&WHPO;-Yu(LcrrKGp}ikpS-RlVQW_+v!TBOX`p;rn&U%rbxi@kPVMqo-vD(Ghe1=T%qv5+0pf>z-$Rfc<~MKc_d>p$sk@gwu! zbuCi@^HrX^GDq4~EPwij6K&+*32eRV2(%{&s^lW~eetc~CGWm5&8}AK;=)(WF1f92 zMrZb*J4-fe$-WdD6m&_x;yKgoS?2d=W6hqT-<7RdXXb}LAa~YGk|(FS1EYkzatK1F zFwV3zcz^GoZ!h6@Tu0oK%YPc1u$oQDyYDAw zK%`7p4{0?$kaanigQJ=rSxwZOpMjmcQ=cAh7nc|~phaV&BZRI1?EHj)>gw6cY7-pU z4)srrk-_uk*|U|=pA08OsLlXfq)PVud97mU!@(OE?{F!Y7!~FQWrqo`2C0a&D+NCv z`F})|HpD;|&JoR?>-Dg8&iTNVU0ESK8;DFkt=L&CfA6W@_|$$ueCn9tjj~EDz4V+n zSsGJMsF)`QGq}4}W=ejW@%N_(``eeY9C%`qf{=8W9xrbj-Q3C?&({=5q&lPxe zm983!k3ql;pO+Yd8!VOJa7i<9~h<|NTa$H-PQSU;KHl;?JMGgXHjMYzj5% zI^DBXn0pb7tq-=a&~>OKs)r94v)3E?S0Cc{j~K3ke;-XBzv^uF=QlWQN{FyB4$$x! zFq0mC0U7CG0uyh@kE#f&v)y?8wCfx`2<)vBhE3w`r62B6m9X7xbFDgh!qBNxRUsGs z+Yt6Yt;_%UCFTU|nC`ka{(oM=|MN%x#w%rVuo}adccTAKew!67Y$9GyaoyiH*WY*_ z|Ku59n2^9k`7TuB|H*IrpU3u3p7CF<%>Sp|w!`cTBPm3YdXrw6_e%U|0MZsxotee# zwc3eI31$rq&M6%aHG%Qm*+(8n(E7e4WQFfQv*+5)=rqPZ zzgY@;`Rl?3+G6%tjdU(l;OZPe_utr@3?Z!kWH9rks?-kWu-{MgU&OFK{BZaL5@aGQ zFi(vlYHUk}Pav~Kd2mRzr)s?@7kT6JpnJpuc^MImOjg3eAhFC}Z#W?35)f|G>bn}N5twBYoxYA?ypgv0mV9$eI+H+GhYPRad6*0-x?A@DIO-Jc3 z-n{}3ojaf40&q|@Z};+P^u;81VH7Q?sGKC+)Fyt1&yvEesjv1PnQ@6l8e8Fm*<@A2 zf9D4yw9PMIV(aVsQMbI|H-FPll{@6psSuP!h8+JZH)5t!)};=c3e=>FedKmYr?zWdjZ zi%rr9dhdJk0H~lcB!4{DsJnH8_r+fCbus*57qqVV3#~fZtIX;bE|Q(Ww>?q{<+(ao z4W^gitHAFtRwEp_SY2x%Cdmvs#!(C_Zqii*)^HQ z`@;z&XJL!lSM1YIhxr_AwfodT{heWgGck-OU&+j7rw?swux_@dM!LRG}=%Bvc&`@qMr_J;d=HlSe;K_zu942|6p&) zr_uC-PKHQ^e8!x^*!VV`uCXtg_u|c;k#lEw?x7F%HcS%>$Nb1q_i(jg%&b`>sNNSq zABeH$_umaOFUZp^^Ss@y7b&xkZdv&SaKxq(KK$s7@IARUg<$1+bvqOw8(p>9h*cx# zi^oD=V2OMkWL#6C5?7lN?vojekF%yHy&gF${j(yxHgx-`XbjQE*|XyxAi@eV-a*@A~dP_4aSWWg2j zV*?6sY^?6nDK%LHBUQ_f?LThP3Uc%tLQL9S408TBboRSB3H}h+sPONumsGQGNZr#V zYzW}k%W!N1#iSUNkt7E$1eA~Nua^{z!T=fLO-S^j4I>x&t#d2uT&s76Yj}O$Ly z8($qdPfA?tl#Ib7f}DCmT66R!#fFH(_T(mp*o~M zMcpme-KwBCTwP1d^l@0!g4yl+6Kp7V4n2pcv(VI9!KJYZN66rUk@Fsov#I%l7yKAf zyK}BGOxX#$u=}Y&B5@BReSL_wPJJE7kaCZ^#AvGIzg3LzRh2+1p8CNo*M6{BXD1>1(&JYKuin zUP~SW`*sb@N_z_<$={z0%ZM^#zne}ju}NQ_hk#7E!^?c*XnsM2XtNn~P$V6^8qo#zF;RlMV4L&Su)LM5uM?f5$zPuLD8wOFD&b z#jt!=Iq^~FQ>4v=<4#Q^h-NGE*AjLz1eC4k`s`V&<3!8xmtQ)fMPYJQJ&@Tub)`0q zBGp^1{W$~5Og0vZq)n-<-;GVWUW-XSH-E~SJNln1bu*|2-2NC7S4qPr93@U2LdmBl z)`4nDOLXEkMMvbpa`<+$(f*}7CnJg`Ul~n4ok<>(l|6W;HHuO8tR(d>klB-F7DNX< zdvwU_et@y)E`L{SmN;I*ID%lNKetQpCYk@*Ls3VJQDaPYr6;R6ETS;^pK54DOYerb zxCIYID?1x++?Tg0Z!FIJ*m6ik^zMqZAPap~?yL8?uhV+GYQyV*!FQ~euut+qQ_ap* z?6_~cYn_;Pi(lCT{5Rcm&zbdK03%;!{JkbD_7P_iDKfm&C03M$|2o&WxeVjRsW6@+ z3hAUgyWs?*(0Y;fu=|uTF|p#bi2U~^Ql4hGPB2-e7`_gGSXiKmo4nvpM*`X zjy|DEd+xq0%F!Tj*OPmNiuz;y8uZ}%Q}PA*tQRB)Qi^=z4f_n+5usyd)P2yFRIVBLHeMC7PN=)V2TZ zPJrq2eR#T}w}AztbVLftDpzr~lemsY`SIekuLLB~!NHdjV)gGmNv1uqX>;CE+8HGlF=zu9pY2(MT7YKXK8H|Qf*^5@iKCwWM z1tN7}WbSqtH|`C)%IbF7rfO^Qgk+SW^iK_vTYbx}fUN_mr8n6Tg!!I67?`4 z<&PH&rVY|_e#=Lzr6SNO_&VXEsA{hV|0c&2V1X%)DaU;G<_7 z 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�Mn(}PK3A}< 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 literal 0 HcmV?d00001 From aacaa4f8388a72082cb2e7d0f7434766925811b5 Mon Sep 17 00:00:00 2001 From: pru46423 Date: Mon, 13 Oct 2025 20:34:09 +0530 Subject: [PATCH 09/12] feedback incorporated from Maniks review --- src/data/navigation/sections/events.js | 56 +++++++++++-------- src/pages/events/journaling-tutorial/index.md | 7 +-- .../runtime-action-code-journaling-api.md | 9 ++- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/src/data/navigation/sections/events.js b/src/data/navigation/sections/events.js index 39466bff..05a32e6b 100644 --- a/src/data/navigation/sections/events.js +++ b/src/data/navigation/sections/events.js @@ -30,29 +30,39 @@ module.exports = [ ] }, { - title: "Journaling", - path: "/events/journaling-tutorial/index.md", - pages: [ - { - title: "Integrate with Adobe I/O Events Journaling API", - path: "/events/journaling-tutorial/index.md" - }, - { - title: "Register and validate your journaling integration", - path: "/events/journaling-tutorial/registration-journaling-events.md" - }, - { - title: "Code development and deployment", - path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" - }, - { - title: "Validate journaling events processing", - path: "/events/journaling-tutorial/validating-journaling-integration.md" - } - ] - } - ] -}, + title: "Set up event providers", + path: "/events/tutorial/event-providers.md" + }, + { + title: "Debugging and development tips", + path: "/events/tutorial/debugging.md" + } + ] + }, + { + title: "Journaling Tutorial", + path: "/events/journaling-tutorial/index.md", + pages: [ + { + title: "How it works", + path: "/events/journaling-tutorial/index.md" + }, + + { + title: "Register Commerce Events in Adobe Developer Console for Journaling", + path: "/events/journaling-tutorial/registration-jounrnaling-events.md" + }, + { + title: "Code Development Using Journaling API and Deployment", + path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" + }, + { + title: "Validating Journaling Events Processing", + path: "/events/journaling-tutorial/validating-journaling-integration.md" + } + + ] + }, { title: "Create an App Builder project", path: "/events/project-setup.md", diff --git a/src/pages/events/journaling-tutorial/index.md b/src/pages/events/journaling-tutorial/index.md index 284f1f6d..b9c1d909 100644 --- a/src/pages/events/journaling-tutorial/index.md +++ b/src/pages/events/journaling-tutorial/index.md @@ -19,11 +19,10 @@ To address this, Adobe IO Events provides event journaling as an alternative. Jo ## How it works -Adobe I/O Events Journaling provides a reliable way to consume events asynchronously without requiring direct delivery to a webhook or runtime action. Journaling stores events temporarily in a dedicated endpoint, allowing applications to pull events at their own pace. This approach supports batch processing, error recovery, and ensures that events are not lost when a consumer is temporarily unavailable. [Adobe I/O Events Journaling Guide](https://developer.adobe.com/events/docs/guides/journaling-intro) provides an overview of journaling concepts and benefits. +Adobe I/O Events Journaling provides a reliable way to consume events asynchronously. Journaling stores events temporarily in a dedicated endpoint, allowing applications to pull events at their own pace. You can read in detail here:[Adobe I/O Events Journaling Guide](https://developer.adobe.com/events/docs/guides/journaling-intro) -Consider a use case where a product is deleted from the Adobe Commerce catalog. At that point, an event is emitted asynchronously and sent to Adobe I/O Events. An event provider must first be created. The provider defines the supported event types, such as product deletions or inventory changes, and ensures proper routing. The Adobe I/O Events for Adobe Commerce module enables Adobe Commerce to subscribe to this provider. - -When a product deletion event is emitted, Adobe I/O Events stores it in a journaling endpoint. The endpoint holds events for a period of seven days. making them available for consumption. Consumers gain access to the journal URL during event registration. +Consider a Commerce use case where an event is triggered when a product is deleted from the catalog. If the project uses event registration through a journaling endpoint, the event is sent asynchronously to Adobe I/O Events. Adobe I/O Events stores these events in the journaling endpoint for 7 days, making them available for consumption. Developers receive the journal URL during event registration. +The App Builder app is then set up with this journal URL. A Runtime action uses the Events SDK to poll the journal and fetch new events. Each time it runs, it reads and processes the available events.Every time. the App runs, the program: In this integration, an events registration is created with the provider, which returns a journal URL. The App Builder application is then configured with this journal URL so that a runtime action can use the Events SDK to poll and retrieve events from the journal. A runtime action then uses the Events SDK to poll the journal. During each execution, the action: diff --git a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md index ac876d67..04787ed1 100644 --- a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md +++ b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md @@ -27,7 +27,6 @@ The `index.js` file implements an Adobe I/O Runtime action that consumes events - **Fetch New Events** → Calls the Journaling API to retrieve only the latest events since the last position. - **Process and Log Events** → Iterates over the events, extracts key details (e.g., SKU, product name, price, stock quantity), and logs them. - **Update State** → Saves the newest journal position in the state store for the next invocation. -- **Return Response** → Sends back a structured response containing the number of events processed and their details, or an error message if something fails. ``` js const { Core, Events } = require('@adobe/aio-sdk') @@ -310,7 +309,7 @@ AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_client__secrets AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_technical__account__email AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_technical__account__id AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_scopes -AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_ims__org__id +AIO_ims_contexts_Credential__in__MyEventsApp__-__Stage_ims__org__id ``` Sometimes referencing these names in `appconfig.yaml` causes errors when generating tokens. In these cases, simplify the contents. @@ -391,6 +390,8 @@ application: annotations: require-adobe-auth: false final: true + limits: + timeout: 70000 triggers: everyMin: feed: /whisk.system/alarms/interval @@ -400,6 +401,7 @@ application: everyMinToEventjournal: trigger: everyMin action: + ``` A trigger in Adobe I/O Runtime (built on Apache OpenWhisk) represents an event source. Triggers can fire on a schedule, in response to external events, or based on system activity. They do not execute code by themselves but are linked to actions through rules. @@ -413,7 +415,8 @@ This trigger acts as a scheduler for invoking actions at regular intervals. A rule links a trigger to an action. When the trigger fires, the associated action is automatically executed. In this example, the rule `everyMinToEventjournal` connects the `everyMin` trigger to the `eventjournal` action. The flow works as follows: -- The `everyMin` trigger fires every minute. +- The limits.timeout parameter defines how long (in milliseconds) the action can run before it is terminated automatically by Adobe I/O Runtime +- The everyMin trigger fires every minute. - The rule detects that the trigger has fired. - The linked `eventjournal` action is invoked automatically. - The `eventjournal` action is expected to contain the logic for reading events from the Adobe I/O Events Journaling API. By wiring the rule this way, the journaling action runs once per minute, polling the journal for any new events and processing them. From d390e474e18795df2b91b46372be08cb09284e75 Mon Sep 17 00:00:00 2001 From: pru46423 Date: Wed, 15 Oct 2025 10:04:23 +0530 Subject: [PATCH 10/12] feedback incorporated from Maniks review --- .../journaling-tutorial/runtime-action-code-journaling-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md index 04787ed1..ae105211 100644 --- a/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md +++ b/src/pages/events/journaling-tutorial/runtime-action-code-journaling-api.md @@ -119,7 +119,7 @@ async function fetchEvent(params, accessToken, sincePosition) { if (sincePosition) { options.since = sincePosition } - options.limit = 100 // Fetch up to 100 events in one call + options.limit = 10 // Fetch up to 100 events in one call // Fetch events from journal const journalling = await eventsClient.getEventsFromJournal(journalling_url, options) From b4c2a183f9b910829d37ac35ff20ff4214944392 Mon Sep 17 00:00:00 2001 From: pru46423 Date: Tue, 28 Oct 2025 18:25:11 +0530 Subject: [PATCH 11/12] Fix File Name --- .../registration-journaling-events.md | 59 +++++++++---------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/src/pages/events/journaling-tutorial/registration-journaling-events.md b/src/pages/events/journaling-tutorial/registration-journaling-events.md index 33685730..91a9cd0e 100644 --- a/src/pages/events/journaling-tutorial/registration-journaling-events.md +++ b/src/pages/events/journaling-tutorial/registration-journaling-events.md @@ -1,44 +1,43 @@ --- -title: Register your integration with the Journaling API -description: Learn how to register Adobe Commerce events for journaling and validate that the integration is functioning correctly. +title: Use Events and App Builder to Extend Adobe Commerce +description: Learn how to configure and build event-driven integrations between Adobe Commerce and Adobe App Builder using Journaling API. edition: saas keywords: - Extensibility - Events --- -# Register and validate your integration with the Journaling API +# Registering and Validating Integration with the Journaling API -This topic guides you through registering Adobe Commerce events for journaling and validating that the integration is functioning correctly. +## Prerequisite Setup -## Prerequisite setup +Before configuring journaling, ensure that you have completed the standard setup for Adobe Commerce Events and App Builder. -Before configuring journaling, ensure that you've completed the standard setup for Adobe Commerce Events and App Builder. +- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in (Setting up Event Provider in Adobe Commerce) [https://developer.adobe.com/commerce/extensibility/events/tutorial/event-providers/#set-up-event-providers] up to the section +**Sync event metadata with App Builder** -- To create and configure an Event Provider in Adobe Commerce, follow the steps outlined in [Setting up Event Provider in Adobe Commerce](../tutorial/event-providers.md#set-up-event-providers/) up to the section "Sync event metadata with App Builder. - -- To set up your App Builder project, follow the steps in [Set up the Adobe Developer Console and App Builder project locally](../tutorial/deployment.md#set-up-the-adobe-developer-console-and-app-builder-project-locally) up to the section "Set up your local App Builder environment using the CLI". +- To set up your App Builder project, follow the steps in (Set up the Adobe Developer Console and App Builder project locally) https://developer.adobe.com/commerce/extensibility/events/tutorial/deployment/#set-up-the-adobe-developer-console-and-app-builder-project-locally up to the section **Set up your local App Builder environment using the CLI**. ## Register Commerce Events in Adobe Developer Console for Journaling -Define which Commerce events to subscribe to and register them within the Adobe Developer Console project. Return to the project workspace in the Developer Console, open the **Add Service** menu, and select **Event**. On the Add Events page, choose **Commerce Events** and select **Next**. - -**Insert Image** - -In the Configure Event Registration step, select the event provider created earlier in Adobe Commerce. Select **Next** and review the events available from the provider. For journaling, do not choose any specific delivery method or runtime action. The Journaling API renders by default for the integration. - -**Insert Image** - -On the final screen, update the **Event Registration Name** and **Description** fields. Save the configuration. After saving, the journaling endpoint (journal URL) generates automatically and becomes available for the App Builder application to poll events at its own pace. - -## Validate your integration - -Validate that events from Adobe Commerce reach the journaling endpoint. - -1. In Adobe Commerce, delete a product from the catalog. - -1. Open the Adobe Developer Console and navigate to the event browser in the project workspace. - -1. Confirm that the product deletion event appears in the event browser. - -1. Click the **Go to Start** button. The event browser provides a visual preview of events and includes basic metadata such as event ID, timestamp, and provider. +- Follow these steps to register Commerce events in the Adobe Developer Console: +- Open your Adobe Developer Console project workspace. +- From the Add Service menu, select Event. +- On the Add Events page, choose Commerce Events, then click Next. +- In the Configure Event Registration step: + - Select the event provider that you created earlier in Adobe Commerce. + - Click Next to review the list of available events from that provider. +- For Journaling, do not select any specific Delivery Method or Runtime Action. +- The Journaling API is automatically enabled for this integration. +![Jouranling selection in Event registration Selection](../../_images/events/journalingtutorial/developer-console-jouralling-selection.png) + +## Validate Integration + +- After registering Commerce events, you can verify that Adobe Commerce is successfully sending events to the journaling endpoint. This ensures your event registration and integration are working as expected. +- Follow these steps to validate event delivery: + - In your Adobe Commerce Admin panel, delete a product from the catalog: Admin → Catalog → Products → Delete Product. This action triggers a product deletion event. +- Open the Adobe Developer Console and navigate to the Event Browser within your project workspace. +- Verify that the product deletion event appears in the Event Browser. +- Click the Go to Start button to refresh and load the latest events. +- The Event Browser provides a visual preview of received events and displays basic metadata such as Event ID, Timestamp, and Provider. +Once confirmed, the event flow from Adobe Commerce to the Journaling API is successfully validated. From 1debb7d90c398cfe699859fbb628447f21a10d39 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Tue, 28 Oct 2025 09:23:14 -0500 Subject: [PATCH 12/12] Redo left nav --- src/data/navigation/sections/events.js | 56 +++++++++++--------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/src/data/navigation/sections/events.js b/src/data/navigation/sections/events.js index 05a32e6b..39466bff 100644 --- a/src/data/navigation/sections/events.js +++ b/src/data/navigation/sections/events.js @@ -30,39 +30,29 @@ module.exports = [ ] }, { - title: "Set up event providers", - path: "/events/tutorial/event-providers.md" - }, - { - title: "Debugging and development tips", - path: "/events/tutorial/debugging.md" - } - ] - }, - { - title: "Journaling Tutorial", - path: "/events/journaling-tutorial/index.md", - pages: [ - { - title: "How it works", - path: "/events/journaling-tutorial/index.md" - }, - - { - title: "Register Commerce Events in Adobe Developer Console for Journaling", - path: "/events/journaling-tutorial/registration-jounrnaling-events.md" - }, - { - title: "Code Development Using Journaling API and Deployment", - path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" - }, - { - title: "Validating Journaling Events Processing", - path: "/events/journaling-tutorial/validating-journaling-integration.md" - } - - ] - }, + title: "Journaling", + path: "/events/journaling-tutorial/index.md", + pages: [ + { + title: "Integrate with Adobe I/O Events Journaling API", + path: "/events/journaling-tutorial/index.md" + }, + { + title: "Register and validate your journaling integration", + path: "/events/journaling-tutorial/registration-journaling-events.md" + }, + { + title: "Code development and deployment", + path: "/events/journaling-tutorial/runtime-action-code-journaling-api.md" + }, + { + title: "Validate journaling events processing", + path: "/events/journaling-tutorial/validating-journaling-integration.md" + } + ] + } + ] +}, { title: "Create an App Builder project", path: "/events/project-setup.md",