From 75498c08d8e292a7351b592e87951dd8e4a0adff Mon Sep 17 00:00:00 2001 From: Jarne Vynckier Date: Mon, 13 Apr 2026 10:54:44 +0200 Subject: [PATCH 01/15] documenthub --- solutions/images/DocumentHub.svg | 800 ++++++++++++++++++ solutions/images/DocumentHub_About.svg | 16 + solutions/images/DocumentHub_App_Logo.png | Bin 0 -> 4063 bytes solutions/images/DocumentHub_App_Overview.png | Bin 0 -> 93241 bytes solutions/images/DocumentHub_Categories.svg | 17 + solutions/images/DocumentHub_DOM.svg | 16 + solutions/images/DocumentHub_DataMiner.svg | 13 + solutions/images/DocumentHub_Settings.svg | 4 + solutions/images/DocumentHub_SharePoint.svg | 3 + solutions/images/DocumentHub_Upload.svg | 5 + solutions/solution_index.md | 6 + .../Document_Hub/Apps/DH_Application.md | 123 +++ .../Document_Hub/Document_Hub.md | 93 ++ .../Document_Hub/Package/DH_Installation.md | 54 ++ .../Tutorials/Tutorial_DH_DOM_NetworkShare.md | 165 ++++ .../Tutorials/Tutorial_DH_SharePoint.md | 129 +++ solutions/toc.yml | 15 + 17 files changed, 1459 insertions(+) create mode 100644 solutions/images/DocumentHub.svg create mode 100644 solutions/images/DocumentHub_About.svg create mode 100644 solutions/images/DocumentHub_App_Logo.png create mode 100644 solutions/images/DocumentHub_App_Overview.png create mode 100644 solutions/images/DocumentHub_Categories.svg create mode 100644 solutions/images/DocumentHub_DOM.svg create mode 100644 solutions/images/DocumentHub_DataMiner.svg create mode 100644 solutions/images/DocumentHub_Settings.svg create mode 100644 solutions/images/DocumentHub_SharePoint.svg create mode 100644 solutions/images/DocumentHub_Upload.svg create mode 100644 solutions/standard_solutions/Document_Hub/Apps/DH_Application.md create mode 100644 solutions/standard_solutions/Document_Hub/Document_Hub.md create mode 100644 solutions/standard_solutions/Document_Hub/Package/DH_Installation.md create mode 100644 solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md create mode 100644 solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md diff --git a/solutions/images/DocumentHub.svg b/solutions/images/DocumentHub.svg new file mode 100644 index 0000000000..cfbe765c47 --- /dev/null +++ b/solutions/images/DocumentHub.svg @@ -0,0 +1,800 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_About.svg b/solutions/images/DocumentHub_About.svg new file mode 100644 index 0000000000..1ab6215230 --- /dev/null +++ b/solutions/images/DocumentHub_About.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_App_Logo.png b/solutions/images/DocumentHub_App_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2635c0f5e393ef654a377ec5a17916c889a1b17a GIT binary patch literal 4063 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 Rdy4=7002ovPDHLkV1kokdG`PS literal 0 HcmV?d00001 diff --git a/solutions/images/DocumentHub_App_Overview.png b/solutions/images/DocumentHub_App_Overview.png new file mode 100644 index 0000000000000000000000000000000000000000..4da714084949d362770553eaa7686d433b92c33c GIT binary patch literal 93241 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 + + + + + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_DOM.svg b/solutions/images/DocumentHub_DOM.svg new file mode 100644 index 0000000000..21012d76d9 --- /dev/null +++ b/solutions/images/DocumentHub_DOM.svg @@ -0,0 +1,16 @@ + + Shared network drive + + + + + + + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_DataMiner.svg b/solutions/images/DocumentHub_DataMiner.svg new file mode 100644 index 0000000000..d839388851 --- /dev/null +++ b/solutions/images/DocumentHub_DataMiner.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_Settings.svg b/solutions/images/DocumentHub_Settings.svg new file mode 100644 index 0000000000..1436b657ac --- /dev/null +++ b/solutions/images/DocumentHub_Settings.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_SharePoint.svg b/solutions/images/DocumentHub_SharePoint.svg new file mode 100644 index 0000000000..59a68368e6 --- /dev/null +++ b/solutions/images/DocumentHub_SharePoint.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/solutions/images/DocumentHub_Upload.svg b/solutions/images/DocumentHub_Upload.svg new file mode 100644 index 0000000000..1ce5f7d622 --- /dev/null +++ b/solutions/images/DocumentHub_Upload.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/solutions/solution_index.md b/solutions/solution_index.md index de8ee6c790..d5c143fee9 100644 --- a/solutions/solution_index.md +++ b/solutions/solution_index.md @@ -27,12 +27,18 @@ uid: solution_index + +
diff --git a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md new file mode 100644 index 0000000000..22e418979d --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md @@ -0,0 +1,123 @@ +--- +uid: DH_Application +--- + +# Document Hub app + +The Document Hub app is a comprehensive low-code application designed for administrators and operators to manage documents, images, and files across your DataMiner environment. It provides a centralized interface for uploading, organizing, retrieving, and linking files to business operations. + +![Document Hub app overview](~/solutions/images/DocumentHub_App_Overview.png) + +> [!TIP] +> For detailed walkthroughs on using the app, refer to the [Document Hub app tutorials](xref:Tutorial_DocumentHub_Getting_Started). + +## App overview + +The following sections and features are available in the app: + +- ![SharePoint](~/solutions/images/DocumentHub_SharePoint.svg) **SharePoint**: Browse files stored in your SharePoint repository, quickly filter by name or category, and inspect the full metadata set for each file. + +- ![DataMiner](~/solutions/images/DocumentHub_DataMiner.svg) **DataMiner**: Access files stored on your DataMiner side, use name and category filters to narrow down results, and review all available metadata details. + +- ![DOM](~/solutions/images/DocumentHub_DOM.svg) **DOM**: Explore files linked to DOM records, find content by filtering on name and category, and view the complete metadata context used in your workflows. + +- ![Upload](~/solutions/images/DocumentHub_Upload.svg) **Upload**: Upload new documents to configured storage backends. Select the appropriate category to ensure files are stored in the correct location with proper metadata. + +- ![Categories](~/solutions/images/DocumentHub_Categories.svg) **Categories**: Configure and manage document categories. Define which file types go where, set upload restrictions, and manage metadata templates. Available to administrators only. + +- ![Source Configuration](~/solutions/images/DocumentHub_Settings.svg) **Source Configuration**: Connect and manage cloud storage repositories and local storage options. Configure credentials and access settings. Available to administrators only. + +- ![About](~/solutions/images/DocumentHub_About.svg) **About**: Provides information on the **version** of the Document Hub package. + +## Uploading documents + +You can upload documents to store them in your configured storage backend. The upload process guides you through: + +1. Selecting the appropriate **document category**. +2. Choosing the file(s) to upload. +3. Optionally give a new name to the file +4. Confirm the upload destination. + +Once uploaded, the document will be stored in the configured backend for the selected category and will appear in the Documents view for all authorized users. + +## Organizing with categories + +Document categories streamline workflows by predefining: + +- **Name** to identify the Category +- **Target storage backend** (SharePoint, Google Drive, local storage, etc.) +- **Allowed file extensions** (e.g., .pdf, .jpg, .png) +- **File size limits** to prevent oversized uploads +- **Upload Location** to organize your files +- **Description** (Optional) to give some extra info about that Category + +Categories help maintain organization and security by ensuring files are stored consistently and with proper restrictions. + +## Integrating with other applications + +The Document Hub app works seamlessly with other DataMiner applications: + +- **People & Organizations**: Attach profile photos and organization logos. +- **Asset Manager**: Store and display asset images and documentation. +- **Scheduling**: Link job documents and attachments. +- **Custom Applications**: Use the [Document Hub API](xref:DocumentHub_API) to integrate with your own low-code apps. + +Document usage is handled by the consuming application, allowing each app to control how documents are displayed and managed within its context. + +## Storage backend integration + +Document Hub supports multiple storage backends to give you flexibility in document management: + +### SharePoint (Customer-managed) + +Connect to your organization's SharePoint repository to leverage existing document management infrastructure. Requires: + +- SharePoint site URL +- Authentication credentials (client ID and secret) +- Folder structure configuration + +### Local DataMiner Web Server + +Store documents on the local DataMiner Web Server for on-premises deployments. Ideal for: + +- Air-gapped or secure environments +- Sensitive internal documents +- High-performance local access + +### DOM Attachments with Shared Drive + +Connect to a Shared Drive in the network and store files dirrectly on DOM instances in DataMiner. + +- Network Share Path +- Authentication credentials (username and password) +- (optionaly) ISS Config for virtual webserver to have resolvable paths + +### Future integrations + +Additional cloud storage providers may be supported in future releases based on customer demand. + +## Admin capabilities + +System administrators can: + +- Configure storage backend connections and credentials. +- Create and manage document categories. +- Set upload restrictions (file types, sizes, etc.). + +## Searching and filtering + +The Documents view includes powerful search and filtering capabilities: + +- **Search by name**: Quickly find documents by filename or title. +- **Filter by category**: View documents from specific categories. +- **Filter by storage backend**: Show documents from particular storage locations. + +## Performance and scalability + +The number of documents in Document Hub is not capped by the application itself. In practice, scalability depends on the storage capacity and performance of your selected backend, such as SharePoint or a shared drive. + +When using DataMiner Web Files in a clustered setup, keep in mind that files must be synchronized across cluster nodes. With large file volumes, this synchronization can become a bottleneck and affect overall performance. + +> [!Recommended] +> - Use DataMiner Web Files mainly for images, logos, and other lightweight documents. +> - For larger document sets or heavier files, prefer cloud storage backends (for example SharePoint) or DOM attachments. diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md new file mode 100644 index 0000000000..58f45d6e3f --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -0,0 +1,93 @@ +--- +uid: Document_Hub +--- + +# dataminer.DocumentHub + +## Centralized document management for your DataMiner applications + +dataminer.DocumentHub is a comprehensive document and file management solution that enables DataMiner applications to seamlessly store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, Document Hub provides a unified, secure platform with integrated cloud storage support and metadata management. + +Designed for broadcast, service provider, satellite, and enterprise organizations, Document Hub eliminates the need for fragmented file storage solutions across multiple applications. It centralizes all document workflows while allowing IT teams to maintain control over security, compliance, and storage backend selection. + +![Document Hub centralized file management](~/solutions/images/DocumentHub.svg) + +## Document Hub application + +dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) as a package containing a comprehensive low-code application. The solution integrates seamlessly with other DataMiner applications and provides an NuGet API for custom application development. + +
+
+ +
+
+ +
+
+ +> [!TIP] +> +> - Before you deploy the Document Hub package, review the [installation instructions](xref:DH_Installation). +> - Developers integrating Document Hub with custom applications should refer to the [Document Hub API](xref:DocumentHub_API) documentation. +> - For details about the changes introduced in each Document Hub version, refer to the [release notes](xref:DocumentHub_RNs_index). + +## Who can benefit from dataminer.DocumentHub? + +Document Hub serves diverse user groups across your organization: + +- **IT and Security Teams**: Implement centralized document management with control over storage backends, access credentials, file format restrictions, and compliance policies. Support customer-managed SharePoint or on-premises storage options like DataMiner Webfiles or DOM Attachments. + +- **System Administrators**: Configure document categories for file grouping with file upload limitations, storage locations, and file extension rules. + +- **Content and Asset Managers**: Streamline workflows for organizing and retrieving documents across the organization. Normalize graphics formats for consistency and for automated processing. + +- **Application Developers**: Integrate Document Hub capabilities into custom DataMiner low-code applications using the NuGet API. Retrieve file information, upload documents, and manage categories programmatically. + +- **Business Operations Teams**: Access documents from within operational applications such as People & Organizations, Asset Manager, and Scheduling. Attach job documents, profile images, asset photos, and service icons without leaving the application context. + +In essence, dataminer.DocumentHub enables organizations to deliver better service quality, reduce fragmentation in document workflows, respond faster to business needs, and maintain compliance through centralized, secure file management. + +## What can you do with dataminer.DocumentHub? + +dataminer.DocumentHub simplifies document and file management across your DataMiner ecosystem. The solution provides a [ready-made application](#document-hub-application) that can be extended with custom workflows and integrations. It can also be extended with automation scripts and user-defined APIs to integrate with your existing systems. + +Document Hub supports the following capabilities by default without any customization: + +- **Upload and Store**: Upload new documents, images, and files from user terminals to configured storage backends (SharePoint, local DataMiner Web Server, and DOM attachments). + +- **Link and Reference**: Store file references and URLs in DataMiner DOM objects and applications. Link documents to jobs, assets, contacts, and other business entities. + +- **Search and Navigate**: Discover documents by name and categorie. Browse and organize files through a unified interface regardless of storage location. + +- **Read and Display**: View and open documents in third-party applications. Support common file types including jpg, png, gif, svg, pdf, docx, xlsx, and pptx. + +- **Normalize and Format**: Apply format conversion and normalization to graphics files at ingest to ensure consistency across standard solutions. + +- **Organize with Categories**: Create predefined document categories to streamline workflow. Specify target platforms, allowed file extensions, and file size limits for each category. + +- **Integrate with APIs**: Use the Document Hub NuGet package to develop custom integrations. Retrieve file information, manage categories, and upload documents programmatically. + +Example use cases: + +- **People and Organizations**: Profile photos and contact avatars for team members and external contacts. +- **Asset Management**: Front and rear panel images of infrastructure assets, racks, and equipment. +- **Service and Channel Management**: Service icons, channel logos, and branding assets. +- **Scheduling and Jobs**: PDF job sheets, contracts, and task documentation. +- **Cost and Billing**: Generated invoices, cost reports, and financial documents. +- **Energy and Utilities**: Equipment documentation, compliance certificates, and facility plans. +- **Fleet Management**: Vehicle documentation, maintenance records, and operational photos. + + \ No newline at end of file diff --git a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md new file mode 100644 index 0000000000..22d51cd752 --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md @@ -0,0 +1,54 @@ +--- +uid: DH_Installation +--- + +# Installing dataminer.DocumentHub + +To install dataminer.DocumentHub: + +1. Look up the [Document Hub package](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) in the DataMiner Catalog. + +1. Check the prerequisites mentioned in the Document Hub [release notes](xref:DocumentHub_RNs_index) matching the package version, and make sure your system meets these prerequisites. + + > [!NOTE] + > Minimum platform requirement: DataMiner 10.6.3 and above. + +1. When all prerequisites are met, click the *Deploy* button. + + > [!TIP] + > For more details on deploying items from the Catalog, see [Deploying a Catalog item to your system](xref:Deploying_a_catalog_item). + +During the installation, the following steps will automatically be executed: + +1. Prerequisite check. +1. Install/Update automation scripts. +1. Install/Update applications. +1. Install/Update DOM definitions. +1. Initialize the system (fresh install). +1. Migration actions (if any). +1. Cleanup actions (if any). + +Migration and cleanup actions are defined in the install package and will depend on the version you install. To make sure that these actions do not keep growing indefinitely over the different versions, the **migration and cleanup actions are cleaned in every major version** (e.g. from 1.x.x to 2.x.x). + +> [!IMPORTANT] +> When upgrading Document Hub, to make sure all migration and cleanup actions take place, **first upgrade to the latest version of your current major version** before moving to the next major version, without skipping a major version. + +## Post-installation configuration + +After the installation completes, you will need to configure the Document Hub app for your environment: + +1. Open the Document Hub app from the DataMiner Web interface. + +1. Navigate to the **Settings** section. + +1. Configure your storage backend: + - Connect to your SharePoint repository, configure your DOM attachments or use the standard DataMiner Webfiles. + - Provide the necessary credentials and access information (if applicable). + +1. Define document **Categories** to organize file types: + - Specify the target storage backend for each category. + - Define allowed file extensions. + - Set category rules to keep files organized. + +> [!TIP] +> Refer to the [Document Hub app](xref:DH_Application) documentation for detailed configuration instructions. diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md new file mode 100644 index 0000000000..4985380dcf --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md @@ -0,0 +1,165 @@ +--- +uid: Tutorial_DH_DOM_NetworkShare +--- + +# Configuring DOM attachments on a network share + +This tutorial shows you how to configure a network share as a storage backend for DOM attachments in Document Hub. The configuration is performed directly in the Document Hub app's **Storage Backends** section. + +> [!NOTE] +> DOM attachments can be stored on a network share without any IIS configuration. The only mandatory requirement is that the network share is reachable by the DataMiner System. All IIS-related steps are optional and only required if you want to visualize or download attachments via a web browser. + +Expected duration: 15 minutes + +## Prerequisites + +- Document Hub app installed and accessible +- A network share accessible from all DataMiner Agents in the cluster +- Network credentials with read/write permissions to the share +- (Optional) IIS Web Server role installed on DMAs for browser-based file access + +## Overview + +The steps in this tutorial include: + +- [Step 1: Prepare the network share](#step-1-prepare-the-network-share) +- [Step 2: Configure the network share in Document Hub](#step-2-configure-the-network-share-in-document-hub) +- [Optional: Configure browser-based access](#optional-configure-browser-based-access) + +## Step 1: Prepare the network share + +1. Verify that the network share is accessible from all DataMiner Agents in your cluster. + + Example network share location: `\\server\share` + +1. Ensure that the share has appropriate read/write permissions configured. + +1. Test connectivity from each DMA by accessing the share via Windows Explorer or command line: + + ```cmd + dir \\server\share + ``` + + > [!NOTE] + > If the share is not accessible, verify network connectivity, firewall rules, and share permissions. + +## Step 2: Configure the network share in Document Hub + +Configure the network share directly in the Document Hub app: + +1. Open the **Document Hub** app in DataMiner. + +1. Navigate to the **Storage Backends** section. + + > [!TIP] + > The Storage Backends section is only visible to users with administrator permissions. + +1. Click **Add Storage Backend** or **New Backend**. + +1. Select **Network Share** or **File Share** as the backend type. + +1. Fill in the configuration details: + - **Name**: A friendly name for this backend (e.g., "DOM Attachments Share") + - **UNC Path**: The network share path (e.g., `\\server\share`) + - **Username**: The user account with access to the share (e.g., `domain\user1` or `user1`) + - **Password**: The password for the user account + - **Domain** (if applicable): The domain name + +1. Click **Test Connection** to verify that DataMiner can access the network share. + + > [!NOTE] + > If the test fails, verify that: + > - The UNC path is correct + > - The credentials have read/write permissions + > - The share is accessible from all DMAs + > - There are no firewall rules blocking access + +1. Click **Save** to store the configuration. + +1. The network share backend is now available for use with DOM attachments and document categories. + +> [!IMPORTANT] +> DataMiner will store and retrieve attachments directly from this network location. No IIS configuration is required for basic file storage and retrieval through the Document Hub app. + +## Optional: Configure browser-based access + +If you want users to visualize or download attachments via a web browser, follow these additional steps on each DataMiner Agent: + +### Create a local DataMiner user + +1. In DataMiner Cube, go to **System Center** > **Users / Groups**. + +1. Create a local user with credentials matching the network share credentials: + - **Username**: `user1` (matching the share account) + - **Password**: Use the same password as the network share account + + > [!NOTE] + > This user is required for IIS to impersonate when accessing the network share. + +### Configure IIS permissions + +1. On each DMA, open **Computer Management** (compmgmt.msc). + +1. Navigate to **Local Users and Groups** > **Groups**. + +1. Open the **IIS_IUSRS** group. + +1. Click **Add** and add the DataMiner user created in the previous step (e.g., `user1`). + +1. Click **OK** to save. + + > [!NOTE] + > This allows IIS to impersonate the user when accessing the network share. + +### Create an IIS virtual directory + +1. Ensure the **IIS Web Server** role is installed on the DMA. + +1. Open **IIS Manager** (inetmgr). + +1. Expand the server node and navigate to the **Default Web Site**. + +1. Right-click **Default Web Site** and select **Add Virtual Directory**. + +1. Configure the virtual directory: + - **Alias**: `shareRedirect` (or another name of your choice) + - **Physical path**: `\\server\share` (the network share UNC path) + +1. Click **OK**. + +1. Select the newly created virtual directory in IIS Manager. + +1. Double-click **Basic Settings** in the Actions pane. + +1. Click **Connect as...** and configure the virtual directory to use the local DataMiner user credentials: + - **User name**: `user1` + - **Password**: The user's password + +1. Click **OK** to save. + +1. Click **Test Settings** to verify the configuration. + +### Access attachments via browser + +Once IIS is configured, attachments can be accessed via a web browser using the following URL format: + +``` +https:///shareRedirect/ +``` + +Example: `https://dma.example.com/shareRedirect/document.pdf` + +> [!TIP] +> The Document Hub app can automatically generate these URLs for DOM attachments when the IIS virtual directory is configured. + +## Next steps + +After configuring the network share backend, you can: + +- Create document categories that use this network share +- Configure DOM definitions to store attachments on this share +- Upload documents to the network share through the Document Hub app +- Link DOM attachments to jobs, assets, and other business entities + +> [!TIP] +> For more information on creating and managing document categories, see [Document Hub app](xref:DH_Application). diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md new file mode 100644 index 0000000000..7af188ea32 --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md @@ -0,0 +1,129 @@ +--- +uid: Tutorial_DH_SharePoint +--- + +# Configuring SharePoint as a storage backend + +This tutorial shows you how to configure SharePoint as a storage backend for Document Hub. The configuration is performed directly in the Document Hub app's **Storage Backends** section. + +> [!NOTE] +> This tutorial uses SharePoint with Azure AD (Microsoft Entra ID) authentication. You will need administrative access to Azure Portal to complete the setup. + +Expected duration: 15 minutes + +## Prerequisites + +- Document Hub app installed and accessible +- Access to Azure Portal with permissions to register applications +- SharePoint site with appropriate permissions + +## Overview + +The steps in this tutorial include: + +- [Step 1: Register your app in Azure AD](#step-1-register-your-app-in-azure-ad) +- [Step 2: Generate a client secret](#step-2-generate-a-client-secret) +- [Step 3: Configure API permissions](#step-3-configure-api-permissions) +- [Step 4: Configure SharePoint in Document Hub](#step-4-configure-sharepoint-in-document-hub) + +## Step 1: Register your app in Azure AD + +1. Navigate to [Azure Portal](https://portal.azure.com) and sign in. + +1. Go to **Microsoft Entra ID** > **App Registrations**. + +1. Click **New Registration** and provide a descriptive name (e.g., "DataMiner Document Hub"). + +1. Set the redirect URI to your DataMiner application domain. + +1. Click **Register**. + +1. Note down the following values (you will need them later): + - **Application (client) ID** + - **Directory (tenant) ID** + +## Step 2: Generate a client secret + +1. In your app registration, navigate to **Certificates & Secrets** in the left menu. + +1. Click **New client secret**. + +1. Provide a description and select an expiration period. + +1. Click **Add**. + +1. **Important**: Copy the client secret value immediately. It will not be shown again. + + > [!WARNING] + > Store the client secret securely. You will need it when configuring Document Hub. + +## Step 3: Configure API permissions + +1. In your app registration, go to **API permissions**. + +1. Click **Add a permission**. + +1. Select **Microsoft Graph**. + +1. Choose **Application permissions**. + +1. Add the following permissions: + - **Sites.ReadWrite.All**: Allows the app to read and write items in all site collections. + - **Files.ReadWrite.All**: Allows the app to read and write files in all site collections. + +1. Click **Add permissions**. + +1. Click **Grant admin consent** for your organization. + + > [!NOTE] + > You must have administrator privileges to grant consent. + +1. Confirm that the permissions show "Granted" status. + +## Step 4: Configure SharePoint in Document Hub + +Now that you have completed the Azure AD setup, configure SharePoint in the Document Hub app: + +1. Open the **Document Hub** app in DataMiner. + +1. Navigate to the **Storage Backends** section. + + > [!TIP] + > The Storage Backends section is only visible to users with administrator permissions. + +1. Click **Add Storage Backend** or **New Backend**. + +1. Select **SharePoint** as the backend type. + +1. Fill in the configuration details: + - **Name**: A friendly name for this backend (e.g., "Corporate SharePoint") + - **Tenant ID**: The Directory (tenant) ID from Step 1 + - **Client ID**: The Application (client) ID from Step 1 + - **Client Secret**: The client secret value from Step 2 + - **Site URL**: Your SharePoint site URL (e.g., `https://yourtenant.sharepoint.com/sites/yoursite`) + - **Document Library**: The name of the document library to use (e.g., "Documents") + +1. Click **Test Connection** to verify the configuration. + + > [!NOTE] + > If the test fails, verify that: + > - The credentials are correct + > - API permissions have been granted + > - The SharePoint site URL is accessible + > - The document library exists + +1. Click **Save** to store the configuration. + +1. The SharePoint backend is now available for use in document categories. + +## Next steps + +After configuring SharePoint, you can: + +- Create document categories that use this SharePoint backend +- Configure metadata templates for SharePoint-stored documents +- Upload documents to SharePoint through the Document Hub app +- Integrate SharePoint storage with other DataMiner applications + +> [!TIP] +> For more information on creating and managing document categories, see [Document Hub app](xref:DH_Application). diff --git a/solutions/toc.yml b/solutions/toc.yml index d0c637069c..3076d18d33 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -121,6 +121,21 @@ items: topicUid: Jobs_Page - name: Web File Manager topicUid: Web_File_Manager + - name: dataminer.DocumentHub + topicUid: Document_Hub + items: + - name: Installing Document Hub + topicUid: DH_Installation + - name: Document Hub app + topicUid: DH_Application + - name: Document Hub API + topicUid: DocumentHub_API + - name: Tutorials + items: + - name: Configuring SharePoint as a storage backend + topicUid: Tutorial_DH_SharePoint + - name: Configuring DOM attachments on a network share + topicUid: Tutorial_DH_DOM_NetworkShare - name: DataMiner PTP topicUid: SolPTP items: From a48fbc365f50be2a58021b9b3da03698a51f9f79 Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Fri, 17 Apr 2026 16:06:46 +0100 Subject: [PATCH 02/15] [DocumentHub] Added release notes --- .../Document_Hub/Document_Hub_0.3.0.md | 24 +++++++++++++++++ .../Document_Hub/Document_Hub_1.0.0.md | 27 +++++++++++++++++++ release-notes/Document_Hub/toc.yml | 5 ++++ release-notes/toc.yml | 2 ++ .../Document_Hub/Document_Hub.md | 2 +- 5 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 release-notes/Document_Hub/Document_Hub_0.3.0.md create mode 100644 release-notes/Document_Hub/Document_Hub_1.0.0.md create mode 100644 release-notes/Document_Hub/toc.yml diff --git a/release-notes/Document_Hub/Document_Hub_0.3.0.md b/release-notes/Document_Hub/Document_Hub_0.3.0.md new file mode 100644 index 0000000000..386b3014a5 --- /dev/null +++ b/release-notes/Document_Hub/Document_Hub_0.3.0.md @@ -0,0 +1,24 @@ +--- +uid: Document_Hub_0.3.0 +--- + +# Document Hub 0.3.0 + +## Prerequisites + +> [!NOTE] +> This version requires: +> +> - DataMiner 10.5.9/10.6.0 or higher +> - [Standard Data Model Registration](https://catalog.dataminer.services/details/52173e49-9185-4772-9b60-c186ee365a81) 2.0.x or higher + +## New features + +- List document attachments - List all documents that are attached to DOM instances trough the DOM attachments and show the linked instance. +- Support Configuration shared drive - Configure Shared drive trough DocHub to support DOM attachments. +- Backend - Protect Sensitive Data - Azure App Registration's Client Secret (SP Integration) needs to be safely stored. +- Filter on Categories - For each storage type there should be a way to see and therefore test the created categories in the DocumentHub. + +## Changes + +*No enhancements or fixes have been added to this release yet.* diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/Document_Hub/Document_Hub_1.0.0.md new file mode 100644 index 0000000000..3ced5b0370 --- /dev/null +++ b/release-notes/Document_Hub/Document_Hub_1.0.0.md @@ -0,0 +1,27 @@ +--- +uid: Document_Hub_1.0.0 +--- + +# Document Hub 1.0.0 - Preview + +> [!IMPORTANT] +> We are still working on this release. Release notes may still be modified, added, or moved to a later release. Check back soon for updates! + +## Prerequisites + +> [!NOTE] +> This version requires: +> +> - DataMiner 10.5.9/10.6.0 or higher +> - [Standard Data Model Registration](https://catalog.dataminer.services/details/52173e49-9185-4772-9b60-c186ee365a81) 2.0.x or higher +> - [Categories](https://catalog.dataminer.services/details/c9666f3a-be26-42fd-83f2-6ee7fab4f11e) + +## New features + +- SDM 2.0 - SDM 2.0 API compliant +- Configure file size limits - Configure file size limitations on Categories, hard limitation or soft limitation with warning +- Give subpath to upload with category - (API-feature) Upload a folder with the catagory defined path and add a subpath to further more define your folder structure. + +## Changes + +*No enhancements or fixes have been added to this release yet.* diff --git a/release-notes/Document_Hub/toc.yml b/release-notes/Document_Hub/toc.yml new file mode 100644 index 0000000000..5a4b3d2588 --- /dev/null +++ b/release-notes/Document_Hub/toc.yml @@ -0,0 +1,5 @@ +items: + - name: Document Hub 1.0.0 + topicUid: Document_Hub_1.0.0 + - name: Document Hub 0.3.0 + topicUid: Document_Hub_0.3.0 diff --git a/release-notes/toc.yml b/release-notes/toc.yml index c1a9f043f6..4ac5c00eaf 100644 --- a/release-notes/toc.yml +++ b/release-notes/toc.yml @@ -39,6 +39,8 @@ items: - name: DIS release notes topicUid: DIS_RNs_index href: DIS/toc.yml + - name: Document Hub release notes + href: Document_Hub/toc.yml - name: EPM release notes href: EPM/toc.yml - name: IDP release notes diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index 58f45d6e3f..a7fdaddc2a 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -57,7 +57,7 @@ Document Hub supports the following capabilities by default without any customiz - **Link and Reference**: Store file references and URLs in DataMiner DOM objects and applications. Link documents to jobs, assets, contacts, and other business entities. -- **Search and Navigate**: Discover documents by name and categorie. Browse and organize files through a unified interface regardless of storage location. +- **Search and Navigate**: Discover documents by name and categories. Browse and organize files through a unified interface regardless of storage location. - **Read and Display**: View and open documents in third-party applications. Support common file types including jpg, png, gif, svg, pdf, docx, xlsx, and pptx. From fcce202c13c9b48b534139fb31c90b533cb21001 Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Mon, 20 Apr 2026 17:40:55 +0100 Subject: [PATCH 03/15] [DocumentHub] Added release notes Preview --- release-notes/Document_Hub/Document_Hub_1.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/Document_Hub/Document_Hub_1.0.0.md index 3ced5b0370..ef30e338e7 100644 --- a/release-notes/Document_Hub/Document_Hub_1.0.0.md +++ b/release-notes/Document_Hub/Document_Hub_1.0.0.md @@ -20,7 +20,7 @@ uid: Document_Hub_1.0.0 - SDM 2.0 - SDM 2.0 API compliant - Configure file size limits - Configure file size limitations on Categories, hard limitation or soft limitation with warning -- Give subpath to upload with category - (API-feature) Upload a folder with the catagory defined path and add a subpath to further more define your folder structure. +- Give subpath to upload with category - (API-feature) Upload a folder with the category defined path and add a subpath to further more define your folder structure. ## Changes From 06e5c9e85a8400559381ccef39109c7562fe732f Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Wed, 6 May 2026 15:29:40 +0100 Subject: [PATCH 04/15] DocumentHub added DevPack --- release-notes/DocumentHub_RNs_index.md | 10 +++ .../Document_Hub/Document_Hub_1.0.0.md | 5 +- release-notes/toc.yml | 1 + .../Document_Hub/Apps/DH_Application.md | 6 +- .../Development/DH_Development.md | 90 +++++++++++++++++++ .../Document_Hub/Document_Hub.md | 16 +++- .../Document_Hub/Package/DH_Installation.md | 1 + solutions/toc.yml | 4 +- 8 files changed, 122 insertions(+), 11 deletions(-) create mode 100644 release-notes/DocumentHub_RNs_index.md create mode 100644 solutions/standard_solutions/Document_Hub/Development/DH_Development.md diff --git a/release-notes/DocumentHub_RNs_index.md b/release-notes/DocumentHub_RNs_index.md new file mode 100644 index 0000000000..eb74df2d92 --- /dev/null +++ b/release-notes/DocumentHub_RNs_index.md @@ -0,0 +1,10 @@ +--- +uid: DocumentHub_RNs_index +--- + +# Document Hub release notes + +These release notes contain all new features, enhancements, and fixes for Document Hub. + +> [!TIP] +> For detailed information about dataminer.DocumentHub, refer to the [Document Hub documentation](xref:Document_Hub). diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/Document_Hub/Document_Hub_1.0.0.md index ef30e338e7..5a365e1a66 100644 --- a/release-notes/Document_Hub/Document_Hub_1.0.0.md +++ b/release-notes/Document_Hub/Document_Hub_1.0.0.md @@ -14,13 +14,12 @@ uid: Document_Hub_1.0.0 > > - DataMiner 10.5.9/10.6.0 or higher > - [Standard Data Model Registration](https://catalog.dataminer.services/details/52173e49-9185-4772-9b60-c186ee365a81) 2.0.x or higher -> - [Categories](https://catalog.dataminer.services/details/c9666f3a-be26-42fd-83f2-6ee7fab4f11e) ## New features - SDM 2.0 - SDM 2.0 API compliant -- Configure file size limits - Configure file size limitations on Categories, hard limitation or soft limitation with warning -- Give subpath to upload with category - (API-feature) Upload a folder with the category defined path and add a subpath to further more define your folder structure. +- Configure file size limits - Configure file size limitations on Categories. +- Give subpath to upload within category - (API-feature) Upload a folder with the category defined path and add a subpath to further more define your folder structure. ## Changes diff --git a/release-notes/toc.yml b/release-notes/toc.yml index 4ac5c00eaf..bb38031ebc 100644 --- a/release-notes/toc.yml +++ b/release-notes/toc.yml @@ -40,6 +40,7 @@ items: topicUid: DIS_RNs_index href: DIS/toc.yml - name: Document Hub release notes + topicUid: MediaOps_RNs_index href: Document_Hub/toc.yml - name: EPM release notes href: EPM/toc.yml diff --git a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md index 22e418979d..9d667bf197 100644 --- a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md +++ b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md @@ -60,7 +60,7 @@ The Document Hub app works seamlessly with other DataMiner applications: - **People & Organizations**: Attach profile photos and organization logos. - **Asset Manager**: Store and display asset images and documentation. - **Scheduling**: Link job documents and attachments. -- **Custom Applications**: Use the [Document Hub API](xref:DocumentHub_API) to integrate with your own low-code apps. +- **Custom Applications**: Use the [Document Hub DevPack](xref:DH_Development) to integrate with your own low-code apps. Document usage is handled by the consuming application, allowing each app to control how documents are displayed and managed within its context. @@ -86,11 +86,11 @@ Store documents on the local DataMiner Web Server for on-premises deployments. I ### DOM Attachments with Shared Drive -Connect to a Shared Drive in the network and store files dirrectly on DOM instances in DataMiner. +Connect to a Shared Drive in the network and store files directly on DOM instances in DataMiner. - Network Share Path - Authentication credentials (username and password) -- (optionaly) ISS Config for virtual webserver to have resolvable paths +- (optionally) ISS Config for virtual webserver to have resolvable paths ### Future integrations diff --git a/solutions/standard_solutions/Document_Hub/Development/DH_Development.md b/solutions/standard_solutions/Document_Hub/Development/DH_Development.md new file mode 100644 index 0000000000..ab4a28a726 --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Development/DH_Development.md @@ -0,0 +1,90 @@ +--- +uid: DH_Development +--- + +# Document Hub DevPack + +## About + +NuGet Class Library API to interact with DocumentHub functionality. It provides repositories and helpers for managing document categories, SharePoint configurations, and DOM sources, as well as a high-level API for file upload and read operations across multiple storage backends. + +## Solution Structure + +| Project | Description | +|---------------------|-------------------------------------------------------------------------------------------------------------| +| `DevPack` | Core library containing models, repositories, exposers, `DocumentHubApiHelper`, and the `DocHubClient` API. | +| `DevPack.Installer` | DOM installer that provisions module settings, section definitions, and DOM definitions. | +| `DevPack.Tests` | Unit tests covering CRUD operations, filter queries, and API validation for all components. | + +## Installation + +Install via NuGet: + +```bash +dotnet add package Skyline.DataMiner.Dev.Utils.Solutions.DocumentHub +``` + +Or search for `Skyline.DataMiner.Dev.Utils.Solutions.DocumentHub` in the Visual Studio NuGet Package Manager. + +## Getting Started + +### Using the DocHubClient API + +The `DocHubClient` provides a simplified interface for file operations: + +```csharp +using Skyline.DataMiner.Solutions.DocumentHub.API.DocHubClient; + +var client = new DocHubClient(connection); + +// Upload a file to a document category +client.Files.UploadFile(category, @"C:\Documents\report.pdf"); + +// Upload with custom name +client.Files.UploadFile(category, filePath, name: "CustomName"); + +// Upload to DOM instance +client.Files.UploadFile(category, filePath, domInstanceId); + +// Read files from a category +var files = client.Files.ReadFiles(category); + +// Read files with filter +var filtered = client.Files.ReadFiles(category, filter: "invoice"); +``` + +### Using the DocumentHubApiHelper + +For direct repository access and DOM operations: + +```csharp +var helper = new DocumentHubApiHelper(connection); + +// Create a SharePoint configuration +helper.SharePointConfigurations.Create(new SharePointConfiguration +{ + TenantID = "your-tenant-id", + ClientID = "your-client-id", + ClientSecret = "your-client-secret", + SiteURL = "https://contoso.sharepoint.com/sites/MySite", + DocumentLibraryName = "Shared Documents", +}); + +// Read with filters +var results = helper.DocumentCategories.Read( + DocumentCategoryExposers.Name.Equal("Technical Documentation")); +``` + +## Features + +| Area | Description | +|----------------------- |------------------------------------------------------------------------------------------------------| +| **File Operations** | Upload and read files across configured storage backends | +| **Storage Backends** | Supports local DataMiner storage and SharePoint integration | +| **Document Categories** | Organize documents by category with configurable storage types | +| **DOM Repositories** | Typed CRUD and filter operations for SharePoint configurations, DOM sources, and document categories | + +## Requirements + +- DataMiner System with DOM module enabled +- .NET Framework 4.8 \ No newline at end of file diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index a7fdaddc2a..190c67d5da 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -18,17 +18,27 @@ dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.se
- + + + +

+ Document Hub App +

- + + + +

+ Document Hub DevPack +

> [!TIP] > > - Before you deploy the Document Hub package, review the [installation instructions](xref:DH_Installation). -> - Developers integrating Document Hub with custom applications should refer to the [Document Hub API](xref:DocumentHub_API) documentation. +> - Developers integrating Document Hub with custom applications should refer to the [Document Hub DevPack](xref:DH_Development) documentation. > - For details about the changes introduced in each Document Hub version, refer to the [release notes](xref:DocumentHub_RNs_index). ## Who can benefit from dataminer.DocumentHub? diff --git a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md index 22d51cd752..f058a67150 100644 --- a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md +++ b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md @@ -24,6 +24,7 @@ During the installation, the following steps will automatically be executed: 1. Install/Update automation scripts. 1. Install/Update applications. 1. Install/Update DOM definitions. +1. Install/update DevPack (SDM API Helpers). 1. Initialize the system (fresh install). 1. Migration actions (if any). 1. Cleanup actions (if any). diff --git a/solutions/toc.yml b/solutions/toc.yml index e012047fa5..058288e66a 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -182,8 +182,8 @@ items: topicUid: DH_Installation - name: Document Hub app topicUid: DH_Application - - name: Document Hub API - topicUid: DocumentHub_API + - name: Document Hub DevPack + topicUid: DH_Development - name: Tutorials items: - name: Configuring SharePoint as a storage backend From 307df5e20c2dcbad21dcfaf5bf3dd18b767c8478 Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Wed, 6 May 2026 17:20:12 +0100 Subject: [PATCH 05/15] DocumentHub added Tutorials Getting started --- release-notes/Document_Hub/Document_Hub_1.0.0.md | 7 ++----- ...umentHub_RNs_index.md => Document_Hub_RNs_index.md} | 2 +- release-notes/toc.yml | 2 +- .../standard_solutions/Document_Hub/Document_Hub.md | 2 +- .../Document_Hub/Package/DH_Installation.md | 2 +- .../Tutorials/Tutorial_DocumentHub_Getting_Started.md | 10 ++++++++++ solutions/toc.yml | 1 + 7 files changed, 17 insertions(+), 9 deletions(-) rename release-notes/{DocumentHub_RNs_index.md => Document_Hub_RNs_index.md} (90%) create mode 100644 solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/Document_Hub/Document_Hub_1.0.0.md index 5a365e1a66..76bce87b14 100644 --- a/release-notes/Document_Hub/Document_Hub_1.0.0.md +++ b/release-notes/Document_Hub/Document_Hub_1.0.0.md @@ -17,10 +17,7 @@ uid: Document_Hub_1.0.0 ## New features +### Document Hub: Initial functionality [ID xxxxx] + - SDM 2.0 - SDM 2.0 API compliant - Configure file size limits - Configure file size limitations on Categories. -- Give subpath to upload within category - (API-feature) Upload a folder with the category defined path and add a subpath to further more define your folder structure. - -## Changes - -*No enhancements or fixes have been added to this release yet.* diff --git a/release-notes/DocumentHub_RNs_index.md b/release-notes/Document_Hub_RNs_index.md similarity index 90% rename from release-notes/DocumentHub_RNs_index.md rename to release-notes/Document_Hub_RNs_index.md index eb74df2d92..06e83b07bf 100644 --- a/release-notes/DocumentHub_RNs_index.md +++ b/release-notes/Document_Hub_RNs_index.md @@ -1,5 +1,5 @@ --- -uid: DocumentHub_RNs_index +uid: Document_Hub_RNs_index --- # Document Hub release notes diff --git a/release-notes/toc.yml b/release-notes/toc.yml index bb38031ebc..60f707d0c6 100644 --- a/release-notes/toc.yml +++ b/release-notes/toc.yml @@ -40,7 +40,7 @@ items: topicUid: DIS_RNs_index href: DIS/toc.yml - name: Document Hub release notes - topicUid: MediaOps_RNs_index + topicUid: Document_Hub_RNs_index href: Document_Hub/toc.yml - name: EPM release notes href: EPM/toc.yml diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index 190c67d5da..d8a6d24e0b 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -39,7 +39,7 @@ dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.se > > - Before you deploy the Document Hub package, review the [installation instructions](xref:DH_Installation). > - Developers integrating Document Hub with custom applications should refer to the [Document Hub DevPack](xref:DH_Development) documentation. -> - For details about the changes introduced in each Document Hub version, refer to the [release notes](xref:DocumentHub_RNs_index). +> - For details about the changes introduced in each Document Hub version, refer to the [release notes](xref:Document_Hub_RNs_index). ## Who can benefit from dataminer.DocumentHub? diff --git a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md index f058a67150..5a1c5db2d7 100644 --- a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md +++ b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md @@ -8,7 +8,7 @@ To install dataminer.DocumentHub: 1. Look up the [Document Hub package](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) in the DataMiner Catalog. -1. Check the prerequisites mentioned in the Document Hub [release notes](xref:DocumentHub_RNs_index) matching the package version, and make sure your system meets these prerequisites. +1. Check the prerequisites mentioned in the Document Hub [release notes](xref:Document_Hub_RNs_index) matching the package version, and make sure your system meets these prerequisites. > [!NOTE] > Minimum platform requirement: DataMiner 10.6.3 and above. diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md new file mode 100644 index 0000000000..125bcb7c0b --- /dev/null +++ b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md @@ -0,0 +1,10 @@ +--- +uid: Tutorial_DocumentHub_Getting_Started +--- + +# Getting started tutorials + +| Name | Description | +|--|--| +| [Configuring DOM attachments on a network share](xref:Tutorial_DH_DOM_NetworkShare) | This tutorial shows you how to configure a network share as a storage backend for DOM attachments in Document Hub. | +| [Configuring SharePoint as a storage backend](xref:Tutorial_DH_SharePoint) | This tutorial shows you how to configure SharePoint as a storage backend for Document Hub. | \ No newline at end of file diff --git a/solutions/toc.yml b/solutions/toc.yml index 058288e66a..a0b045aa9c 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -185,6 +185,7 @@ items: - name: Document Hub DevPack topicUid: DH_Development - name: Tutorials + topicUid: Tutorial_DocumentHub_Getting_Started items: - name: Configuring SharePoint as a storage backend topicUid: Tutorial_DH_SharePoint From ab2577f104dc06cd430a131bfcd21190d5b5911a Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Thu, 7 May 2026 16:54:42 +0100 Subject: [PATCH 06/15] DocumentHub: updated icons --- solutions/images/DocumentHub-devpack.png | Bin 0 -> 4252 bytes solutions/images/DocumentHub-internal.png | Bin 0 -> 4015 bytes .../Document_Hub/Document_Hub.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 solutions/images/DocumentHub-devpack.png create mode 100644 solutions/images/DocumentHub-internal.png diff --git a/solutions/images/DocumentHub-devpack.png b/solutions/images/DocumentHub-devpack.png new file mode 100644 index 0000000000000000000000000000000000000000..685fd028d4d77f2edf984ff9b40f52c7048b7b4b GIT binary patch literal 4252 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 V?lL|iv2FkW002ovPDHLkV1h5k*Vh05 literal 0 HcmV?d00001 diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index d8a6d24e0b..46c4364853 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -27,7 +27,7 @@ dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.se
- +

Document Hub DevPack From e9d5f0a70d05e720b3765a7cb02bbba67f333da6 Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Fri, 8 May 2026 11:09:39 +0100 Subject: [PATCH 07/15] DocumentHub: updated icons colors and fix svg --- solutions/images/DocumentHub_DOM.svg | 12 ++++++------ solutions/images/DocumentHub_SharePoint.svg | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/solutions/images/DocumentHub_DOM.svg b/solutions/images/DocumentHub_DOM.svg index 21012d76d9..a0cc554713 100644 --- a/solutions/images/DocumentHub_DOM.svg +++ b/solutions/images/DocumentHub_DOM.svg @@ -1,16 +1,16 @@ - + Shared network drive + stroke="currentColor" stroke-width="1.5" fill="none"/> + stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/> + stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/> + fill="currentColor" rx="0.5"/> \ No newline at end of file diff --git a/solutions/images/DocumentHub_SharePoint.svg b/solutions/images/DocumentHub_SharePoint.svg index 59a68368e6..88d35bf41f 100644 --- a/solutions/images/DocumentHub_SharePoint.svg +++ b/solutions/images/DocumentHub_SharePoint.svg @@ -1,3 +1,3 @@ - - + + \ No newline at end of file From 37c2f41f339bff927d2b3362bc6338b062970199 Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Fri, 8 May 2026 11:24:49 +0100 Subject: [PATCH 08/15] DocumentHub: updated categories to buckets on all MD files --- .../Document_Hub/Document_Hub_0.3.0.md | 2 +- .../Document_Hub/Document_Hub_1.0.0.md | 5 +++- .../Document_Hub/Apps/DH_Application.md | 28 +++++++++---------- .../Development/DH_Development.md | 24 ++++++++-------- .../Document_Hub/Document_Hub.md | 10 +++---- .../Document_Hub/Package/DH_Installation.md | 6 ++-- .../Tutorials/Tutorial_DH_DOM_NetworkShare.md | 20 +++++++++---- .../Tutorials/Tutorial_DH_SharePoint.md | 18 +++++++----- 8 files changed, 64 insertions(+), 49 deletions(-) diff --git a/release-notes/Document_Hub/Document_Hub_0.3.0.md b/release-notes/Document_Hub/Document_Hub_0.3.0.md index 386b3014a5..ebbd37e872 100644 --- a/release-notes/Document_Hub/Document_Hub_0.3.0.md +++ b/release-notes/Document_Hub/Document_Hub_0.3.0.md @@ -17,7 +17,7 @@ uid: Document_Hub_0.3.0 - List document attachments - List all documents that are attached to DOM instances trough the DOM attachments and show the linked instance. - Support Configuration shared drive - Configure Shared drive trough DocHub to support DOM attachments. - Backend - Protect Sensitive Data - Azure App Registration's Client Secret (SP Integration) needs to be safely stored. -- Filter on Categories - For each storage type there should be a way to see and therefore test the created categories in the DocumentHub. +- Filter on bucket - For each storage type there should be a way to see and therefore test the created buckets in the DocumentHub. ## Changes diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/Document_Hub/Document_Hub_1.0.0.md index 76bce87b14..0170589b24 100644 --- a/release-notes/Document_Hub/Document_Hub_1.0.0.md +++ b/release-notes/Document_Hub/Document_Hub_1.0.0.md @@ -20,4 +20,7 @@ uid: Document_Hub_1.0.0 ### Document Hub: Initial functionality [ID xxxxx] - SDM 2.0 - SDM 2.0 API compliant -- Configure file size limits - Configure file size limitations on Categories. +- Configure file size limits - Configure file size limitations on buckets. +- Give subpath to upload within buckets - (API-feature) Upload a folder with the bucket defined path and add a subpath to further more define your folder structure. +- Rename Categories to Buckets. +- Upgrading Microsoft Graph API to v5 diff --git a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md index 9d667bf197..d449fc033e 100644 --- a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md +++ b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md @@ -15,15 +15,15 @@ The Document Hub app is a comprehensive low-code application designed for admini The following sections and features are available in the app: -- ![SharePoint](~/solutions/images/DocumentHub_SharePoint.svg) **SharePoint**: Browse files stored in your SharePoint repository, quickly filter by name or category, and inspect the full metadata set for each file. +- ![SharePoint](~/solutions/images/DocumentHub_SharePoint.svg) **SharePoint**: Browse files stored in your SharePoint repository, quickly filter by name or bucket, and inspect the full metadata set for each file. -- ![DataMiner](~/solutions/images/DocumentHub_DataMiner.svg) **DataMiner**: Access files stored on your DataMiner side, use name and category filters to narrow down results, and review all available metadata details. +- ![DataMiner](~/solutions/images/DocumentHub_DataMiner.svg) **DataMiner**: Access files stored on your DataMiner side, use name and bucket filters to narrow down results, and review all available metadata details. -- ![DOM](~/solutions/images/DocumentHub_DOM.svg) **DOM**: Explore files linked to DOM records, find content by filtering on name and category, and view the complete metadata context used in your workflows. +- ![DOM](~/solutions/images/DocumentHub_DOM.svg) **DOM**: Explore files linked to DOM records, find content by filtering on name and bucket, and view the complete metadata context used in your workflows. -- ![Upload](~/solutions/images/DocumentHub_Upload.svg) **Upload**: Upload new documents to configured storage backends. Select the appropriate category to ensure files are stored in the correct location with proper metadata. +- ![Upload](~/solutions/images/DocumentHub_Upload.svg) **Upload**: Upload new documents to configured storage backends. Select the appropriate bucket to ensure files are stored in the correct location with proper metadata. -- ![Categories](~/solutions/images/DocumentHub_Categories.svg) **Categories**: Configure and manage document categories. Define which file types go where, set upload restrictions, and manage metadata templates. Available to administrators only. +- ![Buckets](~/solutions/images/DocumentHub_Buckets.svg) **Buckets**: Configure and manage document buckets. Define which file types go where, set upload restrictions, and manage metadata templates. Available to administrators only. - ![Source Configuration](~/solutions/images/DocumentHub_Settings.svg) **Source Configuration**: Connect and manage cloud storage repositories and local storage options. Configure credentials and access settings. Available to administrators only. @@ -33,25 +33,25 @@ The following sections and features are available in the app: You can upload documents to store them in your configured storage backend. The upload process guides you through: -1. Selecting the appropriate **document category**. +1. Selecting the appropriate **document bucket**. 2. Choosing the file(s) to upload. 3. Optionally give a new name to the file 4. Confirm the upload destination. -Once uploaded, the document will be stored in the configured backend for the selected category and will appear in the Documents view for all authorized users. +Once uploaded, the document will be stored in the configured backend for the selected bucket and will appear in the Documents view for all authorized users. -## Organizing with categories +## Organizing with buckets -Document categories streamline workflows by predefining: +Document buckets streamline workflows by predefining: -- **Name** to identify the Category +- **Name** to identify the Bucket - **Target storage backend** (SharePoint, Google Drive, local storage, etc.) - **Allowed file extensions** (e.g., .pdf, .jpg, .png) - **File size limits** to prevent oversized uploads - **Upload Location** to organize your files -- **Description** (Optional) to give some extra info about that Category +- **Description** (Optional) to give some extra info about that Bucket -Categories help maintain organization and security by ensuring files are stored consistently and with proper restrictions. +Buckets help maintain organization and security by ensuring files are stored consistently and with proper restrictions. ## Integrating with other applications @@ -101,7 +101,7 @@ Additional cloud storage providers may be supported in future releases based on System administrators can: - Configure storage backend connections and credentials. -- Create and manage document categories. +- Create and manage document buckets. - Set upload restrictions (file types, sizes, etc.). ## Searching and filtering @@ -109,7 +109,7 @@ System administrators can: The Documents view includes powerful search and filtering capabilities: - **Search by name**: Quickly find documents by filename or title. -- **Filter by category**: View documents from specific categories. +- **Filter by bucket**: View documents from specific buckets. - **Filter by storage backend**: Show documents from particular storage locations. ## Performance and scalability diff --git a/solutions/standard_solutions/Document_Hub/Development/DH_Development.md b/solutions/standard_solutions/Document_Hub/Development/DH_Development.md index ab4a28a726..50857b33af 100644 --- a/solutions/standard_solutions/Document_Hub/Development/DH_Development.md +++ b/solutions/standard_solutions/Document_Hub/Development/DH_Development.md @@ -6,7 +6,7 @@ uid: DH_Development ## About -NuGet Class Library API to interact with DocumentHub functionality. It provides repositories and helpers for managing document categories, SharePoint configurations, and DOM sources, as well as a high-level API for file upload and read operations across multiple storage backends. +NuGet Class Library API to interact with DocumentHub functionality. It provides repositories and helpers for managing document buckets, SharePoint configurations, and DOM sources, as well as a high-level API for file upload and read operations across multiple storage backends. ## Solution Structure @@ -37,20 +37,20 @@ using Skyline.DataMiner.Solutions.DocumentHub.API.DocHubClient; var client = new DocHubClient(connection); -// Upload a file to a document category -client.Files.UploadFile(category, @"C:\Documents\report.pdf"); +// Upload a file to a document bucket +client.Files.UploadFile(bucket, @"C:\Documents\report.pdf"); // Upload with custom name -client.Files.UploadFile(category, filePath, name: "CustomName"); +client.Files.UploadFile(bucket, filePath, name: "CustomName"); // Upload to DOM instance -client.Files.UploadFile(category, filePath, domInstanceId); +client.Files.UploadFile(bucket, filePath, domInstanceId); -// Read files from a category -var files = client.Files.ReadFiles(category); +// Read files from a bucket +var files = client.Files.ReadFiles(bucket); // Read files with filter -var filtered = client.Files.ReadFiles(category, filter: "invoice"); +var filtered = client.Files.ReadFiles(bucket, filter: "invoice"); ``` ### Using the DocumentHubApiHelper @@ -71,8 +71,8 @@ helper.SharePointConfigurations.Create(new SharePointConfiguration }); // Read with filters -var results = helper.DocumentCategories.Read( - DocumentCategoryExposers.Name.Equal("Technical Documentation")); +var results = helper.DocumentBuckets.Read( + DocumentBucketExposers.Name.Equal("Technical Documentation")); ``` ## Features @@ -81,8 +81,8 @@ var results = helper.DocumentCategories.Read( |----------------------- |------------------------------------------------------------------------------------------------------| | **File Operations** | Upload and read files across configured storage backends | | **Storage Backends** | Supports local DataMiner storage and SharePoint integration | -| **Document Categories** | Organize documents by category with configurable storage types | -| **DOM Repositories** | Typed CRUD and filter operations for SharePoint configurations, DOM sources, and document categories | +| **Document Buckets** | Organize documents by bucket with configurable storage types | +| **DOM Repositories** | Typed CRUD and filter operations for SharePoint configurations, DOM sources, and document buckets | ## Requirements diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index 46c4364853..634fe6a991 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -47,11 +47,11 @@ Document Hub serves diverse user groups across your organization: - **IT and Security Teams**: Implement centralized document management with control over storage backends, access credentials, file format restrictions, and compliance policies. Support customer-managed SharePoint or on-premises storage options like DataMiner Webfiles or DOM Attachments. -- **System Administrators**: Configure document categories for file grouping with file upload limitations, storage locations, and file extension rules. +- **System Administrators**: Configure document buckets for file grouping with file upload limitations, storage locations, and file extension rules. - **Content and Asset Managers**: Streamline workflows for organizing and retrieving documents across the organization. Normalize graphics formats for consistency and for automated processing. -- **Application Developers**: Integrate Document Hub capabilities into custom DataMiner low-code applications using the NuGet API. Retrieve file information, upload documents, and manage categories programmatically. +- **Application Developers**: Integrate Document Hub capabilities into custom DataMiner low-code applications using the NuGet API. Retrieve file information, upload documents, and manage buckets programmatically. - **Business Operations Teams**: Access documents from within operational applications such as People & Organizations, Asset Manager, and Scheduling. Attach job documents, profile images, asset photos, and service icons without leaving the application context. @@ -67,15 +67,15 @@ Document Hub supports the following capabilities by default without any customiz - **Link and Reference**: Store file references and URLs in DataMiner DOM objects and applications. Link documents to jobs, assets, contacts, and other business entities. -- **Search and Navigate**: Discover documents by name and categories. Browse and organize files through a unified interface regardless of storage location. +- **Search and Navigate**: Discover documents by name and buckets. Browse and organize files through a unified interface regardless of storage location. - **Read and Display**: View and open documents in third-party applications. Support common file types including jpg, png, gif, svg, pdf, docx, xlsx, and pptx. - **Normalize and Format**: Apply format conversion and normalization to graphics files at ingest to ensure consistency across standard solutions. -- **Organize with Categories**: Create predefined document categories to streamline workflow. Specify target platforms, allowed file extensions, and file size limits for each category. +- **Organize with Buckets**: Create predefined document buckets to streamline workflow. Specify target platforms, allowed file extensions, and file size limits for each bucket. -- **Integrate with APIs**: Use the Document Hub NuGet package to develop custom integrations. Retrieve file information, manage categories, and upload documents programmatically. +- **Integrate with APIs**: Use the Document Hub NuGet package to develop custom integrations. Retrieve file information, manage buckets, and upload documents programmatically. Example use cases: diff --git a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md index 5a1c5db2d7..a7b98d456b 100644 --- a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md +++ b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md @@ -46,10 +46,10 @@ After the installation completes, you will need to configure the Document Hub ap - Connect to your SharePoint repository, configure your DOM attachments or use the standard DataMiner Webfiles. - Provide the necessary credentials and access information (if applicable). -1. Define document **Categories** to organize file types: - - Specify the target storage backend for each category. +1. Define document **Buckets** to organize file types: + - Specify the target storage backend for each bucket. - Define allowed file extensions. - - Set category rules to keep files organized. + - Set bucket rules to keep files organized. > [!TIP] > Refer to the [Document Hub app](xref:DH_Application) documentation for detailed configuration instructions. diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md index 4985380dcf..91311157e2 100644 --- a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md +++ b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md @@ -22,9 +22,17 @@ Expected duration: 15 minutes The steps in this tutorial include: -- [Step 1: Prepare the network share](#step-1-prepare-the-network-share) -- [Step 2: Configure the network share in Document Hub](#step-2-configure-the-network-share-in-document-hub) -- [Optional: Configure browser-based access](#optional-configure-browser-based-access) +- [Configuring DOM attachments on a network share](#configuring-dom-attachments-on-a-network-share) + - [Prerequisites](#prerequisites) + - [Overview](#overview) + - [Step 1: Prepare the network share](#step-1-prepare-the-network-share) + - [Step 2: Configure the network share in Document Hub](#step-2-configure-the-network-share-in-document-hub) + - [Optional: Configure browser-based access](#optional-configure-browser-based-access) + - [Create a local DataMiner user](#create-a-local-dataminer-user) + - [Configure IIS permissions](#configure-iis-permissions) + - [Create an IIS virtual directory](#create-an-iis-virtual-directory) + - [Access attachments via browser](#access-attachments-via-browser) + - [Next steps](#next-steps) ## Step 1: Prepare the network share @@ -76,7 +84,7 @@ Configure the network share directly in the Document Hub app: 1. Click **Save** to store the configuration. -1. The network share backend is now available for use with DOM attachments and document categories. +1. The network share backend is now available for use with DOM attachments and document buckets. > [!IMPORTANT] > DataMiner will store and retrieve attachments directly from this network location. No IIS configuration is required for basic file storage and retrieval through the Document Hub app. @@ -156,10 +164,10 @@ Example: `https://dma.example.com/shareRedirect/document.pdf` After configuring the network share backend, you can: -- Create document categories that use this network share +- Create document buckets that use this network share - Configure DOM definitions to store attachments on this share - Upload documents to the network share through the Document Hub app - Link DOM attachments to jobs, assets, and other business entities > [!TIP] -> For more information on creating and managing document categories, see [Document Hub app](xref:DH_Application). +> For more information on creating and managing document buckets, see [Document Hub app](xref:DH_Application). diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md index 7af188ea32..be86d523b6 100644 --- a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md +++ b/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md @@ -21,10 +21,14 @@ Expected duration: 15 minutes The steps in this tutorial include: -- [Step 1: Register your app in Azure AD](#step-1-register-your-app-in-azure-ad) -- [Step 2: Generate a client secret](#step-2-generate-a-client-secret) -- [Step 3: Configure API permissions](#step-3-configure-api-permissions) -- [Step 4: Configure SharePoint in Document Hub](#step-4-configure-sharepoint-in-document-hub) +- [Configuring SharePoint as a storage backend](#configuring-sharepoint-as-a-storage-backend) + - [Prerequisites](#prerequisites) + - [Overview](#overview) + - [Step 1: Register your app in Azure AD](#step-1-register-your-app-in-azure-ad) + - [Step 2: Generate a client secret](#step-2-generate-a-client-secret) + - [Step 3: Configure API permissions](#step-3-configure-api-permissions) + - [Step 4: Configure SharePoint in Document Hub](#step-4-configure-sharepoint-in-document-hub) + - [Next steps](#next-steps) ## Step 1: Register your app in Azure AD @@ -114,16 +118,16 @@ Now that you have completed the Azure AD setup, configure SharePoint in the Docu 1. Click **Save** to store the configuration. -1. The SharePoint backend is now available for use in document categories. +1. The SharePoint backend is now available for use in document buckets. ## Next steps After configuring SharePoint, you can: -- Create document categories that use this SharePoint backend +- Create document buckets that use this SharePoint backend - Configure metadata templates for SharePoint-stored documents - Upload documents to SharePoint through the Document Hub app - Integrate SharePoint storage with other DataMiner applications > [!TIP] -> For more information on creating and managing document categories, see [Document Hub app](xref:DH_Application). +> For more information on creating and managing document buckets, see [Document Hub app](xref:DH_Application). From ac594df927dedf7cec66976a266bc4f134a5e627 Mon Sep 17 00:00:00 2001 From: Sergio de Abreu <111563896+saatsky@users.noreply.github.com> Date: Wed, 13 May 2026 16:25:24 +0100 Subject: [PATCH 09/15] DocumentHub: Initial Documentation for release 1.0.0 --- .../Document_Hub/Document_Hub_0.3.0.md | 2 +- .../Document_Hub/Document_Hub_1.0.0.md | 25 ++++-- .../images/DocumentHub_App_Main_Overview.png | Bin 0 -> 288888 bytes ...Categories.svg => DocumentHub_Buckets.svg} | 0 .../images/DocumentHub_Solution_Icon.svg | 57 ++++++++++++ solutions/solution_index.md | 2 +- .../Document_Hub/Apps/DH_Application.md | 22 ++--- .../Development/DH_Development.md | 83 +----------------- .../Document_Hub/Document_Hub.md | 30 +++---- .../Document_Hub/Package/DH_Installation.md | 14 +-- 10 files changed, 111 insertions(+), 124 deletions(-) create mode 100644 solutions/images/DocumentHub_App_Main_Overview.png rename solutions/images/{DocumentHub_Categories.svg => DocumentHub_Buckets.svg} (100%) create mode 100644 solutions/images/DocumentHub_Solution_Icon.svg diff --git a/release-notes/Document_Hub/Document_Hub_0.3.0.md b/release-notes/Document_Hub/Document_Hub_0.3.0.md index ebbd37e872..c2ce68522a 100644 --- a/release-notes/Document_Hub/Document_Hub_0.3.0.md +++ b/release-notes/Document_Hub/Document_Hub_0.3.0.md @@ -2,7 +2,7 @@ uid: Document_Hub_0.3.0 --- -# Document Hub 0.3.0 +# DocumentHub 0.3.0 - Preview and Deprecated ## Prerequisites diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/Document_Hub/Document_Hub_1.0.0.md index 0170589b24..63cca0efae 100644 --- a/release-notes/Document_Hub/Document_Hub_1.0.0.md +++ b/release-notes/Document_Hub/Document_Hub_1.0.0.md @@ -2,7 +2,7 @@ uid: Document_Hub_1.0.0 --- -# Document Hub 1.0.0 - Preview +# DocumentHub 1.0.0 - Preview > [!IMPORTANT] > We are still working on this release. Release notes may still be modified, added, or moved to a later release. Check back soon for updates! @@ -12,15 +12,24 @@ uid: Document_Hub_1.0.0 > [!NOTE] > This version requires: > -> - DataMiner 10.5.9/10.6.0 or higher +> - DataMiner 10.6.5 or higher > - [Standard Data Model Registration](https://catalog.dataminer.services/details/52173e49-9185-4772-9b60-c186ee365a81) 2.0.x or higher ## New features -### Document Hub: Initial functionality [ID xxxxx] +### DocumentHub: Initial functionality [ID 45528] -- SDM 2.0 - SDM 2.0 API compliant -- Configure file size limits - Configure file size limitations on buckets. -- Give subpath to upload within buckets - (API-feature) Upload a folder with the bucket defined path and add a subpath to further more define your folder structure. -- Rename Categories to Buckets. -- Upgrading Microsoft Graph API to v5 +**DocumentHub** is a DataMiner application that gives your team a central place to organize and access documents directly within the DataMiner platform. +This initial preview includes: + +- **Document Buckets** — Create and manage named storage areas (called "buckets") to keep your documents organized. Each bucket can have: + - A name and description + - An upload path + - Allowed file types (e.g. only PDFs or images) + - An optional file size limit +- **File Uploads** — Upload files directly from within DataMiner to your storage of choice. Three storage types are supported: + - **SharePoint** — Store documents in your organization's Microsoft SharePoint environment. + - **Local DataMiner** — Store documents on the DataMiner server. + - **DOM Attachments** — Attach files directly to native DataMiner Object Model records. +- **Create, Edit & Delete Buckets** — A guided on-screen form lets you set up or update a bucket in just a few steps, with instant validation to prevent mistakes. +- **Browse & Query Files** — Files stored in DocumentHub can be queried and displayed in DataMiner dashboards and low-code apps. diff --git a/solutions/images/DocumentHub_App_Main_Overview.png b/solutions/images/DocumentHub_App_Main_Overview.png new file mode 100644 index 0000000000000000000000000000000000000000..6256052bbdba8c73f024db912e27c414e5e6d794 GIT binary patch literal 288888 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 z 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�j=5VjGceBryqxIjZPi`& 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
YXW{isF)9BLpK>?*C1=|y2?~yy1ukyI2?Q@E5{3 z^LTN7?0ObLDQl_4cs6(TlAWF1cBUp45-tQru^`2AGGcArgiC*<-U#gzNC zDQ+T3AW{V!QVb2n#c!uL!?H=>&_^AivfAcHNeaz-ukX71L#XnLi<7-+q_y1f^0IiY zIA>!d#X?AHIg7Z1=#=k&X5#P9sTiowG6(oy8}OK zHcM^Ok!BLA8{;E#lK(CmYovam19++VRU2$JR2~U9N}>`B@l>(?x^lnKI{z5OV&Khy z%({r(G4t)i5U0Wp_^@z@O?k@?^?txPOdcp}js!N|aKMa+lH@|5!$ zv+cUuK{|8&?zr`=HJMp0A733K8`1^+l)_W1TF3{uYvxBi3b}s^d+NZwi8rawY^wRw zQ=5qr`t)I=NQP(=ogb+mo2_VK&JybDMDiO-6Z0h(Wdfz$$o~eLMF4!7DQmMv=Qn19 zF7ng#k($*PHDP3!d-1v7%#d$N`6C#VmOG`{&EK!(9E;!nQg}H^mIJh_@{F0$&qH)# z)`2;E7xGDRyFQWWQbco?tBClKHAe~(7F>`YnyT{P1-q;}N<0vphGgtgH`H0);XeQ- zqupjNQlFOD+-q!b5MDm=NC=M)-*MYg&$A5rhKpKJP>M=ezh@j zFvY3opE=BJxhrZhoH4ZB;GEKAB$lP>y=+RocF0;rb&%1C3-SMYWHE-A$BH(+I_W!6 zugWXB!F?qz$C8+>Y(<;S4(Plen}CCFvLej7Rvwo0k9&rK2wZdrzo`@0Ygg#%9+^kZ zP76ibb=PZ8nL+Zfp}ESHv`_46Aw*x*F)ycVtjR;z=K^!i^nZ`a5j!3GdO-(oBZO9e z(^Gi;X>C3a4g3gkKXv4%E&cvyx<5>sVz4q~dw?5@eK7^&h4Zm*1jKqnGTNZ=8}Uwy zKQVjSJ5jz5>ZJtm*x3$^?q3j?t}&~I(o94mZ8U$M)6#Mic3o_Hj~;leIJWf$_RB>6 z-75YUV@eT;KH}`Lz9@ZhMWi)0Gc8-FZ8mb@eEzRt?F~E4Zkkd>X?29HK)1B`HI?rL zYR`E_1->9`P(|-LF2+LCzrvH}6lPNO?qp6bX}|VqYwua>iMhqdkACICF3Yxa`rG4z z0W`>2T8z^=%@r>|N!sX=``sex*$i91=y6!C`B|eL_G#PM4TzUo-&{TG%m9}Gi$e9_ zC~|?SPk-NEtN*aB?JxQMSLkqG>d_aSFT4BN*?R?3l{pbMKDE!RqlVrOuSHKc6b}|Tk*kkDr~KO=JX>K z_@p&iU%!JLtLrzqx+z(*(}1cGL|xVw&p@MdveO=2kz@ff6eQ)Ryy(AFy#ZXKsZ1EH znq7x#cR0Wu=B!`~ik&}T9#Oyy-rlmdM*QH(!{9HX%>XxbwG7n30>&93+}LjN(NBY@ zPQ`Nxe9Yz*c84C|D%d^y3vP_!ZMa&96 zb&T5!0+~xVmG0jPyCm>h0#?mx02XzwHbse+{nHNr3$N|=WtisftU&M2)PfcOV{nF6 zc-@Z2k69-Mlf{YDlxdtPf6f@8);ifw-`d0a-Cc~giJ9gFHsp?Z(&>;6QRn;Q@! z+~Wb!H|c9#@cZG-i&8AY10VH7$#yArJO=-PM%9HV7(fF?MR`|#RApbw^sRy1gNaEJ zGHLD$`5(lTo_|8O^jvpvt{0@mjdz=0TiH0gN*o5Di?U?eOdFH_f1h0B!9AVxnn4$4 zOMNh>rX&zwt3?OcSB}gI^AEZWkf5T zIXeTo+tCs2kcCEp+iM`RgP}7l>W8|JH49%Q6lEa>owEd{&G?bLi+&L1ZkjuFi*$SR z1r0=#&3MhKKUPh#0rs@Fm=cZQPiDj4XRiTo2^$;NsRIf>0wdX&uTNJ&^vm#a`s-t(b4-nF%nzz>424lzZ<&20}W6le>FSY`g)YbF_cN4=ZUzmf*f z5?G0%A=k&0DvnIbb@2eE9u)iu4AMWbNRbp_0uR@0`06q%5 zdmn{RbZ5}1W+Z7@Hh1&GB1%Wn^}V&}aorE@gLGRSC$f|$?RKU%b%}$IeD3uBzmPvfz9%WqfF@u_3QYuSl;8Bg@;L&Uc(D8cOIV z65XC)<15jui^A^if@!MW@+znTuySnp3V{v46{`2!4@uj#C=zs1V6i0nKYY6CJje}? z_PzRBq*;7@oZMzKpBHgHV0hb0Zg{6zMAW^<(U{^qeDQqmGu-R*k?ve~)BKIZu*jbG z?P=XWU;Y#CWhv^#>(>CucP>olZSqiM?L9UJ zG#46K$;zeD=PHdWN@}VmK4u?2kX-t3p+-%K=FzL)?XIE;JSBP;`1fc{$Gc@pGL<^yC!T+lFqbwZ> zjjKWBA`D|@VR%Zaugf&qITTpZdrnlJN4%R5uMC@;6U$~|NK|~r81@RhfDE+4-naLayj5xo{l zv@cnduv;Ayiwlzn8-1DW)euL&e-E9Wi28aX)z-x8;T`umg{*G{en$SuZQI=xzP&VE zl}mDlHw?(8#sf7fV((kE=H=Y@uJA=uXilndI>IbiRFH&<=&_!?~9H- zC!o9zIozJb0I-#uvl?%Y)#c?S@V#@~9hH^?;Cw zKUrHZ!H|1qC$DVcXGMeIxSKnp(;V+k8VVQ7=>d71Nd3QwGLPqoBM`|SGJ`DbOL6He zE=-=sM^bwFh68c%*5mIGHueiJ9*%`XZ{3*W;Mm#im^lfF&M$)F2ES6t{0Ejq$?ot( zyw{@Miz=u%G(6FIS{c1S(D-yiKEINLbTHk5*?~(Dk@yPZ(S}==9!IMA&@}&y&xlWb zv?a1%Cbdc+8vi{F7PSjn#u`D$Gr-EVOBMV(j}W~62wnh+_}qFZOX|?r^q9JmRkfg+ zm(=+5LIVdY!eMEV#>&p7lgX=7;GZTETgx^l<7a-notlkqKHuCgX*bdBC;`$MB}^w< z#=KL5K|;G?NL&x-4+*Qu&m14FsvKZsXhl;DJ0P+T0ZkSefvCGZ`h$!%v>I+(`u z-8KE4TM!jH;69aw5r(AYUmS&kya=$8n6zJbuPlEc%S3iv}Lh9>sMV1XID>rdi zuE$j&Ik?!n2`V~}X~6BTuNTg3Hs*(pys)Ti_ywsVrI@DMpzGJ9Dbom-!z@4i6oVz` zQVpxljE@lqV3rBbhu;8;d16Nd5X;Rp=~2#aSREKJeL@ci%Ys+!tybi}vo z4tRR57jz9xHpIM)DN-g!+izH@6*WVVB*?LUT_90e;j{IErJE+rjC_2W-xd7QPq_ap zg;FNFFa&1G5{E6hX} zpWvZJ$8Y-`EgQsre816qy~G)^*`+45LR7w%pq0^X49^%;@;$JbF}q?$oM<2X>7;P& zkn=eBRN&mtY6y=|@?vMqID7)`BIqO4PhFz8gCstXsE2i;Q3iFX@Lhjk`O6HN^k@`c zJYsaPIM-@QU)1hF3&LO8`1gbcJH}xmgG9{jFMHjXIA4&!eJa?!<%S(i&$nA+#sl%% z2z$>1q5JtDjPY5wTSS|SaOb2fZ?iUH)qo(;I-nJ+ zfc|tj8NeMyv?dJ;1BT#+_03%~Fd}8%GP}?kLr(H#l z_gO$K42Qi>T70gsH@+rh=bu{2AAwlpZav|A-PcdRzn-O|nuhvG9)}PeF?DqOrcq2y zA3yxFmLXC0U?DstMYJI>CiCc7aCqQJ3WDS=l6%JGXh@wUF*d4q8Nr1;Wjd#Knj#o7 zcPpkhV(e(-UpAcHSq`pxPEj$>KJ)jao_xq^s<#NqXMKGCblp&V8K7pv=88 zN7bQ9WWIgrtY(8|g)^;r@P;+qAi!(FuJeo%TextJ&-<@n55r|G(GTf6P)XCpTV>oy z_&fyD@wJyti7S(J&BSumN1!9GKZD;T0wr=q%b+jaeO|Fa`1jTP8Hev#)4Wq3z2C~3 z_zmfN<373fiJal;ml40%a^H;s?=#)`rR@3Z-~r%cnm0UVojdPAj7>G9gII9JKzVZ< zBwE^V=@X^%ph}QRs0@raGW${9c0WU8V4$2b&id|ssG+MG2t*c`SRsyj#OB*Yoj_^$ zHelwFTl{u=4WNHX08X@21HTOC`M958@K3VCEaD+lDVDs&FUXtc^cb@}-{cxfCUsU% z8QtjmS~@e^NdmX(^<4k%%$)wV)_KYAQ=XYuLpOfQXF~FJDwtaju zsf0eY9``s=(%#^Jq}pQ0WYpkkp=R+n`HUBG^f3GT+KH~}oJ5&8MFgXyn{ zv9Lx?J~o;;aGVb^TJ@RBcrb&R{nXSH{}M&Die;HI4gkxm)5hYR3{QVyna~Z7Qv`U#m!<5nJe3i8`cjOV%;WT zukgeHk$#x|(SN?~2bp0tCU<#qpTTe{qeg-V@Gou3+P*(+J;kBT`()?Pd32MjWQQ!> zkpFS|*bW;9_wf5s+wVgx&2Izd?If3;SCHF!fG3ty>>%l+Pu6eGv7s_;r#b?En!}tV zYj*UptntzlB>rVMl55xOwDm0G{=*}2B;UgUM>;lJWOL%uH+_6f9FTyh{pKxZm>E;K z!-EXQ{_;&4h+@MTR64pkVF`99oET^8CGCSHLM0O;t8Yx$G==sX1>RJC-WacEXCd`6 z;`5kXh?9@ir`+KG6~5;MYpj@HB6RMLQ2Ooc10re=#TIIV_yLQLH|t~qwv&2>lg5#S zBYCWOVA^YPaR2laJ&=%p{?(=L9MrW4g32M3x}0-7`^FFXOO>`ygcw7W*sW%=hT%apW`KB3Os5@S^shApy4x9xp(cJ4A`G-(?t zxe2bqK4aDPyqvy*oQ1!m2^OmHQW3j(Lgr{#rT-k)7-W9&LL)QT_kSm$7fD#{E%XJw zL7mhHEIX@$UZjI<+o|S4gO;U2%*;URu97LjfD}YYh~>lM)~`^;GC8hk6ab zOiVWuHqPf9`5OzCyu|+IE3S1BDlUOZ*q3tei>GWl&1eqTx^JmHCuwSG1PHsKW9Uwy zv`yv_sDHxm{~(bfm!TGS!;&Ew*c!Ao+z?C??=tOLQZy0!OuC8&xBaUat=Z7z;YCl( zK&g47$MT8g85b|ajvKZ1?_-pOZuodOQw{!}9btCTWOj90u5o?p@Ph`MAqF&D;RUn~ zGqk5~Y`TZj(@y~G#Doo7F|Hofat3GuaF?e???0U=&?CeCIR7B9n1?eZ!eO@=q zdjDPnvb9X_y_y(u`2BCpLWF~8u#aU87X$)|U42;+0T(H@Sp4v0(}6!@3mCNe){d5) zJ)9auzstLssZxZ?*8XQ4R&C&mmgzIQ=zXYxbyS$VHxlsIIUzXwgrqzY-Sn@jweH;% zFMZSJe`=awH=nAutG%Q?EkG@hIO5bt!!-~yy@9OMw8;a{9%?8GFGA3En{7yKsPv`# z&pZ$!bCTdgM4M0`@>Fp^+Q2s?Q*rT1Y-J2zn!*k3?q*oPq&!;S3j5;o~p8y` z+Y=6-zd^)a-_A-OhMZA!ckhWr7mGR3I;8CVLCi)$MUnno!S%58BF)^fPZMXD+w0UF z&JWh%1ySnf2A2Rw*WMxG0xm;$U1Uv%LUBQ3YWGWsa|d-)pfj zZUVvIWwzDTjg;YfJ^>ze(XyyxWH_4)}GwD;fhZq={1PN7?# zq7_-0W%o(?3HXsd!n8BVPPD?4(pOk+ThQlI3Opj#FE5Rd z!-`*CqM7#QjzOX$#<+D@Yh+DStH!GfwYn=3XYEcP52I;PNvH5QUJTS{NUNz4{w+`} zrgn&IM*{=K$yQfTEA#cU`buuiUXFU?SUBX#<9>SGzSkcY%dEqo){q_>@bDotpFs6G zxQwiRz0K1B8|Sr(48y%BG3lnm(;>78IdS_D<$$k+as6v>D`qZ6i@Jfj{PpD<1J}X! z?a|SWKMQYsnrjx>Advd#z`#J1Kd)!+4AkzwG}Po4eYst3O};8eRx$mY<26n5>aRe^ z%`c44;}NH(<;?5}a(SK)mEqtJe7dvc4wSf=GW*;xp&oB^l)9+)6)~GPh5%v$W1LT*q46> zp5~BA&-lV;k55mby%Jda!Mq0V92__Sw!UevDLE$NNape?qEE9(#!Hi*gJSgLi6Z!} zYymZA3F3yXE1YgIT~qjLa@Y%TIno2EFH>@G7mN|FjCB##okuSf82(6pHE6-hX6P&K zKIh80=e6g@%LhpbG8AE~F)^?D%HqcDICOZWwb01X!;SqSg2M54Yx6~v!$OW_rj(71 zh`m%I#LjlU`QS3<_3e3Rw{5Lk{wQYNbF~6_nsivirEWQF$aEh9MNvrK|O$w0_QSI${^gE*oPM;1abyPX*n3LV+%_aLy zohDvw30s-g36~0@kukik)vU?mmH*ICTN17dy=d3JxgOaz9>xLmdJW+=u?v!@{Y54Q{QIW}BLCTL(DX z;^LKrzYcITWoHDRbpw|QD*E;J2#!lb3iyhgVY5G{-vz7pF*r52S~iCvnoqF}POPsW z8_R0v!|rW@OGp2JrF5pj`Eh4&@PJAfR0nBIS<8+N_TUms%**z6&BtS8BS)Y5*VftL z&ugUw((OrpkqW(0C#Pfi${oP~X?ALRy*WZ|3UOTJ^F3J2Io~ZlTcP)=<*sHn@lv8b zbC^MQ({7vVX}Os*x80fU`!W^pF;B|5xHm5pGw*w$#-?ANqFNZL0-9L5kOo&yr>WzT zd#?r#vU#W$NTYNOKiO~E4JKfST(NAEu<<(V+VV_cGfdGA9Er+yFa7evxmOCXp(Oyq zd5nim0EaCFZ(RtC)*EMizX4q+GFGtuG?^uPRdfAM9ZY16+SP5gcNc%b|k8lPK zymB3d=Rw$~XYr)z+FC4vT{fY>>5MIneTnq-lj^93$*=<6aiiObM}sO2wp8jhLRsZL z|Hf=ulRj7+g~8y1%>C@x`83_EgOdUKRd7E#9Wv)X^`d}TF^ws^3TtaqwA!$KzZJuG z+&MTZ_yhnLnq(`k%bJ?2QWl&t8J#}ibY(4-iep(Z&-p3-c1wvCXbW#t6-p=E%P5b1 zGE?naqmIO`JiJHfnY2=bsss0Y)@*9(YM(toXQeiX>Tp~)#sbIPFxpg#rG*ODE8L=S z7AOU;$Kl(#lW2E>;Ab}&ZqFP*>OP*)-SN`K;2p{PdWd?lhV06rV^uH+K_^S$iai=R z`n-JrpKA5NBIzs`d7UcQyqkD@ataD?dRhkdP&okfJl9IwpoeR2>+`3_x}Sg#gipHv zETENbWha2X9d2kx5U{rVTS^**;JUbDjcQ88s3aSW@{Pj+_n@rqN~kISU;*ifL7bvBT$J4&rEAx8DI zM-KHn79i3lCv+tXcO<{C2;G#K#(sRTNf>)8OUV2#m(Tdn{Z}v}zm2X^ zlsy{oJSWhGl2Zp;=RP)3;13Vg$J1a}-QB5K`wO!zDdK;*6k6mq#Z9v0>6Upi9k?uF zWnO0ulzqz_RgNk4bTX5O^y9xqfE8xG`L8f%9`g-8rpwtW!CQ1fh8k|@(gOxX+X5dG z@>2Gp672*0vl(YRq?_$p6>HhAwsJD{$*I5Qb=v5@hkp$Zj|^`Cj&pdmWzPqXRa0z` z`p$)$G5xdXtbY3O$r&&7@In4aT1O43T8fyL@I`*XynyG#;72znr{xbKJtSXV{wCqg zb_OwNQ_utWQifqd2UXzxq(L+=fVKyIriLTq7-c7w`u17Z8|@`iI7dFcjBxR&4rqqKB^z8dHt{q^nAsP4;-1*y49d` zi-6Cz05qVQ8pp9XuE>7PQY9@l(Jif?7*Sx!M;18>a4XUiEp1Cpu}JqFRjRtUM$H_W ztqzhxAi#+tuJ1&jCp)ewX8p_2=^A;lJaCJ{JdV7~qwAJC-JQTfyBYgS(+4%7Y2Vq;sj- zdb`73%dU8Jb*W6AX=G*9OQn>tw@3Z6sVO$=iSzaA*Dmhv ze`o*7rP0lxzcucHm8MQLdPv=TZo$;6DowiChdt5Tx$K#okE}$tPqb>GIt0MlC9uiO zv{8)#j&;BgpXxj!LhblV6C;0QeSvZQPT**D5W@(0N@N3z0dkY2(d&SM%k!uzS+)BzQe{!i^Fa8H*$f1QVR&GsI7cq?3p zTTlZFp{TNXem7^IUP3v{nyV>)O2h_gsJ+pZ};o z{Xu@-BiP#Bdd0DPHGjp?pqDY?v+K+@<@FdWc@T`iz#2ZH`t`cDB|KvNE^0sbXIi&6 zd*0ixsO>`!UMc+G`*fW3tb@yYY=Rq{t>nKNr(m~E(&5gZe8?M1Fo{BWLCR7~^lD@r zPta*`By5?IgCT1v9uz#5WIA|w9si~iS!7N_Q7K_xMd55ehT=Bj?P_C|8)e_I&3ZkS zru62TQV(`&cw4CbwlFsw+S2j~u){$r>BT|dhmF36&BfHq>MkrQV8)bNsIFAFwGGAyF;G;Fp zPaFSTwR=@oad#`%N9mF6Q#udhP$qIa~X?)*N+1JVMQ#aUNaQ9DO8q zOEY}A;04)|x*NJ!^GP6#5ie>rui*{`1&I3_&Ld0PG0ibCzUMw^KC4$3%W!dd__EB& zk$lDk?*#_AmXN_C75KcQmD?PA?v*|khzvi7-Iq?^Za}ZgYS1wG8^`* zfzU)S@)v5rmo{(2MKZ@>{A+f+g9}*jQ1s20+GViQQp(VXZdwTvqjx)+^a}(@&$%4@vWc_y_!VT;vl3BxCMvq!v$i@{Ue{+E5x2m?w4$8Rl;?CjhcbHnZ>li#j)J`omh=wy9ms@L8Pqx$^Oe zGBB36-nCF4&Uruv3i(L|EJ&SBy0yF}HXfM;$b*uixn35~!S zZiSH$sz0}_^U$1~hAQgr`sL5=gNsoak;4Fei?^mi2f^I3#bPh_U6HLX|CqL)r^#+u z51UkeSlF_59mn5W+OmG&gMmTOu(vyN5wTa*Imy=&VJN9y%p~{HqyR!kO90pC*RX~6 zRJnwid;1+YgD-<*jz{)C&u2W?lCwP{V;$98P6U_kx+Iu5(YBt~n-JWHG%V^wn(7t z^fpUVTi&9SxbDK>+WTEO&8J;bCB6q!zw)ZZw3+)3LMVRMwSE?B+Ntp2dp~a4!>cIt zRgOb6=IO}mkf-7|GOfoA5klwwH#QHSsmg-5&u@C-4EV!Lv5+HiR{`SmD;Y7bxrWH~ ze`S=avhQ8p_E(gA6GqZ+Xns_Ys{gaV|LMLXYv6S)wkm##UoLh^QZ9D;fKwc>S^^~4 zkkR%8--JJM9{a-%Y{;=OJ9QZ|EHQvU@4?y9f023hpD#)F1Nk&a(w6Tn80~(S#ecxh z?Fi_`XBeU*^r=G=tN&^*97%?vav&_`Bt)|R5PnMy^{S1{w5J`Bh_nRNpe(xB58w7{ z-sEVrO$a|r9563RWSPI3SfOzF-3nZmKT>~qc(mJGFaI!Hn6%$%`u;4x-RN^cmq(AX zECsv=mi^y!u&W&8KTLs{$P+IA(<)?!CA-XyE*w^6i~fj*a+ z!qrzH&i8A_4d-8+FM3wyE#Q=vv5Mx8i)gZ_3C?LG_+O?DFF*t&@D0_ZJCrxSz+V1g zFGoc&1?zTnRF$r0aDTM{zqvNdSK&zO$11XQkF31cWnN;_CB8BKD4@zL`G!SBu1GE~ z+pP#H$>8buKAtxCDO>i#VQoHQJhY`V)I17N+ox<7mn$yE_DwC^x)tvu$#2#F%tGS= zU(w#h$8nd-WmAeB=1Dx0sJ!%Q_7e??jqtUWryd;>nw(|H3?%3Qv7^ znhBmN_h&U9T~jkC!?cBb1GXNnD#{G<+UWr@|&%m@;GsT`D6x^DJ*+7_MW-K z?``D&K`MAuSX#v?2VmDa*6p4bn`*Fqh@L0+jI=oS>Wm?bRr}x*(bFqAFQv@_IQBi%iPenP>ZflU?n0gGH%@!2K5D{7S8T?k4JJgwMYdm z*uc;P zc=+zYeumUf4Rt@XDlexw51X9y zpNL)@|GmDUzFYPWj9&iM8H2k2`O_JV`Y9E&x_p+Yi2s3YAbhEgL$aC;KiHgQO zwW52j3gIR<(_jIc-&*fR-;bMUkUURWWvp!?j$dbit|%1S`R13C0b^ytgSPOzgx0!XEO&2(1lmZp z*88P(=ciPkaxzW8n@2mL;E)jF_W;fK@sqE#UfT_|hP35PEXeTuu?KQkXlZ`!9*=bQkN=Lu z$={>^q?}J z4L~&}3^bbCpe{fY>06$60;!;LK%augR-P<|=41*NB}DPYQCos)qRbjkua$2jN3tQFh4M`4D(<4||3*dNGieDgZTV!{T79oarsHuTE0iD ze1dgvQIeE~cjxdnFx-BYMAR*|Gr+gpN;YkQ)3Rq}-;@O*LqoeemU%0o&Y4G5@Fc)o z7ZR;c97b}#oxF_ZZ^Uudo6JMSnLnN}BNI&QQ7Aaz`PeMaYrw;6TgFCvRVxggskS2@ zsH(`Bq;QDB_S?gWu@UuQFDTk;chig8u$Xaq!I{{uVD8wG;O3*HvZ=->ob&Lb+PMvQ z((ZnmMgYK#a|cxVppsW9tEnKwg=NT8Np$Ff*eBL{9PYYfW&3!_78D5o()0=MUfPNz z?!ctcrKoT*eoIlkh0+>7cb@#L`j{z6HbIu2&G=n3)YEoqY^%Na+Q(Ez7J3Tn(pKj7Z^(O;Ww2Wt; z#Y9~=<{{Eas$>8D4bJbi!~mF!*m?Vz3RBYOi^PWsau3;%#(i<-V6{uLt4kl2foJyC zwI02GA4wunsGhy4^$NX`<7dQ3p{bh>j@Tn_keT>U@b`fP=p=1Ft2Nc5m=F97KXX+H zR#mACyFUaH8)-VjbhghguyF`q5QQxhl;w0g@{j%~UHA6T{~(&ig-uF9LDH(5^BnY=?bOZ3;-y_nD0<9eUHtAV_%@RKd9}f^&upwj zw=MW<1o4vgi`1sZb3|K4w;KiKkx;bAs#RITC1WJn-#%A_K78K3DPr`MG<0$?#2MhC z-&THv%Z(_+AM@m@k(&L|Zu2!|zr_W9vErnlkStErxt)dB{W7rR8TMmef%)C|S)sbm z57jdJ46?VVccdauw%#@*JdwkUq!0{9CB`}YD?%lqt!Xz%7DLnW_P-Ii{lhQa*XPrz zkR=RiR2dc(ZLIvio^asML+*L`n=0PXiMJh$fHPs3ZT?p?o1%L0=OiVNiWW0z7Gxx?m6BUytXP>Kk`0L zP&=PnN#?Oo=M8K?_q@7N>7Yp*s_Gov(DNI@n=(DMm+Fc0YdsOj@G{07DlOHP{1>sE zo!gKxfLOcoRGj;EUH&*riUQG1@Wrg7`vmws(!gWV%%AIput+G}=)ee?Up zyOf}`j_FY#8WMJKx?+fuDrimy7qKygkGlFb#L*`u%8)RFp4(gk+GD<8n*_uhXdK~SnHRc z8s^uPV@F$VM)Y4eU<=C<1&pN+B!o`n zx(jv2T6~wJCz7;#sax(N%vQ+g004t* z=jvnS#N288u2GpEYu)$@U7pZ9NHV8+TLXx((U&*t-o?3kWjt=%+NvAsrHM9$>SON) zpEY=ANM;4$zc3~-3CsHW5;L&9qSoXsRG0anD`&KoKg0Xw0|gmkqF|MX7eorQ$1gtY zkPzPi5iolS2mAXBpDm6e^x$=Kt93Ipg5WN8GVsIxGe5H02MSFM`BKPZYYWE32ZJ#9DVCX1Rrposwm?ksq;KpAv>rEEE2J`zF*EM}M zo%$4?)2URXLsMegysJpE&&3fC`*!P5ij9q)Ohj^z28@@2WW4XLwBkO{UtANn_O@ks z1U%&w&1^VY<#8V#c=WL4bxYdqVvHkrh@3zLy7PXPw9{gD=1rYsD=1qwL3+j=zyCmA z8LaX9{@qB;6G8?Z=Oocfg2ou8=Mgpef9qulf{djqrTBKGvfqXhJn8VCP$4`&nZXgg znU%CEcI2s&y`kl+3EnD+j7OQ}C4EYGgNL$C( z`3q8M?`7V!qZNmP!;Y02fx5*>Tvb_uFuEgykAo}Xcl>=5xXnQ!1YcgtE|?1ST4%^2 zoYWTxKSZ3`#yx&DtqlWuuSu9y3n4R6pPAF7VdwpBPw`)Xoo?=5<{)}U{TQxC$~@uU zJ6ZZ|j@B?k>Ob4EB+}h)1i#d!T2FFpn3DQc#_L}Er1a>`nsFS8Ilo;oT*y{R@AJrn z1XBB)6<@FPY)zV;?y7jH?QFsr9Z*ZsFB6NL@DA-?M|us|3~m!_!x= zMZtCL3ZkTdba!`2cL)p}0us`ol0!ElB{ejNlr)HRx8#6GOLuok_t`w}xxODD*EqBH zT5I3yjtL~F{v6{m4n>k(Y@bCo#EUkZ7tDU~Gk^$>u*zJDO(2Nb0X-u?U$ymCxY3|y zyLXwL2UCq)^U;dZ$V&D*i`$7r-Q#5-P{!T#O;SsH5Kr~u8m^#?V>DJ_$Flx|Vv{8}7?xObM#Ee| z9-3^Np(bveTUC`lk|V#;NTHNmvb-|n8+%475TlUGlo;W&?3}s0hPx=^@F3|c%4WGX zsQusvF4>VAcJ0AWh9Ig;PB6h$mkSI^@Y{lb10Xj6EpGSZ%=EiPU5!Lx5PPxNeU z3>e72{rRrpbMiYc{7<12UXg(yqW2{Tj=r5S=C(TB(pP>{kF{cB0g|agq62%l;Za2e=Dytqg zgZX_np9RIz$QJx`qO%>YAQZ9#3ixXs6=!O*we6$maWX$TbI>l-A=(M2?sn*K9KqUP zn_0o6U~_ascz6B*CQX?BtsIu!wr=6+MNAE1k1L-Rhpu{-YUS=n&vXxDsZw>4Yv0Eb ztP*w%3TJYPAZgV;LlcQ*aW zw9TQ>w0GJ3l<)cAp9MRDrh{7Eru_!qF>7V1)_~pDH9J)w*I5kVQHDo5UGX%`^rbd) zFi;O>b6Rp_&==L2veH-h-CVgVndN5CP<@S~4`~qORQO)fm*#2fvE+WU-I!G4%-y-6 z!%=MXax%P3bU3+J^M^HM`XGpm$y&n|tPbj*@)oG&88S}>QLj6t>=&q+ZJdvNARbZF z5WHQcjE1fhi1$zWIk7)8-X{1|3+J@IXT4khWbs?>En?WP`LbXNooxpM2APE1LQ?w7 zXBB7o(Fxe--eWr{5Cb=G(KQFt$9Gp!J^2SMhKSuMk3Krh=L*CVb93PS4OQ=25>3o= zTB>*uG}SSWrtqB*vM+;eTdwBu%Z?x9sgV3>>kBc@2UNzRdt6nMvgxK(PsNTxv$XnABdVQ%k`pDPz05?~28W@+b zyw9eWLF=CpnIV2<#g@|pvs~L6i6r4oQWn-~69+OiTKOoezhAi{DR`5(&3ky9)|hOI z7torD+cItZJZU9bj@4!?>z7G7+{($YX3reSuwJ5GVQ2FjC&w;vW|TcvcM*nv!o#1< z?pRO|a}#{d`i)n#tTPqCq5|mVZqEiq>enKS>5Z92CuTbS?AOXcy5rR(WGd7%Y zh=yloK3l#OgmwNHFZNuEEdczjf+A)mEv=-937uP(+mitKa`p%+ls+q7pf;X4dkNH_ zLt1JQp_<{3BlQ$_&f7LWT;uvv)}L?dlC)_QOSyXGHvPk~GH%7edw4gPSab8$8#|qc zo@eck-<_30{wR{^C+yFL;%e^hWp0;p(Q#0vp{b}RINWmHl zx~fuFzWXzM%Ie0>^E$;Eq5AaB5?^dPmrm3tX)0jm-~*EFkcoVOADN$WKZJWVF+WJ@sV4PgkJ)=Sa!( zOfmRI^-Y-LLMed=SU$PxKgsN?Dy z8y_`KTh=FY?f56H?lAt`Bk=jiK{prR&!=W$PQH{zL9qin#qzn?Bxs#K(DS!U$^y($NAp(o9(#xIEH zM|$i<26NYxaQcwQX@!qk_#`gpjRntcIjcUdQn60jZrodM4F8=8>G+X15SF%*tLa5O zS{b`e*5KMdZ5c-(Jmd?dC|#9Br7vf1|MHT&^Pc4KbZwLeQJB}(R>!F3DduXT3}@Fp z4^_eMhOkSMemhOlY^oeLsM+E#W-qZ5J?n@7fmCwMwT_AEEXcrys``jQ!1(b3LxXMa5e71b@iUkZp4O zB5L>nK&s0mJL;kR#cSoqVzY6kd65DRi9Bx-B zv8aNUfc&`g#PD54+oysIKbW#`U;>0N-%cQ~!u+)cb8@+Ds)PSSsL$r_Oec`L0i7kk za6HMp?|GJahZrq(g}1F7Vph?sDl(AE91rMo()4|~W4F7;oJYTl%U0+`&llYtc&6Dd zKvwSwVe@N-cm@<-j@BjIG{2o9phLynKGG1d_%e~8Joosp|75GhEA?Ftnx`2H5?IZr zHL~9FiEBXs_XWHX_iIxTxN^}A>`KLzG2~aTn=N?-V^#-64p!2tBzn-DjaOQ4C@ezB z>vCd-fW{_zcwvOw!uQT~Gt3F8kO@u#`H{%83Xd{_r@NVa_g7Ed;PX+1fFwiH`RlXG z)^}scnm|FXe?$5>u}?(4?6%8G2)9I(%5-Tw`{YwY~k04aZ3hmn-jUb-w@OS5|u)E)7f*X~_PJfb1O&?BxF7LoI%|%OVKY%0eo#Y!HBswYX zp}|%87)8OL#$%nkNV8~Aj zrLKLk*)StT%C{+z@wwY*bzQIy34JI!u|v{`=jS$-6e@vaz>R+d&M9rhFEBDvi)n1 z4;$=ye{8@%+{vbAGpvj}Xr~Et!R=5nX@C)o3#q!K_cjRLGrqg!L&O5*4;F?-x`OIJ z_gOubt5mbdaoKYdI_!57)4#5muO)i4BomaiwiI}7zTw8pgcojjF}tWydO4N!UH^=D zWMmK+v#D|zOELqt-R(}}?&XT5@#<*VyY@+r2LddKYoa2HIMB2=zvzfN{tLrnwUj0X zpi_f%%Ho^{?)s0RwLV-hi;4l)o6T*1F?p86Tsyw2=L-4*5<~g}_V?+vTyDP_3@z(_%~fxVsy5vhEQf zkyD4AM+X$ZbAFqPeYu+8K>@vcA>agjaDbd`QP$Z;$?kv>E;>CN{>GS*MBuf}Dn!vK zPzY0EPkm-~hB;}6d^`w=8Xpmye5>y8H#N>eFeP}e*Cy@bJn-$md7#|~L6*&h^cwqI zrmssQU3mbFrJG0gya+lXhjB2$Wt5!!uoQtbO<54ZXH?uNE%+dO7`$SxejQ>uxvd z1f1^9+Ljq5TE4NCUh;2dKD<>GJ@!p=8TGyzh?*RmOIto2TTr7}e$m#|w!R!n(SEW6 zhjYKP4s%grorP}kbzp+e!cQziLdrZ5@53ilB{=l2c?_gCIwy)<$yohxssP+5X zcj>yxvCp+rLL8>(8@7MOM68f2?Py<0eZkg`)L_z`c0X4>pS5Fj3ciiuE{F^F;U1Fm z-uuJBTM%285StW?$BzRtz**6ON_PlLOgWobi3yK~XD~8CDyaMkdJ$U!PC_wt{OdaC z(q4+_aaX)8kW#{-lFZVJ1yxm1FxdIBKlq>~9`Q^;e=`zsd!hg!lRHWb$oDL#v8L+o zp*HWuO0o%xdEDZ(!nsgfxZmPg*YH{^D0!2T=ky$>O5CQzOE{A3PL!0@7?1QhgaWt2 z;6O~FxW)T>tXz=7C?f1AN;rAqXp6kOMZ^{ai&Dsw^Dsq;rBa2TPQ6mac}~rOg8DTmc&5ztW9Q0v`6B*b@`V+dAgb8kD_cCk@@zQA9wE)rfXRxA2IkAT+W@`;C`Z@iSl` z?i08iNg-ojiv!n-f(-8f&y#mqHF=4=5-w;kyW_IWcS}8~_sT$X4`F`({1I|ygl^Ms zQlk(P5e;{fn_9R$(SDi1!bvI5%l{jOS=?kwB0P{mcQ;}Ueps_+mTT=4|_ISuKiFxhGXg)H36yZmIXQ14w z4%_IInViZ?P|g%jPq*Gz5YLqP(zxVt$v}!^=QZa1p@{CG`GHzre|BsC&~pA;)F0#e zui8As zDwOy3AM#r|T{<2YsN|2p!EZ^9Xv&>6!6>Y`LNRSEhJgcI5hjfDaapVDtRE+wS=tKB z*qX~G@gFE7l0S4q$wURhY#1x-u$CEOl5kaISAslTD1vo{X^+UThE$e46m12^bNtlclO^>AeP3*!rH4vA_+fHkw0^>yhE4R#+SFf4u!4+ORtwN1lN5jE!uo9vU1G3 zj||Y zRigIZgzxHXv^4U9%=A1zqj6VdYZK5qu!kxYqP~4@+P7EW42Yq|L04iL6g!h8WBc5T z&#d}fks0+iW+NBQs4AWW*$S-0Mhn7WDsmLV;+(~+QI49EAPE{`!E4MZ#%4lDG|b33 zUkrBXSUq%KjL-zTW~QSYmU9apSlQ!OG*O;iqbPxr!ez=pe#>cZ!9gC59`B% z2)cwgYVB;GVf%jx5Oz)+!V(Zz+`^-At~DVYR8$zJ?tq8dj#ECc7KVqGr@zPl_(p>4 z1!W~*eiwcyTzn}_MTTtJqz6#{89jSM#<9p*?tresKDyT`)ZAu>VH<9?0>{DyXPQL{ z;>J{&{qaMDzze<1`2$uS-6LeiN0B-SOW{TgS~X)#brkMdhJE`i;Kg##%UsV+TaKgX zNX7>5aUu`e-I7yU;~Ft)e)7@mv6qJaH7npyHuq3|#*)Z`OkPik%Mi(UAXZEaU- z3Pm16sBq_AYGj;Cab4pR^n;sCbHFsm{T<_z^$RZH#UOCELFlu6LU`2YEZ)I5Bowcf zaraXE_?Y*q3qG{An{3qaqV1Bn2}I=FHAqR0jLr-iJG7+&2K%!-B=3V(UO2foU7lue z+x-~_S{{$4w6hJb_hAciw;3PI=V`kllj}%&SPGcg(s@4ov#3;Q?5^6a2c)oYR~vy9 z!5Pzf?sFs%_8PxjE`v#vsH|DC12s3dwG$Q37~8$`QcYJa02@8st(_gSx%y+#+g@6W zs+4ce&G$bCjeCUt&Io0D3PH;9E-tVf|BQrIo&0=jyHHKciqkzlx2Z7&8yL;&pRR}E z!d91bizA5zV9H?Vb^s+2!+`gZJf_K(#DveP*Fmv^i6<6REY&MD8%4X1rTIcyRwh{8 zcMK5?e}~1jpdoSC4aL{kpz=31iGJCS!tdOXUWL1NXU?w}4qThYVkDmjWvLO-|Bb~l zQ2be#mt=?fd)}9<M$Q7ge6D-sjQ-j(vW!M_eoL{AIdwx_CN7WsaLK zgDFoTKaTBf<=2}-f5%?$2V4+HXyi7XVtjWkeDBe32k1EOZjWvxmNJ?SSNa$!*0&2N zH;W1=R>R8YOQM|4QW1pwRav40sl#%Q~oWMvI=)P21MGWx~vPoj1-$ zrXCp%3!v>00@t#5coZl|V>1f@X!L&L^4BA20zV^`I=)ePTsG^|JVgyC+Z={u(k8PG zkIgD^WSXbiSp!H*nrMgM2edgu*p+9Wb_Q&oG1k!WBJe+}(*y;Vld-W9bZzH0wPt!8 zEKbe5aWGxNMG_zX2u!c~_-kU689=ZwnXj*}2C@#W$P4iDlGGp-V9}Pb(GsJoF(RCG ztri@FR^U+3r1bpeGq*Mf5sULd!s?7vy z%<@vP-$6vWyDzrAP?YKlV8M>p89NtNkF84L%VrB-mpFb&i8c#PpPD{ z7RX!jrUVowrXuaQvUgsnKr&@vV)BX8(2Ll8{^W^W3AtWJHc(}R;W9!uhzp?i4V#V& z1%u1HnZl_j;-37QzW-L6FM>c!G%uhuf*zT)!EfJkrrP=tSbP-tX(UIa{-{}PbYY?$ zS53V04oh5;Kb|_1vwSGSo6B;P?)Un?n1+YpOeeie@Fp?w@OFW1S#;#~Y5%sgoy{*R zOD5bH>~?OUhHA+T+Uk9tcS{|}Xd24*H&NfD4kZ`xDTed3WMFCY{&Xa1c%AV28VBypc-jOGCD%*A+PnID3HoYqkQJF_NW(wwqr36(J#X5Go*#JKWRi(m2X!~*p>32UrJ z!tC!PUvvtNP&~o3cV^8Bwol2{#d1|KS3xQmGFBUf_xapqME*3BlIv*PLZCoh`GT|C z*ddRD^k!7&mp5iw_mT-F-b{%1*Tz=;7kYK3yfAZ$B~bMCm-R544#Y+DxqhB$eE9MT zjhZS2@~>%e9;7{X4jvt*aQV^bKI}36@wTKW@V_+oIeJRD(Mc(uswD2sEYZ3{;^#Tw z>T}qn3q5GqblyQ8T3U;j=!Hx8VdnHyJC0-dOYX1>;tcqoy*g;QpyYdH^HN^aG@Qre zRYII{hVV0`ul0{qDT;N?FeBizu=f?J{o_r7reJCRj_dB#B=3;(%1`D6f26sFms3j0eABLl3&wGle34MU#bv*q#NcV+YaMrWSLE zCzBUM7HFT6bRqG^@huSpDn-bZM&N##0IZY0?C$(f zU%Vg|`-l|Jph|_ZaLfA(+cd%*E)5BsM^JT??mA7^OAK!{do0lX%k-Y*Ql0;ZzXs_X!P=Wu2#F z-wp}FZ8<6{JTue#Vgp-R7RTc8EZgv*Q6y;Uy~uk}!8GVZ#x~jG2KsTQ6RuuH=uwdUE*y-5Qw$dL<3$)!rf>WXv9 zd+>YS`)4_S-dRLrOZaS-)mudALy5}>%h4~Pd1iRknOSK+&ycT{-l67qN!|k^mD5!d z$b48yzG{yy&DTVIlvZKLTq8dRF58c3fUT`t)(=#74Pv^Kmw0+b56zHLCm+P(ydGMcLVXw9DKrzpM_M(gGSg@XgJ(OPTarMP+HqFuW zXQ76`oo#ld0#3=8$!hirWx>pX2@pD*e={?V&CJLaX&+|4g#YLn!tgEeud_>SHw@@j zN?y5<8o=l9^S|`mNqy(73mKW8?<^3%gSyQ@p_v?26X`@*T`gQ^|Flkr&0 zRBpNv?|<_j|5M_0?q~NWseJG^-}_o|d%Us8?R;YgzR{=MnlR}PF>ng+FWwJOtbSdN zoR*eEV2$nN)g*K$bGV+|cKIx69YbRLp%=^Vh!!-(B+E&b1ogkNBTqD0c&4quMo=32 zTUhjCu?^zMZD|Q?IiCsC%tC=MI*`q-w<1$!cL!eV35KjlisQ7%v8#ndt&?<87b3f$+UPIURdC{A;4or~&s`$RY1bB}~9lKV9 zukgZtYd_nqI?u;FJxC&r)YdM4ZiR_n$SZkO<~%oBUFz@M?^}F*QCQcuXwTPg7B3Oo z9-(-`N!y?6l!|>9wL-U6 z-z#0P7B1EPEiQ4t&8gRH!3=P9@CO;w9r;A|1>>bFzL3;X@cG!GWLb_rzNAzOby)VQ z`#GwsYrr_vXAutI<<%5xW2#t%U*(s?@a(rD`(2FU=P!Tw5fg9utdo-8ye{)yWQ;$* z{71;S1aQSXJvP})-4Q*$g%xOlbfJeG#q~AvwDp5n{b_`;#YlFyUXmn4u8@w0r%D52 zhT2{=BnEFh+f}Tm7sey7+D;3q`*?yda!BX_h=RT3&ui5qpX2o9pZeb{S+mO^7YrynE*rQ;|{H$Ldx18~r_udvlHE~Id6b6dM!Uu(nnDs;bzWtx_*?F*6&d=^bEb&;BJNI> zT9?hcZ7z5pm<^^`Umm}a=px`q<+s}iEJ*8B^LKg`ChK*{d@pa`d~8MGbA<5i+qaN6 zZ4pdw%Osgt64Bxr)v|JO0=f8#048~Kj*W8rF<1smD8|-VN5qarflf53M6X?f!Yki;U{T@^j!I410x&tkeM9V76jau!!c;PhR zjcHo9U*J6dqRo7|a-A+-QIZhG_sVk0bAl}wqug$_@^P-0etk3TJW2lH!-st5 zzj|?~(V9g;lt@9Qd%tzuBeYlu2wB6gXvROr@`^i>`PZMreQqi_p}qGvV+#`@l+Q0) zqYrPiX&Hwuzsau3FyoK^@H2J*uuppP#pUYNS+sxei%G-2cH{%q2T6%_Cn21k?#ang zS00vZ^v_R-FSUQu3k%Nxgk{A5 z3bbtUa<;Xd3`26p>^Lr`-K^DSL5&rhs{5`-kCyO13+S;j{r0 zPet}G&SGpsQE96#-n#IS3v>ArExXC_hN*8%9Bu-S7{G(X-w930=iUFY z`Ja+K^7HDK>jaz^@1l=-SJj*kB`7yS7ViW4Tb-U|UjDuE*}RdkXkS@JLB|wzRP%Ei zPuy#mJwVD@v7R*SZ@CbYbauwQl7@X4V?18QN{3|W{U8?TTFlW<#v%O5lozq9eEYb5 z3mOLFmlq$e`$CvmR$+vB;3ts>KY?}4XEswSRpAqj^p2xpj84Ci)$$$6CBn62CMQYj zE~_BSKl~C0&oKwDhv8FxJ+*id&)#nt=GJ9p*Vn%{bL1M@;@-bK4>1P#n!I@C*aaTp zU%B10Buk*2?aYZ5&8Me^n7#d+?v}2?w9chw1v=)GR|RLw>8Jz7;)lzj@7ipD^ugnE zk!rRbK7QG%niNekQp#?ea|*d#8jlDHC(ikHwHblV{1%uOk_)vm@3Y{E;hmk-F1PP{ ze8jCvr;_jWc`8IBRZAQ{>`|7q;Y}Hejta-T}4qRVCgD*1(^ClM@5OHb7xX z75Fz$1+$vSRdov1T*J_mP-QM>OLgkrylOacY(d)Aj(d7O&ngTW>l6tQ5fN3opYuw& zJC4B3^XE{qWNqOA;BQEw;*y;!D2t1k9RQn2S3#F!$Ps4%Sg9JM(C=b zYjQpHd#GU{T_~9w5ji>elyvzRj8_G0PitvvwddI6I9kCK`MFpfc6CA+qd=#wks4sx zuj4qp;9aqrJ0jX_!rr=Wk`qkibz1=cgebNV8UJtO7j6-qba1ZzEGkcl=;aYDo5z_Y z=7J5Ured;ehxzz5h4^`J8FV&BE&ikZWVT8F>knt7C?X^eIQV*?Hx8F2j@oHOh~vuF z9VZvJDm%DKY#O_~lt!^NXmTZpcy>NzPI$gx;{eFR@~V<8WUV0GE_l^tIM85vm} za1Nisqv4|6my5RW;En}POLhM@4`p`lArReb~uXaDat=!S;U;k=y93LO;{`oev-bt0PE9q1(~V~DkSa}2Tx#YjP#7PfsG z1F0U%y}xaJF>eLt@s6xevff(W{E^vN z8C`eIQ~^7y_Rn&ncV*Tdmm`cGO97#tOIh-sD@E3N<&NCo`9!BhQROz1uH7H&K3ssxJ$2T->et9rz!;9PPtf*Gvf;%XeHd4b92z zI5Bj~w44aR2q_7x!x4B$<;t#qFj?q(>eKgc+~n;k*2dO*2kPa9SE2QpKXZ|#h*#mv%Ddp4!!(($B(a0{M+&wv_T z<0b}jxGY9jKlw&74TANh2P@Xme}&1pSDnY{?|UFs?+CYKJrc$Ge$e=uZsLjNHeFfE zImwkzMj)oJNpHiwz_-c)GVeW&pGI}zA_vW(@)UjvR7}Su4*pT-gKd}W+FM(z{0;}p ztCS+483!Dr+ox?WyS5KCek7y_+mYPt`#;eHLR?cgd946+%w#Hj3fvxTmT_53uyR`s zW6a3aKdWFvpRFV&BKz)c@@WhvfvEIMw4xrJahZChV(|#c9WR8$pAZtkw;Q0)n_#-=xQfZW3X6SVt{;LV5MmwBfQd4=v6wA)o%TrjGcPCs3i_ z`{n&nS-c|?8T#6BMd$}3H1-0cG5RMA8BONsiEa! zoWJ`&!GGhAPF;Ou*5N_najK}Vuitm(uE9hAH7a8WkAU!EOM)@__HyL*SfI_~`tNql z$qX!N^*v*@KwZNKzfYSRPx!QbD)An-H^IgI3Br$7tXT6j40;|6lv^~@B`r1rA|WTd zlKph;TQuYPBSWXVJ8f3{FNR6dA7r6`a?+I)p1N-KHe#hC#)7BanR9S;ns8%9h~KRr zrIPpJi`ftHcawFf*gAnHsj#fDAb7Lo?iIZ1#M5z5n!@M)6@`zVIF|Sc&xPnQVx7b( z(nIqZ2alZ!nfFuxc6XU)8T&>c2Ca7cbOf6)xJYMs(qxvfE+r>l|eWVf4GIJ&Xq+I8V`YUG0^LXm+q#Rkpp3i8iX z-;25d6$RV|P;YFq>)RGo-5n&xA&KTN(KNe!72qX?krFz#^h>8i=Yx%d^=7);8c1tn zFlLIe`+YQb!pY^|PUH4fC>|`W^HtJ2V&%zx+cyoEt$o47VUCui0jv;@3?<=I)3shq zD|>+`T1>GR=fP_(%Ddt1KXXuI!%6dzm35yJ16`1ifHgMvR~fwPI$4r^kE{0D7X1Ll zXyRX)jMMWMsjGtER0qgY`lC&{5dn}1)R};pi~p-LTic8%GOuAI-M<0oUt=p2CX2Xu z@wU#5{ARxjYg-%Q-uE86nK^H>r`ED+(eDO3OxQxVmH?I@;rSU@A?JHMYd%ys=L#eh(HftLMB5qsemfCM9Y@~BFgY4tdUkmUu({J@9_a?LA zvA%)4$<&l{xH9`?q}C>_yY*hfu+V6wda9J8Rf~yjHm}(e_r`9v>q6p8>bcjA`rqg% z$_)rJTYo-@LWZ9oX03U=qnKtG-OXWDf#)Yu41<>r>j?L%D^`b+rJ!l;zTfPFQ^E-d zXg&sK%UCy)q1IZ)D(8D#8$WbZ7yu;Gyt?_Ea zep3$+2U_GW))}u&WYw*3T1NwDcVGA$)||zh3!M_P?jLV{8WQgt*EF8r|4w9mTk{d0Ri`v^ z!MHCR|C$$O$NMlosn=pJ23vh^eFZW;eL8*>7&65iiRP;=hP*JEPxJT_OIE$O@Ke76 z5nhpV)g(tnAJ0hoc-m^p^H!`Hat-u?v*=P3j^^e(MMXB{L}z>Ki51;KTU_hV#L`3c za0#PsgUWx6wxOEFDp)HB)WzA`(T|P3&aa7*%@0F07fxxJx6p^XI8BK+Rc;Q7?1+BC zUi;@sP`cQQIXh(1HB}K~UtqbWSD8-R=K{+u@%=!lp$pGL+}24Yam~T5YN_vWkY@v0k5vW{{~*N6}(B@uoaka+V)uf zge(+l`@!dh*H57jD;@wK^rrCLLw)}IAK(R5S@hvhcq~!>GF#~i<9lUIEMYGSmXVC1 zlwMr&WPT{}#ljvd2B%7WTiQ|&w>X}$ui%e=>;-5l&E`vFAxo6TE9k-s!ML?Z;2w3+v}hl>DyVscg}gs&biR8pjHB)D_U&b!Xt$GL7)71Ri!(_{2tb%cB`)yaeQWzPkwg#| zM#nzzw$<^t;j&d?j}xp(7fQfY`34&t1fMbn3^~aq??UZF5{mIhr`g&rx7F$&GW>@} zM@dxBNGOwq$2fw%>z9m-^L+mke z!+E1w(!jvm4q+(@Xi%95raY6=g$}wdz@8YO9dU}$0ONj#EAan^Y;P|wunq%}&h$tD zafavPWfhLgJUrVjV#Kuc#to;M=kxAZrOlhq?7ua^Y+0TnHQrI+;Pt8_xMmshZH;ks znkI1JnDk@&cjBNG6PhxL=9Z){KcQkr zeNvpZPaDA@P8bp_d1H>#@U?p4solH&N_r&#(ZE&c91Y7RKL4#`Pe}M_To?Ya;inuy zM|jn?unuP17Afo{sr!V)$k#7r4;;W+nI@%g$%}(0AxKJc3t9WO+>b<@*`c&B$1x zryAVPqHF>Y+3cj?5*aD*g0hCdq?b9rj(^p@tPL!u;jXeXe|zoTUs1uH6|ql-3}_fa zf~BF!kjmqv;ussk__9mG^M(_l)w{zy|ME=PjvT#G9={dY|En)9MueZRGR{rk8B_w1 z1AM6TngdSeiUh1aWhO#C+VE8@DMO^`KiGe?y8rylXSv_l{5U(Yx|Sb=R5Rl%*|y!C zr#W_T@6{bHM3Rbxa2hYxcW(BBO&=EMsU`DT7`*(OLISjR45L010$>b({q=T z;@#5CvbuQ{ab3FjzNN;Qkth#ea&?I8vyQX0JWVfl@dWB%vjDTKUmQ&bUAmk%H1g!0 zbV>xAIb~&pa91hj4kowVo7hjkDs2zi9;p35PNZIKAogd;=V_jULXqiwDO?!9yvkw> zbx{1w;(r(CzqiwHv3y8L%;j={I;7mTTUfg2qUAs;N;2e0oI{&~1dN=p+!kb}?cgU2r?6TN9k1f>0o^-_0 z4E`?7W~wz^pV7ilaJf%UDfb3~7mlxPx__-dTyQ89t5Dg{6s-${MTyF<>A!2lf%iVq z!t09O>IaSJQfJy&3c8YRPEZlw(yn?C1NnFTSNm?9@_GEdNE z-4?T{FeQ)vDV+%2o$`LYSs|O5eXy1yLj<-vAdKwpd@+*?1@^cKD z1&S%#mx#1=3rVJSidRvmYj#p7ws{8VAA{V|B35d|)1T01pL|wFY$MU!n(a!KxbyS7 zY#0IpM08LbhU5@otFq6?s5P(B9QQP;YpcIM>BrGeFf%IvJEBwte8#rjlYeGK3jFCy zX}oII=DLJAaJBD1?bjZF0OGBO%ih1#C&EEO&{TX4qfk;ZU`$a?QmzeC)d!l@<)1sHqh{%Y(q@|yxy^F32Wj=Vs-&MZPb5n@@7f{_ut2+Ig+|6NJJ zL~oz?-LDo;IS)Njr9*quvW_W2=M0)v$EnsLPKqBlF|aT*l?KBN--5K?UyoOr@gOt4 zT6%^zySp9-4TK5>JT>*X5<1bD5Gml{6=spd%F&iKd+)?cdAG&PSCb2pD)ZYMK51sj zVk3DCh=*H)K;{s@p$P`dA0YH*#(O^fp}_9yYRJFW_hPOcEGvM`_6gC};Up#$@{+|U z(l9#8#DIgdMKn|5ZhI(5b6JodlmuVQsZ7-P0?-)sk~m6nUo(Kte6PecVsAtLTR;gf z$!2VR5xz6N3nde9G9cwoQIDh2uCHCXDWK?ryY&v&?7Rx^W|5w{ZYSf!e0^S=g@KwV zi}c2Jw%dj@z)_UVbn*vn1(~!+03IgG-%a(bA8$U)AfnLay3V!@_e_Yktuh?yfFy>UK!u$G{ux|w2~LF#wz-)W%c#F|%s(75P$y1t>XgWwgRm1Ia&B{`^5Q-{MR*Zcg+wwDq0U#L z$sng$^rB42&}**M&}WMuNh&~E=x?cgMPR7r46$m+OqL#Sgz(r4rw9#Ma#L<66+#G> zW#$Nkr}vrtB!0mbLY z&yQHe1B~fWd^)IPL(r52`D$un|L`v}#L>kuqOLWs1s@!Wcl(rbpYj(?vI3Up`J+6zOSh9Z!4_CK*!_? z-EWhKAmr?T&Qqh8T#H~mnE$7YH|f1?;-J=2z$Qq-tzoF4Jx*OU6?&JDjE4e$?Sa`b zzQWhET(`KQWm3neWIXU6%Nx328j3FCbPLMyTSk58I z+ySQ$?Zj0D=2nc&A50bFB?$h?Pa5O*=s8F1E-W< zTcHOwkg23Fw1N%(ReR#1$@OX2>5Eg`kT_*6-gT$oPzukWA^&4m+qq#CmJ}L{r{7Xj zJ&wC|>-TJuPj+r6V>Dw2ERKCMeW>C5ybR7)ldZjzoHsoC;#4Vb~ zEm?Pl_}*?!56~j0Uo*d9RRInu-wbB1hTl@ku^4^b@T6!k3!uC^wPw>RXZoljsNF@H z39m%zHiM0`>hf6qeP4QcEl_`RZg6!qt_%JBfsxnzW;=IOvEw^f>wH&dQZGtCP?VQP zzu9j?HopERH|M!&Tz^vA_78-{W+oO-R9f_z8DX2feU()ecXo+_HmO){(WmL>-084= za6q39(PB&ZD(Z`NL+*o;2YJ?C=@|5@Ht68?KYrP>uj6SY2_bxFOkum8z^NlCW5LgG zR*HH5dgAiC4jN0A>ahQMSIgBh6v%xIdqQ69qUK7w12vboLCcImR*clAN>K&tkKyN3 ze-rmiiD){X(0BHd=+Fdpy(Cya5Kn7=VR)YP^zztRT+-C>lTXq2A)%lDZP>|;K99;akF#qDgNXp|NA!_S5u)Lw_*O!8Dh%prn*#H zX99Y<4uZ7^&)P+MGG@QhdI&S<~``74ll)OaTSPbzJ<#IkFa|eGTpkbZnpCjzumA^ z*U$)2y@zfnylrEeC;)?hv%N^kH3LP zmkcL0RpwCD?t!<{KjuTm%pvMLx)kLK(^ach=k-LkuWeslgq7GL$1*2({|SquvYB#o zas3KkXN?J1``Q@|jAQRH>+ZL$4q8`-=G=A%Znu*b|G_2Zei=VF;rh3o=-eM)%wDb@ z`uAH8HN`OF7F0T2u@G5hjB(dWt*RfW)P}2)a;&3P;F+Ehq5IA3r2GyvC{MLz z`X?>}C>G7Nw9wHBIKa{s@NX@lX@&cr>;P(!v0Higu4z)-9E|FB7#J9`i2@HIhjjMm zr&uNiz}5v(Kka2m+}ozTj>>hVw=GWiVX`z3`t6^ZX{{5eL@g4D5Za)nY3s~&AR9FU z7Npg+H9S^-zMAU#I0MEkh1Zq_a8(d!xZbhRtFtEu-+>^k80&p+ya2;zvt@${J(F2G z>qmc;CFB{qv06K_S?XAYB@cjYP4#rC1e&s%DRmE+RTR$VgqX75D-^+ls@$g&6K!!e5L8px!~hm_azVB983_gMhctH0q_Wxk7VKX5@I5L9j~HFhO)YnOWNg zip}-b+D_H3%e)($RmX0$Cr+C7N3|^f8-Fp7G2NMd3QEN}Ig+qMzRi9gw|Cm9u}%h7 zHr8D%uvlE*XfwIESTBOu^CMwhD#GDD=1I&lqx&B7N6T>e5grBO-nwyOvd!%Fdi8o& zLi-p9V2lmrmZn$f(unFc^(xZ)a2WW$QrS}Wq*9u(lvNFr!2crm`I^NSd%V84K4VT( zHi%ru_fMcrE88bFds)62<#c2=It?`}p*ooz00%9wlLa>3!f%lG$Q5}!@bxv86kUwq z`O3h3=<#`7_#EGlx`n6j1D(}BJ{z1wYYJe(fYd$mr^QXs)qaHEDS~le6)L;nJ%8PO ze6y72l}GMm>{ zVpfF>FCu$vklVW;TMgW7-kXt!Gp1K6zt^O98}6j+rW)j>L25)?gIi$uM^AJRW#>!u zT?vl()ufH}k@@*Q0NSM4V8=K(Xzg|Wd%xP;5vQ~2lcnX#m<-!8wOLxPr<`C~p>n?B zskii+LygU8FN~~>eF&|)9q>*zIg738i`KWMmxQQuFhJ8dfRL7Bpg4fhBHpc3xIpohZOd&sWHSWy+8jSxrGo zE25#1Fz^*EwBc;lQWL<)0LaFG;ZQXFyyXu0A%z2b>D=BL9ad>?McQ|Kpp%$tHuU=6 zgrFPqeW($RUtg;vqu1A2g*#WpsP3(&S3%s)R5_Ye+uJXH^A3%;KxOmO@1yY8^NmQ# zh0wQksIGQ=x}>nT-^-s%KI5zIsjIpYd^PER@ErFM2AYVZ6`Dce2ZJv0qU0&N3$W&1 zhbm=l2cltrXf*5Xjc5W%wMug+yPHB7=O%t5oOJ~+cN{^79-X=1iJfTeAlzEde=Yd1 zto4jS`WMUBLY-B-cb%btTZQSe#U%_+gsMV8`g7GgO$PJKoHD(0!N_OS;>+l$?RQAo z6p!C80I~1>Mj!N+QC{ehla$-4yZowaALTP>?-@eC+_>N7>u|ZYw0Z%TUj>EgKaCT7jpzd&*)OT?0h_kV&Nq!+5-R70#@U9eT z;boIsgBwu*LHQgL^X@B5DA;&g!EeVA_LYsukrbopj%gcwa@^G$855Z3#QC7%!`SA>hN(_{HaUz=KRmFtNg$u=yDyl8rNid6Ht6 z)T_L})h8sOV@`&;^k)x^iC_7Bu0SaN**NUNoU^LNhWE-Fod(L*)S6w466oiDAE<8h z1m!wdmo|r&sQ>)qWXW=`Yc0Etgjr{;f16suMg2Qmbaz|U#emlkF~7p{eswWVmtB{| zKq8AvJ9J!UcXmB@{3O~?kFrIO%B@lVP^sNeFWp!#9bEad9osTptf6ghr~Jb1bYr)G zyr_c3f5gVQE_USnqoo=D+~}@~^<1yZ>3$uYDr?>k1(4`QVZ$wre2l?b@$u&YjzD#F z_Usfm%{|1GIafi{<7m*{v)WoSYJ2Q)4m|lzZpxM zo}cuC^YT8`@#seb+4nbLWN%_bD&MmuQe%9Dg%iQU0}o4lSgF0G7G&87(?M&VEfKuT zxh|4>0svYYUHvDt4~!WO{i3RcoY@5a%m&}y`Y42a;O|;5vuV3t*gx*@i!_|$hxNbC zv?r4>I%$dthylG<{&c*HNK4aeYW4)oc_yH-rZnwyHtj!-yil3Q@`GW!PynULf2AnUpQ z)eqmG(_*%;e*i#~F`h|_rv+zntWb^tH8N(+t+}6z`YYRiA-VQLV^I?CRuZ3ylT_^KP~R;V{;3B8}3|ub}4b0>%{rFopq&X z&Hcs?2C6gx6}7zJA&u*TGmq<{J(26esq3xJFa$7ZoZAmW&JXI_7lv4Q?vhB$?pS%| z541svjBU%o4H@7zpRo#5VG6L;R{RhNzapi61Q^eIWr_Pd<$WlFRYIt+EM6JHobAcb zhsSp->Qdhf{;xeDl6kHzV$?*LK_Dea%0S+fpuAB zLkBo)BKezb&8d=wjtTSeU&hK#&bC=Pg@)Q{GC7_?BB4dN^Oe z<~8bcLQl+E@wDwyE4=ugbC3@pi4riy{3|fJP-HYDa~saT1XWs-7Cxdr<0B!{u5bI+ z>-?aCBJCS$|*v$MH)B3&~k#j)SArWm#_-c+K-M`iv{6Q z&gxXGBa?=ly6?!sc}~AbG8U>7{ZepPM!g=JTj~Nud9hMvAnix;zHeN)_C~`tK8u1mhO>Ee|4bo_G;!E4$a5<5La{NvB~TAzXUj^xV!5O z4si>be=;t-;u`YowOl*QgLRWP@toUlq`KN2v(}Hmppx9lpsqw3^wJ>n#c$qsrdo4& z(N~vcU+8DOJ?N~fGiR`|D@*heOvOrR_uw5}7{ea)yXz5(eyt1nWD#YpGC zI&x4%3J|nmpY}T{1IlhGjy~GBVLwt*eEdKw=JDBg!N6>nw2tVx@Q>y8nswV1Nm0>Z zP7lTT2zosT=(v6k8IA8iTjOzd>dDgu4Qz$%cfOF-ZDUoX$=do-u30$$stpWT$%0{4 z$+B8aPXo{_^s`8m6v)Pq&W+-D&)L^>E9U25Ih?w{LZ8)nkST_!3U zM8&2iL@>OT@=Hr&@5?jQ_1%L9Nt>l;PO|g`qhGLLC~o!#N925c-$@-W4fuya=(Vhj zZK_0b062XbZC13!YGsC9f!KhY9Yv`Sf6Iwv*wJ#&M#=pAL+VQ8BR9p8DH!ZYCJ0P0 zj?+5=7;dceR*nbDH&V7eJMv`fJbAAF1zagGOkk1*Qu|Y3h{p8eH~;z3a}{o>*<^@T z1{bd-{tA|qmL<*i*4?Ik+h(d%b2#m7Jv=P?Y;D!st*6`I!dny9Jd1A{ubuV(|?h!G^-y$K0 z_@N0bUCz259!-2Z%YOZ)%KiqtGeKW?Z)|dXCNh{o2DER`w}k+D zpr}+e$UW}1)K8Cn3Aka)BS0VQvSj26Vh`Q3lT8Ppb5N%O zhuIz(K(k0mTw~162^GyG^Yf9;x_)|?$+uQWUtJeADSm#I;*ld%xU_8T(H0KadQ=L*7Zwq)i9j3u*FVS-j7n?g3)8N_4Sy)AqesRY^4Q7Glt- zo{@fu57wQpPzem@9t_)$q9HI}V2UsrDf6?)yq6*aj$NKc5pIj3b|Q?gdy=&x`G=Nf zlLIyYukvbegEPzXyqm9VZlp~bu*J*H;1hWx;G!vM_lTh6$zt{K(HTCkbJ8QZmGxQd zWJa~3i%G=xBbzs%%l+-5jn7qV@pqmL+Nv2V{Nu%Cw`cM+kG@d8w>K|{!hV_E7{AEw z&qcG>J3%Lk-7*T1W@J>C*{RwtBXjs=pwUT(h1B{AC3I>~y!k*E+fX*}MuNg{CGTei zK_yrl&<)Oj7@;=rNRpPF1oQo z&L9dGj6QO2n(Mtrdg{J#5md|TOH~mnSq6@P!o1K0Z_B-!n zkkRd^(5zv5|NI__SK+WG4W!SOQ(eNu^Uf@-Q$>RS@AJ7-Y8(jGoNPv1Nl(AVBN#Ch zh=JYR-496|xrf7m)p2pns&LwUm|8yO)yK|hMU|pS9^ETA5ByM+a5ecC=lrMg(@kI}8D)Jp~LIB6r+KUbwMW7qRk|l_%?8 zihqPu+rMIp&I$-5aafZA5JWM|DuWFFV)F&%a%&&i@a$x9|C%FjgtF(;?xkEIKw|9d zZm>7N>FRWlB%h*s4ahhCOBVQfBSG|Zjh6tdTOtw5^3D@B;XtaWnmym=Mo$Hw))%6E z#ibQxy~6JL^;o$cGtK~Gw9|0Vo*IjqC`VF*WxK4~`90@uq+v+_;SATeeU`b-D)KlJ zqZzHJudGgcV-d4WTHHQD!%Y%WpyvULt9Uoty8u_LZY>2AG@;O$zPyD1Q zN~KAXhhixJ+mcV~qrqY6KJuPnH6?WD8h_t&$#Zjmo05Og>Q^wr`)Xc#ix=j$GXlq_ zs`(ZX1&}y4jceueCw| z9PzK9)5GjO4g}>b7aUt3{+X*&l#V7P&S0GD1`zX3Vf4M>oPIn>I=ljf=l;Sqx8V_0 zUHsN*zN0}$0ZHG;^ zHC!QoPxdoi;0INIlFpfi2i?CIbBHm;Pd$k%3orszgLtZtEwwLc8_`nv4F|DiFI1bs zsXSDpSO#Isr>jR+dt3P=jT*NC&x7$NEt0m&kZ6&R8-_CY7U*_@6{fHm?Emg_#esMF z>u+abWj0JUjk8omq|fuISH4d%aGT$dgF{P27775|Q441K0sHEYRf%ak5v5v&nZT(6 zB&|BI^@1)O?*BCpRG1VQ@GY_$#7X+x4TzQ45<#_L%j*rky|#0qsj~f7@gQfO#T|%G zxazMLqE0Hd9)dNEUpgeUqiQAbZyDu!GkTF~PM3WGu$Lk9SFin-{4KSCp zejJ*2|KoY6s#dNE_~H9aYh>~%`YnQR3u$@`zf9G!^ieqTHvgGTqQY`k3@Syls}$9l zXX9EN+v1F+lg%nEwf^OLuheXSAK_(vNkZXq^5!hH7E-A40D4e6EwXhs##uv2AVLMm z$~``$aDE}uOX-XBbtabq?0HB2!8P3Zpe?fD;EzeH6PzskhP2Rax9E#kY1i6{C!vP5 zA#)0fuI4x*UhN^27rb?1+7beA`VX14wc%xHdQ&CZU4M4-92e=Ky>XB6G+REs!3?(E zI@7VAkBnA&q9Dlr6I6CIAaDCFcP`V7+gn}A$?xOP3&4WbWFll-J08{1?JEP0J%#&< zRNGDI{`kT|Xi&F}MX$95>GN$T`--t((RYmGw%HF?x-81YYA`OFkcWIPpHptzo7|*D z%xrFRrikJ|(Go`FoKbE+Lf3xkJ+PvaB^khJJ0vh2{vpPeUcQD2%)?@s^~b3pfuzQ! z|CaFctSf8k8;*Mc>1Kc`nzt@oA%ya7*>k7*-0JG;>dTdeg4j0H!j)#3BUSDu~? z@G0nVw^5`pM!zwjF(dx7!LaHO_5uZ zn>vk>qFm+rAAf7CEL(R9B6H6>$fVn1( z2CJ*gt}BdyZ|+$}_<>rPgz!YkC?|3uw|N6P8r!9z z;Cot3u|4li`zxlGzSo13web6yO9wM2QM>^gTYNTZz2wsFhm5a}R&yp-?Ggs3X zs(tIlywr{`tEsJ3WQzY}YqK_|?iCJ7{KIu@qCi#qVM(KD1a2b@V}R0V3jgyS#&>~# zqXbP`9=`-&Rf}4FD&S2W<$oaC+1-kkU#*W25i4|CI*xA zo4-C;LqG%eBKb^}obvL>TFa^GPopA)Y>w) zrz^{NsY!k}v5(=8)+6%trNL}mFu-YI=8A~4lc*|A;R$i7c=M#G%PTyR-l}^T9{b(5 zzGtJ-A9OB(2YtOPXI;rn)X!W&2c3>mG`jyzQ7(&MlmsTcuCq31W}~NYCY~GquGY-{ zUk@PIv1C3^_KQfP+6Erw-6dxErVgG#^T+$|3ksi2VZzqBDCtJ&PMOUQ^$J|*yacp9 z{>X?Ecv<_R)NpXo* zbqIaB_ZOI+_WMeW9!H3kc3(5q0V83k7Q+MFTIpydb??57i7X@1xv3Q+Z=5WHOlA6m zu8w>qMz{ytc)tAlXYX@EM4Wk(npt~|kc>TvFTemsm$X@Cr5 z)B2%JJUJ@Ik(7Z@XIOo*>hKWI)`EU^!njnb8llM%MzNA~zl@X3f166>SMipKR<4du zj?1zw4L2Mb@veUp<-N&xXjiG(XhD#PWlxr0r!XrC;bsQf{9{>17id}3(!+dtMZ~`H z%kP}jp#^MhSFp8BH?N&+7j@KAGE>8z>ph1#Zz6UxZ9jf~Jz+HVvP)^SAcT~^9d;Dq zQBq3eUhpHT^pMxP?3X*65F3dvH`|Y1`xapWbq$-yI$tO-B|i2;X?DTP-8gpn z3W7aVFp6gE>-)R$fV<_HXqIR+lFU^#Ts+ZVnIY24DQy(1A3qixx*2(q;&e0W$SHowMFr%(r2+e(b_m5+?8UWhw6 z0hW3U{y71_oJg14{~oOsWER&Pg1`JELwX~D%C2rK4ozDW0^BhP*4uJ~b=cC1jOrMj zpQV)P?MHqFy)mD4Vrs*Yp49r(XDOTj|H#K3VKT{I(UaBS?V8%3Q<+WLR(&saj{l=7 z%KP)fKknv2p^2qm1JTb(vnyDHfrnn6AGH1M!kM5sgYya`yHcrUeKjhhr8shi=7gM-t0yi~F^GZXQZsRY%>l7RhK8^!dxK{>xqEB_Bi;OmHD~ux0HBdZ)OsY`HbV#QBV8kf$ z?S4G$7Y<>6&fA*Wx~TpfJ6&@4drqHlqw28rRf2YaS<7kn{p^tYUR(Q#z&>Z}!}FO? zkS>1o7?7=keolXz_O=Z@;qoW~Oonryy{bgIPl8x6%mHz|G=R2|qAAb|!an3+ezp>s zL9~Y}jL!%)Ai!v@q3mIF^L5lSqg96!4?`kcWLn4A;Td*8@Jg137X7R~-tgpk+so*8 z-8fz%jLwi$pX@Vl{#l8GPMPBwGfL`jpwx`J&S`#UZ|^4#=)s~pK&yYn#H?PHTi6&( zg~5Q2`5}!r8hJJov|E=dM;BXGd#pTqF*Jt2!GAAifo*+f@$)s4Tqw*duBiS&n7?&x z`lvhn{FE{4f=E}r{EDIT6Qod~q{3s+;+|l0*4a`jPl-1|v`{6lwlo;0W#1d<#ve1) zF2=(Uvp)R=Fh*K1#zv=Ix+&Mwscp)vUz}d4;uv4{(XICO!~bUN zJ*i+_5VAYhHM3uRiO%T-6njPO0q~^n+E+|j!aUz%4CHAQR=5mWU|y0fEF`<{)?Tvc zwxpz$QRD#0j{|egBF;0irG4J}_$4lr+&TbSk2G*}M-FWmb%(%@wh{UVFs7kTkr(7%x5Yx-Bdi4PTlO zKnOKhfN=b^<^YbSF@vzw)%CSTqbU~{)W_Y~a4f8KK%yNtKu{EqiSdQjiG|iepP)~M zmcW1*w+J`4JEz95RPoe>Z6H>M(WA-R9ro5C=>H+%cZl9i6$%-+6qWK`vkAx9-0my1ob^ zfdZ*j_xzT9B~Kq19Sh+it`Q^MJ$N4TFCrmJnD*L}f3xa%_+cYDh>^`)tX1+0|pvJ_@i4_BfLRBVbKQ zsu^RBJ0priXA!%4di`^d!1HZWWk-6ft*+wS+`0hjjQH3lb69GtkHcieT=z|4vt zOl}5+JAKccY-fKlv$y{0gb|L_y1xbRB~<=iaYqYsWplgV6R&uYw%(jYj;Wc1vVLWviYgNPWNizxV=uKL+)3TFUpRet1EZh!X?We2M3ZB&_3#{o3TOAoTbz*RM-MU zLES%#((^aAo!>x0{qpV<1zn@jgS?zgM>_9*m`9vWMub|;ZN~G9bb8z+Ik_tDggh(8&%_4-@Ts&V9{u8OxPdQfV0>~; z9`{pygl|xY*7IMlje9}}u%2Q?NdmXY9psZhLTf;?-3Rgz`4DXOxR~h#m$nn{-G7v1 zBA5eI>^&_4XjwoAqja|vsFyE{%6S|X6AU^q>VtuWu)_L-EP)z%`0dVrP#T2i^O z4G|O@TjrjAud@xX6~*OJ42YwoO#vHluS|nvEIpZ5oJG7sMQ|A1k~YNIwTDZ z$;k;F@}4b>^O6Gq1M{7_{o8|wMY*ry9r#G_LYfL#5iFUmumFcUJ3q^ z4(i*RZF92d-eyFpY5?x+VC$h!mi*+t*xd&@JPd)K>w6R+yhN0KFHTIrFb9AB6b9&v zEkM^lHD?1)#}WLXzx1(`7|V$$RH26hE^hWwbKffSm9PZs(Uv-wS;NKo4-GaS=+khA z?-d&Dgs+agBen6ky$JC$m3}SXRl08cRg8Bf?c2Bda2D|B!6OlW$!Q`~v8Y_CtSm8m z;nKJ!6;?HSW`?$vv5?6+trDf2tXDP-8K0xY-VqAFW{H-4fcoG&F4fCxj+Za@Df`3T z(!Z6Wvx@CMcho&$GE0^^nBU+VJ{B0}D-9XX$H&Ldpnx=O16Dm%l~4xV+44w!dL0&& zv@Maf_23jQa(*8rlluEGAu|I8E)v6<8&a&C|$a{i{S z@ji!%DOWlF_o^;ZQ)tSt0dYuWOX+^;p-G8RM>ycF4#9`L&CKSnv9`XBMLD1d5>zRo)$4 zKHNAcX(2m;j>hyOH9DK~EUav*=H``5a`D?WYnfq)ubeZ4eKQ43vE^6#ecHS%&ed&d zlRoMCPxvjAw=xQb##|9_I5iX+`-dQZB1;VElZZl6{v5)xe}H5%)SdVRst(gk1Wv7g_fSg+%OTrXhnY|E}b^ zq&I^K0PL$l+tO`ypZcLaVidbfRW&t4Dc`YEpMNlaQmmzpw_1Fn`eyCjAGQ2FKYa2z z(bOiKF<-Oc$wK9|DQhMsrjxZ!S_F?>oX>3KoQ*Gv9g$2z`IxQkkBo=tI4{&woq<{( z>o9;Z^VbDw^_`AU(hFt6`>Jyge{@bxIdr)%w8Z+(6y_qlPgVxrs%U9h2x6h=DD1@~ zpPENL_$+Wii!A7kXx7&EivOhJJhdwW$*{D&NX;_xWB?!7JAZ?o@19!a+TL_Vkwt3T zDkCP=(>sY`_p@PqdL$Tcrs*WavZRp&Ja!@$aiLM495D_W3Q<^dICi0jj`y#49*zBt zCGR`D=2MiGQOpMFUm8NflYfO{NR!(lH(3se+(dkIGyf*CNXMutO-cscCxYOnVJ4f0tx7W#;?_FUz(I4eIpVrfx(7UmwQ&L)~VwlZ{YPRk8LmXK(wKFOB9?CNJ*jNOE ziEU9x$T0HVa(^t}kCP3k#bCWYA{u(9sPB7RS{n;x-pYwwNervrMqyFEhLv@7+?i;G{w!}9yS7lnjALh7v^PF#Ec zpgiRYm}g;O86(G|W1^wa*l#&4YH9UW(NQX?7*UWK8~tO{baf@bxf+6cHEhXF;)?#6 zL=Ykn-e}H|v@=CImyM!8BtJa(`?s`g%1MsPp7f}CdTa5o^=DJgPl(tjp?44&0s?{% zn-{q_i{8q@!e3mjAAXL`-^e2i!`9pz+;81}3gJAYfUlz{6z4@H_j(@Q+&l;;z58r9 zTQlaX@2lzK)7Gnt(!r?iP|awN$BW~G?>N~sb?Yun5T?o*{G*b5~Z~qv1xpNb=Xzk{*$G2VHpg9*F9Zhe zhfT|-`S-+G1-d(3+TefdahYzrIodzW1WsSm=?lcc&!gmP;i_NL3Qs&on*UHTN>2m#`Bf#{} zU`Pn2ccWeKsZWb{{_X4qoKR})i(k-5GgR=Cb?DQ^qkjN{@r(zH%-m@;T4?F@-PT{m z-^1(`Hq`Wu<^zhJ_$c!MYqwX>w;Pg^Jr+P%Re7eynYb(i8Fexpw~^A;Ti({Fsi|2= z-h8&%mt#%hxWK>_iBVrRm(U`5cYZVAam0?p*hK4xjWQo;Z&gq?FPLZ~8sl{HzV7Jg zcrs6x87%#>8bW|uMcpQCYkFju@w&!wW4Os==M=viwL?=xQ3ubS^Z2_>8#3~K-y_dY z+b!K!yqx!cWE>q~ww|6{|2XR$xLRna)H>cxycYrp-+iBgjoUMMAetp(q@|^~HWngJ z5Cg+ow!@G@N*>#B(mU@ykDE2-se38ebV5>c^YuaN={mCo#j~=QF(nfUflRegRsuj6 zDTVp;snYdy-IO$jrnv1@ZOxa4dAC zGYoyJY1xKUq7K4Q6%!L{bv#baWnP8vmga^+)y{1mUtL3QvnP<~rG4#(Q_U0WS&JUa znT$WUPv3+$`osRMdTh1UVM_f4rSYU9-+@|+Km_TB*>HAyss?1^g7?n7?DiNe0n&4XR(6x9r;?` zHmV+)D1G`%b~YP@BpXcJ=G4+czKgZd$>~>j56`LMBOWegAD=H2UaO4W^&YK@Zq`i+ z^h4^AHo7MrqRKU1JtW(=wQG4r=Y7?5RJT`OQ zeycKC331xRZXX9*yQJ?QU5k>++q9qlbGkpL-R!$) zN#0Gy@AkRwrb5T|?p*)((C^WLZChB|#6u>iY8kL8yXsL<&NoDM)QT*NC(q56^ZUnBL~vJi2W%n%5w|q}6TDQD3uw4W-uD zTW1OV5Ku1F7TcbE zehK-KxYg#lr&3O#%XN6$92c9M?`JMSBL$eqe;iL)YBgXR8R(uO@+u%FYwZm215 zyESd}xm+vI^EtfZ^qM9hu`}0i<%82ojlq_@EFt0=p9=10&UyPs1^}cfmu6`*nLAdg zM9$|xFf%IOBoBJrbq!CH%6z?F7sOI|y|_L^#Hg%YOG-PY)&@xjxjr$P^1Sf9gQGb& z6tu4UwvF&hYHHg^k1eI8XK^k06oPqFv2BIOpF=PFrDbI94LXTC4q07({gUf_WNS<7 zmKyrLD+8!(#j%#1`& z$(3O*!m!uY){1j-RF+D0%g=9lM5~u>f|QiUPnM~bE&teHp%hT=Ehc}nhVH634G=ap zz{Ok!BGZ28kBo_jT|Z`Z-&V=^bX&f)rDYXvbeA5{Z>)6h zZ}^<3dN}sVa3m&}ZyoKIRClKS>5m75kVWXs<8L|E25QPt=D%0ZvjF*!+11X_CYmB5 zDq1oy2Q(27dTVP)52LX>=bF=C2P2!S%gZ8FCzvmO7;S8D*^AiWy@x3l#Dks zt!CvnNLj?#rD5|LaAHFXBrmV8Wnyl;cIQI$^z`lpo=~gjC&X&d>Gje=QBUwdN%=>J zkDyHb-L3qU&7g<()nBUxmjPnSe}K{U`;TB*SauS^Q)-x`Tuf@l^&P9$`y$;r?kSUJ ze+_`BR1xnjFE76T;l0~;n*OTSQx z!_%CZ_5J)J5~YFtez6B-Q-4k?0H5^+i9B6#lrQpaUnFrvPX2JaqXfF&2b{*Pf334j zhO%JEh6X>mlwW1`Kdok7Nk(dn%nV z((}m2#6`P*=#w`tlrP`w9YpQ0<{cOW+MqVlx_IKDxr_Wd*(I$gD(Y=WgpENx1cj4; zsLxfwyigMzd;Bsz61d5%lW=*Vd^o)v!(lNF*LRpE>ZeC!3z6Eq7NP5_>xC5+8mVl1 zAM07cTZd-j9mWV*fn+9pu{IQgxfQr}a1#PmzKyW74e z;3Y=$XeewAvkv2m+9y^K*ps~)R1Z-0x<`=>L&`REP6!5e_AO(%GG|RG^WYmV@5z#+ z^o2TLuV${zyuUHsB*1+9c*-wQFt?nLbyQx!WgD0X3}79z#h;F6l_zfL-`$p<<>Xkb zYwzF7Lg(E{YW#(&J>lQA+dd=X!)-Yb#zL*yD^CdT7NgWyMdm|r@^V2JTW0v?8_4ku z^K4v=s&c-p`iJBx5O(RJOGw3b=SG-q$g(rs2gnfcmtZ*+Y+$QX!I zh!p;Pe{JIJczg|?rc`q5=`a1ft&X3fO?$J^y|Snoqnk6?#r(SS!t#QrUl)_EE5Rco zmhLXofrU8C%M%(Ba_T#b)D6W;v;xWE+?=Y|dGGHSJ&`iVyn=jk?| zZ*JSRO#+!$dlwkM&i(k+LlZt7jr&fPEihhf#-iO@U6$HTzsG&Yizb(t zfi$G>J>t8(y4oya4tjy3DyrKk<%$2!2%nhvqqX|&_vR)N2YRpf?k(O^Sfbu!F7oev)cNfhZvE$iMVjkf}xWs4r3X=TJtNh`B`Bsl0O z1?V9wKfd|Pk#pU3)#JZ-k$HV5sHv{++Z=Hd^AgBM2*f1jcE4YO6Fe=K(`xvS!``{8 zc6!Ruab>#6;;sU*P=-?Nb}3Pb#ezBCJNl%Xk+&v4dKZqg2U8AR zw=M51@Casf3a@bxO_gxxh3P~7?=Bkmy1WVTJM-Ti^642tAAr2;<5xv2D0VzR*m`*Urhy!8rk^;k)RXv}4qjciFDkr+LTQ~41?57X>L8xm zggo~hb2jQ5fc2^CgXRxl9XKh90-GFS&lo=UB8KK{$DnsYvi)OZ$3mEj4*XKJ#Ze+iJLn^c2$%dEBELO6jhJ0DnG znOXfNPY>4G(B2OE#GP+UoX4bjtn_c3cAltn-9{vzUbWxSL81EazbGiD%ki3c5s0J)_(-9{@c_0Ke49&Z=+9L z%=A3FoYSB@aa>qolkPNOgqm(C~bD5<2fRr0b|`Om8O~{qNt%UhiM^EMR|2RFFYkkVqBajcTQY?B zX@6oN>g_#(pt`m7#z=&(c|JJs3a5=E890A5!pRxi@C&#j_&7y>HP2|3?(=L^Y6Mrp{cw*X=bcI_SMz?! zEw@nfkl&9})P`RijG;Gv-bxzrqWsez4!N|c!1RIIyG`>og4E{F`XW+Hcd__c-x|c* zw{mG+I1fKN`u|T{lfUYJhWtww#SXjiF-lrc7B7zL>*JcUymX;_B5N}yIT_D!`R$ME zXcu-UpQ!$4j<$cv{ns1HUh@3crgNhUSrOFe?H}iNTItjm#7X6qbr$$6{^kGWUZLP# zs`gs5z7yVTKdvLwQh#5qtQbPxxEDpF^BU-&p_p|mJ1WO4{(wj@tCw=K{qy;)2w0zO zK`sIHGOf~j)8RMw*VYRg-EX=d-@h*;G&H;zWjV~v!iIzU(X!6{!&NKdZ)9@FO?m(P z14+v5#|a<5^=_{9U9t(M^la=6-^-pW+b)h=^wcF-Bbco+F9ny3kktp(uBF$v*Zay& zbI#seHcphtt#kElyICQ)gobKL*_E6bA}Aax9ivtEDU)2lwOG6S7BN!T%c=I5ll5jt7nG21UNW9*9UnIKpEC$BkF&}5fm^qa8b) zmx`8XHnZ5b9UiEeG4n*G^JY$3wyQ@{EI5JTVN-CA{YYN$IE6)|HitK(ylb7{;UV%l zD>H55A2hciNrbw=xPC*D)(9IJrQ|=PSqu(7O>I&>L0t};pci0mEJW1h(^68l-iedX zxA&RbsHv%0bj_N0ET5}u!dlO#n0veC_(*3ob#zKD(|t3)JY-Jq znn&Y(x%NtzY)SFUmoFZcXJpOuUWP|1_Yo>vFg?A2D9h^L`%D-%-+(NzCHJC|!?005 z{bmR`R?xhR?-g^lAjd1NU-vGq7rIevcC{JZBbSQFDO_cn%_OJO}0H^X}T(RVwX?NO8>bUoQ23S~w@={Cn;y9pmA&U!)7AHQ&K*pS&|| z&2%nqR~;Z^%|XmS!pINmc%&1ObHH+L2lp#GU#GejistV%A%~jXMDRXkk^E4M%^w`; z3*{+RhUsbD^yu`{$#2lxjCc3x{i{C*FB7?KbxMIauUrS0>Gf?#3r68#LDl0U`^J`i z5xOMYtC+P`qav)@H6u-vOBTQJBLDq@$x9(dTP-JDxL=s}i_DSI4#>u=ZDnofeIFXc z8|mia%qCmQGr7F!w)Qw)pv4UR<`g;~m*d;Uq5Fi$tBAS$CftSYt^iaSOBAuCRU7A6 zqqkVU`Ibw5HUDJ%v>bM8q&vjo^lp4IDy0dIgR>o5UT^V-)pcte#}uKGq{*>r>UPXf zs&Uk~-hP*tCwSc?bm>uiKLX0VbSps}Z0t+9x-&{idArCcMdrAab3I7QH^LFZ3N-{tH872PAWW zRnxm2rpJ6@Ya^JG8t6r@-P6-Eo7kk!vv{E`HHJK2$PV9bA2&%ngY}*+ZKaok8(Aht zCvfLjw}UO*FN;Em-Otb)2r@W7ssfGUs^>W)up4FWPkaXBzk&4x&KtuQgi|`!vo)~H zn$}*`n4BC+HO4IWC*kC-^&f6gdne^m`(2ez#rUX?3qaoLZCO>d!=y#2-gWE!Og{8< zMciKRDcajt-o8CXOhUEiN`edj#?0L{u;cbRj{F~+=?9rRnT0 zdyESbrmLLw8E=MD{5OdqPHQ9E8DGC1%5mf~zIii)eTG)>L@@9Iugt~`rIYtgf4+LY zMMjpKbE>fylZJy4Oj?|}jn=SG_$ict+q^FN3Vu72X5~ECKo6jEQI?8P-rmCtb79W^Vvn8$0g`GJoDJeO6S`W3T zX#Oc^o0YBpR=P(izbOP|mG!SWbU3_BhRr#TOaj zC?SP^lpr#AcGmP0?DmfrKux|R=Y(Qtdg2x&6BtNk2*f_!j*4EVN3_@-n0Fjt=hM67 z-(qTz@>6*K{K_lGGu~2!!@rIyLO~zQ2xdu&lxjXRI8^Svw{HI3 z$p~JWX1jis>8@RVm=qi=G!a;D@aZ1RYIII3mfUNq)%!5Hp>Ea!J=oQy;x_O)XMX?w zyF2-jcx9NUZ+gaWVa264x9)-3`;%%IPA*Q--+sHor23Wz)X^6VXN?OUezmh?+tkBj zr0~_nX1K>=6R0c=yyi;DKK6YESDao&@@G}DI)%dIcClxlQI#}xqna%330@p#@Hj3| zr@v;Nz%mDH0g_w%7^vZKyi3GO!5W8IexC^0+)Ycbq?GoUO*P+rZWtL-82Q<{fCmPJ zbIq`m72b#6a(!BQJY7T~Cj9(Fu7~SKnpaHeaTeVj>K+0uc{{dW$M0X-R`$;;shx1J z9?HqP{qjW3oW0uEC?o6PdWea-`lB@)naf@c{ppYucsNYe)aqkCd_OE)?$2DI?Ejr5 z*^P~yZ))>0`@7wq>BVX7i24k=!yBK_nR69Grv%*v`P;9W2HQlw!)Z>FeG{f4Rh3+o zjM!j6IF}NMtSmhE4DRtWvi1u+ZyardEq83)2Y?;b^E`QNs;&>azO-464v3zub&L)S z#5+j6ZYAIQ?I`C2<45U%)%8770|_IPF=wgpC!YC`hQ78+a!r5z5sCFFXT6|?giUq6 z?XC6OG`|%gO5zi7fcFNiLRMD|92;xsx2t8<4QP;LxL$X%AMtZ(~@&?Jd#kFK4 zJQf=y>=%!Un#)JP8)Ojp zmZfDyucLw^ofuvgUCW^JKZ6>}2402Ro{x7vcIY-Tn-{JpKMCE34K6LOeLxR!-_Whl zzk4Mk<6xuiOuya><%M2n7g}ygYT%ZtMFpLgb}lzL_&hH z(caMU=6=GU_(-W&MfDP$u*+7wOHlAf*=`Qr0ti1&e}20e>fCKX3$VolJY*CPc=fzi z-@h5OW{Vx1JDm@B$D(dIpzhny_5eRbJrh$6av(NoD{#eWsm?XOdU?v-%B=}@&t%?E zq2aiF(vPWyeQeJ|5z>vEScQY|4DZg$>H1$|Vs;e>^+PqvV=xvo(nZYKc$) zIGGB!hQQ_~0lzDDjl)0hV_9)7`Xu=-^QiL5yD$Vurv`jcM}FV6+oW#dA1w5i{70aL z)?oOHo_^%yksEUvrSqI6?BG*f_RQhG>Ve=P;nVuPFH0+2K7`Ko)UD(oaC6u0-7fT) zkk0o}Tk8A@*b0)`T*I7zmcbJ}8tO)e`(nQkNAIer35%|dn>_Y(mEUhmju2z1;omfjcF!`aRO`pK<6Prusu_(YOsmHJclcX@T=75Dsy9 z2|FR&nY*v**Eie< zWsz~FEh43PmsK=U&JKI8R6g(x{ceJr&?_0nTD_sMaozd6;W@rj4^u4+*Khc!+XOL? zcwCVmeHN+dCk3mf&Fq?W;Y<89|EiE54|#_V{qi{+as0^X8%g`SB?S})h3((gAF5Yp za=C+<4pOX&`)0t$e0EGM$KP$kC2hb00|qsfeR1bs6@i;#8 zKCyng_MC{An5o?lj!qo|so@azWYdz`?c^bERUk*UUf?2u9C1V@v* zW|iJH_&dGvpR5RwEDxfZ;$Z5mx%j6)s*({Ax1{v z{~{OSzbE|P6aL??fq!R){}_#bCz$^jiT`sw*#CM$Slyb>cEX?WS}DW}9>dR9}}(wiR)&``dykS2rIUpgrVwnyyy zCd(}wb8>v_=u}+d0%|$wEqz4s?b=H1gA)bun_LouziIJExuh@6@m9=I#-5Fq`;4-S zTgKd`EtgmlOty!Ar8Lyg|D{+?UG?hzv0z!RSoQ1OlAdz!I(grWPZNedtts|>MSfwY znv?dFO^8#L(>VIwM$ah5L>rddH`y?PwVFlNoW5u)%iRq3^xR)uC9akAc)4N%t(M$A zbXEk#SdzD;Ut2rZJW-REo5Og&OKj^qA^MKX2!*& zJFUh(19pS@{nsYNWQ|+fRnfz@h!}1^4L3)Yh$y%1lq{cImu5E0)MOl(4nOL?DH|Am zqS&f37~nU!43yuW16!c_d^@@1Y}%q#-?r)MmnFdKq8*qTINv-OzWK-2cAAp^)2~!@#%)Y}X4Z)w`TCT#C6~KGzua5b*463Lv^BQA(ljD% zplHZWziU#W&{QFX5!JG&cL?)g>KdkDzK1#=%~||(mS5S&z)-MSO*Wh-TTFr}p=xV8 ziqRejxg3pLGCJBYcF{2Ov_4hnOR31|f-WJ!M>et&}Z=Ppkt=LoPhbPq5 zDgoKR!=>nby2{)D3=UOc-pp^U-Xn7w=pX4S$OZXFfo8h52Q46gFMP7pH+7Iz+W$|M zQ{Jw5G4i{r9e(8atR}=JXL8wYU+WYOZW-I*4x9&yWPVPt#ruEjlm1AwS zT0VZFbdC9ia$+s-jMTDd*^YqgwWl@_ptn1irn6MraHa6+W6DogJeVZv* z{*t2-rZRnsmws$kI4wTip^zMW)y+a(R6+F8dx^Q;&og^I3pkK1i`-2x26vraNrbu; zzcevU5#68QcJ1c%XQ@FmD|&+giiTa@46GVyPv)TOZbDQVGm0xxhtfv z#%{t;G(45#Fq+%aEY<-tsy%gM5Scv;GI*PHHQvkGIF z_`(;?n*qX36N_5(!7RMo`xkJXL~>qFoma9)oUxwGeHE)$1`WK5@4g(KIC%4TDCS@W z+~=rhg`t5<{6L^K?GV*6!5UR=8!^IvuaR;8dmkewZ`Rn%={cC!3e24~&tu`nv*`ik zDb9o1$}ex0=y4-k`p=bFZr?B{!_yPW9N$k%jq{X)lxJ*>Cz8b3W3(&?~SA zB^Ka4`}tdQ5R2}^oNdg5ogKL;co(S6|t=ssWO>=pP=RB=qjm5l)_L z2&R;e@;Vqe5@M<#VVKmatJ6kxpc_io6(`s3jEhY|jWTx;w*+=nM#1j|YZH0LeRB9b z&8|7#lu7HF;W&h4e#4uV$r+^KgnbWwb~mu9F-cnZeuy#G_Krl8gGgL6RPJUOjk_>v z=ptcQP<8di!3LGm{%ZT|_dfaRK6>>Vy5yOCqx8a(9WBuYWiqbA_TpV$zHOdT!h{Qw z4Xe*Q=l3N~IKbS)FIo}nE9MKFmfNZ5AtMKp&wE zP-}z0uP8wI!?NUj$!pK$-<~Sc<2!5$Wlt-9lGoXSfqp9?EAFP#D$}^Wl09~WA%@u@ zEdi?=wI;7awkNU+$PkB$++06KBX)q)CeH>pzZ=CRGcg&P&HdNjH$e_b_rUAdba}GR zQE?`tLlwO}jgNVF5or*Te6F&BO@IN%Ag!Z6G%BnU-LBX3X*$Ncuh_KEF@YV@`bDkY zIaI2AP_%LDtm(*+t~hK8sSiajtX-Mk6Zv9Y60`t+NO z!;d1f`SShi?q%VUn5u#ue-=nB(r4Pyb$*_*b{cFw{pj6{>4cF|pS5Gkzi;`IlU1~~ zla}utQYi1%&DtZTEEP8NOVU%A)cPw{ed(^PWXT?V)j8k()KBnJw`4RIl{Fr_jh9d$iCjh{3pSk^)QnEycZk6`FZGEAyN=6X%O*mDca~EET+{f?w(s z*1dF-71aDz)!7HLXV0ieXmks36L#rP*kDF$WO z9eG<}Nbthw!ERCQty~96W)$pVdxsQh3?&;8|I(cyGECPiYNFppW04`Ys0jB?3c?Er z!STB=&oVNXF*_qngQ#(E6Z~uAFCqC*wkpT03w&1Mbg{1a=YT(cxa$W_di?F+;@8+3 z;*Dm7C$g$|mFpEV{pg@WqN8S{r7;{_IldU$vPK7xWs)7x5l>P~8TS8pFSVsr($nmqs*6(yG6BfcN*+p? zj8c55I+!3YVwRN2T?`kQdb}1_SB3jBd-q#=qPXv>ODz)L4S3aq(1Eqa8N!4OH zdFGQp%<5Dob)M`Jh%OH#bF$6!=>qZ_JKb?P8(`w2kalE2^ijFzu0m!n;r1zb-}d8M z$BjC};NCIEbz$_T;@%1X zsd+1Sn6&DfJ->;YRhMXdPk^W|P&4O%JiTm$K#{3K8{tLqY|H$DDxlbjz}MN0?G7(u zlW*~}NQj`INBhcLaJA9lyta-}$xj9?_k~)T#f<z773?bm z&OS0{C;C0B<2u9DfA0MmT9ugcxguC188RX?Zny3b_DJsam8gG(*g+UE2`@zrtI~9 z&c1VXE;rlixc-Z@07?IfFT=>#0}~KTFstY-`Nz%m_C1TUc{i_04p?wYj#JvW!b})(sMtvqcRVc`6@1{*MHOi zXC2VpBc4&`;lXwoQ`O>}_d*?#2ZYqoRx)ICB$IYYm4z3^0w9EXg&7KTdb-E!+TFb* zuc03;s>Z$_g-iOgouk54vo7^*)g6`wNY8F-ck8C#q3+HD&9k3+hswo&Nro6_6X5fe zdlR!GS+%k6>f{(_%kB9x^m>mYZ?6YIREwWlLFq5tqj>fV=_vqWSQL4zDYK%m30T*> zdm&dh8dLVL5O}D4)t^Y|ALgH&xRw6BEMX;$rj3(7xp;A z@s_^u9R8=|p+0lRnQKc+$h6xKTze~0INofMZOf?&QcuQ*Fn?_*Y3_F0!S&m%%60&L z01(gvuiPumSc_ug4w>VGF!Dpr#gszfz@Ju<>FNKWv^o~k&dv2sIra#b*x9q6Dl2UO zVNb<88kx=_n236epGNw)w-gC6X#|47vT0peW%?_#R?0~cKU4f6Qw)B1w*0Yer>6Rc zoTSa0nOMKpk9&9hknOH#ou&_##Xy5Zgy64l*dPr~J?fiqh9qFo;FmXBwaJ5SYMfvO z^qy9D-53$hoPX3RGqvQ)c?Q0bUn$UtW5g@#(gRi|Dd9HxMca2~kCKv+x_ZvqS&xXX zqtvO(KB*Ay4ZgPMLcTBCZPjJ`o-k#nbh!??B}9IIHQ{?_?5d{}Ox~t5Hzh5E(H2xa zxr|0u)!G8QCyG(_Cko2AKa-*~&+AR$Gd7QK@@0e1@S}vjVk5CLp1Iyrpk|5UAk zp`mdl8YO$!6l35WwwETqtUY?1&V+gfMp0Y4WpVzKer%;@j7jlGt|fstS0F{Qt9fWA zQ}KDpEc{s8ZtArC<$$R$1OT+n>4FUoTP9w*vgcf&xiU*UeC`GY3gMxo!dF z&VvF=vjPNN%MjAUYd0U+p4Are#KGhKqclR%fa9PE$x5@{xnmzPDmQV3V;e^crBfP3JCCVp;no<_CG%* zD|NmMlxU@^R}0V7Ec7j_40z5a#K*%`H5jWYPF}XFX^^(idT*{51nOciV*M}#a zA+9wVUx>L5F_qy}-;=Ru7oB}wZQZi{8H8>G?Pwv(9pO_TPSmJhV~Vp_hr8}^|l13yC6L5i!9lq_`J<|p$5A49FRv?klE-^)!WEhm+c@`aYj z#Ol|r1CErHAEYYh8KEMEV}9#uo9-Yw>HEmUrQc-li%u%Y+B>cEVw0&V-R6S$vLM&> zz22Nu*GWa$h$>s;o^H7A&EFjEA5gB9YV(XJ&3JrnYw#FBh-;^v+J&QzOd^$<87bFF z+%GTVodF(-?|$>m!f8_A{Wv2cVPaF;6Z&0Yb#t5U&~1boc{;P-q&i>-#iNoR1yMY@ATbSi31|5H z){mM_1Q0%Y^vm?ZpG5lL!mTHhOrW5Q%#1P}1=s5iDUiA!xKj#D``ESHKXqx^7WX_n z+~~BSD@2qUPmgpQS5Tfy4w`^3aegbykY37A1fIp-qQ)a2Wu&aO_L3@QFzeR}tDNt$ z5k0-{*9w6L`Yyx}mz2~8<80#x_7rDKE&Py$MPP$`zp1@ zeHM7U@*jhOJ%j`_|26K!0R?}h!SPKN{b)#$KhInET?0PQ0m&sUHL)0SN4eA~-3l97 zBUu=wAC)p|ciw6*(W!55I_g7)d~XFLUS^^f7Xo$=HZb%6N3X1ytUTG)G0ofsPJR;% z$_l_V8&prP5bE`~6wy9}QiQ>|Qx#}p2)pJ(rn$Lan`&|kU+BT9|&uWU5@#gvUX`TH*{$+l1e(L1Z? zw|?eWAh1%Hemn;S&O$-JP_P8vEr-9kC+?x-3w#te?Zl;mJy7gf<}aV?q-f8J?Xk@) z7fKWrLGeZ!d>C+?)t1j5rhPpM+!6$*#~k!5C>|))QFyTdAt9dN&iZR6MT2<7#_(4G zF0VBw+1W}y?zyvk8LHlo_R7T}?zHn=Yuit(DBaZIXW@IXNjUr|WZa{(kF)w;iLUmI zjQI=kAJEMIIwNJs;qa4V*uavaPC~^Xazd$pZKd%Rvyq?Yj+SXnUacF!gGJ)(Uz=W| z%~M>q;hMvO$P>5gn#n;95bEaV!}ul$WkFCV%W1+KyP(5(OE@QQIZrNRTb|kkB!R#2oTkhB@v(XU&caf{Q1?9IbmjdK; z@g5a{d6+Fmf?L4dEb7l-bklY39a|!?51AW}cr=&4Ykuj3gB=|7^#o|bj8`4M)!+my zfnVzgNR#MB_$?rkbb5{HNR0=Dc2T!kLTu6!&}?Q2gP5AlNml=r?i~MBvc8dli^+d- zav6Cx{+2M=21~mAa20F2s&P3`O(+ely4QiELPp`CzkJoB^NAaLK4!5=twt^qWi{7G z818~_yMY$Dc(;n;lj9Ry7Lqf>(#=m$T=kw_>uXfMeD@UyG$>5E>xu{}VY)-IX>qZ2 zu7CVlO_}$b54K}Jw7fK{5}}MGYwB<+wCc9T)`+P$YYFgCqoM`=EMAR+`=x;hq{yU~Eq_JC7;`7{*)y`^*<=@` z$ISWcu~>}-#a(Tu9GNYU2BMQEEHF0rJr~dp*;zjMFPM%zUW#uCi9uV}oc? zGVOgBG+54BMX|}Z=#G+Ly)HR^65bDY|FJSnF`NxW8FKwe05`_8y?{)I$P_91SM|G5#C?}Bus~Og-x*t$1uV|pMr9H+HkfL zJ}3?1A%cWqK9gYhkV-=;PrnO9!y?1mtog5jp#dO+N|pPM+BR+3LmlcpnEWPc=PR-C zYY|~3LTsy7M^%6&_n$5ZKzXg5M93Pqq3W9J(mf29v(3+OuO~=2MZtnn`U@;?18G%i=z3KA%k^)vsy%4 zx%&t9-s#qUo3imDaf^iXH}`f=I;g31za%y;QvkxD54cndjlOv#^dyq6dr@Qs3cjF} ziQH1cEnsGWY*<8e*9i&HMV^a@2tCLeO_dEPEPYv<~Y zq-r9eH>KARp|oK@ys5~Fg(wE=((y%Uox}A(W?_iwXt3f{e6WHKh(MIhkGj%WBw&Ds zfCAoj1|y9W8t)n=r*k_W7EeAc6OQ9Qhgv|GOh(otF%+<;K`$!xe&we^daTsgvQQZ1 z4|1@kQ=2^7`g$Y1_Qbbk&LjtpiWXMBG@X{|&S`#ur)?CgRja1Ukz_8H6c--qm z^Zv@A__Baa>Q9OSE`aTq+$p`QWGvS{ah$J^@%AyWfS@Sdu8TUrQ3%X&boT~!F%esU zP6Mf|2e0n+r0NTXE+uojnM|dI;TbSuY2BO08u5p)Zc#uOEcBgHJ>eMj$pYd(h&b>l(WmVe|o-{UT<5Ru*EfH1z>ARO14iypw zYa%hig0-~SjR@zX_P)WZYd@y)XnT4{y8D5PNpicj#L=uh)uDH;I1>@{vFnC;qKI@Q zF*j(8=<5lVZEB8biGcbaWFBJptanG!@A{O$zxGb6XgK<}O(Nvb?;UUyoD}r)Qp??< z-d%cd6iA^;d}I5I*V|9Oj^0`XN!=_Y4KCM{g!`+yu!LX!u7E#9h5>~C1bD-T%t@vJ zkRL@2rh}XJazD*4&I6^uj0aDLn8%0HNK6Th#MAi_vM0V|RQsESLAsR*C6MwFW+~%Bar7 z)CDkSYz79!)ruLP%CTpc+PaOozs!H7g2b9aQ=>hh%X<(%SbVKZ5u;T1LWb~zC`!;n$)$1Db z$W%}9Tw|j;uWqQceKyu6a?iQ*d<`6TfGb1?YhNEp<+5DobQ@UKS7;@}$RdnIq(J*m z&jg5Com=Hu^q!33OAlF@^X&t5DpkMAO}JpR@tv~fmL(_-4&q=iltdun^wce=qvk6} z?M1~Ly#p$wwnq7ode5?w(&K|eMNE}JbBqiJhrR1wIo7t>2;){|B|9~&V$4vF-!Wdi zJ}$2G_#1ggCd$#Rvr$3j_9tG`s%R);q#(3|xdgEc1RT8tP&V!CTHBg$7}OhAPpd+5 z>%~+-Sbu-%;gQeo_$4Cy!7pzWVuP;&g7;|^=UPb#=*p%Sc*|mFZq}+{D`{EJs8zzc z9!!hgyAN_wz6)Me*oWP##XO*MKD%lh`@k}} zmOYOogGRD1gcr1;FJKKyU*73cd5G-zSed0AiE-wZJuj%9%Y?c!<77VdIl>8C%Z70uJtzfwxU@KySorA9<>Iw_#5+pViGC;x?7b) zVabs9aw3txK?PdutpK-pQYl#Bc=IQdAk|f$1rZ${k2HV}Ed!8@HWMctE@EQk+Gdv^ zVZazW)YheIC~`UNgSruaL8v6gGy(tJett! z!{KgZSu$|TH9r^{p@%HpkOc+h-*{5zBOYFtt5pO2|AmI^KZVp^pj$^nDWK1xcPtAQ z9HYE4-h~RcVw1Lz!=7Vmo&NsP0|X9hb%{w$iV@PU+&q499|s%d+r^-s24CY3>osW- z#{YE9AxjM8yq>iI@Tv7d5Q|HSFOi*;hy^PNd<=0(0fa@2b3}aK^`|>hKLI5-HIVbL zantAJQgYcVW#0(bcI!bVNG(N81#Th6wztviR|n@@q8jwv$?H_=BS`Q3aXX@m&s zH6lwAXYFvj_|Y=PXy9b-_oN%EiH3z~FA+N(1*bgPkTvc|+@!6{bX~*;pSpKW*3Lp* z-nC5Qk4OFdqg}%(*qO_bh>gd9!vT?xP&S%7?kbE{iQty0ps%qHX128*)~q_M25(2)7G^0k@$iIyKS0t}iMw^f{0d7#`*Rl9BiG zHRrbk#F>GPRotN7Bc=iP5-;k?&byflFK~^eyIMUpU0QVq%3rvyE29USNOi`2j(ttQ zb;9uujYHB~iWb2XfMt1Aez|sPK-K7AGMmqnq{hZnOvBkyR(>97*$A|4d#jdW8h8Oh z%a)Ub!`amT*kk(&4mmj!>SgCRx|5wHB1Mer4je}UZAMOe|I0ZhB_5|_affWu_Wg}Y z|90%ihaG?Wi_&g&kH7taCFzQ$%}sx7mv|qW;k^*4(Fq?wP~O$^oY5#-`-%JRTQ&2|9zQ~zC}Ykfb-ww8`>Ym z0&xTA;VAf-_B7hM!}p}j!Bq1;e)NkoNc7-2J%`!%`D`M}y%cuXh3GLjo(vH5+WX?H zBi;CAFI5OKBiof~;9oPnZ1&27_*!qmc`LIQaZMi0(-$M@>cGOE+V82-4&^!6O(u)^ zeN@Vz$*oP*ZrcoYJEku9rN4LmM~tG7*MJC83D(tMyQIF)oWfl|3mGB(9=S(66zfpWMp_1(i3cwJu4bVlnkJ7%4fs*^2nANUiYxT`DUMi zS{Y97=NaMz;DeB27O!rD*Y#?LR8)9h+{1M`a8)y;_lY`SP)XL0pMqN~s*(@9CRq24 zssw)KW3qeha8@PZq7g}sBFr@Kcs79Xv(H&vY7vxP&mtV2uFjh@AQvFG|m7(AWo7K6%oZK8<9lu|y4Lu0T_UejEIdVR18m`P+Yp;8wxJGu0nuB4~l{cNJV(*Fzb zS!5U2NRe^y#ZnI`MVMUbE5AI0Wx;bLCuG}&bZm1^$!?>VJBlqDbRm2Fjtp1L(pm;$ zQbJ6#h*2q6PxUtn2hDh+4 zA{L{SH~s&(^W}G$KfEH~5F#XLfqMuE=srhhz>uL0`$A#xzSpObo~w|*=&Aq6<0QWa zHN$1-&q(NY+>+j^SX;1`%}-2AqgD5mAAlO=IkE;Z0?L<*EoJ(UP3XRRnKa1mh+r>- zN15q;$V_Etg8PhBVj556_3d}#_&no@g7Zyt(R&z)nzKeQDzy1gb9oqn1P%7t!kQ-Q zEScgHsQeJ$h`Nb=e%yi;e{v@Rvjmh<@9cC3WbcSN|5rdgyHtqZD}#g1G{0oLb?M7} zRBbb4laphQ&zEx>`lJV7+JALgmGY9i0FK(Kx2{pY{^BO$OY0RsuE&4Nl94)Ca{aCo znR~qB4sy=c-DaJGH{ZH&A1w)1R%~`v$qDT~+DM)$58u}ZgiR*^ftmOi+@wA*1wblD ze~B+FYTdb^i;N#|@GmcFf9Bi2Z|^k#fNLw-&qK-_M8%7Pe(y8~6LM07Dsm5};gko2 z7Xt&b3#dRxdAqwRMcP>G)ZRQAN6v2Y{sR5XR%YRBU#u4XCpy-Qz9N3(-7U8I@+UM; zaBL&k6uyl!Wc{J2SfRr)#H$rDys8bV$2Gvaux_qF4S?`*E35l*HbJ`b;&T45VtG`s zPlNnkEr%|Q8cA$00^z)%cB34;;)ef}O>m^GqDQS1vDbc2RjkW3;Cj!Y)S|8IP|^iP zgAwB+g7Y9SG2H2fdwp`+d;c;|KHuJk) zpI6sZKQoUH4EfrU_BE(i2=z-< zSIHYi^3_hO94;d=7KHXygAb>2*7|1J5#s{*8_aCE!3p-$;tpf&4Cs3a1p0k{6`#m1 ztV)wKb;WV6O|=?_x(K+CE#DaS#^a8^-QhFfBtLgHBn?uCNpOR1P=JkVUt@o@U77($ zE`xNg;rfj?gh?-_E6)Rig1|S>?mt>bD8JFXf>`frYqKMncIB&iM>ZFV^|5fY^8{#R zI;O%Rq9=^Nmg3yjG~yK0rH2hiX90(kfN+!=I1=+Z9EvD|p%rs*7Io;?81@nklXtRS z1+R8bvVMK%dYWV(7?Y;oe95Z*kx9bp9i08N+Ja#E;31OcLkXsdP$8_iHNTOYk9O~w z%91oSAG{9%-^Aa6w4@-nQZ^py%%77uC+?YqgBos)5zbNWw7NTJdsGh@6xdHm@UR9P z_D*fWIz~oD7O3BKF`3WcMHU2PX^nq1OZnJl__ZYh0oircjp)vKwxsoe^Ngz3cLoR{ zBY@1e0~v-j0Sa0QsVP}GBd4b6H#d8ZlZeyZ`o1jMA$MbB;-f8i)-2;utL(?YK^-KfA}b|yt^#iywwLJAIpn;o-SwEPh+5cu zwB|YO&m2z3g?motp4bx#TL#5*-Syz&njdRxL!KEzvke|^NI zhm3@v$YjEdRa!YC+^fv;QZn*CguV7JF2k&V_eUYxroW3)VITV#0Z@Q6A z3?a>^Ld!h4xFmh&FR$4`T?OzLH>=SIPciT^)~fe(IP@pPRP90@nVT=9!i=xty0PRe%<#xDk{n+n=dw@b`e%q z`B;tM_$f(jk;Kz}NW8;$SHyy<76XdG9R!OVa*2I}DKDjOwFORVySG1!G;~&yaHqBO zIKV8}C~{}OCuY(3_`$=SaNyipI2+>QdY8isWbUuwY}WnI3z2=(^mt_*Xm2hcf>xSE zBQ9rb5NL~9T~PkujdGwaLY(y=w}$Q|_`gPpD;w@O9fL6SH(C8H(`=AEzqUMeJIL)K z^~F_&p@#ExB2Pa7XX8(|dGw3N*NkcNvhTvmoAZi@uj@2awU}Q$8g=Q2C<@8jhs)hk zS;4nsA!_@g`v&tSLf;-8aW{tejjun*7$818y%ij;H!;C@577}IBE_v?Gs1wKuXC8y zc(N$VE;crPx{P2dX1{%NbCpBZY5vbaBbzOT;i9>`pFh3bcdA8f&4m#eq>$`kwGP`A z@qXq7)Y=3s>m$7>$VdkFR}WUF)c^uQ+_D?GC|(|5Z$NkzIn!~nY&90*1o$Eho(&X% zFEpFZ7qPdnnwtzR?fdUF5$%VDW%MFI2l;;hM1dkN?soT$jOv|7Sr)B>%!~*<^b@#? zN7D=BaEP*(k2pE2!1Ps~8u-npZuRTQpX3P`!2EVSiiUR^c!EdIiT>XA4D|oZg=`fo zkleEX(y2w4PdrJ>-aRq#y~t|QXY2yfiUtmdbno_QpOl_G$(%|Qt>(K zrtaD%*>rk|OQ6dxq*i?oyJLUdAu%vAD|>7g(hHtwk@z zGpTMcWS9U&O(DWM&Kb@byW*Tu6pST|E7~QPz2^FxtL%P$eh5%71}F~BIRnIMCM-~C z+?`gd3BX|q{J_RWRx2^tT-1S&x;ny}zP!;W;7$;+4k6b-8up)@0A8fH^ppH{e4rvL|pU7qh4 zQi58+Efc-$vHJ%OI!p@k`_BS_BVT3AT!jT=bgQJ=u^k*srHADyL$q?HBjTUl0?=Hr z7N-bC2lCc$*JUG0{EL?my$!!KSR~bfM9}8LP19hm8VpqE@D8lL8<85k%FonNE`lfQ zoqnli4Q@Omt6L_66!GxFZ2E&@hNex4Y1(GY)>=Z1k&zW%khDQfy9@M234d@RMo`KM z$q~>|C2jxJZH@c}>Fgmu3y-4mSL>h2J^Uqw6!cTY*(ZT6q1g;2#?0r*Di}g5b z3CvL9RpVY}^bxLZZJ;58XFvg=JSttc(P zd`@ED{$KGbeRW3H%retf_)Tuy(-PWkeF9u9U{LyLoh*sP<5+zixSx722e9vFd(Byx zWWOdDV>+$iYKW_(=OMSth=c_+yP^)S zFXty6e`5}vRGgyYZw@MNy*rDDqR2!-Q3*~SooK|j!xC~BNWg-itK~@k!0K0C;jP#z zdY6fR@bvNTD0FVUlVAlsJ7wDgBRsMl%P5b(8MA|A^GIU*00EIHZ~WLd0O6)Y>DjVgjZaNKmFAyEA?pf3>6TD6}nt_yFAv z7V8(K^pkrE%T)W29whL^oB;y>s&EgKq17QEz#nPKXs%*V3YR*pW$Cvu89upu(j_Ib z?vn1StE+S~lSq%alg&+omS7xXeCSi{8F2_qkEvSqsTv?*_Y=|Gm#h_y$v1lPG;2@1 zyVO&N-UDO*(aL0E@mN!tXPn>HY$U)y7m!h3*l1Cie$v%o`iR)uq-J=lp)qWOG3)i- z608oGmBK)khE@oCa7W{{BTZ1_-%Kg~sk^vb!Gr=*X?n~z4!vwu!**(8r;|=VGto%@ zH9Ixr?6tid6eND;@rb*oEtb|t({E_>t}_FKr>4HUGW)%*6kHd;zGK~4FNXh(J266cOe5jFa(;_{VW3}PfaP<9@G(uEu&`h3)^VDMhWQ_f{ z-t(+a#9L!jpf%2B$6F=R?0Dl zH-lK&_s)m25(3^C2=rk4Lu#V6rI~CpO7Su#?&v*Toxd)xO!K~ znLLzaW{jgr&`MzQ5COjziY=u3U_AKS45}PP;e9e5PiE_xJje%$QO{&Bw}jta6wE8L zOBN+0J?i%yVU8QeiATno8o}bm5-@`r#Bbj{wvht>E5C(TO_$iIfw;lV3&%Uk@gCz{ zGqyVhZK^}t+JEeR78Q0Kb|z%?g<25MWLLGht9>4sWVE3hCg%yIag*(}feZT#ik9*$-U1 zTF7ZZI<2+No{I=ZIMSx;5KV9LhffP&*a~z7qJ*dU%=Jlfo6~8r!Zda5Pw zz8*s4W_Vo)!kh1sXwx?JsD9_X>;r2N7H+xcrpeKSmqes1PfD^t0XQ!X0-r#=`D)fa;C#^TNs<4JySEN%v+eptX=$OfNL$=nXmNtO zmEx|&rMLulrxYt*+zC!`cZcExCpZ)+?(SsYdEWP%efGTHp6{PCb7l^c3?UirT=#V? zU%#~$nUKZe63~q|-=r=J01VfIh5*YG$P^+9wU@$^0r>rw;LB2kqC>=T0Z8tMq2bWG zZJ@q2yx39_@Lqua7ZG88RGqAoJ%A~SL-Nh_O*qqW?44r)`aR&hCCL;U@7ofJ(az3OPEF?-#jazP*dprq6092V-sj4Y-aWk_N8}LaUGE_1&YDHB4B+$ z!DVT=oI6m)yGue2R(D?ps`Mh$`zu{uJMZBXAjKBK2ET+Mu;>8rYEQLXq4nG)9p5pt zu+pjSNMQ)UN`MrGutq_q*veaq(`hYWBQx{Qu2awd1hDK**ZSjm-}z_U^flie58=k- zHq@0)0g;@Cqa4u(&k=mU9$akjOiv^2?(5TDw{21eY=tQxkf}V{a#}X2o}l4mMV_#s=Fnp`^W+O7s73Zt+TyGo2`aI0RiYVJ=R87{%h=NFY7|=xe8*yd?yC3Bc#?Fd?Awp}AowKwpo{HgR-c z3N7GX>P&5qSz6*jdvz<1y$yxhh-%v!iC#o?FHA=pNM_^*0ERR?^@-dvU<&`;ThFnbu~7nW1J1j%YKStL z6Z7I|TJvhzrxb|2o|o4PP9komtQDBDc+b8TDia6T6ZtLN+QE}i^dD$C8azt@L{GZu zQKrw5^F_rYB8c#KT3-(U3F?Rx5*AKRPGAQ{J~>HhjOU}8klmfcErd7&V)H6y)HQtX zxSm{%6@w*e!^6i;Yqb$TE5z3isoBB+Roc-|sItY%^^r$F90WFXRa`o}uP7+PDP?<0YzOl8SI(W>7AL?FOIUy?O-_ul|bAN&_&Uw%gC}c5Y^tXKr(K zfm?TSUnz^pHG4dXggrEfAnG=k_Wte@00QWCoiqoC1?M3;k02`kPhW+idoDEBxZ)#> z6+Fh3%)ShGxtgsc?0^ehy-%D~5-7s8Tb%=91p6fQB*eU_Kvk~d0gzqU{V#56ad2=P z{Zrb)o%qin&b>zkvL_vlPS?ivp>C&I%3&Bpb}SMA-RPH8GjYIe1fDf{uAA*Ul8dJ zEm4dg#vCdV|8v4^5;1$5;e`cl)9N`y6&HH-9E0uAt$q=Zc9tVWbh4!UZ-%ZoR@1K5 zuk`|<=r793hC1j-a^g}_A;6yzVd+4F5q4)ptI^2+=GLLWt!Hy{!G?{2v6OFANS~U= z0Ap`~;BT%eRjhry3NQ{NA82EWH1i)VO6}xC{@phxlmTPA zO&nH%ZmCbr2Z43lka zM1RRzRs_r>$)p9A-|?SqN_8Bm8s}62*LzczD)t`vX1_uxI_4PHNA+cNH;^GcM zpg0n^SWb|wpeIdZw*c0(0F zn@B{(z$njTsA+s$+^=81B!M(0aErX)>3zf%5mfl!T~TK%pBiyRV8kvRTk01*y)po* zNUVB zC;a@)&tEjzF=C%$Xn3~l7VYhAC;#r06|Im@3rzC4UYlU~(hQw#PCL0eJ3C*6LJE%y z3u1EFlHs;Oi`l8)--Uk^<$5msT0F|U;N6R^?bk~<&x8p`5ud!s5phy^{mj6rg|LYS z?~O{@yBENl|NVp6^jHh~neglX>tnSvG->Vs`l;~i02crMzkg0dKvGj0(go+N)r#;a z6@UGVz(|Yf)%SNTdB^-w#;j7jvF~FCYV;nX-Zjy_=+gN7&*q>1aCr$F66UxZut($X zflt0O^Zx6^`ckt}joz^IvMoyB?n#n z%RFVY(X;;g+J`=$elg&{3BW&W5EmvJm;a9o2XE&iNZ}e@nrcJ{TwjbPURsqNcYc0; z`|vP<+*dDe+cJaU-5sg{c*C12lhr~ zQTy9=Uvoi0aAag8YzSDYQRwHa4&aCQ_6s5m$h1@7pL$L#8qs${%0CjTJmasm)`)lAIy7eZEbzJ z&iJBhAv7`)6SzH^MCsDRM+L-1-1sQ|IRg(-J_OhNd#nBru33-R-duRj(({0&QasJv zJGQj6WB+stCmOp#{xx0VQ46XH~55L=ZYN+GPR zO?;tr|1AtS#bX!o|B+Vafi{4DGN=IJ#sX`{J8ByxfX!m4ad1jLgAk)gOdGkN>i@=(h)ij7P zbW%M5iPHNr+pj$0|7+p#U(AhCe0!V3<7f&#CGI`rk5i_}(_(s%VDA0n4u{_-z_h$p z%o-Fkn~RGts(||qSJ!h7v|sP5rz($zlQ-S;Q%0TcSC3X3&pAl7+FqRev3LVnRLy+-jE26n>$@ z2^CYrK(FwclTIkt7#UN1lEYEx6eLR*f_CxRs8fpp&xiq*a?Ia?SyNxn<~;aevz!kC zGT_A-^oaxD)E!c#_!tlyj=M;j(w{r;_IE zF_nZ)acS-0W5w7nE8+`lIvpYUh)9h%WhZABR_9w)Q(4H!cMMMRIO-Q&vwz!5Q#Txv zEo-F_l9q@UriB$T5$`Yei#m@fAKOxGx;#m$SYY2B8gC-`Mku^XWFU{h(iB2U) z5LKICGL*>Xv)FJ90=|_f=jI7qVRy6ruo*&Z+Y-3CYG7{hhbFJ%EbR?wF*`_+BKqA6 z_8#RB9YH9sqiOYW(^;~BBb9)FKyEB;c%^yi6aNSf)gK(c_&1!0GgU#APIJl`z9%Lb z?w33XAl=BVkLIHrN`o9;;VhIy{CG3bCX5<;WrRjMhlhrvSNkKJ3s%#oJqS*H)NXPg z4Wn;7eN5E+QpB|vCfzuwGut@Hef5d9Tys)IiOP&qoc8#0b>-G>df6=@5cHUqiGNzI znL~P$cI}*K|otBH)GyZTEbSx}3cJ|)^XxP6=s9zW* z!4qsiKF);gt-Dt(_Y*S3gg>ljU4JoX=y<;Yr;Sr&FzrV>!2@Ckwb;ZMU9g)Y1Cv}C zLFpK}swc0M$Z6!TrARgmN~vBv&6k68DoJ?#be>6{Ns$2zm@Z!#E{NwLj}81zchPaQ zwM3&b+@lo*{A;BL+6XS9=8bUH;-L_jQcW!Te88rW_Q*Ntm}t0BJj)&J9K=tYU&!2g zg1(OK_=zgrV7|s;zh+W?zwNHs_-Vzva06gxH49Y%MXUjqc;*)pg(|Jw6ZJeaC>49P0|sMpr+A$#yl@>i~BhB5(Ik;dVMKbBg- z5E%Tb;k(o*n>On|o+6#M$lTWxVb5v$BWxr`j#kXmlW)$d?nDkaQ%3Qef6M$~-(6Jx zXvyQnGp3Wh6`fuq1%A0k9ZRP{QK9)Ub`^Fa3Q8gxJd@Pw?>evgY7JDmwax9!f8<17 zBNe1wKYw&OxJbM1DIdcXcL>WctQ19Yc}@e?t)XNXY#@KEun?Q%$0y~2t3bETtZKe` z3qA}O%^IG`X*OBWuJ;YVJD(dcu%?h7!{co9F7AXJw$fd5w8Cwb)&po*b*#WCtD%5A z9Dr%tbmpg8bzPrechD5oz7$qO{Zu%UF-~TiD=N;V;GR24JCTfj(KH&y)IQt_zo%9Z zykHpA;$7fNZ|e=WKe^N9GD7D&Xh1&lToI}9K_N=1rMx;<~N%EjGR**Z5)bW-@P zbbMQ$+Ktv6<`FM9xbgS}B2#bi*e@LdLuiEwjPAK=&hirVy0nH`+#OF^M7iCeZ>ATr z*WEn!Dm^eJwM8jbqX+&H-CBj`D;EaEva5}f`*MPRysgi7Rgvb{%?J_w?$J6jktYMN zq$#XKlkyP%nSs^u$`};<=!LBQcv%lnlZ#a|6n5@(6+Tt|t9oMkyi0Ur7)K)xgZgVg zqAI1N(l3kE=fu+{B90QOeNH9~x#DmWf4eU6b3qIvNsX!qF)?N6z3}S_t2x%g$G-N4 zlTGdG{%8q@;XXnBY-2zSp};Ygy#Dy1^6c$9YBtyz5Jb!pD@B1zCpjW1)3rsGVUG1! z3p>%zwALxwdVVDC*@?%}K*CaR)HJ%CsEbQSpRSavl)`46CZRXiEaWEjOD@)n2tmFI zoB%R1a@>%~kLS!kj`^{e_9vZ;#LCE75(lECP25aQl*!z#S;)Na(Sm}5rD()5k%MG# zU*^4Zj_=52O|l9yt|Mhi@1=S>LbEmV!t#r3ZD?tNlm#R*S3=!%%bFDl34SgmDy-_6 zVa4m;Igwy%wA|8Y)wp3=!evYP7ELBk$ASLEo99v*-uyIePXHTxe2LLJ?K?9bVT4Uv z`fHU%I5Rwi{8*HtQx|@Xzw-D^3Slb!>+byZIdXt1Qr8i<7q`qRFT0 z9Sp|G%|DEa=}F$_d&s8a`4EwIyD>??Wpm#T${u@G5ZBDKTM`N<=wppy-wceP4-*56 z6zWjKOPtf^P>shd5*eM1E z?)LU@Wo9uv$BC||OYBwSLnNR3 zc{H_D!9-2%#@P4->Z&(Ju2tF_yG!omam-R%Px9 zkfX-Z@WlP9SHFI(N$zLgaxX(6Oz-~T@I@no4~v6Haj@H?EM>t>ElFs%BGkM^y=7QK zU^*b?fOhmtT72KK$^wr&a)=_s3!`W*Z9aUEj^yiSCH2c5<_8IKAwS5=X$>Xz?CF)f zN6+|AZ}^dsyZNu~UzO-oK7D?E?!softV1PBpirp#`zoE#R?eh%FT1?f4CAOU?lTw~ z^HGLC$cGCx2qqUb(x&vO87!S+g%lSgTX43c( zHC+j08N2WXrNPbD-0`T6qxF@+LaPQ1Gx(B3p8LdYxpkqLXa;bwiGj=VFf)HDRQ=r3 z>;2>QrFPD5_fRJ~G0@6LmwJNT!h!4QY^=iiopVL#<0^%B9>s+hbuukm|7en&&prD# zLGWO`2;)r6J)BlX%daI_o#P%hr6%U)Nmyi$f{}NNW(}9O#N0PiQ4`AL%NZ%FbzH#}q<6ppk6wQmhcc8*}Zc~nfHkzYctWvB#_eiRJa;WQ?S6v)zSow|RNk*bM zd)f=A4ZBYztV^VbK8==uYah zZNqzXMM!<`v{{P;pix_=^#F!p>m?P!hVHs{E44D+)!4XZ6DEc7Ry^ z>k+LrlpTQ8jc$eWt9mIJ7nmC#GeO z-O~(uRRJAWN(O%$La?c;`p7)(I{fZpp?QEOdU9h=nbDYEv#k+$F#_Y~3@1=8RNa0B z*Q<&v0@U@g?2^~@Y9IH}{n^a`p-^V&62`K?!+ACT`Ed?9I>u*NRKJ855`!NDcFM>I z)KC~-?_oz!ZTA*DmG~I`dLZeMlk$CFbnsGlcTNS#)i;{Cc<|D6*$Aj^&Xk^W&P@bK zI*%gQciUX>ZbzYV55yPb3OHkUZfwqHH~4yg_w?aZLy1h(u~K~>N;K7t0unel%4*4G zwcy|kY+BtFpl#sA=QLL;n>c&PzZ?ae6(TL5zw^ z>#TACkN%&Nkv+rh5sJw*~^P z+qd!m@~F?meLG?YKIq>May4G*UrmmW*J(9a;=0_53Poa+^aRYbBoMAZ8H%~WgI+xs zbi2+XaosOyL@>%uT=~QTU!k)hq9Q>+fopix&)qU&uPj^)1 zNzfkGA@;M?(ou7tj+I|FkJo)d8}VXcl?Gd3Z1U_8Bq8Qhia4Y;4WC@q`GUzDkce$6 z-goy<__S^kNmcf$c#)Gf_r_VWd#g6=f2rvqrhkKRpps>P88#ktS%+B>L~Pp@qHWXa zf2qTlY($vr5gd{LIbD3K5{=0<(RHerMF`5z3&^jZ%{}XlnX%7Fr3e+A z;a8_jP>RSN7hBnsr>fbydAN*C34HaPnaYi=_UxpO-0boG22ivd39{DK@TObyY9E63 zIx3Sy-`oA1@s}n5(<6(8TH1s#l-`sve*sKASU&GI_YzV&Uhn zna>TM9<=50EoH||*?2qfOvGPAl@6D4-aJQK50LJ+Ey+zcg$llYOuic*HiuIpfN9rh z7mknjTj0WJOOUeN@DIE&Qt?gBoH zO=UzIT3|pBker=FIj*7gaRA01KpClpsovh+Q3GI5I8FCEyH{-e z{^U%RE|4WiDmFJt<#q4dfBfMP6?vYGbC~F=ufKGoth%~7_;kP^bhcMZF1SlL0W7~$^HN>;TjPZID@nj4a?v7jc=xxabcDn?4i75k6BTiy?m z{=Nv2lvuwCT#PVg6Pg8=pKQo5%maSh5z`VvQYZHuFg|*uvP!D~>kG!_{_^ z*`QUx?Uqk(ng=BQF>C`m0hJ*4PK)=ZpYvVuM!LQTOmtWk!=Id+llsSdOaP)oKzK0~ z8Z&CvUBfV^6RG2r2K_l?vgFPw!kOr-O(nt^OQ<9c+8P|*tTL_!3E(Hhk8X7B9cl@B z$*&7k0YR0Pq14f6sM(Ucs<@znAf$j1Qqan%;3>fe2=Mk5dwk%Rt5q`xc5lSGUocsI zYik5y)qTyoaKdGVC9j>l#K!HluraN2wJ597`qCXO@Xr9)Ed&F@AyF-+QZ|Iho(xAqfP?zH}}buAvRq3lD)Qt^%%c z4MqNIVGyLd2uEG-g8I=83K{cB@A?|ucRREVb@_Vgi6tVZ-(lCI$oQobOHw1O3Z=we zymqW4h=m4>RujyMlGFXdq4yh0(lObnRvhd)o-VH_Xt~hIwuM7Bt!oWGBd5*sV|pV= zl;9&l7#^e9!v(CMItMCN_R8Xc@f}I=gx2KrbnQF`Ai|o$#kp4G0}O}*DucG%8FZWC z9P-{iek&I5-~HA3+BGOD{6mdL4ow^R+#iBDJ4;O2rd|bb8|=&tnchd>F%5QpoM~SY zm#th{s*g@+`Wj6+!$gLEN~(5>&3=-086)z_fKli|b)L!1?#_EDU669ystR*AP<;sOn2lJSgBTZ z@7u~$=+p;lofS(}uMb_@yQ6&1vAxLW7Z!*PZeXsr?Gsw%7Nt@juyZFZ3LRg5uTWd` zh5G}djS2|}5XBUi-(U;0u1kJUF0P%^HIAZrTiHb!t|QC6!Ggb zmkJr$C}mdM!rPEu<9a|A(JdCJ&`uPxCmV-4@yhYWe@J(jnH<2`VJ?@E`6>ND@&kX1 z=v#%41IDbf$*jrrW%r~q2@KD_?v>WBEqlV}t~r5#`pi&QU>K1MQXLEmtBH!V9&(f8 zS7=EyZyCswaL=w%HJTld;E4#ApVI0JFW|9qiz3ZB0txU}DUl_PYDpHbG3Ye>RM*oa zX$C^}s~1Y8Y7#Z-IlKm5!v&>`3Y8jL1!fO1?aLmoEH+N2WQN@G9qD2Pk1cptPW05` zaq=F8Ra+xprj5&?I=}EbMlK=$>Tfqmq;i#9tS|m$DCv{YJ<>YrHcfeXWm~U##Pkz1 z(o7k#+q<9>>hjSV%C=A5Vd?IF<4p)k-LIojZ&s6qjK+)UxA*s*oY#7b#0*Gz>cm#4 z0P_@)ZXyt)70Yxk5jN}=?@Hk-)op67S1ZRh7s&Q|yM%9`op1>z>mwF|wv?LGBuq2( zDHn4r?SThH_Gu}PtVgo(0hf&tJQ3M&__^BbVEl#DhMHx#`_cQ}p~}NyS2usR6#gKS!`YAE*9AQLv5?hc1)qd&p+`bY;EkL9 z0-@26f{c;T(L0W-`*jF97T&t=&!c2+ZJvCgwjIkdA=xHpP?)J*UJjY@VO zP;UgdF2{XJ(i~2{a{n-j@5w~y`#6qYV{!QU^@vcD8+KyERHf6 zv%jkOSsyLU+}I4<%h1=^M*~RzuCj@5h7j)9;V#0!5qtUWt+j3Q{Fp*8Ubgg?W?&GB zi;@^3&lRQ|dU<&XWQwdP>tPb>7E~n6`}_OGUsjm)g&wrid>?O+j9Cc*`!-(zGJMr` z<~(vej>Ua)z0PxT&2;R4xES7n)(80=tH3W|W`>o4 zFSe@jkglU!RR}p@9Kts7RxNS0vrt-MK0t!*UkR@ZTBs(K9Nv z%Cu&(GI^7^T~4m0jXh_*^?>rGi2e{Q8R%*D^Xx5Ji)a_dJCDIYs!JTY)hr^Vjd(s3 zd||0ZN$J7Hla%P~Ct;m*6&m5r&Rb5rQjI#BJ^1=hGwTad@%0`0fQ(emYP{GhiKK;W z4`O(}O=JG~kLmKhp-}y5jlGQ8+n7QF%)R-?lhc$VyyC5t{2fNtHjXp#h5k0EVWs3s zk)L=YaEQretb-?fDup%;`Dl+0VkS%Zl^LB!Nl0D{6#0%q&A+RKjfQN1mp3JN-N& zZ^m0374ypIDej1y6Go7!NKWkucAh3!X;7IVK8e?aKUp@#gVF9|i+G>QUL&84j;7K2 z=8APMK~XK8O1^BaPGLYq3hY!}$hA)?DmIDlnXm@m+WeaxnU?p@DvH`6S8Z1UEuQsD znjB+MwRj4JiUBDotEzNzf=3Awnw4I-iSSD-ugzygK$X&qO%2!EaN zbD1JR{}7z+LI!%N)2^=}d=T#p8Mw!*f^=sPx!~ak!TX)j(;P@z4?sI|RI$!7zl~XE znQw!t{%8_aFNXC{H0neu_}&`<(d{9-tTFTB-?ePF#)zydEXdCg*Qq3Dz6q+uMxm8j zyd^dc>pJh}$6vBR->zu0Oq+ueZW%^zpko-NbKn_uqrHQP`8gto9^OPabV=G$d6Y#Y zuXTA=CUj^x$t+D-LqqUE&0RzUC5<1k5R4+zGRadED|Yw8H<8R*3mg;jjFdF}em%q2 zenN`c@oLF+e0e!?i?(R`<$B-MY5I{@EMwhljAgBOrADqIjbicioI_aY^+^AaWj@^WlnrpoFwtOd7xz&`ZGU&nI%JGIMF%L>ky}#&IBkWvNAd`@r7?L|0E z%${}MpQ5MvYR;w&9bzusGX$hxoxV+@7_rYcY}+Zdn`NOa6!&R#JhZUgFmEW6=9GpJ z;G0`D%xD?iZ#G^a{}{IS>9AWt$}7{9^;)T97*@zFxBaPH*^w;7mui;bojek0`nzG9 zc)cbA0AqxU{l?)6s#H3Xol<;3%uIJrF1Vbj)NyPVy)#Mec&Xs?d!Ub8rc^I)^A37y z7?BCXJic~zT_d8m(QXySU6JVXet6igKO(!|{H|Z|aJf)nnb~f_1B*UlKD{|?2H0-- zbymqQI~3P|&*LjAqs_~;l%B0y0_f=HA~<=BQ&goK8C%iN&Hk+gjXEpbt^50@2x7M% zboK4WxOxopDNbT_)m=UrA)U2_cysTM`SY9}UpY>#2HT&bu8am_3B`4GhQz&RV_L0JJ!UUMU5)7 zfLs%^WE#urCqo>I5yEYXh_D11=bT8&h_(@unHUKPrByY^J40EdUgZmpe7(N%n~1A0 zrafMVR~$l|dwPK75b@e}CUUIC4$rklRe!N#)jiY-6vl!!B6MUZ&v)RIz@#s)tq_!d-?xiX`(o)AbnIi_Y~D07hdHs|o87-~QL4X}VsG8qU9tJog=2;gGa}odWMz z!z>_Ch&qt#8LUb-#~$-RcPcl(u58&fs?OZvGXnZz7#>nPt^11uoX)}>FKy6uX;(96 z_c@3K&$`R+w_S{=s;%{Ay*XH?mZc<03p~zCkkuD)MUXXJ*`}u6=sc4>@ZLTmDuZ-# zt)Jb{n!C{mLm+jW4Iv8pcAYEpFH3wD$BOW@{K>dg&FzRagPkpG8e#nBUp4l};_4 z5OU}JY>CHTdgYy7=6iGTz-nP6Kep0Fc5-c3aUNoBe{DHW<3aEJ#3ph&=SyqffQ(&= zB0&P{iZ&O(MteU-V9o4@7GeK{>bP=M&qA)1dHB$v%0e4xPiM=GO5< zmr0Fl4HwD#aaVDKF0@6>Rd+x)qEtw$wON*(>bD@odG<>cESt_5!sc^K+ItacHk0nU zIaENV(5RKQiCT6>1=9$T90?B7 zW)O_tle?&c{wU1Z056J6)tRiIrVYhX%tTg<2&+SWExKBs+1VdN_{rbojK7AJ1&&6> z3mYX{Aam+;O%w2gB{c{bzRZ;n`?N0T_|#1@m7jn3_?THlL-{PD!Q9q%D?iotuOsB{DHb4l13xEcb-qVI z4I&^RF?MVCl%*(68xz3YUKK{KAF=*YyDQxvo*0i!-Ha4I`0jOjWH#) z;RP#NpXiJze|c>}+ZS&VhcO?ovzkf8RR+kV7jZl96@w`>MYvXr*j|6Hx&#B2Dz9Af zbpRZxY%)-MOS)3Scp?|A1wMAAL>Etl92Sr+>W3*=paS50s=eHW3Njw$D3pP)pFeLH&`Ew-?H6AUb z)a5D^;{DM?=Cm_0$HyHZieTYAFXzD~>CNtf1|Gk-n*W4j0V<;G9ky2smZ=cGBJh97 zg^nJ#YsL4zbJS(wCnMEG#nAali;*RDo(Gb+fzxE%3;}J#rSb`YE)O zDrqmQlv-PwWT}EwieX)KwLL%-Vx$a&2h!@NEyx%w5Oikf^SR`X6u9KBhws~y+|4oB z-P=<;4%n7;loPWOaw$>DpOG}!9=YR{EQx>$4l9_IhDN|Xc1&edRL&A*z(ub;a}>u z3jrBw9#T^ruVx)q&3b}Rb2Gyh<>tB0DegK~gwJ8oLj86fj3r9&*7%`acE8a=`C9A#*>;6S*I^>Fmw zW8%4&^907P%w4(|=j+Aao(<;nJzm!L5 zI;M1+il%AM<9FtFzT&yc<|!9dIL#H`pWeSxq7!3HMw-6YW9dZ$ppe2-Ht5*S*)^Po zYZfpq{tcz#>Beg=b>8(f<+AsFCh*p)P5J_|E#85dui;=$SuNgQS{cNn0q#BuZ#M@o_yuGuMm-P3)L#+ zG_0#*Ns#50@$|%x61-)H@IH$A+|9Jdq;rRq*3F0dU%E5#SvQkfTa%*W458x;;?R8= zbcR%sE0&?E?xsi!*lANTX6jtgPVb_})1%|OG6!qgrn~RgFEr0N_qnn(zk&FpSM)!8>kyzAZGI3Gb?8E6=8 z^RsqnF!RFcZI9V#@@4R6qqJ#|cczY6u$0BfvJtiiD-L71vYV4Pu=@ zn!JawZeJ+r4(~*OTk!QBILxA=N89uibBRpFq@(&a0gd{XE@&&{zxR8=J z2MCL7XxH9D1o`L(uTk}(DbYoz;+Z+e??&GI+I*!ljD;(?Ld#tfoxbcB4oXWiDbuwe z9|hISW@^q=iWW{*{rwjEe=zbnW&xPB=98AZwL$mbE-7U;g;F&mJG&oE`ev}S{{dLckJI>!Z@sjIw4qc&?;phAbl58Em3N7!M zb{K7BCL!U7xm=Grdg89tuZ)e<*s}Er3;dJx!!T}!8|u1xcqW%d$hggOjN&ZHZ8PE{ zpXJ21jHAfrI2qH&P+Nr?Z0!$_0u9c%-H-~eD-t90dBDov9t$t zDzY5MapAKkCMyMNsH#uvzxaO(JyI#0DTE=1*782|P;gk!nlE9@KBO;Hcjgn1AARIm z)n3`GT6xUyDvR*aChNlV4&1AGDwC&dxZ-`4-728asuznA1sKXC3*jA`yCzB>(8Er_ zZh<}yQc+=W4|0gW*;~4{y=$Mo;llgdAFiw{#k6r?x8Cn)9p)vG+0LRe=~^Wm*M51b z7lb9(fYd}!EJi%yEz#q5nKy+6Dx z(EIC;zcgIs5gJ#OWcSlalt(FjW`dQO{>AqS7xsl3`Mrr9^h8~c=f3c}11A?31anl^ zYjfqru{{v^bBqbGi(WNg3c>>wPKF?m9$J0=z_K#=-3t$H1H%shbh%w#+mjCh-#6pg zD}fv@9r>h})-Q)E7fQAs=EQ}4+RBooig6ow7GnHel)`Vz{li-{)@1Z0fu%)Pc>DF- z=m^#7$8_C~Q^Wn|mHDnfsfe3E!>)-66Y+Efo}iDAwnY$Pz{@@Yac5>tTj92)meY4M+z8Ki-C`mFZ5 zSr;3{0wJ7L^(y~FMV>Pnv5fl!Wb`Nw5)NwtCRG;B)E);=y^zH3P64_8J+9-ndUJm` zNPoSG<#<~KIa5q|sM6rsnAGaq+MRFWE|L6!5X zD?X8sk9hkX2ihw<8F=GF1|zyQAYDd;&%9>zaZWZgZ|JUJtq9zoJK0j>h1HiM31kOrqKkZXzzqk;#Cyyar4yynL#R+Rhv^XbNF-lvZY zFOgx$LKyKMaQ4EP82^6z9RVoOn|r&7_!4Y>1>erhJ(OL+UaT?RPvC~^=8Kwe`Ye=>sneEabS?5a zNa5Wrb{q7vgn*%ff3ci^#MIr3n6ARrISN%H0z_55oN^_!gR!&dUVJFK|Glb_`|Sl1w%@yO!}3LDm3zS z&X!~ytQDIYjf*%EzI1s<$wUbfheT z3dxZD8DT{KSH^4MPjE#c&w~q)kNx2s z$>k%~*z!2kF6-0l?dc3L2Fo<%mpK^7$RZj>a|U;$K)Akr6kkCg!%I-6P}RjhcU5TB z+~|4)>N?XqHa*=#>blhVa3%DKGuzoqTiOX>+T=*RS6qNB9fU9GDbp7mAlP^Cu8H`dj{QvCd$ zBrt0Co^H_7;Jl330!jv|hvb`&*U9gHuIM{|B){&s`vofkdS;Bp6^M)ag4;Ix-#{ey zbTdqGcwFV?cYy#aX|%8`tr%VGMo}?bR)2*KfSc~5Ha)p%)XoeJv)OoIUBS!VWr5!q z@$S>jlX)(jK|#;0$AOP3Oq&k_djmL$hV(CM9LmCTpRQCDDV$AwhM4J3v|NW8Y=k0d zqtRD=crR%VqJx*{c* zXm*+#vfs29Y1KN72OzJz$HtIk5=%P>hQ^MWgUMQ$R&KG z0HmDdRfa}hZmp7OX%E&@Oo8i9RPt$mcrQ)xnt-f55X$S{(mk(+hjC@60+42Ho5pyp z($Lxj<;Jen;MS;4s8 zM}i#ltG`}4CI0gd8J#HA1=WxHJ67DTc#T$}>Io%ZPXj_U^0vuAr&sOpbPUr`gH9A; z#p0Rcho(u*4R*F;Z(wNg0Nbcw-zPW{02i_1>~3~lkpn8LdSBZn*gUQt7HB9{mx=U$ z-uAK+XD4DkWa(Rrt#atV`8$uzgL!o9WHPG@-i_285_xCb@8pCs|u3?J?pt!{ND6^63c^ zav9yZS`9V3EJYV&_=E3Jva##DOO>nIP)j`>AzkhiCoWZRb;bAgrY9sJp^B9P zoQzqZ@A&mj^2(M#^U+A1wk=ffXekyL4q~^pbQR#A9O*`Gn)LSe$Z!jmchfeyeB_N) zZ3g|@xTXIm3zdBBr$1I`=-X$jj3WT>2Yx%_&3`ea0vJRZ{+M&K+)6cKB|8mj#Y%;0 z+}oMnH_NW=Lwv5Y(N6PXy88FKZ_C}nwvD?*D`$5?I#3L* z#SUO{ic}^>EVUd}y!80O!jMh#L2rV#b#G3Tz~EYsOuuQ>xC(I-S?T7u7e20ZK`O~x zu3=3u+V^kPb#n;^z~o6vAZl6936P~49qwDSC>>BAwt_&PE$EJM=NbQ2fuyzTyCR#D z8W-=(-pranI|tj(;Ffpqn91_A;uW0X5tE+fdDV5#4hlYfJdVMu>6;8gSLe^wGuEvv6>R>>S|5KY2PP{N0Or7-T)l3ex<0*l95( z6PGxZxStvpMyj%C4{M|1Kcx zZiyzh8$Hu#^5OwNUatyswc9=z%3-8l+iQCg!>_m62}lSGx6)ng{J$B9SmZo^)xX8o zQswr(&-*ae>m*=(_H60MwDWe4&3m4Geqp`>7Bjk)%wa@D%&5^})4bo+cGs3TSDk;h zcs5$uN5*${Q0|*EejJK!kAHtl5h-+|>d~k0E*6^2KWZ%{T~wNnF*4i4q*d{rE#<*6`tGI8`vveR7f0b=P=PKK=J%VQdnY^V_q0dDG>ofnf-z zLn@au>lyKmN|KQC%d>9QO$Eqc6I(uuZ!deDRs~u83Y=Laj}Dt!wu38ZqxjbCyc2cK zz4;)S+kzrbnXtl5I;)E?HCZRc3)J_3#V-mZ4O0h>4_(7( zlh!(T2IHPuX{>a|3>mxKZkX_2|E=C{gZBQdw(vM}cUk(%>MGd!(*&7=HRJCcra2fm^TsT^fTX{%dY>DW1aS_Q>`c?%(2?-sxTUA!G$@p93=%g%7(31u~0RM-{LLb!L>Y@=bAkp zqn0dhdZZZC3PzmMh5}~vDFw>kfU);H)#LMj+(Ajdwn7jaM}gQl*9Q!%mT~bc+QW}F ztq<}OJ66LuTe5FC*%LUz$yi!hV66PAfBeb014J;1ELexOPOX}Ddhb_v!30EPrdztp zom}#FZ-YraXcnxS85i2uNn6aKmgd~INC`mbr(@kwF{2yYS0xZ;`>y`mKOTE!L!r3z z?tlD(2Ta*0Yxw82_vjKa(rw%#O4)i2F33zrGX@+-+xtbZ1ZeWPg$YDjG@EY9?+$H~ z)?m3JZ@|*vRyDfBf%=W>O)mMZq$uz2k(ZcAWIoqQKDU$AHz!e}e*ob6M&nk-|6=N_ zqN04?uaAHrNJvOZNQ3kc(jwhRNh2LYcMPE@2t#~n=@yWdZUh;mhED13?vVH9x88&Q z!LvA-H8VW(+_kU0KNnCt{?i{&`B^x=O$=vD;{T~MTo^ubALS5g6#nBCek1Qwe+2AlQvs~B&AHlzMIB@3hes{ zN#WR#fDB!cxL4@!--NVm9_3!RfC*2Vkd($O^hQH1ao*X>zX zn)3+jX;kJLfmG71M*7+Ig52du5#{Ek2>r;)MuMw96r^WJh^e%wL&rg){zC>i!rSk43K~gGQ?94G z`z}(hwhCH<&HN&e-EXgf6eth+p%_gS+OzhZ27KWX;^jgsCgLVnC$vfP03@yuuis)q zOJV5a2gS0QPTOP= zS0XP1dQ&nYyEs>+I0QYE!n^|UpCaS5Y11BsrOpq2&bH-?+vR2x2={Acfh6leF|Reb zg&WSD{^X|_^|0 z2{OYMM^QX;_TMhj+6BekEF>Irb-|aIjD-7AZ!0OaaL@@yO%5+#C1}JeG9n^()|*ZK zeG*%!B1H)feyl2TX8^k_j0WD;vTU8=;ZaBw63O{*2qw5|1@yD7^Fz7Q)3jd6eos1v#~caht=8tn0Tb$26;)vv1UI(Wx3UPVjGt?Fk9D?F_pwvr2xh*9#+}f*}zPVWNrT z?)b+Bu~YW=j?``Vp%T?R-6lIcLrw||?6Q97+RdqLlp5!_{5j43^H_CwM){Q3MR z`b;VrzsosqajpNIrdcJM&btf4jif^HOye61-6R^BXLys--156AxJZrMdAieKge@z~ zv3=|68IVp!(P(Ll2zU!Z@XO>v?~=(sak(^4COOzi0c)^Z=-~Xo(Tnx~J;+Z-)c0 zX5!=-j{NKRl5nm6FcVQ9OnFk;oi#onW}uNHB+sR*=sJHjPtB8|^-3{n7Fv)H+R8I* zZtpGqB29ApJ&80OKGsI*-`!f@#XsoR3w7#Y^>dKxg~}@Ei?BmPM1*#NN?$`WJ+8K! z1fXQQ0WNb?urqwG7!&J9TS#hUb*}>l`+D{dx`F&8YXRuAqB zjf|iy4{Y=-hj>e0g@%L(UH*qAbQpxjLIRIGca^@Kuf`la?OY&X95SX*311LbUo_!L z_>3yNIQ^9%EU!>A@DfTsF*P;}Lh+o{g8k_x)cbPhd1Kw7Xi)~CSrS(u&q}nPBuPre$Ars`g5yP;{PMXzk=1~~RHte3l89f%{lOh?GeTj$3 zg8?DH%NdH2r^y=Nx=y~^Fxj+qK=Y(KG39`8j)v!W%E;}V)Z}eCkcjR{RlP((LhFEx zs^X_sfjE>X-U(zCv0x?VmAF!dL0G8q6F54!nAZDiRaXWTmXX6)8olbQzcw80R{CCf zNjo(%k4`Rp+dqo?V=*JYn2oA_M$vRgR-{i*%z^bZSt|rthNWy|Ep}|Mi}Yzu#h)GO zg2Qoo^13jdjS=pq`+qh6>zHj=_RI!8@#y0OS!p_X*}l|V@``;8Dn!7tJx?9sd}87x z1BH`f!M7w~PIm&PVx4f)S39%}XsA z8~nBPfZlrhGAn26KYbFxh(fr96Zd_9 zR?v~|NAA;9BoRYwUU#H*N7}Tqu{ECNL~>`mklQz5KN8G?N-??JCWzdA)l<3s76_&N z>r5AjHIK(W?0bLuU|xfpZ6@#YbfhUOk|fsq7bRz^mQe4=ZDCGYzVmXvErH;F_g+`gylv}h{jB0_DSdH!)-C$Q3 zPV0fs1$A?y1r`x=ly%2t*sRBegl=UHeh{c0XV{fSO{Cb>2)}(#xj@k3#BM~unNML< z_b%{%ysZkCP6s8%{#tZlXKAH(B6C=uP|W!jZuY%&1MhHA>Q9h zoiSOsAfvx?OV`BMUn*uVU&q5mccbR2QiY2se6M7E!Bg*j6RVo807mp85rrJz)P8jpJlC@OPK*aVk%{i}?C> z$I*T)y-_bWy`yNw+bk(x{f2DXDq{a`TsNgpWl%0vsygz<&reX3#QxWu=EV}dm#W#Y zs|*{K;;X{WZohv$8DW^L+8moG#s13b-Pa#e|Gc3@`Z;{AHoByk0*ZjFY!aNSzAk2BP(@VgD9^SAZhgQMBKE*TO+lrppR*+`%So z3{w3m4Ap#C$MnJF?!4JlySCzY&@t?{_ow@ODoRW+S&cV=G0A~Gu6N1Dc7_;slXY=e zdbiM7ckU;+Fy-Y{o5D-IP`5gwcRUR|*ikAQ%4>y2b<4Sa2fw>7{wA28&n0XT`Bntg zl9(85e`MsQzCt=Sc1Lggvd-MNPIYXMYvbx(sI3Y2fzCK)o+L#x&hn-<`kr8-|_S|PnR&FH_>-0^mr2vl{*NJ3Es!K}?SuRLyg1{dz#s*P3HYZE-K6>*Eeax;VMqfp@ zz&?+!QNr9~V7&_5O<8!?))I7_Xl~uLjMd+}zP++LAcU$mkQwE^`63`nVjmrN<*BHs zaQ!{vUZtFMYq9XmLunTTFS9Q`5Zclsr=0hcm8KI=bS|NF`q?@use4TALrp*sW1qdf2yMwDuLiGOLp;jw7Z;`L2v!1bX2o&9!o&O9$vcax=?MvtmG1Z^4SWL0 z73M7S$wd5)%iTvD8G{%6Jr61@B2NFl-ozgRbvQHQ%x(T|{_g5F%w*Lo@RA6~ z&Ck@t@7VFhZ&@a9uY^^F*IqSmwA`HB(PV(MhRg7(+2GWjQIp$xbgNW8=p2J+kQV)E zc)DL}8v#Gag%$@sIH5L+CZYXlLg{7uQQSFSG@qC97inSS;s!RK3)>mTDvPV}CchlQ zFrkD&k4m#CY_<~!GbNnW#Jv_X(wzUy!}i--Ufb{Bl5g+Gg~o_~YFB5|F4TIfsef6b zQK{UbkE>!I{wtgCz|dNl`9(7+bDNWs>T3(9C zLbC-%g0d8Ej*H3kz%$~Qez_u|-D<)kemWRs!eZmhsnS60{_Vo2( ze3j1umc)80sqw&5c+&k}pQXPJqR}1#`ZRG{pW5r6xCn$hlgcV!)AO-HB}L2?bG^iV zKvKDVLFlGKpRlHl(yCrJUeIe`OU>dCrH)v;Mhg@?b}E6_NP{gwHvakiz@J|O-(UX5 ze{+-Aj(_M+qec#>d!3zMLfn5i+iIDYKw7`7U4B%PlN0f4@xr&`Cq4U9%TB-7O7H7f z4NDXeMDSq`>78DR!u7~Vv;EJtW#buCyX?vav+}+`*E#bw*Y`a45P5?H-C<6y_C6a zXHM#iEHshz7`K`Rw%Gc`PbMz=4I3XypO!3U5S8b$m7JkOyR7&M-ORdO-W}Ydw=+>X z^fQYeVPRl~c6dQ44pJ=Z8TF`s*hVCVG=eiv7>y0J@8vsDOL9I1tw}AdQdE6&w8&$A zbYZ@(hD~T!_@JLg^x^(2giK=TT9zoWO&r%6-yV_YLm8)uZBU%E{k*xIxsV*&vQwQk zi<|Gah{oW@(xb9-(n9!y%|Dxv{RayeHn@M|QA{ntp3DZh;Fj`t)ke{Ljxd$rz6VXyImP>?Ao z3Pw;0M(yuA`uh5Q0=ojSP#qaSq#8D{3nHP`oV@Q zK|W#=HM~vj^Uk^*%#dD<&xQ>cR%(GOIlN0GxTMC$!Nv)?(Zig%ypKtfUF9XpmMm-V zMF1o6Wd(vG`$x9ck9RiGDQ=dez~J+R(8DCywQ4f>jd>0-?~p3Oh3Y0_BfB);X`HrG zYQPeWu6KCU^4ZPkeRjH5-+G*ojJM6R1sNvm%qrJl8w2t0-zJ(vFP_WG39^zg0 zg6(jN#;`rK)#p)Q^9K2KAN7`@2v`aLzrd8p)>xOPe|mDZ>z|2eT&Bt0 zp`#W9&C>U@B#}K7R4EJXoAS)5XZ@Q-_LoMzD1?W=<16?^s{mf-D$Mc)hJWYuD|&MxBP}RO`SmFyYFX4k$*Cv- znr9!5uD~0{&dN3Z^}nqb%<61O(^fmBTU+}tzmm`9IDHM2bAuW~WIqEeWKF03BE3(i11qI|>@99dq5YGiBj?|#JV*21p7ZV0&e*xPfAYu^=b z(inc>Nzrdn1jV&);sAEzD%*7EpP+#*t9jD7nGxeD=dp_LisW;P_yasjhZxR8&)*t_ zjZbzIm*Gb3+$%E?z3`gd=&Yo@M0&M$19kh)#tAq+fkDPX9KxCq4v{f?*PDCRCxd1S^6gTnU+`_tEPzUrZGD?Y+=;JvBMil*ei@G59 zSe&g;ifkN-;c>DKbh;e2Fan+pjgBj*IjQ9;19fBgS@Hs%8wjIZX<6oMLd!H8D|h`1oluPFB27x2cRw}_ z%?&U0QogG<)4S)E3s`x7yT5O3yOW`Oae0*Y_t-mGK&ug#*M~4!^a_UA($W&|5MFL{ zXss%=flcaRj{Bl{n7uY-LUkIygVC}hA1n8X*M!Vhc)!bVlfh1FcL-Wi=?t)XRR~C* zsnmH<5XroU+C_EQC>80_ai^#V&bdp2Y!s*wM7P(b}4 zO&?Y37>e;iNz;+zcR``2nug-Hm;qIXiiu-7|DBH@$*j|bkmZx#K$$MCKsh^b97R7m z!g2ET_XZq$n5{O0a3v71KdW2OsbFanl^8e*D>}XCK1M|s{xJSS+^Rnf(N7N1GnmX7RIy)}EZ~7ndb|BXSXcx=zm&gmXS`2hx6H*Q za;DSRD9rl4w?DHDPmbE<^?}dezJ1O3dP&o~=y$cu@CnJO zTQ4F=iq*2WmJo_k%l_!-XwUBSC=b&cs1#GWRnJIQn#Y6?3YauqfPFSsi;W+rr>sPN zva>Rapx)Cjuk_*kZn~7y1;9qjP`GX8SKddP!V_LfF%(4VC73um{K47-v2WWkYBr{X ztB6w%IT4zv24;hF9+sCym+M`h-}rrR-M)-OX0aaqPuOYk}vwT#?F%8k2f)v~OJzi5PkgKXuQ+DqWEV0uWW zBlxX4EVIl?KeK44&uWnvMMo*E5gv$KzBvYD(G(5!qOr@}%I?a|aYp47(J)}I91dAp zLcKa?Pj##%XxeQ=`)l7M6vq?|5IFDH6DuZo%j%LW`*fT;dQ5WkOZkOEN@|o-g}>Zg z_;7Uw2h-1YI=r)fCx2_?;x8j03exS~^wnOqqksRdU{E|KgANJPCMyHArT!pWPQm)G zJOd#M*T;-LEhiEF5hB^90pPx4K9ql~&VwS95GyipH z>5HsczM0Q+&h1doRGvh$BI#0NIad69;$&C`CJ_8PoMV)Q_Yy5|D<@)=8InQIjjD$s z{f>&4w?5uec4fon|6~wV%pV&HcD^=YiOP}gJc>}+W9Jk-R&A_L6qHVlLH-wh zTwsIqokXR#BGFyr=y$PrTSK4gLI*>gXv`{e;0vpYLIv-oN5V zxn|`-6rCz}xpUm+GC$g8mL(wF>lU|QZ!@9E;`!I#x^~8wXe1duU!!^~yhGL>cZqjw zqF%CRQ*Xo=Kz$;Ixc}?wujL#mx8;<#o6Un1=neQUH9(Qv=!>#vzK zQX4rTqu^Yggxa_EtScvro-K?W*`Ekafbd$^M5d5}K*=rZV59KJ* zip7T=I->xvFR8IRL9#LhiUXf+G?)LDQkoBf+|YgL%k6pit7*Gphqosw#htaXU*M+$ zSk7o+|T>+%T;MbTm-_h@B$KCjUX~yYt5{JZWh}*Oe7?dH66KJWKm5>^M#$p zsf`fo^VV9p`M>zpa{O0?dcKOqQ_Lv>K+6OB__Gnv*?bm)J(S&gEh+b zZFWNNBLb7-3M77Q6o_>ljb^O6X=Y~U){dz3KCxSz%+isu{9E*cVFusZGDbQau)Fp? zf`Sq6y8^}86aoQkd*UlP(I`Q-ZOJzWm&WJb7mkrPFTzg(&Y=4(2jajL7qsC6Fp{ng zm_uq;5TrH(d7Bkc*RTmqLN{#~R3g)6r8FqmNH7@Uv>ZH#Na;XneoI1KjkK zrkxKZZ{n1hD5%~OM6MjBmwHGXvnfNXy$vCSE)U64ecvX(KNdf2a?_g^6Tc}Ii~^D( z(AM;nIg{{{KI*Ux0#u}WnN}rBHNRsP&qyKJggyuX=jX01 z`A=pl%#}ie3p^yUblDp&G>|=MJvB$YBl+xljh~g7sPL*~(X#jd9T6e;dml*d&rMsD zWl}vcUR!qjX`QLBxmI56cM&eBBOh2i?rMgfoY??vX2bg_=^TuvPOK#@WBzDLnxd3< z49%;&TuhV;%Q)qylY(X3SPP%=_eg1BrHlHbG>@}V(aT+>(k|4BzFCF-gC2EU!&Bw2 z5&k^6Un7%+OCT%;JHkgCD!~tjTgsR7cuv%UnCIAEP~Fy5Hwq-K#5XehNlb2flX|SG zE?W=!2`6%hMNbKFbVl>y!p{w3zxY$*OVoU_pySilwLXm8PW*_4`L>fqR;eXlmy5Pw zWVM<7DID%?G2F=z57*i4cSzL82kxQWKD9y7I7r|vTCGoaA~E*kl5jrW7v8uDVvdRg z)5Pee4lcfHQ63h}kt(%cXKFdIoi*P-V#hE?i{~wA+ea;H`Dex1y!rOKYR2z{f1V;? z(x?(chJb#Hy6AIs-eAC6qn81P5!du_wcIKi`+Hzr!7@@ETff+97Pun00)BZ+-X}QJ z&SR(*amU`uSA!IH1qTV~oB3pTdJosNkxdJL^e>$e?MT{hTjb79HHlGXv0(i^2=r1-J2l6VlB-fZ2 z)Am)7Ld#M#%VFJ_R%^ZDgkk6t`msF>#X6 zj@O98AI}^+?EYL)HFW*u^TOqKHVz)1X=Hv?Zg5{&eeB0y*|OEIgMiECfjUi-B0O;$ zFnp^<+T1DA1gWo$g7ol%nFf?;#9G8ulh{AZwrAIdC<}Bgzc%F8PLU*)nZLii}ZvVtHBa=4jXfSGV#L}5 zD3)=J{ujdn5)94n?CbTvjCNMwL+ruK;ldnaEbB42SGUkQEZnxW-WGDb&A(qc;d(MK z;CWuwv=7F-L;vF98?xt)7A=Vt)WDptH(eJSDKH;oa(nv%1grqmh)I7(mQTo>{R$QZ zHbpVMbC@5Jj65Y-`QQGfpLHSr1!*RkkosTH?nkROS?*Ds-XXCts2@>Gu@%ND76^G= z*{j~CexcZOrE0^=I5RYP8Qzq*v8fa#ck{fYYy~qVd7N}w?1oUsuZ+o7G~miT%Cd!$ z2Z|K^9zipxv+_aFi3?&iAUiM@3pd_x=Q1Fi$=XqvP&uut@qN^$LvOl`K28|W7}tbx zyl9|>Vk6Vy_(aiTDDmWAIPLhiv{oyX+6{=+tu~>2d0XI0#t!oGrGeOB+sPC5ur!x> z*+>Uxdo28!+2sBSK(zvM-nj&mkN$b?IDoY*0wxZy`#{3SZ#%)ANU!5W=ms2DxlNmH z%uTyYdYvHCy;fE-FLAh9Pk8}qr99o2O^)X5Wq3Yak$ZSoIp-2mB!XxTE{=h z?M_w<12iE+xu`41WHaojt*I^}|3oS~ech&OgThE6#h~ z(89A68?WY5>6*B_kti|GiyEz=@p(fsgqQJ-Tcy zR$}7=KOX0gv>KZ|I`#&ZPE)?R3XL5~6^_Fqs6}S(shT{xQWYZ;5_xO;e)0 zFKjcIh9N;Ygz5GBz^I5}=><~qya&zw(`CE~lwQioh88-urZY$?!^(@u5|uF!AC!v{ zPDwH`?&k<>N&uQ>NeystR}ZH-9~a@^;4J!tRUkKezb28_6h%uMX&J+OUV_p;lw;0l zZZ@Dhy}8+$Ae81j01TasjY#g+uD+LJhautuOexX?Ygn0F;I{kf14)g@u-eJS+QtIR zPWF}4>nOmBMGZTY{HZ61CtaxLa3y;2@5C6S(Y0DVX9V?}=FaMOV;3r>Nm73Tww_`` zj~kegK(+;hC)6{{PB;XYZWit_CXH^aK|w3YZSaaQu<48h?DRXnrja( zO%HJjfHUp9BEO_SZHVJRHQ1bnUJSP9(!D4$yAbw&2&F**` zbL9&Eq3q$bAoM?ln|AAwJI;9g2N!^a`TsRR&=@PoxsdN6y05We7217-qbh2H=&?QQ z)A}FP&cx-)Idkk|k;o%0x0RyzXz@`E7*O&tC_!0(JkXmhAjuh|>xl}?F8*UvTd?59-u-iO(tFZtr7`!fYY zU5j?-i%D9|Yp&+c>`ui7F3NO@wb&Az&l|uvo*A8=h?3^sk0HFi_fPhyUb+yN8+XNsNS^h_*2Ai^pm1*zR5)+ttkY;Si;XyPX`rx zU#cK&Rf7Z#-F)3zS8e$fEgtgcFkrcI&m1X}$ilp@(*c zU8^IBnc`yPpuDN)me+feY5c-7oHD-V+cEbm6TPu|ai^KrTBYsPc+spYjgMHyw@Y-j z+m#sGm15-c$XLdGHk0|evV~h-MHkH8Aedw7y}V-fB8E*rH(61;+k7(!=6oO}g%C6n z<&!_Hw{ak1RyAw#vIoI2iWnzpVulrVT7830ja?T;)q=Skib5v_MTU4HJ4_E%6IV= zxl(BGhgMEdHHHL5e%u$syceIx>uk(i%;_T>Oz49n%%hh zD}Xxms_?;koz)!D9x4`J;69s6p`e`bv|Pkte{T<%gAOm+78C?_W~K!qcBu)(Aa6rc z$c=F#{r5%aR;nI;%4g$Uba!@k8O3Ob6Wh|Q&CL%J?1D_Ewh+{IKv7u+P@xcujb&a=zS?x^*&s=(gN`%}!a z)@?R%*zaN8xJ8kLEAfSEWF5dveBCORVvTmq|3joE`lvmgH4exlbgc)WGi0h5j(@)6 zMjKpzcvxf=T6Da8b2M1?R<1mT#03h?rQ8ge623dEBVa2HSfaIK|NS;YdurL4H_g{H#$^@pp9P;2&?I+o&T`L}S06vP&}lf&_=OUmD&W5^~o63kadU!leA6Z9^>E^lu>VCp&p{+NC^Y|J3KG zTD&@Rd-bPn*?5iN$IvW78?;{(OwJEQrT<~I6bdwz(|MDNG?^g|*TmlkzxAGyYbFc$ zQ;b?ETh5%aE{Q9riYF9}GC|zVl>yLyfrXj3ltaJyn|r_LQJIk!#v-T!Ep;s1h5&0Z z5DTR^0T8w-ZrW|av`~Gy&|JK0{)VO>1mYBUlck|5yfLfej7oCx_}mT%Eg(1|;)~*v z1?E}~BFIORh0H<69aZb={w+`%4o-$xbDOX8Ss}k6PPazCfv>csjKNVg2pWE&t-5X@ zTs08&`T5+Aht41BQF?&N; z)KIM49@~Xbf=HsIg-Z+~GEvdy#N-(4=Xg)NS-2##bx|o(R?QIg6L>!V)4n(rEFIh` zhBY$Jma}Z49ZP^JRd^t{*6(I>&r7xLjTb7LoycY%TEl=SEK8CoDECH;sMvw z>_+2*#s;N>LYWJ2H#On-hEb-I=%4|Ve$T!H4?NM9ikma{*Zcmg(cRhpJ<;nL1XN@(RW(_P*UQ)BiZzcJ4c+f*zRDFd_tWgX-{JaS;+(JFjBneFv!Nkct@_EQ zAkZof5lM;J4(Do>uhF-iHDQ0wO7iqFAYGbH0fZx4fD_$qfJW$g)4XsJhP>(Gx?Hbo z>t#$b{KNm=WMH!OSo?h5k7m6;Ln#oP?~FVd5Bv|rZ%?fy@&Sxknl7v+@on}qS;4Z< z=qh&oU8b&lO;*5Ze%rEN7CCf=xR9ZkoBzuK1dc?yJhLgmGhC2-eKeUaf|j+T@oWjePyQ!ju>>quby=ml zoSX$NrxcehrYsmCGjsNS^j)23zduY`Fxje=xJ`uKJ2OuHTdFe*95}eT8JMg*OEln9 zCi;wixm;7576!Vlb1)c{r?YF`eOJ$i-8Dr%Cljlp?+yP|KqgX~9Qn+#k?>L7- z7QdoorJ-Xy{)ZCF3nQM(=P~mKVk7n+PvUtZ9}Ymr-)h7UwC=$h>}q-OKWBE9m?~&s|LX9 zO!-*gkk&`4-Z;M#wLJQY?d;V-Q6SQW8iDSOEn2hwU7llzrI=eX=*&M}qq@e+<%}xY zb<<^G<7mTVeKEbx67I3#dbY5?_Q%Pjw^K>6dgEt|1p1dy4XhBQ@rmU}^1j%XB?kLk zBfo}FHcn^#pCUd)8X#t5cL>O+WZi%%^Kx*wq_4rPG?;)X+$t~H%2=J#NNVwwdsYPo zEcZ!-90I~18vXu85>p}KoEFEk!TvR_uu8{w)@k17ZK{h+(>ua8DWB3Mr_@VzhV{)$ zumszEwTk(%J0FV54!-KB^`WV8R?5x5{Dnp%Rj;z*vmegq$NR?y*RLmbb*XA%&8_ zhMIU^NJo+_-3(N4W<9&pSC1PA4yZHJNHWP@bn6CVEeKufIG^c*xv?gfm3Dwpapmlf zmA?iQG}|U^FeC{Ac4R@OH(G3#;zwc8uIED5+@{N)zex`826T9rU7chKohg~TOi(`R z0SkkUfkP)KAUE9X2RhGRkskJ_1%v>FE0su1I1E4_6EiYgyp2)Kaav7QsxpN_ss@GP zz%gIFSX*6@XGmhm`vTZKCO=R|F>MMlM$LCq@%;qDw%IYF5`8AQTXZ3mw%vxN7>%@o z_VCxmyN_KAZd&$)9kpe+2UXLeVYZaKKI@HnaeDD4xuv=AO!oaH(u>Co?oriArW)$2 z%qujDjVhVTcSP4kcs6*{b>VIH$LMVt*DO`R;)KTG%5*&oCO^||Z7@=8<*xW+d(D^Y z!&bi|JNxRIE^yvpVxSgoqq8M+j)LNs&doDNPW`k4?BKYWA?lF`v>H`y4m!p zxp(cmKWo~RKy>)%7;WoTO`yrbhdh#V$#Wfg!lmaz@GhH3+>Wm<`c3lgxQ0HxjfJj} zNOtoMN#szwY3I*K2b{Ml+=_B58QujCC_$Ub7y?dx)v+AzAViK)$~jMfgS2=)ae`d} zZLOh4nlk8CFq7;lh7Wp*gfS%BXMk)A+g3vq8*Q?}@`gxHo?DiOd6YM?18b7Y*|^T9 zH|GAqq_S1;>SohzxC3&PlzfG*<+&Ru9YNJ#8gHwRTRA`Vo&o^?(2a)Leq>sVsIbFj zFPGO}J5<9BZP^3nUTdbE4Xs{oEQdAo#&4V##LnKl{Zzg2rPUa1W+ldsCYp)lNctGd zcx*84NqlO2HtvjInd8p_1#5wkwr6)A6La8>@)F}x}P8Bmb+C=z@TeGf0T%0_e!)xhiyS%s%ryb z%2F)Ln#;e(NzTZ@K&1H1KJeAyO}ctqQ0ye?IP`5$u65m@#=A1DPll6OWBonGt)aPk zFaYFsZ5dmHR6R?fN!e2A;z2|%NrRJXiN`B*@OFnELl5`o<~vK0tAJjCYqWE4U|rtg zx$=2MVxt$!1G@Bz%k5N7yhDLGy~AU2p}l>Pc5Y5=)fLHS-x)@v=mR^=&0PI281Ers zFYJKJ94gH~*fW(^ZACRou+_2?{X~=E;(wHSWt&N%5)OtT<)B4<}CKm}Tb+!8#xLU=Ct%^)qRs&}O-I8BF8EKC^r12Zcc*DWp{V zjrzqmsM4;wk+iLLauSB->?t8^8!uC8U*RX6MDV#g#ivHd2Dy}6uX!Iek!&y;Y2Mt= zoWv|M(fFfEupMu5^P{w}4u?F_r9wI+{(ETgN(~Ik5wW0y_I6Q$&%#YK2z&n1HNP1O zm7t&wjK_a*^-kP*RqnE#fM%%zpSmlX=9W7&U{U^DY5b<3H%?Y19GZA)4TS zdPTgiUq5NTy*i=j)AHdE69DMbr(N8NF$Ok@tTKyG#MycMNT*-Ch9NMH@BZxD-}M{H ze&PJbbT{zfI=m5DT2iL*kMOEOgcUv&N`2rfg<)A;_VoyQF%XCN117N)3*8fCH zHf*{tJj}r&!@Fh0qfaT@|KuV@sAGy7I|R=f^NTB)ZCVX-*Q&b9Zm*xx)cOu6Q5Y0N zHp=z!+uO-+46Mm2Bd6udeoe?fU0@t)9InjwSnQ2bBSZXrT&xe?_0mWDIrRf%lOZPMO^i>qP_<(9jjE0srwrrt`WtL*Npm z=DTsZc?o08p*&;N?V8#o013Qf3!fnNf4`IUAn?tY8k=uP6a=xAR5gT|MndUNYkc+- zT|F^sL0g*jcMs+!jO&N?cPsBV?mh+Ht~h#5d#C{pp_c01@#K_$w7<{^v-L4N^FG2U zV8vZM@z<}H9jxy3)vBzMaunU5hoKcN!p3mG_jjGZp3DC#xNi0Zw$$()cqqJfYvh(2 z^+gQ9fbeKa&0)hJ%^+#3Gu_2Ppu`mnFaLv$%~yxoxs<1zm(O=fAW0(o^`Uc~e}ntV zFR2WiYWR~3U0+sNsY$V#`BIu5HKR*rU4g^wl3S+4$G?tE>7Z3|1Wz7hfG1eE~pFNxzV|4LV1O}z|m|gf)vhdD# zC9OLYWh!^v;+@qhAK`+s&PZPjIk6PW=)a~(Z4^}b$3H;!UQE#l$~V3M0hQg#8`afg zy&pAJooqwmJ5CkUd=y+!Nyhr}wYkCjQ+@)qhs{;Ramcc=Ls8g81~rJpqVa&{Di!Br zJ7)yJk)PL%^NHv795@?O1$3!i2kUhPeK#7b{Ue&~;pQ{?jEH=*y2&xu#x)yVwxPx& zk_`N3$r}@60>i>KqLT?bR_y#8o|G3EvQXc~ruLZ-Sw!35#a&|TgJ?w4s~hh!JR!Q0 zSfF9bTr)~Lx0!Zc0{>%GnMa6qt%F--v(=kOn9k`?_sgCT!Qr3Z5p~^O{`22&M{a7G zyP4_RyUMQH?HQ4)Z8a{dU!NU)V}<$tg~agGxVkq-Lc?JNYKu8~F)3+W?#8KY~*COa?k(Oez zJUD6i3oLKnfHu>1d!;rFgGaKEgaG7VmPb9GT?u7-J?qQJfzOE7ln?>A`jzztCG#54 z2k!HvTnQe@w!-by5)_2zmfl)PyuFU&m(gJ(z?K29aIjXdy z6&er`y&BCdTls@e1Nbtc1EhehwUHV4@~`6wURm=pFOy12`_NF<(=zf=>mYl9zD|6J z-)l)Gs?X3_*0O6J(rb~Tpe?mL6A^T*CuU>cZ+0pk%tb6%{MbaY8c!oFzGYRi<{sI< z5#Dk!$&UOOPM6IgzNPg|Y+cLVrD;hvW-PfO& zwv#7jT8K%l$9IMFq*hX~mKjt&jv~~DX!-~)dGcl4Td-c zP)IJah}B|~VcQy6o{a552e|-c=)2uZB$d23^@RS<2KKhLYYGsw+H-KYy)A)EeF*kB z#l;z#TsXjSRdl=Ekoe_eo!K@1-ne5m45-k>WTn6|Yo0{4fE7s|zfT@5dj1;x)Y2XF z;23Jx9Ou{V&i1^uPDzPjju)dSFV$f+F&f0BbVX9$aT+r71Bbpj&OG_~+lLjSQ znr)H^5whgaWKxmd38HoG!~ZRkt(dQ&)bmghCnB|8*wVKNKf&?-b#H#q+L>4Q69ey_ z%{@)DliT7kF|nj{SK3L6hjzb^DN?AkOsGunJr4AD&?7gb-n)0i4D>D-OkO2FZth%) z8~rGz9-nHy7;IAeJEuK9&M$hC)_O6~u;EKa6-%QP;A6dJnqy{BIYNpEc62HVVfKo+Zhhy`o(E5kR6H*{OCO=i>SDcR4|I7xv$@ zU!Lg|kG|&@6Pp|j_6cq5KJ|7zB@@3nRbn5V$UG}H^DfH?6vUjgWlVSI)?`&4YWiGcRk)Y;3VQel0$^G{d&Vw-PKG3_ut zjT`ogJ!i3H4#47SfF#GVp+pA z@4UAMd+`~~=EaVf=WGCG2F(faz0acK`K-Cz?teW%ftF{|pjr{$9OnkEwZ{<2_&9`;lG4`E@o|<~rg%Wj>$z6AbWVIy(mF!fKwlqV zgU~j|t4J3j?>~+XzD66ZzGc*)H*`JfGW0(?!_jx+$nf>$^S?RIuB;^J9NLqxW4lUQ-HuP!hjm5(xURM3-h^wk#ScMpq1LCB!)qns?cRwfXG zv>=EXUWzRhuBMo{EzGq$^_~|UVQgl^GS&K_=H_VtZ`)y;j?VAt)Js&|lkvLMybxo- zHYZ>DlcOCKY0OohI$rDbRmCd<@MdPm{fTyT+mjh=rvTb=b~NUFxICThb)xVp;PKKH zu<|MsF<`55=vtPm6mogrvzaXE-zU}e>?C@bh%07gMVwxu7K=tPaLzUh!Cd~@o1o+> z6>gSaT+AoHiSJ^Prb0i#?C)cdg_OIaZwtP0E0zp2V%O~T7_s4Qebe}!7c}Tn?-d*5 zX2Obp$`r;^-IWD(z8A1H@x%f?9OnU-V#Rf}W=xYkV?}S-wiZ7y*dADk?zVd6W*PPB zG7;_CxMs6jtXj>BcPf@>wN&Rynt54%uhZlRVGG6{n}FhNCzsBWyN&d~`^@C#HAZVv zwl+v~%$NC{1Fk(TNhBq`c}G!v9b^hRbvJZ$PzhpjP8Z^IS~5RbV~nC&rd#w{^U>1G z2N!TjD5_)84ir+9o^?B3F24>!ta9`d`S5w}R3dn#XKy6g1fTbU{ZKds*xfsu1q0L@>MNs zRDC43Q^%#xq}Uy`-f07~x)@*PH+yvR>4L$)-QpXM!^phHpF4u?Wn~rzzo}lS^=+NW$4tkKZM=4OK^xpFl4vYwImT;|AvUi_7OjSp@@w9Dcj($v}BVe)^ z&#sM)$?XNd%i%MaaM~F@yJ;-ahCh=b0}J$ES3hNE(<_qQCKF@Zj+>~UdStYf;er6kjN)>#N3^!uYf{l19VTmB;5a`C!F1iL35S~QI7OJERCY&>< zFs6I#SQzn_W_yX2xuXub{$Q-xtQ(RC&oJ3?d;anJI4vmR)GQ`X=_-hPDiH|x*YAVk zd;amK3?ui(k3HTJWKU2C*H#yP9r&8Eo96ncqK3=&Hrv?7M>C;#?YqWrPnMGwL`dPj zl2$hM#{oXJ&+H1Uv(tl6(Uldv>*K|^@_McMfB|Kbdf@|=16p2VBD7CVj8SFAE)Tv8OQO;9h^^PaD=2-8%_Pm$y_Mw1rSSl-yNbtU3O9pFG)<=yOQ}W4_ zNvm|8?r*i$ht@_x#oFX1qpM)@V@%Iw``}wLG{dDCHSntO-h#UMLdWHJhQPOyJ=vleCjNsYi}!YP5jJV5p@e&? zxl@&t0TyRd4T_CTv$+b>tEYo|Cj7LZn4`}*N(^u0sd2iV&O`tVxVyXCT5KG}(!2XY zf03Nvi+@HW6~3Dk7uBXz5*WxVKfo1UpyU8pN!DKp4pBlFvHn1a)Ft4I3?MM*`KfAe zh${!Z^pH!tkMn*r2&?s`Nu=ck9!AV}Lx`h%8fdpq9iu zj}qD71t#~hsuH$o)A(13r8TOD{O*_H64M+8fgj#drKZ_wXb`9kW%d3w-fb2M;?J@; zFnG9G+A+Zdn zM)kL2;>MreAk)^br=LF9lD93FDLfHMbLp+ygV^Epm zzR&|U>0Zg|da?4NP%UH4(rI@2s4JFn%R9>ROH)Q;{L{Cgec1?k<(o^T8ZZ2{?wJNI zPZL>owv@Y4BK~4TYwL32fN!I@%a02oVs~}=B+-YzJhDT+4(&I3 zARyXk+)N`*EAlAwbFS|t-IpbAtVzLRQ8|eReCO_G%ztt#fi-uu)w5cj{ancFX#PyuK$9NC_Gzj?XnWX%wsFXSv_YY4?-fU$LJ)U0rJ>2%}Te~G}fB21j zrM$K_c3!?_cj9P$r7c0s8;qM)N2#}U zqRDyKwq6gBnk*+FHWqMm#$5W0L29(3 zV6EFFRjOtFfjEIU6i2F+LW!i2!FXl1%J|DLA*gAG5bpioV_d{it+s(98#Cfw(Ao@~we+k?J zV>d2Z194$WZB)z87a&m}jo!q*qV?s^s?bjItbu3F4Y5SPf3qcO=kbE2hrwu5&c}`o z6RGGM=KgJSI(4f~A`e3cO3IQ0w8hsqE!AUxM`rK0$6V3Lgrj-X#X?HuU%~?XpW;>M z(Ygx1=Ko?;*o1NnT#SJf|Lyr9yW1A=KT7ZdJYZL7jDO1wj`m#y`;pHf@gf62Je2}- z%GFfis<+a&q=}g-U-DNH@OzpGHa3IQ6cKiFVkAC3KGCaT8j$Z=#N6E6)ws5L!vkTK zhMC#<(DWt`z0$X1ACSwh@HL@7K2S&2_KUUA^Ihbc5bW({O?~~aW9H$bUD-=Cssklg z_%qRNeh2F)G(5eQb0I{8A!sWzJvYpaAl4qo&Tgme5180=UCEOAlw%-s0Ls#2&4a=p z-mFZ}4z<^J{9e$S5N&zHrJ|3+r+Sui z#J&83*2##tXQr%LEqWI3eSO<-&~aeWv~t;hoj&dy{|A6iz0|Ru0Mg#?z}odPG1VIc zb94;%D@s^qwrS(G{DpyquD|QTYDD&pG@yDBO?8`cdsshBZ7U}WX9d7_&xI&@ z^CrEi1`hkDJa3=&ZxpszsaiKiPRVI0(1V8ai}|~xNOg?&OPJtQ5@ffBX(LUNsruTo zkfvMoj7p$f60D|9a<#Klon4w4KkB50?T@b$w;t;al#Y7e=hTo0ROO~S29>5MOiX;g zyVk0GJin|MejxaZuFo*&9YAd!_8qtimUo|$4j2DAf57dZ3M|5cpzM2f1bhDR&T=)2 zD=ngpW&VM>kvYumXHL)z+K6lL&R|W@X7d<@l>IHTyD0{ z3`)_Aa2ajvAcu`47Xlb5LBH(u(tUx=ctsZNWX5v}Y z6%bJUj1~zz>jiTD=FAhDLrGJA zF@{3SSIcNIrrKluV4;d^+8}$d#DXBhgnM7F-(b>9Q0e!((Jtn-qNM z_szfpRj0~7zURMEiCuRzGVRziU>9=0<2S8HT|v!K7^Wc%b>g#VBKwmB$*E=IfbY08 z8QE%F8u}qgz`64vVlP6M3cSs4nzoq5p0p8ZlzeoU(i2E@LS}V$Vf})TUrKMO^mKmT zO-clgN(*O1Z?^u(bIPO#ve*F&9D&$Eh9tx%vBlzIF;#C_l6J?R^uA7il5zyft)udP zR<4waT-GyFClKdrgnzP&)@{GDZ0O3W-}$^+H*sWCZ*$(GGdG7FAzSCLT4P#N5jviy zKLyPDG#I3`&~;A6NdIlxb^Zd-K#>~oNE~<;X3BQp{-(zkFug*Z@YcS%Rql-Vs{(H% zIp)K8bYQvjgO@ci{jBY{`O(~Akrqi8$z2ts;}2zJWB%bH)haaz<#_68?7!-^qw-)@ z5rK&23m*jKwzGG22Ee}<-W%sAsmlj}epD{svy8XPm&@j}T#E}QdDJv^W zMqhENMtMW`UjJ_Qh-g)}ogU$6k1wROrLu`)&unk+?W`uwDgKwtKN zVu4*@xK}B=61En5dAW$b8c)VbLHGyZmvJaME=f{bXe+FJN>t5ctXGGGbTzTDRJ+ot znM?2}ewbNQB4HBzZs)!Fs>OtY$Vj6!m|AvF)#d((^Yc8CUQM1FwdGg)%~ou=I>xdV zhXQ5$j?~(`xze>jf>==^4#x6LjAY-S+rE95lYo2Y`MF6E=WBKuO-)N=qB;B*1iO>^GG?m*0VTCK=f!NMg^+$0mO3kVGK&*xZP) zie$i}c^x@GJp5{B{`a>E=#@!Y!y+NVCo|rx<=Ij$&s&GRshqJBGn+c|NuAK!h>PCS zeemX4JD~~H+T8(jaJPusx{o3YFQ# zz2>kt!uRyofpXmTfPI|J$-MkkFYuY+lfT?FMCSQ8784%gep5har(P^{yirrjXpLQu zjt&{I>jQhhZjB+=Ylyo?OJ_(3a%~^7uZ+><^@qk(gMfOI0RP$+4UffmF)l}P)D>I( zl7)szREP68f}dx?=8}0)vN2cnpnMKOgyMXqn0~n#%E-hLXpcrz7RMX)spC z%hFO%nVKq9Rwf&W%F*KYa(mo-)b}P%{bmu`0+|aM&k@OTF<=-#T+FM%UUVIod`LOJ zt~Vwhq7DWC>KoU=7j@T@OHmFYbu`N)>r4Y#JQspdv)T`NdUSXS z&HK6mZVGT_SEWeFDJhq??amGRe;}p#7C3k7zLa4UKAadB82>T}&)Sab$0i{N=4WdU zqSqIFz)wF$42_Xur07KANma%>d3anOx1)~8;HKCiPnmJgYq$R8-eu_Xu1;b}*C36# z&@Lh)^4pJh?G45dtNdXclx&HcBanwiGwbaj9ruhpQ0I`AUq`DOD!stvHn5+JoNJGL zDH=McwQ0Td(=0q}QQO#%J80CqK|zq75pDNdm8gof+XEJfxN8LyN5tVgyPNK5;E@Yv z=;&8BPEq8(iTC`f!Z{YFJ@#6f`R8M3R5G>c!G@)GdedQuSOb=Yd_1uv6tdC6UEd1@l_{xp}cxQV{O6Y^H?W-9&H!Byk5f0AXj2~ zbU*Gv&^H}6x-;v+u%-A_=j%9XA>#Z?R{pe~M<8d=zOdS|&|`6eJT8wBwvL6@y7ecl zth#C+VAL`OrBr@MhK?r83qN zK7>x=S=YmrE0H1fu=73S5`0OV`BJ&x`f%h0T>l#CPEj>HD^5gGSAg8tJ$mkPu*s2> zl=L6p`#LO+fbet?pVFh(+Q7aF?Z4IvT>G9o;nw#$4^bv zg0`mn7S+SUBRM(w;$c6pZuQKU`#4Q#&GqRt+kIOB;LY;T=rYNgVrfhIW6%aw6;lmz7oS zJ-E{m#n|_0@KeE1U8<=ISyu>~YA3TPTkHIgEJMjaZJ&d0zW^q}Chwc>wnYEya#|E^HZiY^&T$y#HSSR69D!237eMNDZ3b73y_ z=%8{d)@RTrxP-@q)g*SNUs(N*e2OVxu^A?3^?-Rcg@MMHvmrf!iLcwEgwtjYmiX94H2OA2t#(bKQ8 zH(vThe_S>3#mH#{NQQScL0)YFU(VJ$*o>zSM3eBKg!GZW-~fjK2_g?Y*poSBU*Ax> zEi!w5mm(E%&P6=RkN(L~U0c`Y;`b?0!$WA_>mVUC!kL*=#>bKu>qCUUNw$-886((D zj_iLRB5Lc7#8r+}EwNp4IoPEY-6XkcfwQ`QVSfdSHG0I=IdaO=v~E}e|J@tL6J<}o zO`!B7&J~}0c^_b?g_vq>vC6M+;!igvafeGlFmI4rHg!n3FDR@wu*1bVHnV?Y?9YCs z=qVgAF|p2ilN{!_+D}a<`Z&BJ`gB69q@+aHzR>%obmtP8<4ea#y@mJ&ls*nS);Kkz}kMB}59C=7@3^4l&gE)~OL-B)K}L zK8c3A4;s2mBN=A_?aVD6Z#@dggLz6$r9R zK{TeJv$){qshth&a_WORY^SPy(WdZPqFu)xK~zQ0eZqTQAsrS($|a-iBMHbSb4gaL zks&)Ce~I`Th)7$Hgh~dZZRbRtYG~b-4^w<2}%GWtsv%f3tNX&!Y423w#Z<&;sRLf?oq1KKC-O=b8@! zV4bgj##3UqM-if&y@zyzhO`~@jl7Rj*iVfq#M;o&dfuOLJUAQG=GjHh6JEZji#Q0(gkEJJ!%C87;2T2V7v_m`a zD!+c^CmE8sCJs>Fua!Jhu%TH_tu4tSgYP7S`Xt^1@Kq56yHt6FfahOZ9cg7qm}+fl zNTo8{-*i*d0)R@Bb`?-q*`}Qx}5us_#w6>(B_t;}P2wf|LLoC2^-V zCvoe-z9O??x0Hjck$zl}5bQB^oHer%_40%J13|m|mKa+@Lfbrl%-Pbz;=;Qne=J}Y zopk09A5c)c2&yP6qsfzdpwE^}{B5y}-I-4ta=W0SAr`e#T`+-|u(zK`<&yCrjiI`p zxH9~%b)m}Fcsr%7qo>CW9z_4LVrT2r{>)z8eTF0s+ax#jx%3v@1&poy97O&y+_IU0 zSVu(&rNXVZTPZ4Tj>mlZkY*SD#HOi!^fFvWx>@t1&fb5#`(=_mTF}9odyLKR*yesZ zD8|MW``nh&ijsx8I_OR?I-Rm3YMprNP`?b5G1+~b7wv>K>@aIpM`-c4U1a6<8(Dl{ zRa(xzH3>8#3}z}jk?O}htTWK(NF%NEvbbL?3A8p(K~_UbQA|*@1x~05pm`au8yt)c zA;CQrE`xndFqQh*5+v<(m=bszKqSr3Upyj60{58ZgEWR94Kf73|2R zO)D#Hq5wn$BHFboE3fQluGqeqW#7AovhSxYgTW(Ck2rn}0r+QQ!t8hAyqW8mLJ1jY zMrEf97y?b}&vz>+pZmO`f<59BdCv_yMx-rl4u66YBB52^K|P_Dp}L@_tgbI{07*y;rrZJNwS}>fT~o zM-BveJ-f%t9k9&-drpT6-Ia@^i$13noWnN6pZAb4J2&aox(_w$zmUXr-cyvC1^BY( z=CvIY8oT`}Y5dt7KY^4a1bawhEa(5 zVAo5x2J`7?q-XP%^OmeP%EzNi2NiPYw@AAAGMG3tvoex zNraX;V@TPxR+-YFRfiX=8mr!i`^B2H+A|`XuTU zmEQ|1O7=!%WmcK)!vE5eT}6MH4~{RxxP38!b<)RcXJ-$n1oysnqksMn<5?fZ;=rDb!!3LxeB z?q2t1-C4KoIW4d7cxc9)m3t}I`F!A`>k%2L;8FU{j~eG!o8J+z{sMj5l8%Dp$50>O zn9mU1wY^=l=b(6;qCqDYj$Va(kktShK8`r@u~yr>u_+043&0R#`}uC8w4h_H8#8EO z;fvDfwvJA!+vrHC8xVCgvyy35B^gBW)C;~oTTj~Cqet(%KG#E`>VM(r`<*oM+oQ zp**)i!+o5nArW*r4%b&AipK1tktO9$ z-L1bSdeL9;U}q|&UwO@9e(>7<<)__un2=x(wldf#^2~&lqT>i~E~=7vWfpLU7nT=* zh{1+wT};=K8?|F)XXjK>Ql4DJZyaXQw481cq+e>=TpirkMk@aZ zM^HS6H;WfXsZg`C!-IaH-~mihH%7nqbR_F_l7h zup~6KaE~>pFn{p`7U!U;9c-*Q*xS<)Ml}H1eZZ}Gb+*O~V$7k;pM?_J>k6vRXcXrN zr66urF~$mbbftFgdLT3lctBM0mZ7dQ{?EnYrTwB+gFB@_KJLue<&RKuYX3;vvawsF z<0??|+%8#S*@01~BVeYk&`s$$^C_{r&9695+>d3pLU*tzCKeVNT$E!jsTWA=(g8y< zVqJM_E0D+r4CvxS$zA?d9JurXt=8AEkgd5ER8t$a}0 zp%Zip7_r+003~{C5?z8yqEa!J2A}|*DdRPu2XK1SfNC*5JyNLMW7@F=qeAKIn)}X; zL-XkZ0N{B#uD7A0&vOTuc?420?`PmLSL|!{FBx)aPZ(7GmLoppD>$>PRo@}52JK{K zl9F^Rn9IdH3UvD3y)oabJT!J4knr9L(SQGqyk4P{=lXmj&La$?5RhP6abx1qt86w* zNt6~BM_gT@;>RnM*f}~{#PI3wtk_qVm~8}{h0M^OBOUXQ7|H$_%Or_LCW`Ewy%G8(_YT0y1D91KnERTzQZs(7B=0%Q!aV&I zQtE5HlAPrRTks=_yxTQSn5LFqo^Ov*}J>EYYcA z;7zb9$Vp5TEU|Mv8ewpqM%=#wT*cgg*SHWp2{7=L+QQ!5O$nB=*yBhadi``dhH$qY zV{OQ|`_K>&*x$lXb~+;)cS2-r`|i$^3H0(PI<)l%n1C?r)-?og0`Buf1$c(Jlow`r z0@C@|H1fIQfsaT)V4s2_>*VDSrLwLE;<5wb?$n;s=g+>4% zRh9jX4k|ov^xpP0a$$_se6{=dp)JwI$d^U+=0=7s30_ex)!o%uR>nG1&-!5%cRW)p zF0XXrdskgXVx$st#b-`c8VRTZlL_W3lx46LGd8K9*c+!L%VwPBt^wY5d^yTev(-jY zUQzKjq&GmyIJgx|*7B6w?rNNNRqxj3QL%g0eiq-tB*Sp!J1~Ku-VsT;-*}k*W;1PV z5ka^Ig03R5Tv^7a7}xd|%gmn|;i>w+U-D*tW19QM>dGtM8;f|G(Z7{~G$>+|iaXg} z=gO;EqlmT7Yb_Qh&eY=qqsNUuc}nvWTG2A?6n$mdufJE;Bh7kfIw38Ne9uN_&iZKa zEDG;hA6)Z(uxssa8`^jZM5FM*V!>y?t%q3&ioHo8)8R%J^TpMU^If)BsOI%P7#9ly z6nZiY7rq0Ny+tkNSF#u3Lpy%3!_sX3h1T??N4b)`gZ$qW&m@QuZau+V>W81Dft+uk zQO}EOy-8~CGI&_}yI2_`Lj}qDt5)vDm+K4BxOi(GNY8&x-Oudw>bZf(!u=n)(A^VJ z0$$o{)lFe5oao#ctkrIU@Rq`5uRaXGudf9$W!qtO&=sT@iC2*H(7C-Q83vln^*tN; z_H;gmryjG_0cFnz=xdGs!A5j)nxG|}WNe~-rbY0GaID1gg1S4HoP6i{TWeO%sCIgZ zBroYHwzGCwa`$!Fi%DoTbg#Roo>gV`mxl=_jQ;``e^3)YJv71Sj4wqI3{_ohxLGiQ z&dp9;Tq$$>ljP+L18cda_11?1;>QcvseDT8OHAB}T=fk>ar-?tCzB`c-*S_hwd_*3 z1?Rdr^F4Rjc)o*9BU8@K&8g65^>`SQQ)47)FsiVU_GnWax|6Q*A2xrGz+8ez#ER`1 zjE*tCx_8}{`LgUybaYHKQ>so$;eT(jK+?ny_?26B<2>=$ZR3}hmunnBYOs@4N(6V4 zlLYUw8=^c>sNh8bH7!Cw1q5{PfP`Wqvw#pNdt2a9=7$pl5<7^UHaTTbi(=T_1KGvb z{VgB%43)%^1wCf&QwP(d%jP5OzR|wxXsL+es9&_ki{}vOe(tv<^i0;jFsJEs_YuSp`bH+XZxbt>V*Dmp)J^in%+AD=-&vKy(FKc~5Liyms%ee3 zvZtw1o$xZ0=O{fY(o{p5f{y9>vR6yIqKr$MwoK_tUi7ft>m@XOIRq_BCP|X`**(eWV01V2K}WnxXOM zPmK>BBJDm9hsN&aA_HtL1t2~GR*gg#;R_4E&~aa-$xo~k&BdrZUnF;{bMUqOD2oZ` z+!6iqJklE6A|L?^1kxX4`5BZ9z4=BtxzNdGQ7tkp(0PE_q{900$jI`~TBhL(3+j*A$nQnQ*$r4RtS6}KTYT6g>Y(Gx&Ltt6S&Ms=9B$B=l4>8>qeGS z2iJa{Ct;me_}+pZ?g)N_PNWRCB6k99##~(G&fmw|2N-$~K>Bc+!|rzMKHDuMu_UWq zX;k-W&^OtAEZ|f%sk2;Zv|DOY6{T2Q)Q`swGm9{VI7eD>%QC0ToZ~5eSX~JplmdMj zmUQ6s6C`1XGIF8$dGCx5lvlXC-S}Sc#IjLmaCx9i3*7){D(}SJP>$`MW<&vZEzkUv^ zOI!NrH#MsqCpfI$K(XB&`yVsrsqX@UkzZ2Y*UyEjI_WGFuj)K6&SFu6$;MBFm?`TBSx436+vH;|g;c67+V?Q?C} z@p87B?J>9vJldMB$58N8*H?F8We*QN=-!0&x&Q4hplT^NFZcI`x7r%|9+;C7@|zRu zojDr_1MoPU0I!isY|8SOjo%Uo&bEOEJ}iw+YY(EXWaRD_Bv+j4BV$2evruFIsddh` zVTE%#dil)lS4vHR+P0Y|Ptuuv5Ct&22!Cn{%4veIc=?v)zEbgWYJ@}%9{=&2G7%&+ zv9onc>{x7apk=Bkh%d+V0`G>z86(a|nUGHf*}ttG^Dv=q3dvGQRBQrYy!M^_X;0p? z?n;0O2*FQinW~enL|>3K;#&R&jDv%umC{@>7VxL6>S=LL0b)@W)cEqc2U`&6KPk`( zU3{1JI`4}+Sm-S6#y1yN>~E5mDdbWb8x5DCeq~T1%SuQC!n8C5bkG)=J)232cNAh? zSBLw8m&voQIiC$PUo~&|;e~-(C~q(@5Fwi4RMjr8MlQ%$z9UDA>L+ghdxrZ==zT?% zmCOs`Fu?L)FT)x`1JY13N9eJ>d`n8w$oRliL?^lX-*&) z-95T3zPf&wRQl`YeJl48d+@z3D)JoK20~*~Q~fb}yBjoSv2Kw<1ZWaV8`=WSTO`8i z7RTr|OSL}@Aipu|;l5 zmljvi=jLqkw+9lBdrl9!k*DLrB`{+CM*}!VebppxWcW86v>}Q;u@JM%4Q4FeO?GeZ;M36+6NiqZ=$j4z+~pu%VIF;g%73+w zpAiHBB;0yD+3xlHQy;L+X!gF#0Y1R@{VD-s=rs=vO8H_HcIsI~Yl`#>VEly6JEE2V zv4z)5&|R&g$;}VoEnHZz!4$oCX9{^{^Kn1#Nw)>;04D@WepWe_adrHz2hjjiW(A^H zv%C>0$u4si$XdFZO4>WrAL&~ayG<_`)8C$W3oEiI==FiYcp<8@w4{+5CVFaix)?EZ zDIMpj7w57T>^TVq;)poKpQf1MTw;A}7)Tr?h2tpt*cCrY+A6cX1h?-V#6VXlUP`Tu z-JF=Yy>HJX9!6YS*i&EQ^jV&D2st#bmjJUesp+Y?{Wxo2Kt0j@pJL>3Q6S}B@9Qj> zxCx!wL&`$(u|=lKgapUl_h+o%$PWmjhwh<4m_pI|8(v9H>+P25!r$1e4B;nkIq5c; z^iAZw+-xr*7il=xwhAA7P$Xx0pNrpMw0WKn_Qi=#mX+oq1cb?&mG(FaYz#{x!*YO9 zYhvH6c+JTxfG+qndWKvNe@{d4yA^c+NjxAddXLZp&YQ@JgA z@BFR~(?C9(J)-W5sxo~PXnPZYaA?PBwnYtfSC&j^v0@(B;5UgGauSWoHEI8k^EL)c z@V0lAvrpH@WxerQbu_T4z%G+GHO68!9rzN$$(FMeN*)NXezE3qN_9%inoVk^m`FEZ zMSH!sm2X1{B$ugbrGb%#otPQnQ8zezEEm7`;&xC=%srMIX&rH7zAxi>Lj7L7kd4ne1hlZeHW zkNw-IEm!}iEyzxtcGxCopq?!;;tiCD*L*b}RwPsm^Q!7|7X;b#1R?^O5Ko25S-gGj zqHKI4=T4^5Z1?|wKavV0PeoeB2_;&_0-reXM4-YB>^|=lsHk44c?aLGutVBU`cewW zB2W??#X@r7WR?C2aeM*t;zZypfro3`z!D?ZdKp(38zHE>$Ug+db<~;RqgTMg-@qwG zh~kmCugeW{cV-y(uL0@(`@`bu8*UST@P(n$d?Cxa7ru6Xp!?sVg$Lh<< z%WSrbBC`FiMowyXCXGGUWBz3y0UnSdO_fE_<)h5y%;kX0p!HN$b)w_>);HVdD8r$B z9dqr=(`kB%tgNhc4<92ygANPZVG3PyntH+MKDW zk`Y4)>Ip&y_ftIqbwYU7X9fyx*vPM3HE}3NRG>m1RSS+PF*=WDmy)Ydv0Br1^VuAm zo9*M)TY^hLU4j(WT4k>qF6CD13)zaHIJM-+NTqTmWyT1ZTDO!iDA%%%Qq9MF*u01+ zG7WJWM&hL?kugy*h*_DMcRU9mg7`q*2a^5UuGAJLYoWcjz-i*{HY0UX)Uk$s3Hut4 znyQ6?^chCk(bS{|Z(45x34VN8-5xuNhlp(CJc zJA0ZC&E|cxBSvbnws_Lr=0q1WKy*L;6Qhas9L6&xyde=b`9%P*ZgK8R**eB3>=fHr zMw!&V7ueFLpQf__hXK+=x7nS82Q@hW+-R4o?Z+%`^m?ot|5P5U2ab4PRF)?I*6epN z&2Un8oZE4+^o&m4hzhn%U zu^)p?W9BE`0$U4Gq|{S}K@y};3yXBgVhggqE4&>y<@`{tQ${(#SOT``Ax4^(sUJyV zFk)MCa|5bc8e%=-O6*XA0%cWwahMY~@;|N;E$fv*sWW90*-F~&ZL$P?4NQ_25>dSw zT3&kY3EZ?A-K83~fFdoXkJF3*?L}{@6=)sucG*H|>#d%kOrGwO+l(TE+b_7U9(J>%Y7xzJ zG=*Hp=-K#EB8^*1`Q)~t+t}$v3Evl??SByR4oP*#)Qumty%#W!>6PgWoB{-j$BG^w zfudpBl_@;#eykMfNr#=9V5kQMw%B$(OZqA=N>N&0p9mNtxSal6tbd~Ltvmf9;&P88 z4}Kuf=lVQ{AbPvB10~dK0}iCw_$8#rVXli$5f5 zD5OnciW}WqRzYAvgOM+HK$9hM6a(E3Xb9Agx{2Q(Ac#L+;6X?}<>1?{@&koXWTYEl z;yG1O(><6O6ne43qwcaY9HiL9ZUw|t6(yYtF7p}+#O&ByWJgy&rYdgRBza}v0~j~y zref4uyTuS<#vgKA`5zrD1_r;lQb(Lw^+EMERAU? z`n6NyPcD0Q4AZ_T6aXMTDt`0LfOQgJZ3Y1!_mKSz059Oh$bs=h{-@6$R5KJq1N8Zm zdp*Q(M`(k>Do5-Xa(^|gIz#~??J+I;&@FYnS)#Hb5?D8b!0p#77SQg~MF7|$M>V;TDpDj^!b~2Oj1x`17pI9hmdAeC0BB|2nww3dhX=BrPS3|>8(d+!qteYH-(lbqq4jZpwoKM z`iWOb*MqOgk;ng$*VOM))(Pl9Oo|?ZPZ;fayL$G{SKPQ(Ryr zM`{dDnkaMaHj@=j6X(ZIL@?z10)T;(aL!VT|=-lj0J$3y+$UTWy-M0kmSE72fbNTvfd#^w{azbY4ysE$=$&J!9pqd1`uCvakSktbqri<9}%Y%ditD4sm zH5g?CEA?06;jP%)HFEznGP~Z0z^^HnAdTe^esOc(6-eTlZ2elA8$dX8Dfrle=Y0|} z4G`=+`XqLCD6WXkZV_IRZfl8132uv<5*m>J#sxpE-?{veP5bX+m?jQ1RBX#4f2CC3*q%R8>4YLTAki+((H&dXBDAJx?bw5C#w_@i|F z%U^;yy6!U%1i^u~YwcPghGJMxm}?R+h(Ji0h*xdW{Gc_8$I&s_ z1fd*}6%dalIF}Or%drLGMG}+9nB@G$&E;&7!Q76(3fy`+1TXIwDGOZ`w5QKz(>ag{zn;`) z)PESGzDIEzh13`U@|wEdE5}K{4WW(mo2SKp)0UyH0m&8s8Z7Vq-K0r`ar)|)&HG|n zHai-Y0{$O$Zygq8_qGe;qll6UC=DVdjevAKib{94q|)6nDkV8eBQXL3N{7JE(gMOz z(p^J$4l~2I#&^H__`dh}egE(M#~?B=_kFLmuC=Z>&-04l?Xed6I#O?MBE^UdtFRJ7 zW*qsV(vTO}2-x`nX!3nJS&;$3UNjz{96FZW61A*{X-ro4Yg?T9+`1Y2?XTZl@+U;_ z0#+f~UbQpiC~SPY+f#L3EU5;#tK&lnbyBPMcs>`J^KdplqBPTZ26w%TkHaukeBT#p zWnFrUy|tn*pU1GGUOo z#oa_keBw&yX(-7l!QRnj6cH83YqOH)H8y4xg20`-=v!goS8zOTZgPQ4@grVPgCxD= zCc;nPInITmJp!Ws$r@ELdUo@_Kshaov3n#s25#RH6E?V<^&$?_+|xQ z{Sx1UY7xXOS&Bhk(vcjXmuzYMABG=yLM{Uu<~t#`}yW+Bjr5A%KZFaxVzINKCgy|xgoXkhCTo`6{rr1@Tf1ZB( zOe!Tlo?NL<$!kd ziRVz~Ob|jEC&FD>DM%Sr^IUROca`34y%il))&x@R-5#cibUfD*T4YwsNSAq&=~I{z z$6E-Z&lYhx7V7ZZN{jxC;fn}}2G+7rnVN%V?tUYm4!YT3vF`nik8P|^?)@MkfuN6C zGSsrC^IKUhh-CrnF7r-`Wbf;L$K3AIMT3dAxmUUK{y+x*n~AOnCPRJg&knpzouJ1x z%&88YYgNpvQcjedJl4H2NW*Hrezc0H+UDu&5{_llOX9Yrer0&&5UC5GbSB*s`SWzt zp>h_eGxJP@UPm*SuW@fF%E-leW8sP6r5AMA#B|s843!N>; zW~FZUmqJ>!f;(^szV75WQ8ry?yqPcc^`Czv*c`8OT&yf31c=iWSl>GthqhaQM0rwD zQesky&;>G53fp1Tc!)ACu9^DR`D(mB@OZ6A>SVz*!wt>sSTpyaUiYOyh8}sz$q$i% zf@(LJ$TfeR`n1pF2`A%5Nfe~B>D{}{pUBLa`a*KC{rih_M*{&&hd;09f^O;1$j)}a zs=gDsl5qTtnNE^&5oF4jHws|PpA(;6d@GYrm;z^4B+=hDSb`qXH0Qdd~1a3C82 zGOrY?>aVoJf~Jp70Lr&PRX5e3S@?t#8yd* z$WG6VxMlLl=fGNebS3$CdD+M#7sU9SoOXb=6CP-5K%eedL!0@3 z`~=cp&&0@c>s#U{<-~U3leRIemSC$(=nwI*JKQ;ih2)5nUlN9eMTLaP2xF=I8-0oQ zyE4D9kZUhe=Nh&)!dbheRw6UObG_ z5L5Acf#2g9^t<0TN12oUQ*#E zhv{4jMtzV^GNlg~OYa0Vx0TmFCsb1E{Z{-N`VQ>ym4v(RCxtdc5i5DN2d3q5_(KrF>XrZCn=&Q-1QeAVzH;|CHpGj%ms2C;otS! z2bVK0R>Tn=8om5)mr-Q=21>fJl^epzHp4})$>MpPRA3TeL8lY%M%1Vk6%9FUY-|jY zs|_w|;r%$)9fPyO{B%WR=?%%B_#%1Q>pN`6bsbGCLk~MBa??)w=tbrO zm7U?I_GbR4oO2K-p1sCn;xd^dYAcxU+X|@c&pvhOwrMNaTF7|UVHc4V90RJ$cHNnV zKfa}L!2CaJp3Qf2zyf31avjD?K_YXtSrnjgVqdi0IvA3N9gGU8$G>p_Ky=!X-`#_4 zE&80&zWi=D1_-KjScpma{pz9nLC4SXXQAzE)Zv+B4|FENk5Y^}wXt8~uKXa8TJ3*& z?EL*kU!`Y}*a3x#O`99UWLE~JPJ9aWLP^18i3KjtZjQg9#^oU=Cq7Yo{}@FexEuMx zHnO<~H_Qowg#M_f8dn?Z?#| zdw$VJC{Y?As5(XsXD`SMB)r^hAPC3biTtYOeB`23Un(E)Fmn0pq}yeQ*zQE`#(b@; z(nVjMzXYQ{{=H}K)Bo{%YFue0J9}j%(SdHmw%}-P!59=yC@4OX@;X8BfIUV(ueyYR zMM2@n>Qikf)_MQ)7wI!uOU(!ay>i|&T3KcI!bDphmXN7FZA<-@9u|@q*O`Tcaf`KB z3{H%8_-~cUfmluLx1Rb@P9 zh82IJ=vxmFlpW79XYQ&55;b%CqK&RD={Hn9%M=xZ!mJ&D35A}+9H&p0&AZ>8rSZAAS0E7}OqsOXvHf!NR+*4jjSVcNW}Uqks!?KwF)Ep}%n z8?jvuQs;x182^Q9W`P&?f{)C_BZQnbDJ?5*&DMM29OE~_pD#-dc$5?yV@_*?`5Oh2A6sQHC#Y#_>W0}|^bvcX zOHx5_nJXig_0LaCr;7tw|jz%sB^0?hj@NmdQd4B<6s8gj|rB3-qc9pTlgZIG|{i_l{Fe)w%d z>8Jfilz*N)p$7^^Koj8rkXZ1No#F?+D%fbf@&!Uw(JZ90p+TpUDN(&jCgYtRN4J01 zGm&Lw??)9)ab||5v|!_cf}~H&&gjD5ZPnNPWu-NOZq6(+7soD>q_-2W)$+PdvtkE~^X)y4{Xzii5{sXXcXr5LcD`i-o4; z8)cG=1!r{(a}5B$1KCAi&<{`Y7H*T`wey9(0zwtIY7$< zHt!fsboIeJ4C5!0q0MpV>T_d~5YV~M$bls1HI$Lz6eO-HKfKJXGti?RdEaBfJk3rE z9dS9iX5zIGwp~3fqLL||6pnuah?tq5KXcKG0`T-$(VIv7weDeeW1>+B!6DXlGdC6% zs%5EhQ0||^T{0NNTC#|F zD}dCj=vA<#S%lUV*3ExG<|>4Sz98{ol9~{JKjSnLaCz=P)CEpp=QprQy{@c45&*7AP7lH6MJ*3&bhom^iQ}Kk)Teu7+u!PN*k?ZX7^PS^}fq-K8A5MM$x6ZF@o2;=1(gFe%J$!KQY&5~zLoGG+pdcc zHNUtuq=+`F03$;ttMY(6@@{meYlfq9gL4t!?5JPpLeZ(KKGP?U2~8v0)zySR-P>Y? zeArR)`QBU*^^Y!E;O%k|QxC$t#>}F5MdxFjY9~KqG5YP5CxTpIKF@Va-4&X(G7rnx zY7vk}2oM1xAW=lY&7uAL*|-LgAM8~ zoAwTqmPfI6E-q|oN|uw!yDai;&vWiR#CizR^G&SjdqZDDq7wRYG+WGf_Mk6WLW$&)q}dc0I2b^zZk>sIn?gmzkWU?PGU*uW~(H0<)8 zcI=@kfQ1)nkvhhmn9)168t{H3e z^RAmCKYK;9rLW3{T&1(<#AleB*=Y06}l3oq|_`wsBQpW?&r zJVQ@{*%hKEO;BK!D1LvFp_|{SudRl+SR-_Ci!?XDlw>|oG|NuNR$E*5g_9F+IE0~e z>r24;3kyyBcYh$pl!9KOCN9E>jG4p(*(PM7>CE(TAk*z*U+D10p!~!45soTs`8yNW zF+0b~gZ$8(yCC-gsGKh-_K*ESkPFx(vpUsVLxw!+GidI|062!dGWx!xZ#XgdFTm^p z@OzaCd*1{gOf(Ylv)zxiFwCEi?D2U;IFD=)!kWoy^7)Do1@q`WZBy8{ni?MNy~cta zxR+wuQ7wv%1}v=f&!0C<-YXoCIcLXZ7Q|iZwiX{-ZWPOn0TiK^e%0bW$s1>9%X8G$ zJtp?hbBc6v5B4Xf^^`7VIp%btve*^v(t4EtdpgL=)=E9bbsEX=YwLtG8=g@wh^X$8 zh8aMbPC(Ob-i^5?Izk{mnwc)WTkq`bUAI;5tAqf`0A%B!^dKg19NSJx*8WqF*Krys za;`FdQlRdOD}Q6b0t-ZQGC@#xOG=#n=0-ZpRVb406kS)^*sEVadrVj-#JW$1-GKzR zyq*bMTZO{U!y_b#$v28`U(bXsa-`hjr+7nshvx}?uwVr2r)}!nG}*cRgfaKqOjsXk ze^{{H!aerTFLY(C;>5%PDv8&!Abdc24?5nxI!`cO(xPIXU}5x%+Qj#l-gZ+DE!O;D z=sHg@VnRF!<=KorbQm*-1gTKab4*vbFcw!@!co%orc^qyBPI;Bo-A5>>eiyu|BJ&4jgU!M7d zJbvEN79Qtl)P0^W`e-odz~o_hOVO*@f13>V$hvMFPJ889Nn_ezjwY@Q)GNukq}U=3 z!*k8Ckw{M9-x~<4VRBvoFw)w9;m=illb(K2(@vl=N^cT%Cx_x(dU;K9ud%OoJ_zwm zGuPD=>MEuXx6cwU=zeb{ari)Eq(X3a(m)0zzhNM=%1Oro#Tctc;-LicTusR^a7#0aaJ&Hx5oL2_T!WiI6&9 zr)b2Uc0XrvLmh8MG6>o^Ipo?|Q1s|X%%71?eOh^M8yqtNE%7g7%oQevR1fYrdFRDL1>UB_wy46 zQb}M(gRVxVL)f(bqRK0$4yqb2&vrl>`f#Wlwp35pSBYsVZ2t`lOktlWNP!Wqk6$qL z&wRo!8`&UsATde++i4=1EH)8`w@d{hxxaJ+iGl~It^yag+MN6~n$`)Efb!%LoJLJ@ z!}oM5h|Crv7@;bXY=a-V?wHI`gc+^UP% z+EhU+$FXmG_CCd&r{xEWb+)f0opMF56xB15UCKX%W+qPYtAG z%?7ssYa^?o3Z#93$m~Hone1SLJ`+#hwg8Lttyok~StAXx?WLRMMUfOik6l&^|CzX~ zVn1-&+ga~NFTsHjoRCV(!~D47){0iY6CYlg$Ex37y$sM`P~#BW3MJRbN^iJpZ^#b7 zGc-cB zWeH``Y{PmyqGzTgr682Q6>+@f`Y7fe;bqVsu9Ezbp^G%E9CKE4udUJvz;bLN%6A0v z0V!1kMC(TP!)+|6?}uAhrirB954W>SZM|_vdQxuw;CR`&bTfV~xyRPd!KK|xx*6q8 zUppHtNx<}jp9Lyicn*7d>wx17++lN&zRfTq!N6ni0q7J6$lcO4P8OfBHw0R)7-onF zYc>L2h9!j^%HNzOOxVKKKEU2<7KxHEKPPFuY(v}=0#JvksVN!(S1<2bFCPFfmS+mG zK6nS*th#w2XF%OC8D~rA@tl}Dkcn;+=E)hl6>g!WXV$~MRfgEa1PJ+HrGn8LucwR? zfJ&UUzOnKPFZ>#tMYv(*BrzZ@jQ213@tyY-`vW~vao?pX(# z6IF%d(iy;n*Y;2*B8Z!SI+Qgga+lV}fio_;@G~us^6McaLEv%i2BOe}N|9rNBMC#0(wu(_GOB`mp<7`Km(zoLCqC2$wW5;VlCZ8&}oxcWX9FX-oCKMS_@R8d&x?|;9D(Z&cs~T)$#wt9Nunu+Wz=MMeA#?6V)qfPkga3nSyuU5oPMb%%sRU zBs=>h1|pkv(`j}spB;3fXiNMq>#?@M;kIk|8r4n2ERi7l(0MNCtm&(kqV4a`t)laR z-Dp3eU$#|uI>c8mhWgCqb@vXel9(hV9l0AhRw584^d}dKI<-vEBB)O~7k@;m->-
7rydp~EgteZ%@ViZA>iHBa2iDLs^h0{|ecqhv>L>d9dHZ(- zh_8=~-mV8C4H=H%Yh5?zuGX#Qd@rvz!vrFq2Si03DgiRihpvbIJX(I%BS5-3qBx=T z#H5Aa$b0R#aqLMKZqZ0z@Ea9g5#Eklu~#0vTFn zO2VgnHJ3x;>&sM5+`PPb`T6W;XaD<@i^rK)N$}5W@!y4GWB(Ghe`kuSlTD?9CQ+XM zg!6@%?uXcYNohXp!ys=)AOF&D#^a!-M%W61z$v;lm+GAtJQ>u8KB4ERP_P zl8`EK10gZ2|FPh>y=92TairysKkV61wKA_miTDQv;g@4Qz_b2CGyrloD#=I!bZtz! zOY?;YR0bL>C`~}qK(v5=Hls7kI;cd=N9jgcg zrnxV1UIwEspx8W&bh>!>>*?x4h`25!;UQDYV`80hYi?A4hu1FphBSsIfloItX2MPk z=+d3$-^rY0x+mEUEFCyb>ZVSjH%aLgbd$0aOJBzX1TWzSw}@R$9eIutqIS97oZVx! zdX!}D{^y7?JlnjsmIJh~`xsq{I?6h9S1zZ`QcE5IOqtq3G>1D9!OQf`)%1n2gJc!* z_roNm!`hae4q#4ukPx6ibCJ8W7Rm%!Y9(N@94j{T#Se0qrM@Twb=RXaUaU@e*}}xk zK%D$N?Hligex(SQEy+if+1w^xA8H~XVDfxG=lDQ3GHksV`wf0Ece!`e(+wk!?%t=g z7V;OD9oZ`g=!L@S-O^kxFZxvE$`O#o2;o)#i}f}AU!#(Ttpewygi(**%Ea2;X!29N z7$uZ>8D5Kj~Zd24Wwe=>FRhOrr$SzAXU})VVKP%(DT+Lk0p-{t&ppqDz^oF z(E(UMB_D8Va+^vR^u=}b^~=X-i>ek;Tb0=I?Bm@(blmifwE|>X&7H zk1ra@#nbnIK2A$d@1@NPAUJE&p`?5(;$)ktT|kqtGL0wlxnxNRFK7Y+oJP>S^rsg+ zu{IexHTzDooh3~&V{|XCrs?yIIJFlx_(jFT5!nu9{p{(EI)RCI04FVXIp1!RtF`m` z3kZ8y$jjC*@pp1OE_1Drp!F64)Hf8_gaBbjNeP(Gj!%Z<@dV}y_2&t3RXe$UeOm@3 zW>>-I+Z)Pl^@4coO0|d{#tUq4^E+c-K7@8EJG^u_VKWh?faC(A$O~G!x}9&|U8fdt zOqGG&$r(X`OXJEv5D{`wh%{h$psUeCZdJgBK_?xN^#0C_rE{7Nojl6PVl{h@OddER zFK<6u&__hb7TflFvdR!%{z*qL5?LQCEBmpf)@t%TTOQk}j{ZoIJeeL4zh|7Sr-vmSXdt|u!Y`vb_-+z|K}I<22P^+ zfBy9EZ+=jd!?85}<9nX8@jzVhKfaeU^6{(Kf4CCvGc&_kJ8%Ez_tu43If3ZxfBMYl z1L@F7%QFVhiq3oUD}7&@ZTSug{YXCb7bt7AKgxr@9&M-howyBv z4_tGYba(ocbeD#dYaya};O}n|&m}hO27PcG>tPVWMlemf)n5O$B^0WAlNgCg-vbTd zy~Lm(eKcg|hjH@0y0lQq6v_1+ci9br%2*|oc;oJ&zDy#~N=+;ppNQ7|vOq1pmGP2Z z%@oFbyeS*QU4}^kORqx-c@~o%2DA*@zIfHVD#OHmX_D4#1jQRYqn6)UeRC{vD``kG zuDO$|!e$F*W5-&KE$1K7;F*v$5cEchWBti)-Q&U9xr;CD$k01W(9?i9I{>wGPU+Sm5Tq-|vP&NBoZn`U0jvz}koluIjfx0Hzsh!Lk8v-*#m?~w*P~3E z7+@8_EI=b)v6_Qi1?|V>fgI@eYQl{$;KMmNkyybl$e>q9K6?jyu}d^}s+b+&y?Zt$ zkP|l0*(QHx`R&~RkQ|!uZ9j=t2POoe9zRJHw2=VD4UltuV4!=g1t*d_gM4OxMq4r3 zg6z{il-p$mj2r%|ff+w~p+gnN>7|pDmmX6+-LA{LK1X|(OuRBlV6d}6nA8cB?(Edj zR~!aBMx(#Jb1<|AxJdQcfq$dY^!NP*--~Cb~ZgkeHL+Tm6$> z$eq70>*YoC`3PeB=xo;D_4>k+HmEu+--udKOed_GY9D!AzW9zYf)&3&vMvtBxfQu}RNbT(k; zV=ir_Kw4wTvH}&!0Ru==_k)W9A;(N+lR)eSa4QY~EW=w2Y=T&Y7GzWQzhGC;Hwh9- zcd56C*x_$M-KQgF>T;83nzCpBuy~bVM1b5o$Farm^u4e8h+Uj$_$dISWzhsNz0Po_ zPj{Be@IXjJ)|XZXUi_(LkO57yEGHGUOgQfG82cY?P_5PU1DQ{pP45I>sRu8R6CiJxpA0IBqI`0Ym6^AX}QJe`PUxLes_u%9=E%}!WVoLm)`2G^%N4Abglj3_^9ls`F+%vcJ<%YFKQ>8)n%~9eKU3MYqqql zy4GZ54--A??Ckm(gm%*pOpc)r;(OZ(-?ygNYE8kk^1R1-m48jtiXxLi#qicl3yqf& zbG_y<82m|tG)s1fE|m_X%VN5;FO{z2aXSJ+P~sOc(PF3%*9|>l|9DJOM6xCXXZ61Q zb2*fkPy2SR$zQ|RxSfoGef6&u8yz%dU)>jlLa3j2s>&Kb>?KpYeXXRa&1~ zR0e-L#V6qmO2xhQhI=HKGI$-&S$Lw>jK@6W9N4`0!8waS%naW%W*~@jICH7O9$f&G zl9i7Lz?p5p7f*Rc^%#`-PsJCgo6(!byY(luW)M5!5CW18HaDe4C+KpxobSND3`@!EMw-VhpEm3wGOtcV=l`B@^!4Jr zB_%T+-CjESy7x`qW$}6e7M|1`Vnn zyEL9Ka%8$)+u6CuD}O0{E=K19XS8}budb+=(TDZ3Dz(%c6yI#a)nTECm1-GcBH{G1;5Of~bi z$|mEcYw(N1A{Wav_OiI3j8+GdmCsu)R)>jpbw_*E^LLNe8%VohfqW?@t~Ud=Ygq7b z`-!ucDG(ELS?GCfwon?tw3Ix(*Pp2mE~9rA=O6m1Afr#j*tvJQOs4-&3XCjRtLrH! z0yO#&`5w1Q`eHW-Zcj3k%A$0-uJ)~Vk3cB3ysAI9bP%z-6uM0M`nL!F(aeOt2U2X~ zm`Hs0o7_asHz05O3~ks1PRwne!3q#nBv5rr{SNY(e=ba(pO=?Jp)LvYnZtaTc4>|p zH>d3fTh+>W0%8@+Mqd!NrL#XdSx-&&l3Zl!RZ}NwzDFm@?`Ug7Z#>CY>gK<8c8aA; zU_0S1%IoZZz_~m=Lq|Apuz@spJGnliBC+<_lmSx@5yZ6TF@uOhE>rGau>{|43I%zsYx%hM$BFTQKJyC zi_l!K389fg1ruIK073ilsra$$lK}}Q)(9rS_xfg#^hpm-8zwL*)UBlBd_j&)){Y&(T8X>&u9X;5PL-4}h#Ro$%S4o$y><1Z1r} z(tFW2OCG;fpNB+tGu9`7Q*Xi#dfo3TMEz&WJHMGoAgxx;9C&_uBo%nIBXx=H!YgT6!}p-47h)Vu$6|#jcjP>(GVino2_jKI*&mJ4PT?$N>vxwlWXSob^s_eF$vc z2{cnKZ z=MVTp<$Y??mEF#g2c7!!`>paYw~esZE2#Zi6NoqlRob>*07J}vH8GkY=3=P+QRBAg zS3piU$FPOyU!Y5=<$9qoP0W`G>d{A=ePN70ovB?5t3Do7Jp=A67cbAy$0 z+Q^m}I@+^--vKeC7GKl8N_dIT*Y>mfO04l2-ea9oBL2kV<{q4Mq~^8fcW@qx!pj#| z54(acrM*lY44WYHq|;QRqQKu_0Xy1nwnCclr_fz5aHtH8&iwPQFl~01IqgpYVxFSq zD=z>zYx4JgU2E#S0ES6bB5Co@_)WQys=P!nl;S&%8fNHC{^O#l9IMbS@U67adO|`DzL23UcKiiHeL3t<$7Ucp`6dYGM6Ds{5q$`0B|kq-Q-_AZ zTw~M!^@($h_`lO6p(kUe0TnCJk+SM}H8tVj#967))z#B5qJ2G(fp*u;%X2H_;>Hso z5gK1ZgQL;!s$HGta(D|D6a+gs|LTSXgQQGwkI|NMnsKu(I099SjHb^04t2&%tWG-h zzTv(Fx%{BZ()j87(C&33V>v4;3Lx5oRi4S%A7Rb%+kMe|aT+iNP6yx}?5_y%3j_>E z;Q}HUL_7{48!R&PQn!JgR87q$4;QFU=U8lR&B(>`FAUIxii`08>;=hKso9H=Q@x!#DE@S2M7mei~ovZ0IimU z-gRAJ&To$;EAZItblwL#QwM@o9$Cex%V=u2zbp`w!HGmO)cBO_JX7_$H?N+Wn*R8E zqUFHM1qk>x$E%eimi0%`_$Ptq2gu@<-6_wF97zqFhhc0q!^0U_r35om$&$!SP7Zw7 zU2MK~C;G+rqM{vFbQIwGE~(;)#f2dKI@3XHp9dK47=^rHm2{EZ_S1P5=lexv=D!;D zAZ_Jd;TpQa`?$S1n(d_fy0U$=h{%(XvE)}jH!%|Q4Xh4ih6$QJ^N9g72W3SY^Derm zGvg%V(v}RFrhxm9=io&0S9Z{^OsskH@RRjZ%rn&SZkq9-rycmWXSUXKoY~v?N2|Y1 zVv5IdbxI}HUv2}qWwNU1G|<5WZ|!$F0!T)MlQ5VBN&uIE6I~0h`&zSp2+oIy_6#r7 zZHA>aMHc9dg|DCF-8-^bqGW;mK7>$t6M96~q577ElwpY3+01heD35f`1?>JdEP%b$ ziV{LJ#NeNtG#=070*rrnX8{Q6D>7I)clj;1ctvx89)JV$Tg?3K> z{Gu-i1K|hB4d-@C)*woH${6S?EV=iC*UR+kOtlwmxuHb-O`m}P{MwF>>`I3=g5XsV zuP6wS0i(?pk=A`b-Gygz8^lLpxI@9zXD-WaJ_Z@zSGF8+o5Iijw?S#sqPNJrr`%1x zcGX@cc9j)$blDQvF&A;KA65Jon?Go_>yJ+Hf{R19T$-bCzk>4shB&&)cgw54mzHwL zWCB;7a*R>%!!@96Tztfj#6~b83nCNhR%;-jbsu^YJ~@}QkkeOcv8`NobhPr_#AlfS zxUX+&rfrEp#X}J+bJsr8M)Z_1?nNKCq6oweSHJ+T*#33(@|9EUK_gx6tboOP19kg^ zAUyokokiVV0D~ksM1!Bo`d!YFT`cvvh#fWdl{-Z<)Jzwi>qO%Yd+^LMXXn$T(;DN| zL|<(L}dwL(@9iNO@582hTZ)g>_hG@l>Rnfaga{`FjWQ6TmKeG0Iv-o(8?bF5Cwgbkb> z)BUw$u`jZ@Oid90wT26Zyr*{XK;;`Kg~Rt}wCmOzN2pI0mL2ObX6UWcOE~yH?&nv? zw|D<_a-sqRPNABaV180DPu5RwQso&NGnpMq(j;whyYush$NUCu{{s861rboPjr;yJ z2(r|;Y<1^M#xgzgbnzH0myYHJ4`fSe5AWsKJZL#;3w+A$`ZH$S3-p~xxZJJ(1SW_4 zZMNLag9$kw(CBp1v1&vn!)+js-hDx4CU92vzOj)qxXAr#Q+u56IBA`GQnx?sFyVgL zbiN&3b~{3@MZ)>z!@IqGz0`iab&fUtj4}TEZfa84TYL@cJdV>qcgObkd01|oWC%-~ zc4JXw_x>`HdZ$H4p6cegPxw02@yqaH(5&A+p4Ilw|V|IbRzFL&MA`+efo3ZluVz;YtSDT(UhAcOx~ zN)*UNrwDqiso2+}_bNwlsnc6PN)CMfb4#$>@GybI@2!eJR-8c{e!{)c_u6l1%^c_| z{okH^{EzujTwXP|;=AHK7fSAkFcK0_M=S94C|Ip$EZwRQ#4-)z@$_|6vO;w}%uj>X zo8LEv^L&rU6=zKRz|bv0S=>A}aATGH(h@mbQe2@864el%$aLk}$}Uw_Z^DC!czB&B zE={fc@V|f6`tNu?XQ|L~H6?q^hB>&Y@pf5M0OTxe9so4`ezYoL#fl4QF;&A@ zUn;@3t`mH7JfY{1A5w-pVS`e}l* zgX!7QTD&4yBs{Sl{cH)i+xh$#kJCqO)(M-;c)`eYwJu;&D(`W5H4haHmdma)eQZ;T z9T1OB-s!^<%g&)AOSNwuY$?p3chH9a^IOGjv=f@9RP)xs^hfx`^hK2kj^+62KYW{W zl<*a<<~$_@Rjg{d8fV(cbCXULp0=85lwIfpjsiaJCO@pQ{2f48huZ(F4*Y#Xf&&Q1 zbgc0lrfObwU-=GvJ4+UCz@;k`{@;ZJj{lzu!+7k#+)X(VwN&k&{{;<^$ zY4YY_VDi=nZJ(BbZNryoy|xV`c?r?-ahk* zGvBu|WU&X|gHH;SxGb7^UR9TBohWPQ`PJV)k`Tqo-K_DT=4De=qiMyED|b~c{Ql7n z&ict5;PU%}X?Vp|>DIwSNbQmYpLx)!42w5Sa)8v;==D0poO^%WcFUH3%!Ca!3)yUB z+6aUX8$~}pGJfn31f;9*JWEP!&}S3|4(qNc5^9x}Yax??MLVkzrhx96%;x;hjNb?w z?xR2{9_zL{RCn$>DK1}8ZebSTD`A;pfqNSd9@hs_!E3)THNQHi#?5F=15p|CTz?;H z_Dt6L*T-rD4Rgeru@fvh-GPK*;CzpR5_f_n_f&TEBVqn;C0**Rzq?iWUPj8JWAk5- zaKD(jA-0u4S7*WALhXl4(7ks^UA7%m(}-~s+EQT?nT{JSaSrGgJ59NWir*n;Q>o+T!Gw7_ z5x)Mv=IDf0U(Zry2?a=`WP0d0&)0G6se6p%ES3Gb;9X+>S%ql+xmk3=!3gyLb1Ko% zUo}wo<=hplE!#eF(bc(+cb={AD$jgfm>V2kS{vRaDIs>##_iA8UL5(s{*7j5I<{a} z`qCBA?&6BbbrD#+EK3!@65-t>F@r{AU8D~2$67&ypkM0j?&_Nb{xcg;+9szC`L&+X z|vQNb!h?$za60tvy#5e)tUcyc$%mLgnQUhPTyAm@GN2MG3>pN>x%?H2`5 zlKrIePJFL63a|KGkUR@2c!7LXHa6f=Cs`u{K1`Z4Ka^oObNLCRl~ZVSMN${CSpo~ z_*hBFYKYJL!c3JK68FO05Wo?l;P0tvI@;Rev<4LkZK+JXFLa0f$d~w?Us#RC15YOC zSa}(~{7(Pdw?acsFu)|^rkzJtS=ONNzjo;&gM?c_|B?0M`|v63`hHl?gQt?mm3?JP zfdACzl)~lt4DD5-kRh?ZukE|kSvF}k&*FRdNwUXwSc6iOyQpD*jawabT=sF@&8t1^ zh&C5O<+;%Z&xm&x82^qk(az@7E*Qx*J~L@Jto@LVGsYCtVBK9`#XEPG${b!;>IfwJ z?UXQ?jt9;^6dizS=Z=kX6c(2y}pp+CSS)0xUUCA|Ht$F0Dp|Y0a zq@%z#<>WKhNdc7s1eAG?{dbohvnQh0_j?^&T#r9R9AHFY+InWaiQh+})j31YiO!!q z?iJ>}Sz1Th@;f8BLDBHdX|Y}42-DIrf7=KbiK=P#QTeZR`H1|fH zsAXGN)cazK-I7@CFq`Varvci+UR@=JM`uE%-rt`fS=);lb`7G%)xbSc$dkR98s(gV zEPV8~v0exFC-Lzh*4-U3Rhc+*LKMu?eM)XQp?nTXRc2RGFvqsct{iEgIkK zqRUq%3CXBMFR&X=4^PSLjFqHEDJ%Q_!?6ApOfG;(4egxMJ&P_x*i{ z+@B(KNW^$i^Z9Q%K}k-Tn(<)|ExB|}5~mkFM)B#Q18}qUa8f;kH{aS=+B|pZI~o3c zJ^DGOSLW0ArJQG-XT^JDfqQ#pK&xkkaQ&kC;m;oN7GtFP zAahpD&5}FhJzW!2lK6?`9yxi=$B%b#BX09#CLtjmZ?reY((ywD^A{m|)t59LBVr<> za~=s5%y^mCUbva{mf^P;ZiS()q}*Vo4F}$)Pu{?-Qy)sMepUpFX{2X4LRVWmH_?IJ zZm3{d*!NA;fotrKm5ky6bNH9o^p;A~x7QZj9qe8%HFFJ8UJQ+EMA(E;%b- z&$+dr12LX5{PLYI@S`@#i$v#4^8&7x-IlXy?KZ>>pS&I;#e4HT**39iCUMpQ4|3US zOh`(|EPBm1FL`A&00J>Rn~{1+aF(~#On~e~lm&~hM9dJA>e|^=48ZzyH8jeD!Jqh} zE-t#{#Q(&5RHC-4R_nRGLlPKv@CLPbdmcI5?Y_b;+RdK*Ue+FIftWy!8xd=py@p6j!u0|DL-9c95N+z1&e3-;w)%OG`|^3dNbo@&;D_kw>VEIt zR9d!;6-H*5OtxHo$yceb=@}*TH88_bJaZe2bZ3IetFGR*qbp~IXVfD^z=v<4Sqze;tgiR zaPf2h$vQ3*{*rB_U>2W_xnwK+3Lib)`eWPhd9TKmytc;rE$HwvjkU#B zc|=QI&?By}E>V%O;4Zixav52*oCO8J*GV!FeVV4GnLNpB{R)$#;&p&>Rcd9}?NsFi zmvjE-&G&r4!qQT;%QHv)l+;~95~7stD6#uktCE*-X|HBFZHGs7oF>b)Xe4V3YieHF zDu>w@7R9DN83vy;0-opDvuBBd?qBa?tRmYFzkbC|!7sRzQc{W<8%QbejQ2*4l zP>uY<(wveNbZ}+Y7oJq_vqmlLc}A(I1r%Ik8zfwP)OLZ6%T~L(%%Agvc@Kl;tDnpy zG>`R^Wz9=rGAJR{4EH9SS=eb8Jo3HYQiX^2#zgV?Qyu2!i14^ZBg{?WKj!m+#i>o(&`>_8;+I?Pl*5in}#JoyJ?j@YR@y%w&jGKr_SD}z$ZU{Od zJchamLqPi7c)ZmAkVhe<~Hhn)x`XU-8dcmcKml@rV zVXx|(^-H37de85uxW& zyQgS&Lm7tEo$1Q>$Ae27Z2L9;{n7)EyuP)iT~by|D<%8_iaGQ#LZ3R+BiA0II@KZH z7!QIdDVCeX#%IOrmhH#lTAD9vx>V1by#o_U-6)#N%w;ectaf8TXOB3}ig7a%d_CMA z6CV3n#48GztDc;^SxGia*;u0Dxc$^9s@V`vgMy}W;tn_{X&tz7jf6xfXW42@SN@)y zLa_I3Z4%4Revn;I@fZ5+^)Lnd9ForyLS@J*vQ>L$}PD97Wf*Z$#CtV^-?5-tcbX(eDi=W33QF7lzE z+CL2^5*w_Ms(YJ|zC%%W`v1V2}l=0Kt~0Yrc?m|={*5~K&UFxdkqkZN+%SRPDnWSmAhQmb>9!8>z1|g)77Nn zMY+YB(A22+5IuDIH1CVG#9ip7@U=u317;WlnSUFDlQ0IKntqdrr~FLheS5g{RD;?S z+!F3ZT-(by2IFts64Hm2Lpp`lvC(O((OQa<8Vn=&l<|N55HGLTkQ#C?1md8OFeQ$O z%RBB@hlDBq^9Q-EpXYy1OvG=|d?w6|JJr{3eqURf*va%}__x0v11DpBmbmwgj9oi& zFIS}he%b?g4RpO!w=SLm=3J*TERNxdGNCy2_5y|@*{{7Eawj;GW z{`~`niros%|M-9be^u+mKR$V9uX$w8KR)^IY5p3H|BlUHBk|vL^Y=*ncTfE_6#q38 ze~rX{4aHw0@n1vn_elKLQ2aF%|1}hUjl};=L*cJ+_0FAm=aYj0TY<-V%RQaOzF4WW zH}sTqLJ@yMHct9D)OyT7ApZ^g)N+>|0tzpsk>n1m(g>`l%$dJG|lQy1jD zz1vI%E3nn`g*-EKX{V0ZGHWd=k7QnGo&6@ir_U-paA@_q(WKRrfn?GsT{Xj{P03>_Au>M2Psjvc&$ab3 z`E*Ti`HrtU_aDP|RMnj2K07aC9@o?)I~v<q$0f5|j4aWsdl zbC$ONG zY6d4!{-V|)L!xhhw!c}L&S*mS;^g_4v)q1ua%l&+-Z1$21<-hSm)2R8y56OlDz`W2 zZjPwR$V>@633zf2KIY*$Go7Wlpy{%0YFOqHc;mnV>C4ro=+N4(;RGqA zxRS+i-V0auItNSV#2523TUk*uk>@&&MyAfrvds^As_xoc(T&dh z*=S_Qlj07rT<3`VSy5`pOsqS3g^yptp1M$zSJsZs87f+pyuAG}chk@B`cuA^$k|_6 zk}jSOGm3;8z{3w{bYqY0nA@4P-_HcGX3NTylaUceV8F?ige>?~k?W||#Q22$ZEd`I zeB45ve}me)axr(jiJ^W{Ri(F0ADUD?_o(I4J!AHgMLq4i*HUNzuRLJN{NT`O??=0i zVY1*A;J)=}&vL;;0#+`*(3uNkFEQWsK4pMSj9UpN&k?!>RE8XMKT{#wtHN?5DjP$x zA&09dJ=@DBo}cI}!eE*XJ5cehIt6ExejGLMN-#1kRcXv$Da@ZqRrdw2rli-g$cR^O zIH8Hp(O@phUPlsO0Rmwfps+24$mgIc|ULWnH7(X z$6ihOJ7DRKmX?~Fl6ct0Tm9yi)}cGfPXqPty-Uj8!sX66zjo3`=XF~Pb z^igx_V%zHT^UpcQH@9qX}kB{Hzd8fkPBfw|dI-2Lu;O+|UF*U`$e?0B#Pg~KfaMg*(4sJwyn z+_@7n-@fc@^>VD5*YLiP-t+ZHy88gXlh2!dg$ghevD+SOrJ^MvaX-|knv&FvYUpV>@qnsFjaVnQ+psAZ| zMxzS`3>8i0V$9qi)ZW-JpMyI<_s7IL{)2crWQ zbL;NeL=|2d%Py>zft?F>@HJu%_B~fV(Kk@S4tDwTi?~&^ip$~YS6|BOr*HPz>b(*q zgq*T2 z6dH!?F^)#5ya7*D3EW$Q63ddhP}VQskIy&07?&L^m8r39GgxvOh($9IZP7-CB^O7k zGpsG_K7V2HPuXFEXR=DL)3=J3NyM)&YzqYy&N>ih932{BktHxv-;F`rUwm5pi|WC` z-&UrNj=5CSKQBnC`|-H9yqJAa=rBOk>A$IW|oG5NcY>04># zC7*ET>%-+Yq$}^^2O@Bi?X4tCbD!s{9m+~b5W@DV$4H~HsKa)TmzzbY?{-c=5nN7Y zL#hs}rxv)%g&Vi`EeO?aTO1%|<-NsHuiH0<8AJaSSG1!w!# z_43kn8in!oaL=5y&o$SCI6P@&E49Y0C@1OWL?8RvSrWd&oU(ioxw7E}CmelhLosp) zAML0TpZU5XaQsZi!(fgW2YZo98l8_e9zrph?0a~6KwDl~xzz!0$Z|B=Zt?S&IyoF> ze{+R@aXKsdsK=`ikK$7jJTt94wq=6u$;g;QCwg6BCoI_N8t-|7eI9av6zUY8E^$<_ zTj#uB&-z7qwh4XL!AOX-5S!L*tXuPl9ZU?gu}ER#sBy^Zv3K%KhLJ*PImdL1+hQWX z7EbwHR8c{poh3`9AxtxpoBVo}=0*uV%)-HndlHB`XW7qSlx~&S=vpTCU^VB>oypVG zy#IYwM;kbh?DhUqzgEMmi&q&D_&m>Ro5;<$PNfXy1lVo8I_XWJMLs{ktOu63hC0%F z&wRZ$$|M$B?*`wopBhOSBrLt@>RZ$t+~kn*0oDSdQ`B-ar^LzEEyKh$h z^?LR3bC&B28KWBzT10f5)}InOa<2MKf7IDNcknRYvoEDZy@u}5Xfq^8DZ&jx*sB6r6#A8YyC2QN(=JHn5qF{K@-R^~~Y2=+b7 zPx4E7ziZQ`|6LWV!uNv471ur|okSicLU@a>lD=v^J8-&h#&a#OwOrJ4>t}M=WD%wWralA*r>> zyv%CYqw-6cg8gSXeVdP;d<7ToIW+@mEId>8EG07HIKD*gmL;`he#lez+pxKV95dy1 zZI8WT76coU^VA||4Av1hTvS-Ko$N=Wl+KgKAj;W{@!u)tax=_1vh_nPzuT%$mG8F> zG!yzgI7wWce-N>;|CdiPu^2qMl1q)%H`3JPYtpG2d6r)tkP(@Ah;h`sf9qz-w_h+p z2PH!e0z*>|@zLm-_!~0~_h--Vd5@wU_`w(3)SxiSpJXKZN+J(X;yFl}KZ2T;Bc#38 z!FYl_u_Mt_>h!W<5ru|Uceo!`loow%rOIiaV`m1|g)`p0u*R2RFavzQRb|N#-S!>q zJ3ZLccaz!8GKcqy$1H!vW(`(RUv!^k>g{lrxsX-j(muhCD#myY3oC%%R<|C#wfxNx z%=f1YV(YNwPq-|_)Gs(XpJjbO=zXo~Mo?2SAPQ@|?u0~-Ak!G`^(Dx3v-@twz)7XT z#aFoGFTxr4iv`N8;#aKOJu8M@%StL-O}|3UIWnJSZ7~aeFd!of7%cO*Rd;JQrFy0t z?jdQyqnM1KxNLC8Rw`-oidwGZ9DQ@eGxkH%@72xB?^?!7eq7I{thRLz1wH?{ySe@H z?dDb_R_i{yw4+F_e3i@n)stytda-BPqwFDIa3n|ev7SS$yKz-=Q?^+mXW5GXGj+3G zhsa-!QM``i)G`G%()oI7(jF4qyn%=Xw>r^_;ypGF zKvYSkzncCzMlg~<{|KSXQI*K#ln)N%T=H9^n6qt&HMeVXT`FGuy0?FH=C!Wc5VWj_t7aR@sFONovXtEY$kJF+mao0Fi}koSw)rUc1x=?2#Ja- z#Xk-lY=S(;?lv?olz#g98MuK*YeSi7IVG2{j7ku=L2AM>DpLnhAOz^n_ub8WuNHJa z?1h{yp#+LjMMzEEUt+x4U&tLjWK z3KDl1HmB0LS}ya1^Im~yU2GfbU!MlL58w_6Ga|d9j1t9LS5wxbd(~NeL;)P9xc4uq zGKS^08S>_V-D-! zch!f%&rSGSq99vAn9}fa44NV{28kPatsKmRe;y`6*x^A<&h#;Gy{zH&c6H+gj)CRJ z*|QblIZ+T-oH~6CjYUHkO6FWB9ubk1qF4p^oRG~-T&P~!-TM0C$o| zNNRj$xZTT{H}o|a0*H>rZtIoxM{?TtZ!NuTk0CUvqlmV&H6|tXo;`_v1Lq|0tTH!w zYxeZ}F2FoZzkBI`_*8JiPRp~q8RnY-#E^R7r5z|oOHLZrNyN69N}iW5?}8W$F6R&v z4G-9dEjChm_Kj(tXN=!yb9pYE0~2CXpKzK@QdCLWgR5^gcm)mPIviz}Gc@-r2Trb< zN))8dk(>H_L(UWCx;hV!+ST;QFv%r8BOT}lr{zFPF~hoE;jO`UrG5C-h#WAq3|l#=eZblT5{0flrxMGQVr<0g9u>%*=PHOZR!D>ou>>q~)4JhG!b&;Ukt3OM z^p(?sX63E({lVWNlW=_(#oeyL9z84Zkm*DJYIrLB**8L!IF+tI{dNK)h{f7rPO#6a z`s~}cpAxjcQ+C{}A`_ZmvLD-ZCBtQN*|zqhIKJi?Q1(DE8~#4`C&B+O!Wj_=JSJuA z{0qeV@$dgzbX%73$rJawCpKK)&ztHlj#LH*${;`(#M9xm+B`~S+imQk9u{w%3&o2a zTE&&RT3E+|a~`OJW$&ao`K5zL;8qej6IzTt3*j)bx_OjdeojI#O9;(9`$tD0h$sS^ z-}sfIL{1%mLhr5jT)dYW#`E!!Qs=Er;>)}|AL{9fIa%E?x<~EL%QdOz$s~Z%@ z#6K}u@;9SyD|^aN#Ana$9v3i0VCSemyRi;Bz_;p# zoMvOYj~-{=IW)>%UKZe4tA_)hDqJ@j{7uS*=Ysf8J+8f`uB4;xb$U3H#)2gN$hi1t zqlNHlyWbH|`uTSkg&Q~6j!BRKM=tsjh+i3MU+kUF3XhONzh<(s;+GY=v4c*pYn36~ z`?jyQ7f_@GY=LlS;!AEwJuQtH-Pkg!WHPEM$ClrjNZ8Fj)(R zy0m+BKOsnWcu}h|1by9$^KdO)0JTPCHxBcxEv5l-ibSAD+P)@hh6iZ7Czp&PJ!}b= z@+;_=SZnLGPS{+19fcc8p7Qm@YiF3Gw364vyb^kQ#Wt-vxt`40UboyA^bzTP2{aQ$>Ym`K9Y^ zaqiFdk$zWbM#A6(?{TKu>k2j#n;b$*q+aV-!ANgPWu*7l1a|fbd=B>aN2-JC?*0fW zD~P#_HXE>S9ufc$R>jXS_o@okQrCwlrY9HbE39C-XBZn%mFOt(_%9V zndd{w*6BaiwAG1AIK)mvh-B9zVLL7)VX~4`CfyDRzZ7O6?61tG46tO*Vtmk`ummgn z&cXAZYjwDV&+%9%lL_4aNir z61S9$pVKus$3%Z(D9Qus;2`@gzk>Y$Q3;>wA+*skY#c1gFA1o&Yv6X`kaZth#@F5UFw97+)12}JP)u&To%MGyjK9R}1p&zLv_0mcZK zjon~&bYor&f$A264{LY=@>PG$?v z2IUx+cbUs`h)GEQiYVt{U=?mWmKs{_M*vPby_1awXrnEFZQAmYn@FMnK|i|t7V0mk z4@!DH*B_72Y>G|2#&!X62%u)?;qyWr@LdY3+D`?L8|@mke!TCte#%7OSgN(fAf3tW z2AE!Wn2bl>j8D>pV|KpwxCO|zun`}JP=rib?YTAMD#-4j|EUrLNPH+TVwq4BSxTl1Tm$O|Ekmwc>MsL`(UV|7Y zKFkw9xW5tCJTd0^XgL6FIpk=ISATUmoN3*1HfQViyNoeAO-8nkuN6)X4!CXv3q$Cm z3*kqNu=Sjr2;5PPngJ{bLA=Sl&K<(^(372&tCMG$h@B$_(w_jSzK9EB+kIiGx>$E< z)X>g;SDD>;A)~_9s3(0BZ7w=OgSmC){pU5>8|E&^>3k|5&o-IC3Gy{s;#iJGX6BbV z-;lBoU>opDzgY6y- zyls=vM(~h+K@!oa15rjx``J)nKVfv2!cQAwXhvmbl$m|;_*1!M;3zfAMjf(_R5u9VK+WY4I$<|)T z^WV&uGrK?a_tpvKVRaD!1PF5d-hV>G#Fo~A)8X!LXEwm7Zgx9OojWO{?U5#gw+7%yJP-)e!XH>-d z^3a{x5i!F(A{t5u6P;(tlf?#x-(yy(ZaqV~@*ZW)tslN<1A;CwV0uDYcpxfnt?hNX zyO9S!@5QU3tqEDz?Q+>L6eg2aVC153BgtpEs!Wi91OPZ9KHT~;$D3|p0%?v2 z-7k1Vxl3z_1Moanc?Fd#lVL?S9>vbTbpG@qM#s9%76HFE$B#r4ZRc_>g}EDog+PdS z1R_VU5i$nra`@gNq5?;d9w64p-*t|@v#Zv z7@&bywf36Jzq7P(z#9_i>9eipZ#l}s5><#Ng$V@`=(=8$&(aE|OdenzSs zwx1247v7Tv=FKa` zm#alLlpc%6TIs|N)^El;Wpj`?Z%GHj8Vt^H`1SA?2Z>DFU?7;8eRBz%CG9$xg~43n z)OUA4@X@R?wnG;b6nf+=r9CWMQYZo)F{O5RN&7&+G1v%I1rJ(I&%{qc+M?44!B1GNvzcF{N%AC(p$K>rJjUxi1Y+{OSK-Mw-b*` zUC?^A*IB!!^5al|BibW?6R6T+QV_axQA%QB9L7=Cv1y_B!oq?dc|WR9av%;Up5NK6 z&N@fNy^S;IFC9wA!C*a!tPp{~3ET(I?{wRpFb)=QMY^x&(LsO+`60~l;9_Ml*uL%0 z9lb%B`!PANo%wL~$1=dHh*~2_?!sW8ot0x*8Oc*Z{JLXup)1MM)q~k-F3yeQZ|>0G z3K=lRBOvDr37O>>hm=)e@t&71g(=@KtMFd-3qseanp&o~hK8FUa>)WKv4WFlyI7jo z9e0UxSQ2R0EP!j^)#n{^(&_fVX7fXEo2Jg5@woIB*cT*M_ohEHK+tTdaLiReog)B* zjHiYS(xoNNn-v!qZvu2*Fz+|tEAPH=?I9DFbRGcaM?Ni%P8U9G%TE5RM2wLLBEdF3 z(U&H1+4B3G`PwBPzr$bda#WeoeSHTp(~rIDJoTb8HwVs$`^G1MH9#)$P^r>^jMD3! z2G|vQ-ZCGc7lL4kFS7~OO5LZQX3}3L!MGi#* zQb>u#NpmG!VMB^=3cD|2H6ZO6Iq3(WkcqFAk}WYLVXJQy+X@CcJY&hNb^5B*%DiO8 zj|UmmC$a(>29!$n1(a0ly2=wCDUVb2eN1k>rU(szWawUl8gRxku<;T_i|*^EP*Hq>fVuK9h;_PaWJySOa=S1j;l@d9GfLs0= zs)KAW^@KJ=1;WQGSYnCijwTXaooE95eM|5r>`olEUKFSTawTI2E75MOQNgIkz_F~k z_;G2!6)1n&-8{D@C(|!F87Aks6s8s#&tOC%fyFTzO_rh3l~BY19=>aT3bBx-)(Mw& zgIs6#G9~M2{x1PruI_jZ$DM6nP;<(*q6Q}x(mKRM=7O~W2%SIE9QmBzFgCqhRu@I> zFF!H5L1=1Cuk)XC?H4U8ZLz*chWDNNAwm8CMg`IPXKJ5el%e=NOy!(BMdTF@N3cnDEVRxz`_uw zJDO2`fh-1K6@cr;@`t>gA@{E6w3v2*ajxv|?( zKSEJE&)?Y-%DkKgyaNP`%5AMv9CT`QqRF0IcFS&8U0u7SSk@p#;fPXH^hXR4VQAB} zARWG}J4G_H+c@2_FW6v^5;V&gvv9mCf+ldROh?E-sNQ0yw< zH0p%G+QHY33Yp&N-}TjZVbC5onA}#{EQZ0EQtwX8iUgw*VSGR!!3P_8LUy%6Qo^M8 zSe{0{qGE6R)0tWKOAC-4d1v}3mam9CfWblp7dNnbu2_G9xx)$CjSG?H#3JKxvfabq z;=<$X8X_T?uBp-mh%>6v|J-l}z=$l~v^kF(3+n zeefXhigicS58wj!C1F4)*!a(7b(|=bu{!M%d{9h6!ep3I&JHD)oiTtwL7aeOT&u^~ z?Kpu`UTrnOwCW*gAJNJ!tLPy!1RU z-<#yb8C`W6qm=MvT}1vBwhT^APggs=;j5;C!ed)Nd)TDkR(+vCoRI_Ru?+oFsN1KT z1SCP5FSJ(W%!v`H;|HC9lYk*4QOW@BDKCtwfYu~d(!3%sn`H2G$4Cpk+*S;LykYm| zBV^CECVIKO#rAOVC=OH}9w$7hIiF8a7DVRTdp9dRNopQ(^Ir8& zx?eI087gWQ7@)-k6M4^8*CSF1STZJ)=_^xKxZEC)FY=v{`tW(mrd6jft?ToeXKUtF zJ^{X7h}O?YblMt_IaW8h-AJbkecx0I(WCPYnokH}UQfibNgZ9~knOY~zAPBFu%xL{ zT{(c7K-fcA|E}_CJ|3>X9JAr~_W8N$*BsVi9*wpu9}uB)=56a!6KRkLr23GDXV~ch4sjrh^qB1^a*?D8FrFq4br5@cv<`Hs~q%EqL)irI}-I7a70aKtu6e0VBo5dT1hjZt&(REn#7`z{yE$WuUdQk2quJ z(C{j*ZZu_OG}cUWPFTW7T3i(CvXA&oy}7^bMIhA}V9ZJ4hDpdlD8{amIe%>42iCPW zU=|}6#E)>Wc+`S{Oge|-C_i!R9>etXkE*->&q}SYo4Wr1&mWN9oMZaOC!fU5J>T_@ zPwpRl{^cJZFql3{zVwez{(qjPCgV+hep~4;^YZlCz}eyQ66XR%MB^nE*M;^=yy%r{ z)pmR_|KNk>49LpxLhG6eJeFbHesXfbtQW6%Zry(V`=gz~and(I35qt!!*NR9l$8yk zKwWu}80|rqxC6>riKzN;N15%cSedW(^D%$)Z-4B>bVL{gGNQWP=wWEg#B!M3-gvHO zqCt&P-F`PKjC)0C8i#0k!K2iv?J(Y**Vx)}*gC>>H5ni)V>;cJi84Ezx=T@gHas%U z?VEPNmJe3!&YUJ9ZSeI)Q;l!_DGz>mDCvisxi{LxXbM31M zE^XoP^SUD|wH~ap4C2sj$)i$(J%38J5s?$3;X-n4>-H&oco<~Bt-|YrJCK~-pu`Lh z$&wwpZ5NbY!)w;gYdmZ! z0i39$z2}n=$D|8NWPsi`nqG7Z;IX>a9mY2jCeyh&E`{ag&Fs-Lz2kh#6m^znPa}CR zRr+OlUh|}FPRaF|l&E$R0~xb(U0QAxg{;)A0C+Lzvh*I~*puV8p$X3K$EiSDw%K}q zp}R12__Uds88(bSYz%6a_Cqwbq!R1%$5Au=jVCJ0KFNb1y7TlJ?TUtsOTgByEkqo!XQ6E;Xv&bG$T7Y2b0q_kMai=86FN)81$HpP} z%V55HDC`!ip(F1sJ*Ha2SH6odPuFFk>>-JedhOl>rOtp;)9)sk8hm{Shj+?|RO7do z*0Ikig9^uljtSTbP}>XGMnLAo7T)Bj7A{gGO)EJWFOqNS^5Elo-{za6A9 z03J$_A1>Yk$pbhqw%FI1IFnO)hF0Q^U*5I1qqZd}M`?3(F1`!Dy}M(g?}3BNBu&~W zAsKYZpcoKB_TVOc{UsAQ$sK@WBsnb^xzPD}rUPII1h_?yRE^%jFhoaZ5P6kKhDEii zH)^rZe`a>R>gZm7`Ww$zj{OIj^a1j&3%RMU zdHYR^)!L(HI8cg5SpC|xiP-xq7Xl`Ls{;BTF)?}TU+jB(d)qI(0QzTpt!)a)MB%;+ z0cuuOZUzj_=G$3H1Pz^VRKO7DZZ@wEWKP+2g_{R8?5dVN+aWr$*;zwixzb=g2+}R$ zJ?3O{ffD3PS1FY>tWr9?dkvAu)od_~)ImnqxBTe&{I6M$OOMaX-c!XeS=kOg*4p>; z*KUN(0TBWSleGaLnP0?udvqgm?LER8b}c{G+h&l^1A;1+kydT5-aL4)x%eV9w1+2~ z?k-?UDWSCb(Nz-h1KDb3i#lL~yxl@O5mMA+34rL;WO|v!6JaJ!6zSEu$^x4hSvu(q zvi}jWHr!dWx$Z0e75WtWa$7)7v0aUXFiJlgWcXccR(#x-ZmP%{WwetV^zJxk?dDl| ziO1ttxg@g?5*-Baxv+|Ivdauz{0*}2O>vdm|mG}~QRZt6!BiA23xk#q9REn1Q85j-=v z+Vm9GOy$<5TqLmlOeY%ko4)2CydY9r0`|plxzTVXWHEb9mi(q)=n$cTu_Cg3=m7J6 zkA@qRwYJSQ#DUOIATrtF3lOhcpw&mX3oClIZ&h9UeVc|2`I$Mgx;oKgPBK?+o8~HL zvJwgTgCG}ImS5se^Fwi22!XGsr$+&L%yy;Dt@ehZ4G5D!VXBN)lY0a7{qyHPFa5wJ zkxUiV5>ioP_|`3cm9weq(~f8R_KJftTGz=hUweDqA`bxDq{A8Qv)NTLaj#DeMMCli z12H-$nYUiiOHU0*b4o6M~) z?}Z@;D{$cpu&AiKjkQtc6ODab+nXHCF_e&l}2@2UZvV9<|ar^V)TDc#9`HH@7P+jZ)+=FTSz4i4>gBHip}a7jlN5 zQ`quKaVExAcy2V=>&kw5fofvjNVa_aTd}+M{N_RKn>N8B<^9D7)cL`LbS}+NQyB=~ z;O!Qal~roaGJb^|>3l(jM*YZtD%WdZO4Z163ieW7TkFZjXWmqrUYYK#~&X{ZjhVT;YA#)qs2C#v`%IK_n=I{pbyQ&hKmpKQ6wjV|n3vE)pRK$t;k(^d1Q)$UK;}o zM4$!%kGX6z7%(aKMB8ZUQ$s_D03 zw#vbLB8ZKEHo+b6BpR5QbPLt{3qWNn z$L}IP?B!7iTzel|0Ru!ic?V)OD#b-{5n9dp8fFc|u=(E{jOqoMpnzw>!iyAqH(WqrQku>Q$6b}2jt z)?2QhFF}26)a%hg)daQavhxi^jUGSic#f10##y1;#Sn;UP^`DV$%CTTQ4h6E<=qTq zRM_loU+8rwrQ590&86Zoru7;VcAfS1VsqI{-ZGyGhjL6#!#sgMU(hEEaY{ z9Zy5{fnX-BTeu`NRCudMrqJ42^ z{k#LzU$?p6=g}W|qOv)0+S9J#!F9w*#R%$o&s5Xp3rtQG(Q{<7bF*DyDyd9dq_a@Z z1*pbmjVp7Or;jIi2bF{Kg*l1`dhos;cptzl!Qy3SW%Xhb@g&ff%|?fgWO=pAW&#lC zy_V9;$M3YM)Wts!qNCz)dNZ080eQVQV)nQJeg&*WYbLo1w^?MS+}7;LV2+ELmJ=*t(UX%9dT&`0)*X7u}eJV5=3K_h)7qCpl@H>F z5KtaagW)K{Z9~eR#SjIpSE9YPf{?N#1lkzR*cD%|$S*zvB^fD5kzTXnqMPJoM+68& zB2l+`3Kdafd|64iDU+1y43aN3adX&j7!LtX)yT>s{Ucx-Py}S}*4~l@hV%wMX|Y4Z zb)j#qKC}yJNI&l#U20||D8XMxwXj_~zZi{M!t-@Q`+*~tH&RW~UB%wFbtAb;z z)}G255Dnx?eP1IxXm+!achg}7rEa#L3>d&q#s<;+Kk!q*MzxFL;~owT(1Xm=;b}l$ z2P=RF-vISuLu3X%Ysced%=~o5RN<$CN((7-B3^tTvw?ABOBB8iY!58fCW~ymV>F=C zm(&tppHhONGern>ffm!#HBLwJEQBnBDiPhuXCefqO!(eGj$2%}Ko}iM?Z^wxrtEMM zH~)SM(y+D0`g%oB=V#}LIClEHzxt3*NU&tMGOfnlmRcl?uA|Tx+tTJGJoc| zK^|qA_nPMDi1RG`2zp0|f7K9ThPxrPscAE-9L!E>D#Sy?*saP#W!X-@d#^r4s7i-K zOl!kcsP#avU2=sk}nwv8A*RmgEI#OQ&)tr2SIp?3+?A5vb z23phU8EZQl^C-dAB=vz$+~V5CZ7d4t84w3P>*ayYI}Mz8Fk4tEj0RvZnlL(SK6=Rj z89+ZkiZDim$tnvK>KOaI^3Xo!gPqHbyo8YH(taVf%Wpz|{c^V#b`!ELwC}uBf8ErZ z>Ri(+ofHRJUol`FS)wD#EB82_7eYBIcjZZ_>p}{Ze42vi0u@VZo7#^uEhfA(V}%J6 zt@^H+t=Vs;UL17&O(l9?yx+076zD$Hdl7P9Em#c_s;oIc$YA}pey+VvIyU8H?l^eN z@i>T3Sb#DBpNhzqz&=!Q}6j! z4WzOVDYiPd_=U$vKa^djpRf(M(vkY4ZX!6T+izkok6%mJRq|eOP|^gm*o* zKPZP=$+xOX3i$H#)pQNo+7=J^+_@KVG8i{K{5lTC#&>s$R!!IuD4{y^h}sCuSX7g8 zbp0j20!^=DLNn=Eq)ZUvAFSf*6sM*F5mErvwK2v9dU;`8`z%jf#+k~L*$z!#1(?!q zXnNDPBSiB^eg7}_EKP7Aegjbww?u9K3v$6pYofs&f+z;$A=j-x_G{L&v(MTf-S0ZJ z?f?z)ZdErWk`^vYKxxOf7IbR9|8%RMMA$t`e$x$=xe+#l@*=G-~5N(Q49810(`_q!4>c}qWTaDPj-xcPdV2c$_s#9xqK#9gE~zQ0WYjyV^u0$>4xCuc)!6)L zPfSEVzd8sZ8ez_0+!0U~WY$nbA>=2!3e_%@7jbTxySA-b)a0t8Caf0M7r-yadz2lC zj-WU#rt#wJi%fktcfh;X{hbf*NqT>E-vPJF0nIPt!W<;DWUFMquX(m8nT;M*U+eMD zEp$E6a@o>&;zHa@+HVuDKJV&*Y6B!;ESy?GGu~S`z}3@!QXxwlJT5}EG z%LCVsgt&IoTi>9F`kun|$4Ky7qZ6c`n2rWz-3b~g#dG!v2nm5x7&{{lEG;x(bh)Lk zZTMLjBN*8W8FYA}6U{-bPdr*gPp>ySD{nFLZM&fowE3L*1+DIKxb&?L7AtDrbR3~1 zYLAg&tAGGO2I)t***v76YEZ4* z?PPVP0+ID7TQ1~4McWNZ8HKuzgHAiBqk(QP;4BS=Co4J$92`1)4C!1sOAAwq+RZm6wPmwp&j2b~8>9ZissA#dBR z1Vj_XQ&*xuAs;<(R}0W2Fy|2U;pFSt%*Nxs%pSjU^1bp?N;W{)?sFC)&y|}XalSLQ zz=U8Q05eqeSEztO2I|ppPOj(e#$V9u)W`_=i1Z_XMiV7!Yv+{^{uSzX95iNcC8p}u zyqSl*PMMrvX~1y<6ahupwWJ&I+K8eL(S?1!{GjcFtOOQ2>$(IYsfo!6%Ey_)vU^z_ zr7EXUD{38(rf*K0#VsohT0wV!%$j<2dnoSZlZdk{&_&#xUT^OpQLeib6E0-!xH{dZ zU~;M^5`s}7mOkb=^stvEZBx`_xr5Ufm~3&!c1`cPYQGS0?%u$4BJ6h0g{3$M-G^K^ zpvtBfsUgmH*Pyj<9xQY${q+wrHnv3`av%fJtD7b=E^i3)Qkk%2SlBsu!TBPH_M6O9 zgF=JH{y*7*`Id59j-YR?wYz^=Hh`zGuRUf)aclF6j6$6Q5CE1nl2G$-wke}@jK+j9 zdrW$bAZaT0r8q)thRl7m$oZ_3_SEH|?!i`Rcd4lgWEQ-rzO^3DG(#Otg5pY~=Xrp5 z9OS1iF-Qf%;GgkxDg`gm_cFJ8AM^ew-3%z-)YaC<$?OSb^|T!?2Tvmu`VzoJPzD$h z>Fkk!_k8Mfh?nteEG<`4Y*(W=$b)Lk-bf$xrAQ4c$SF9iT84_ZGm#`0Xdy(3bhB^f zOyIM;M{i(fNZ{aGaHxwf*P>Zdu`^SV=RfKJSqY1gMO0s*e1qJgd=*CV){BvP}I}s3ox# zuXe=;7Z=j*d*DJ6n|h&jON1vq%y((F97N-2ijVtQm_$V0{`5Vq2;TOy61Ppo(KiO9 zl(g@*UpiQpT|!?qjis;6YxEYYL^!XVAxil}6GN!fjQ3uhP6rgzdb2fWvCPNvnclYS z-ZIRjE*7e|HLBK+Ve{uy)Dkb>FjqVv>NqF_)zZ1hh1dh52Hwv9Da$4^SU_1YnB*1v zS3=TRP8B}m-4+2a*+S$1gQjgpdOFlw|Mu%Wi^MocJ?%l)rbp_r8A;sE0%0PbXzDis zwi{q3$`<=5qVt1VNO`2`ee}ztLIz1)-}fP9>qreUY%lL`8r%0a-Mn;QPwfVUB$sEa zX8bI~PNTie_-&oxyUA{Af};{}n@HD^4YQW6EF>-Q3TQ@^{Rzh&H}}|)845PB z$1j#vm(^akpPw{AxCWSyp4edNm2x@3i;lBhpr8&j<~$9+!!R|)cF^_ftAv;}3G5bL ztct6L7(!8hP65SbJAjKuaD z2YSP*`fl>+pmK@E-iz1de_!s#=uA*3DbZ%z8HmanqEOaV54V*DC=|C1LV(4yW?O;c zj?Eo1a<8-L92PIa5Tw4ay>)4Wao)vY+67@$7Jyt44gPaWtsgmZl<+05VqIwBN6`~` zJ6w_BtBDkLv*_;KxP_oY(A@M__$zqLQqo9oP{sf71e5Rt8fhF$YilS4g(p9b zV_{)|j6y=l0}8%62H@yV|FcJH!Z%T#xHpa*B)%(elC*N0AA{!s=zXZKcMNUIA zR9B0$|JG6VN5NTl*wCEnx##v%*RILy>FcM5h5d>gZOFsJ!^h9BbJHf%SuY&9Ix=(r zp)GApA6)$^T-{nY=E#u~xd2ECePNJ#0_R~la^&2(OQi}d^W$e8wEbvg`|^J@Rt1W- zu<$GIIe}ae&=l(E>z{E|cydi%9)^uaPEKy@3`0j!Z%6+@N4-OhW@%QH|P5KfZDES~HJ3ajdOeLHi9xoi` z7oPjPkr=d6en&>y?EZ(z*}%DW$7vlQ?Jy8Hs%IzweS!3$Et0bsgWI{Psw$XV)SJfT zc#~4(rXK(2n^H9zPnSsk9})zg;D0uhWth(Vzo$z0KO}DW-#g8N=3E@EZ9Z|e?S56A z+#h0#E0{^>IDGT`(Les%p}bmqw{Khg=!=c@^-Ej$Z`JtJ5MTNqzkI;*SHs;a`&k3) z?d_=JR@ecScxnbz$IY?m#b)`fE6;l06Ep&i)wm8C+K7=!Ji ze>*Mz->2owPtg*avz_aY z0kL8FOU3fQD*ybs92~B%suHs@9HVWRH6wVh&`Iz4Vv?xO$DcQ-RI}9&Z~t{= zSFOK#6N|n#)YOOf9L&zzp$94qnB}(epFe*d6h~0Dut**8SyEGbEviJP)4wk*l?yzv zHIx%j{WWV`q1Q?D>Z%g>*t!fR-v4$k9Nj8VpP`@oj!2yv{j-}Z>FVMN=s!b$`Hh(6(b?*%9yZf zs8GRe8KX*X5mIk?saGh2wq|H4>BJsI7(vH@fDtBk(VcofZ-?eg*wUV6g?B{Rq z^L^jh+ZRwDAUh!T-A~g$(A{qA&^y7p6%dC8pSQHMl#~d;(q8en(Q~uXBFw%?vQ0ks zRVKpEEdDXVbh-|k2Ew^--$o(>e(=e+B6{!&?J}7AF!freIB+6BKN~jhT$!0C z{u;$$f1V)zeDs@s)Jlim8r?fEUeM%HSN~F~OiFICvg(F#P44y)LTNbSe4b^mu|eIl zyd)b-O)fj2uG4BL?{!}=}odOhrc&b2PeLT9dnc-^L(4ecuZCF@6>K*KVPHxhMGLznNSR@j8f>m}i5I9{s zg8v)gBqA-l^hwDXFN{|iI7((HCcJmq5BuH2rriIbifGCC-rnB!{l2ISn7O+dv%n&m z-!lH{RKdYXnjMpoQd|o_FtmJ+|9sY(KnyOZc%`u+fO>5i(ooFRsW@08Mj(-v9CEks z&X|6b_3r}jKq482$;r)SG&eV|2}%kzvm3@%v3OLl|8+Sp|B&wKV z9=DEBm^52nGkokcZG?H&(a|x3Nh9>86FA8!DbM>lvcIm)Eoe7ds7{U_r|zB;F{}4l zld8((q-x4YJ-MryEDrU5!JjlvpM6n>#rK-NR{Kq27MX!6LwUSy8@z4y0X-M!%>y$o z=+UQYX4ZJ_18;L5;M=oFXuu;g_TB&h^5F0eN?kQ zmDG`?bds|Hq+oMALNTAAcDs`pQxmys;bIIHV$7LE*)f1 zNq9Wo6@~JWAVIzjxd+*3U|?`IQQZkAQS;ntb;}>e)c0Aj1Y1djNf|aFon*z|$C4$2 ziHn~cb@#N2eEN4(k!eR0rY`5^%`hPglV^Lmw(Y}$--O7yocHfLiC4E7!r*I4N;9+b z?1Zg&bGU&0``6|fpPClK1=w=ODx0E8s|0+^GS6FHSvE8=aewgOfvTEXzoW*9%7E6` zJ=X27W9LO>sk(9Q!NI|*J9c~-6hx2vuzIj1DypKSNG3;x8vYak=mD0uK?ELQ(2(b0 z$Nbv^nFcmC15L}gUHkX5QuQvM4jvy@Rab|WGvC9+CEQ1d0kh<2PA^+6j9(bsovtPY zDVv!r&%=gCj=0&y&OI$0X@P}E;xNlA>FU+_x}tUeOP%RxH@Ec94t%Bw!&4|*{Lq+l zYCQ_4=-njC_;qhVn~YVprdFbNcTmex#+N!v+T7p?!p{?P_gn zbiJJXF*zhs^nKKN2n2#B7R$bNO;ytSrL^=k1mo?dk+lf$1vmuT+VRg#vrok~qLLLgknL9;3-}4MO!`1kNa4OyLnA_dm-I8`+Gqq+p-ky&xS}|)Gu7HscaC7zs1d5<>(|yX8 z+et~9pX_IS|I{4_G_-H|K~(nw7bL@R0uCi5nEP~-7%dnjSQfAg6KN;^Op|!i$Bj0r%0gL&krZVJ z3N8JRI*QlfMgw+2NkTA(;eqqYVbfXV<(=GCur{!u2r3R>VMb$nJ!Y9R8@x;v zZgXEt79S|uwc6=}ytYuJSvDEl!R30?r2J+Uo`v~PywX6#x(nqgUu23bgBdfstDQTz z-uS`no`G)oQEG@HEi;mj+w;W7E%cXP)gH?gOOIkEv`gKT($m@1)%D*Axw8z%HVk{q u|Ff*}Ut4O7=eI_&NqeNUNI!J=>&jVug1;3c`|Oi^<>K_kX^uls(tiM<0Kr)R literal 0 HcmV?d00001 diff --git a/solutions/images/DocumentHub_Categories.svg b/solutions/images/DocumentHub_Buckets.svg similarity index 100% rename from solutions/images/DocumentHub_Categories.svg rename to solutions/images/DocumentHub_Buckets.svg diff --git a/solutions/images/DocumentHub_Solution_Icon.svg b/solutions/images/DocumentHub_Solution_Icon.svg new file mode 100644 index 0000000000..b6237cfc37 --- /dev/null +++ b/solutions/images/DocumentHub_Solution_Icon.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solutions/solution_index.md b/solutions/solution_index.md index 003af8f8a2..a65fae8468 100644 --- a/solutions/solution_index.md +++ b/solutions/solution_index.md @@ -28,7 +28,7 @@ uid: solution_index

- +
diff --git a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md index d449fc033e..2e3c16b85e 100644 --- a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md +++ b/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md @@ -2,22 +2,22 @@ uid: DH_Application --- -# Document Hub app +# DocumentHub Application -The Document Hub app is a comprehensive low-code application designed for administrators and operators to manage documents, images, and files across your DataMiner environment. It provides a centralized interface for uploading, organizing, retrieving, and linking files to business operations. +The DocumentHub application is a comprehensive low-code application designed for administrators and operators to manage documents, images, and files across your DataMiner environment. It provides a centralized interface for uploading, organizing, retrieving, and linking files to business operations. -![Document Hub app overview](~/solutions/images/DocumentHub_App_Overview.png) +![DocumentHub Application overview](~/solutions/images/DocumentHub_App_Main_Overview.png) > [!TIP] -> For detailed walkthroughs on using the app, refer to the [Document Hub app tutorials](xref:Tutorial_DocumentHub_Getting_Started). +> For detailed walkthroughs on using the application, refer to the [DocumentHub application tutorials](xref:Tutorial_DocumentHub_Getting_Started). -## App overview +## Application overview The following sections and features are available in the app: - ![SharePoint](~/solutions/images/DocumentHub_SharePoint.svg) **SharePoint**: Browse files stored in your SharePoint repository, quickly filter by name or bucket, and inspect the full metadata set for each file. -- ![DataMiner](~/solutions/images/DocumentHub_DataMiner.svg) **DataMiner**: Access files stored on your DataMiner side, use name and bucket filters to narrow down results, and review all available metadata details. +- ![DataMiner](~/solutions/images/DocumentHub_DataMiner.svg) **DataMiner**: Access files stored on your DataMiner server, use name and bucket filters to narrow down results, and review all available metadata details. - ![DOM](~/solutions/images/DocumentHub_DOM.svg) **DOM**: Explore files linked to DOM records, find content by filtering on name and bucket, and view the complete metadata context used in your workflows. @@ -27,7 +27,7 @@ The following sections and features are available in the app: - ![Source Configuration](~/solutions/images/DocumentHub_Settings.svg) **Source Configuration**: Connect and manage cloud storage repositories and local storage options. Configure credentials and access settings. Available to administrators only. -- ![About](~/solutions/images/DocumentHub_About.svg) **About**: Provides information on the **version** of the Document Hub package. +- ![About](~/solutions/images/DocumentHub_About.svg) **About**: Provides information on the **version** of the DocumentHub package. ## Uploading documents @@ -55,18 +55,18 @@ Buckets help maintain organization and security by ensuring files are stored con ## Integrating with other applications -The Document Hub app works seamlessly with other DataMiner applications: +The DocumentHub app works seamlessly with other DataMiner applications: - **People & Organizations**: Attach profile photos and organization logos. - **Asset Manager**: Store and display asset images and documentation. - **Scheduling**: Link job documents and attachments. -- **Custom Applications**: Use the [Document Hub DevPack](xref:DH_Development) to integrate with your own low-code apps. +- **Custom Applications**: Use the [DocumentHub DevPack](xref:DH_Development) to integrate with your own low-code apps. Document usage is handled by the consuming application, allowing each app to control how documents are displayed and managed within its context. ## Storage backend integration -Document Hub supports multiple storage backends to give you flexibility in document management: +DocumentHub supports multiple storage backends to give you flexibility in document management: ### SharePoint (Customer-managed) @@ -114,7 +114,7 @@ The Documents view includes powerful search and filtering capabilities: ## Performance and scalability -The number of documents in Document Hub is not capped by the application itself. In practice, scalability depends on the storage capacity and performance of your selected backend, such as SharePoint or a shared drive. +The number of documents in DocumentHub is not capped by the application itself. In practice, scalability depends on the storage capacity and performance of your selected backend, such as SharePoint or a shared drive. When using DataMiner Web Files in a clustered setup, keep in mind that files must be synchronized across cluster nodes. With large file volumes, this synchronization can become a bottleneck and affect overall performance. diff --git a/solutions/standard_solutions/Document_Hub/Development/DH_Development.md b/solutions/standard_solutions/Document_Hub/Development/DH_Development.md index 50857b33af..7592289753 100644 --- a/solutions/standard_solutions/Document_Hub/Development/DH_Development.md +++ b/solutions/standard_solutions/Document_Hub/Development/DH_Development.md @@ -2,89 +2,10 @@ uid: DH_Development --- -# Document Hub DevPack +# DocumentHub DevPack ## About NuGet Class Library API to interact with DocumentHub functionality. It provides repositories and helpers for managing document buckets, SharePoint configurations, and DOM sources, as well as a high-level API for file upload and read operations across multiple storage backends. -## Solution Structure - -| Project | Description | -|---------------------|-------------------------------------------------------------------------------------------------------------| -| `DevPack` | Core library containing models, repositories, exposers, `DocumentHubApiHelper`, and the `DocHubClient` API. | -| `DevPack.Installer` | DOM installer that provisions module settings, section definitions, and DOM definitions. | -| `DevPack.Tests` | Unit tests covering CRUD operations, filter queries, and API validation for all components. | - -## Installation - -Install via NuGet: - -```bash -dotnet add package Skyline.DataMiner.Dev.Utils.Solutions.DocumentHub -``` - -Or search for `Skyline.DataMiner.Dev.Utils.Solutions.DocumentHub` in the Visual Studio NuGet Package Manager. - -## Getting Started - -### Using the DocHubClient API - -The `DocHubClient` provides a simplified interface for file operations: - -```csharp -using Skyline.DataMiner.Solutions.DocumentHub.API.DocHubClient; - -var client = new DocHubClient(connection); - -// Upload a file to a document bucket -client.Files.UploadFile(bucket, @"C:\Documents\report.pdf"); - -// Upload with custom name -client.Files.UploadFile(bucket, filePath, name: "CustomName"); - -// Upload to DOM instance -client.Files.UploadFile(bucket, filePath, domInstanceId); - -// Read files from a bucket -var files = client.Files.ReadFiles(bucket); - -// Read files with filter -var filtered = client.Files.ReadFiles(bucket, filter: "invoice"); -``` - -### Using the DocumentHubApiHelper - -For direct repository access and DOM operations: - -```csharp -var helper = new DocumentHubApiHelper(connection); - -// Create a SharePoint configuration -helper.SharePointConfigurations.Create(new SharePointConfiguration -{ - TenantID = "your-tenant-id", - ClientID = "your-client-id", - ClientSecret = "your-client-secret", - SiteURL = "https://contoso.sharepoint.com/sites/MySite", - DocumentLibraryName = "Shared Documents", -}); - -// Read with filters -var results = helper.DocumentBuckets.Read( - DocumentBucketExposers.Name.Equal("Technical Documentation")); -``` - -## Features - -| Area | Description | -|----------------------- |------------------------------------------------------------------------------------------------------| -| **File Operations** | Upload and read files across configured storage backends | -| **Storage Backends** | Supports local DataMiner storage and SharePoint integration | -| **Document Buckets** | Organize documents by bucket with configurable storage types | -| **DOM Repositories** | Typed CRUD and filter operations for SharePoint configurations, DOM sources, and document buckets | - -## Requirements - -- DataMiner System with DOM module enabled -- .NET Framework 4.8 \ No newline at end of file +[DevPack repository](https://github.com/SkylineCommunications/Skyline.DataMiner.Dev.Utils.Solutions.DocumentHub) diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index 634fe6a991..b11f6c79d1 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -6,44 +6,44 @@ uid: Document_Hub ## Centralized document management for your DataMiner applications -dataminer.DocumentHub is a comprehensive document and file management solution that enables DataMiner applications to seamlessly store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, Document Hub provides a unified, secure platform with integrated cloud storage support and metadata management. +dataminer.DocumentHub is a comprehensive document and file management solution that enables DataMiner applications to seamlessly store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, DocumentHub provides a unified, secure platform with integrated cloud storage support and metadata management. -Designed for broadcast, service provider, satellite, and enterprise organizations, Document Hub eliminates the need for fragmented file storage solutions across multiple applications. It centralizes all document workflows while allowing IT teams to maintain control over security, compliance, and storage backend selection. +Designed for broadcast, service provider, satellite, and enterprise organizations, DocumentHub eliminates the need for fragmented file storage solutions across multiple applications. It centralizes all document workflows while allowing IT teams to maintain control over security, compliance, and storage backend selection. -![Document Hub centralized file management](~/solutions/images/DocumentHub.svg) +![DocumentHub centralized file management](~/solutions/images/DocumentHub.svg) -## Document Hub application +## DocumentHub application dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) as a package containing a comprehensive low-code application. The solution integrates seamlessly with other DataMiner applications and provides an NuGet API for custom application development.
- +

- Document Hub App + DocumentHub Application

- +

- Document Hub DevPack + DocumentHub DevPack

> [!TIP] > -> - Before you deploy the Document Hub package, review the [installation instructions](xref:DH_Installation). -> - Developers integrating Document Hub with custom applications should refer to the [Document Hub DevPack](xref:DH_Development) documentation. -> - For details about the changes introduced in each Document Hub version, refer to the [release notes](xref:Document_Hub_RNs_index). +> - Before you deploy the DocumentHub package, review the [installation instructions](xref:DH_Installation). +> - Developers integrating DocumentHub with custom applications should refer to the [DocumentHub DevPack](xref:DH_Development) documentation. +> - For details about the changes introduced in each DocumentHub version, refer to the [release notes](xref:Document_Hub_RNs_index). ## Who can benefit from dataminer.DocumentHub? -Document Hub serves diverse user groups across your organization: +DocumentHub serves diverse user groups across your organization: - **IT and Security Teams**: Implement centralized document management with control over storage backends, access credentials, file format restrictions, and compliance policies. Support customer-managed SharePoint or on-premises storage options like DataMiner Webfiles or DOM Attachments. @@ -51,7 +51,7 @@ Document Hub serves diverse user groups across your organization: - **Content and Asset Managers**: Streamline workflows for organizing and retrieving documents across the organization. Normalize graphics formats for consistency and for automated processing. -- **Application Developers**: Integrate Document Hub capabilities into custom DataMiner low-code applications using the NuGet API. Retrieve file information, upload documents, and manage buckets programmatically. +- **Application Developers**: Integrate DocumentHub capabilities into custom DataMiner low-code applications using the NuGet API. Retrieve file information, upload documents, and manage buckets programmatically. - **Business Operations Teams**: Access documents from within operational applications such as People & Organizations, Asset Manager, and Scheduling. Attach job documents, profile images, asset photos, and service icons without leaving the application context. @@ -61,7 +61,7 @@ In essence, dataminer.DocumentHub enables organizations to deliver better servic dataminer.DocumentHub simplifies document and file management across your DataMiner ecosystem. The solution provides a [ready-made application](#document-hub-application) that can be extended with custom workflows and integrations. It can also be extended with automation scripts and user-defined APIs to integrate with your existing systems. -Document Hub supports the following capabilities by default without any customization: +DocumentHub supports the following capabilities by default without any customization: - **Upload and Store**: Upload new documents, images, and files from user terminals to configured storage backends (SharePoint, local DataMiner Web Server, and DOM attachments). @@ -75,7 +75,7 @@ Document Hub supports the following capabilities by default without any customiz - **Organize with Buckets**: Create predefined document buckets to streamline workflow. Specify target platforms, allowed file extensions, and file size limits for each bucket. -- **Integrate with APIs**: Use the Document Hub NuGet package to develop custom integrations. Retrieve file information, manage buckets, and upload documents programmatically. +- **Integrate with APIs**: Use the DocumentHub NuGet package to develop custom integrations. Retrieve file information, manage buckets, and upload documents programmatically. Example use cases: diff --git a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md index a7b98d456b..f0974ff4e3 100644 --- a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md +++ b/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md @@ -6,12 +6,12 @@ uid: DH_Installation To install dataminer.DocumentHub: -1. Look up the [Document Hub package](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) in the DataMiner Catalog. +1. Look up the [DocumentHub package](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) in the DataMiner Catalog. -1. Check the prerequisites mentioned in the Document Hub [release notes](xref:Document_Hub_RNs_index) matching the package version, and make sure your system meets these prerequisites. +1. Check the prerequisites mentioned in the DocumentHub [release notes](xref:Document_Hub_RNs_index) matching the package version, and make sure your system meets these prerequisites. > [!NOTE] - > Minimum platform requirement: DataMiner 10.6.3 and above. + > Minimum platform requirement: DataMiner 10.6.5 and above. 1. When all prerequisites are met, click the *Deploy* button. @@ -32,13 +32,13 @@ During the installation, the following steps will automatically be executed: Migration and cleanup actions are defined in the install package and will depend on the version you install. To make sure that these actions do not keep growing indefinitely over the different versions, the **migration and cleanup actions are cleaned in every major version** (e.g. from 1.x.x to 2.x.x). > [!IMPORTANT] -> When upgrading Document Hub, to make sure all migration and cleanup actions take place, **first upgrade to the latest version of your current major version** before moving to the next major version, without skipping a major version. +> When upgrading DocumentHub, to make sure all migration and cleanup actions take place, **first upgrade to the latest version of your current major version** before moving to the next major version, without skipping a major version. ## Post-installation configuration -After the installation completes, you will need to configure the Document Hub app for your environment: +After the installation completes, you will need to configure the DocumentHub app for your environment: -1. Open the Document Hub app from the DataMiner Web interface. +1. Open the DocumentHub app from the DataMiner Web interface. 1. Navigate to the **Settings** section. @@ -52,4 +52,4 @@ After the installation completes, you will need to configure the Document Hub ap - Set bucket rules to keep files organized. > [!TIP] -> Refer to the [Document Hub app](xref:DH_Application) documentation for detailed configuration instructions. +> Refer to the [DocumentHub application](xref:DH_Application) documentation for detailed configuration instructions. From 2d5ae8fefea00ab2225391d417886df785dd4dd6 Mon Sep 17 00:00:00 2001 From: Marieke Goethals Date: Mon, 18 May 2026 15:27:21 +0200 Subject: [PATCH 10/15] xref + toc correction --- solutions/standard_solutions/Document_Hub/Document_Hub.md | 2 +- solutions/toc.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/Document_Hub/Document_Hub.md index b11f6c79d1..cd5dacd3a0 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/Document_Hub/Document_Hub.md @@ -59,7 +59,7 @@ In essence, dataminer.DocumentHub enables organizations to deliver better servic ## What can you do with dataminer.DocumentHub? -dataminer.DocumentHub simplifies document and file management across your DataMiner ecosystem. The solution provides a [ready-made application](#document-hub-application) that can be extended with custom workflows and integrations. It can also be extended with automation scripts and user-defined APIs to integrate with your existing systems. +dataminer.DocumentHub simplifies document and file management across your DataMiner ecosystem. The solution provides a [ready-made application](xref:DH_Application) that can be extended with custom workflows and integrations. It can also be extended with automation scripts and user-defined APIs to integrate with your existing systems. DocumentHub supports the following capabilities by default without any customization: diff --git a/solutions/toc.yml b/solutions/toc.yml index dc381c825a..1a4ba3e23e 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -191,7 +191,6 @@ items: topicUid: Tutorial_DH_SharePoint - name: Configuring DOM attachments on a network share topicUid: Tutorial_DH_DOM_NetworkShare - - name: DataMiner PTP - name: PTP topicUid: SolPTP items: From 27b08140b494de87bd2e7d49c19ce530b1a16c73 Mon Sep 17 00:00:00 2001 From: Marieke Goethals Date: Tue, 19 May 2026 09:59:08 +0200 Subject: [PATCH 11/15] DocumentHub name implemented consistently --- .../DocumentHub_0.3.0.md} | 2 +- .../DocumentHub_1.0.0.md} | 2 +- release-notes/DocumentHub/toc.yml | 5 +++ release-notes/Document_Hub/toc.yml | 5 --- release-notes/Document_Hub_RNs_index.md | 8 ++-- release-notes/toc.yml | 6 +-- solutions/solution_index.md | 2 +- .../Apps/DH_Application.md | 0 .../Development/DH_Development.md | 0 .../DocumentHub.md} | 20 +++++----- .../Package/DH_Installation.md | 6 +-- .../Tutorials/Tutorial_DH_DOM_NetworkShare.md | 39 ++++++++----------- .../Tutorials/Tutorial_DH_SharePoint.md | 33 +++++++--------- .../Tutorial_DocumentHub_Getting_Started.md | 4 +- solutions/toc.yml | 10 ++--- 15 files changed, 65 insertions(+), 77 deletions(-) rename release-notes/{Document_Hub/Document_Hub_0.3.0.md => DocumentHub/DocumentHub_0.3.0.md} (97%) rename release-notes/{Document_Hub/Document_Hub_1.0.0.md => DocumentHub/DocumentHub_1.0.0.md} (98%) create mode 100644 release-notes/DocumentHub/toc.yml delete mode 100644 release-notes/Document_Hub/toc.yml rename solutions/standard_solutions/{Document_Hub => DocumentHub}/Apps/DH_Application.md (100%) rename solutions/standard_solutions/{Document_Hub => DocumentHub}/Development/DH_Development.md (100%) rename solutions/standard_solutions/{Document_Hub/Document_Hub.md => DocumentHub/DocumentHub.md} (83%) rename solutions/standard_solutions/{Document_Hub => DocumentHub}/Package/DH_Installation.md (92%) rename solutions/standard_solutions/{Document_Hub => DocumentHub}/Tutorials/Tutorial_DH_DOM_NetworkShare.md (77%) rename solutions/standard_solutions/{Document_Hub => DocumentHub}/Tutorials/Tutorial_DH_SharePoint.md (77%) rename solutions/standard_solutions/{Document_Hub => DocumentHub}/Tutorials/Tutorial_DocumentHub_Getting_Started.md (88%) diff --git a/release-notes/Document_Hub/Document_Hub_0.3.0.md b/release-notes/DocumentHub/DocumentHub_0.3.0.md similarity index 97% rename from release-notes/Document_Hub/Document_Hub_0.3.0.md rename to release-notes/DocumentHub/DocumentHub_0.3.0.md index c2ce68522a..79635d212b 100644 --- a/release-notes/Document_Hub/Document_Hub_0.3.0.md +++ b/release-notes/DocumentHub/DocumentHub_0.3.0.md @@ -1,5 +1,5 @@ --- -uid: Document_Hub_0.3.0 +uid: DocumentHub_0.3.0 --- # DocumentHub 0.3.0 - Preview and Deprecated diff --git a/release-notes/Document_Hub/Document_Hub_1.0.0.md b/release-notes/DocumentHub/DocumentHub_1.0.0.md similarity index 98% rename from release-notes/Document_Hub/Document_Hub_1.0.0.md rename to release-notes/DocumentHub/DocumentHub_1.0.0.md index 63cca0efae..12bbe4e0dc 100644 --- a/release-notes/Document_Hub/Document_Hub_1.0.0.md +++ b/release-notes/DocumentHub/DocumentHub_1.0.0.md @@ -1,5 +1,5 @@ --- -uid: Document_Hub_1.0.0 +uid: DocumentHub_1.0.0 --- # DocumentHub 1.0.0 - Preview diff --git a/release-notes/DocumentHub/toc.yml b/release-notes/DocumentHub/toc.yml new file mode 100644 index 0000000000..372419fc59 --- /dev/null +++ b/release-notes/DocumentHub/toc.yml @@ -0,0 +1,5 @@ +items: + - name: DocumentHub 1.0.0 + topicUid: DocumentHub_1.0.0 + - name: DocumentHub 0.3.0 + topicUid: DocumentHub_0.3.0 diff --git a/release-notes/Document_Hub/toc.yml b/release-notes/Document_Hub/toc.yml deleted file mode 100644 index 5a4b3d2588..0000000000 --- a/release-notes/Document_Hub/toc.yml +++ /dev/null @@ -1,5 +0,0 @@ -items: - - name: Document Hub 1.0.0 - topicUid: Document_Hub_1.0.0 - - name: Document Hub 0.3.0 - topicUid: Document_Hub_0.3.0 diff --git a/release-notes/Document_Hub_RNs_index.md b/release-notes/Document_Hub_RNs_index.md index 06e83b07bf..985e759b60 100644 --- a/release-notes/Document_Hub_RNs_index.md +++ b/release-notes/Document_Hub_RNs_index.md @@ -1,10 +1,10 @@ --- -uid: Document_Hub_RNs_index +uid: DocumentHub_RNs_index --- -# Document Hub release notes +# DocumentHub release notes -These release notes contain all new features, enhancements, and fixes for Document Hub. +These release notes contain all new features, enhancements, and fixes for DocumentHub. > [!TIP] -> For detailed information about dataminer.DocumentHub, refer to the [Document Hub documentation](xref:Document_Hub). +> For detailed information about the DocumentHub Solution, refer to the [DocumentHub documentation](xref:DocumentHub). diff --git a/release-notes/toc.yml b/release-notes/toc.yml index 60f707d0c6..c08859e7af 100644 --- a/release-notes/toc.yml +++ b/release-notes/toc.yml @@ -39,9 +39,9 @@ items: - name: DIS release notes topicUid: DIS_RNs_index href: DIS/toc.yml - - name: Document Hub release notes - topicUid: Document_Hub_RNs_index - href: Document_Hub/toc.yml + - name: DocumentHub release notes + topicUid: DocumentHub_RNs_index + href: DocumentHub/toc.yml - name: EPM release notes href: EPM/toc.yml - name: IDP release notes diff --git a/solutions/solution_index.md b/solutions/solution_index.md index d932c2ee7c..96cc96f0f9 100644 --- a/solutions/solution_index.md +++ b/solutions/solution_index.md @@ -28,7 +28,7 @@ uid: solution_index
- +
diff --git a/solutions/standard_solutions/Document_Hub/Apps/DH_Application.md b/solutions/standard_solutions/DocumentHub/Apps/DH_Application.md similarity index 100% rename from solutions/standard_solutions/Document_Hub/Apps/DH_Application.md rename to solutions/standard_solutions/DocumentHub/Apps/DH_Application.md diff --git a/solutions/standard_solutions/Document_Hub/Development/DH_Development.md b/solutions/standard_solutions/DocumentHub/Development/DH_Development.md similarity index 100% rename from solutions/standard_solutions/Document_Hub/Development/DH_Development.md rename to solutions/standard_solutions/DocumentHub/Development/DH_Development.md diff --git a/solutions/standard_solutions/Document_Hub/Document_Hub.md b/solutions/standard_solutions/DocumentHub/DocumentHub.md similarity index 83% rename from solutions/standard_solutions/Document_Hub/Document_Hub.md rename to solutions/standard_solutions/DocumentHub/DocumentHub.md index cd5dacd3a0..3c476507e7 100644 --- a/solutions/standard_solutions/Document_Hub/Document_Hub.md +++ b/solutions/standard_solutions/DocumentHub/DocumentHub.md @@ -1,12 +1,12 @@ --- -uid: Document_Hub +uid: DocumentHub --- -# dataminer.DocumentHub +# DocumentHub ## Centralized document management for your DataMiner applications -dataminer.DocumentHub is a comprehensive document and file management solution that enables DataMiner applications to seamlessly store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, DocumentHub provides a unified, secure platform with integrated cloud storage support and metadata management. +DataMiner DocumentHub is a comprehensive document and file management solution that enables DataMiner applications to seamlessly store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, DocumentHub provides a unified, secure platform with integrated cloud storage support and metadata management. Designed for broadcast, service provider, satellite, and enterprise organizations, DocumentHub eliminates the need for fragmented file storage solutions across multiple applications. It centralizes all document workflows while allowing IT teams to maintain control over security, compliance, and storage backend selection. @@ -14,11 +14,11 @@ Designed for broadcast, service provider, satellite, and enterprise organization ## DocumentHub application -dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) as a package containing a comprehensive low-code application. The solution integrates seamlessly with other DataMiner applications and provides an NuGet API for custom application development. +DataMiner DocumentHub is available in the [Catalog](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) as a package containing a comprehensive low-code application. The solution integrates seamlessly with other DataMiner applications and provides an NuGet API for custom application development.
- +

@@ -39,9 +39,9 @@ dataminer.DocumentHub is available in the [Catalog](https://catalog.dataminer.se > > - Before you deploy the DocumentHub package, review the [installation instructions](xref:DH_Installation). > - Developers integrating DocumentHub with custom applications should refer to the [DocumentHub DevPack](xref:DH_Development) documentation. -> - For details about the changes introduced in each DocumentHub version, refer to the [release notes](xref:Document_Hub_RNs_index). +> - For details about the changes introduced in each DocumentHub version, refer to the [release notes](xref:DocumentHub_RNs_index). -## Who can benefit from dataminer.DocumentHub? +## Who can benefit from DocumentHub? DocumentHub serves diverse user groups across your organization: @@ -55,11 +55,11 @@ DocumentHub serves diverse user groups across your organization: - **Business Operations Teams**: Access documents from within operational applications such as People & Organizations, Asset Manager, and Scheduling. Attach job documents, profile images, asset photos, and service icons without leaving the application context. -In essence, dataminer.DocumentHub enables organizations to deliver better service quality, reduce fragmentation in document workflows, respond faster to business needs, and maintain compliance through centralized, secure file management. +In essence, DocumentHub enables organizations to deliver better service quality, reduce fragmentation in document workflows, respond faster to business needs, and maintain compliance through centralized, secure file management. -## What can you do with dataminer.DocumentHub? +## What can you do with DocumentHub? -dataminer.DocumentHub simplifies document and file management across your DataMiner ecosystem. The solution provides a [ready-made application](xref:DH_Application) that can be extended with custom workflows and integrations. It can also be extended with automation scripts and user-defined APIs to integrate with your existing systems. +The DocumentHub Solution simplifies document and file management across your DataMiner ecosystem. The solution provides a [ready-made application](xref:DH_Application) that can be extended with custom workflows and integrations. It can also be extended with automation scripts and user-defined APIs to integrate with your existing systems. DocumentHub supports the following capabilities by default without any customization: diff --git a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md b/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md similarity index 92% rename from solutions/standard_solutions/Document_Hub/Package/DH_Installation.md rename to solutions/standard_solutions/DocumentHub/Package/DH_Installation.md index f0974ff4e3..f5a055fb06 100644 --- a/solutions/standard_solutions/Document_Hub/Package/DH_Installation.md +++ b/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md @@ -2,13 +2,11 @@ uid: DH_Installation --- -# Installing dataminer.DocumentHub - -To install dataminer.DocumentHub: +# Installing DocumentHub 1. Look up the [DocumentHub package](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) in the DataMiner Catalog. -1. Check the prerequisites mentioned in the DocumentHub [release notes](xref:Document_Hub_RNs_index) matching the package version, and make sure your system meets these prerequisites. +1. Check the prerequisites mentioned in the DocumentHub [release notes](xref:DocumentHub_RNs_index) matching the package version, and make sure your system meets these prerequisites. > [!NOTE] > Minimum platform requirement: DataMiner 10.6.5 and above. diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md b/solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DH_DOM_NetworkShare.md similarity index 77% rename from solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md rename to solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DH_DOM_NetworkShare.md index 91311157e2..c155ad4eb0 100644 --- a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_DOM_NetworkShare.md +++ b/solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DH_DOM_NetworkShare.md @@ -4,7 +4,7 @@ uid: Tutorial_DH_DOM_NetworkShare # Configuring DOM attachments on a network share -This tutorial shows you how to configure a network share as a storage backend for DOM attachments in Document Hub. The configuration is performed directly in the Document Hub app's **Storage Backends** section. +This tutorial shows you how to configure a network share as a storage backend for DOM attachments in DocumentHub. The configuration is performed directly in the DocumentHub app's **Storage Backends** section. > [!NOTE] > DOM attachments can be stored on a network share without any IIS configuration. The only mandatory requirement is that the network share is reachable by the DataMiner System. All IIS-related steps are optional and only required if you want to visualize or download attachments via a web browser. @@ -13,26 +13,21 @@ Expected duration: 15 minutes ## Prerequisites -- Document Hub app installed and accessible +- DocumentHub app installed and accessible - A network share accessible from all DataMiner Agents in the cluster - Network credentials with read/write permissions to the share - (Optional) IIS Web Server role installed on DMAs for browser-based file access ## Overview -The steps in this tutorial include: - -- [Configuring DOM attachments on a network share](#configuring-dom-attachments-on-a-network-share) - - [Prerequisites](#prerequisites) - - [Overview](#overview) - - [Step 1: Prepare the network share](#step-1-prepare-the-network-share) - - [Step 2: Configure the network share in Document Hub](#step-2-configure-the-network-share-in-document-hub) - - [Optional: Configure browser-based access](#optional-configure-browser-based-access) - - [Create a local DataMiner user](#create-a-local-dataminer-user) - - [Configure IIS permissions](#configure-iis-permissions) - - [Create an IIS virtual directory](#create-an-iis-virtual-directory) - - [Access attachments via browser](#access-attachments-via-browser) - - [Next steps](#next-steps) +- [Step 1: Prepare the network share](#step-1-prepare-the-network-share) +- [Step 2: Configure the network share in DocumentHub](#step-2-configure-the-network-share-in-documenthub) +- [Optional: Configure browser-based access](#optional-configure-browser-based-access) + - [Create a local DataMiner user](#create-a-local-dataminer-user) + - [Configure IIS permissions](#configure-iis-permissions) + - [Create an IIS virtual directory](#create-an-iis-virtual-directory) + - [Access attachments via browser](#access-attachments-via-browser) +- [Next steps](#next-steps) ## Step 1: Prepare the network share @@ -51,11 +46,11 @@ The steps in this tutorial include: > [!NOTE] > If the share is not accessible, verify network connectivity, firewall rules, and share permissions. -## Step 2: Configure the network share in Document Hub +## Step 2: Configure the network share in DocumentHub -Configure the network share directly in the Document Hub app: +Configure the network share directly in the DocumentHub app: -1. Open the **Document Hub** app in DataMiner. +1. Open the **DocumentHub** app in DataMiner. 1. Navigate to the **Storage Backends** section. @@ -87,7 +82,7 @@ Configure the network share directly in the Document Hub app: 1. The network share backend is now available for use with DOM attachments and document buckets. > [!IMPORTANT] -> DataMiner will store and retrieve attachments directly from this network location. No IIS configuration is required for basic file storage and retrieval through the Document Hub app. +> DataMiner will store and retrieve attachments directly from this network location. No IIS configuration is required for basic file storage and retrieval through the DocumentHub app. ## Optional: Configure browser-based access @@ -158,7 +153,7 @@ https:///shareRedirect/ Example: `https://dma.example.com/shareRedirect/document.pdf` > [!TIP] -> The Document Hub app can automatically generate these URLs for DOM attachments when the IIS virtual directory is configured. +> The DocumentHub app can automatically generate these URLs for DOM attachments when the IIS virtual directory is configured. ## Next steps @@ -166,8 +161,8 @@ After configuring the network share backend, you can: - Create document buckets that use this network share - Configure DOM definitions to store attachments on this share -- Upload documents to the network share through the Document Hub app +- Upload documents to the network share through the DocumentHub app - Link DOM attachments to jobs, assets, and other business entities > [!TIP] -> For more information on creating and managing document buckets, see [Document Hub app](xref:DH_Application). +> For more information on creating and managing document buckets, see [DocumentHub app](xref:DH_Application). diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md b/solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DH_SharePoint.md similarity index 77% rename from solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md rename to solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DH_SharePoint.md index be86d523b6..4b9c0723dc 100644 --- a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DH_SharePoint.md +++ b/solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DH_SharePoint.md @@ -4,7 +4,7 @@ uid: Tutorial_DH_SharePoint # Configuring SharePoint as a storage backend -This tutorial shows you how to configure SharePoint as a storage backend for Document Hub. The configuration is performed directly in the Document Hub app's **Storage Backends** section. +This tutorial shows you how to configure SharePoint as a storage backend for DocumentHub. The configuration is performed directly in the DocumentHub app's **Storage Backends** section. > [!NOTE] > This tutorial uses SharePoint with Azure AD (Microsoft Entra ID) authentication. You will need administrative access to Azure Portal to complete the setup. @@ -13,22 +13,17 @@ Expected duration: 15 minutes ## Prerequisites -- Document Hub app installed and accessible +- DocumentHub app installed and accessible - Access to Azure Portal with permissions to register applications - SharePoint site with appropriate permissions ## Overview -The steps in this tutorial include: - -- [Configuring SharePoint as a storage backend](#configuring-sharepoint-as-a-storage-backend) - - [Prerequisites](#prerequisites) - - [Overview](#overview) - - [Step 1: Register your app in Azure AD](#step-1-register-your-app-in-azure-ad) - - [Step 2: Generate a client secret](#step-2-generate-a-client-secret) - - [Step 3: Configure API permissions](#step-3-configure-api-permissions) - - [Step 4: Configure SharePoint in Document Hub](#step-4-configure-sharepoint-in-document-hub) - - [Next steps](#next-steps) +- [Step 1: Register your app in Azure AD](#step-1-register-your-app-in-azure-ad) +- [Step 2: Generate a client secret](#step-2-generate-a-client-secret) +- [Step 3: Configure API permissions](#step-3-configure-api-permissions) +- [Step 4: Configure SharePoint in DocumentHub](#step-4-configure-sharepoint-in-documenthub) +- [Next steps](#next-steps) ## Step 1: Register your app in Azure AD @@ -36,7 +31,7 @@ The steps in this tutorial include: 1. Go to **Microsoft Entra ID** > **App Registrations**. -1. Click **New Registration** and provide a descriptive name (e.g., "DataMiner Document Hub"). +1. Click **New Registration** and provide a descriptive name (e.g., "DataMiner DocumentHub"). 1. Set the redirect URI to your DataMiner application domain. @@ -59,7 +54,7 @@ The steps in this tutorial include: 1. **Important**: Copy the client secret value immediately. It will not be shown again. > [!WARNING] - > Store the client secret securely. You will need it when configuring Document Hub. + > Store the client secret securely. You will need it when configuring DocumentHub. ## Step 3: Configure API permissions @@ -84,11 +79,11 @@ The steps in this tutorial include: 1. Confirm that the permissions show "Granted" status. -## Step 4: Configure SharePoint in Document Hub +## Step 4: Configure SharePoint in DocumentHub -Now that you have completed the Azure AD setup, configure SharePoint in the Document Hub app: +Now that you have completed the Azure AD setup, configure SharePoint in the DocumentHub app: -1. Open the **Document Hub** app in DataMiner. +1. Open the **DocumentHub** app in DataMiner. 1. Navigate to the **Storage Backends** section. @@ -126,8 +121,8 @@ After configuring SharePoint, you can: - Create document buckets that use this SharePoint backend - Configure metadata templates for SharePoint-stored documents -- Upload documents to SharePoint through the Document Hub app +- Upload documents to SharePoint through the DocumentHub app - Integrate SharePoint storage with other DataMiner applications > [!TIP] -> For more information on creating and managing document buckets, see [Document Hub app](xref:DH_Application). +> For more information on creating and managing document buckets, see [DocumentHub app](xref:DH_Application). diff --git a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md b/solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DocumentHub_Getting_Started.md similarity index 88% rename from solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md rename to solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DocumentHub_Getting_Started.md index 125bcb7c0b..c76ec94a6d 100644 --- a/solutions/standard_solutions/Document_Hub/Tutorials/Tutorial_DocumentHub_Getting_Started.md +++ b/solutions/standard_solutions/DocumentHub/Tutorials/Tutorial_DocumentHub_Getting_Started.md @@ -6,5 +6,5 @@ uid: Tutorial_DocumentHub_Getting_Started | Name | Description | |--|--| -| [Configuring DOM attachments on a network share](xref:Tutorial_DH_DOM_NetworkShare) | This tutorial shows you how to configure a network share as a storage backend for DOM attachments in Document Hub. | -| [Configuring SharePoint as a storage backend](xref:Tutorial_DH_SharePoint) | This tutorial shows you how to configure SharePoint as a storage backend for Document Hub. | \ No newline at end of file +| [Configuring DOM attachments on a network share](xref:Tutorial_DH_DOM_NetworkShare) | This tutorial shows you how to configure a network share as a storage backend for DOM attachments in DocumentHub. | +| [Configuring SharePoint as a storage backend](xref:Tutorial_DH_SharePoint) | This tutorial shows you how to configure SharePoint as a storage backend for DocumentHub. | \ No newline at end of file diff --git a/solutions/toc.yml b/solutions/toc.yml index 1a4ba3e23e..d66bbafdcb 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -175,14 +175,14 @@ items: topicUid: Jobs_Page - name: Web File Manager topicUid: Web_File_Manager - - name: dataminer.DocumentHub - topicUid: Document_Hub + - name: DocumentHub + topicUid: DocumentHub items: - - name: Installing Document Hub + - name: Installing DocumentHub topicUid: DH_Installation - - name: Document Hub app + - name: DocumentHub app topicUid: DH_Application - - name: Document Hub DevPack + - name: DocumentHub DevPack topicUid: DH_Development - name: Tutorials topicUid: Tutorial_DocumentHub_Getting_Started From 8e35c0f457ccd528b406decfd148685ceabaa435 Mon Sep 17 00:00:00 2001 From: Marieke Goethals Date: Tue, 19 May 2026 11:04:32 +0200 Subject: [PATCH 12/15] Partial review --- .../DocumentHub/DocumentHub_0.3.0.md | 13 ++++++------- .../DocumentHub/DocumentHub_1.0.0.md | 19 +++++++++---------- release-notes/DocumentHub/toc.yml | 2 +- .../DocumentHub/Package/DH_Installation.md | 2 +- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/release-notes/DocumentHub/DocumentHub_0.3.0.md b/release-notes/DocumentHub/DocumentHub_0.3.0.md index 79635d212b..49aadf0d86 100644 --- a/release-notes/DocumentHub/DocumentHub_0.3.0.md +++ b/release-notes/DocumentHub/DocumentHub_0.3.0.md @@ -2,7 +2,7 @@ uid: DocumentHub_0.3.0 --- -# DocumentHub 0.3.0 - Preview and Deprecated +# DocumentHub 0.3.0 (deprecated) ## Prerequisites @@ -14,11 +14,10 @@ uid: DocumentHub_0.3.0 ## New features -- List document attachments - List all documents that are attached to DOM instances trough the DOM attachments and show the linked instance. -- Support Configuration shared drive - Configure Shared drive trough DocHub to support DOM attachments. -- Backend - Protect Sensitive Data - Azure App Registration's Client Secret (SP Integration) needs to be safely stored. -- Filter on bucket - For each storage type there should be a way to see and therefore test the created buckets in the DocumentHub. +#### DOM attachments support, protection of sensitive data, and filtering on bucket [ID 45319] -## Changes +The DocumentHub Solution can now list all documents that are attached to DOM instances through DOM attachments and show the linked instance. To support DOM attachments, a shared drive can be configured. -*No enhancements or fixes have been added to this release yet.* +In addition, in the backend, protection for sensitive data has been implemented so that the Azure App Registration Client Secret (for SP integration) is safely stored. + +Finally, filtering on bucket has been implemented. For each storage type, the buckets created in DocumentHub can be viewed and tested. diff --git a/release-notes/DocumentHub/DocumentHub_1.0.0.md b/release-notes/DocumentHub/DocumentHub_1.0.0.md index 12bbe4e0dc..6c03c226b2 100644 --- a/release-notes/DocumentHub/DocumentHub_1.0.0.md +++ b/release-notes/DocumentHub/DocumentHub_1.0.0.md @@ -19,17 +19,16 @@ uid: DocumentHub_1.0.0 ### DocumentHub: Initial functionality [ID 45528] -**DocumentHub** is a DataMiner application that gives your team a central place to organize and access documents directly within the DataMiner platform. -This initial preview includes: +The new DocumentHub application gives your team a central place to organize and access documents directly within the DataMiner platform. This initial version includes: -- **Document Buckets** — Create and manage named storage areas (called "buckets") to keep your documents organized. Each bucket can have: +- **Document buckets**: Create and manage named storage areas (called "buckets") to keep your documents organized. Each bucket can have: - A name and description - An upload path - - Allowed file types (e.g. only PDFs or images) + - Allowed file types (e.g., only PDFs or images) - An optional file size limit -- **File Uploads** — Upload files directly from within DataMiner to your storage of choice. Three storage types are supported: - - **SharePoint** — Store documents in your organization's Microsoft SharePoint environment. - - **Local DataMiner** — Store documents on the DataMiner server. - - **DOM Attachments** — Attach files directly to native DataMiner Object Model records. -- **Create, Edit & Delete Buckets** — A guided on-screen form lets you set up or update a bucket in just a few steps, with instant validation to prevent mistakes. -- **Browse & Query Files** — Files stored in DocumentHub can be queried and displayed in DataMiner dashboards and low-code apps. +- **File uploads**: Upload files directly from within DataMiner to your storage of choice. Three storage types are supported: + - **SharePoint**: Store documents in your organization's Microsoft SharePoint environment. + - **Local DataMiner**: Store documents on the DataMiner server. + - **DOM attachments**: Attach files directly to native DataMiner Object Model records. +- **Creation, editing, and deletion of buckets**: A guided on-screen form lets you set up or update a bucket in just a few steps, with instant validation to prevent mistakes. +- **Browsing and querying of files**: Files stored in DocumentHub can be queried and displayed in DataMiner dashboards and low-code apps. diff --git a/release-notes/DocumentHub/toc.yml b/release-notes/DocumentHub/toc.yml index 372419fc59..1f5d13928a 100644 --- a/release-notes/DocumentHub/toc.yml +++ b/release-notes/DocumentHub/toc.yml @@ -1,5 +1,5 @@ items: - - name: DocumentHub 1.0.0 + - name: DocumentHub 1.0.0 - Preview topicUid: DocumentHub_1.0.0 - name: DocumentHub 0.3.0 topicUid: DocumentHub_0.3.0 diff --git a/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md b/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md index f5a055fb06..e9c6e6b50b 100644 --- a/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md +++ b/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md @@ -27,7 +27,7 @@ During the installation, the following steps will automatically be executed: 1. Migration actions (if any). 1. Cleanup actions (if any). -Migration and cleanup actions are defined in the install package and will depend on the version you install. To make sure that these actions do not keep growing indefinitely over the different versions, the **migration and cleanup actions are cleaned in every major version** (e.g. from 1.x.x to 2.x.x). +Migration and cleanup actions are defined in the install package and will depend on the version you install. To make sure that these actions do not keep growing indefinitely over the different versions, the **migration and cleanup actions are cleaned in every major version** (e.g., from 1.x.x to 2.x.x). > [!IMPORTANT] > When upgrading DocumentHub, to make sure all migration and cleanup actions take place, **first upgrade to the latest version of your current major version** before moving to the next major version, without skipping a major version. From 38a0fc70eac65f6d4a541904a78c6b019a9deb2c Mon Sep 17 00:00:00 2001 From: Marieke Goethals Date: Tue, 19 May 2026 13:30:21 +0200 Subject: [PATCH 13/15] Review DocumentHub.md + removed unnecessary subfolders --- .../DocumentHub/{Apps => }/DH_Application.md | 0 .../{Development => }/DH_Development.md | 0 .../{Package => }/DH_Installation.md | 0 .../DocumentHub/DocumentHub.md | 48 +++++++++---------- 4 files changed, 24 insertions(+), 24 deletions(-) rename solutions/standard_solutions/DocumentHub/{Apps => }/DH_Application.md (100%) rename solutions/standard_solutions/DocumentHub/{Development => }/DH_Development.md (100%) rename solutions/standard_solutions/DocumentHub/{Package => }/DH_Installation.md (100%) diff --git a/solutions/standard_solutions/DocumentHub/Apps/DH_Application.md b/solutions/standard_solutions/DocumentHub/DH_Application.md similarity index 100% rename from solutions/standard_solutions/DocumentHub/Apps/DH_Application.md rename to solutions/standard_solutions/DocumentHub/DH_Application.md diff --git a/solutions/standard_solutions/DocumentHub/Development/DH_Development.md b/solutions/standard_solutions/DocumentHub/DH_Development.md similarity index 100% rename from solutions/standard_solutions/DocumentHub/Development/DH_Development.md rename to solutions/standard_solutions/DocumentHub/DH_Development.md diff --git a/solutions/standard_solutions/DocumentHub/Package/DH_Installation.md b/solutions/standard_solutions/DocumentHub/DH_Installation.md similarity index 100% rename from solutions/standard_solutions/DocumentHub/Package/DH_Installation.md rename to solutions/standard_solutions/DocumentHub/DH_Installation.md diff --git a/solutions/standard_solutions/DocumentHub/DocumentHub.md b/solutions/standard_solutions/DocumentHub/DocumentHub.md index 3c476507e7..ac731f9dcb 100644 --- a/solutions/standard_solutions/DocumentHub/DocumentHub.md +++ b/solutions/standard_solutions/DocumentHub/DocumentHub.md @@ -4,9 +4,9 @@ uid: DocumentHub # DocumentHub -## Centralized document management for your DataMiner applications +## Centralized document management for DataMiner applications -DataMiner DocumentHub is a comprehensive document and file management solution that enables DataMiner applications to seamlessly store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, DocumentHub provides a unified, secure platform with integrated cloud storage support and metadata management. +DataMiner DocumentHub is a comprehensive document and file management solution that can be used by DataMiner applications to store, organize, and retrieve documents, images, and other files. Whether managing job attachments, profile pictures, organizational logos, or reports, DocumentHub provides a unified, secure platform with integrated cloud storage support and metadata management. Designed for broadcast, service provider, satellite, and enterprise organizations, DocumentHub eliminates the need for fragmented file storage solutions across multiple applications. It centralizes all document workflows while allowing IT teams to maintain control over security, compliance, and storage backend selection. @@ -14,15 +14,15 @@ Designed for broadcast, service provider, satellite, and enterprise organization ## DocumentHub application -DataMiner DocumentHub is available in the [Catalog](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) as a package containing a comprehensive low-code application. The solution integrates seamlessly with other DataMiner applications and provides an NuGet API for custom application development. +The DocumentHub Solution is available in the [Catalog](https://catalog.dataminer.services/details/f9720b2e-fdaa-4956-9788-877328b587ca) as a package containing a [dedicated low-code app](xref:DH_Application). The solution integrates seamlessly with other DataMiner applications and also provides a NuGet API for custom application development.

- +

- DocumentHub Application + DocumentHub app

@@ -37,7 +37,7 @@ DataMiner DocumentHub is available in the [Catalog](https://catalog.dataminer.se > [!TIP] > -> - Before you deploy the DocumentHub package, review the [installation instructions](xref:DH_Installation). +> - Before you deploy the DocumentHub package, check the [installation instructions](xref:DH_Installation). > - Developers integrating DocumentHub with custom applications should refer to the [DocumentHub DevPack](xref:DH_Development) documentation. > - For details about the changes introduced in each DocumentHub version, refer to the [release notes](xref:DocumentHub_RNs_index). @@ -45,15 +45,15 @@ DataMiner DocumentHub is available in the [Catalog](https://catalog.dataminer.se DocumentHub serves diverse user groups across your organization: -- **IT and Security Teams**: Implement centralized document management with control over storage backends, access credentials, file format restrictions, and compliance policies. Support customer-managed SharePoint or on-premises storage options like DataMiner Webfiles or DOM Attachments. +- **IT and security teams**: Implement centralized document management with control over storage backends, access credentials, file format restrictions, and compliance policies. The solution supports customer-managed SharePoint or on-premises storage options like DataMiner web files or DOM attachments. -- **System Administrators**: Configure document buckets for file grouping with file upload limitations, storage locations, and file extension rules. +- **System administrators**: Configure document buckets for file grouping with file upload limitations, storage locations, and file extension rules. -- **Content and Asset Managers**: Streamline workflows for organizing and retrieving documents across the organization. Normalize graphics formats for consistency and for automated processing. +- **Content and asset managers**: Streamline workflows for organizing and retrieving documents across your organization. Normalize graphics formats for consistency and for automated processing. -- **Application Developers**: Integrate DocumentHub capabilities into custom DataMiner low-code applications using the NuGet API. Retrieve file information, upload documents, and manage buckets programmatically. +- **Application developers**: Integrate DocumentHub capabilities into custom DataMiner low-code apps using the NuGet API. Retrieve file information, upload documents, and manage buckets programmatically. -- **Business Operations Teams**: Access documents from within operational applications such as People & Organizations, Asset Manager, and Scheduling. Attach job documents, profile images, asset photos, and service icons without leaving the application context. +- **Business operations teams**: Access documents from within operational applications such as People & Organizations, Asset Manager, and Scheduling. Attach job documents, profile images, asset photos, and service icons without leaving the application context. In essence, DocumentHub enables organizations to deliver better service quality, reduce fragmentation in document workflows, respond faster to business needs, and maintain compliance through centralized, secure file management. @@ -63,29 +63,29 @@ The DocumentHub Solution simplifies document and file management across your Dat DocumentHub supports the following capabilities by default without any customization: -- **Upload and Store**: Upload new documents, images, and files from user terminals to configured storage backends (SharePoint, local DataMiner Web Server, and DOM attachments). +- **Upload and store**: Upload new documents, images, and files from user terminals to configured storage backends (SharePoint, local DataMiner web server, and DOM attachments). -- **Link and Reference**: Store file references and URLs in DataMiner DOM objects and applications. Link documents to jobs, assets, contacts, and other business entities. +- **Link and reference**: Store file references and URLs in DataMiner DOM objects and applications. Link documents to jobs, assets, contacts, and other business entities. -- **Search and Navigate**: Discover documents by name and buckets. Browse and organize files through a unified interface regardless of storage location. +- **Search and navigate**: Discover documents by name and buckets. Browse and organize files through a unified interface regardless of storage location. -- **Read and Display**: View and open documents in third-party applications. Support common file types including jpg, png, gif, svg, pdf, docx, xlsx, and pptx. +- **Read and display**: View and open documents in third-party applications. Common file types are supported, including .jpg, .png, .gif, .svg, .pdf, .docx, .xlsx, and .pptx. -- **Normalize and Format**: Apply format conversion and normalization to graphics files at ingest to ensure consistency across standard solutions. +- **Normalize and format**: Apply format conversion and normalization to graphics files at ingest to ensure consistency across standard solutions. -- **Organize with Buckets**: Create predefined document buckets to streamline workflow. Specify target platforms, allowed file extensions, and file size limits for each bucket. +- **Organize with buckets**: Create predefined document buckets to streamline workflows. Specify target platforms, allowed file extensions, and file size limits for each bucket. - **Integrate with APIs**: Use the DocumentHub NuGet package to develop custom integrations. Retrieve file information, manage buckets, and upload documents programmatically. Example use cases: -- **People and Organizations**: Profile photos and contact avatars for team members and external contacts. -- **Asset Management**: Front and rear panel images of infrastructure assets, racks, and equipment. -- **Service and Channel Management**: Service icons, channel logos, and branding assets. -- **Scheduling and Jobs**: PDF job sheets, contracts, and task documentation. -- **Cost and Billing**: Generated invoices, cost reports, and financial documents. -- **Energy and Utilities**: Equipment documentation, compliance certificates, and facility plans. -- **Fleet Management**: Vehicle documentation, maintenance records, and operational photos. +- **People and organizations**: Profile photos and contact avatars for team members and external contacts. +- **Asset management**: Front and rear panel images of infrastructure assets, racks, and equipment. +- **Service and channel management**: Service icons, channel logos, and branding assets. +- **Scheduling and jobs**: PDF job sheets, contracts, and task documentation. +- **Cost and billing**: Generated invoices, cost reports, and financial documents. +- **Energy and utilities**: Equipment documentation, compliance certificates, and facility plans. +- **Fleet management**: Vehicle documentation, maintenance records, and operational photos. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file