From 84947dca7dd35a5bf976fc2e981b767e5bf8d7a8 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 27 Apr 2023 14:36:10 +0800 Subject: [PATCH] update docs Signed-off-by: Annie_wang --- .../file-management/Readme-EN.md | 31 +- .../file-management/app-file-access.md | 172 ++++++++ .../file-management/app-file-overview.md | 11 + .../app-file-upload-download.md | 105 +++++ .../app-fs-space-statistics.md | 54 +++ .../file-management/app-sandbox-directory.md | 96 +++++ .../file-management/dev-user-file-manager.md | 145 +++++++ .../distributed-fs-overview.md | 39 ++ .../application-file-directory-structure.png | Bin 0 -> 38447 bytes ...ation-sandbox-file-access-relationship.png | Bin 0 -> 40127 bytes .../figures/application-sandbox-path.png | Bin 0 -> 25819 bytes .../distributed-file-system-architecture.png | Bin 0 -> 40358 bytes .../external-storage-device-management.png | Bin 0 -> 37537 bytes .../file-management/figures/faf-data-flow.png | Bin 58508 -> 0 bytes .../figures/file-classification-model.png | Bin 0 -> 56846 bytes .../figures/public-file-operation.png | Bin 73619 -> 0 bytes .../figures/user-file-access-framework.png | Bin 0 -> 32033 bytes .../file-access-across-devices.md | 60 +++ .../file-access-framework-overview.md | 44 -- .../file-management-overview.md | 28 ++ .../file-management/filepicker-guidelines.md | 65 --- .../manage-external-storage.md | 87 ++++ .../medialibrary-album-guidelines.md | 94 ----- .../medialibrary-filepath-guidelines.md | 249 ------------ .../file-management/medialibrary-overview.md | 127 ------ .../medialibrary-resource-guidelines.md | 384 ------------------ .../file-management/save-user-file.md | 103 +++++ .../file-management/select-user-file.md | 117 ++++++ .../send-file-to-app-sandbox.md | 46 +++ .../file-management/set-security-label.md | 42 ++ .../file-management/share-app-file.md | 147 +++++++ .../file-management/user-file-overview.md | 60 +++ 32 files changed, 1334 insertions(+), 972 deletions(-) create mode 100644 en/application-dev/file-management/app-file-access.md create mode 100644 en/application-dev/file-management/app-file-overview.md create mode 100644 en/application-dev/file-management/app-file-upload-download.md create mode 100644 en/application-dev/file-management/app-fs-space-statistics.md create mode 100644 en/application-dev/file-management/app-sandbox-directory.md create mode 100644 en/application-dev/file-management/dev-user-file-manager.md create mode 100644 en/application-dev/file-management/distributed-fs-overview.md create mode 100644 en/application-dev/file-management/figures/application-file-directory-structure.png create mode 100644 en/application-dev/file-management/figures/application-sandbox-file-access-relationship.png create mode 100644 en/application-dev/file-management/figures/application-sandbox-path.png create mode 100644 en/application-dev/file-management/figures/distributed-file-system-architecture.png create mode 100644 en/application-dev/file-management/figures/external-storage-device-management.png delete mode 100644 en/application-dev/file-management/figures/faf-data-flow.png create mode 100644 en/application-dev/file-management/figures/file-classification-model.png delete mode 100644 en/application-dev/file-management/figures/public-file-operation.png create mode 100644 en/application-dev/file-management/figures/user-file-access-framework.png create mode 100644 en/application-dev/file-management/file-access-across-devices.md delete mode 100644 en/application-dev/file-management/file-access-framework-overview.md create mode 100644 en/application-dev/file-management/file-management-overview.md delete mode 100644 en/application-dev/file-management/filepicker-guidelines.md create mode 100644 en/application-dev/file-management/manage-external-storage.md delete mode 100644 en/application-dev/file-management/medialibrary-album-guidelines.md delete mode 100644 en/application-dev/file-management/medialibrary-filepath-guidelines.md delete mode 100644 en/application-dev/file-management/medialibrary-overview.md delete mode 100644 en/application-dev/file-management/medialibrary-resource-guidelines.md create mode 100644 en/application-dev/file-management/save-user-file.md create mode 100644 en/application-dev/file-management/select-user-file.md create mode 100644 en/application-dev/file-management/send-file-to-app-sandbox.md create mode 100644 en/application-dev/file-management/set-security-label.md create mode 100644 en/application-dev/file-management/share-app-file.md create mode 100644 en/application-dev/file-management/user-file-overview.md diff --git a/en/application-dev/file-management/Readme-EN.md b/en/application-dev/file-management/Readme-EN.md index 4aa7c9af2c..1e644dbac0 100644 --- a/en/application-dev/file-management/Readme-EN.md +++ b/en/application-dev/file-management/Readme-EN.md @@ -1,10 +1,23 @@ -# File Management -- MediaLibrary Management - - [MediaLibrary Overview](medialibrary-overview.md) - - [Media Asset Management](medialibrary-resource-guidelines.md) - - [File Path Management](medialibrary-filepath-guidelines.md) - - [Album Management](medialibrary-album-guidelines.md) +# File -- File Access Framework - - [File Access Framework Overview](file-access-framework-overview.md) -- [FilePicker Guide](filepicker-guidelines.md) \ No newline at end of file +- [File Management Overview](file-management-overview.md) +- Application File + - [Application File Overview](app-file-overview.md) + - [Application Sandbox Directory](app-sandbox-directory.md) + - Application File Access and Management + - [Accessing Application Files](app-file-access.md) + - [Uploading and Downloading Application Files](app-file-upload-download.md) + - [Obtaining Application and File System Space Statistics](app-fs-space-statistics.md) + - [Sending Files to an Application Sandbox](send-file-to-app-sandbox.md) + - [Sharing an Application File](share-app-file.md) +- User File + - [User File Overview](user-file-overview.md) + - Selecting and Saving User Files (FilePicker) + - [Selecting User Files](select-user-file.md) + - [Saving User Files](save-user-file.md) + - [Developing a FileManager Application (Available Only for System Applications)](dev-user-file-manager.md) + - [Managing External Storage Devices (Available Only for System Applications)](manage-external-storage.md) +- Distributed File System + - [Distributed File System Overview](distributed-fs-overview.md) + - [Setting the Security Level of a Distributed File](set-security-label.md) + - [Access Files Across Devices](file-access-across-devices.md) diff --git a/en/application-dev/file-management/app-file-access.md b/en/application-dev/file-management/app-file-access.md new file mode 100644 index 0000000000..a98e1ec1d8 --- /dev/null +++ b/en/application-dev/file-management/app-file-access.md @@ -0,0 +1,172 @@ +# Accessing Application Files + +This topic describes how to view, create, read, write, delete, move, or copy a file in the application file directory and obtain the file information. + +## Available APIs + +You can use [ohos.file.fs](../reference/apis/js-apis-file-fs.md) to implement the application file access capabilities. The following table describes the APIs. + +**Table 1** APIs for basic application file operations + +| API| Description| Type| Synchronous Programming| Asynchronous Programming| +| -------- | -------- | -------- | -------- | -------- | +| access | Checks whether a file exists.| Method| √ | √ | +| close | Closes a file.| Method| √ | √ | +| copyFile | Copies a file.| Method| √ | √ | +| createStream | Creates a stream based on the specified file path.| Method| √ | √ | +| listFile | Lists all files in a directory.| Method| √ | √ | +| mkdir | Creates a directory.| Method| √ | √ | +| moveFile | Moves a file.| Method| √ | √ | +| open | Opens a file.| Method| √ | √ | +| read | Reads data from a file.| Method| √ | √ | +| rename | Renames a file or folder.| Method| √ | √ | +| rmdir | Deletes a directory.| Method| √ | √ | +| stat | Obtains detailed file information.| Method| √ | √ | +| unlink | Deletes a single file.| Method| √ | √ | +| write | Writes data to a file.| Method| √ | √ | +| Stream.close | Closes a stream.| Method| √ | √ | +| Stream.flush | Flushes all data from this stream.| Method| √ | √ | +| Stream.write | Writes data to a stream.| Method| √ | √ | +| Stream.read | Reads data from a stream.| Method| √ | √ | +| File.fd | Defines a file descriptor.| Attribute| √ | × | +| OpenMode | Defines the mode for opening a file.| Attribute| √ | × | +| Filter | Defines the options for setting the file filter.| Type| × | × | + +## Development Example + +Obtain the [application file path](../application-models/application-context-stage.md#obtaining-the-application-development-path). The following example shows how to obtain a HAP file path using **UIAbilityContext**. For details about how to obtain **UIAbilityContext**, see [Obtaining the Context of UIAbility](../application-models/uiability-usage.md#obtaining-the-context-of-uiability). + +The following describes common file operations. + +### Creating, Reading, and Writing a File + +The following example demonstrates how to create a file, read data from it, and write data to it. + +```ts +// pages/xxx.ets +import fs from '@ohos.file.fs'; +import common from '@ohos.app.ability.common'; + +function createFile() { + // Obtain the application file path. + let context = getContext(this) as common.UIAbilityContext; + let filesDir = context.filesDir; + + // Create a file and open it. + let file = fs.openSync(filesDir + '/test.txt', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); + // Write data to the file. + let writeLen = fs.writeSync(file.fd, "Try to write str."); + console.info("The length of str is: " + writeLen); + // Read data from the file. + let buf = new ArrayBuffer(1024); + let readLen = fs.readSync(file.fd, buf, { offset: 0 }); + console.info("the content of file: " + String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen)))); + // Close the file. + fs.closeSync(file); +} +``` + +### Copying Data to Another File + + The following example demonstrates how to write the data read from a file to another file. + +```ts +// pages/xxx.ets +import fs from '@ohos.file.fs'; +import common from '@ohos.app.ability.common'; + +function readWriteFile() { + // Obtain the application file path. + let context = getContext(this) as common.UIAbilityContext; + let filesDir = context.filesDir; + + // Open the source and destination files. + let srcFile = fs.openSync(filesDir + '/test.txt', fs.OpenMode.READ_WRITE); + let destFile = fs.openSync(filesDir + '/destFile.txt', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); + // Read data from the source file and copy it to the destination file. + let bufSize = 4096; + let readSize = 0; + let buf = new ArrayBuffer(bufSize); + let readLen = fs.readSync(srcFile.fd, buf, { offset: readSize }); + while (readLen > 0) { + readSize += readLen; + fs.writeSync(destFile.fd, buf); + readLen = fs.readSync(srcFile.fd, buf, { offset: readSize }); + } + // Close the files. + fs.closeSync(srcFile); + fs.closeSync(destFile); +} +``` + +> **NOTE** +> +> When using **read()** or **write()**, pay attention to the optional parameter **offset**. For a file that has been read or written, the offset pointer is at the end position of the last read or write operation by default. + +### Reading and Writing Files in a Stream + +The following example demonstrates how to read and write file data using a stream. + +```ts +// pages/xxx.ets +import fs from '@ohos.file.fs'; +import common from '@ohos.app.ability.common'; + +async function readWriteFileWithStream() { + // Obtain the application file path. + let context = getContext(this) as common.UIAbilityContext; + let filesDir = context.filesDir; + + // Open the file streams. + let inputStream = fs.createStreamSync(filesDir + '/test.txt', 'r+'); + let outputStream = fs.createStreamSync(filesDir + '/destFile.txt', "w+"); + // Read data from the source file and write the data to the destination file using a stream. + let bufSize = 4096; + let readSize = 0; + let buf = new ArrayBuffer(bufSize); + let readLen = await inputStream.read(buf, { offset: readSize }); + readSize += readLen; + while (readLen > 0) { + await outputStream.write(buf); + readLen = await inputStream.read(buf, { offset: readSize }); + readSize += readLen; + } + // Close the streams. + inputStream.closeSync(); + outputStream.closeSync(); +} +``` + +> **NOTE** +> +> Close the stream that is no longer used in a timely manner.
Comply with the related programming specifications for **Stream** APIs in asynchronous mode and avoid mixed use of the APIs in synchronous mode and asynchronous mode.
The **Stream** APIs do not support concurrent read and write operations. + +### Listing Files + +The following example demonstrates how to list files. + +```ts +// List files. +import fs from '@ohos.file.fs'; +import common from '@ohos.app.ability.common'; + +// Obtain the application file path. +let context = getContext(this) as common.UIAbilityContext; +let filesDir = context.filesDir; + +// List files that meet the specified conditions. +let options = { + recursion: false, + listNum: 0, + filter: { + suffix: ['.png', '.jpg', '.txt'], // The filename extension can be '.png', '.jpg', or '.txt'. + displayName: ['test%'], // The filename starts with 'test'. + fileSizeOver: 0, // The file size is greater than or equal to 0. + lastModifiedAfter: new Date(0).getTime(), // The latest modification time of the file is later than January 1, 1970. + }, +} +let files = fs.listFileSync(filesDir, options); +for (let i = 0; i < files.length; i++) { + console.info(`The name of file: ${files[i]}`); +} +``` diff --git a/en/application-dev/file-management/app-file-overview.md b/en/application-dev/file-management/app-file-overview.md new file mode 100644 index 0000000000..f3d49fd0c6 --- /dev/null +++ b/en/application-dev/file-management/app-file-overview.md @@ -0,0 +1,11 @@ +# Application File Overview + +Application files are files of an application, including the application's installation files, resource files, and cache files. + +- The data used and saved by an application is stored in files, key-value (KV) pairs, and databases in a dedicated directory on a device. This directory is called application file directory, and the files in the directory are application files. + +- The directories visible to an application include the application file directory and a directory containing the minimum system files required for the running of the application. These two directories constitute an [application sandbox directory](app-sandbox-directory.md). That means, the application file directory is a subset of the application sandbox directory. + +- The system files and directories are read-only for the application. The application can only save files to sub-directories in the [application file directory](app-sandbox-directory.md#application-file-directory-and-application-file-path) based on certain rules. + +The following topics describe the application sandbox, application file directories, and how to access, manage, and share application files. diff --git a/en/application-dev/file-management/app-file-upload-download.md b/en/application-dev/file-management/app-file-upload-download.md new file mode 100644 index 0000000000..e95ba1dc87 --- /dev/null +++ b/en/application-dev/file-management/app-file-upload-download.md @@ -0,0 +1,105 @@ +# Uploading and Downloading an Application File + +This topic describes how to upload an application file to a network server and download a network resource file from a network server to a local application directory. + +## Uploading an Application File + +You can use [ohos.request](../reference/apis/js-apis-request.md) **uploadFile()** to upload local files. The system service proxy implements the upload. + +> **NOTE** +> +> Currently, only the files in the **cache/** directories (**cacheDir**) can be uploaded. +> +>
The **ohos.permission.INTERNET** permission is required for using **ohos.request**. For details about how to apply for a permission, see [Applying for Permissions](../security/accesstoken-guidelines.md). + +The following example demonstrates how to upload a file in the **cache** directory of an application to a network server. + +```ts +// pages/xxx.ets +import common from '@ohos.app.ability.common'; +import fs from '@ohos.file.fs'; +import request from '@ohos.request'; + +// Obtain the application file path. +let context = getContext(this) as common.UIAbilityContext; +let cacheDir = context.cacheDir; + +// Create an application file locally. +let file = fs.openSync(cacheDir + '/test.txt', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); +fs.writeSync(file.fd, 'upload file test'); +fs.closeSync(file); + +// Configure the upload task. +let uploadConfig = { + url: 'https://xxx', + header: { key1: 'value1', key2: 'value2' }, + method: 'POST', + files: [ + { filename: 'test.txt', name: 'test', uri: 'internal://cache/test.txt', type: 'txt' } + ], + data: [ + { name: 'name', value: 'value' } + ] +} + +// Upload the created application file to the network server. +try { + request.uploadFile(context, uploadConfig) + .then((uploadTask) => { + uploadTask.on('complete', (taskStates) => { + for (let i = 0; i < taskStates.length; i++) { + console.info(`upload complete taskState: ${JSON.stringify(taskStates[i])}'); + } + }); + }) + .catch((err) => { + console.error(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`); + }) +} catch (err) { + console.error(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`); +} +``` + +## Downloading a Network Resource File to the Application File Directory + +You can use [ohos.request](../reference/apis/js-apis-request.md) **downloadFile()** to download network resource files to a local application directory. You can use the ([ohos.file.fs](../reference/apis/js-apis-file-fs.md) APIs to access the downloaded files. For details, see [Accessing Application Files](app-file-access.md). The system service proxy implements the download. + +> **NOTE** +> +> Currently, network resource files can be downloaded only to an application file directory. +> +>
The **ohos.permission.INTERNET** permission is required for using **ohos.request**. For details about how to apply for a permission, see [Applying for Permissions](../security/accesstoken-guidelines.md). + +The following example demonstrates how to download a network resource file to a local application file directory. + +```ts +// pages/xxx.ets +// Download the network resource file to the local application file directory, and read data from the file. +import common from '@ohos.app.ability.common'; +import fs from '@ohos.file.fs'; +import request from '@ohos.request'; + +// Obtain the application file path. +let context = getContext(this) as common.UIAbilityContext; +let filesDir = context.filesDir; + +try { + request.downloadFile(context, { + url: 'https://xxxx/xxxx.txt', + filePath: filesDir + '/xxxx.txt' + }).then((downloadTask) => { + downloadTask.on('complete', () => { + console.info('download complete'); + let file = fs.openSync(filesDir + '/xxxx.txt', fs.OpenMode.READ_WRITE); + let buf = new ArrayBuffer(1024); + let readLen = fs.readSync(file.fd, buf); + console.info(`The content of file: ${String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen)))}`); + fs.closeSync(file); + }) + }).catch((err) => { + console.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`); + }); +} catch (err) { + console.error(`Invoke downloadFile failed, code is ${err.code}, message is ${err.message}`); +} +``` diff --git a/en/application-dev/file-management/app-fs-space-statistics.md b/en/application-dev/file-management/app-fs-space-statistics.md new file mode 100644 index 0000000000..6854af8c85 --- /dev/null +++ b/en/application-dev/file-management/app-fs-space-statistics.md @@ -0,0 +1,54 @@ +# Obtaining Application and File System Space Statistics + +This topic describes how to obtain information about the free system space and space occupied by applications so as to prevent insufficient storage space of the system or ensure proper use of quota-controlled **cacheDir** directories. + +## Available APIs + +For details about the APIs, see [ohos.file.statvfs](../reference/apis/js-apis-file-statvfs.md) and [ohos.file.storageStatistics](../reference/apis/js-apis-file-storage-statistics.md). + +**Table 1** APIs for file system and application space statistics + +| Module| API| Description| +| -------- | -------- | -------- | +| \@ohos.file.storageStatistic | getCurrentBundleStats | Obtains the storage space of the current application, in bytes.| +| \@ohos.file.statvfs | getFreeSize | Obtains the free space of a file system, in bytes.| +| \@ohos.file.statvfs | getTotalSize | Obtains the total space of a file system, in bytes.| + +**Table 2** Attributes for application space statistics + +| BundleStats Attribute| Description| Directory for Statistics| +| -------- | -------- | -------- | +| appSize | Size of the application installation files, in bytes.| Application installation file directory:
**/data/storage/el1/bundle **| +| cacheSize | Size of the application cache files, in bytes.| Application cache file directories:
**/data/storage/el1/base/cache**
**/data/storage/el1/base/haps/entry/cache**
**/data/storage/el2/base/cache**
**/data/storage/el2/base/haps/entry/cache **| +| dataSize | Size of the application files (excluding the application installation files and cache files), in bytes.| The application files include local files, distributed files, and database files.
- Local application file directories (parent directories of the **cache** directories):
**/data/storage/el1/base**
**/data/storage/el2/base**
- Distributed application directory:
/data/storage/el2/distributedfiles
- Database directories:
**/data/storage/el1/database**
**/data/storage/el2/database **| + +## Development Example + +- Obtain the free space of **/data** of the file system. + + ```ts + import statvfs from '@ohos.file.statvfs'; + + let path = "/data"; + statvfs.getFreeSize(path, (err, number) => { + if (err) { + console.error(`Invoke getFreeSize failed, code is ${err.code}, message is ${err.message}`); + } else { + console.info(`Invoke getFreeSize succeeded, size is ${number}`); + } + }); + ``` + +- Obtain the space occupied by the current application. + + ```ts + import storageStatistics from "@ohos.file.storageStatistics"; + + storageStatistics.getCurrentBundleStats((err, bundleStats) => { + if (err) { + console.error(`Invoke getCurrentBundleStats failed, code is ${err.code}, message is ${err.message}`); + } else { + console.info(`Invoke getCurrentBundleStats succeeded, appsize is ${bundleStats.appSize}`); + } + }); + ``` diff --git a/en/application-dev/file-management/app-sandbox-directory.md b/en/application-dev/file-management/app-sandbox-directory.md new file mode 100644 index 0000000000..7d06b330aa --- /dev/null +++ b/en/application-dev/file-management/app-sandbox-directory.md @@ -0,0 +1,96 @@ +# Application Sandbox Directory + +The application sandbox is an isolation mechanism to prevent data from being accessed through path traversal. This mechanism allows only the application sandbox directory visible to an application. + +- The system maps a dedicated application sandbox directory in the internal storage space for each application. The directory is a collection of the [application file directory](app-file-overview.md) and a directory containing the minimum system files required during application's runtime. + +- The application sandbox specifies the minimum range of data visible to each application. In the application sandbox directory, an application can access only its own application files and the system files required for its running. The application cannot access files of other applications. The security of application files is protected in this way. + +- In each application sandbox directory, the application can save and process its own application files in the [application file directory](app-file-overview.md), and can only read the system files and directories. The application can access [user files](user-file-overview.md) by using specific APIs only with authorization from the user. + +The following figure illustrates the file access scope and modes for an application in an application sandbox. + +**Figure 1** File access in an application sandbox + +![Application sandbox file access relationship](figures/application-sandbox-file-access-relationship.png) + +## Application Sandbox Directory and Application Sandbox Path + +With the application sandbox mechanism, an application cannot learn the location and existence of other applications' directories and user file directories. In addition, all the application directories visible to an application are isolated by permission and namespace to form an independent directory view and shield the real (physical) paths. + +- As shown in the following figure, the sandbox mechanism minimizes the number of directories and files visible to a common application (third-party application). The directories and file paths visible to a common application are different from those visible to a system process. The path of a file or folder in the application sandbox directory visible to a common application is called the application sandbox path. + +- You can view the real application paths (the directory view visible to a system process) in the HDC shell environment. For details about the mappings between the application sandbox paths and real application paths, see [Mappings Between Application Sandbox Paths and Physical Paths](send-file-to-app-sandbox.md#mappings-between-application-sandbox-paths-and-physical-paths). + +- The application sandbox paths and physical paths are not in one-to-one mappings. The application sandbox paths are always less than the physical paths. You may not obtain the the application sandbox path based on a physical path in certain cases, but you can obtain the physical path based on an application sandbox path. + +**Figure 2** Different directory views to processes and applications + +![Application sandbox path](figures/application-sandbox-path.png) + +## Application File Directory and Application File Path + +The application sandbox directory includes application file directories and system file directories. + +The system file directories visible to an application are preset by OpenHarmony. + +The following figure shows the application file directories. The path of a file or a folder in the application file directory is called the application file path. The file paths in the application file directory have different attributes and characteristics. + +**Figure 3** Application file directory structure + +![Application file directory structure](figures/application-file-directory-structure.png) + +1. Level 1 directory **data/**: indicates the application file directory. + +2. Level 2 directory **storage/**: indicates a directory for persistent files of the application. + +3. Level 3 directories **el1/** and **el2/**: indicate directories for files of different encryption levels (els). + - **el1**: directory for the data that can be accessed once the device starts. This directory contains device-focused files. + - **el2**: directory for the data that can be accessed only after at lease one successful unlocking operation (by PIN, fingerprint, or facial authentication, or password-free sign-in) upon the start of the device. This directory contains user-focused files.
+ Unless otherwise required, application data is placed in the **el2** directory for security purposes. However, the data that needs to be accessed before the screen is unlocked (such as the clock, alarm, and wallpaper data) can be placed in the **el1** directory. For details about how to switch to and modify the **el** directories, see [Obtaining and Modifying el Directories](../application-models/application-context-stage.md#obtaining-and-modifying-encryption-areas). + +4. Level 4 and level 5 directories: + The application's global data is stored in the **files**, **cache**, **preferences**, **temp**, and **distributedfiles** folders in **base**. You can use **ApplicationContext** to obtain the application file paths of these folders. + + You can use **UIAbilityContext**, **AbilityStageContext**, and **ExtensionContext** to obtain application file paths related to the OpenHarmoy Ability Package (HAP). When the HAP is uninstalled, the files stored in these directories are automatically deleted, without affecting the files in app-level directories. An application in the development state contains one or more HAPs. For details, see [Application Package Structure in Stage Mode](../quick-start/application-package-structure-stage.md). + + For details about how to obtain the context and application file paths, see [Context (Stage Model)](../application-models/application-context-stage.md). + + > **NOTE** + > + > - Do not directly use file paths made up by level 1 to level 4 directory names. Incompatibility problems may occur if the directory names are changed in later versions. + > - Use **Context** to obtain application file paths, which include but are not limited to the directories highlighted in green in **Figure 3**. + + The following table describes the application file paths and lifecycle. + + **Table 1** Application file paths + + | Folder| Context Attribute Name| Type| Description| + | -------- | -------- | -------- | -------- | + | bundle | bundleCodeDir | Installation file directory| Directory for saving the HAPs of the application after an application is installed.
This directory is cleared when the application is uninstalled.
Do not access resource files by concatenating paths. Use [@ohos.resourceManager] instead.| + | base | NA | Directory for local device files| Directory for saving the application's persistent data on the device. Subdirectories include **files/**,** cache/**, **temp/**, and **haps/**.
This directory is cleared when the application is uninstalled.| + | database | databaseDir | Database directory| Directory in **el1** for saving the files operated by the distributed database service.
This directory is cleared when the application is uninstalled.| + | distributedfiles | distributedFilesDir | Distributed file directory| Directory in **el2** for saving the application files that can be directly accessed across devices.
This directory is cleared when the application is uninstalled.| + | files | filesDir | Application file directory| Directory for saving the application's persistent files on the device.
This directory is cleared when the application is uninstalled.| + | cache | cacheDir | Application cache file directory| Directory for caching the downloaded files of the application or saving the cache files regenerated on the device.
This directory is automatically cleared when the size of the **cache** directory reaches the quota or the system storage space reaches a certain threshold. The user can also clear this directory by using a system space management application.
The application needs to check whether the file still exists and determine whether to cache the file again.| + | preferences | preferencesDir | Preferences file directory| Directory for saving common application configuration and user preference data managed by using database APIs.
This directory is cleared when the application is uninstalled. For details, see [Data Persistence by User Preferences](../database/data-persistence-by-preferences.md).| + | temp | tempDir | Temporary file directory| Directory for saving the files generated and required during the application's runtime on the device.
This directory is cleared when the application exits.| + + The application file paths are used in the following scenarios: + + - Installation file directory
+ Used to store the code resource data of the application, including the HAPs of the application, reusable library files, and plug-ins. The code stored in this directory can be dynamically loaded. + - Database directory
+ Used to store only the application's private database data, such as database files. This directory can be used to store distributed database data only. + - Distributed file directory
+ Used to store the application's data used for distributed scenarios, including file sharing, file backup, and file processing across devices. The data stored in this directory enables the application to run smoothly on multiple devices. + - Application file directory
+ Used to store private data of the application, including persistent files, images, media files, and log files. The data is stored in this directory to ensure privacy, security, and permanent validity. + - Cached application file directory
+ Used to store cached data of the application, including offline data, cached images, database backup, and temporary files. Data stored in this directory may be automatically deleted by the system. Therefore, do not store important data in this directory. + - Preferences file directory
+ Used to store application preferences data, including preference files and configuration files. This directory applied to storing only a small amount of data. + - Temporary file directory
+ Used to store temporarily generated data of an application, including cached database data and images, temporary log files, downloaded application installation package files. The data stored in this directory is deleted after being used. + + \ No newline at end of file diff --git a/en/application-dev/file-management/dev-user-file-manager.md b/en/application-dev/file-management/dev-user-file-manager.md new file mode 100644 index 0000000000..3eb26df866 --- /dev/null +++ b/en/application-dev/file-management/dev-user-file-manager.md @@ -0,0 +1,145 @@ +# Developing a FileManager Application (Available Only for System Applications) + +OpenHarmony is prebuilt with the **FileManager** application. You can also develop your own **FileManager** as required. + +## Available APIs + +For details about the APIs, see [User File Access and Management](../reference/apis/js-apis-fileAccess.md). + +## How to Develop + +1. Configure the permissions required and import dependent modules. + Apply for the **ohos.permission.FILE_ACCESS_MANAGER** and **ohos.permission.GET_BUNDLE_INFO_PRIVILEGED** permissions. For details, see [Applying for Permissions](../security/accesstoken-guidelines.md). + + > **NOTE** + > + > **ohos.permission.FILE_ACCESS_MANAGER** is required for using the user file access framework APIs. + > + > **ohos.permission.GET_BUNDLE_INFO_PRIVILEGED** is required for querying information about file management server applications supported by the system. + +2. Import the dependent modules. + + ```ts + import fileAccess from '@ohos.file.fileAccess'; + import fileExtensionInfo from '@ohos.file.fileExtensionInfo'; + ``` + + The **fileAccess** module provides APIs for basic file operations, and the **fileExtensionInfo** module provides key structs for application development. + +3. Query device information. + You can obtain attributes of one or all devices managed by the file management server in the current system. You can also filter devices as required. + + In the user file access framework, **RootInfo** indicates the attribute information of a device. For example, obtain **RootInfo** of all devices. + + ```ts + // Create a helper object for connecting to all file management servers in the system. + let fileAccessHelperAllServer = null; + createFileAccessHelper() { + try { // this.context is the context passed from EntryAbility. + fileAccessHelperAllServer = fileAccess.createFileAccessHelper(this.context); + if (!fileAccessHelperAllServer) { + console.error("createFileAccessHelper interface returns an undefined object"); + } + } catch (error) { + console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); + } + } + async getRoots() { + let rootIterator = null; + let rootInfos = []; + let isDone = false; + try { + rootIterator = await fileAccessHelperAllServer.getRoots(); + if (!rootIterator) { + console.error("getRoots interface returns an undefined object"); + return; + } + while (!isDone) { + let result = rootIterator.next(); + console.info("next result = " + JSON.stringify(result)); + isDone = result.done; + if (!isDone) + rootinfos.push(result.value); + } + } catch (error) { + console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); + } + } + ``` + +4. View directories. + In the user file access framework, **FileInfo** indicates basic information about a file (directory). You can use **listfile()** to traverse all files (directories) of the next level to obtain a **FileIterator** object or use **scanfile()** to filter the specified directories and obtain the **FileIterator** object that meets the conditions. + + Currently, **listfile()** and **scanfile()** can be called by the **RootInfo** object to traverse lower-level files or filter the entire directory tree. In addition, **listfile()** and **scanfile()** can be called by the **FileInfo** object to traverse lower-level files or filter specified directories. + + ```ts + // Start from the root directory. + let rootInfo = rootinfos[0]; + let fileInfos = []; + let isDone = false; + let filter = {suffix: [".txt", ".jpg", ".xlsx"]}; // Set filter criteria. + try { + let fileIterator = rootInfo.listFile(); // Traverse the root directory of rootinfos[0] and return an iterator object. + // let fileIterator = rootInfo.scanFile(filter); // Filter the file information of device rootinfos[0] that meets the specified conditions and return an iteration object. + if (!fileIterator) { + console.error("listFile interface returns an undefined object"); + return; + } + while (!isDone) { + let result = fileIterator.next(); + console.info("next result = " + JSON.stringify(result)); + isDone = result.done; + if (!isDone) + fileInfos.push(result.value); + } + } catch (error) { + console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); + } + + // Start from the specified directory. + let fileInfoDir = fileInfos[0]; // fileInfoDir indicates information about a directory. + let subFileInfos = []; + let isDone = false; + let filter = {suffix: [".txt", ".jpg", ".xlsx"]}; // Set filter criteria. + try { + let fileIterator = fileInfoDir.listFile(); // Traverse files in the specified directory and return an iterator object. + // let fileIterator = rootInfo.scanFile(filter); // Filter the files in the specified directory and return an iterator object. + if (!fileIterator) { + console.error("listFile interface returns an undefined object"); + return; + } + while (!isDone) { + let result = fileIterator.next(); + console.info("next result = " + JSON.stringify(result)); + isDone = result.done; + if (!isDone) + subfileInfos.push(result.value); + } + } catch (error) { + console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); + } + ``` + +5. Perform operations on files or directories. + You can integrate APIs of the user file access framework to implement user behaviors, such as deleting, renaming, creating, and moving a file (directory). The following example shows how to create a file. For details about other APIs, see [User File Access and Management](../reference/apis/js-apis-fileAccess.md). + + ```ts + // The local device is used as an example. + // Create a file. + // sourceUri is the URI in fileinfo of the Download directory. + // You need to use the obtained URI for development. + let sourceUri = "datashare:///media/file/6"; + let displayName = "file1"; + let fileUri = null; + try { + // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. + fileUri = await fileAccessHelper.createFile(sourceUri, displayName); + if (!fileUri) { + console.error("createFile return undefined object"); + return; + } + console.info("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + } catch (error) { + console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` diff --git a/en/application-dev/file-management/distributed-fs-overview.md b/en/application-dev/file-management/distributed-fs-overview.md new file mode 100644 index 0000000000..aaa8235b94 --- /dev/null +++ b/en/application-dev/file-management/distributed-fs-overview.md @@ -0,0 +1,39 @@ +# Distributed File System Overview + +OpenHarmony distributed file system (hmdfs) provides cross-device file access capabilities applicable to the following scenarios: + +- The user can use the editing software on one device to edit the files on another device. + +- Music stored on a tablet can be directly viewed and played by a in-car system. + +- The user can use a tablet to view the photos taken by another device. + +The hmdfs provides a globally consistent access view for each device dynamically connected to a network via DSoftBus and allows you to implement high-performance read and write operations on files with low latency by using basic file system APIs. + +## Distributed File System Architecture + +![Distributed File System Architecture](figures/distributed-file-system-architecture.png) + +- distributedfile_daemon: listens for device online status, establishes links over DSoftBus, and applies data transfer policies based on the security level of the device. + +- hmdfs: implements a network file system in the kernel, providing cache management, file access, metadata management, and conflict management. + - Buffer management + - After devices are connected to form a Virtual Device, hmdfs provides file access capabilities, but does not proactively transmit or copy files. Active copy is required when an application needs to save data to a local directory. + - The hmdfs ensures close-to-open cache consistency, which allows data to flushed when a client closes a file. Then, the latest data can be read when the file is opened on any other client. The hmdfs does not ensure real-time consistency of the file content. + - If data written at the peer end has not been flushed to the local end in a timely manner due to network problems, the file system flushes the data to the local end upon the next network access. However, if the data has been modified on the remote end, only the latest data can be flushed. + - File access + - OpenHarmony provides the same interface, [ohos.file.fs](../reference/apis/js-apis-file-fs.md), for accessing files in the local and distributed file systems. + - The files in the local file system are accessed in overlay mode. + - The files on another device are accessed over a synchronous network. + > **NOTE** + > + > symlink is not supported. + - Metadata management + - In distributed networking, when a file is created, deleted, or modified on a client, the latest file can be viewed on another client. The speed varies depending on the network status. + - If a device goes offline, its data is no longer visible to other devices. However, due to the delay in sensing the device offline, the files of some offline devices may also be visible to other devices. Therefore, you need to consider the network delay in application development. + - Conflict Handling + - If a file on the local end and a file on the remote end have the same name, the file on the remote end will be renamed. + - If multiple remote devices have files of the same name, the name of the file with the smallest device access ID is retained and the files on other devices will be renamed. + - In the networking scenario, the directory tree has remote files. If "duplicate file name" is displayed when a file is created, + - the conflict file is renamed "_conflict_dev_ID". The ID automatically increases from 1. + - If a local directory has the same name as a remote directory, "_remote_directory" will be added to the end of the peer directory. diff --git a/en/application-dev/file-management/figures/application-file-directory-structure.png b/en/application-dev/file-management/figures/application-file-directory-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..2ccc93278cb82842e21730194772a530324dcba7 GIT binary patch literal 38447 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/file-management/figures/application-sandbox-file-access-relationship.png b/en/application-dev/file-management/figures/application-sandbox-file-access-relationship.png new file mode 100644 index 0000000000000000000000000000000000000000..184a2659c642346fa5ca04873049933688ff2377 GIT binary patch literal 40127 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 F{%<_-h}ybL{vnH2#OR%j7pQ7fWp@4W?--VsA@ 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

`nTpp2Z=PPp?4J?4!xg2l8a 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 diff --git a/en/application-dev/file-management/figures/file-classification-model.png b/en/application-dev/file-management/figures/file-classification-model.png new file mode 100644 index 0000000000000000000000000000000000000000..99ea098fd0fcd87f9903b21acd1945ba2e2bd277 GIT binary patch literal 56846 zcmeFZ1z1#Hy9bIQq99U|N{b+^l(dA>-7O#?E#0G_A`Q|l-5?+xBOu)^IY{@=0}Kpz z5BB%{zwi9dx%ZxPZty%lGP5^(ul26A-uS)0_w`ed6UV|J#Xvzp!IG2^Q$j&O-A6&W z*m30|@Xd+$q9O3#1$!lN5tPE7TPwhaOQyoI!YC-kA($ryXu#*Iwi255C@9yPkpC{U z+GIaPL77UE6cbi)(OW;YiMX*)1q&IeaT85G<+JE##f#ZxibV~7Z8)F(svuzIsrVOb z&nx`*vTuu(P~pDak$Ku1Ydd6`CPGQ|9M#XehxIlCzT_vW_AB>|h;LoGgm%e64DpJJ z?Tzp)n$ppH%{++hCcH2&H!tr@#(7FzRoxLJv{p0XFg&HIt2*ka4|C4V%MG#sh6((< zkh*{%|MpwQf9bauCA$qHnVFdd6n!d}J$1pB=EuhB6tZtVkC8FPsjWYdRz^X=VN6w2 z9#(shZ}rRu%Ijo6`KSQp62^%Dig8wH16$x5xwwuQ%iWDP&)w}S)!=0jQ@8=c`-1BEEH)?R~Z5NM}IdGb;6^Hnml{fcQ33M~6O!zPAQs~I(>kh*8+~MwZsi%%* z>;BzGU~;tsz2oCeNBl;_A|T2KZy(Ec*AbYrNHJa^J#(6c=>+Y+d}W_pKI1Vi)kOPRvcv&ihy<;Pj@?y zWo-<1UR|p$xQv4G7PCJ)r>Z;^Z1fz@nfoQq3o!co^&32dIirs9b<%V($03C|@^XkG z8lTzy;hxL)Oolid`mSaUy)HlEG`x((yNddG=3@%q?z{@&D$Tl0aAZU4gG(rHZvszU zm32P*m}sV1<1(^8dv?iwb_cccg!~fL`AW4FO9+gZG{(&ZL*z1+Gu)zE{j@hdj;M~b zJRjm_%`R~A6xNszm+@A15~AR+BNsfrL?SS*e0|@(DZ%{0L!xt0gc&KW_DSul?(CPU zmEYn&l03fGkrUi(h=yOE!-DU4xOnMash4tyi|9*i+Z6Hyqb|3VF4}l@)^0q^Sr%=S zhxth1dMTUF>?JvtTFl3u$(m!LT){v-JD3zLU$Ln(2P-_GSb`FI;Py1G`i9DNsol6? zSzYr_C53qVI}{r`^ED?g_M~>6jKOtgs69{~CLo`90K>=|8Y$qB8$`Ku;e5KL%AQG> zQ$^+71gM{9uiJF?nbN^d#HQiKx&mo$!q%O6Zm<*P1U!Fd&pnWl$_0k^UkVgMd7**p z7Z=wH83bWBC7z-`#6*rO#EsDSKt3s5&I+gL;qk@8lui7D!JD^N%@s<(Y?OtykdYYx}>!bPP8T)OZ1R4qmflA#qVSQfX_11a;74enu8w1oo8Lz6YLP2; z1h?!O=NVB&pj^5FNHvU#)Ao4A>A3838ME$mvQoq~PY=uJ{opcY^o?C5uAEK^hq7#a zqsIw(S+KH-3h=4=k%}4e6d32_U>x1SMwiz+z82DQ z$p8g}eXhqIF8o)1(RK~+ql8E^CO>%{!hLC?+M^&5sreW=hvX>dh@?fhQG~WrZAH2!53icTPGeb0{}U|+rSYcKw|;3BG~cj3ngt)*ft0?ZcR7~B}?F5$QUSZ|>? zwD9k@KU6Tgu8xADAYeu)Q?i3`2>;X{NQi>+nTP_duaz3OaKTJX=zq%v6@u(o6qFg% zZ{umu0KC6%A`+xT&M^ebF;7ldl~L;Ab$*LCxl$3A9)9I{ps@e;{)?-<9VxkZw89+U zZ=?~A z4&OZpeu4a0ko_)F{S&11vPx(!feo54wQ4~s*NsTBz1OQZ+{GUvKdPy;cQDRCjZhgR zhW#tNDZ_Hrj7j`cJxZC5MI8O>Xpmp5SEXyR{nKshqKfx`WqIjcuaIa6y&{pGOW@A( z?AHQC{q{)Yy@&KK1PQm%|9tFe8}jX_;_O=2e@&wp`%&{u8p^T8XNq5wDPDSKvQLAY zG4`!)GoJU}Dg`c#SMYMon+0zW_=H?sHo^tHXI07i!gmq*Ws-E8bQh;LQY<*`*Ss+-4ZS7k zG&}c_aXORjMp>#9@&Hmi&@oayVvvAho|zMK=kqNmLbXjtAtuDqybEh{y|Ntm5Vtbc zU99@y(}4JHT-e$6N9X!XCDUnZ#0c>q8|iqhtijs~?+E6w%h)I418m@m-BicU_8|UzHFHGf*VLuk(koOpd9ktlP&lh^tTGfN63`_1&`k0Q_a zJ6A-W_bm?-@1r^hHzW#4*IDnAk#)uwFB#??8^0tE0^ZXG+YlU1FkBVHDBHKvzE5A!Dhm0-+}J1oEpnm#=_WmltkjyRRD z(l@)L-C}?D*I2W>+bkI7VQs7P7K^d!uFXp$KAz(GhhIMy8<`i~9QvZ2*u zrVy3`z05>!@M!;0w=)Ab&E?xPM;g9s^Qqi~6+PN#2gdMQA=j3BonTJT8=8vlQ!&-? z;E8;>mw9RxV3-bw-`09Uxzw7Rj_7C{TVLS8!`%Xp4+FzJzDfEJb!XiHj;?t}hA?s{ z9=niBv7$%eZu7^;C_5`^RXrCvPd!NZ5;w?bW36Y=l_SP3v9h{)VdBm6)=c~r9s_!F zQN^*l()tgMW_4G+{WpiXiD{zAY>gi^SVm{;MDz9Pe__GXR&C@Npq}WgKB-$*NWHJU zE6}`4cUaa~inL3}66PhC1BYlm2785tAy_p38R>2+4;ZkcvOUK4if+ftl zwgzIHdv?_Xddh3vS+AE5WU*aqNFk6rC4HqZo3|Jl~Ch0479@6JtOrq1n>$mY*X1r?T zfU4^|Cr2I)J~|mJ6mN~W!(6hdJ-bg9|5;r7$aYR?`|d^oE9W%*K$+(J?l6r_xs8s7 zX`ptkBJF^-UCg>pME(5-jxI)Z;ZbWKwtg8KJ>Fgl)nwXtgOvu|UZWt^s^L*5a63%k zasRnx@8~BQ$W$Zs%&V@B!!U85ir_Qf@IGiO@N*EhUjnZy$YmTaFMuS8Y3g^{j;*Md z7F6%$x@g@Mc()E0Hnv+)2L;8^)*Njtlb#K(b%0kJy_f?L$E6PYhg@F%%A3OebyH42$R@R$?&YIs^w@twJPy{ z?Rw@!x0!RAM@QVgP_tk`py2#mov0+lV>Z+yu@#b6bcN8ynQ#Seo9yUhJ~LUKxZ*Gc zuI{OHY%ho~nM@G%g-?XXpW(6TyK%C1th1U^m(8NUi#L9GSYH(0U{K4KRd@NXeqDjP zJcTCi$y7`+>^++}eN+4-%fn~guH3a`e)Xt|vCVJMZDQEiVmYlzcQrx@uJ3fRcX>(1 z>LrGq$>5EmLEinY0uGJpHxH%l8VnwjLQP-OO=IABQRig6P8WCUt!QT;JP3WV(iT@7 zp~dhXlP^J0ihiSWswpHeIFdl1ciKQZ)e`IatueaNY)5hRQ5$lHi&~!`OA?)%Slkmi zw7dKk!sF?aN~RA7O*=)-9k942)%UNaiIm7X-xW$QM_5=;DpyUQx*!N_pEGw+Qr(HAT(&mvK9O$PIoBKhZvx~Z|%wzaub%)i((0Iz7YMpn7PPual5Q1WN<-=dw zJ4&fBO=^C{$S&A}>$cBz6k@AELir-pt1G%ltzz2!U`&=;TS1aLaqe*Y1>W65_^oF= zUy45=Ch<<|s#zKxUFF*hDg6B##4qd>zZGiS#9Za|XG*BC4Crxsw{}`+o}f2hN(O09 z49aO@E)^$PY>PKxHq-IwEjWK-DTBeW{TUp4w>CZtG1{HG8a3~ogt4wTV)~l)AQ;C@ zv3WT`bQK)Yc(;`mn0~(3uj%(OzOBtPJn^rP*Tp%z6@FcS)!g56QT1TDIxD1-a65sD zxWWWHs4`FD9hj#mxpQr#GV9<0q$Wc=!ka)WiK?x#=jIZWxl!)+(MOzJgu2_L-=4UE z{kpV{3e%$XbN&2T9?;na*ODQ5ieV2VUYd7`PB?Oixd3wPV=tY`yDxDeaw4=9*c;Nx zOHgG~C$1~X3p!{w>j7WZ@I02C4GD#NpDcDHz$e&Of^AnDZ=Uh3Od@v&1U%*G`do1d zY9GO=nte9P*rU7t%px)kui7n^AC&xT#}+Y7y`JjdubBhgs|qaL-@zBq$GpVy4+8kW z*oIi35vZ8Qlq@nyc8&CGcl1$ba6DA6xVd;z(2?DaF)Jv~>r zDNE6GYv`b0=K`*sY9TBBuq!5@wt^f$m@8VPZVw7w#Y^osp2_>#synDsoOqh?PTe0Y z-g(w;6TZ@6M1WbbwgIW{tBO)V8}j6o)^GJrPkgyKAJ(6euTa6<6SA}Cb#I9Azfc!R&0+T*u4>FWWS z>yqRms(t$W2DJ*8Z|^~%ce(wx#L^^~@l3Z_miB15mDdtJTw0+jc=u5OgJ(|2e!;~^ z+5LGn7^g^~o|EyJoubH;s^=+LrstzqH3z(yjSzI2z#frR>SQ#l6_D~mqT+$zn>+s? zO0@Y`ci%8(;Um0KeO}PU?B-*G!2H%E4sKa;gSbp(VZjZZ2#&6JavUgV50+X8tO1)- z{Cp`*ORv_9)!o!{Qdo?v>87lg#f@h*4*t=Bjb7 z$`xM-7;U3tt30Wb=v-W(3H%&gPsQEaF+VK6%wb-PK%~hkf6h7`w6dSS!(%7V$A06t zMMyb7b8K)3hETn$GCeHv9z!4mpc2V1j6EF7%!oZwpy=*BYk&k;QI^6bpOWfmA!% zSEvupV^isoJF$f?)2=~+Oa6?FUug@=m7knV_MXYDb%d#tlB(CawU8@TvqD{;j|o(a zOq~Q7v!+vM%hfO0LTgw#x~p9$)7|5^vMA=)y{;F+uGZwRw`!^PCUS8Z;f{7?X<_e^ zpOtkI?~{S{`)y=M`K-rLEo$UU1q@(PQ1p1v_RMIDD|heiTQiGryG-{n_}D_JcEXGmq`=-gR?9TkClLq0z;{ZZBec$jYedMH%-QqN1$i&>1=M z-d!j!AriimTBI#exk(ISJ-5rw6TsTU#|LLPbXNe!$W0LUj6qlo1+;c=q}Vg zGh?WMSr+U5w%LH2tyl1AWISDKvrGeIsil<~aix^?WWPJe6+;4=44NMLu(H+qx-_wC zq;H!m@{6-z<@mmsy)(i+VB%BNC|3twVzGqVBF!31$3@@aahBzEJugqx;Vz<(Q|Dmc z_Y;ZqM!O~EMOq(h-w-J}`rx{YUn$Erbdc*ja=2%kZ(DSm;~!uOU@81V;epShN_s3r z5Y5`csZkP|rWTVO4;E0L`FqkcTt0`e5N|c~>0>rX=#;6LfjBmsKsB%@#ZMrbBacGU z745`x#_VzD1%h<*Zx7glrTBT$V_ZST%D8KoTQDlWIvTM8U?A6JfB0)Jn>f`{&M^{+ zA-t;yK@I>L>OfcTz7_R$AMFqx`gs}`z<%!W`ep(zJBO;i;8bDQA?ilR;KB1%>beO2 z{rIec31dpxZMD#B+JRC6r9PymTTyRuy2YHHmyPwvn9k5MChc+0HEw5Z+qK?JKz7cIp$J4|0L;ZRdFqg16N~NIqTaRJ+Op zzw(;0w*f|1OfGft&hMM{L^OMiLURt88IV3H^fG4Pcu7Wc@PfGf0%H(e6n+#sp*RPA&P8C9%U28<3GR2G+|ekPx>9w6G>|Io z_S?%J-2wRc%L@!VzMo@Kx$xnZhQlkiuNWl8DELg;w6An9uv$VD@x)Na1%Sh6`4G*I ztUn(>4}md><)Zxi(R01`{v2$khI3nK{jCYLDhd-iAsLlSrO4xNqN0ix@wxXj;!^($ zCwTyTyQv@y3>d&M?>dRGhxy91${>6J-C`jqlFIQKW{Q1{;|y!d+IQ!34? ztLkm^s4-8*7^voz%-G%pzI$=C+gq|G>nCRV+sFv~zG0^SV(x4yny2TIMLNyse=G;} zHZtijiyeg;5R7w2hbryb6K~_ZSE14=4aE1qt^c=m1b|nCC=9#(y?Q5KA39dgs4#)z zJC5d^wSJO=5`oq5QMw{5&x7`d9p+!asfC*_)!p*1G6Ty3gn0xB;-kmd`3YPM27os$ zTT_&NS+E!u#2P{!C-G?Z8#c^@ULFxlx$GHo{PO*pMu@UA!;8SencN(KB7Oz+3PZ44 z0p<^Rq`b4cnpS!pxdonxlpgnQ-u(_b8|P4(#@le;mz2?SeV?o~*A*7Y`M7)CabjYk z0_<6C(<#%$cC$uB+SJEja@s?!ZiFU|ApMq~N|ozSg;n`8IZI1i*S(hQJl`lftTeB1 zQm?}u`cyxa+uso82D>NHD_1VY5|PA|*_S8eqJ$@p5lnKbI-b3e+h@`JxhWzeq=^$9 zpIjrMy?_tE*5^CpL0rEby*}D=414n#hqV*ZrhLffS*;Gg$zsWy2{iqnnb!oM^m~Me z`UjEkBnaZg8MFzVzicu&u7)t`y~ia)OgDauEi|rM-X#+bjU^JL0M}(sbC{FX6b>YO zd50Vb0is^xU%mV7L$t7TUc#H3^`>D`JjMb(N=w+%2i~q~oLzKnWSz=)?9_1dZ{F(0 zPzn}f;0lon&Md0DQWD)+k!c_(Y$9#F)EF&}E1UjnvuI0+<2+qz29ojj6N(?@TwP%; zvtx-iRc-PRK@^5gozfz>Vt$-%1<9&c{jpnR4gb7ixH*)g^R!pm7ktgkv*E+ynRjH5 z?QAt$(N@iNj;q%2&C6pGR^vb^MzOnywI!=fr-6Px-b#37?Xq=q4=N*FC+D50b@B*y zcnDXPkRiY!*{ge6&n!hF)c*QJ0jBCnLU7yB6*{hYkTulvtXwFA{@aFZT2!o`OJEJT zpC;tEFx}}SI`U;kDqm^G?655_5%}vN&y?qj5*!{{gp|Lu+;_?2IbLY&V)h(Snf|;c z^kG1iS9kZ+0WCHMyLPh5Sgt^4&Wbf5jGaAi_Z^p%lD=+(t}=TKSWR|e1#_M3C2+E& zIx@PNaz8EWaQvpjK7A$4qgE7Fiq_X>!jKTn+Be=AliknMtjS)`=*^H8u;K14EC!pZ zjrMli2)Oz!#@i!Y9(8R(Efq$GH*m28TD1s=<4inD*8(a$2*k>1!|_eI!Bh4*OWwD@ zO1@E}#EYL>)QBUR)viy#Y?x&<- zRUF_0)7H*EW_*FW1U$7}=!fAgT1U+2vm7bt? z=+g_*Hcw}?Jn?EfrNm=Lb<^W3VBLnuvrX$1ZDrTvi|*opjR16FyFb-q(*PxQzuzrV zhn_Hbj2Y=!ulTr-J;uYwu8LhX8_D@SS#oGG?K#+mRy-~PUY5}w;H5w}Bt&=~xhDpLQL8m>s;24Xi%Ki-k{71Gtw8C$;zsTG%oXt54lz zdXimM#p=Q;y+%qFbz509qPpC`MTIjxDz6j5I>{Cw)U1VN((|`HtJj+R^>xXASFxMb z-u+cWGKPSf73O$C*0+jZV>xM73vEc;wLh3|)Sl0b!AKRPO(VZs?)83J?GoT6EJ&n#yQ&;M zFkMnCT&B=h2DGpk7frE$cN!iwRIBDwUGfSxqagDx&No*AsUl|N8i%$y@dNi%ahh)H zA&E?j#-;Q24MCsxWDTj#bg9zBrR-Ep{h)<2)4hAXksqr0fBH@gccbqczU|jk^tf{m zF!+?DeMsA8BznYn<#Y}@gyX2KF=9kf+xO^YC$=WE_XMmL{K#S8p_2}*W1vX|NCZG= zmmZ9%OcF}^=TNRHmr!gg@&BB~?a4yV7qMXfbQz>NXyvcnj5%)6S@}1(EZY(uFxl1Z&OsSg6BTb;>4| zomrZ;;SdORAfh(bt}i@P)2+#TfJ!cB2kn9{#dqY)tXsm30Qf<@-U5yL8#-C)U z@lC0}-lc~=?+F(-cYG!vQ9Vh8&Q-0vw%T(%OUEBl zzimwFs~aYo6yMI`r}$SRuelu-?5981l)%Ny_MOzUdxcfxC$}dEO5D=-H?M|(WhKWU zRXeyx5AlFgSeIOgJy?*#@AP8rVbo6b~tcm_DYMZ!RiM5C(O1ST%Rj zu_ux#c!IkkSxTSY>f@FnuQ`oWbsT0!wOo zH{3oLTPZ6Kjz{@yo;CaS@RZ6=IQvMh!-~wN_g^k0ZwxJ9J8>4_1bifiyDV!#-8bNJ z+5j*V-D3fGL=>gd$w%!+;o7+GJPjfgU>9*I8 z=}kH>#*_1$l2{2`D z@TJB|G&HEP`~Hid=(~2F{ z{4hoUOXs(+4r%@VDx~|N;r|pd+P?@Ie}uB5|va7w%V)~RH^ z?>kDdbCiS$eZ&vMH!ug8#1OWx#JKT` zQuM`Mvh>M0@96s;%2oSy@ArhqFB+3!FKzd#_%|X75b-=j%hB3K2G7I4fnyK#v*n7N zFCoADOGqqKLY46#C7ame#zTsLLsZWc-sWlC^DqC%eE?DH4;Iv~bOZLE13wN!=D7b0 z1E0yIG!*!Smdw0(p7;Kzz;UR5#)FB(!e86$Pdp{^Uws2V><(}-gp+)r@`eK6j{FZE zTNJ7huhIwMPd`zOyALYO7eD-qc>Oz8F=HE~`p2gG8wUZ&{rc^+{zqHse<{*JAZf7`%T#b2UAf2w>b1_|?-aOr5lP6;JY z`el||Yvw{O1Eqy2y)3%NPbnWMH{b!07OmfB!sV1+IdV&&kb=ry*I-dm3_nNW+hOoo z`1H7z=F&957bz#jpH8E{3yXn64{Qr4G=tCo=jR4&m11U6P~tur(3K1XsXi- zzC5-#ft8jLo_X?)cUZ@U)PEwr_rR%8xA@2mY`$WtP&%~s-p>Th&yG5S1=LqLdDSy;l!RqY-}@(es9sG2|UqVqI%RzQ)9J;S8r3*Bkv}zbSZOhgaFouk#Ay zI+RNSUjMX+lmHOGL-fxuKv)4~4yM)aqp$KZUg@sxz)xp~ySZ$d$pIIrE+WHQ$12_; z#$MZ)L^?ysbHXG5OUqS^GsRnsD-5WHz%_>C*O?jzw54ryhsekQp>Cvap_2Qv50{P) z<9Ll4bJJ2y{Q0Y$o*D-k^h}S?Y0p3dntzygCU^0-!s@o8Du?cYJsB_htJr>rY~Gro zNs{TaH?Xa7JJjqjIGQ(Y_~n2FCBtbOl!WJ{CXEf3*_Wh+R6^h0Q36fqC@$UPom`4K z<|7;(LYTn_;+U>RJ?xCEe0Ps?%kT8H-9JjHi;Rj~w?S3;D->{>FFsys{M|>OiX)f@ zyw}Wo2D;p`<88|P*K=MDqEA%VK&Gc1*XIJ)JBOdDho*#tIJUp>$*PN<8)M!;xA!ud zLRPOx2do8FH?x*uPOn9x-S$*XuJBH;m_da=v=#xgdOOZWb=4vz%|XObJE0euVC+7K*JPT+)*Gm0q5r_?sHSxqmvvBn17DE}Ei9iBCpeNzr(o2}jW?+8Gy(xVITF(nD`dXsIe6Em z0s?L{FBL4cZbo$Fe)US^Ei*1Z*|dvr(Raf<1pF1hr__n#Z0&3}d3Q&*PFx)dkkvT% z<;93~C8d)CWs5$!mZl=HR?R=b0;knEv6g<7=tlsGmpEc@-BGqn(>Ph|vZ zJn)XJGcshRk4@+%MAk4iPkOgt!lNol^`EA30ciRyXEYlxk@xQrIJKtmeJOVqH^c** zofEaSD6zGP#`zsla}ky}#G-9>jq7x+Y-^F01&6i%BN$3feD!+2Tw-vgC&5%ec=aSN z_vqNwmpXoVg$p^9JN%k}zG#nl)1tulo<7$t7wx09vn%=f0{C1SPjHDAl=BKqvuW`I{l#V{V`bb=_@OI+#rlqr$ZU3{Cc)*K8+67I%#w}fgtu~NslC^2P zBXe&T^J-Ek4&cf%PEAp7#dQo40sLDaBT&5fj*pF}VR>BuA@~{K;(m`x`5E8(igt!S zKFuWGmYOb9tyrw&oOrD@H+wx#U3&gz0SlzUIMblZ%HDCi@Nu|Ww4@?|n6-2Z;htqK zcUKEboFOH!72o;IUsuFU-<6ookBq(XN@p$|YeiPY=A%;CVOwWp`rt(3#tIgTAhRd_ zceEZ@2!PJ?Y&Gk5mT4uU@cQAa+YV5)F_1J=Iav}2_5awZCNbSuE} zLS$qI20!3QZcFX!?++Uk4uq?Q4-7x_dY%}Rr}W^4vhWb$Q)LmJb1X;V&O4^1gQ~QI z`F5Jf8&yh_G|Lz~qK_(GwefY*Pgce1d2atMN)cRLs&lAulrEp2Jsfxit#J$xAoe&^ zTuJ#4259Jb2-n)xC8neBGM2OS&^--q?lX-(5HLQgVRg4Fw3kI=cLLf4r^%X_GW^B%#Kl+kd?VZ)9(zLSm=|o)suU&^@-*8%@ma@}YLT7~czK6ySXF%aOV8v(*l!5JM8 zYw@k0jyj^Kv&|>(KdNwQdstSN9;x`Sh-DC%mXI$rx;<%H~v&j@i zN~%;O5TL=H|CvE>XT|vT=A=wf{o%(wfW@36@!idhs-n3zNH8f$FDdT}fZ%HmR*Kts zyI4O}&?2CM5-3_iHF-Y0{*iHc^HvQ9ekXpMXYC*%;>-|s%fc#w-d`%sL&S$uNwZ?* zTB5ry*B8$tb9JMju$cPI4f3kK35(V4&onh>H413BMcl*jCL5_E;mOyoVR_h{rgm^p#a$bn1BQwU`?>{r}?i3nd+MIMKs{itRvK+p74-I%eOp>M8s#A7m zTBpkDdR1r&8hw`Q*sAt+Pu#S|b@_#eezCurW-s{9aW}QL@FkMy?RN74%d<;Pt3y$) z2N|h;YtbA<)r?bR%0#?T8LWu-TDu~h%qM8L3#(?OrGh*tPJO5Qu{YF(`L!vzC%hQY zumOkxS1vt}F+kO0Lw|uaLYzdBDz#D*OM~QPR2zw$Apyxzpz(b>cKiM2j0_tfeEa1l zalHsu$Y#_*;^uO?>^w$OZ<^a3g5L}S3)jUocHx&ErGJZDH+-b&_#=1aORtWDxxXvK z!y0CP_UbheEaWmlfDQ$u%*7m2qbT|gfCQx`OEA<{T~wkE!Qfte!?RQSYz44bza?>e z)~=vci!_vIA_{Rdeo4){la>HCu;{#TCSU~+Sd zHIK9Vvdt9d^%%e97SWJI1Hyk38~1I&#FI~tE496LMo?r+iq{O94wsgy7dks_PUqJu zI5v-K;(8ymS#)ELYP|kESNk94j~gq%6fULD(mfbfYK82QpE)1FLz0rsiPMrjw7X%Q zNego=-Cip+ad;o{IX(WsH~wufzqJNMcM`CSV>g*JCLRRss>ijy>V#lpoz4w3%X5IK z+BA~UnzWkG|9%!a8G+cLSc;{IpFXKMG@9JnP2(6foCyzDiu6RZR*BktEGw&fzC0cz0|9ZXMb7H6;xzqJpuR19Cd;}Khg^!IBU%?GQS5kM;GKt6YQxIth&2&wgr9j zymJ+GiFU`{zG!%Qggth5Be8gNbLtC@@b7TPzfEK}CWFt`Y%*^)PGe3m77dV8tdhkQ zEqiSy2Z8kVSF8CFAtPLP&WMxu_Ej}|Q0%jV5FuitvnM46!AA{wrne^64`505P!MRh zU2>(&e^?MC!pvnmy8xeG?F!Ssb@wdrD9q8ZZZhH;`82JmX`$mxS6-nNE+zz4Ql{oN z9-9T)J&e}9Db0v|^Y4Qq9!KuRPzsQAo!8oSSk$m{Xw(-De0{H4-NYvphx1eW%CbiD zO*P9Ro-2j2_Fded-9lahM2J1e&E?~S&C)(>syARiFbM_^ACWvvTgwVg__(-%NJ(KV zVwDR-EZPL;9-$H;_7qy~xFW=HDwnR+?jM>pB~<5jj(@>~tG8nx_22wh{E=N*eFOZS z>tLDnGw9kuy)UK_ugFiVfwxHb(hNLY1DjU(?JFdsSmSy=J`MdX*I+QVU!=k} zEVM^ZgsSa3Kyx0vs_A`gg;1OxVHF10&8q;!Kt*rP!7tP#svVvI0%Q4vb zW$28QIK9(v1yV?U?w`d}$XdKcUvRV_{4DNNe@Dr=d3X0rpM+3D({N3M*cX4z=J}#A zd?V%MD7jQ`=Nxp{oWhN{q7D%JsZfEdSqt-AOHhq*i|B4vu!EJbFo;!ux&-km&T4M@ z<$7Yf-W1y}hSPrt=g`94-B?TrSMZOkPU_tCSbWx#qL&;Chw(t33-MQ*PIlHg!I5V+ zCr+|{2*J`Y!DrJH@WjzAn1Uw2pZX7m-+sZ>KZ9U#Y?BU9*{v`?X6Z17xm*Vugtr>T=RuI=3`x^ho(Brmq6H&`hNrX zQcMM_-{Bjqk!F&XxvZ~gXtdYVqik|nj-PvYpIG);D3<-IeUGR)qJHgbKTG%qSKsDn zw6g${;CzZu&P`o3RA}wVyv@8-(Lh=aOBcn1Vm<2@Mjent#bXdACQNI11hLDS?{1Hl z6!aSG+rj#+PVhI*;-BOwWPu%hH>6Wr-X39CaQ|?~kY_PRx%=}W2{yCtaUVG79{YMN zN84Pc9GO*c!cJm_bhMYa;P${i2A1o1qJSQuk>+7HB)a*-0V|G#|SK7|Q*{-BioJ#TVh2ZqMXf8xpVhmZ3sN%e1XIR18r=gu8`Uv%!;Tw$cuJJB7c z`h>9~gz^3xOVC+J_(m_YK7+>YL>=9kFgxwpgDO~s#nYyprEzxBR39K+_g{ObKxb>v zP4)qfz|Tajl2K4x_9?J={0bCZjvr(yQhyYsZA}7uv~9lERD&qgI@gD}U)S`(v}sgI z=f>lA0^l$B^RIF!fJI#uugQAbwa;^OQdf=bJf8qbCQ%5F%Hm!+-QMZz6YrJh40H#{ zMRpRvSsJVBC#n*UbF)lb_&aet1Ub-C8ZOZAFjUn_5jdK-8QiLGs)XQg8y01 znVJxRfSlP*chWBDje`>S_Li1NO#`E&mmyW{TEdV1JQ@FvGWm$9uovktatZ~!e7Q#g z2cIGIXwLW;QU1OwH~Sn^z~gwT$ZH^E`&C}(nA?$JBXX32gy%R#XiOc#2(l?k!TbB( zEcFgT?}6LeQOsi7J%{bOqXjz1JM0dM2iub>_c9hu1s{}B|NV!h>HwZQJaMl{?G+qW zP(oS|u)ct;<7%Bob~x|31}lgXf-Q+Ir5?f6bpAZIeS*LX!19MFD%o%ENHaK19Kp};S8sV^|_NReM8*#9TxnSTKl|8YL&4-5GJ zC-eR!eg8?D{=3P%z?Cci%5|dpp4$8Ot`pLVpLe!6=lTCbV*CHK$?E?TS$29#WD@#U zY)J518wrA6Jw$+J0Xs+v2HMYLeBRGGlV8m^REOTAmiYW^!=XCl&v0Ju0x<4>&;S^a zHSfYd2>=W~I|uw~076iflD+;HBf2R@`gi)QoHw0GnPLL^zdaZK&Rjr60Xm3ve+An8 z<)Q-&`XBU!izqJ+&&lVPP*509e&a3tPhZHr$cc}F;_>j?K#B8EP~N*JuwOv=gnnN6 z`K|rV=bK1sf%~@)vsg$;3w-;q{pPRw@=(&-mNKEB-0=HJ{6KcD!MW5dJz~2MdsP@m zg@ihw<&`Sivs8y)ZCt)Jt)aZ)AC`Y{IaX6cknknt6%73?m}(H<=gdHko%&YLh%Ad3y2bhYJ1 zK6n$c{Nm>HiCFqY+O8*>XrXufn_8(OF{)K{9;O>!GWzg2w=MOafvQj(J=wVE_sX=C z^uXG~uk|Bj(8R7diub&v*X9oPDU9n_R8f}@CGaNlUYR>7W|z^8ns12wC!gzKGq>@k zzb}dtd}F`9EX{M&SG{y`DNG0i`c|pt5to!!KB-f}C*Z3{AJ@>Jaql%w&cmzh8fq8P z{bsj{B{ICN35alVh#QERiWy4GWHg3D?nwC_C?Ff(AS*2H((s&kE>REZgkH)$&V3v ztMXoqUqh`s-EZ~s6ax#T(mn5c8iuM*`+-WQ6rj?HDkc5_eY`m9zAEvRa&7V!Ld&+w#nAG()!Bmk~2vR)^`pA~%^j7y=&eb9bt=QZkIY-rKj zSCX8iG{vVr&8}A~>oJ>M#98O%@#)z+i%RF+93R$!J5_2)+P`Ef{9*PY_3xtWe{n9w zn^GNZ*Fa~AyHC@sPq6&fHuXn=E+G3EEjMMG5{jFv;RjCvHhy;Oe%Aqbo$t#|SHhai z?q-ypqx+_O*3FhLuUX6dA1$j*4Q#a{&TPit`29uc!mZi&YuU&!yEovOsoeQ(h9F}wjV+JNg!%3iBarR!FQ64Z8y{!3tn389-`@x2_%~XFGwCgKD1!>DWIdg_(sC-420|L9)(Xq1v3!aRz z08Lbt#Io;2`CDTsaRIRwfkDq>9beYOCb;yn9xMuhl2@ne=cQ+Z{1kWWTwPacpF98w zxfpadjfSuV;_62bje#1pvLAqwi;2qTiLL`JsOa^ZAmUeA{O`V!K$D7TXzVWGeXsr7 zq)GA5m1)Y4nU~xE$piheb~s%n>+T_9tvTsB8TBW*IyvqXNkEk2x9_^1oUTB6xq>Fn z*gYpKGVihi)8rVv*)qvom^Bx0cCVb(frTDp2m%9r8Aei!+4^=nP#ql^5AsHHUdju0 zF8jK%74qvvzBF)#Q*bpNUCujA#>go_7Nyg{w>T0bcoE)GeA?uA0j=|+l zh8H7i)S?S|>1^8=!pGQL&jk_R{yx z79*II-a8Qc(5gKm47!?k+%LA$N6zrQ77sXO{fK(!!E1xHInO8H(Q>+#4zmTE%KV#0 z<*GIbRSvUT=uLEAhiK~SVlfRR81LOQEwgn3u89VU&|;P1=MF85647Cmrr1A#>l9iy zL-KSGf~zSdRX`mBlDwcdboOAu|HjsZAKT%dOf1vaYY_jQ!p8BpuzUVI0$ zh~z1AT^5_$gyq=&JOb|Oti;t1s zdf@(bV9cvk2@@+3Y`Zeln&i82E$e0P=VSKK@TlWGdACGUGZV&ElS9R@N4rR>+=+=+ zuwBb5M;3TG3$<=PvN(0E;LIK`Jlav`gSfwU5DVRGy_p8k_O{rP;WQw!(o6Ct^8o1M zm|j?HLiGTz5Unp4k$EjsWwmSk%4FewJ-Qx`*Av>ZYQauXw=G6%`pB(C)37j+Z2mTB zf_I(R{VIBm*P>KWq%k7vBzjspu0-Asd6YoLDqVq*uHNn=gP69rWH-ETG^NOk59L-# zS~$=vuXz7aVZWlA`C#DIBTZ_wlYimL%rH|7=gj&q4wqMzi@$^9j27?|nlR39DJd)S z6&LR#ivsCj`SH3&K=)@Y8l{HE(fI8TR_KeiILu9oChT_xGLkCdo2f_7M$rwK++3?; z0UnE0G4(xnSph80oq@p(2zMaVhG>@+;GRCbCQp*59BuX`k8h+TdxT>xzJRf00sfA& zY_#`Tl!d?;FSv!oc9+_@UC+_LWw*3af=VTJ&zVV%l(Q3iVV{ZXTz}BM?$AoVFFFj+ z4*~jSNxR>ybtJub1xBWN`(s|VO`~|;k2(l5YUUlcIWhKo&@#q)(MX_}aC+6U0jMRs zAD;0=A*Z{f`rW=w!v}R(G>y_Hy1)j!yz`*s)GXD(3>#=%bzZ+by`z}OkZX2eUC-#* zBNc438Q(Qe8Mz%<#@qbJN37xTDCInP$oy4x7(r6b%L{qFnJmdQGYON@j!ayERaPS( zPlzX6BqsCtN=okRdMj3OJH#o}^>QX<@ZRkDYAwC%rRD`pG8>qrb-r{p8M|^Qn~yQU zr*|U8%u2B-N;Nb&vE}zY?f6)Ym(?!pGmOQMA$vSy*;{M#n)+T&Hzqp7P=%C_nX~|^ zwr@HDhv7)gU0|ooBF7_wO6e2pznfI1S;vJ9&`C0jqmzW~dbIMSep=1tyN#SXH!K~n zM3SOOmRbkWFUvun>Gh{;)R;U^EM2|Wq#ZmAlAYwe+)v=*!$2cFm+65xD!}F@Z$W^Z*)oqpODH|`{!q2^xw`TrP z)}ue=-6&ngP5-OelqV7wAb6Utxa&mM>)Q-TFVMd-HfGyZ`ZDi&T6Mg;i^qq;1ocEZQJ7AaQ9|WIeO*3vwuRp3v zZRE~md3LhZYbfL1vEU2BX+71e*JuX#MOUVKH%L`8JL|NYGp@WQ3l=!ot~PI4=p?;m zp;Wk$Fhb`^?-KtMx^pgZP!oqvbS{Z4HK zc9x!LY8@S}iSG8|X8k(SV*>_Im$x}0#@3RXW%?tXbyqTi0=^xGSe1#Hfz@H#16Ick ze9E%SP5Z3Fd>V&?Z$;-IYj0|EiC$|dJZ5%hQEi|1y&G-T*5|p;z0)D7FiFl)Pr^~; zK39L7JZ|}wb3A|&FyL3SY$q7UrS_fwyTPjSbP|VYmf!Ms=6PHf`)%!u^<2(j%x1@P z|ICVS!p$0&!_vjF1RX*GGyUMtuM!JK^FCKQ?=o|9@yL$K?fAgy2jW+VPTCZhwoTpiJtpNn+ z0Vo&q45E0|r!^(QJNMnCYd?j$um5uT;+N%DcIB@MK6D)=a!bC>yr?@Oky=(;s^AwMENR*n?l71{=D-j;~bSKl%NtxUxtICyF;D#|ZUG#N_QgUEBlp z72ib4rc#k7(V0TBW1a1ozJ7$VzFVoD7TEsuk2U+>7Xz|Qbo&98Y~oD0xot&{JMDdE z__K;SCpI+rW^3l#?W{e(*{)Q2h0wJRdxD(|WOr>U&_y*BHDMDK7vQ1Ybkj zU8@tRWp^{QFRGwlYQ^8$_fvm-(6*~T;y3G3Y&(#taj{Kd+)n7>#md3exZEYw{$r4# z1B=?5;0Qi?0;nM)zKk}WiW67N2am?qOLkl$KKfbBtlm-8lBSNh<;~!blb%p`{~sP2Ynejg`VX_DiPsS;|ZjJ@LWHWvZyGY zp&hF}!C)S^pLoZh-1E8Mtx5vLcqt^{)Rl$O2=VjXBHPK%Icr}%JR1-wdowk#j4$zuxJpXCuP0POWjjh=`4+1x$teD6K9m+pK&cKko|OyReY zVm8jhG0to&z`1E5Ly#70SMqRRi!B?Qf^8XiL_KNmnDuzb@xI5A;dGAEcrO*i(o6YU>N8sfKe z({G?ae7JcZ%h?i2XO#=G0lfb|PLT?*^5Aaqfm=U3FqUYZn@1nF0GCvO?K)sGL2k zn7-`uTv$HzCZt7O#vkxAh0hiJ9PK}Kd_Bg$L@+`H-MJalvqrjxTwLW4=T){Nm64?h z3OrHn>&M$^xlPt?IO}?>w7p7H0%*?>VPbl5?wd|46oE%iA7lfLF}&mD#HVm zzw?Ek2E%M8gI#Mng@=sf7NKrBgRltKWR_romGw!VMOxmkSC4T!kMXHliB1V^Jgg89u%|jHA1X_g~|u z=k&?Hc+HooLs>8Kj>wj%Pt3E5VZljF$O{~CcKi8h)9Kem;a9kxC4g% z4?+RfVekRbFJ$-s=?_$i%^8V^HlFT~=C7)Oo(w-e8iQ~UIbi{TX9Pbl`TkiH#;Y3v z!cF*}QBr(B=IO`JRv`(Xr2-N9A^Qi=--U?i`E%sl&h1c4aTfbi|F; z;YZw#Zydp=mS+n3TcjTOU)bsaEN1X?VTi!Z-g(C-Apd$@+80|=@gcg6<-Zr+y&V?yo|rv#V7i|#pzvS1>@ceANf_ky`Jf4)X}Djr)vxYubaC=%aH;@_Ad zr2%_9nw(ETzcHNr_Q=i*yjP|Y9q29@g9T}>T&(?Lj_Z?}#U;W|>ZfD+2J-vm$&Fwf zKJvJkzzF14@1nxQT)`D@YwZvgM zp>7OWoh7sU)8(0FkTslcDfW`39R-s<K9!mfTbUPhyA0>|*a3?e~{Mruq_N78Yd+ z>H7Oxi`G86ER?@#Uq>xtR~DtH>o%SJ<;eWyxae}J8oQE`92ZQXb7d~>IN{>diUyLx zOiPU-r;4Da(&h>D{)fW@7BuR$D4xtgxB2DZj{NpgXz%Bb9`S*ZIk!9>RfdpHM>Y3R ztEWT9bYgN3p^GtZR&|F~MstWsBf46L$N+^D{iFKZqvqKR`p9#62=?*5)NXn5I)={$ zb9wCoOFu*~%6d-PRthe+neYCw?#+AZ=a8bp8xpQ_i{!46{Hd$3uHN>EcQvuCX*3|`Np@o8WK|$O$b70upP5VD)*^x%X~^a+*T>LikOs&Z|l>V zB0Wr##Zj&S2^h+6@-x+tP`5EUbTL)w^5c>G^7iI41$6WF=4*IXCvx-ic4L18J!OCH zo7s35+n{`}Og=%m<}>vpmAr<>-0gaXqNxx~$#sg%zi&<@^!N`{3O6Jx>=E@?%#2!) zCKF`*tb~E5Yvj@xazfhCK*`62L){he=?X7__&YWVJ#Rog*(evX=4i3hu_-8P+bB$0 zRX-(9_wa*b;p*f%YBow@bknu!FpuM`RC}3~8Iyn3vMtk~u&2meFZNN{3`G0B!DU9# z3x((kZHnsTE9()$bJ86ib9&u{6z)+n)gO#)Qgsw9Ti*L8J^0Z8;_*NPJY?HOW7sgE z0oNNbg{U-XRZFY>Cq+z2uJY%tqD8(+xy{hLPC50)%2YX1x2s> zT+8+hR|$jl;NWOe&XaR-p|8<13U#XO%V_hDDMb==@z^8@w)XUJGRfL&BzX1C&j=4X~d7UATry}$s+Bq-77;0+o%ufH{Oyecsv5m30^tyAs#ZK{>@FAm@ z+(+j@e+=L4g9UwvgU9JMf0!DKQ}|R_s6wKkr{YcDU?@8LQ7L^&=y*B(3rmR z)~jb6dSYC+9PR3bEJ!hZi+s9F*AH<)w3+LN1&pv05#q6f?{L%?J7KoH6#Y?y{7dxG z2KRDH!u4Tv`SVY)O{tqcRdgpi4k>K3IL0Lf*v=6N7w=FN!K6Mnn3g z2AIu6(1yZa31y|kBy)2Mw)IXux=gx3;M?LF>f9mS<2Pgk7NoVQ3Y$*#ufsyzrw*BZ z`3!=hJ|2;c1CQrEG0Y|I2d~zltv0mli%Alv&M5&*VHd`%(j^*Jc{S9oL`25&?1FCh zsrI4~CX$SV_&1hYskxGh;0=T0lDfd~xa?^;vw-yk>arD1C6XJUU} zrtMS$Dx+`Y6)PmrYjSrbyKcU8%GiRfDBRH!o5~nOZ;Um4II?ie?NE)k0^kM$qG z2L`uh^yfVRMV(~(%5mBCmqf%Y_#77RPs=QrP1m`BSH;OUR!ygtlLk$(N%ZQx7USO%rK`4eeo z{9R(yWuLJrn)>%%@-db_nPT87GjLaWYe70Vp=H&@;1 zyAYVnr?a`TmEQE$Gf=B#xC@!$=mMN6>UeA9nD~V9aVRppZUnhf7YZ-5OW6Kep5f0I zUY*P|ekEEDnpJ>UG0N15wQqkC0*AMKe?VQhon-6yc=E|av8*YILfRE+<91YqbN2|W z+;FvjC4cGK*AGi}n=_R|``KQb*r2Uk+cF;ONAohl3buGTYFw`K+TpOmX~>LhYX4C7wOFug?OVE#j%{Ib4O-E#qKZ7W5YI!u}Ple6%FCTwns+8-5=}5 zMlUqvPR7HWo`r|N=n`VbEF-q(b>!Z2zSGopavOAFD1MM+OY_v;qGBtSIi#m6r_Dkog&igLha9Mt}-j!p$g5OJN0$cz>3+j~}W~*#D-)Q5STLLeBSdD!BNg zTi|ZddfcbOhmpb`lf5}Kt8zRL<~8LEUpMNnKSBg;nsuL2Dw_1+`F?2z6eN|AZHq3($eJJd)T5 zc=pYeeM{K$3UZh`cl4G#Fra%;54IjQrk0n+h!)IWpIc{|(}8RD!%<-nt=9uvL7t(e z#v$VY&3!GQ(^}VVtdN*a9E}-3%J$uhaxQglmecG;q@@X&xG8yz*J?w}`RCcD1fn;p z?>c`odDPJz-WCwpyrFYH)pe@gwZmM}FDAcaB}0E8%)?WwWsRYOskzt5F6-?1sBOdX zl?eSLg=;~49)-^2&4^HG>mMk5GdW-Lo_FHxaUra)avZXaaG^ELedBIXPDa};R&=O| zZ-OGhLGF_3Ez}A14e?AI+X7C`Ew2OI?DiyIKR20d~! z&?SaZb(T95-jeV2>1+F$a0WgvSl7d1_Iq9asm^}H z>}a4Iq6D#4%DUX!0{Vmr1QdFH+EH*6^E&$rR-><+pPAd32ne}MKPLsXKNhUHn^FlZ znUkH8T-!2VKk6szGSk!XJ<V-ayMSH@O;ivP?-3~cfWVy z!S|V_9|Y&3z2w3i8E>6DMX&^!m+wXKca@Y_{}4tveIBWs>`td=@VWGdJ@XH3M%LGG z)INL#IKiC!wb2~qKQQLvcC?P)Y`0&`NxatdyV(iyEB}%8sOkNQPyj}-Hy?4O?zxd} z{P`Ncn6Av6xFOIhV9$Caq^kZC3z2Zl?O3C`yXYXnLI&dCzp<)~z@o;Z&Yu$u?!DHG zcuw6{#ouqRXBGofm7e-vTEYL;OtLm8p6+YP5!so8d2!XCUeg6!RDAMm*nslFL!|DSLrmE&nzG0JnSrT(l=e` z*$SY}r!wNnS$`s@<&F3{?YnsH(LMu2lKH7U1e?xd{mJ`nnR zn)SrPqOZCdQr;S0dQd6hdyM-BvXVz{yu6`vlIy}{G4==Z7!|pv&;O&r9|zA-%RdHd=JsTnOyKz9<=@BwEx`~cd3$pdqaGA-)@ZUY9a%1 z>AD=Bg@1u@~*KHHeS)?!b5OZV@OxuVEG z;;}RZ<)ObUAEQan3^_UY{A?V{+au~lq-@vgK58qs+(1|XMtn#jD;fUffT#Y;AZnMD zvP1m#Wxk|Rw0k$Ag`6xsW-uATZef#enfb68;k?%OEi{S7ySGPt1@;9&&V^st7YPLi zRrG!&A$L@b4Y`taWD-e#-gE@{I#7dr$Km%Ay8q?Fo73|)2cY_Acke`KDNZ()*#zT} zt}U*sIbO>x3n;3kBJ+jDCI_IRWq;aVM^(d~!MP6pJ9i0cKmdmK%*;&j>N%qnleXK9 z@b|eFZBL>L8VirPCx&1QFRZZD3FS7Bg1x~kP?Vn?#(i!1Q zuf6Q~aW#C_*S-MWLS=D#=!s-rqC{b``7d-k!fu0SWx@oGZ{G@1%h~U z3;B%_x4+ca9kD2Q_#xjvYNnlhkuldnsXtTI-mIk?YB%V2IYS|@x!0yX^)7ZM;AD)T z^Te~Vq?clNF>yM|@NGOm5H-^JjVq2f)~<36X~2tmCXg%NwA`vwIBa!BqRSVP&o6eQ z$hGS_PiQ616E^DaFLuEFZn<7rg|xXQD_4^3Kx9!{@%8?GmKzDmqH)r8p@n*p5sNQC z`iM-X|Mf{wkrZ=TB6m4Qzugro~Md`tKTPd@0@z}ZV$#9tdZUx3?ps!xYt#7kd}XNn{pNuE ze-gY#)pJO)T#w2lf%9U6G_!IHfl?(*3w+VIwT`N)30KwGBu;qwP0Pc|cyfJR7(B4y zC2n~=eDlS$NnWJ+>3j{|`aTx(AB`N#T5prPRDi%#GkjO^sV97vyURKwg;HAu)N+Gl zG0-*V8bMwdqA|sm>qiolX&9ZE7AmB!u)sbY&DnbEHj`rT=~$gI)#^S?f16;N3V;F^ z_v$|pyK?k65S|~WFCVzL^5s>~vGBQ3rEZOJuC6c(^<-4)mQvOk$Gc;9<4CH@A(TNc ze;y9?e%%Oss-E6!y0+|_7VmtsK2THNb38iJoDp%ov-AA9P)M5KjSTWybCtCBq!I;t z@BOYdZ>LGRfwnSRK{7#3f?y@!g*NyvuUbKo$N0?K=n@Z}3rZn{@QPl~kiTZum3L&_ zCP#&1@ks#7^0j@L65N^=90_NGKle?uRaGUM;mPjF@^|hY+z}cT631Cr{TqMq+Mgqb zK5?ds$!^x0?~9#~)=IILdlnXX(?WA4(_nT0s`ATWQSX-)U|4phRyxg-`8p#;^sz3# z#k)?;#6e|<;}K0qCd=9$-d>h=|4)y#NLkE-?8^C4d4s`WM;T`LnI$!G(?4HFjMl>Z z+ZolJ&MWv+$)Q+D+|&Ck%HmmM9_x#*yv`2F`0NDD!a0!A7;T{2PhS|?AapT7s^xxG zVn)yR=sH)sJC}H$Y(8k{BT4cNH|pY(oG7E%5kJEpniOGPIW8 zh`$3+#07J`8!~z(TJ6In*>R18Eqbd0f9M-A4oY6vCmoMZYl&y-BtG-1u0iW~beY}E zc*VNE?E+^Y8kTZNSf+fFUbN@#V1qHjY&KgdJ!MxgiCy~#?};9y%GX#2+@Ia|pes+P z|1A!uIb3cm#+xY+Zt?yc^^<0;jVAO3NK*ZcLim+F(YdFus6tEe|5A*OOn zW@WNhjo$4?@zUh{DDR5&=J>StBBYe>%B|7N6?Jv^a-{CC$afBuu^I%MC`7-{Y;Y<_ z&qpX|8sKB6eswQgKpj@bWni@sf2v z4TuLj|KoI{hVS+>Oa;aCD-z_+6k%7mID#$ms8~dI&NTw>2d}iHHWp!|B%szbE?yRG ztP!)zvr0#7M{W_6hcRBaX%$J`y39|&@sK3{Z6@78x|Z&`1Vh95MnHpbO0NkuCc1WztkX+7Wy zrCi*4{hkW1-dw&*Aj|=UGWGh{B11H8bVgY-DCeLUQ)*2)fZobWQ^rhDDT19%uA@s{f`cT z{hRzeDE1ve+T7W#5hqOLS1DZ&lrD;2-9A5mO=$G&SD<^Q_82C!1R>IxK_49-)>C1$f-@5Tfl!{5awDE8A|?~+91P!2Epme zfZyZy-+PY##*w|ATKH+aXD~f5 z*D%h_N%?ASs@GAY`V{_@nqU+YufQwnzd`Lt@Wy~T`(l#KH-e5wd0FfVL7o4_NII&T zFzPaDK!;_zh0{H`dFqPxB`$CMqi6fEtu4%k@8;2rcNtYmcf-%e@%vqBeoRcv zTq28cNlc7+xB+e8K{Q=!$aZ^duV`?xl zvbtH)D|9xET(ND8u}gqOX+rTiZ{TxJPex(dUD+cimoxp zRnoGYq2{wfN5{r8z_nS2w)uKzf1nPSIEWT*%*}d2!Z13Uo-0<0%zw>lNNqsqdyGlO z`F}@jq3Qej`aJq?vOL7o_?FK@5o=4PfF_2Dp&)~9pxq5*0g8($zCDD|eSnP5FS27p z`+Hlkb2Ki?2Ye6PdedM)41Q+LLU6U)4|-()=P_Jm3z&1O-7%*vvPGO$D`#1w-Dpmq zA-G+C_2n-pF10OmrU-Q3>L3($ae@=-DtRw89GvTQ+%R?C+V!zCh2 zg>d**jdS8PEMIfGJtxw|DSoX$h~_l)&+FEYBHh2>i|+|p58@fgfX08&4yPBLw7n9` zJwsy5%H+{~&-r-tMpo~3X#R_a_^Cu@DA!b*w8v|8YDjjU4Mfoi?6^NIJ8K*cTArTi z;b@KSOXg6iO%eID1Wb3@EoW}6glRQj>Z1an<)(JtGD~Pb`Z9JzOMY5v37(UWRSh_8eL!B~zAjS=BqSf^VT*~DhwK)O; zO#f5}lnLubLkES3el%%>3+GK1!gW{PZW^vV#V-QB-@S{;U$&2EXd5>C3P?dL-~kL47J2cdVer^=K%3)loA2m5v5^ts^Je zQFwc(bXrutK-2`9Gsll|=3`dd@p>Aa^CjSK37)!_uw?TyvcOvwgQI&v-mQ4K>%d>- z*pZV>Bdm(xfIUs>yr1fYP|RU*wdgNsz%9g|sXM7jgubNzmrsJ-Tqe)I`kuc2)|=$7 z{;i-ByNwC|>O?#8|LC#zUp(x;a4+szvNU&TfIWBOr+1J5l>5JV1pe7ux}&XAzPt)_ zBlbO4;%;Zp8+cz_L`=sQrqIWrsR56o0A3xs5L8hK;MF4Mq`top73t~g$Xh!Q{@`vV zDpc2TtH=P zGnyWpLBFod#!QAcZQs_ty*>NIKpM1aTVa*Me9Eo3N-Z#vmbUQvl<`8#o8;cU+O;9j z>#=N9my6~P`-4(2ImHd{Hr_Amear>$s?Sn%0nQSap@U{ZK;e2yI@u?+6@sSrn@d$R zRUHZyjItDP{%kZMoSz8j&@=CcUiB{r7Q7$9J4%jTKR2K=$d7oxIF9$v)sW9T0L=K! z$#|nESx%+}q;q$}t_Kn@O6CsW*Y+b4-e7XPa`?1vIMH?RpyvIcfb*?V2Sec|8Sb1= z`tRY?gZSVo!KIN+*q>WPF8Kgw?(Nc^tm(lV9R~;%ByB?q8Ym2}y-QNW^P>`d2+7mG zEB36vOgHBX7~j-(xl!g&;U`XL%e^=0{?xnrPUGv1@*~pzUkhKtyYCw|aB9 zing}4I^RNIlO#7TTS3>uafP9M)^IFd(*mUz!l2Q@M&2R3bT44-P#unvP;?zS`)+;= zu%%Os7@I84q{-At=X*OxlZ8ff(`#rk-%l1Ov z;j=RWGnpZ|iN3)}d{1(7PkG=S>-!izJn;7++A0`f+YI( zVK+y|^@*7y4A;}_q#UB=B?JP6*f z$J2T8R>>{A=81JJ3HI$%^_|_F-QB>I!X&DeVQ3X$I_v(khXdv7yh5ZPN0*&LP|xNo zf14})-AyUH_FOE$EessFwT4fmY80s5b7Q%63t>si1F;U0k6l+7f+#2$WouuS22p(7 z=)P%|Yoi57m(0y$x8QyG zvW85Z+QBJn5qDjvW}R~6auWq~O~N*NdU?ICJ#4bhmgYB~?aZvEjx#P`FYmg?0|rEd z_fvl{{48yM|?~im63ehK2ob&zV{(5wkQB6PQm?rnwtw<9AMtx!ue*18$j# ziVV4=kDor56ulshY(+M;u#@I=piR*s!ouW!j9-|uY~1Rwh3%yeo2eX{a^3kj34m*!Waor*3P%zdQ*&nOg z`(WFVaT=)+*$8G$i!%uFq4|QooV`hg2`tkvM?L*ILzR#sLDv4&9^5K&%_p6i1tqhe z(m~4xg>Gk3=S%hBot;vPb)IRrG{I!0IY^DiZ(ex4N;8oL+Kr?HN%&ee%&+Kc(k$SF zx+Pi0owe<&XNT*)(5uz#OcHwsI>AmwIQqieQX)C*aed>VFroEQBR1GILCg23y5@K{ z^n_m6T!Kp!-IL4e{gdx9$hpZuN;*M<=s8!Ac&2`vcCG8qq(f}D3H(fL-F=Hx6UxN| z;L_`G)^?V6?#>1|e68n???}`K7q@F{#8r#e^HA%wdg`VVYzjAO$Lrp>Ry-8&ykk%R zqs%l^%x#|%zg*MZp{aV~pU#Fowb75+E?O!sQ4PV1xr^-&E{CF#=eMH`9^Njwbu#nl zWa{}-3YNBvoh38j3RJV#zoq*-K%-5(p2ym{hSP^JW?kex)!ownPQ<)^j|p)@;_@lg?x z>?93kn-wmbX`QU~9twF&azC@wBgl3vF=F?@IlVJ70)Bu75XQq~)oP8ESgHB1Um>AdAYNOgZYv~Oo!oT#le($8lhVNM-fUg`p6y%0qz zgFc@jSEDIV-n;DF(rc}7UW@ZSvpXu(-a=z@RNsfNZv){bTCM}wZk>4;58m};$y=`i|K#O+c^#PHzWe?1p2}cMrEb;`*eb5?%u$x=Q z^|>1MKSCFsvN(~O*_dnmTHM^YIr2T2(Q(7(?ArXrd=3ta&ia%_ClW>8O1&iN%EnjZ zFBS9(GWz@8RgIH$7vvSD2WvxwpI$kO_Zi)0^fcnM8GL_*{OUP3`%Cv}71@Sgg>fVA z`Q$p*z>_LPc*ByjTKJ7?TW|P2VN7b%l8rOQHM2W%)dlHi1{Zg;=`&eaP;^ZyINd;`d33^&BVXG`h;bS${qMIQnVK ztzD%zBnBh}KPneGsc;B>%T&3hTi&kEST`m)C94Is6}i9C?ohEss;i=XhI&)xNnT#8 z$CQ5io`UhaR=WJ7zzmRUCd!m0^o$GDj;Y!Q8FMta)Mu2XJNKqb+uOI(=|p&>I?di8 z;kXEm(Di8SB3JR83WIgohMHZnXw!78CQ0*mfPtWuMV4(cMzxR5VhE^vor$$%kI7cE z34YECK_h*^?lj!w>0-#mZF6&%A4|}NZmcAqb`2_UvXC?WZk5i+dj+)u8dM}rJv~au zEXY#_Vwcef)3eYK5bqzB>sng=xCyF3b_ChC&W=0in53b}1*hopD@-yODbcDebWR`9!pm~n zx+yvp-MK6M5Qry}rdY!PVnU$*@3J$9YXy#I-uT53*~_6QD^i#XrTJyq?gZg(@A?pr z5<&HU5XQb|4(SaeJ$(pGU$7! zOimCw(f)pi-A1WhgB3>4cHPoDi4?z&Z7(ebkGTHr0z1hcKO4~!+IbQ>5&q^F{crMV zehu&cB~|24NfUpvUw;jn|L&FjtE2ztob6<~{OTJ2lX?1A{crCL?#y!NENwH`v`@mc-J`Kmflvh z$D=Yu2z1Wh{mTE#lf*9h|2tJ~fZjR!nvftyM3hX#lSaQYIi?c-?1R*!9kN73OS=>K zARW|L?vymr|A!@epv>FHJc_M2eSp6A$T#h;Au@Bq#7EVN-(JZ36=~)fpn9 zDysjes4+xrFjW~i)qlKGB@*T)ZK$~fe!2L%@f;h0i$q{c5~u<%4L61C$pGC_0$`|2 zj31&k4uW4~LFpX6`Z!fxZQp7mJ3IaBTPF^BfqDP}cXF+s^=WjN*Mz}IP|kZ5)KUJJX> zF*JL@eR_5Zr2*s(fH$M}FaKju=4lIXB_Vo>=O1T-f0==YM{&Rw5<77^z8T(K5;vFz zs_|CKGGxKCyA9?)nlB>paIeOAKTejUYsSI}kqo zQ|-fmg_^o|Vc%XvQsyz2$(!|^JReF%!^A%EX%j0ppR*FoI+mDD)pe=7;A+kK&9o-9 zXNeC*h{4mG*}MG2T9c=wJ`P7VR*rsLxbO($z)6dmAkp_gW9&`_c){jxp&CRZ1=>_r zP6g2qIzRKvDYNqU)&*mO$klp#EqHcCMh$9D`i16#a`(=CB|g)*Xc=+!ohtZ_wqRQEET4e&3U-fUkH6{m3x}_70?YSBn(qj-}Kw7`DF? zg>tHwI*yfbrI4N0cETu=L~_{ih1I1f*m;y$#$IzC(==~#qy_K%@$TY!{(iM7NR774 zZuXAW6p2dvaLStFhspCzJ`*X^xh=lk+y#-ccs5sxQTfA0MCQ`;-=b4K+!v-K=1V)8cnz6CvLumi0?1J7j#9R6j zWP*5i*d!<;V_)G=SZ5028|vQz>GVv^x@Wi*wjA*AE3J(6Ds79z50ir&ur8+ZZXHN? z{))bU!yUI#8c=B<|3+2-C$eq*^upmB%D3?D7ds{3>Dj)FJcPyK6AxL>Nv^aKhEG_v zpM`HuSNN|@PJ0)Kgd>YLCkT~U6l(NI(hn2)pbb~c2N~(VGIT?lvAGRntThVWdb9JJ z{l{$0LV0@~HwUD{p$jXEWPCLC3iL`@D;pS3_=g96+WFm^^cR9>7m~tfU?Nkk^-9$* zk^--J}TpQ^8v+i6(z-RM(V$L4x{{v6}7+qm*p z!bAMri$2R6#*)J4$>QRtvNSusBO6zXrU(_M6vjL^czeQETDI?!kJRZwyCVJa$=u2y zb6OTx0w8W~B`Ylw(FZC5rmJ-^&15$V1Z&Q`(auFgzZb|g^L@zK%c0-E z=SqL>{Z7SW#-Ju<^{aqOrDRi36qH}e$K!DfoXc)+RS`r-ee4Ke*~K`pZ!lF#aSmC< zlu<1gO?kEeO5ECtPPv-7Ww+UPt#@$boX+)Xo|=J`>FR}y{&0Hzn{oj0)Po?^oe{AKH4I=nA<$Lsrx6 zkFxUK!c{DzyxtrDAv=ye>BZ0E2M-O+h;U>NclEqxE}di>kit_%Di|3wk)&-*T|K&B z7bu%}?+0pVt%!Z&Nk2=cqZ`(+vIrnC%9``NYzvFBzJS?JcV`r7Kr|>X^KG;0a-*^e zS`hjJHiZv4XP*f3OIpTHAW6@Y0HLbACthumKSD%$ueXEMjh*fT*w7%d72JZ|t2e8q zGigIv?nB)Ua5GuG5urm#@C7Qi!YDOSE>&N+=yx5+S(IfW*U|eX1KL18XBiT27fFS&dj<=q}-MYgwpcZy<}lr1q?OpkznxO%F6rXoCH1G7_x(|8TV zZu(g3iQ~e{YpYiyBV{!2$5^~6GwXWpm1`v%?(I(T6S$M)u8-GB=EN$`Io(&`xj`358)gU zmchJn6L6Z(SnnF7PmIBcIE^%&Ux0dGwyyB@+CB;`!>&?sl#0YpHR^!16&gC8k)5V5 z;1nqj(VnBS$Yru^;s>Q-bET`R($3HYi>83r!HZ9QQ+#Y#K1g)4TfJN=s?xIwZffq7gU%->$$Y8c2!Cd^zo5%@ zYsT6P%Jm*|6CB~apsLhKgb}bg*!Hj@_u7XixHGl=MMdFgc?`c0&=bA^LI?hoRDtd3 z1o5YJ(Sz7T=bCUn9Aj20ybUTaCRqezx$lXc^C;QHXqQDTC0$~JKSnN(E9_@(y!N^v zvXXNB#KGVTe^wp>+dvufMw_5dKvdC^W=!Fc=NC-R{x8%!E`@=47`exfi3GPp0M#>BPn))B{~|F zlmvDQIUe0XPFrmX;3s8EN<{AL0N6oEWU%J>Kl9g}=M4w`@#EF3L`2MVcqPB}APy+v z;OA-mzJL9%TZ+TRn&7Las-GXh(@ZWfpY>q_hQ;Hvq>Nkc!&eDbh1XAW<7^uJfAH5B zKxE!$m2UbSuv1hh2$m&ad+cvb_xQ>70L&P!|MY`o)?bMK&pfk1^8#OzKiUF-rvN{< z$_Qq{zrPHg@8@gSPjoAA*K)yk54au6uLEB7+Q(m7XAlvc&?i7hz%7VBYGVKB2Y~Mx zV14qNA9>4WY_0G9Y9AA9cF>;su5^N!@B#DdNB9pE4aN6??&}^rN&-Kpf+SEPCMomw zcPdvOstcRhC+@^>?1{O0&KKq3UeoFsJz@|7E_ZKth8%El)p?<%pYMBjnuMfTugK2h zf`v!e9$H_jmoi8%1}~^m8pJeL+(FTw1&un7Q14csSt4b%+O=0ARb1<>+5}Ymj#`KB z<26J_72BnrQBS*B9ybSf#U8HwN{j9c&O#-YA&=pQN+zIqTl>c@b!?`p@{2*O z8wLTVD5)WP%{~*cu^489aiz~OPc$*EqMXn}r_t~#{BDVY4FUs^SNWg2wxiqzjV_2ZA(NvG?N7a{1kJclpy8PYqu#a5i zkur#k(kVWZs<~*#@Tr0KJY)T*=Af7=!ad{9 zMnB6&!ECBa`(!ot0p;Ckd%{T(KsLQ#ebU^$Gc`R{;rx&W7kg)ImPigR-(V0s z6O>Q2Erj5ig5+~0Y;0{!3i_Ao-Q?1HT-+}^1P9naQeljqmR*!{e@T#fKv{3O^~0zi z5K+s)??WYH!p`5m5zIn{MC^DziYv+m+L9wEyYfbE_TC(z!f;D4GBvx;^c>+u6lHkS ze?T_@YQ6JV9ZMpZE`H81Q|(J zi3te?ICiw0J5-+5DonI`tNsw0yl#r#GW=0EAEzbd3c}f7F#S6qj6?~WH!WNE^oO^H zJ}qrtu1_>vu6B(;+-zTIp7FSrloa>yy%P6am@u-nTpvEG@l5!<-pR$asMp8Fa0{Rn zMG)trl`Oq49x?!|$yNPN$GWEbxCY_!v~L~z?gm|Rjw@?~A(s=B`^zC`5s+d4rS@v6 z+CGr!2_ad{H(+X}?H}NA9-j^mbhuD;l)IdI*7V7p5X!iUE}yC&(EHV+jr}c+QsLYM zFCPqhT0Ze zI3686P+<4TY@l4vnA-Catvj;@@ky8SyL7uVoYk>*UOi(s%x2!yGPGzjc$^U+}nOCkm82#ld#fn z84?@15|DllBCFx9Q%+ZnD0Kt~kj+B|TeD-$GyUcJijioPos)QBH?&|(&^tSs!9t|Y zmAT`aklhKx&p7*BTU9Ks)4uwA#PntN$u<5NPb8UXs)1&k^VC(G2!lko2>r$e!xScn z!J?X)n@?9ID>oDFxCQea9^h!c?^zRb#uX)782)}6Y}hFw-0Drh9C7c`SNQHPa{BZ0 z!?5Fo(TYFI28IR@yeb1!msF16tx)JRi zTeBmiuyrp^Iw)A-IUafj$_Hj5#_G6AS|YSE+1&4R%oSKVpN}q+G;YpjQdGS6OR=PL6i@ z`a!m_tCK6JFx22t-QMCN4Jh(WVC(RNFjuC=lE1V8Br5;GZLAbi=`zOkT*WzU`J{+} z?V#GRVP9k8^;wp$-+i9{A$V`>oi)qexcUd1;j}Eyo4q%9mh%N#IOf%tv)`-+{}7`; zKa^i?))jino8LHWt>vkm7AHl4ZHn1I$@~?2{ugoSbC_0%y2R@ zQ~`i$FKHfEh!SG&F+dHJv4?=(fQDzN77U(N3UU4D-A=Kd{FdE0aGd8K;#H= zQ2%87%2l@K%@cZ~yj#KqU4;OzC7hZ!rq>@R?}+~CqeVdWYGLO+}$wzD@; z&M;%lq6sQnd?hyZT;c5bVD44-sMiuSvqP;4E+jy3#0+e~sHZk*FV6HgRvm6H9>(?Q z0|(sM!OwEUCCH7QcGPH-~1#R;=BMJ19DQ6SLXwxQ$tXLn4ei*v&B-(K=_RaWj_VZJG1>BK65(rE7M` z;rw!Voyk@b#JOuD1?~d> z0``w7%4KZ}^F3F6$_0n53kjPMyZ9#J=6;z{cGATfMB3AEJ`Skdc<1n!llJPFEAr?V zZ)*&+KBkL$b2@`}``y(jN*9B8oPtJcqQ?u1;Ye9yrqam7iUyPMg!N1z6?lpGN!pDK z|IX%xzB?cj9u73r-|WW_Pb)}h9Axl0LPKAmP{_J)Nw!OUNE2z7b`uKSMCCSBeNyY@ z4J8hCt#~@G)ve4s+0>GNoFdiBPG7s;x+>+{71|}T)ERHq(P&=h(eo&q_1cwXndlet zF~^Txd}yaK)Y?EIS^woELv;g*TFKA_E>%YaXG-+to4q(#e^o{^yduUySfE-v9L}kLo%FJ1tRnkUpNvXONXIg=#h`?2F+aWn&YZPOR$)YYtv_TPeW|27J!r z>{TbLJJ;gCqfm!Lc5>5B=}3|QMve12kkYVjR}c6N{?2?0F%o^d^GCbmq}y z8Xz}{i6*}RXty?>|Bv8!g-Y!mvKW~l@FZ9{*(XJjXyTV?p~ouRcL2pE9`Rl4HKK!> z_0IOMSV{zul%=m@-nB^tOh7`oQU1a^a%fzq2L4PJcgdcf^ zyB`aZhL#k4Tx8iY9~2j?#0U$krW383kJA(-8tl&w#AWhi+jjf>{1|_OBRR_5#gp$f z^P8$gf`TM!3uZQ#*m>Y2{g`l+0r@>Ha z1(b{O&de%WBUAg!hxCqHwYc}AI;-W*GU-`0;aA8zwWvP3biCwoAK7>7)*Y$UDv&~v zly9F$`MwB#eO6seP-pc6g>gUB(S-&A;4-dMfR>0d?Y3r}*S9JvS2Ip2Z!cyJ_-URu ze}s#(9dY3_#h+ZI?&V-~n zFGr_Sn`G@F8>d2l_nAU$&W^Q5R#;I(>n}HDiALuN2M57pvCn(_{%w!eV=wxQLG!Yu zdelmgVe~3DnbpI650mwtA-+cag#!4a(8dHi6W5E$#FMB7jL|lXnOXMUWn?7{rKD8t z;f`3j64{&0Q|ejke#D|Sy&&a#>E}{7n@^%v2I>1M3HWpN?^~!Z)bpTom=wPrVmLX%|(j z9(ORS#=pnKBVh$Tttgc~2kr`;QK2x#%_*^w5)*OtNcb)SI`>g?FF-^8kI zVpRYFr%@JBB^AI}*3Q7`2VzYEq6R!+h=*wh8vL5Qe~Y@mVp=x_{*VgWd2RSXQ zn}mZgAq|-wSV_V43fbXPnv`D8QSrFZsWQ*nVEg74-l=!_wUC>f$(mx;juyac#b!6{ zCanoQ$l|`vz|MA{_6&90BBCgp__|=ZYo<3)SQjV}w$mMlFECyVOHsNKJIo@9irmZ| zqvctS2E%xN?t1D5exetq#GXFxXJj-HO#7lNUjjNUBR&$k8Umhy+G=YpHEw*YN!Q_^PlvBDQwlGG-NGAX*#4lgT~Rg+;&N zq{X6yV9FI%6Y{nV# z_8v|^!AH$P4mpwNBBIVL*-uyYOWoO!e7WkwYR&)SFpU$^?npZ%ly0xN3{O|dsX2Z< zd^_7KJ)x#Bn_!N9q#j7mssD@|c^2*Zac{n5xK{A@BtzJsMfp*7;g4YUw?84dK?1?5 zT}668mbVsriEx*3;n4Xpz9+bf)d|SeR6sc~>~C5$*iaqj?Fec8Z2S1v4uZiL@+Ygh zR4Oe9Q6aDMG`U*(<|Nv6!xWGJBX)DZv>K-O^QlqefPSR}&QJ{v^0I`-Bit~OzmKv3 z73(enCg8?wboS?g(L~Ic;Ki6rec&v5eU$Uc)7u7orCl#~k##YdKe8@n2a*h6O@b|Y zw}5%L{A>{aoyJqhHzZ^aaQR5)b3L*sxVCe4iC}1pzIcJ~3c#Bp{N^5EH;s%tZy~_&&RYNEGYDh6P6da8wcrV#zy3joqF^&>zRv@ zqsy6scOgrUrvvwf4f0UdE0Jll*-+I<+T3#TiV36Sf^F)qMPB>Ep8L<7-+0c{6wh`D zK9W0J?a|E{!Q;SYT zdKu!gA_|>dpBvP5%IC8nz9d1^tnPErc5Mjz#u`JorrD_@=8PNzizcDkwnH3b_&T$- z^FSm0>I3RoNFq z&C3qGBc(G?)ZDN4R^95V>Y&DNp13;+BE$QTP<1(;hC`d%0{Q@#Mg#j2rT7f{f;_8% zZ~i3v<`MfqpN{5Un7FfdgNR@7dwCU1Jjaq7# zXpu1m;eqylYZ6h^qi<5#dTPUIMh&T0aH6ejv`5SXZ1cW} z*mB!4K&0_S;;$FprcRjMzi}AQutw_WSvnC(*{i7FAdjGTb_>VnSvk&372ViPq+aHOQ;7ndYOpMGXip#u{%>g8SEmi^St0dClyl|dl6jfF zj*;*W4~Y~Uwp`?QXRtHAm;~^3kjXN5l`CZ|cH+(#WRRPu&O#IgAX2b$hnSHBrIB5m zMbF~REA=6U7PTsUr&I{<*(ESvZey@Uk=ONd_Feb)BXi5J*vv%s5oE@RA8EJJ4T72Y zZZ0)3LW@ZY4=XK)CHXN!8R-j0oLEwH@@4utsWBBbFQjY+7Jacd9t!{Xdb4>-@5O4t%7{`fpruyh6|+JB z4dcV4bs5%+@CWZF^Pp{xd<{P+eVzW9N!MNhkKq=9vddmE2RU@!%sj$GO$uW5CgLfP zB{Fe)OjMZ|IdJLmAD9rh5zr!1M#nA>h50g8`UK%~Tgw@b^vsVCu17nOsw^{G^uK%4 zA8ZM;yEk+HkzF}Y2F#2u6r{34mhESY2v$KJ(6#YuztT#|1-*-vx3pKDZ_&0SNsX*U zElF~+^|DPsS5ZXz%*ZFTSIqn4|0^B<{O=}ht66``K;O>`j1k8o^Jz1J2-QC8MfY1| z-!{twuVuTjJveBW>u=7woG$hjn+sP3R>EJWFIFtZU_CKH-||WV|F1T{NF+YI6}V#H zEG^$wfyBu00u5^+q1)X3zN@qHuPU~iRRpXa6IxWUMotA0HS)7<%dWurA0a~R2tv0}{ zj2o*Z>{4eLr}yUn?gRYrRuS|O=kp~tc~2G+cC32E;{AWbf3#Pu?ti^G(EE(%HOl2Y z!>s6>Hj3+e{Prhb?>{k}qroS48KD*C{}B!Sn->O1#Qz(7wTn_Mw3Z`&?#@lwoU?+Q zurg`dJ&YL!K|;QDwUI>6s{5|9=!TpeE0ZN6H}Z=raJe1I=})sm=37MpH`Hs%sVY0y zO?UA);1J-+vaP6>KwO+^fmGFUP)%_{d|ON1^DtU?X24jfPmV(!9M0zhb4Htn{5YZt z-dNFB@3EAR4lI(-%$gl=dXWPo#%jO$#IG4UW&=4g{gmYBVlV8q-$-w7{B)S!-pEB6 z$?zwJx{>DuC$90f329ovOw5fx#bQD*()73 zQ=!wjcCKC%cxs$i=0xSsf)$=@)myD90wHW~>5tr6ft?z7R?dzezz2XuP z04(`r|Le;zvvDGd%JwWvz(T4TaO}Gl-`ugpzPVV_`BfU|w$D(qb0r9L3fjKM)C^Pj z5u464-#pAEt}r16ZJ^BWLFR-Q;67NDs|!j^?L@f8wYM9= z@aq{9$M;GrXv7F`oXr*75&nV9vVAUn{o-K%TMM$1&>8Yt*T4X+xN7J)^Y?i~{U?^6_eyVCJkKMA7Pz0km&RFw%NL^Tgz6Bn2fZ=AGDeIro)Uu&!)FuZWw}77EZU(K zpg~P}-ju>E^L!E!)=0^9TjHr>?vL0Z{%#W>OU&Z$9cP(rULt+Ym`PSTh`_Wz<>KOk z5qIbxY`ywQ)1ac$2nYrrn=w6pvZCRW z#^d1Gdjl;=D}=k37bbps!bo%k-7Gx_QhXAfmt9zIwn=mExK6ZHuZLTa1*Vcx`^`MR z;BNU<^Ef#P2KZgKV2Fy?@bATAWKVF?v+aiWchS|lj1Rnx#f^&cC40(cm*X8z#2_ky zu0Qe~(qeP{68V{x;mu%wLb-?TLm^8F^cz2&fR3Sb+spTXC|BA*DUST02cXmX5VN47 zEd=!2gTMzLQ6UcFBp!y;rc6`+(cA+7l{c#HUr_Q+!!xFV|$c1TaYqge(mURT1m-)O16Ls8vY_+LfzNFf|u0Gd#?YekU%yxdyWR0I6Xq}LG=-k60|N0G~>Qwrn|rf<#I z*_ux~Y(Fj_i)pAw>#HO;#(s>zMT@108V)-9Obb%EKQq-idqF_E=;dLdU3ShKR zp>e`ch*)Qz&9RLFoHWVp9+}jrr&hjJ)%X-XwO%+>^1Wx}WTrRNg2VJQ#!kU#6jnn` zaew0@)RvfhRwvGv>#h;!S_nScaWbN7avIiUYhM$Pr2{DkiJOJuG_>sWC#@4R zypYLruPl9ES(ScFH$-C>uP;GW9y1cSs0Re4@SB*`i+bpyiWhs>BEKj+YriQCYV!Sh zkBxAowyRO!CcTqkfI*-p#i0{ygzw1RV2v;Np7@Rt=33q^;m=L}zCohC>_%{~iz}`- zuv@b*W_K~XdP}j5!qgw@Z=4wm`1VGjPQ*-a_tZ{`L|QI3Z*+wQTH}Q#?Hhboh#}_f zG3818;$TH))?Pz%-ww!yT37?CsWuw+@brLrG=eW@LzgS(q=Y1(?N=!)v|G{(6H!CN zJtLV9KqD=SZ^rk6-iojr-vc@&#{fU6nM^GV^WHrbipli{tH$Xn(}F2S`r()2BFC^fG1L*lnH3E#7hLFW>SC?c><SM1E;0KbH6v2Aex|Q1nP`MU`K#yJ_QVM zbE~P)p*%^PtYlHIo5tLv-8Ofm9E|k|J)3-8KxEI8aDBACz#wstu8fEK5$kHZ!Iul0O>5^Y z>p4|)dcs*dJB@x@NQH~P;k^pYhNaJ$j(UA@88f8N3jr;MEw@2y_3%mPI0h zRB1))kCc9H-S_BI`h+|01P}SGLY;EPp=?E2#;^^QLWsrGKJqH4@LPO&;A#Ae<$I#2%gz5oz>i zR0KAjMCWG9{d z+-FV;8_ic-Sy^d|=1?;Q=He-7VBLs`O;H`=EgWLvOfQ^JI2yFIxIxU~u|@{TK>aCY z9cnvF72-L~ipu4|+^1O@$j0&%o6Y`e7cl5n93t*=4wma<#_{Y|E3{@G^cDN%s!G+h z!M8_oqlj;+hgw#)N=kByXg9X=W}ez)={Qw;2?Y4SiQ2_yifxCx`PrBwqyptdGK|OM z8nNLxQo9SfnrTz^s5v=gdB0tqjC&hv`-e4I+XLtoym70 zvTX~w1xn*(i#?Z?=yq&*v@<%KaE+vUJc-JC( zcu0L87)kj|KcB35fxvPF=4r9+G2k=6 zEIiXCnbsP=szVxSig(-{8kU`#H1dEM!L-gvP22eY8u_rs)PVpdWEzfd2n&=y>Ox42 z5&L9(gpAtiMvQuB%<=KBW36Br$cbA>B&&HcBM3ET6!KZp!Vf*8{$mNQ0`bKe4+=-2S324LvS7e1O3X8>{RSzH#y4m7e zV*2K|c>xdUxbne820NiHA_+IGQ&)e*w)&`g`eRy0%-QF(lbHBS=-n0CP(%jKy!fHC zQJiSN_i+azREfwR>y(M50YO^ICTs1G-}vg!#zajE>&m($R7&>q(ZE9SPCxPrRn3LO zHf(jZ*2sd>mt0$m7kcqDhSbpJW7=}x%s@beukQ&QPBTdLXce3ZUGe{*NSn#Nj~+A1 zd#ZwJ4Ah~u$g}Nzo?7G3gEO85)1Os9^1Zzo!^EHB>VmgaJCGb;jZ4t|;Rfy^$nEqz zwuUkcQ;+LY(4pPfPt!K(i+dcTY3r=d*_2&yXUqG;I(73W7KD&zgjrH)^ZZvn)Zl*I zzU&e+e~7M;-B{DHu~1$I(X3%k%+6+ejZerA#pdoAEOE=a?XqfEH&g^&C0rgO>I8GS zG%VWGGZ^(RHTIrfD7FvIFrT0i>$zH`)RAW*^+0{mKZa`Galu^Vg(1+pefo&|ZvxL_ z*bkew(*t`c%)nY+&`mi8+_WdK$`KGpAf=zZQ|EMrz|nD*{fN_tedf3&nIQN(79#ja z#_PpbZB#NYllrVdDTjV2!{w{RC@hYcF}~$%c>4u@yX}{`x)R7FksyeOdD*oMx(ax* ze>%n8GNyBL+-;nBw=>;wTBjP76@5dtnJ=M+Ln-gW9<>m9UGi=AG@U34Mi2ZN;XFii zmtolDhaCodVcNCt!N-;Fi|VcuA0(RW19}a5;uiYd40jzqIpi)7Du6)u(sHnQhyE^C zUiuAnj88-}aAZvE42a*@i1lmf!QIcSi+pAkmm{x3r0*J;VREr!wto?VKSw})P7j;} zji63&-HW;f%Gq;Yn0z!kdwwx>=-vC|#P{EA)*S*##L4l4?%YnS z280Aogu;R7_y7FsiS=Ah8R)9PY3`e5LC=9$=v`tox&)LHbYJ+Y*?;W8OJIo=%#@Y} z{i0wX2YL&HG-rMh(1!s1HQVhN{BQWO)d>(b`g=Ta$Zg_vQ{MRh!=oxq$j`!}eu{I9 z`1_yvLO@?K`t89Su<5MH`t85}$w;E!86aBxu3xJ2_dnidKvWDEYda7|1NwS~d)G=q d4^9|ou^1o@xZQHhO+qP{#ZQJ(t{NDfW#%}D5_bzVit%!;z zvZ}JO>YS{stn>MvCq!CO2>K_+Paq&5Xc1w4Sss^3IxP>)_g0 zLmtd;hwK+XSguw?-yCJl5y)kb1QbLY^+yt^)FgLO`$OWELo#RvLf+X2CNYaTk3)9* zZJP84a@mPx5JX~hFQJKM+`wU$P9L*6xaNU>L}%M)XJ&PLzqGV+bTo84=(>mM(WW(I z#Ng%sS}xm-8AE$=bZ9XM2?z*8zd?-#e=V{=e)M0(T%_*o@UJ2nC@tCltKD`F{9b;% z1e|#yUIJeywtPcdE^Gjp@oy8)x))*HB{={A)EkUtaXD>yi1XE&aC~|2_N!9>tF7YZLssFi~&Frv$>|_$-RsYVotC26{pssyh+p-OXIFh#dj z3#Jvd%6s|A_P1#%73MlLfBM1d-u`)yaIvs;A!*D?4IsQ!XPG2cyZ#Wm90b&ajcNpA zB#>IV^DFgdhabR7p_-bR6=hPhWNW3(1oU)r-$BE4mvt0A_jAw&bC-1SCVdP#DAv~h zbTMJERyvv;v)g*Hf`&v*=rLK)B60@5JHN&*mCkhu=S82u?cv7aa5O(T77xSmXWHtf zsM<_*G+U%#0^#aGZV>tpaVoi_UPRw1-E>3%4Se2f~AdA`y6jpiOmuaz} zLA{KX>BV1y|AFUxei7i;>n@!|JF9I%it|F$sN2CPr>+M6z)5deE9hdwcF>rhryOR` zD_#wVZr?3e4g6Ik5XK#eSB^w)f`4IFp}3Na*V7f`0)GnWRy9VY0jW&BRcSblsqUwkl0x1ewN6YvK3@L2 zsX@#*LlN%TZNJqF_l+8p(VcC(HhA&Oqj(nF=uA8>rR7i6sr+6jCyDco_Q6;6q}NXFZKuOOb6kyCC&) z&OCKuVXGE>hmsiWe!8J&`zh05PL2{!Y9_^R*Jlhe>4-*q6tYu!zppHtLgB$L z|7m|w;!F9I>mTt5@Ar3f8Jam%$}2X)s;k zO=SPBp%^8nyo;BtjDknFItb^RWO(Rx{I?M!tASUmDqdEs zMV<_|8Dl8EN*x^XJQqBheDMd_@?$nYOtHvZa-Qx;BnlCS?16e6_9Nv~0Mm|uQy&Bt zw>wzF`Zs<3Lwt@VG)Pe>%#qwS93eTAE7FhjbjKie*LyuB%AD#G=gz*dH%%on7RrRjfurWt8XIHP0|1XF z#IXJ02EuNp4$2_$k^;VhQ2uIHVIC#;AkCYR&hzF6A?l|V=iyaPSjgnI|r z^uoq>IbLYnxwj+EM#xu5rtFrbC}~6FLR@ePneiOk1*Tjhna1t> zn?1H0gjKrfpDxk7U3!>vSL6s)y!goW*rzq?@&s%Y4yYL3`OcT#;Wr5(r=13NR9!F* z(IhG*2Ho>t5I>;cp%yzsQ8!ovNT{rYYHl0Yn{~mK#gcd@QrvDO$Qm%=F1R8NwE%u{ z67*VL;MBN)5bU5fxM;>PD*zsOXzX|4Gaunifp$l6t<4XTbk|*nbdz&_IXzTg6F@jw z@KkVE6?We~3{%$L?L4OQyEp}V8paHAmW^m+Ls`AM0GQeJ38dB0vuW>4MpcgF=%O}F zKw~L`t%HLBbF<7VK=O>IXp~Kp#4SxhUY}1b4ByyiHbbPnjF%vIAdH!Wcfd?;fb` zpL@%S6TZ_fk5yaF`3o5*Lt8J2a^F2S+yGX~HH1vZO1(>Ea-SprP7>zUJ=kmy_n{P$ z2-Pxx(M<<>CPN5=AdT9B_N$;a373a8iAqZ%g-)ypxn0-5T7Oi11XChP0rRKUyR6!xSAMrTapNLDmsz@!n~2;_#?4^akiPNFXe02)3EMbX)c>EG}4+N=lG* z;zT*JnoPE+VHSJTLGU#5nqrWI(EaJKA2>Td=SaF3C29Iu+gYaV)b_VX;@o!LOyPOdUD<@>pcw%Wp(SpS_rzda;H@i$wlyc zdo}aDa!BscZ+PnQL}r-zY5C$=NPg0iOriJeHz9tLr#?fu*TfLD%4&y^;;exeFeQd| z+$-+;@g8JdI}ldf6S#JwR(+l`bX7CN;~#Xn8G6t3Oz4v|9?VBtz?lcOY+GhC));iP zJcKh8gwu(uwzP!jWj{zBkJnl1Nu;&VWCXVyVUysn|M+0Sd&H4*I7@f7>4cMGpk_1m z4!g4r%N+>I^Fhb?G0df$$s*wMymllU+avfsgWNdYkFQAled>4A$0c36hIN^)cpQ6V zmz@EdqX}It+w)7DIRh7KixDhLMsc6Fs{_-QbwQ5-H}F@(v$4geenRg|Dmy~Xh;N#A z9dgK`chox4f|n-no6!$YMdU>koN6K(X}3q>-Qz9)%FO z+vpdoLVXOJKjHj2R5pYPdHaW+f23{#e6lXNLkcBP+qcP}NHFPdMyu}O`>$jE>?^c?2RQ4OA zdEE|+59rS323wj#jUIK7W6ViTp}kuy7i8uz>Hr*SA+Ya@Y>wpZ+&}cOFslVL+$$?5 z*y@3$KJLgl-|wcb*Tkx}BHkOUhiDWqW-h~EeN86m&o7-%uAwNTiGi~kHc`8@xh6vL z?G(#1tPKQj70STwsMi#$U~ zo!b51jaF&Vf_sjNyHg`tOa=816-Vg*ur_@{w^#3yzuk>sJDYr})I)>8F^Fm|nWrCM zbb9tHF+qi_ELDA_ zY8U+n``2=jBKw7WZld08*h8o7yHW{kR)1^?KddsE^pr8fXKhg;v0^Y}s!>jrs(KD8 zPNk2|yRF>?DbqO#7b~?Qn9`bbHFQV;f%7?J95+ewQW)A23oLqlzeMa-CjeVkYAzg& zR+@ebWr8$6qnyEK>`h@EkDc~YDCxxkiaQVIX*GuTzaUub;c39qBz2~!-y=IiiV_E} za|t`Y534A%k!yjPE$Q8-PAs=pN_!ptJjkuAq#!jnoyqZ>$Boc}W$Kj=31GX1(~GU= zoR^m(!6l{>ot@zDiDkW}Lkm|Y3NiS-18`{sLqPVwY-v8j1M4%=% z4Pr;2Xw2o?>bdgRl%zZN5K(O153X>F*Io7 z(uSRY06m~?!8-Gk5z8WYvqGsJ2i8&}N9)qSH}B6)b>|P}1j8|zVxtnbsYcVOn_A?G zz6WUJU>Z#>bqDB1#gZ8|?;I47c{h}bYxEk+*T5L}(y+EA^NQK;e%;byZ|KT$#$2*N zPoXWRe46stI4?}xYBHAt&PnY+84+Ne! zHvu5{#v>Br4tE(Q`1gn=>tEm)4D?FkH-Ekp@W$nR$7~XNiB0+aNSq!r?%A=%dya-h zFGeCTrI$W5g3?qk4*si&J2*n&C4#7wd;i{50ce(6HQxfUW9f>`ApXVho&Ph1^YvF? zPN8Fe=r5V%gpjvU1LYQ1CdH~^L7PB{s%?_Fm_0r#@7=a8jGU>oZl60j?#hm5+wWI3!=y|)d z{Kb&#vdjtslKKZqx+|g{8v>xhEMqrnFxv}qe6sZT_6}m?ipV`FY^hTTV<y%?w zJvmBJ$5YX%e~K|9F2v;%4|>^ZDaq4zppI*GR^q7bZa3ECyWs-&3AdcG22 zJ0PcYPJZx0sArIsX;xAxH2@b);FZY*b+kzm)Ub!#py8l-6I8W1uj&Nv4#kjMg>(6i`titJKU{vLd#f+Zo$@d_hpRhinX^9PJ()8H>iR^+^W z42IQn;7(TW#9H}r-LgRsVJ>=B4_k-SmuXCzH2E#kQ0cK(6I(vZ5&-105Ci2p(IPdgScBl)u;FMa9Nqb{)}k*`z4o@ z59=ZEu%b-}2&@oJ@)oWz(sus+YR(KB1#Pd9*u4rXmkJsf?Ui5Yc*zkmhy!W+lPDPm zd}cNOgb$YJj|Xe*E)ye0-4?Bg#?gM;rSY8b??NJ9daFJL=j&ut6LiP^?<1qKDe9Rc zV|=4^ADq+=LOOM51ref|ag<(;r^MeZg}7Yv*H>~aw zBRiQbX**+EG4uqvPV&Go#o(KrF0O)IO8~DIiF5oG@F)KtxtKWrUxrz|doCY`!UxU5 zCd37S)id$9Z-%A_k-l-)ko&gV;~^{<;eCa(Q%NaFw!nkJi%(&;PqSK(VJ%8{$&hCM z709U6d0YcG_ywn?iN%)+8a!}^{uO`@K7fEQlU_CWy(A5%^?Jt%H5y1n=62+i6{AE4 zLI?(?|79jdE0u}vY8G#v&xFm(jl$|`wA5`2;`tIlv9#4R7> zJyP}zCKMpV2i!XyZlr@5g!UWIrcu36{EfC_{-*TRCMz9aTN+CT|HlQ4ZXwy>GiYDc z|7$cG?Z0snx%Yn;?Eb&8oA$}QGkIos`7e$*T8E1mpyfQ<{^|{1_ay&62`T<P(B z{vQblSk@FO14b1WGsCccP3kVq--8dhfOBJh{D~<>IaH^aQHJX4%WQ!dg^HcCW(_1n zZQWB4@5t+r`s+xo0Ae&X*%-grH~aI=FCTyzkmP;)OFAC+v&^c9EvOj(a+cI6qIw@O z-83ur3rBbBRRj<}{P(yPmP6i@(WhN44_?S&ti`7phQBxeEEqt`9nu4~&g*_Zmv%Ls znEID-5Ofb&MdGnwH%AJ+{Jp?R$S{bf5gEdhHom79qXQS|hZ^XAAr4Pj-j%qajpyt$ zKrY=sJtVx9`eVJBIrIOp(>3yxiF|`obCqu6py>K@LoT~8d5)q}b!V#MMUW^F2nbwh zbfg_4phytKO=Dvjk1i+Dzk%uPyw-g_M2u=Pilw0S5a1K!J|g^UD&gNuyi=0H zr0N>kcj;&xs&To^KG&ye&5uf#?a?i-3ZBYHHF&?61L$VLLX)1*(iXNCCKN9btu8v4 zt$sm*t}1vc>~}Pn6Dwl`y)jzVNR8gJT05%Ef{<~Ntr0yzM*E;EFYXR_*i9L~-+1|6 z?2q%<$$geIQSllX>XhXwp#@@9oC--No65=z7fjNjrc6>3e?%;BhW~P!%^BooOL2iy z>rZgp{)2!Q%u6Pb(bjs^h9V5g_KS!C|6GU1T|ZdM!R4K-HBY&aPAUx>jQ@HkYC#TV z`9)cR_a|w0E^-a!n-(zT?Iui#iTecEnu&^0@k{k`xtek2YD*OsTKHCG%vM8uxUNu_ zo2~qgyod;TVh#1_E3Ju_vZdP6juO6T=9K~#=kszJZtjwo-FPoAFSJjZoHq<&#A0R9 zNrQ!KiDuPOfGIq%%2%0M1j>rhzW$vo-18;BN}|=RBYSk{_iMJzmK&@w@3Yzl1VwQJ zHk5;@t*ckJ6g{?|^xvGk)}QiHGAoJhxeQy^fGSQpfYIU|*B&LA_wrrJ_|&q51mP&s z4Nh$iEkIw!HKC3y;`j#K5QRF;5PXV`(ITc>q>$9wLoBGbVTQmmFG|n$89*U`FtXQpgEZG<=ohUt>;H7cXK83Tn5> zl}@q2p8?R<*!jm~avRasPsWXS$G1_AmFT#GbGV208%oUz?0A`e@9y7^GGwj?-HRUc(u6(H!cr!y}#o@OT4vJEG125A=aTuh<^2N?B&-b751{}2a zA&3<8Ws2dGX>6+n6Bn-}LinbNq-rb<68*071w(eG6Jb*fHRIxu=JFN6UX7jt$gxz^ znj2-(_`umrU0`LTRAv~9;_>0}>!$PZM9-P6n)*amd8b{ig+wBrJEskv3IUGs`u6Wt z@-%t#Owu9uDaI!^>AwN|55im}E_K^zZPpGQ6EDB|!!|=XEjkCJ%UCU5vDGxo%%oYV zW!9T-=zC<)s^TanvdHRMm^EA^nMt}zxsWEyCkG+3i-f{PrQ;cYG3Xe$P>aWK+rx^# zpOWnYK9J6h%vW(&nTr652!^o_#YD%Z=R%sKW<+|gdFb`qBv=VI1J?>!QS3LfqB;(nBWScK!7i4vMTWe9*HzN0w z7@SxAKlh#h)sHD$Xd=BWAZnM&5wb-J4_Sf(|CtmGX&|S@+wF5T8!2q(%Sp?4u}q!; z0_yZ4!#I-62e8Y;w(BF+FnlWwu{<1j1W}Yak)t+bz+SuA-dH=or=ojl(IIaqzBX#h zL^`Z(c&j!Q_R;K~A0Tw7-^1Dy8W@iDoLD&Ny7*uhUIzdxy_%e@+u7_zd$qUwTrlI- zirK+WX@YbVWe%1Z6}8R+LWtEayH8|`xIc?$I8Qb;ZhXE^4X z^w0Hs&Fv(KWnM@u-gZ2m=pJ!^D%}C!iANp2fcT|m`@E}1js6dfAt4%5TsciXgS2YA zxpJ>;{%s2$UnQp~HsXS*sE}15*_X!rLx*|?$-lUH6KCN*;_>U`$M&s&#L13l5=mI` zg+zqGy>lj1lr=Tb*J%OH*PWT`qD^rMn@v3ye4{NS7!Z`*hY$lQhmMQP3FX)%W)msb z9mfpgR|_GUo>o()pXPcPb> zBf>&cw^_l~sqG0CDZTt3_w2alRz3~NzBV47R&!>{HCp>k7*0HmGNVUunVucgA3C`i z;zvn^@%pQ&Yb+FUcc7(JCfuP)k1RW(T-V|^hN?l}xLSecP&>VGG~3QZbdBQ1V+?@B zIFBX&(N&!OLeLc2=T_^p`z0HhsH_sFr(d8=+mj0j z(E>r!uC`t7TC>i#v?njXwE4)o_leMiLO9|HYBrBA^sH2~GEEr+A2BX|)vRUKr>~8} zhTIJ+9-ARdj}`(E_P^+L^DeH^0IeD3n1cN${k{^9x(#{2LK|x#dKuSqEPM{8?@qd# zF88B83y&LNUjqf2-@EbblEvqWWb+@C^VaaTCPm5RF)=s;REP6aS z0VmSMBsQIxyWQuw{Y##(#vbo}+}I(9G?McU!$tEy0SkVUb-#G7TYsX>N;}VWG`G3- zX685iFiSkdW0nr;tIhm%KDixC)B%)++iWmC(8)j-cN0EkqUwp-NFB#Z$6kIYS5;(5 z(mPbt88LR#;hUyI;{)^v`tY&xuEcMr^D5 zz5Z=g%y-bTW76?rXk}7|-#|^3_?%8=kYU#D+xo>`5v|0SXpCN{cJ{lkKLuh+^;>0y zG6}DoeY4yp>W;zsIdmVHi%N^hzJH^Yz)b4GFoa`{q8aA3dl0muK20YmreGq^SUq-` z&E+Bn#IWw{*&g}>D>qI1rGZu9_I05c#pa)n8*Q$$G1KL-^vPhv z#Yrw-5+iR0(mS0l^%o2?5I$_z-^__jG$I+NbLCNuqIh-pmK`)`{AryN#q`IpqFQne z6dO(hk zqIJ>uZjPCaeami@BAqlQ_UeN<89~-9buImf z?XQ&Sp{7P^Hz{jAo7*8{=!e-L+j;#GmbA2Ci0rr$tw3j(ZN{3d(f2T#RTi zTb;H{I8W zleHSO;Y2s=c8BSGr?*kCScUsDHIl(v3J9LxzUCj8PS^dKvle!}(%T&FkF!c=WRYVQ zi{>shN4#h)`ME-P_^xKN7s17vpLw3A$zB?h zMLv_(h51#D3fe)!FBTj){aKFEB5|{-e0c;zF{G!!0p7$By_B{ z{?d&@D$jDKd7nKptm79f%-%xyWx6{bgU3NUW<`X=k$D-eQ>mbXWn`~7glTNp9n;Qo z^Rt2@^&f+wXocW{U0nnkb_0!}Do+NOrVI=6T=65wJsivBv3XBN>JI?)*-%Eizwo2P6)@MmQU7cQWxB0W$ zL{Nt(AAw`>fardJW`EM4B0 zb+sY^uXc1WNqc0vHN3^7i&uhF2+{4f~6n6Q=M3SaY?W5Qk--)fM5a#g`%Fw^yA3%EFOQrNA}sVey;Pr zA?MTZ?$ePFPS5KlARHN4k9udkfv~e#c8%Lah2DZP)>4Ivn)I1`T*Z@TD3jz9x_2on z|Mr+Igv$+Pn?D1EnnWSGvXh46E^{wHb?I>CBb9R3N$VW}WLzAU8hbU$ZS{SZ!PurqBm(d!0vlmCuvysRPv z)9uY&?*2Ib8OJi{;X#}A=lkUlVH8(jl=~e7=fkvNe9=%Bz1jf%@6qM}ZEdoVmoZt6 z!0os$lG`WWTesKPNgkFj3)?oru1|O?jJYx=a%JXw@W>+aFquvLj(Opbdv6HFrNrb4 zFi}3_?UyK& zR22M{g%Zq>aGdY!#$_G;nKpS7#noQIpG#2wL|pG#c6x^U$6xBFC{Jz3MR{aGnj!oQ z2YIkFZhPho{!_|Yp2X*0Zjs97nd|R}*E(b>Z8#~0ubd^G>1Xj);px5h+7>FzP(9xm zCBAfeAxx{d1K^G2yb3lrwpjFQg74P%4!Otr6osX|%JwANmkRk*$AR}=ll=WG@%d|m z;tbA)$tE^9^xJ|~=jAX?nsM12BAP?uehePN8nfQlSgD1rjCdt0_Zf6r955NjF|M_F z_U|b2Bpm7NhZboE-~DRi;S(n$zX)u)tK>xgF_0;Ts*KwnS>b6?c}fdeNeQpuA>EnF zKHJ-698b^OR2gJx+cq?&_Jl@g#F)WgH8-nZpta>}tv=8*CkBp z1u1l7yM71XHREPXv4k663OR$~$B~476w>bA*qe8w zI5d&E8}s~&M5|O~?Y1Oo_F%r6(H+xgqnl!f3YC!9z5N^rK{#c+^sR=M8EJc?dzopZ z5P98jK#;(`XZ1KjO5N2;rn_9RL_fQeOOD(pv&DcrvJ$o(rJk(OflNG9Z7>UkId?|j z@i;Nze7`-snx(MP_Ns7uBkxm5)c^obTbQNr_S8614P;*SCNpt#TL5r6f{IGo1o6th)va`cdDY8Z9 zCl0FIcy@&s#dg(@?F}@KmnvmY>APnc8gst2tymuqeWYw{@G}rlt}FZ@$p-`+A;caNoRq|N%!`KB4G;wNq7sxzCmMqhRiOn&O+D~VWEL4rQV{f^WXrwtlIFFS$u(M zvf;~BbPlv~&NeUSV`%YSt71!fW5e6Er^}7UsdQvw_+Ovf_0YqL|4?I}Cz{ISt>We2 z^V2YW;27S@{iAv**UGkK;4J$(m9UG!MdT34+0gNUw3^c2%r(n!uGA%8GVpqQ&m`@c z7jU6N1z7O4X6)0j`F84h;mp{y^+!U|sq6(*KXNzni%z%R))6O(S!hQs_B>GN_s%C9 za-ognt-Cjo`r)l~s(~4(`y?fVw)FlF!*^NxDcQ6PsOK4`2$_}|x+c^zq zYq=87vMz`?nE92^YR^|ed1DrN<(MvA3Y__qU*VZ!K_plPjNK|8EEkJoqFi`(eGhIj zRKSws>%MVvTy6v*=t)H^NU;510NyS)Ql8sPzw?W}b9CmSacwO`IbU-`vzYK>smF*C&TKli=h${PIQWalSxSYl(^nx^y4?ekwda{Y7g=R8|&PX49)f{ zFV3(_dR3Aw0EbeI-PmDCBOPXU;BBLC6ph?un@a~c`+pS$fQo_QPA3j#qDBg)&vmD% z_6YeTyfMasJle`2uw%Wi*U%zQvqQeR{OU%t2h2;VN~**rTgWNvgNE$;-SS-WQr*{+ zsVki*st@eC|C>;q7m6qm|kf6oHMW^sLDFA%Kgf{&>-5o|X-311A>5wC6UyX;KD?;&0sF8om#bYb zo)+c6EUtu+l&9^PUEOe>En0ovJh&E!Nqg)Fo`2s4Uo3WVyL!0LJGvXxo~Rr=2*R18 z7WFvmWFi}5G=bITx;oh|>jL|;jz@>b8^{K^poSBom0Z4PPynL5K~fJ}>Y+e^^?bd8 z_~!Ti!%$Igj4;Y<-+eQcz9Jo*=CTL#kkm1*4-JhrN1CQ=2zSMoxCOz~jl;(Lakb9< zUa1tK2M;Pzx4eZ^(~$5qABX*A@M6SibW(n2D1CDP_biI>a`3dMbvtS$x=kMvXNEdd z(LtSvZ|#YhLv5oj11)xI(3r7%$;||SUGc$3Iz!@D+oS2v^f<8kju^Ebq*hu7e`@ll z{ig-m->%>Q;Ih(tJjPk!wjfisk!ly$|6nR$ZU&p@a?=x-Zhv)1KY1WD92bC9%?J-e4 z(S9jD=-`fvF&|SyS43B3v|4DU_mao+l2?UUc}-yI0Ppzwq1p3ckk|qJn_|MCc9O9s zhm{8(eVI_ku&chd`Pt%yyqqpyMYDYk z4xbLB_#oOJPuw+NDpn_J*bVNb3Q&r`+L7P@I$7;vY{zT<}) z@?sa7ZQXacUKGUe8o0L*m&f)9yLG(-CJvc&!k#H<@RJ=1Ji}`b;%UE^ThtlchMwH2 zw6a44N#V{&W@s_f)*iunXtfwi2IE_hK=A3}pKQ}Xg8;FkJ0TtB6gY_D+T-qhIk%ci z;rFAso`Joa&RC#UYOTb23E{f_Butve^<}48c&tHYuVcpF&)mz1X}^PSrf=wqPSNoIjYe?a?w@vT0cBbdu7tFJj%RCY1)O?El& zD`ffgseMv>{8v#>E1_CXfBQca6zn89z%n=LET_Vx@h%tv^#Mm5H4%|dC4-+Q(U_X3 zi3^JKRTXG>eb8k1yoIO(U&9M}|Vr|urz5gViS?kq-F{3BZx$MaiB zlZ89trA(Pm*qf&L~1>mkEW(*#{Dg?|myqig=LEOy`HMtz`QI&exIBcEyaIu;f&o)A6 zeS)eRi~3W3yJJ-EF0grzf#gb()PC&DGsftY#T4NaaUn0~gJxY@<7sI}Jl9w6VvHbK zRh+$vwKeHr%(0Ma=#VsMbeSU>OoTW$5L|sh+Du?K#%0XG8zXbj4l1bt^{D-1yKT&H zUu~W#!DVM()#=VA4YfEOt*-xt8gu%_Akd>7%u~m2uW*+oecf9$=g) z(}k`IS1yzXf{sYd%hz)tWNnoITsihNb<@dw%6*Rbs>aVxKA|WZ!jy*F|Gugi{(;xf z`e57VxF&NP&2{~)KGWd0pnbz%j6D-xkHZ$>Xod99%hW8?7I_o$)Q}`*s}trj<9Otd zt}iZVzwmXO2J}04ozVl32n`t6Gp%6jH|Nu8x1p))lWhj$6LC&`c`oAzs-oSec;pl6 zhUXsuZLaKFyXm0|jI-7b=lOZhC42DjbU^Y?zF=;dorW(xFl_W+aRT&SMl)8}eGK%pYPJMhzZU)kYdOfA3kB2JkP zX(9w+?hDq}iTH2%kVxXwPT+6vMWr3*-e5-Abr=4nInb2lRY^gKzwglFMbG-@0r@}P z3syK$poO*}1-BDK-aAr7JeF`nBR&IWm7#p1-BE(QaKiiH=6FPZj2!|V4REwr!BU9# z1&HImaZRaq`qBB{PaO>+g$=^ZuRixT@}!MWSO}zYR=z9whLD5_Yh5Uvi{FdQ;?`Ak zI9-E}9Fi*-p@W(fkI;78FDw{Ee~OT9LFZLcfn?$23Rx&pQqdERnR?Tq@M?Mepz?qR z*|TdPQ&)e4?5z{OsVWgk0D8}zA#~6ix=WJ_(SU`WfOWwJi zju2RIQEf#h4lp63mD;FDW;0oep-p|&=RgY;Oz8r*&WgtrnlHX6UATfX1B5=1WFds&cAAVwRlQmJ~LxV;IziRNh8~{xN zF^O%gYX9;1GDErc%O{0vXGpB-VFyrdJGk2uO9U8bFoDeA$ZQE#Xbp~o7Mx6P%X zYtuG(n7T~IP>3fVwM(i&qb7shMf>9?C_1P|m#aIk`mN2to%5{s%?M(oaNX@%O7|B+ zWM@{2?=CJ5;ez@u>Q8A&FITXy9@d351=DLX=XdW?l>J6Z9MW-?zrFZqGF>Zxy_^>P z?ZdbcJ190Hvcq59Z(~3Ne??D@)Mcv|?qETR+EwX}(h>5khTe!n))LR~tD`z7$7C4^ z*c3vj+_;3S`$IiTzp7(I{_I|$U#Nwo4=0;q`rT>k;Iqwvk0Q{W8ZZ$?Z{t*g-lAfN z#70$2E;U35yNst&geff#D4o#dSILwCxWqp2%#o{s4Y`+r=+%ain;=XOFXZ3k!%|N% z;FD_H7m?_XMe2<{6xnOgk);jE>vK8wMGS{Y>!ZZ6+rowPR#ifTk>=0|v+KA>aa7}t zN#90b=}Ut{=%>h}2z8dmhW${UE2YZ!NiX4++B-*wR{|rSiOFF;H=RfwcZ3wt9O64vgb!E_u4k!) zcWIdfo^|v6#QvOy&JCRTq>t=rCkBR+N@)G6 zXZ<=(HYu}|09t*@L$f`02-L)1CbSJvh5XKwpCKE<9d7=(Wre_7F*S$UIhr1ANW*d_Kl5TQVgaC$X zcZ{Ec0CRll>AJ6udaNyA29bx^m|m^gvkp`Itn! zR!*ql;G-8^R6AgqBASJg6cs5%Uw8+`@zXHvVa&m7mY-H+fyAfo~G^cL{Hn$WOT*7^&BjdjXCFUU3$Xa+23`cl`WIh<>%0 z!R!I$k^)1Yle)8AS=p83kRZggko?;*t`i32B>yTsUZ$?_18}37^ z(u5WjG@@9_YSh2?S+jn$=f>2(T_5U8KxI}5&;Bf_-+R609GH`x;!Sl>B_KI1&b(!= z{2=1GPj6c(EXqVbR60%0r&7P%5^C_zU+qaKd|KKiiqatuQ}DjW~k ze9oeN+iJ#5X*4UFk}d>>tq|o?X@yTzMoT(rXLV-t*128KkSoNoJx!1tRzK=aEoCep zVdyhS01}4AxWJ=sc($&m`_aVvozNlm4v@C{L&=l-<8bL`b;mqNoxO2{mDA3p*L*<6 z^U70$mYO#W%D`b*y~8%@M+t1u3qf$neRvla7dhktFBr5T5-Ol32M`!)j%aSm7c4ll zirF2a3QG+uHe}9BFu^&2mj^~KLZMr$&6|R4hPo^rTQaHz=4%b2q45nXp&sMid&JcL z?K9K_R6?;_Sv!foDYx6wUuE_uXs_|<)h>SqY{a*2!#D%sKXVmTKe^lS@jB*x8jwwt zW6b^(x{EaMboLzE9hdBn;q60WMr))*rj1!Brx%P0jH&^8t4aOG zEIj9#!KX>a#NygVKC1xvW}`%19*3$npI$A~yB#lbF#tl7eEP8@!`)2x21F#j)0S`T z8%TnzQ$A{@XUdsIzH~@}N%8kJkeZAb23+@-L*R-EFux5ep~Xtilv61zgipvkVeO%C zl+e!Caj?vwcuR2<$$uyuA_im}KY5#%4Zx6>{RRT3cDqvakOovkunin9Q*sb3oNOz_ z7CNy84+_GrsNPB8z(<406uJjnztYe-dk<$!yQ` z8c!FZ*i_3UWYE&$xYo!BoxoO0H7q2!g7Wh6ot5x?IN;lTJ0I{_9Cc8&_E?1^Wh^#f z*$9x-5F8A%uo_z81Dj0;F{00`IA`NB;cR1&<*aCWRwmA^=xh7U@Ep|N68c9M7 zr54>tTMYqZSF`k@21at51yCE27Bm>9;)1Y8ylMfqFdp01P)Zn1y0sXXeoI#R43hyJ zL~r@ByB)jbuNY6QK*hN6OYEE7tr?y9QAZ{^F?)-rbo$hoQ;c{KVpr7ot+uY{fYq>Z z;i#uCdd~H9Y6L!0%vEIW$g85v?k@E8#|%`lJvzMXiwcE01yIV8$MFj?pjD*7t&R|* zC-27Qv5cmCS3~kc<)qeBx-xq_(tfxbm)*Jxn1tTgQcl~LQjd9goYg zY?pm4nY6jHDP>}-gP|paNH83hTE9%<$GoZMPDCj}>GkpAZxnegl$vl!X+%`daoRmq z!9=4d`32)e28enhmJ$Ok%CMAW_qtt2R!eOmZwfBty-}e?wO5aaOwjSB#_JCb+u>mj)UdAAbLD z*4)gRHQ&X|{poXh*QtH>-fvYsrL0I)aLiQ7K<1&Vr>0FW>DGp&$F*d6D5)jz_QnF)V6N;xWym0|%XtqZ z=kn1A%;bO5v;6{8k+?r~XMfe|s+Eilu=UQZQyGPVzcPFA%hX?VKw)N6@nMzUFQ>SK zi4I82&}61&&-#-Hq&=_FKK@MHFOT;S0QN*4gxhqt2s@NVfF*qmNA}k_m1e4ZgTg zl4pP(wemk50g^^wW<$09X79xG&175bX*b$co(5z5VCQXREr|R&O6jeK+hMTmRl2D$ zwSB6gX?~weRn@y~Wzug$ZUMnO0TSp{N$(zh3{_yY>88kNQWGt(8 zi?==^BmX0B<#UlBgN$wRdQ;fR)uluM)>Xx62>hwYQSYZ^%$B(I=MIeCKJup-*`u$s z#r-KNzcf)UTPN?Q3NO}wD9PHlSHqn&?jV-b`ry@$ZkV2JS#uN%8Kh12{a_Js_juQR zBY{JyXWdVOZos8&#bTo6lTC_0s4XwiXye7eM=U7}npz+W=dVJ6*cm2R&xM=#(&4TG zduC8laENoo#3Cuy)r-P_%AE}MZL}0&$J`<4Ugu_=8*GGxy=J5Wi9;%J^i?LYN%)(#D z5ll}7etz-wHTM(JN!L@OMl3g)X;6^0=NrvNg8yvGRp(HTO?u4q6Uh^CgNa5%HmXT0 zNv>h$+oppT>?{Hkgy(FUg@w?DpIBa~&dlob13m1%VX<2P(SxIug+Px%`G4hg$)2rp{nywPh_HUmD3M2mS_S z=g7uO(?(y3N$+RKq+cD9$;Qtp!?C$*NKt1IwzUoYij?|?1-8Efq7Avr+Z+a~AtY0( z*zu{$Sml~y$oSOu#u;HB+(u+EMizJb?h;U&XajUtJL!f3S^Iw)^b&2aO1{Kwi~g%Vrj50IsSuVayE^l;XnWs(1ya5*6D;=niQzxKl0Fs3 zH#tZ(Q+!&CjfG7w^2Tu2y9FWJz@wKvNFCzDi?4~srIt#0!<*t!A-3_MS`oF#&9#36)!N5QwMf_x4`uGj^s7>FNYK`r zRR6(``_v9K9&Z(_Hnfl}qn4P#HczbuUd0D;Id80k4+sKNc&XivPh7O`xc#@E!+y7F zxPJhVG8Eo?Du5F*2!|{rrtW4s=;nM^&2TuGZ;acP!!ybRly5n|52XC{yyqa9*3JsarHKL|UCCrQ27t99d;l%~KD- z5`AgII;DN;aW)?*ab82$qO8sjfZZ|`=i55&YL+?j{ki$a%^hq%ZiU5GSM z0b;g3LsMm<6I$2ab0dTfI338h7fYtedCO9Q?0n;oZw)g`$JRglW@3|ECr5U~u;9G#1g|H=nMD947FqJyh%i1<(_(ZV%vYMxi7Fws+R_ATMTzTyBugHCbr1WN|4oSD za^?pNSH)lNhq9c3NRrIa5=h#Jx2%1D5k z9=zjc8>cL#Ckh%Qmz=ozYOf)u4vas2BDu{=6W#8H1(zDQ_SpBfI~2pNBO2?K$4t;4 z=>rch3tMIr+RyO}P-!paZ9odcjxBn1*6Kp(B{EZ5Z^8hn9>|UNBk5F&h*~_@%Y;G4 za%l6WL)v;~1|wf`#+E9&haFKhy((hbc5n=Yld2HmTdzIFL8z*T8BAa8=8?9&N%?nx zhF89_DLlkFS!CWFNo|wXrj6!u2$-1KyFzzw(8Y|1NuOVPf>t1X`=nj;tD7{AG%?*~ z*pI4wAg_kY4tFWeQ`gW0$KjJNxgyqdK>V2F7q{N+%S}e;&UZpc~<#S!J+UX3=Y>K^&}RJ3UWo zNM+7)z)NFcx^~Ci1}C6!ut=6A+jnFNl(!T;v<~cO>l=a+jXN1o@Ak_*im?x@OqG*J zEmiR{4E+Q?pUg9WcGICEKEF@{j6bgy`?8mopanoj5jw#l#w8zZ_$j=fzn=ZUsr&o62*yv(1pDocyO1Izi{yp>m znc=R*?og)ej`AnoGruVQj3t#KtzrvmXAX0PbyLAl6O} z6~@K{8D5B;^Z{&~ELulR=RzB@qc78N_jhSy{;a4UWMUbt8~LN}0CVWNECID9-KFkm zGevQP8E^4C$Kcw*8185FFHk;@PwDZvY>fqa6y3?P>n@`aE8}mVmR#u47Xm)3UClcy z^C(y5sKN;yX*BF-%1%ATdkPmOgB@@Cjz&0K)+VVP7KxRAC#5KtdD!n*>(rq?Op@X@ zpS4K+y~>e7nQ8H@Z|@XWQ?EMcpkY%D;bWZsf60o+d^@Y!IkXmI!=IE z3BsRD`xts{72o?5de5>iD?uy_$LOYaCq}U0MU=~SxrfPm1Xrdr}EBuUoNl&bMYoFH_SLc zqE=qU?GJgb%zSd=>A1|vbK6qQJ0AjHko9OfVebT}dQY3z7sygfCrvCdy>`2OoT3X_ zy`Mn)HH##tsc}N<#nK7J19vach8VDCH8|D`cu*$e7*olMAaY%HPlq`@{ifJV#L+E= z?ya(s-vAODBv4pLeU-1k75LWR1dn_%tf)mGM_seZ{VRrOt6khmb<`i?A@mW@dO{V|-s|DUi7P;SC7@Z${T1ok1Rbj4la*rp5MF$MS?TRZNr0{oj2ErE~f{x6|C8t~@#*((~>f zxLf-;h#2GcdOr(;;SgsW8Ze37cCCnuo=@NdSBRA8kztLv2Rn%SkTa1T-0i0$_@@(9 zL&)Rg?RIH$ZpCWeyqwu&Q$F)#tkP&9?P9nLK1s{ZSQE@*1kn(rk7Q0M`Nj+S4(toY z>_5mv@zE;WKbVvl$lI%niM1}rM{`DmVOxq5xcLr;YP=w575bgMY-S&?nxHdOMQ$u`m)RF#OHHeee)8JDRW)N?w z@@2}ROcyAw!{RPnw_bBFOqVRB;`z1!5=Ym&^AyUSHxd26PZLc3#jcV2dh35^*&o;f zN8i@!4BI#C#8l4iASTWn4M{F{bmpV5LJbW3=LlpjKKK8ou9xma`?KU(ik*h3#Eb%9 zCU4$pJy#fxCina6YfL&Nba{VqXWF_N`IU5ldj=?-9@uhS=Gw>JQP*n7ZrVX%_n8aw zE+)0Ds%#n9f3bNX@r@>-#_VZ0ifi?FRSAFgxgZkflb~c5n>Ti}? zHTbCK+%nryB#DfOr^J+#Qu`MCGUyOK1jHEPcQ`m|5e*G*u5uqIO@N+xZ1i*G-xVHD=8($EPwzR z#U6i>QQ)tm&Q*sW+5GOemuhYb%b&|DABeR_C)fH~6fgCg%=_|w@yR-FglkSn!9e9c zoAT29wU^BoqMdg-2QVmLlFD)yVd~Y(rSth~RDkvK2y_oSFfj_G@->s3IWyn6+1+Fv zu1(Wdr#W#i7G5*JY1uZ3$JvckMPPQb)xnsV|A<(nh(M&@QqYd)L8SON^+N@T(fDFO z{H2PR9b4YHCaqlEPB;rEe^(yW|11C%(tesbkfoOF&}(^c+ifq!qn~Dmj+OiHjn@A<4i4*~Qy;&oW5R7mJORt%)znukltAhorWiDcWzD$U>7Zene0ecs^SRXhDWAgm@Ca0K*4aoEa64HI%U-ACvC9rQ z#nLL?)x-siuuD2UQCyNsMPQL8^tARK%gB^aExbkuu!LM5$ts~E2(BzDC2!6SSn>2CVnIv_c zsmd~yaH;NX4N?T*-YIA{|LJI&irwMq(#)n+C*|bA{Ile2^3OVOi*$(JUm(6gK+#7-tRg_=IYk>;dZPF>0YuHi_ALDEaXaE#Xzf;j~43i=gMEy8jMkMZTl4|;BUsxA2Ja!J`~zROAa|+4z<}o z_(86C(=E*uYbflBIAO(NbJMZPf>GA$@*kM<2$GZ86`ldx$T+S$wI-)M#IN=5aQ%vL zOe(Jnj2EPz1O4j%M)K}X)Rswd0t^^PJ0qkIHx`4$y;=~#5D#q6Lpy9(b}xrFXxrku ziyJVAuM|5*ah{K(@eF8|YyUYpAmRfZ6qt;;GqtMj>QP}=cGDUv6p}Bb5A_H`Y6Gp9 zv2TCh&1#`GP7cyG&j-vQ?}ckR@_2-Q{8q<7tsI=g@^e7FAMd!!UD-Kri2vg@TVplRQRZMKqS}9*JFB0j~M*dyc zhw+Rhwxar0mt`a>;5c8qO+HR7%&bG@?`lq>TG2&4=qLmI^|e#gBou&9Y_%$V7=7`n zC-*=?QnKCsuJG4O<+*DYc!XSBhV*tjcu##t;iE9;vSrm@^4UBE924ecMSx@pKw;Cwwq7@0mq0%>IS`W0ViKJN-^1mzXcw%Ks%2;V z^@5A?<<9u&ttR>VRV=|aF}=z&>z)7(;}3KR?X@p7#O{?z6c@WPO1oQKJ+ z%I@4*b2?ZTbOFy3c^eSvh@KCPRm+O;$b6*9e=z}aZ zrcTfgA>JB4qn8w)6l~D3CH0vb9-~39r!sOepcNS)^+6i;3->JJ`EYt8DUfG4yd(XX zG&!_A;c=STK_i7tI7{DViCNeZ!u3YoZTx1Jg!Gd+0N?bvNHoxIWynrKryE&uvAmjZN;E*c74BYe580I zVo;^`@ubcuz1XBgKoYHVh1NRp%-}5Y&le_BiP2vyzQ-xWFs*X`dpSJ>*sFb?$5yi+hO`0Fq*md&N6ZZS(KFF12|L~%Zp z45KjlkU_9@p6Y}4{Rn=k zf+BVkg%#@MA2VX(_C2}vz&#V$&rqy}YT5${_<#sZC+yKJ7Q_l+fFL8o;uM_9_*OEB zN8@$e$Y=u9yJ&2{R`YP&Elke#%V4sb3~ZHMYd1~2VhGp284291f4qzzvPyeGw=cMt z2B(T_`=HCCp;O<27mnitr4>s~#R8tRr0#$Nz$ommy;4t$Rv3^hUiVah^FeacSN}9{ znftNk;+3 z;avehdO=J=)_E7OWFr=v-WAshCRexRFYTvFgWRN;!u9&ydF4((3T#PNKG~*|NppOgY()yDjL;oBJgI)bXvf@W z6Nu3dB%i*_@T~vDQ}=FJkRdgryj#x4LIkQucq9khG#?77uJ4I5q+ zc2xbBD}iz}IX0|_QHMBCm60K&Mh<1wEb4*Ie|AWs@=2~ZEuW1N8-Ox*FdJ1t8-IM5 z9PO)Ra3zQANxw1=`}S`}Gd*l+|;B6>`r!VZG~ zV8jhz;yLYSgCaf-8v$BlqGmDW)&vB}gXH*PEYeCr-JMWjUA~A-_{y+kG9qBQg zyiZBPV0X5i>{Xoohf~nP8>}dbe_Spy9uONP}G%|F=8X1?o#|RMS?MyH&P2$ z$pG!8slH2niQ1z^m$5?(Yqt8avg{39Q zR-&;>yPfrr1};=-lE=LN!Ikjj;?r#~mOWSyHSae!v8w%OmdJWmjVQpkX|~C%AD_&z zGU#>=TF(VEl_%G`{7q*H3EzVrt}xJ3k?kv1G^+k7pBYi(%z6p8n~JErY0+&bFz~BU z0aRR63hwsqzn9njU(1l4F`VKBYpWt9DP~P=lNkq>mah}Ip6k` zds9Ug;g3xyXlp+HF19>k6o}gEG|^xV;QnZYq!=1I1F8%9L+#($J?QFxgx39rswfZ21j11%`6*j5zsFC&Q$aGiHdtITCkiP>hwGy24R_J++Pq^O4fY7gC&T2(5AJNAAS_~g@* z)9s1(9dxY1f=*b4Bhuh{DpoG}*hU#~I$w#JR$;}ioU63L{;upwo~c4*xB`SzRN3(k zddHwa{8C|hqA*8c*Q-Wod<4^`{>jqA0SL3USkuCsEtkuL%}+ClRs-Qfe0mbbk4d!w z<9zq7_1uvwvf@H0w6y!x!SEKfn5x|yA+N24m;v>LWUnnAXdT%Ihe@U&7HFfiwsw~1 zp$d8#C2LPVz2)Axw;gA7Rp!GoWxyj|_niX&i@O}-%T62R)4^)Lz|y?h0m>H%@C)NX;B@9!i_XlVZ5UQZMrsClpu}inJ(g2P_9(`i|*Y`58Qo=6g@mp&-}&Y4xW*(5vRrGDps43DH;j9)U(qmsTJ6Y#ea~6cqJKug*^;>D2R%WoILIu) zNYRiZ@1Okwu=Q%JPLKc-*LE+31uO~1vOS9eLAxo2jdfBqD|%O$ONS^NGh$KyqJ?I- zRzRWZ9(Aaj{^eu=cT%`7+k@pLj!*rV>o7agr&k4(Gw{=AqeH<(-fizeH%HJtv&s_S)816nn11j0 zb^v5mq|htK&7wo}`cnOv896vB7Id7+kL4_Rw@ZN4Ts?If+_(16*D= zue6W7yhMP>`=qg7oLj@=wThyzRfr}TO)s)nmlw$kubsS+2dX~K2BJ*vKqDo+&U&=G z)qMZe>3n4J>okntpLGwmJ;byk<%sn2jlPp=gZ;M#4H?5PtD3-!cemS*9o`TsVR|(G z8iLn@2#B2C?`A?vSyrnS_?~%X))`y$(B2&1ERhCduuJD;7_+=sWm+aZE z=YcKKWVq3bsEp^IiGkOLoHmG)H(QKO(A^GVe7SOLCa@@OLJdG#TWBkLcok9kZ<)W7 z4ci}eE}jd39Ak**Q$2R{JH87%V?nXVywRTP>o-9B)x8=2gzJd0YbDjNUBtI4+EA6} z-eg_;v<+Tqq3yxem0iSK{Ht9#aogU5*S2?gF9!_1w@Vx@wVL?=0wHGq>a-8W!P( z!NO@eJ3c6GO)4mKZ^d5aF*;b|SC?&aF_41<;$4sPZ{~Jk=!iiiKl~m<`fPA^<94N2 zq@`0b+a z3Ypl|wn&w-NWe$Do+FoM*qxQ|BNg=;M`ngJ9e#{Ud%*Khs zlbE+WoAU-kH6?s?W_wW6iQdUB>geb>#1q;{Rw|6}dugwi6H4HCW>JW#ZxVwV@mNGP z74J`4bk3^xEt`~Rx%`u^gXV^VEs5+GKBf0S?B?+41^gKVmcr9F@oyx&kXo^0naO|N z5-x(w-1;y1#Tv<;|6QihdxI~%wRNg3@t9s-wNBmmgHd(xRzT#C{ zlo3mxu05+}HaVYLy45zvTKr)88mmI~Mtjv!INOt`sfoudibAm}CFU zlV1m3s~MFpWS9dn%mwxa+mbdWVvpU9m?pHubsSSAhtM7gH5Y;ro{p@TFZuJB`t!tp zM4%GsZKF+|HfgKf8WUR?LSRzQbHz=Arj3~5S7dlCiV{f$2tnngUrR|5Q6s+beVeWu zVQIFwf4~ANP~sDBQ8{4P$c^)4+34*w<*)ESc`41%nKK9t>wF6+()N!$w}=?e4MFp4 zgkm#le%Q#g@zJz219ziN4{xyds3ZIE|1>Y)&5HD6!qgE?e4-+M~s~4upmtq>7 zU0SMKeqcER#soRDC~$nQEZ)ObRnxa?bD8?A78EW)F*MZU0L8}b1*jlwKY||a$rW8p z+dg!bIwTNDZ{a@~hYWTF&|BCL^#hTVxcFW6Ir z!euE~Ep`~%tMT>$czo6beAb=el22^8`-|iIjOqZ3DB)~&Y_u))IQR_Ja+Ws0IcFmg zb>nkwLw$uQF?Kgk#w?VjdX(tZP*gW(-i0Rq>;O_KAp>;ZiD~x8yV+%?T7Aq zUFENcZWy|v{sRnQ_K7*|OZzHMC)02bP~|nXsLGd}@_>{i(HN%Yr`gW?t1; zzklB~Vs+c=Jcs@j*0Q^uMpTs&WGLF}``v&mj~Hm{AajEiZ~1~HC+0qB#nUAw#EmmM7f8Lf&F@d#C{9y> zPiwAEE5k96Hp86X%`6lb;Mw3#r4aXs<)s^~*Mi(;P#XMQB9=;&r*=-Q)(I6Bsd^U& zrU^{%qgXu~K{kE9uXDEkV-$NA?uP>ZKx1T^ccg1Lm77$`iD3*vRbF!YhQaXtQe@wO zUHFpvwGZE%(3xkN^G?;Pol& zVlDC#NemR%ziCZY^67o1?LJ@njQ^n(uR5uu>M_i5{Fx!T`7J~P|6LT)RWX5a+h`4y zcA^UJ)^KjuTao^7wNOh|-AIFpBifdI08NA}p}d6KfuAMo@97QF^TCM{4sU4JLSM7j z@7Dzpd-)l`p*|F?u39*cYI*6P+xXLJei-Ds|5zP?iv-JUw`~aR>0yVtm1s9;KTGci z9jjX`2oe$F>=C9PfZ&A}F&TdOAV@$y4fj>q2xf-S5z1-eu;_>xbwywr? zYkQa3n^XP?u&=-3t2EZ4iZDO$@Gng-G0Q>8+p6ARyot9MHuMk6ULNa3Du+^2&SIk% zVrGy&!PcooERpSBA!ucTL)qPmmtgtkOw5ZL)c`1P`Zg@mj9XWTs~ds@)$aJxx>c)gFv!Klp+A;i6d60(N{^w4~?}4(D+0o#%r= zF2`0`P5dPvgLDU?vm0ieO`gaJa&b-xXMJwv-rNdG1Gl_CdoKKq+R@xIa^(3 zoEbvyx43K{y;C}gwWB8Yh02t5$=8GPerJPzzG@J%MY9}D~LyusB7#xWMY)Wn%a<<7bSj$%5!<>{qz&pY+(s$uo z@IidpR<5}F@uKFe-w+xiz-Uu`kcy2H2H8}_&HuD-ye0 zQ(51A?NNf>|D{>OellZAEw2lz#vX6-VJHxb?f53iiaM57IAW?QAf5-+|B-*5d!XnA z0|bX5$5BN|oMhSGz8V8z2e-mevGN`AgF@>cwW*HT!uRb^ZupSD0Talc4Wv*q8@Mi^ z;$H)uHnPLqH29_y6%@t32{~_u6vKu$nTMs9SN_lh66Zn+S{X4?#L_4Ej{y&y@}hUg za$jX`$IN~Ar_Fu6a!$+SfhA*Hz?OV(Be9p8Rw9c2aWiDV8#J?V;_I24@C- zx`e;D8hSZ4dj@+EWd8y3xK)rFo%2EgpUPygjP!i(vcN)>7Vv4pU6~Y8IlU;Q50RXU zYwdUzNP*2;Mj>G+&O$yH+nTV{*BnLniu_HnL;#7 zno|jy2R@MEMX03ajOuuc#bXFPY;n^lmLFU&V-URf3dVTazh$Y)Fy+i`W||ON48FJt zoqDg?`|?z@K#z~TQ)>+U<+6uYhCayK27{V>jm#)^)Y3nHKBjq^9LBg@;vyTHbGb$k zJIx4e@n_oLW6>cv%_2HeSxBYsO>6^GZ9aKX`G40>AS~)`jG3u_e);~iNX6bOreBL_ zQaj`!o*sirtiL_?nR7-s_Q3eOFVAQWCsmaun{Z{Nzsvz}x-eK?$$z3MgQp|ex#9nI z@^~NqXb!gy@sJJmSrecQD)4q+U4qk9-%LQF@!a>phNbLA#k^oU1Bvs=Hhrr|BuZPZX>Td1YkLOTO6f#775@$Q#9j3-WLQ1g;D&2-GwM4tYU>Y(aA_Mi@YRbfNztHU#$)~fo zB2>dik+L)u*=O>xG$CPV&)WX@Or2Ml!(N%{AF_d(kR*K(SC`a5{6WYy{7-8Y@^}tv z?#+1Ai?KNr>9nFzJQ))|_U?P}GXrD8`6@0F&`6-Zdj7(Ai4oe*Vq_Ce9*T>h#elW2 z03o7a#dURF%i`E+j+F_w-SO9r_*ap$#dwDDlaq$MaqZ-I=ECT&++5A?=!3Z%TA%jw zZgv1}>Rm|8QB6(o%!GZ#g%q%6u+t#eBodbk#cjJ$^NQYvRYO&7vXR;ZL8kiH*Z;cT#A4Ij{X{|Cc$;REtgQO5zNA(P1 z@h2PF?wblSxv!i9HxJw&Kui=@=9@J{Pgk!v+rjQ;u}GFU+|k!`*rL_UqlQ8KWpVYn zZz)A59%PrVXV5}P6w|1SnkAxS^%FAyQm;WrI#@SlO3%B4OCP_uIN0Koa5a9in$vjr zY{0L#4OX82=|U^A_M}RAwt@|}fj*I*8uNPxep%;xJ;v@Ec2?Mx8I^7EUnYjP45-1Z zk@P0nA1wx@Nxt&=qDF$F8A>yz_`=A1N8)o&nzy74VigHdDMIN12{qq->bD?6S6c$^ zx-6ew#-#;n7OVd{$^yEzSBZ$;>w&uP#Se%i&mfe(yQmbf6AO4OnNl?CqO&inMcDi( zLu;d~pHM>t^lB-6tE<~5&@8^VQ;In9#3gJ`X^UgEA{ifl7%PXNJbRu8WM3{*;cmsn z(>s}3seSw{t41=wy=W-j zege+DAt9`ip3N$P-KVECs9eRlk8AIKR#NnBgyXIFSqKq~2HO(&>*B?&H?(dZ4;p6p z2~2;Gs`VY-$1JQ=-Ee}K9`s6zv<1M4i*to$Og>JPVE3h<1_Ei`(GqD3*3nHO^*fWW zt~bPLBElv$-!h-_P5I_pwmf8-V-_j0P_XXCy+`Nv(am48;GUQzvxbXmY)H|5m5(P7 zWONEJowx&xZpfqa8`(qS-T8CfJ{@&=j)l1NAGbGh_Lf!^s>{Aa@`pae!?88X8)z6? z3De1Ii(~F3H_l%YhY{!5?k%D*hD3pZE$e z(mv#;?$-&&T9((&TA@Ntw?B$Bo4ioE3w1=m0@dBiYb&O(AErw94XFgA{%oxxu6#SOk)9H4mYU-YAG%UylWFYrbeJBy7ug@MNA*mdJJuTrIAtudkkdj}4#i&>g|}~EQ|~In8Ph*i z4qQIBCn9+4E!Wcsi^0lqz&b*Gj;i)I-qDqW^?G%kS}5Gv>OxjvWei;e% zlvPCv?Qn1kWU73*ZNkK~XBy}2H;erEA>Q1xCn4pzK1Ql9>ccu3crJt`96_Fb%%(gih*#{7@GVwr7EK{{Xq?^G*wVToC4Lr1!|w9!Op+f z9?+8{U#Y#7Rk1L!x0n}b-Zm7+(sbiZj7hBSX0)e$nM)ciN6AE*|5nyy|5ix_R0Y#1 zilQoaQAwJ3z+r2cWHISM}t}hGelBcKlX*^lL)yRihji=r^^MW+)hvnflM*v4eLiAXUJ=Q7^G{D zH54&n7wg!NX~23vQca9dS3k^Gsu;|uOX^#`92$8hnFTxz|117eT21C>h^DCjuY#7d zO(Xr-tS|XvM$>9Id^y$fCv~}|8Q{J}!*p7@o;vf{DuZ9SNpNUO30(X97W=3S$k0gL zGDvf5j64m#LpM0)W!k}wMVoR0VL2(KWh=F59yi%TA%FIlKQApHw;w-Mn@HX;^*%1? z4bl|gkc|YVdBc8eHGwb_ZXrv11zcy|>sYoNjj)$y(=V4D%{Jg~=5XU-TIL#_IaYlh z@s#{9HdFMn=k|x7r*{ITe)-KrHzZ*`mi&{FHsdkA+CBRRwn3*lc^%4>5#Nd&Il5Q( zqf+K;mNI!=502rjl>EzNB!@11*UHTkEn!{2iN26r$ZR+^@(k_>mvX~9${Nz|p{HbiA{8(m;qjo9$`!Wu9GbMd^;!UAdb_gU#_6N86(f*hc zH1hu8@+d-QSC`TVxwd`kPDt&n=L9oQa#^GV0qPhMmxf-xmwNb2lL-Aikig8 zszNlpinf91aRAMIO$yQMUncWoO6vur8i*0ztk;#IyXEmel;j+K+U96&<(GjBEjc3T z2~-u26(=(k6rTqYSNg%xRrJ;3^I}@hf0;$^yA>4EGM-Edo00uQYg<^AiWW>niRixt zb=g)P^Gx%W)?Tp(DeR;s39bB6xt;`)O^w{mvrCqF1FFCe%WREw94)!?;`5&#>Y=4< z6eKnq4gM=mOSU!xt@PThnjj1N4wcl_WA0>5`4#+rJGY`T_rizFtg4+N2Ms%y-9-lm zEz^=2z+4`)>7y2Dy4T!a?h4h|*>MHSym@na3MdJN1I5jL#e??hb?g=U=Jj}ypZ1t1 z!}HbBRl7zP6T!HyunUbz=DhdJd(QtMCMm$bWvILJ3XlIs(BT>W|CLXK<=850$w6|H zp{q*&E(V_JH6_Q{$JaVxzK3i)6kgpA=YQ}{A2A5Vl;6C=2Xb^*`&Jy-j$!O1|LW>E zNEdkZfUwBO|hsM1UEcvjVP- zI3Y@1cCh3i{|{nC7L3GO;7r(?D6~}s<{z#xRQr#y^@TeFZ44%l_1~ZVzk2(S%zyl^ zOA?K@2WfajgqJeue;}%kFBH_*_aP#FfVW?zV*LMVWB3I(k|(f=|q6#r*%j8fTpOocjSnMPm3)54k`E@bn=7-!maoQ zlzKi>RqZ*!?Y9P6|7Y&&Y;nAyE`D9p#}WnD-sWQeTRSmkbO1rZGeptZD>(8?VWjLn z_J1$KYs8kXcNcfpC828IK-`sJZ6p6>bgkV{a+&>QxsrtB)titWEL*fW(z)MbmRZ>q)v;*%*(lrYXSYuxJkdQ9Q6O2mvH=_Q}6$Qx<)eZ zkQx2p#wbg%i z+-UUtAD8>z>8y66qM$h3Q0%4WH#i!#1|zOh>oQKo>9{oj3O9SDzt4j5zd^uc-&&m= z=A>ptA*bn=b?>A`nV(_C!=CoDMiz`?f|VR{k?HxK->lyL?rluo{GlP%c9c@SjLy(fvIsFyAgmJcVulxdkH0oH4=MFry_& z)fE)KD=)joTJB{W4Ad%Cy3>fC+4|e|N5=XxrrRyH?3;PDA(9e37Xn#`QrYGI*hTn_ z8OzMDPUNa@RJ}2A7BaxUmk=snUVtb|F0$9{zn6seuas@vS<2!kTfHSwem1gX>-z;L zWtDlQr04lNZ1vfvxwp4;S3G@>*@g1Y^M>61f*ly^80a>zbPhU&GJ@_%~JpTV3zwY*>b>XH%P&b27MyuvKfxl#HKb7>|Tx z;N{ICKYB|t)zxDS?M_EHR1XQv)qe~7Tn>@q(mWXAd%auhzGI zEPB&@SbP7`+c=X9Pn2Ep1$N1yY%gp|wiC40jLN9De_La39qjwqWMut+Fm_HsnnX>5 zp0+t{+qP}nwr$(Cjkj%gPg`%>wx@fhZOr!fN9^8gYS_B$@YDqO$}TUv0C2>Ne%FxvKp_>g=?a+ z75P%*X7ex!)Hf=d)!6QamSqV&zv3uqoUffDl(#sN3VZ?m)UD>hI}CA<#c~TrgSjGX%e`APqx*41pEXQ z!@y3oJ3cAv97w6Jlx`#`f+&FhAmx>uT@nZ5@{*~92>12QVESlS96d=IxzofH#fFS1 z_U+S(XRnI>UMdu+AS-RS1a(`P-}#e{3dlLIQhP`FxWyLK^39l10S#p-@eJLFX?FJ1 zO~^;}G?-PxSXEy)N(i6#X@>Bf>zY4-H7aT$e1C2$9{d@)aWT@3>ihNM_b9{TZjx(!%!{s>@9D8!4ateW#JS&5wWV2pThEfB}XfXN&>=UWSx z)yV;IYkQjDK`iYVkDoobP~4q)d7t&GRWe6~+5h;`z?+{E%k^|*^dV!CrJcZr!T1S} zA~;KUwX|CN=t79|ISlv%HwC4EMu$hJq%Or@DGY3`WDEeWYyJ_-5+C)t&DGj~Kd#%i z$)d~XxxW(1Ky66cObe@2?9VH_YSBpOxLW-o{b_)ADo-Xx9U_dq&||#W!}#-iiIuX! zsc0B(q=FVPWBWNt!eYT#28O{c4<5#Wd^--UPu|}y&DPSAdUcsX*NMesiP(9+5m zw`2~^2(`S!M&sZo1+>j{6l+8~t-{#5xP{9S9tOAlfvy0yuEPdV6m<#oJ-eRQ;TGPaF1@U!)g+qxOU^o#=($nmQQ~D=}XDduj{a18vPhl z=BFnK0wi+KzfX{ z1?bNR-Q1?jUf8#aBrU^4I9^J9LUxVsw@@eSkhWgpdvY+xsYo)vnSMB5y?w#9qeS_| z59Fb($Eke-%&_EAdTz8mUVDO|OM!uc*#zqoHH*yvN2Djvgot+#zQ2$vl{Q<;@u&eo zj_Igk23;$S0K0FurWX9#kT}>q5XpcG2dVmSEz0^|o<_;;;eBETF^YWrw^nvRJr+C! zOKFZR*9NEHTik?>Zv4KgQd{RnG-n;$9UyQ8SJGe!jR01f`J9LzOBNW2df`Mt@F~Lp ztJvI|n0@>Y=eeAt*RK)Eogc(Ygn1-RVtwfkm7!kP`!(Hg%*csuK|pWUw<|rT59>x8 zIU3tYp{1yi3lq0P&3NnZ!hs(Bn`f^CI&Ai;ASXJ!1l~kC)VWNUax)j#d-w7>J6dkt zD5b z!m~D6cXfj?#T1`<^uFkT8F;mz@IH4KUq=f(C`9!^g53@)wYx<=dGfK!V49ceL3p4B zSrr$pq&)C&KYB%uj&hi3mDsS0!4D&(t{FcUJ1jqXD|r?px&Ll08x6_xqr~9yRiT(tv+0z9fWY9E!4$ z4zbB@KRNU9j^bV|B(@VOeYY1;in`p!`F!Yh|4=FW(+_h;Df4clC4Yj|qI85>*@Y-5 zf;m!iWw#CW++MMH+9U7JLrK*ys547#@hjChqPG4hFfA zeEmoS=%HHn04kZhFIlN!AUU^IS2tEov;VnM&BR>THgH;cZiXfOB&zLk_qy97RSn^H1B1(Y42lkr`A?RD7{WSsIR+gi+e1WOC~_$YcIb({g7i ze0kOZ?W9Qf&pwn3Z!OYSgPwNe*vf!;T$FO;{{%yRKN98}SrM~V1FJk zNS+Nd67?9=ReWehTPnP@G&A)Et$>a#z4KI~xuk+%deZyq$XOoedlFs0U14`Ad#uOb z%Qb^BGBEWRmY4bkqaoonuC3RjWHxqD{kbD_zxEblEzt3Gue98^&U=3kHeNc+hz4^s zKvmZJ5g$a!*3k%Y6c^3Y{6i?dPkF+NL-`d8cD@KC{^@B4#5F|1WogT04gnM8;{CD} zODpjz7F^)H=;r71sD{b|dSD}#+?wGkJdG>5%ZuxC^~*2jzo^mv8LSIsPCL;>x%x9C zJN{^nv(zLE+73HjMn1H*7U@5(_a>^2K&7jm;7*<)Z7umJkjK3m?87gus!aShrO0V< z*p{*!yYTsMI(F(`c=h`Tz3-9sMnQq=v{$uDjDd1ddoIo$cFmU8Upbl~%XctH{pu9; zmk*e4lySR1P-Nejw3$~#-PE}|Bb{%I7=0ccvM}F%&TRKM7x!Nv{kuWx7tj>WzPsmt zym=ee>MKItz_yN(s3e4r+Ety#Kr_QZxqDyOJXlizQJ9O{_G@`EnooXRT2vwnZS|aw zUrmO)DLuC(6cG&sS55_~kV5+sg7&BXz7c!^@FEjd3^Tt-6tDBYJpJ|xt`^c*I7S#>0E;Bx5~zap#0G8QK}s{J@|00oQIhi73n#_Qk;IW9eayyWpFl%~R|;(|3+@vwvD1zTVjS zV{rbFXWmRm>`h{Lf8S`D3iqx}g*kik$-C@7%jXh~qe$pO04d;N7X3q6i1LbSfPcHWwWn<=;({x7QY$p&%N-^Ar#`h3h?5_6iXCcq z&kR0{^7;5^oc?QQ;8#dgJ=jWzScx(?sd8N=w(Kai;vfFR)W@Bdl}OD)O~FRc;oYRK zi*1!#RVK6m&u=uz-jpN*X<8X_lvMz%1Zg zN__cSef1FCc6+biBI2p<_hGhd3^4BB-G}m|5O^^_*kF8*vSgVumv(wA%kKJi_A2wQ zc6^ZC)LQ7I)kt8k8+@ok|HDrSv2{)41w5tCEb+G{DYg)GIN00bt;|6}_;JDIzRHkh z$9_N1UqV<@F~QTVS-s=+8CC*HAllp5C z6Y`k~Y5ou>`lKs~?2p*Ha8u&aPOsvDSD&h>D_L&IVV8#CrJWjcQe$m1-%30m>oG;#EJ>Zj-UTvwgAu zD>CAKA0)bR-@YdNrxs8ujd4G{Q3j>Rr}Cd-i5mneufCwq=KrI>@L%c=|K;}fi?B9b zgcVtw6IY0o8>FBfdMpX5#(kuDz-M1ts#ayTV(BG8`nAMyA9TsLRikOQd2#LQ-hf$J zfu6L!Ki0H|X%dfY7uN(>Y^9fs6=yuVTQF`vd&z z|B3UPmk9}aX?wA~fLHMCFKB^Qj+o|JEQ)Ck%CCP1)ebx1W;&Rsw z!p9CH#8SkZFXCBb9s*b5$x>~s+%dRZ>*iI3W9Sr&1+voM2V-TeB8%9nT6wbayBaS$ zv==Y3y_^tTV^PG^(*!EfHAF!NN5x;jh{=|9tl&M4JLTs`GMPDhq9$B@Ma_bidCut+ zj&=Qn3{r+xkF(dHB#h+OeceUOGjFfRpbS_OWD-kc-1o5kZ9!@j;K(HR8i>Ga1Ne&43+H` zT%|;VYk;b1K_@RSV|4ClWVtcZ(StX3_J)K>AmuMWCQkiOS8F$2IO8xivvjA(vQyxS zr+JeGQ8t*HrXwB;bhJ)PVd}aw<^&W|45RBlDSwDSi>s^fQ?KJU;`6?X#b1WPT-7}s z9v|q0u>uQ)D+etx362c@v3<29=G-6=awL68q}TAm)u^Z8VCMurUw`fN?@?FAy?%y+ zfNPpqQO|`h+34-zir(1!oqAl8ku;Iv+@&_+ZYZZRTvKgdns}TPmv|G}z+N?0`D0~k zE7x0y)D@MXNVszAAg&gZt-legPOKLyTGNPeojwP3}>^g z8`0Q~4Q`@(xw=vZ5MX6cPGm_;ZfxmgOm-4LAowb2s)rm7i5zdHL`8gLA&vlCcFD1c zf;14~-qo@4!1y@8a;j<_YcSuql~S9x|KyI`$>6nh2_=O89>Wh*Pg!1t&usynfwECL zoDp{rNUyOor~aIn6E9GO`*#j6QuaKjX8@q1WTVj94yR(I4_d<+oc7BCj@Oi5!uXQw zsXQE=v&1>!p}=0SqFNfTrgg)5v9S&nz{d-qToZYy-w$_y9a1aLGjdGOewRb>3h zl0d4<$K$g^baCNplu7uhJ8dcX1vClEzba0>qFjS2=!IQIQ~7A~)9-S|e_%+5bW$q` z!I|zd%hgxl{j?356j}?z{%IFlIGM%rmicx6u*!#t=KwJosLDNOP(&@q&{}1>RqLz3 zof*H(Un9sVKw2Ih#VBv=W%a|~|MUEM?-=WRd|pckhqMxA&cvgYFf=q2tMHjr4l&E@ zSW7@9==RE5p$R9m?ZrN*p_~M;U3srIB!XCM5z9A!nmK4JSF`U055?b)ZR?VpIHT1k z`6_SO{-{TBF=zMQR6AFjzZKJVcCIvQZu-f;w6f7*q zz(73Y5l2e2!QB4p%&o{_tlyjNntj9m)mr;e^zPP}d6vT36|E^zskR)`q2_C>T&KV1 zBd4vyS0>7xAHL$7wwFEUkoY)f_e|Z*J;iE!#zFa~>(6fH?fcnS&2`!zs^%d8+cI$J zvba*Ta%G~fiT+XETcJj^U`eSR6O|WcGJ&nya7AboeTuW5ui6>z z9AM=#qp{b?plh|i6oG_;tf_I4``2AzHJS_uCaZU8JPb#R@dneheKXAklidJf{<-No zva_BNQ6BnF`PUldR28XRuylKOntpBN#pGd?g}!FQlwC(-&liDJ5Dx+}N%C^Xl=^!F z8LryYvY_T)b?Gqp*aelDFmIAR645Palng(0`8!}Hu|$3BT{0W5qyBT*Hv3ll#{mk z`UkExKItGwTz4FUP zECp%2^pP50ypbN;3<=ESka^$5SXPbQuvg%o)h4o(u45lmR|$>4SWK_LNjupvD(b|Y z5eIB_K-tr$-=vIA(uL8av=uCBDlLUP@z+_|1B8l0%}BA^*gH8@99>JxoC$SutCg%O zfa^Ljn;0^>uIP7p5;266x?P5i`s>0#m5641oDGy{TfVYHd8@4sLi!bmi8h&0dIZ=d zjgZY#jjMxOi7p5LpjuqroZ6+;FaKdknK-k~hS3e}uMRgQrI=+He+M`_{hyQ_Yrw=* zNym0eY4C<}R5icvyow<_Qu%P2ZhVBso4#fo9-O*22IHNrPE$h_D!D^G8}qo-oEm4U z!lJ8uIst4h-k7|5?o<&9hb41$uFiaSCeTQi)JE3zpzKUdZNc&B+@cofE2}GUoem2( zxup~Ztmr#mH%wf_qh;Hkq6%+i#|3JbJ~g*N=9kCGMNA~zI+^u>k!!Hap(Q@%f8}jJ z0^C<7+Em{%G4>P52ZqO5BBof#-i=&c3sT^}CxCQuC&tbOEGFE?Gvud<^|B*K zooTe46lZ6`jIM0D}v6IM(SB{fsG!bY_;czPa zTd9HKGQqUcUG)5HL~;-`D1~UfotS+=9XEITSw>{1G=+GGIgVJ=_6xNf!r<6RpwlHu zS1aZ&M<(qA3nd>bIFW|3p6+Kf3!8i6PdgH@?9dM&2Hv)2KaN+PBTQZ#6pa&I8Z)5_z-^l>8x%O=31bw0FpbdM}oaHVWK=3D+W&sxq=|ThAB1 z->VK^9$kE5s+cRKH)e`fxu7r+FBM`p2lklPUCWy<2wUZ=lf+h48BB*K;qaVbu_^?w zQ);zfTO>^d!a((}n28N6$YK-Ko+4t~jBeQGs)bAk0tJg%-5++UCzmg@#U6MqtsB!> zLWR`l*n1kp2So}wrmZ_A4eQE?L0AmQLL)Qfc3H(tyc2OVl!O=ywRH5-C}33hor|*_ z&eV43urXi;AozxpBXhss7S8+t&UC6Ws+tW3$7`_*798O+aaPBn4B>{xqk=UJ`%H_ph0rs$mhLU|irF@QX0t2*hrS;e#@m}Z3KI2G~q zIK5=KDTrE>!6n89V969NE*oRZ7VX# zp`DR#`B`0iY*^O~f=2pj@c?HC8tQ~_4Rp}qG)oyUYU6SijiK~F@O#putO6t>ar2;! z-@?x34AaYIaB~6@f*UXdEJLG?vQz}lp8Psh2g({oq9(IYgd6iogOIU3(CV)e01}Wm z0c`Q0Kg!j1=p04aQ>(i;X{sA8mFabxE|@7xOVD9n5j^5SBqc3f`_wez^~4ckR(Slx zly`sw%jI~Z5loVNvroO)pXvlm%k0JMYf<}Jm?0F4UaMz#N~Ow^7r8tg#vRn zWi2G(N#s~*igm0F5*-p98{hF>8L!%9piG*GZ71{{bMEMBMFD;~V#3?GxV9}`r?SmS zd@}oJEqS(TJxf`3L^NW!9?9rs&|R62r~57+c4M2s46U|Fr9#%d-ZPRaiwwRUij21fZP^CzlzM z_2$S=cOc9FsD!f*aI#`TauX{0PHjv$xN5~l>a=!g7W(<++UN$hya zl;T&LJaOjh@`cEp4M>#j@MU7dB(_}tfy*5#k8kfp6CNu_?d0;)h7&lET~EhC^i3aw z(wsdUN{_^X9svlj4H;|%C$Ny_L8g#TvSGNA_BW#7e_&M2Kh7d0=ucnPtoB+YJv!+6}+&+~806`XvCKi7}ZJZSrO3^g5%F!IIe4T)sfY?B<(9vuD1j z!Rj(KL0#`jGNk`Y$L4hnUj&~W%k4MT>0kb#kbXG-zBQ-5dl-o-JYp0HqbtPO0{+DN zHQ$MwQ~~ivDr;L&S5j^%3G|X+=ZBQp!agU6XUNyoe3aEgf3JHbZa$CEzfwsONe#Jd>%+_=zn*zf-Izin3l4Vr(IK@sq&JZlxFVe?jd(-*|Ui{pXue8QCI zm30S?qh5Ggeym-oGg^cy-S}Iu-9Yo2PIQDBd8;JgDv3pvoqlDr`$4^4yW1*BYo9mr z3b$EJdUG2rl<@U6;k{}2bj+YCLJOOK$IPa414W=s4bW5Qdu*wDI7*Ubv4DtMXS;EY zaO~2ZAZyYPZjNs-R2I|e>j6S9kS}5bncH567na6mzO_RvB|6S-JVl3*dwP`W(Pr`@ zFpf8K_FysIA&!m`Fk=&5^P31Uz1n!ur4M;HrZ^<;8RM$KeYi+xaM6tOuYrK9N1UD5 z934g}8dYCIYa2Q`IRul6sU8rndFgF)?N&pzK5gx`+?el|2TEqWK*^XE{8)(JcR$h~ zFh!@$G;f59&;ETuPcs_S#-1#Lg4ydI4MRbH%oabZ)#(ny6%5q=nBYD15=Oqe%Yq++tWE775r0J{$k# zlHw*11O(i~w{Dv>t_={Szk3|cHq05ty=AcO$4SQ4c%p0lquee*kQ9_m+&4cm`voI+ zwOIs~@9OJIMRcr)EGdSOnPd6040VLzmz#m4l4FCAqQBDQY^eAZ)Q;~eN6F>j#k{aK zyI))qOM_vZ+*KjAc~mw=8T5KxppXjSP2FrDP5Yjmj>h!2{~A)na|~Y1iiYbm9HY|7 zy_G9FGw$>2^?E_=kfvf)`gu9M^1Xf9-N>sYX9zj6sF-7g7f;0Y`nU|Oz}SpFA02Ms z9-}Fmn3%vGeR@*;Nu1{tPGHX_w`3@%Eu=-FcdO>Jkw;Hqt&_0(4as2G74F+diiP`U zXs3qL`SLFrHbobdaXgpFZ<}S!w9+A4p`o=%O3gW?@P*ieD(5)mJVt*{kl|P|HdW%^ zlS&B{lCO)Qb)me)m&exP7Tj`P0$S(UJcFJ^O)iGNryl3G+W6C>WPPGY`S z7>7nTroNhu>|cOeyn;#EGIE9=8b)U6st6{+%DUkAtoyEFXTz+9H*zO6tW{@*V1}1hj z!pL`Nc)68@rm#%l2s@U_IH$SYphTQ!?{0P6IEDEB>bwrWE)JX&zUA)<8+lol(;DJmMhEFkE0z5jTw z8md?YyV?a!lRa_3RWh$}T`u)t_2yh`1ER|8<@{{*pGc^xSp}~83Hme?WB^x@)9aj@ z@iDvXAdZ{W*QCs8DR&0diJ(|l1rxp}XD71hSuYNVwupM<%mh;`&e_bVoKylB-{(aS zZgH$_Px5e{VVeC{^;*@ui!?`(@%p6PK{uWkoaN+F{r~jFz&&>_^a))PosFcYCaU;c z+sK_G{gqs(K3({?kHMgN^vg5up|1bubA!Pc@jA36BfM!I&X#{Zr}JMo zqz^Mn1a5aSDE_O{)^4FU#z{A8*u>c#VZjU2z%%#lOT#o@a?fCV-zT33Y^5QM$}#$h zgn?K*6)F|228=Y0QUu7p0<#P)OqqEV7nqas7| z-S|$aF5Q6j`su_2i)*@5Oi`@^4MRJKgHh@Sr30+I%HGEADt9GNO`R!OV9`8T1m-Do z2dXF?jszE)NEWn5*hf99-Nre0lj9D?5OsJBT?O|24;cXjWCzPF^NP`bDf0Hn9*b9jx(B;V(C+bC=k%s&fsSicrC?th>ZK0W{zI3g@#$*4GU zHZl57>FM~npi9w$IHM+@B5>kh)B=i$eKYc+oJqq(?ZwoX?sYOb8zIDBI(>s0;fIC( zYE8-VfWg?%HkpM4fys7%T+)MpOA!e%_-Qw@y!Y_+5;hxCqw@kz5ksw5bm%UIAyFs` zg})B0@+B()g4Uav*~v z6|?A6fwndJTPCW|(~IyE7FqsH9OPuY#2M!v$ zfb_vBk_t_VrdPoxn74%w+5+fRQSRK3|6dVPT|XK@9YIPz%6HGiTS!!eway`b^a8;jt!&Q zS>o^Hm476gBxz{HlSs`LOR+#oHKuzXpG<%t_m6|boSaRiW2H?egkXSTye|4D<(TZJ zcrg-70#W<%DI+99bOEAnbHH6IHdH31vknJbaC#wnTGcF?Fb~TS)Kw<#4ZNgq*ro`j z!)_s~)c|vGdFjFAW^@H}D?rc5uc0bYW~rToK9%&(%D-9Soo3SJo5+N`z2`mA9G`U7 zRY*c9q5$>Wxw8bs&!V^Gwep2Zb{r&GQ2quu2}TOIVz%>+gYse%D7~GXjWKnJL2%68 zYAy;v1VrS?2L?@d06{7@AUh&xambM&(s`o01|eL|&qG)V8Cu{pXq@zjtEdB37yZ^J zvLGgnwM%X$DP_^!VFG5U5-Dlgl(h}uC^D2jiH86wEwC+a}_QTbu)!7M0Pmc&w}xlbS`a`WmKj;NrBn` zbpklj)dCDe?>x{>l77kxhOizxE%o)vg71uj8M5=$Gh+=LW8v#Ux`%(AT!vVN9aj|J z4YSTJ0#)Az&1Jg_c6}(zRU`eeaIr=Qu+m{jPgEheoy;+4%4u)-dn1c4n7F~zY`9IE zkC6%wnv5sK2=448sx_p^DJu4J?}()cg!C4nc)rQNk(Kl8!|CKTVhnN=K8ijNk_y^R z0SPz)m+m4y)c@eBjWRQtP>3*z+!M_#K^MoBaWog; zqoGH`hSpvG;wdvGnAfw~XAYhnC>-1E?}P%qJ#JeD3-$Z-+T|WXfvb6ruuIE4dWP*H zYV8&ih)G234xN+APDwK|sbr%`yLCEa`^%^zX&R~l#Bv%boZngEOST&ol}pl3v=Nbi z@Ee{9w%y=TJZfK}v8m@>u5g|c^$*i31kIxDG@?}()baA^yZP!t&Ne}B)O#gL*66%r z`ce-Kg0;15iaryG&Hg%hcoNS$xSgLxP@!eMAAFq1C#|W}WdEX*cO?hO)cFuMe@GTb zZd1f;-NC9^MfRv;fnW6ErnH8;cU)1@~*k|)FFjC6=zp$`7R zI~EFmF|3v=RmH;1C#wtt*3QI+baS+}wU@ND#V25}ah?pL-kVz3;rv2w6H~L$^6sIi z?i3yy+ou!ueJ8luNcFhdi3CF^r*gkNwqdE3;K#$JAGG2kQg5%#%N^W%BXr*#{=@6( z^!#_{5vs6fExG`vD)o$ZsS7YGy7~8VfWYn#^PS*6XQFaRz z!>AxLfAA>z*Y=rM!VG9bvaT)8x%;=fReQ1%f?0l6ktD->2o(1X3%h5MISw(wNcdV@ z04b`@UWl}-(az(KO8xPmd;M0%nhhxqCHI`YVnY*rzWrH>!R zea`pOR+GLy((skV?Q8h_L36KXdtHioS4&bE&zgTn-WpU6|IO^}Pi2o$y;OEs0+OYA zbjCxTcd^;nQBl?HP+ju-Iu`*Ea$EI6Krm=0wV^Kr6^}&(?lb(| z>xt#fHm7ml?vgjZ1nH*qiiVUPC0{-+5BD?0!Z{y@zR1zB4A;jLw|ZkH;L8?@%CE3r zW|8(qjDsvdm-I1b6t(^naJAQCK-l@A-X*s^MwH$-Sj{{j1*D2EJ!V3!y;mzJLuNf_ zam&Z+7>Jm=c%c0g#>bF~FCu6mNo^mR8s!74EN33#dy(q}X>n=Ldfg!I9v)BQnlS96 z+fF`-#Xf=Ny|+PSE8zLhm@p!f<>-}-3Q?_{Ppy4jnMnBiOKx%BOpY$ZpH7d!-T6_A zCWT}30_CrDs+hG3dVF5Dm>H~qcYlfX-N;n6CR!B-Pv#`X9 zIW)0Z{c8UOBR@kn%#mTt4veKc&MSXjE*C}U5pQOs#Vc@;F@CH>bM~-0Jl=nqs7EyN z^T3AjtYSOL+*_NzE^T!!IJu{@KVcSlC>utk^|rNB9fH%MXe#3*DaT-Z#(E1mUcJvf zeg=7M#PMbUGiDGImxp`mu$;&lS31i+8G~P=UH-x0DsamR&)#aPcFk|A&@Ur(_rB4X zbH7C#B9)XzE=-SS5580ydLFPIUOcHyN0&;IgEv84CA?JNadpWRl<;Y9RZSffYPmI1 zrBp>9bBJv`V?Sh|B2^I4>!Ad)J3 z%!9BrzLQ0Ev=xJgdz5cvqC4QX$eG_au^(TNOABQlyc_lx@M1qAHvaVhU(T?6fBC49HJ25Hr|?l*vIG`U)s0hLdKg+$9YrLTFsEydVs?LLM*`~ z>U-EW)beNQ(yZCEI$M(wwQEoUn{X4H&iVRe4H z(4=c`UXb43Dox8scjJ|y^wz@& zeaF7%)A>pb@yEBGrl8Kr>2>*XRSmavG-_Ls`X|3L0ktJsgjddnrj>6gqA)(PiESm6vaj!a#)I!dH1OXKNXZIjdHED| zh;*%gw79)Ngr4u0oNn(8_%Vey@Hf7tDT5iuZ7hjhO%4xylc<3LZ^vx#@-IyT?>*AS zWu+ud5r8%fqEHE$v%8^F7v;Pvh+IR^o|w3eZDfiSGt}3WY;3W9Z;i}KKP1Gy-QZQA z$oizRK|$g06`Q(;Y3TVMzqs8m=^L#V1ciL?e7|lka<5OuwuSJa9Dgo9D@L6OrJPj0 z)o)PBQfd|!zKG%({e$Am!24DukHAaeO27Isz(tH@iR41dVpQ&JD4pOl9Xf>|j!%9y z6sy2sOeM|DM_=et6rGPTO%R8M*M}b;cS`lGsmYEUpwcn)*Qs=#dc_Vc52XD=!p86B ztRkMK31oH*I&k-l&>6gPoO!V?8{tCKaPP+(l;lJ}*m3%wS7w;6%PPmMh}9&A6xJ$c zucSS%Z_y_OujXMGF^b3lXKZ$rbX?+7@udOd#VM%uJqO+#Jel{U*Wgw>O9qnp!lETb ziblHy!1>dScg)D3&3a&~=kHFt-{%8p`PnqYIC<>O~)kz~t2JO#Vk zDIZz~-jFT6J%FKgfmN6;3BFP~!jx3;=G=iWLIM=+a^@}OxJ3~YqA$@db=M#+hd`Ql}Oo7xSj9Oynr ztWCJiC)k?P!Qly=b!P-Fr{m$~if!i_Z$dVJ3&z5&`7$$M z8yCJo5RWre1b5`=WX5|lC40lqK9t;Va{Ikk3LefG28KE+77mwR`e&Usxh+?pVzp35 zCyU=fob1xX&yvL>X+u#a+B(My+e9^#=n(lQ=XRDsh6sm^g<~;uuZHB!3#wObm4y>>z=SY04Y0G?dKd{AKg!KOgk^ zqGB^yAA%F6)*Mn4^oG-Ik(k*!qShl6lX-t^421zD5UOZM~UOW9(3>;dk{5AM&$#4iP zb+*o$j-5)PjPF#^){Opb!unbvn{|0TQWv|oKNnc^?0--HOHlD~E|l9^!kT9GgRxiaO_)tAFe*hGRv?4WJm0O{ZI;YtCQJsuI_|BC3oF7?Fy$>zVwpvvAtU{ZTFU;>rxHeo? zYFVaUl^%+&d?sQb&5q;E?vV**VPMX}Y9a`$77ZZLf^Q(22!*6G(9%C)Qt??U57t~? zJu5D$$7o|WpD4#D4W2e!<%!f0{e6N0{sE^Ifrt@_Yu?3xrmMdAQj=`_)k?Y%{OIJE zKMNn zl#h996i3^uR+GP5$rve zJ^7R_saA6WOe6W;+7)e3YB$3ozjhLY6$2Oxqj>|of;?AuQLNY}9~|Wdd)6O+1u38^iD-KGp#xa3B<@S`9psQ~V_}@piA}9*!rU@qWJv-mFcv*$ z!dR8H6;Vg)ISH3BlzVLvO_sl-xhuaT%MkOzNu1pqCSp{nK4pnnrnQMvv&EB z2)osUZj;s^l}fDEPGXH2VrMREPbb8lSqD_x*d&8EuCj)rKp{FRP}1IKPcH%HAw_23 zIDT>SMcXYd4gUnq!?23&G$jf?UnC=IWE8}akEEE0<_3e1N2B|M=xBoCSFj7S)j`HN`=mQHb@XbtV5KzaN?tmFglFlpyy3dY|F8iRv7^>$WT*f0Bv@j6I+yO4NBrocY4`_gk_ z_2|2f>qClGyelDJNnDz{d!u;jLJDjZ6ZAF`Z(TGD3%89(a7AUrS|hs@&2YAXa|Yoa zNr(8dv_wtjRdmc!fV<$P&X#jg9c=x?*a=wxo!7~6^rZOoYpEKC{>03rcxwLmFKSNY z-jd#?Ux@1Q?~VTk1lTf9hKH<`>Kh^jjTuZ#78vPyY+W#iRP`ZxJRpk0mElwHIO(&t zd(6n7l-`8zP8He6D$@X7&>?jb!6A^>JeFs#`&v%4+Srjpj>eHGhJb+!4)sjcn#{_L zCC7lUMk{mD}&Y^MZbh{2nHz0wN^__1L)|+Cu^R+ zJ7eN)a4(ETV#?wK z>R~8!a&txRr{F_79ZZc<&qE=LpYl$+Rg3BAA}+HmnIkD~dhB7$|4JUb_0H--GVP-1 z*~vtRvs;V1x=`;S?{=-l?n=tvqrTanKR zrA=XAN6SxXfM!%+blKroG^d|MST8k;w@WT5B7FYHK$TdpxldY~FlP=5YEXPb>!3!% zRL8&unvh|S#Zv*Fi|7n(bQb>^fctC;anL;q1Yq_XevuCzA;3MM51K0CPESA6MIsaC zMHC)c&4{`}a68s~35=)SZT=N=XBc;tmpPs-_NDl7VH#YDTHcO#tkM!9h{gQD=UA!! zs}jLo9_q$NlC;;u5Vqwk&Q zoF}8b;*OhH-|-tC-(6_mRF+g9%d~JTEi`6rceGdsGfvuvAtkKMPY{u9rF2$W z8#yP`u^FoLHv(aA03YB6P}$AQ&z;~+BRAGdv)u0i{|=Np_Li6gTqG?$KpHgA|Hzyv zb3{(PH_a+$v#U_EL(8bhI4Cr2n1=5eM-VlG`MM=$SlBSGL5C$~=BBTMsZiNcb}>VW zvEu=he0Z-!^hSiP_cx%kd%U7_!{B`0=dgW+@r4_iAp(6{|_PaxX#?^~Dib`W!9(0ETcoa zpkW(1C2=;{OP7kEy^sIC0-06Y)kp@gTYzAoHARwOI)YOT!=rNC4JD2ItqiDq7E4vi zj#+qH#RWWJNiCIR`LM*0H!ELyysuMtmKekk4Q_QQ`z%W^;uzF`Wb=`cEF&{}DJdiv zzZdYJN!5{b7rN+$W6bLHJel0ssJ;DsdXie+df2Sbomsim_Nm6bnkW3 z=m}Vu4s}QP*#8%EZy6L>)3gcC;O?%2yIbQhxVt+HHn=<7_~7o14Gx35yW8OIjk`N+ z-_O3g5gV})-^RCp_UGxYI9ZvMStqONsw;oXbMq6SQ2Y-3a^NGD_@}OqT_28ud+7cb z0iQFtkZnbnnwXn(GLfVjb2%!>;ASy`XKO{m_D~7)q>(pu%MKq$u%mHCL-4GDa%5d+ z<5elSYFt+)?wH^WHy{1JD+fK(J`=A~IS3;tpQeRJbTPs_~yl0|k?nvZSQJstW!Y;doahy9j2@O~q<4t8|w2@()`5qPlO5aHmpa-jjmAB&pH7!dLv!>-?0fjFGvA4Xa13G{(7=Z6y`&^H-yQKKlX*J44UeF z{4+tZvd`V`UiV}x+6TPB00l*;_{`IPoa|qf1InqymUngA?R_VkNW!$ZQ_uV8;eWbH zQgXa0c)aqKqjUDEj^9SR5GLtKiomuWr=&wF8>9u7(M=dm=@ky$5A|{+B`={S0cpJL z?=!0XY3f_)Q33pH^YQXR^T>rdhG$pL`PtBYFEqHvLQ692WE;SQ;D&gm^eCsdSQGri zHGVK2V!!4ouEFz1qIa%yu4H}Cb*;=DN+MzDY(LN_%5PY>Z#0R<=_akaXQp$1L`})e z(HmvXHatf2NS>KnNm^1Yz1@#E&iBXP26xZ`@jxvm=}wZ8;`U@LA6DkVFGgr8%V+^W zIW0(Fp|lUL&4Vy|Bgs_}RnCwp6E(MIxcdc)G~fy)mJ_RIQ0)Oy$+6xgnLf0X^3+vF z<`cp2i-goXb<0?3uewp(3loa9M!-vR@vkw(zOa`})nrhjRH}Z@(J~%M^dKlFQXDE_ zl+crNvi@PdCdtLn+M`#dd-v8v+zSo8Rr6pSrbCSHVN`FD^;jk#xU$V=gcZg7D7PGDm-?KLP*g_YX^L(qvcZK}*c+_;IK~pCm$6laUvR z$3dJLfloM8%aJ7YV`HYDg9#qOiFdaJkDCJtsq6p>j&wre5SCuE1f&}86cRKlBs%pE zJt2ndL%`V5zS^3kx1_iBvzBO`8Bvw#G+deOMp4}YSH$2#-F=m6)8=4;B)wjT1x!jM zVKxO`hFl8MF_-ud|476yl!PQH#Z+J)TxuG`k)GykLA-3m9W8%&Ek5Ifo0_0_H&=(q zwIPvD?n%6o;%>i3+>Wsy8Kaz8dNy9La9P-<@js#FBQW11#bm?Y_z}wxRViEYSpz>3 z;G-Fpzwq%pSFBwhgm?GR&K|tN!d9PGipMfXjIgul%g?Bt;R%n_pIsVs$+`8iW9V+~d4M+y6u^Od z7Jf-2Dp!Un>4uTNQ_-?0jB4*P@~T6BY??tg`qbLj`u4M*7x+ug2G-4hKYR|itd9t< ze}Wue_9xp_!?l&w*ZKm3qYi(P67V7Q-l&AN#xoYZ8$`m2kihR#EqmdizqTPj4orFK z@;5Fv>%XU!a)*xly?DjJPSS*lb3RGetT;nHj)%Km`fW>b2}P6*9S><4z}gWaNz$#M z``abQW)GNr03By{G=da>=sPQs7%inzfZ~$MN0y~TSf7e@=%=zH^bLv2+CSJrvMD0J zV9{A9#6#(Z4n5Zw$JqNA$o_-`Ywt|6`|{)GdQ$!~y4l|1zC&;Cp0G|%fTsX-XTpdw zJL-0U#%0+MyY&2`Vki{Szjuv!hqBqvo{U3MkrhVIm>Ynzcgr>)cAK6{JZQY?N~K83 zGEay^g>HaChLis@dU#tLhxPf1eah&xZ(IKtf`C#7s|ew}S;sAP6&ScP{zDnIIPE9{ zuc65luP}%tbyl2=e1t)@UZ}7iJqaWYle#d zKX%G2dCvD5#@++P%$ZswOhyi79v&5XXguqRBy>Y-diM-DmOtB{x{M6y20>T#89qQu&EF4pHm8|1VbrbQ!@EMmqh$#cFU-|f6un?(k z0wfeV2@|v*JC2g8P-`Lkk});nX!+V9AZfn-D8nHy?~emmmbXzK%$rs3Hq*^7>u`Ri z(6@f`fTKgMQB}dMWSv?nq|J*|i;GY*Zcv)f&YfWQv2>!s>VZ}VfE-F_!m6~7RH0}li(TxKGUZSCqs0Le3&x^X!y{!R8AyUtva zSiP4Hj1I)cWi}YB++>SRP{WKUH@-WNW&2Jk{z;QfMTkl6w@-~%y^sDz9(U#x*`{{QkC$opMZOPFc02tH7B8nbJ)HKC2X1FZ>_Q�k3w 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 diff --git a/en/application-dev/file-management/figures/user-file-access-framework.png b/en/application-dev/file-management/figures/user-file-access-framework.png new file mode 100644 index 0000000000000000000000000000000000000000..da3be3e609df7c18b4652fb6cd60763dbd33aad4 GIT binary patch literal 32033 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 T)2-P{<7OFNH{(RSAy`Or2(j`@i=ueRquM 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/file-management/file-access-across-devices.md b/en/application-dev/file-management/file-access-across-devices.md new file mode 100644 index 0000000000..434af1a292 --- /dev/null +++ b/en/application-dev/file-management/file-access-across-devices.md @@ -0,0 +1,60 @@ +# Access Files Across Devices + +The distributed file system provides cross-device file access capabilities for applications. For the same application installed on multiple devices, you can implement read and write of the files in the application's distributed directory (**/data/storage/el2/distributedfiles/**) across devices by using [ohos.file.fs](app-file-access.md). For example, device A and device B are installed with the same application. After device A and device B are connected to form a Virtual Device, the application on device A can access the files of the same application on Device B. What you need to do is place the files to the distributed directory. + +## How to Develop + +1. Complete distributed networking for the devices. + Connect the devices to a LAN, and complete authentication of the devices. The devices must have the same account number. + +2. Implement cross-device access to the files of the same application. + Place the files in the **distributedfiles/** directory of the application sandbox to implement access from difference devices. + + For example, create a test file in the **distributedfiles/** directory on device A and write data to the file. For details about how to obtain the context in the example, see [Obtaining the Context of UIAbility](../application-models/uiability-usage.md#obtaining-the-context-of-uiability). + + ```ts + import fs from '@ohos.file.fs'; + + let context =...; // Obtain the UIAbilityContext information of device A. + let pathDir = context.distributedFilesDir; + // Obtain the file path of the distributed directory. + let filePath = pathDir + '/test.txt'; + + try { + // Create a file in the distributed directory. + let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); + console.info('Succeeded in createing.'); + // Write data to the file. + fs.writeSync(file.fd, 'content'); + // Close the file. + fs.closeSync(file.fd); + } catch (err) { + console.error(`Failed to openSync / writeSync / closeSync. Code: ${err.code}, message: ${err.message}`); + } + ``` + + Read the file on device B. + + ```ts + import fs from '@ohos.file.fs'; + + let context =...; // Obtain the UIAbilityContext information of device B. + let pathDir = context.distributedFilesDir; + // Obtain the file path of the distributed directory. + let filePath = pathDir + '/test.txt'; + + try { + // Open the file in the distributed directory. + let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE); + // Set the buffer for receiving the read data. + let buffer = new ArrayBuffer(4096); + // Read the file. The return value is the number of read bytes. + let num = fs.readSync(file.fd, buffer, { + offset: 0 + }); + // Print the read data. + console.info('read result: ' + String.fromCharCode.apply(null, new Uint8Array(buffer.slice(0, num)))); + } catch (err) { + console.error(`Failed to openSync / readSync. Code: ${err.code}, message: ${err.message}`); + } + ``` diff --git a/en/application-dev/file-management/file-access-framework-overview.md b/en/application-dev/file-management/file-access-framework-overview.md deleted file mode 100644 index 1cdf4f6c35..0000000000 --- a/en/application-dev/file-management/file-access-framework-overview.md +++ /dev/null @@ -1,44 +0,0 @@ -# File Access Framework Overview - -On devices running OpenHarmony 3.2 (API version 9) or later, applications can access public files on the local device, remote device, and external storage device, as well as files shared by multiple users, based on the File Access Framework (FAF). - -To ensure user data privacy, this framework allows users to create, open, delete, rename, and move files on the file access server only through the **File Manager** and **File Picker** applications. - -The user data of an application is stored on the device even after the application is uninstalled. - -If a system application needs to access public files on the local device, use [File Path Management](medialibrary-filepath-guidelines.md). - -> **NOTE** -> 1. For a non-management system application, for example, **Gallery**, use the **mediaLibrary** APIs for direct file operation. -> 2. In principle, do not mix use the FAF APIs with the mediaLibrary APIs. - -## FAF Mechanism -Based on the OpenHarmony [ExtensionAbility mechanism](../application-models/extensionability-overview.md), the FAF provides unified APIs for external systems. With these APIs, applications can preview and operate public files to implement their own logic. - -You can visit the [source repository](https://gitee.com/openharmony/filemanagement_user_file_service) for more details. - -The following figure shows the FAF-based file operation process. - -**Figure 1** Hierarchy of public file operations - -![](figures/public-file-operation.png) - -- **File access client**: an application that needs to access or operate public files. By starting the file selector application, it enables users to perform file operations on the UI. -- **File selector application**: a system application that allows users to access all shared datasets. You can use the FAF APIs to operate the datasets. -- **File access server**: a service that supports dataset sharing in the system. Currently, [UserFileManager](https://gitee.com/openharmony/multimedia_medialibrary_standard) and ExternalFileManager are available. UserFileManager manages datasets on local disks and distributed devices, and ExternalFileManager manages datasets on external storage devices such as SD cards and USB flash drives. You can also share your own datasets based on the FAF server configuration. - -The FAF has the following features: -- Users can browse the datasets provided by all file server applications in the system, rather than those provided by a single application. -- The file access client can operate files through the file selector application, without obtaining the permission to use the FAF. -- Multiple temporarily mounted devices, such as external storage cards and distributed devices, can be accessed at the same time. - -## Data Models -Data models in the FAF are transferred through URI, FileInfo, and RootInfo. For details, see [fileExtension](../reference/apis/js-apis-fileExtensionInfo.md). Applications on the file access server can use the **FileAccessExtensionAbility** APIs to securely share their data. - -**Figure 2** Data flow of the public file access framework - -![](figures/faf-data-flow.png) - -NOTE -- In the FAF, the file access client does not directly interact with the file access server. The client only needs to have the permission to start the file selector application. -- The file selector application provides a standard document access UI for users, even if the underlying file access servers differ greatly. diff --git a/en/application-dev/file-management/file-management-overview.md b/en/application-dev/file-management/file-management-overview.md new file mode 100644 index 0000000000..a159a3348e --- /dev/null +++ b/en/application-dev/file-management/file-management-overview.md @@ -0,0 +1,28 @@ +# File Management Overview + +The data in an operating system (OS) can be classified into the following types based on the data structure: + +- Structured data: data that can be defined in a unified data model. The structured data is generally stored in a database. In application development, the management of structured data is implemented by the [data management module](../database/data-mgmt-overview.md). + +- Unstructured data: data that does not conform to any predefined data structure or model and cannot be easily presented in two-dimensional database tables. Unstructured data includes files in a variety of formats, such as documents, images, videos, and audio clips. In application development, the management of unstructured data is implemented by the file management module, which will be elaborated in this document. + +In the file management module, the files can be classified into the following types based on the file owner: + +- [Application files](app-file-overview.md): files of an application, including the application's installation files, resource files, and cached files. + +- [User files](user-file-overview.md): files of a user who logs in to the device, including the user's images, video and audio clips, and documents. + +- System files: files irrelevant to applications and users, including public libraries, device files, and system resource files. System files do not need to be managed by developers and are not described in this document. + +The file systems can be classified into the following types based on the file storage location (data source location): + +- Local file system: provides capabilities for accessing the files stored on a local device or its external storage devices (such as USB flash drives and removable hard drives). The local file system is the most basic file system and is not described in this document. + +- [Distributed file system](distributed-fs-overview.md): provides capabilities for accessing files across devices, which are connected through a computer network. + +**Figure 1** Files in an OS + +![File classification model](figures/file-classification-model.png) + + + \ No newline at end of file diff --git a/en/application-dev/file-management/filepicker-guidelines.md b/en/application-dev/file-management/filepicker-guidelines.md deleted file mode 100644 index ec813e256d..0000000000 --- a/en/application-dev/file-management/filepicker-guidelines.md +++ /dev/null @@ -1,65 +0,0 @@ -# FilePicker Guide - -FilePicker is a system application preset in OpenHarmony. You can use it to select and save files. For details about the implementation of FilePicker, see [applications_filepicker](https://gitee.com/openharmony/applications_filepicker). - -FilePicker provides the following modes: -- **choose**: Use this mode when an application needs to select and upload or send files (including media resources such as images, and audio and video clips) in the device. When this mode is selected, the FilePicker **choose** mode window will be triggered to display a dialog box for you to select a file. You can select the target file and tap **Upload**. The application will receive the URI of the target file returned by FilePicker. -- **save**: Use this mode when an application needs to download and save files (including media resources such as images and audio and video clips). When this mode is selected, the FilePicker **save** mode window will be triggered to display a dialog box for you to select the destination path of the file to save. You can select the destination path and tap **Save**. The application will receive the URI of the saved file returned by FilePicker. - -## Development Guidelines - -> **NOTE** -> FilePicker supports only the applications developed based on the stage model. -> For details about the stage model, see [Interpretation of the Application Model](../application-models/application-model-description.md). - -You can use [AbilityContext.startAbilityForResult(want, options)](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartabilityforresult-1) with different parameters to start FilePicker in different modes. - -You need to use [Want](../reference/apis/js-apis-application-want.md) to specify **bundleName** and **abilityName** to start FilePicker. For details, see the following sample code. - -You also need to set **Want.parameters** to specify the FilePicker mode to start and the name of the file to save. -- To select a file, set **'startMode': 'choose'**. -- To save a file, set **'startMode': 'save'** and **'saveFile'**. - -You can set **options** of the [StartOptions](../reference/apis/js-apis-app-ability-startOptions.md) type to specify the dialog box style. The recommended value is **windowMode: 102**, which indicates a floating window. - -> **CAUTION** -> - In the **save** mode, a strong verification is performed on the file path based on the name of the file to save. For details about the file path format, see [File Path Management](medialibrary-filepath-guidelines.md). -> - If a file with the same name exists, a dialog box will be displayed asking you whether to overwrite the existing file. - -ArkTS sample code: -```ts -// Start FilePicker to select a file. -globalThis.context.startAbilityForResult( - { - action: "ohos.want.action.OPEN_FILE", - parameters: { - 'startMode': 'choose', //choose or save - } - }, - { windowMode: 102 } -) - -// Start FilePicker to save a file. -globalThis.context.startAbilityForResult( - { - action: "ohos.want.action.CREATE_FILE", - parameters: { - 'startMode': 'save', //choose or save - 'saveFile': 'test.jpg', - } - }, - { windowMode: 102 } -) - -// Data returned by FilePicker to startAbilityForResult. -let abilityResult = { - resultCode: resultCode, - want: { - parameters: { - 'startMode': startMode, - 'result': result - } - } -} -globalThis.context.terminateSelfWithResult(abilityResult) -``` diff --git a/en/application-dev/file-management/manage-external-storage.md b/en/application-dev/file-management/manage-external-storage.md new file mode 100644 index 0000000000..9889b4f8f0 --- /dev/null +++ b/en/application-dev/file-management/manage-external-storage.md @@ -0,0 +1,87 @@ +# Managing External Storage Devices (Available Only for System Applications) + +External storage devices are pluggable. OpenHarmony provides the functions of listening for the device insertion and removal events and mounting/unmounting an external storage device. + +External storage devices are managed by the StorageManager and StorageDaemon services. StorageDaemon implements the underlying listening and mount/unmount functions. StorageManager provides status change notifications, query, and management capabilities for system applications. + +**Figure 1** External storage device management + +![External storage device management](figures/external-storage-device-management.png) + +- When an external storage device is inserted, the StorageDaemon process obtains an insertion event over netlink and creates a disk device and volume. The created volume is in the **UNMOUNTED** state. + +- Then, the StorageDaemon process checks the volume. During the check process, the volume is in the **CHECKING** state. + - The StorageDaemon process mounts the volume if the check is successful. If the mount operation is successful, the volume state changes to **MOUNTED** and StorageManager is instructed to send the COMMON_EVENT_VOLUME_MOUNTED broadcast. + - If the check fails, the volume state changes to **UNMOUNTED**. + +- For a volume in the **MOUNTED** state: + - If the device is directly removed, the volume information will be deleted and COMMON_EVENT_VOLUME_BAD_REMOVAL is broadcast. + - If the user chooses **Eject device**, the volume state changes to **EJECTING** and the COMMON_EVENT_VOLUME_EJECT is broadcast. After StorageDaemon unmounts the volume, the volume state changes to **UNMOUNTED** and COMMON_EVENT_VOLUME_UNMOUNTED is broadcast. + +- For a volume in the **UNMOUNTED** state, removing the device will delete the volume information and broadcast COMMON_EVENT_VOLUME_REMOVED. + +## Available APIs + +For details about APIs, see [Volume Management](../reference/apis/js-apis-file-volumemanager.md). + +The following table describes the broadcast related parameters. + +**Table 1** Broadcast parameters + +| Broadcast| Parameter| +| -------- | -------- | +| usual.event.data.VOLUME_REMOVED | **id**: ID of the volume.
**diskId**: ID of the disk to which the volume belongs.| +| usual.event.data.VOLUME_UNMOUNTED | **id**: ID of the volume.
**diskId**: ID of the disk to which the volume belongs.
**volumeState**: state of the volume.| +| usual.event.data.VOLUME_MOUNTED | **id**: ID of the volume.
**diskId**: ID of the disk to which the volume belongs.
**volumeState**: state of the volume.
**fsUuid**: universally unique identifier (UUID) of the volume.
**path**: path where the volume is mounted.| +| usual.event.data.VOLUME_BAD_REMOVAL | **id**: ID of the volume.
**diskId**: ID of the disk to which the volume belongs.| +| usual.event.data.VOLUME_EJECT | **id**: ID of the volume.
**diskId**: ID of the disk to which the volume belongs.
**volumeState**: state of the volume.| + +## How to Develop + +Subscribe to broadcast events to notify the insertion and removal of external storage devices. The volumes can be queried and managed based on the volume information obtained from the broadcast. + +1. Apply for permissions. + Apply for the **ohos.permission.STORAGE_MANAGER** permission for subscribing to volume broadcast events. For details, see [Declaring Permissions in the Configuration File](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file). + +2. Subscribe to broadcast events. + Subscribe to the following events: + + - "usual.event.data.VOLUME_REMOVED": The device is removed. + - "usual.event.data.VOLUME_UNMOUNTED": The volume is unmounted. + - "usual.event.data.VOLUME_MOUNTED": The volume is mounted. + - "usual.event.data.VOLUME_BAD_REMOVAL": The device is forcibly removed. + - "usual.event.data.VOLUME_EJECT": The device is being ejected. + + ```ts + import CommonEvent from '@ohos.commonEventManager'; + import volumeManager from '@ohos.file.volumeManager'; + + const subscribeInfo = { + events: [ + "usual.event.data.VOLUME_REMOVED", + "usual.event.data.VOLUME_UNMOUNTED", + "usual.event.data.VOLUME_MOUNTED", + "usual.event.data.VOLUME_BAD_REMOVAL", + "usual.event.data.VOLUME_EJECT" + ] + }; + let subscriber = await CommonEvent.createSubscriber(subscribeInfo); + ``` + +3. Obtain the volume information from the broadcast. + + ```ts + CommonEvent.subscribe(subscriber, function (err, data) { + if (data.event === 'usual.event.data.VOLUME_MOUNTED') { + // Manage the volume device based on the information obtained from the broadcast. + let volId = data.parameters.id; + volumeManager.getVolumeById(volId, function(error, vol) { + if (error) { + console.error('volumeManager getVolumeById failed'); + } else { + console.info('volumeManager getVolumeById successfully, the volume state is ' + vol.state); + } + }) + } + }) + ``` diff --git a/en/application-dev/file-management/medialibrary-album-guidelines.md b/en/application-dev/file-management/medialibrary-album-guidelines.md deleted file mode 100644 index 0fa043bad4..0000000000 --- a/en/application-dev/file-management/medialibrary-album-guidelines.md +++ /dev/null @@ -1,94 +0,0 @@ -# Album Management - -You can use the APIs provided by the **mediaLibrary** module to create and delete an album and obtain images in the album. - -> **NOTE** -> -> Before developing features, read [MediaLibrary Overview](medialibrary-overview.md) to learn how to obtain a **MediaLibrary** instance and request the permissions to call the APIs of **MediaLibrary**. - -To ensure the application running efficiency, most **MediaLibrary** API calls are asynchronous, and both callback and promise modes are provided for these APIs. The following code samples use the promise mode. For details about the APIs, see [MediaLibrary API Reference](../reference/apis/js-apis-medialibrary.md). - -## Obtaining Images and Videos in an Album - -You can obtain images and videos in an album in either of the following ways: - -- Call [MediaLibrary.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-1) with an album specified to obtain the media assets. For details, see [Querying Media Assets with the Specified Album Name](medialibrary-resource-guidelines.md#querying-media-assets-with-the-specified-album-name). - -- Call [Album.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-3) to obtain an **Album** instance, so as to obtain the media assets in it. For details, see [Obtaining Images and Videos in an Album](medialibrary-resource-guidelines.md#obtaining-images-and-videos-in-an-album). - -## Creating an Album - -You can use [MediaLibrary.createAsset](../reference/apis/js-apis-medialibrary.md#createasset8-1), with the relative path set, to create an album while adding a media asset to the album. The relative path is the album name. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.WRITE_MEDIA**. - -The following describes how to create an album named **myAlbum**. - -**How to Develop** - -1. Call **getPublicDirectory** to obtain the public directory that stores files of a certain type. - - For details about the operation, see [Obtaining a Public Directory](medialibrary-filepath-guidelines.md#obtaining-a-public-directory). - -2. Call **createAsset** to create an image, with the relative path set to **path + 'myAlbum/'**. - - This operation creates an album and adds an image to it. - -```ts -async function example() { - let mediaType = mediaLibrary.MediaType.IMAGE; - let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const path = await media.getPublicDirectory(DIR_IMAGE); - // myAlbum is the path for storing the new file and the name of the new album. - media.createAsset(mediaType, 'test.jpg', path + 'myAlbum/', (err, fileAsset) => { - if (fileAsset === undefined) { - console.error('createAlbum failed, message = ' + err); - } else { - console.info('createAlbum successfully, message = ' + JSON.stringify(fileAsset)); - } - }); -} -``` - -## Renaming an Album - -Renaming modifies the **FileAsset.albumName** attribute of the album, that is, the album name. After the modification, call [Album.commitModify](../reference/apis/js-apis-medialibrary.md#commitmodify8-3) to commit the modification to the database. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.WRITE_MEDIA**. - -The following describes how to rename the album **newAlbum**. - -**How to Develop** - -1. Create a retrieval condition for obtaining the target album. -2. Call **getAlbums** to obtain the album list. -3. Rename the album **newAlbum**. -4. Call **Album.commitModify** to commit the modification of the attributes to the database. - -```ts -async function example() { - let AlbumNoArgsfetchOp = { - selections: '', - selectionArgs: [], - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let albumList = await media.getAlbums(AlbumNoArgsfetchOp); - let album = albumList[0]; - album.albumName = 'newAlbum'; - // Void callback. - album.commitModify().then(() => { - console.info("albumRename successfully"); - }).catch((err) => { - console.error("albumRename failed with error: " + err); - }); -} -``` diff --git a/en/application-dev/file-management/medialibrary-filepath-guidelines.md b/en/application-dev/file-management/medialibrary-filepath-guidelines.md deleted file mode 100644 index 1e310ef931..0000000000 --- a/en/application-dev/file-management/medialibrary-filepath-guidelines.md +++ /dev/null @@ -1,249 +0,0 @@ -# File Path Management - -User data on OpenHarmony is managed by the **mediaLibrary** module in a unified manner. You can use the APIs provided by this module to access and operate the user data. - -> **NOTE** -> -> Before developing features, read [MediaLibrary Overview](medialibrary-overview.md) to learn how to obtain a **MediaLibrary** instance and request the permissions to call the APIs of **MediaLibrary**. - -To ensure the application running efficiency, most **MediaLibrary** API calls are asynchronous, and both callback and promise modes are provided for these APIs. The following code samples use the promise mode. For details about the APIs, see [MediaLibrary API Reference](../reference/apis/js-apis-medialibrary.md). - -## File Formats Supported by Public Directories - -Before using file paths for development, learn the file formats supported by each public directory. -> **CAUTION** -> -> The following table lists only the file types that can be identified by the system. In your application development, pay attention to the file formats supported by the corresponding interfaces.
For example, only .jpeg and .webp can be used for image encoding, and only .jpg, .png, .gif, .bmp, .webp, and .raw can be used for image decoding. - -| Directory | Directory Type | Media Type | Description | Supported File Format | -| ---------- | ------------- | ------------- | -------------- | ------------------------------------------------------------ | -| Camera/ | DIR_CAMERA | VIDEO and IMAGE | Directory for storing images and videos taken by the camera. Videos and images can be stored in this directory and its subdirectories.| .bmp / .bm / .gif / .jpg /. jpeg / .jpe / .png / .webp / .raw / .svg / .heif / .mp4 / .3gp / .mpg / .mov / .webm / .mkv | -| Videos/ | DIR_VIDEO | VIDEO | Dedicated video directory. Only videos can be stored in this directory and its subdirectories.| .mp4 / .3gp / .mpg / .mov / .webm / .mkv | -| Pictures/ | DIR_IMAGE | IMAGE | Dedicated image directory. Only images can be stored in this directory and its subdirectories.| .bmp / .bm / .gif / .jpg /. jpeg / .jpe / .png / .webp / .raw / .svg / .heif | -| Audios/ | DIR_AUDIO | AUDIO |Dedicated audio directory. Only audio files can be stored in this directory and its subdirectories.| .aac/.mp3/.flac/.wav/.ogg | -| Documents/ | DIR_DOCUMENTS | FILE |Dedicated file directory. Only files except audios, images, and videos can be stored in this directory and its subdirectories.| - | -| Download/ | DIR_DOWNLOAD | ALLTYPE |Directory for storing downloaded files. The types of files in this directory and its subdirectories are not restricted.| - | - -## Obtaining a Public Directory - -Different types of files are stored in different public directories. You can call [getPublicDirectory](../reference/apis/js-apis-medialibrary.md#getpublicdirectory8-1) to obtain the public directory that stores files of a certain type. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.READ_MEDIA**. - -The following describes how to obtain the public directory that stores camera files. - -```ts -async function example(){ - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA; - const dicResult = await media.getPublicDirectory(DIR_CAMERA); - if (dicResult == 'Camera/') { - console.info('mediaLibraryTest : getPublicDirectory passed'); - } else { - console.error('mediaLibraryTest : getPublicDirectory failed'); - } -} -``` - -## Copying Files Between the Application Sandbox and the Public Directory - -OpenHarmony provides the application sandbox to minimize the leakage of application data and user privacy information. - -Users can access files stored in the public directories through the system applications **Files** and **Gallery**. However, files in the application sandbox can be accessed only by the application itself. - -### Copying a File - -You can call [mediaLibrary.FileAsset.open](../reference/apis/js-apis-medialibrary.md#open8-1) to open a file in a public directory. - -You can call [fs.open](../reference/apis/js-apis-file-fs.md#fsopen) to open a file in the application sandbox. The sandbox directory can be accessed only through the application context. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permissions **ohos.permission.READ_MEDIA** and **ohos.permission.WRITE_MEDIA**. -- You have imported the module [@ohos.file.fs](../reference/apis/js-apis-file-fs.md) in addition to @ohos.multimedia.mediaLibrary. -- The **testFile.txt** file has been created and contains content. - -**How to Develop** - -1. Call [context.filesDir](../reference/apis/js-apis-file-fs.md) to obtain the directory of the application sandbox. -2. Call **MediaLibrary.getFileAssets** and **FetchFileResult.getFirstObject** to obtain the first file in the result set of the public directory. -3. Call **fs.open** to open the file in the sandbox. -4. Call **fileAsset.open** to open the file in the public directory. -5. Call [fs.copyfile](../reference/apis/js-apis-file-fs.md#fscopyfile) to copy the file. -6. Call **fileAsset.close** and [fs.close](../reference/apis/js-apis-file-fs.md#fsclose) to close the file. - -**Example 1: Copying Files from the Public Directory to the Sandbox** - -```ts -async function copyPublic2Sandbox() { - try { - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let sandboxDirPath = context.filesDir; - let fileKeyObj = mediaLibrary.FileKey; - let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?', - selectionArgs: ['testFile.txt'], - }; - let fetchResult = await media.getFileAssets(fileAssetFetchOp); - let fileAsset = await fetchResult.getFirstObject(); - - let fdPub = await fileAsset.open('rw'); - let fdSand = await fs.open(sandboxDirPath + '/testFile.txt', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); - await fs.copyFile(fdPub, fdSand.fd); - - await fileAsset.close(fdPub); - await fs.close(fdSand.fd); - - let content_sand = await fs.readText(sandboxDirPath + '/testFile.txt'); - console.info('content read from sandbox file: ', content_sand) - } catch (err) { - console.info('[demo] copyPublic2Sandbox fail, err: ', err); - } -} -``` - -**Example 2: Copying a File from the Sandbox to the Public Directory** - -```ts -async function copySandbox2Public() { - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let sandboxDirPath = context.filesDir; - - let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; - const publicDirPath = await media.getPublicDirectory(DIR_DOCUMENTS); - try { - let fileAsset = await media.createAsset(mediaLibrary.MediaType.FILE, 'testFile02.txt', publicDirPath); - console.info('createFile successfully, message = ' + fileAsset); - } catch (err) { - console.error('createFile failed, message = ' + err); - } - try { - let fileKeyObj = mediaLibrary.FileKey; - let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?', - selectionArgs: ['testFile02.txt'], - }; - let fetchResult = await media.getFileAssets(fileAssetFetchOp); - var fileAsset = await fetchResult.getFirstObject(); - } catch (err) { - console.error('file asset get failed, message = ' + err); - } - let fdPub = await fileAsset.open('rw'); - let fdSand = await fs.open(sandboxDirPath + 'testFile.txt', fs.OpenMode.READ_WRITE); - await fs.copyFile(fdSand.fd, fdPub); - await fileAsset.close(fdPub); - await fs.close(fdSand.fd); - let fdPubRead = await fileAsset.open('rw'); - try { - let arrayBuffer = new ArrayBuffer(4096); - await fs.read(fdPubRead, arrayBuffer); - var content_pub = String.fromCharCode(...new Uint8Array(arrayBuffer)); - fileAsset.close(fdPubRead); - } catch (err) { - console.error('read text failed, message = ', err); - } - console.info('content read from public file: ', content_pub); -} -``` - -### Reading and Writing a File - -You can use **FileAsset.open** and **FileAsset.close** of [mediaLibrary](../reference/apis/js-apis-medialibrary.md) to open and close a file, and use **fs.read** and **fs.write** in [file.fs](../reference/apis/js-apis-file-fs.md) to read and write the file. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permissions **ohos.permission.READ_MEDIA** and **ohos.permission.WRITE_MEDIA**. -- You have imported the module [@ohos.file.fs](../reference/apis/js-apis-file-fs.md) in addition to @ohos.multimedia.mediaLibrary. - -**How to Develop** - -1. Create a file. - -```ts -async function example() { - let mediaType = mediaLibrary.MediaType.FILE; - let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const path = await media.getPublicDirectory(DIR_DOCUMENTS); - media.createAsset(mediaType, "testFile.txt", path).then((asset) => { - console.info("createAsset successfully:" + JSON.stringify(asset)); - }).catch((err) => { - console.error("createAsset failed with error: " + err); - }); -} -``` - -2. Call **FileAsset.open** to open the file. - -3. Call [fs.write](../reference/apis/js-apis-file-fs.md#fswrite) to write a string to the file. - -4. Call [fs.read](../reference/apis/js-apis-file-fs.md#fsread) to read the file and save the data read in an array buffer. - -5. Convert the array buffer to a string. - -6. Use **FileAsset.close** to close the file. - -**Example 1: Opening an Existing File and Writing Data to It** - -```ts -async function writeOnlyPromise() { - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?', - selectionArgs: ['testFile.txt'], - }; - let fetchResult = await media.getFileAssets(fileAssetFetchOp); - let fileAsset = await fetchResult.getFirstObject(); - console.info('fileAssetName: ', fileAsset.displayName); - - try { - let fd = await fileAsset.open('w'); - console.info('file descriptor: ', fd); - await fs.write(fd, "Write file test content."); - await fileAsset.close(fd); - } catch (err) { - console.error('write file failed, message = ', err); - } -} -``` - -**Example 2: Opening an Existing File and Reading Data from It** - -```ts -async function readOnlyPromise() { - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?' , - selectionArgs: ['testFile.txt'], - }; - let fetchResult = await media.getFileAssets(fileAssetFetchOp); - let fileAsset = await fetchResult.getFirstObject(); - console.info('fileAssetName: ', fileAsset.displayName); - - try { - let fd = await fileAsset.open('r'); - let arrayBuffer = new ArrayBuffer(4096); - await fs.read(fd, arrayBuffer); - let fileContent = String.fromCharCode(...new Uint8Array(arrayBuffer)); - globalThis.fileContent = fileContent; - globalThis.fileName = fileAsset.displayName; - console.info('file content: ', fileContent); - await fileAsset.close(fd); - } catch (err) { - console.error('read file failed, message = ', err); - } -} -``` diff --git a/en/application-dev/file-management/medialibrary-overview.md b/en/application-dev/file-management/medialibrary-overview.md deleted file mode 100644 index f7e0ab9ac4..0000000000 --- a/en/application-dev/file-management/medialibrary-overview.md +++ /dev/null @@ -1,127 +0,0 @@ -# MediaLibrary Development Overview - -The **mediaLibrary** module provides APIs for you to access and modify media files. - -- You can manage [media assets (audios, videos, image, and files)](medialibrary-resource-guidelines.md) as follows: - - Query media assets. - - Obtain an image or a video. - - Obtain the thumbnail of an image or a video. - - Create a media asset. - - Rename a media asset. - - Move a media asset to the recycle bin. -- You can manage [file paths](medialibrary-filepath-guidelines.md) as follows: - - Obtain the public directory that stores files of a certain type. - - Copy files between the application sandbox and the public directory. - - Read and write a file. -- You can manage [albums](medialibrary-album-guidelines.md) as follows: - - Obtain images and videos in an album. - - Create an album. - - Rename an album. - -> **NOTE** -> -> This development guide applies only to the stage model (available from API version 9). - -To access and modify personal media data, an application must obtain a **MediaLibrary** instance and request the media asset read and write permissions from the user. Unless otherwise specified, the **MediaLibrary** APIs are used in **pages/index.ets** or custom .ets files of the project code. - -Before using the **MediaLibrary** APIs to develop features, you must learn how to: - -- [Obtain a MediaLibrary Instance](#obtaining-a-medialibrary-instance) -- [Request Permissions](#requesting-permissions) - -## Obtaining a MediaLibrary Instance - -An application must call [getMediaLibrary](../reference/apis/js-apis-medialibrary.md#medialibrarygetmedialibrary8) to obtain a **MediaLibrary** instance based on the application context. Through this instance, the application can access and modify personal media data (such as audios, videos, images, and files). - -**How to Develop** - -1. Import the **mediaLibrary** module. -2. Call **getContext** to obtain the application context. -3. Obtain a **MediaLibrary** instance. - -```ts -import mediaLibrary from '@ohos.multimedia.mediaLibrary'; - -const context = getContext(this); -let media = mediaLibrary.getMediaLibrary(context); -``` - -## Requesting Permissions - -To read and write a **MediaLibrary** instance, you must have the required permissions, as described in the table below. Before requesting the permissions, ensure that the [basic principles for permission management](../security/accesstoken-overview.md#basic-principles-for-permission-management) are met. - -| Permission | Description | Authorization Mode | -| ------------------------------ | ------------------------------------------ | ---------- | -| ohos.permission.READ_MEDIA | Allows an application to read media files from the user's external storage.| user_grant | -| ohos.permission.WRITE_MEDIA | Allows an application to read media files from and write media files into the user's external storage.| user_grant | -| ohos.permission.MEDIA_LOCATION | Allows an application to access geographical locations in the user's media file.| user_grant | - -After configuring the permissions in the **module.json5** file, the application must call [abilityAccessCtrl.requestPermissionsFromUser](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9) to check for the required permissions and if they are not granted, request the permissions from the user by displaying a dialog box. - -> **NOTE**
Even if the user has granted a permission, the application must check for the permission before calling an API protected by the permission. It should not persist the permission granted status, because the user can revoke the permission through the system application **Settings**. - -**How to Develop** - -1. Declare the permissions in the **module.json5** file. Add the **requestPermissions** tag under **module** in the file, and set the tag based on the project requirements. For details about the tag, see [Guide for Requesting Permissions from User](../security/accesstoken-guidelines.md). - -```json -{ - "module": { - "requestPermissions": [ - { - "name": "ohos.permission.MEDIA_LOCATION", - "reason": "$string:reason", - "usedScene": { - "abilities": [ - "EntryAbility" - ], - "when": "always" - } - }, - { - "name": "ohos.permission.READ_MEDIA", - "reason": "$string:reason", - "usedScene": { - "abilities": [ - "EntryAbility" - ], - "when": "always" - } - }, - { - "name": "ohos.permission.WRITE_MEDIA", - "reason": "$string:reason", - "usedScene": { - "abilities": [ - "EntryAbility" - ], - "when": "always" - } - } - ] - } -} -``` - -2. In the **Ability.ts** file, call **requestPermissionsFromUser** in the **onWindowStageCreate** callback to check for the required permissions and if they are not granted, request the permissions from the user by displaying a dialog box. - -```ts -import UIAbility from '@ohos.app.ability.UIAbility'; -import abilityAccessCtrl, {Permissions} from '@ohos.abilityAccessCtrl'; - -export default class EntryAbility extends UIAbility { - onWindowStageCreate(windowStage) { - let list : Array = ['ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA']; - let permissionRequestResult; - let atManager = abilityAccessCtrl.createAtManager(); - atManager.requestPermissionsFromUser(this.context, list, (err, result) => { - if (err) { - console.error('requestPermissionsFromUserError: ' + JSON.stringify(err)); - } else { - permissionRequestResult = result; - console.info('permissionRequestResult: ' + JSON.stringify(permissionRequestResult)); - } - }); - } -} -``` diff --git a/en/application-dev/file-management/medialibrary-resource-guidelines.md b/en/application-dev/file-management/medialibrary-resource-guidelines.md deleted file mode 100644 index b5691ad2e7..0000000000 --- a/en/application-dev/file-management/medialibrary-resource-guidelines.md +++ /dev/null @@ -1,384 +0,0 @@ -# Media Asset Management - -Your applications can use the APIs provided by the **mediaLibrary** module to perform operations on media assets such as audios, videos, images, and files. - -> **NOTE** -> -> Before developing features, read [MediaLibrary Overview](medialibrary-overview.md) to learn how to obtain a **MediaLibrary** instance and request the permissions to call the APIs of **MediaLibrary**. - -To maximize the application running efficiency, most **MediaLibrary** API calls are asynchronous in callback or promise mode. The following code samples use the promise mode. For details about the APIs, see [MediaLibrary API Reference](../reference/apis/js-apis-medialibrary.md). - -## Querying Media Assets - -You can query media assets by condition such as the media type, date, or album name. - -To do so, call [MediaLibrary.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-1), with a **MediaFetchOptions** object passed in to specify the conditions. In this object, **MediaFetchOptions.selections** are the retrieval conditions, and the enumerated values of **FileKey** are used as the column names of the conditions; **MediaFetchOptions.selectionArgs** are the values of the conditions. You can also specify **order** (sorting mode of the search result), **uri** (file URI), and **networkId** (network ID of the registered device) as the conditions. - -To obtain the object at the specified position (for example, the first, the last, or with the specified index) in the result set, call [FetchFileResult](../reference/apis/js-apis-medialibrary.md#fetchfileresult7). In this section, **getNextObject** is used cyclically to obtain all media assets in the result set. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.READ_MEDIA**. - -### Querying Media Assets with the Specified Media Type - -The following describes how to obtain images. - -**How to Develop** - -To specify the media type as the retrieval condition, set **selections** to **FileKey.MEDIA_TYPE**. - -To specify the image as the media type, set **selectionArgs** to **MediaType.IMAGE**. - -```ts -async function example() { - let fileKeyObj = mediaLibrary.FileKey; - let fileType = mediaLibrary.MediaType.IMAGE; - let option = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [fileType.toString()], - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const fetchFileResult = await media.getFileAssets(option); - fetchFileResult.getFirstObject().then(async (fileAsset) => { - console.log('getFirstObject.displayName : ' + fileAsset.displayName); - for (let i = 1; i < fetchFileResult.getCount(); i++) { - let fileAsset = await fetchFileResult.getNextObject(); - console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName); - } - }).catch((err) => { - console.error('Failed to get first object: ' + err); - }); -} -``` - -### Querying Media Assets with the Specified Date - -The following describes how to obtain all the media assets that are added from the specified date. You can also use the modification date and shooting date as the retrieval conditions. - -To specify the date when the files are added as the retrieval condition, set **selections** to **FileKey.DATE_ADDED**. - -To specify the date 2022-8-5, set **selectionArgs** to **2022-8-5**. - -```ts -async function example() { - let fileKeyObj = mediaLibrary.FileKey; - let option = { - selections: fileKeyObj.DATE_ADDED + '> ?', - selectionArgs: ['2022-8-5'], - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const fetchFileResult = await media.getFileAssets(option); - fetchFileResult.getFirstObject().then(async (fileAsset) => { - console.info('getFirstObject.displayName : ' + fileAsset.displayName); - for (let i = 1; i < fetchFileResult.getCount(); i++) { - let fileAsset = await fetchFileResult.getNextObject(); - console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName); - } - }).catch((err) => { - console.error('Failed to get first object: ' + err); - }); -} -``` - -### Querying Media Assets and Sorting Them - -The following describes how to query images and sort them in descending order by the date when they are added. You can also sort them in ascending order. - -To sort files in descending order by the date when they are added, set **order** to **FileKey.DATE_ADDED + " DESC"**. - -```ts -async function example() { - let fileKeyObj = mediaLibrary.FileKey; - let fileType = mediaLibrary.MediaType.IMAGE; - let option = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [fileType.toString()], - order: fileKeyObj.DATE_ADDED + " DESC", - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const fetchFileResult = await media.getFileAssets(option); - fetchFileResult.getFirstObject().then(async (fileAsset) => { - console.info('getFirstObject.displayName : ' + fileAsset.displayName); - for (let i = 1; i < fetchFileResult.getCount(); i++) { - let fileAsset = await fetchFileResult.getNextObject(); - console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName); - } - }).catch((err) => { - console.error('Failed to get first object: ' + err); - }); -} -``` - -### Querying Media Assets with the Specified Album Name - -The following describes how to query media assets in **myAlbum**. - -To specify the album name as the retrieval condition, set **selections** to **FileKey.ALBUM_NAME**. - -To specify the album name **'myAlbum'**, set **selectionArgs** to **'myAlbum'**. - -```ts -async function example() { - let fileKeyObj = mediaLibrary.FileKey; - let option = { - selections: fileKeyObj.ALBUM_NAME + '= ?', - selectionArgs: ['myAlbum'], - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const fetchFileResult = await media.getFileAssets(option); - if (albumList.length > 0) { - fetchFileResult.getFirstObject().then((album) => { - console.info('getFirstObject.displayName : ' + album.albumName); - }).catch((err) => { - console.error('Failed to get first object: ' + err); - }); - } else { - console.info('getAlbum list is: 0'); - } -} -``` - -## Obtaining Images and Videos in an Album - -You can obtain media assets in an album in either of the following ways: -- Call [MediaLibrary.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-1) with an album specified, as described in [Querying Media Assets with the Specified Album Name](#querying-media-assets-with-the-specified-album-name). -- Call [Album.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-3) to obtain an **Album** instance, so as to obtain the media assets in it. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.READ_MEDIA**. - -**How to Develop** - -The following describes how to obtain videos in an album named **New Album 1**. - -1. Create a retrieval condition for obtaining the target **Album** instance. - -```ts -let fileKeyObj = mediaLibrary.FileKey; -let AlbumNoArgsFetchOp = { - selections: fileKeyObj.ALBUM_NAME + '= ?', - selectionArgs:['New Album 1'] -} -``` - -2. Create a retrieval condition for obtaining videos in the target album. - -```ts -let fileKeyObj = mediaLibrary.FileKey; -let videoType = mediaLibrary.MediaType.VIDEO; -let videoFetchOp = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [videoType.toString()], -} -``` - -3. Call **Album.getFileAssets** to obtain the videos in the target album. - -Complete sample code: - -```ts -async function getCameraImagePromise() { - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let videoType = mediaLibrary.MediaType.VIDEO; - let videoFetchOp = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [videoType.toString()], - } - let AlbumNoArgsFetchOp = { - selections: fileKeyObj.ALBUM_NAME + '= ?', - selectionArgs:['New Album 1'] - } - - let albumList = await media.getAlbums(AlbumNoArgsFetchOp); - if (albumList.length > 0) { - const album = albumList[0]; - let fetchFileResult = await album.getFileAssets(videoFetchOp); - let count = fetchFileResult.getCount(); - console.info("get mediaLibrary VIDEO number", count); - } else { - console.info('getAlbum list is: 0'); - } -} -``` - -## Obtaining the Thumbnail of an Image or a Video - -You can call [FileAsset.getThumbnail](../reference/apis/js-apis-medialibrary.md#getthumbnail8-2) with the thumbnail size passed in to obtain the thumbnail of an image or a video. Your application can use thumbnails to offer a quick preview on images and videos. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.READ_MEDIA**. - -### Obtaining the Thumbnail of an Image - -The following describes how to obtain the thumbnail (size: 720 x 720) of the first image in the album. - -**How to Develop** - -1. Create a retrieval condition for obtaining images in the target album. -2. Call **getFileAssets** to obtain the images in the target album. -3. Call **getFirstObject** to obtain the first image among all the images obtained. -4. Call **getThumbnail** to obtain the thumbnail of the first image. - -```ts -async function getFirstThumbnailPromise() { - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey; - let imageType = mediaLibrary.MediaType.IMAGE; - let imagesFetchOp = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [imageType.toString()], - } - - let size = { width: 720, height: 720 }; - const fetchFileResult = await media.getFileAssets(imagesFetchOp); - if (fetchFileResult === undefined) { - console.error("get image failed with error"); - return; - } else { - const asset = await fetchFileResult.getFirstObject(); - asset.getThumbnail(size).then((pixelMap) => { - pixelMap.getImageInfo().then((info) => { - console.info('get Thumbnail info: ' + "width: " + info.size.width + " height: " + info.size.height); - }).catch((err) => { - console.error("getImageInfo failed with error: " + err); - }); - }).catch((err) => { - console.error("getImageInfo failed with error: " + err); - }); - } -} -``` - -## Creating a Media Asset - -You can call [MediaLibrary.createAsset](../reference/apis/js-apis-medialibrary.md#createasset8-1) to create a media asset. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.WRITE_MEDIA**. -- [You have obtained a public directory](medialibrary-filepath-guidelines.md). - -The following describes how to create a file of the **MediaType.FILE** type. - -```ts -async function example() { - let mediaType = mediaLibrary.MediaType.FILE; - let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const path = await media.getPublicDirectory(DIR_DOCUMENTS); - media.createAsset(mediaType, "testFile.text", path).then((asset) => { - console.info("createAsset successfully:"+ JSON.stringify(asset)); - }).catch((err) => { - console.error("createAsset failed with error: " + err); - }); -} -``` - -## Moving a Media Asset to the Recycle Bin - -You can use [FileAsset.trash](../reference/apis/js-apis-medialibrary.md#trash8) to move a media asset to the recycle bin. - -By default, files in the recycle bin will be stored for 30 days before being permanently removed. During this period, you can set **isTrash** in **trash** to **false** to recover the files. Application users can also recover the files through the system applications **Files** or **Gallery**. - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.WRITE_MEDIA**. - -The following describes how to move the first file in the result set to the recycle bin. - -**How to Develop** - -1. Create a retrieval condition for obtaining images in the target album. -2. Call **getFileAssets** to obtain the images in the target album. -3. Call **getFirstObject** to obtain the first image among all the images obtained. -4. Call **trash** to move the first image to the recycle bin. - -```ts -async function example() { - let fileKeyObj = mediaLibrary.FileKey; - let fileType = mediaLibrary.MediaType.FILE; - let option = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [fileType.toString()], - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const fetchFileResult = await media.getFileAssets(option); - let asset = await fetchFileResult.getFirstObject(); - if (asset === undefined) { - console.error('asset not exist'); - return; - } - // Void callback. - asset.trash(true).then(() => { - console.info("trash successfully"); - }).catch((err) => { - console.error("trash failed with error: " + err); - }); -} -``` - -## Renaming a Media Asset - -To rename a media asset, modify the **FileAsset.displayName** attribute (which specifies the displayed file name, including the file name extension) and commit the modification through [FileAsset.commitModify](../reference/apis/js-apis-medialibrary.md#commitmodify8-1). - -Before renaming a file, you must obtain the file, for example, by calling [FetchFileResult](../reference/apis/js-apis-medialibrary.md#fetchfileresult7). - -**Prerequisites** - -- You have obtained a **MediaLibrary** instance. -- You have granted the permission **ohos.permission.WRITE_MEDIA**. - -The following describes how to rename the first file in the result set as **newImage.jpg**. - -**How to Develop** - -1. Create a retrieval condition for obtaining images in the target album. -2. Call **getFileAssets** to obtain the images in the target album. -3. Call **getFirstObject** to obtain the first image among all the images obtained. -4. Rename the image as **newImage.jpg**. -5. Call **FileAsset.commitModify** to commit the modification to the database. - -```ts -async function example() { - let fileKeyObj = mediaLibrary.FileKey; - let fileType = mediaLibrary.MediaType.IMAGE; - let option = { - selections: fileKeyObj.MEDIA_TYPE + '= ?', - selectionArgs: [fileType.toString()], - }; - const context = getContext(this); - let media = mediaLibrary.getMediaLibrary(context); - const fetchFileResult = await media.getFileAssets(option); - let asset = await fetchFileResult.getFirstObject(); - if (asset === undefined) { - console.error('asset not exist'); - return; - } - asset.displayName = 'newImage.jpg'; - // Void callback. - asset.commitModify((err) => { - if (err) { - console.error('fileRename Failed '); - return; - } - console.info('fileRename successful.'); - }); -} -``` diff --git a/en/application-dev/file-management/save-user-file.md b/en/application-dev/file-management/save-user-file.md new file mode 100644 index 0000000000..d1ca80444d --- /dev/null +++ b/en/application-dev/file-management/save-user-file.md @@ -0,0 +1,103 @@ +# Saving User Files + +When a user needs to download a file from the network to a local directory or save a user file into another directory, use **FilePicker** to save the file. + +The operations for saving images, audio or video clips, and documents are similar. Call **save()** of the corresponding picker instance and pass in **saveOptions**. + + +## Saving Images or Video Files + +1. Import the **FilePicker** module. + + ```ts + import picker from '@ohos.file.picker'; + ``` + +2. Create a **photoSaveOptions** instance. + + ```ts + const photoSaveOptions = new picker.PhotoSaveOptions(); // Create a photoSaveOptions instance. + photoSaveOptions.newFileNames = ["PhotoViewPicker01.jpg"]; // (Optional) Set the names of the files to save. + ``` + +3. Create a **photoViewPicker** instance and call [save()](../reference/apis/js-apis-file-picker.md#save) to open the **FilePicker** page to save the files. + After the user selects the target folder, the file saving operation is complete. After the files are saved successfully, the URIs of the files saved are returned. + + ```ts + const photoViewPicker = new picker.PhotoViewPicker(); + photoViewPicker.save(photoSaveOptions) + .then(async (photoSaveResult) => { + let uri = photoSaveResult[0]; + // Perform operations on the files based on the file URIs obtained. + }) + .catch((err) => { + console.error(`Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message}`); + }) + ``` + +## Saving Documents + +1. Import the **FilePicker** module. + + ```ts + import picker from '@ohos.file.picker'; + ``` + +2. Create a **documentSaveOptions** instance. + + ```ts + const documentSaveOptions = new picker.DocumentSaveOptions(); // Create a documentSaveOptions instance. + documentSaveOptions.newFileNames = ["DocumentViewPicker01.txt"]; // (Optional) Set the names of the documents to save. + ``` + +3. Create a **documentViewPicker** instance, and call [save()](../reference/apis/js-apis-file-picker.md#save-3) to open the **FilePicker** page to save the documents. + After the user selects the target folder, the file saving operation is complete. After the files are saved successfully, the URIs of the files saved are returned. + + > **NOTE** + > + > Currently, **DocumentSelectOptions** is not configurable. By default, all types of user files are selected. + + ```ts + const documentViewPicker = new picker.DocumentViewPicker(); // Create a documentViewPicker instance. + documentViewPicker.save(documentSaveOptions) + .then(async (documentSaveResult) => { + let uri = documentSaveResult[0]; + // For example, write data to the documents based on the obtained URIs. + }) + .catch((err) => { + console.error(`Invoke documentPicker.save failed, code is ${err.code}, message is ${err.message}`); + }) + ``` + +## Saving Audio Files + +1. Import the **FilePicker** module. + + ```ts + import picker from '@ohos.file.picker'; + ``` + +2. Create an **audioSaveOptions** instance. + + ```ts + const audioSaveOptions = new picker.AudioSaveOptions(); // Create an audioSaveOptions instance. + audioSaveOptions.newFileNames = ['AudioViewPicker01.mp3']; // (Optional) Set the names of the files to save. + ``` + +3. Create an **audioViewPicker** instance, and call [save()](../reference/apis/js-apis-file-picker.md#save-6) to open the **FilePicker** page to save the files. + After the user selects the target folder, the file saving operation is complete. After the files are saved successfully, the URIs of the files saved are returned. + > **NOTE** + > + > Currently, **AudioSelectOptions** is not configurable. By default, all types of user files are selected. + + ```ts + const audioViewPicker = new picker.AudioViewPicker(); + audioViewPicker.save(audioSaveOptions) + .then((audioSelectResult) => { + let uri = audioSelectResult[0]; + // Perform operations on the audio files based on the file URIs. + }) + .catch((err) => { + console.error(`Invoke audioPicker.select failed, code is ${err.code}, message is ${err.message}`); + }) + ``` diff --git a/en/application-dev/file-management/select-user-file.md b/en/application-dev/file-management/select-user-file.md new file mode 100644 index 0000000000..77fc2dd23c --- /dev/null +++ b/en/application-dev/file-management/select-user-file.md @@ -0,0 +1,117 @@ +# Selecting User Files + +If your application needs to support share and saving of user files (such as images and videos) by users, you can use the [FilePicker](../reference/apis/js-apis-file-picker.md) prebuilt in OpenHarmony to implement selecting and saving of user files. + +The **FilePicker** provides the following interfaces by file type: + +- [**PhotoViewPicker**](../reference/apis/js-apis-file-picker.md#photoviewpicker): used to select and save images or video files. + +- [**DocumentViewPicker**](../reference/apis/js-apis-file-picker.md#documentviewpicker): used to select and save documents. + +- [**AudioViewPicker**](../reference/apis/js-apis-file-picker.md#audioviewpicker): used to select and save audio files. + +## Selecting Images or Video Files + +1. Import the **FilePicker** module. + + ```ts + import picker from '@ohos.file.picker'; + ``` + +2. Create a **photoSelectOptions** instance. + + ```ts + const photoSelectOptions = new picker.PhotoSelectOptions(); + ``` + +3. Set the file type and the maximum number of media files to select. + For example, select a maximum of five images. For details about the media file type, see [PhotoViewMIMETypes](../reference/apis/js-apis-file-picker.md#photoviewmimetypes). + + ```ts + photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // Select images. + photoSelectOptions.maxSelectNumber = 5; // Set the maximum number of images to select. + ``` + +4. Create a **photoPicker** instance and call [select()](../reference/apis/js-apis-file-picker.md#select) to open the **FilePicker** page for the user to select files. + + Use [PhotoSelectResult](../reference/apis/js-apis-file-picker.md#photoselectresult) to return a result set. Further operations on the selected files can be performed based on the file URIs in the result set. + + ```ts + const photoPicker = new picker.PhotoViewPicker(); + photoPicker.select(photoSelectOptions) + .then(async (photoSelectResult) => { + let uri = photoSelectResult.photoUris[0]; + // Perform operations on the files based on the file URIs obtained. + }) + .catch((err) => { + console.error(`Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message}`); + }) + ``` + +## Selecting Documents + +1. Import the **FilePicker** module. + + ```ts + import picker from '@ohos.file.picker'; + ``` + +2. Create a **documentSelectOptions** instance. + + ```ts + const documentSelectOptions = new picker.DocumentSelectOptions(); + ``` + +3. Create a **documentViewPicker** instance, and call [**select()**](../reference/apis/js-apis-file-picker.md#select-3) to open the **FilePicker** page for the user to select documents. + After the documents are selected successfully, a result set containing the file URIs is returned. Further operations can be performed on the documents based on the file URIs. + > **NOTE** + > + > Currently, **DocumentSelectOptions** is not configurable. By default, all types of user files are selected. + + ```ts + const documentViewPicker = new picker.DocumentViewPicker(); // Create a documentViewPicker instance. + documentViewPicker.select(documentSelectOptions) + .then((documentSelectResult) => { + let uri = documentSelectResult[0]; + // Perform operations on the documents based on the file URIs. + }) + .catch((err) => { + console.error(`Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message}`); + }) + ``` + +## Selecting an Audio File + +1. Import the **FilePicker** module. + + ```ts + import picker from '@ohos.file.picker'; + ``` + +2. Create an **audioSelectOptions** instance. + + ```ts + const audioSelectOptions = new picker.AudioSelectOptions(); + ``` + +3. Create an **audioViewPicker** instance, and call [**select()**](../reference/apis/js-apis-file-picker.md#select-6) to open the **FilePicker** page for the user to select audio files. + + After the files are selected successfully, a result set containing the URIs of the audio files selected is returned. Further operations can be performed on the documents based on the file URIs. + + For example, use the [file management interface](../reference/apis/js-apis-file-fs.md) to obtain the file handle (FD) of the audio clip based on the URI, and then develop the audio playback function based on the media service. For details, see [Audio Playback Development](../media/audio-playback-overview.md). + + > **NOTE** + > + > Currently, **AudioSelectOptions** is not configurable. By default, all types of user files are selected. + + ```ts + const audioViewPicker = new picker.AudioViewPicker(); + audioViewPicker.select(audioSelectOptions) + .then(audioSelectResult => { + let uri = audioSelectOptions[0]; + // Perform operations on the audio files based on the file URIs. + }) + .catch((err) => { + console.error(`Invoke audioPicker.select failed, code is ${err.code}, message is ${err.message}`); + }) + ``` diff --git a/en/application-dev/file-management/send-file-to-app-sandbox.md b/en/application-dev/file-management/send-file-to-app-sandbox.md new file mode 100644 index 0000000000..fdcee889e0 --- /dev/null +++ b/en/application-dev/file-management/send-file-to-app-sandbox.md @@ -0,0 +1,46 @@ +# Sending Files to an Application Sandbox + +During the development and debugging process of an application, you may need to place some files to the application sandbox for intra-application access or for testing purposes. In this case, you can use either of the following methods: + +1. Use DevEco Studio to place the files to the application installation directory. For details, see [Application Installation Resource Access](../quick-start/resource-categories-and-access.md# resource-access). + +2. Use the hdc tool to send files to the application sandbox directory on the device. This section describes the second method. + +However, the file directories visible to the debugged process in the hdc shell are different from the application sandbox directories visible to the application. You need to understand the mappings between the application sandbox directories and the physical (real) directories. + +## Mappings Between Application Sandbox Directories and Physical Directories + +The read and write operations performed based on the application sandbox paths via APIs are performed on the files in the physical directories after address conversion. The following table lists the mappings between application sandbox paths and physical paths. + +**Table 1** Mapping between application sandbox paths and physical paths + +| Application Sandbox Path| Physical Path in hdc| Description| +| -------- | -------- | -------- | +| /data/storage/el1/bundle | /data/app/el1/bundle/public/<PACKAGENAME> | Application installation package directory.| +| /data/storage/el1/base | /data/app/el1/<USERID>/base/<PACKAGENAME> | Application directory of encryption level (el) 1.| +| /data/storage/el2/base | /data/app/el2/<USERID>/base/<PACKAGENAME> | Application directory of el 2.| +| /data/storage/el1/database | /data/app/el1/<USERID>/database/<PACKAGENAME> | Database directory of the application under **el1/**.| +| /data/storage/el2/database | /data/app/el2/<USERID>/database/<PACKAGENAME> | Database directory of the application under **el2/**.| +| /data/storage/el2/distributedfiles | /mnt/hmdfs/<USERID>/account/merge_view/data/<PACKAGENAME> | Distributed data directory of the application under **el2/**.| + +## Development Example + +The following uses the application bundle **com.ohos.example** as an example. If the application sandbox path is **/data/storage/el1/bundle**, the physical path is **/data/app/el1/bundle/public/**, that is, **/data/app/el1/bundle/public/com.ohos.example**. + +Run the following command to send the file: + +``` +hdc file send ${Path of the local file to send} /data/app/el1/bundle/public/com.ohos.example/ +``` + +## Switching to the Application View + +During the debugging process, if you do not have the permission or the file does not exist, you need to switch from the process view to the application view and further analyze permission and directory problems. To switch to the application view, run the following commands: + +``` +hdc shell // Switch to shell. +ps -ef|grep [hapName] // Obtain the process identifier (PID) of the application. +nsenter -t [hapPid] -m /bin/sh // Enter the application sandbox environment based on the PID. +``` + +The application view is in use, and the path you see is the application sandbox path. diff --git a/en/application-dev/file-management/set-security-label.md b/en/application-dev/file-management/set-security-label.md new file mode 100644 index 0000000000..94ad527767 --- /dev/null +++ b/en/application-dev/file-management/set-security-label.md @@ -0,0 +1,42 @@ +# Setting the Security Level of a Distributed File + +The security capabilities vary with devices. For example, small embedded devices provide fewer security capabilities than tablets. The security requirements also vary with data. For example, personal health information and bank card information are not expected to be accessed by devices of lower security levels. OpenHarmony provides a complete set of standards for data and device classification and custom data transfer policies for different devices. For details, see [Data and Device Security Classification](../database/access-control-by-device-and-data-level.md). + +## Available APIs + +For details about the APIs, see [ohos.file.securityLabel](../reference/apis/js-apis-file-securityLabel.md). + +**Table 1** APIs + +| API| Description| Type| Synchronous Programming| Asynchronous Programming| +| -------- | -------- | -------- | -------- | -------- | +| setSecurityLabel | Sets a security label for a file.| Method| √ | √ | +| getSecurityLabel | Obtains the security label of a file.| Method| √ | √ | + +> **NOTICE** +> +> 1. In distributed networking, a device can view the files that do not match its security level but cannot access them. +> +> 2. The default security level of the distributed file system data is S3. Applications can set the security level of files. + +## Development Example + +Obtain the sandbox path of the file and set the data security label. For details about how to obtain the context in the example, see [Obtaining the Context of UIAbility](../application-models/uiability-usage.md#obtaining-the-context-of-uiability). + + +```ts +import securityLabel from '@ohos.file.securityLabel'; + +//Obtain the sandbox path of the file. +let context =...; // Obtain UIAbilityContext information. +let pathDir = context.filesDir; +let filePath = pathDir + '/test.txt'; + +// Set the data level of the file to S0. +securityLabel.setSecurityLabel(filePath, 's0').then(() => { + console.info('Succeeded in setSecurityLabeling.'); +}).catch((err) => { + console.error(`Failed to setSecurityLabel. Code: ${err.code}, message: ${err.message}`); +}); +``` + \ No newline at end of file diff --git a/en/application-dev/file-management/share-app-file.md b/en/application-dev/file-management/share-app-file.md new file mode 100644 index 0000000000..d9ee1d9090 --- /dev/null +++ b/en/application-dev/file-management/share-app-file.md @@ -0,0 +1,147 @@ +# Sharing an Application File + +The file of an application can be shared with another application based on the file descriptor (FD) or uniform resource identifier (URI) of the file. However, if the FD of a shared file is closed, the file cannot be opened. Therefore, the file sharing based on the FD is not recommended. This section describes how to share an application file based on its URI. + +- You can use **wantConstant.Flags()** of the [ohos.app.ability.wantConstant](../reference/apis/js-apis-app-ability-wantConstant.md#wantconstantflags) module to share an application file in read or read/write mode based on its URI with another application. The target application can use **open()** of the [ohos.file.fs](../reference/apis/js-apis-file-fs.md#fsopen) module to open the URI and then perform read and/or write operations based on the permissions granted. Currently, OpenHarmony API version 9 supports only temporary authorization. The permission on shared file is revoked once the target application exits. + +- You can also use **open()** of the ohos.file.fs module to share an application file with the specified permissions to another application based on the FD. After parsing the FD from **Want**, the target application can read and write the file by using **read()** and **write()** APIs of ohos.file.fs. + +You can use the related APIs to [share a file with another application](#sharing-a-file-with-another-application) or [use shared application files](#using-shared-files). + +## File URI Specifications + +The file URIs are in the following format: + + file://<bundleName>/<path>/\#networkid=<networkid> + +- **file**: indicates a file URI. + +- *bundleName*: specifies the owner of the file. + +- *path*: specifies the application sandbox path of the file. + +- *networkid* (optional): specifies the device to which the file belongs in a distributed file system. Leave this parameter unspecified if the file location does not need to be set. + +## Sharing a File with Another Application + +Before sharing application files, you need to [obtain the application file path](../application-models/application-context-stage.md#obtaining-the-application-development-path). + +1. Obtain the application sandbox path of the file and convert it into the file URI. + + ```ts + import UIAbility from '@ohos.app.ability.UIAbility'; + import fileuri from '@ohos.file.fileuri'; + import window from '@ohos.window'; + + export default class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage: window.WindowStage) { + // Obtain the application sandbox path of the file. + let pathInSandbox = this.context.filesDir + "/test.txt"; + // Convert the application sandbox path into a URI. + let uri = fileuri.getUriFromPath(pathInSandbox); + // The obtained URI is file://com.example.demo/data/storage/el2/base/files/test.txt. + } + } + ``` + +2. Set the target application, with which you want to share the file, and grant permissions on the file. + Use [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) to share the file with the target application. You need to pass in the URI obtained in **uri** of the **want** parameter, set the type of the file to share, set **action** to **ohos.want.action.sendData**, and set the granted permission on the file in **flags**. For details, see [Want](../reference/apis/js-apis-app-ability-want.md#attributes). + + > **NOTE** + > + > The write permission granted includes the read permission. + + ```ts + import fileuri from '@ohos.file.fileuri'; + import window from '@ohos.window'; + import wantConstant from '@ohos.app.ability.wantConstant'; + import UIAbility from '@ohos.app.ability.UIAbility'; + + export default class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage: window.WindowStage) { + // Obtain the application sandbox path of the file. + let filePath = this.context.filesDir + '/test.txt'; + // Convert the application sandbox path into a URI. + let uri = fileuri.getUriFromPath(filePath); + let want = { + // Grant the read and write permissions on the shared file to the target application. + flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, + // Set the implicit startup rule for the application that shares the file. + action: 'ohos.want.action.sendData', + uri: uri, + type: 'text/plain' + } + this.context.startAbility(want) + .then(() => { + console.info('Invoke getCurrentBundleStats succeeded.'); + }) + .catch((err) => { + console.error(`Invoke startAbility failed, code is ${err.code}, message is ${err.message}`); + }); + } + + ... + } + ``` + +## Using Shared Files + +In the [**module.json5** file](../quick-start/module-configuration-file.md) of the application, which wants to use the shared file, set **actions** to **ohos.want.action.sendData** to allow the application to receive files shared by another application and set **uris** to the type of the URI to receive. In the following example, the application receives only .txt files with **scheme** of **file**. + +```json +{ + "module": { + ... + "abilities": [ + { + ... + "skills": [ + { + ... + "actions": [ + "ohos.want.action.sendData" + ], + "uris": [ + { + "scheme": "file", + "type": "text/plain" + } + ] + } + ] + } + ] + } +} +``` + +After **UIAbility** of the application starts, the application obtains **want** information from [**onCreate()**](../reference/apis/js-apis-app-ability-uiAbility.md#uiabilityoncreate) or [**onNewWant()**](../reference/apis/js-apis-app-ability-uiAbility.md#uiabilityonnewwant). + +After obtaining the URI of the shared file through **want**, the application can call **fs.open()** to open the file, and then read and write the file after obtaining the related file object. + +```ts +// xxx.ets +import fs from '@ohos.file.fs'; + +function getShareFile() { + try { + let want =...; // Obtain the want information sent from the application that shares the file. + + // Obtain the uri field from the want information. + let uri = want.uri; + if (uri == null || uri == undefined) { + console.info('uri is invalid'); + return; + } + try { + // Perform operations on the URI of the shared file as required. For example, open the URI to obtain the file object in read/write mode. + let file = fs.openSync(uri, fs.OpenMode.READ_WRITE); + console.info('open file successfully!'); + } catch (error) { + console.error(`Invoke openSync failed, code is ${error.code}, message is ${error.message}`); + } + } catch (error) { + console.error(`Invoke openSync failed, code is ${error.code}, message is ${error.message}`); + } +} +``` diff --git a/en/application-dev/file-management/user-file-overview.md b/en/application-dev/file-management/user-file-overview.md new file mode 100644 index 0000000000..599da10241 --- /dev/null +++ b/en/application-dev/file-management/user-file-overview.md @@ -0,0 +1,60 @@ +# User File Overview + +User files are the private images, video and audio clips, and documents of the user who logs in to the device. + +1. User files are stored in a directory, whose owner is the user who logs in to the device. + +2. User files can be stored in [built-in storage](#built-in-storage) and [external storage](#external-storage). + +3. An application cannot access user files without user authorization, or the operations on user files must be performed by the user. + +OpenHarmony provides the [user file access framework](#user-file-access-framework) for developers to access and manage user files, which will be described in detail below. + +## User File Storage + +### Built-in Storage + +Built-in storage refers to the internal storage device (space) of a device. The built-in storage device cannot be removed. The following files can be stored in the built-in storage of a device: + +- Files owned by a user: The files belong to the user who logs in to the device. Different users who log in to a device can view only their own files. + These user files can be classified into the following types based on file attributes and access habits of users/applications: + - Image/Video files + The files have attributes, such as the shooting time, location, rotation angle, and file width and height information, and are stored in media file formats. The files are usually presented as media files or albums, without the specific location in the system. + + - Audio files + The files have attributes, such as the album, creator, and shooting duration information, and are stored in media file formats. Generally, the files are presented by file, album, or creator, without the specific location in the system. + + - Documents + The files are stored as common files, including common text files, compressed files, and images, videos and audio clips stored as common files. These files are presented in a directory tree. + +- Files shared by users: The files are stored in a directory for share and shared by multiple users. + The files in the shared directory are stored as common files and presented in a directory tree. + +### External Storage + +External storage is not inside a device's main storage or memory. Common external storage devices include pluggable devices, such as SD cards and USB flash drives. Same as the files in the shared directory of the built-in storage device, the files in an external storage device can be viewed by all the users who log in to the system. + +External storage devices are pluggable. OpenHarmony provides the functions of listening for the device insertion and removal events and mounting/unmounting an external storage device. For details, see [Managing External Storage Devices)](manage-external-storage.md). + +The files on external storage devices are presented as common files in a directory tree, like the documents stored in built-in storage. + +## User File Access Framework + +OpenHarmony provides the user file access framework for developers to access and manage user files. This framework leverages the ExtensionAbility of OpenHarmony to provide a set of methods and interfaces for accessing user files. + +**Figure 1** User file access framework +![User file access framework](figures/user-file-access-framework.png) + +- To access user files, for example, select a photo or save multiple documents, a system application or third-party application (file access client in **Figure 1**) starts the **FilePicker** application. + +- OpenHarmony is prebuilt with the **FilePicker** and **FileManager** applications. + - **FilePicker**: provides APIs for a file access client to select and save user files without any permission. For details, see [Selecting User Files](select-user-file.md). + - **FileManager**: allows users to view and modify files, and delete, rename, move, and create files or directories by using a system FileManager. + + You can also develop your own FilePicker or FileManager applications as required. FilePicker is a subset of FileManager. For details about how to develop a FileManager application, see [Developing a FileManager Application)](dev-user-file-manager.md). + +- The user file access framework provides the following functional modules: + - **File Access Helper**: provides APIs for the **FileManager** and **FilePicker** to access user files. + - **File Access ExtensionAbility**: provides a file access framework to implement file access functions. The **File Access ExtensionAbility** consists of the following: + - **UserFileManager**: implements management of the files stored on the built-in storage. + - **ExternalFileManager**: implements management of the files stored on the external storage. -- GitLab