From 6a13165189433dfc3ccd56810c82b7e1bc0c4fc7 Mon Sep 17 00:00:00 2001 From: Louis-Guillaume DUBOIS Date: Thu, 1 Jun 2017 11:36:21 +0200 Subject: [PATCH] Premier commit. --- .gitignore | 10 + .google/packaging.yaml | 18 + .idea/compiler.xml | 22 + .idea/copyright/profiles_settings.xml | 3 + .idea/gradle.xml | 18 + .idea/misc.xml | 46 ++ .idea/modules.xml | 9 + .idea/runConfigurations.xml | 12 + .idea/vcs.xml | 6 + Application/build.gradle | 59 ++ Application/src/main/AndroidManifest.xml | 51 ++ .../bluetoothlegatt/BluetoothLeService.java | 319 +++++++++ .../DeviceControlActivity.java | 309 +++++++++ .../bluetoothlegatt/DeviceScanActivity.java | 300 ++++++++ .../bluetoothlegatt/SampleGattAttributes.java | 42 ++ .../main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 5170 bytes .../src/main/res/drawable-hdpi/tile.9.png | Bin 0 -> 196 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 3025 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 7227 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 12800 bytes .../actionbar_indeterminate_progress.xml | 23 + .../layout/gatt_services_characteristics.xml | 71 ++ .../src/main/res/layout/listitem_device.xml | 28 + .../src/main/res/menu/gatt_services.xml | 29 + Application/src/main/res/menu/main.xml | 29 + .../res/values-sw600dp/template-dimens.xml | 24 + .../res/values-sw600dp/template-styles.xml | 25 + .../main/res/values-v11/template-styles.xml | 22 + .../src/main/res/values-v21/base-colors.xml | 21 + .../res/values-v21/base-template-styles.xml | 24 + .../src/main/res/values/base-strings.xml | 30 + Application/src/main/res/values/strings.xml | 36 + .../src/main/res/values/template-dimens.xml | 32 + .../src/main/res/values/template-styles.xml | 42 ++ LICENSE | 647 ++++++++++++++++++ README.md | 71 ++ build.gradle | 10 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 +++++ gradlew.bat | 90 +++ packaging.yaml | 15 + screenshots/1-main.png | Bin 0 -> 68389 bytes screenshots/2-detail.png | Bin 0 -> 80086 bytes screenshots/icon-web.png | Bin 0 -> 70614 bytes settings.gradle | 1 + 46 files changed, 2664 insertions(+) create mode 100644 .gitignore create mode 100644 .google/packaging.yaml create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml create mode 100644 Application/build.gradle create mode 100644 Application/src/main/AndroidManifest.xml create mode 100644 Application/src/main/java/com/example/android/bluetoothlegatt/BluetoothLeService.java create mode 100644 Application/src/main/java/com/example/android/bluetoothlegatt/DeviceControlActivity.java create mode 100644 Application/src/main/java/com/example/android/bluetoothlegatt/DeviceScanActivity.java create mode 100644 Application/src/main/java/com/example/android/bluetoothlegatt/SampleGattAttributes.java create mode 100755 Application/src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 Application/src/main/res/drawable-hdpi/tile.9.png create mode 100755 Application/src/main/res/drawable-mdpi/ic_launcher.png create mode 100755 Application/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100755 Application/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 Application/src/main/res/layout/actionbar_indeterminate_progress.xml create mode 100644 Application/src/main/res/layout/gatt_services_characteristics.xml create mode 100644 Application/src/main/res/layout/listitem_device.xml create mode 100644 Application/src/main/res/menu/gatt_services.xml create mode 100644 Application/src/main/res/menu/main.xml create mode 100644 Application/src/main/res/values-sw600dp/template-dimens.xml create mode 100644 Application/src/main/res/values-sw600dp/template-styles.xml create mode 100644 Application/src/main/res/values-v11/template-styles.xml create mode 100644 Application/src/main/res/values-v21/base-colors.xml create mode 100644 Application/src/main/res/values-v21/base-template-styles.xml create mode 100644 Application/src/main/res/values/base-strings.xml create mode 100644 Application/src/main/res/values/strings.xml create mode 100644 Application/src/main/res/values/template-dimens.xml create mode 100644 Application/src/main/res/values/template-styles.xml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 packaging.yaml create mode 100644 screenshots/1-main.png create mode 100644 screenshots/2-detail.png create mode 100644 screenshots/icon-web.png create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c313858 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild +Application/build diff --git a/.google/packaging.yaml b/.google/packaging.yaml new file mode 100644 index 0000000..42abd09 --- /dev/null +++ b/.google/packaging.yaml @@ -0,0 +1,18 @@ + +# GOOGLE SAMPLE PACKAGING DATA +# +# This file is used by Google as part of our samples packaging process. +# End users may safely ignore this file. It has no relevance to other systems. +--- +status: PUBLISHED +technologies: [Android] +categories: [Connectivity] +languages: [Java] +solutions: [Mobile] +github: android-BluetoothLeGatt +level: ADVANCED +icon: screenshots/icon-web.png +apiRefs: + - android:android.app.Service + - android:android.bluetooth.BluetoothGattService +license: apache2 diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..773d366 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..44bc9b2 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..b7dff85 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Application/build.gradle b/Application/build.gradle new file mode 100644 index 0000000..69cefd2 --- /dev/null +++ b/Application/build.gradle @@ -0,0 +1,59 @@ + +buildscript { + repositories { + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:2.3.2' + } +} + +apply plugin: 'com.android.application' + +repositories { + jcenter() +} + +dependencies { + compile "com.android.support:support-v4:25.0.1" + compile "com.android.support:support-v13:25.0.1" + compile "com.android.support:cardview-v7:25.0.1" + compile "com.android.support:appcompat-v7:25.0.1" +} + +// The sample build uses multiple directories to +// keep boilerplate and common code separate from +// the main sample code. +List dirs = [ + 'main', // main sample code; look here for the interesting stuff. + 'common', // components that are reused by multiple samples + 'template'] // boilerplate code that is generated by the sample template process + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.2" + + defaultConfig { + minSdkVersion 18 + targetSdkVersion 25 + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + + sourceSets { + main { + dirs.each { dir -> + java.srcDirs "src/${dir}/java" + res.srcDirs "src/${dir}/res" + } + } + androidTest.setRoot('tests') + androidTest.java.srcDirs = ['tests/src'] + + } + +} diff --git a/Application/src/main/AndroidManifest.xml b/Application/src/main/AndroidManifest.xml new file mode 100644 index 0000000..5983250 --- /dev/null +++ b/Application/src/main/AndroidManifest.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Application/src/main/java/com/example/android/bluetoothlegatt/BluetoothLeService.java b/Application/src/main/java/com/example/android/bluetoothlegatt/BluetoothLeService.java new file mode 100644 index 0000000..694faaf --- /dev/null +++ b/Application/src/main/java/com/example/android/bluetoothlegatt/BluetoothLeService.java @@ -0,0 +1,319 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.bluetoothlegatt; + +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattService; +import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; +import android.content.Context; +import android.content.Intent; +import android.os.Binder; +import android.os.IBinder; +import android.util.Log; + +import java.util.List; +import java.util.UUID; + +/** + * Service for managing connection and data communication with a GATT server hosted on a + * given Bluetooth LE device. + */ +public class BluetoothLeService extends Service { + private final static String TAG = BluetoothLeService.class.getSimpleName(); + + private BluetoothManager mBluetoothManager; + private BluetoothAdapter mBluetoothAdapter; + private String mBluetoothDeviceAddress; + private BluetoothGatt mBluetoothGatt; + private int mConnectionState = STATE_DISCONNECTED; + + private static final int STATE_DISCONNECTED = 0; + private static final int STATE_CONNECTING = 1; + private static final int STATE_CONNECTED = 2; + + public final static String ACTION_GATT_CONNECTED = + "com.example.bluetooth.le.ACTION_GATT_CONNECTED"; + public final static String ACTION_GATT_DISCONNECTED = + "com.example.bluetooth.le.ACTION_GATT_DISCONNECTED"; + public final static String ACTION_GATT_SERVICES_DISCOVERED = + "com.example.bluetooth.le.ACTION_GATT_SERVICES_DISCOVERED"; + public final static String ACTION_DATA_AVAILABLE = + "com.example.bluetooth.le.ACTION_DATA_AVAILABLE"; + public final static String EXTRA_DATA = + "com.example.bluetooth.le.EXTRA_DATA"; + + public final static UUID UUID_HEART_RATE_MEASUREMENT = + UUID.fromString(SampleGattAttributes.HEART_RATE_MEASUREMENT); + + // Implements callback methods for GATT events that the app cares about. For example, + // connection change and services discovered. + private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() { + @Override + public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { + String intentAction; + if (newState == BluetoothProfile.STATE_CONNECTED) { + intentAction = ACTION_GATT_CONNECTED; + mConnectionState = STATE_CONNECTED; + broadcastUpdate(intentAction); + Log.i(TAG, "Connected to GATT server."); + // Attempts to discover services after successful connection. + Log.i(TAG, "Attempting to start service discovery:" + + mBluetoothGatt.discoverServices()); + + } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { + intentAction = ACTION_GATT_DISCONNECTED; + mConnectionState = STATE_DISCONNECTED; + Log.i(TAG, "Disconnected from GATT server."); + broadcastUpdate(intentAction); + } + } + + @Override + public void onServicesDiscovered(BluetoothGatt gatt, int status) { + if (status == BluetoothGatt.GATT_SUCCESS) { + broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED); + } else { + Log.w(TAG, "onServicesDiscovered received: " + status); + } + } + + @Override + public void onCharacteristicRead(BluetoothGatt gatt, + BluetoothGattCharacteristic characteristic, + int status) { + if (status == BluetoothGatt.GATT_SUCCESS) { + broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic); + } + } + + @Override + public void onCharacteristicChanged(BluetoothGatt gatt, + BluetoothGattCharacteristic characteristic) { + broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic); + } + }; + + private void broadcastUpdate(final String action) { + final Intent intent = new Intent(action); + sendBroadcast(intent); + } + + private void broadcastUpdate(final String action, + final BluetoothGattCharacteristic characteristic) { + final Intent intent = new Intent(action); + + // This is special handling for the Heart Rate Measurement profile. Data parsing is + // carried out as per profile specifications: + // http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml + if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) { + int flag = characteristic.getProperties(); + int format = -1; + if ((flag & 0x01) != 0) { + format = BluetoothGattCharacteristic.FORMAT_UINT16; + Log.d(TAG, "Heart rate format UINT16."); + } else { + format = BluetoothGattCharacteristic.FORMAT_UINT8; + Log.d(TAG, "Heart rate format UINT8."); + } + final int heartRate = characteristic.getIntValue(format, 1); + Log.d(TAG, String.format("Received heart rate: %d", heartRate)); + intent.putExtra(EXTRA_DATA, String.valueOf(heartRate)); + } else { + // For all other profiles, writes the data formatted in HEX. + final byte[] data = characteristic.getValue(); + if (data != null && data.length > 0) { + final StringBuilder stringBuilder = new StringBuilder(data.length); + for(byte byteChar : data) + stringBuilder.append(String.format("%02X ", byteChar)); + intent.putExtra(EXTRA_DATA, new String(data) + "\n" + stringBuilder.toString()); + } + } + sendBroadcast(intent); + } + + public class LocalBinder extends Binder { + BluetoothLeService getService() { + return BluetoothLeService.this; + } + } + + @Override + public IBinder onBind(Intent intent) { + return mBinder; + } + + @Override + public boolean onUnbind(Intent intent) { + // After using a given device, you should make sure that BluetoothGatt.close() is called + // such that resources are cleaned up properly. In this particular example, close() is + // invoked when the UI is disconnected from the Service. + close(); + return super.onUnbind(intent); + } + + private final IBinder mBinder = new LocalBinder(); + + /** + * Initializes a reference to the local Bluetooth adapter. + * + * @return Return true if the initialization is successful. + */ + public boolean initialize() { + // For API level 18 and above, get a reference to BluetoothAdapter through + // BluetoothManager. + if (mBluetoothManager == null) { + mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + if (mBluetoothManager == null) { + Log.e(TAG, "Unable to initialize BluetoothManager."); + return false; + } + } + + mBluetoothAdapter = mBluetoothManager.getAdapter(); + if (mBluetoothAdapter == null) { + Log.e(TAG, "Unable to obtain a BluetoothAdapter."); + return false; + } + + return true; + } + + /** + * Connects to the GATT server hosted on the Bluetooth LE device. + * + * @param address The device address of the destination device. + * + * @return Return true if the connection is initiated successfully. The connection result + * is reported asynchronously through the + * {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)} + * callback. + */ + public boolean connect(final String address) { + if (mBluetoothAdapter == null || address == null) { + Log.w(TAG, "BluetoothAdapter not initialized or unspecified address."); + return false; + } + + // Previously connected device. Try to reconnect. + if (mBluetoothDeviceAddress != null && address.equals(mBluetoothDeviceAddress) + && mBluetoothGatt != null) { + Log.d(TAG, "Trying to use an existing mBluetoothGatt for connection."); + if (mBluetoothGatt.connect()) { + mConnectionState = STATE_CONNECTING; + return true; + } else { + return false; + } + } + + final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); + if (device == null) { + Log.w(TAG, "Device not found. Unable to connect."); + return false; + } + // We want to directly connect to the device, so we are setting the autoConnect + // parameter to false. + mBluetoothGatt = device.connectGatt(this, false, mGattCallback); + Log.d(TAG, "Trying to create a new connection."); + mBluetoothDeviceAddress = address; + mConnectionState = STATE_CONNECTING; + return true; + } + + /** + * Disconnects an existing connection or cancel a pending connection. The disconnection result + * is reported asynchronously through the + * {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)} + * callback. + */ + public void disconnect() { + if (mBluetoothAdapter == null || mBluetoothGatt == null) { + Log.w(TAG, "BluetoothAdapter not initialized"); + return; + } + mBluetoothGatt.disconnect(); + } + + /** + * After using a given BLE device, the app must call this method to ensure resources are + * released properly. + */ + public void close() { + if (mBluetoothGatt == null) { + return; + } + mBluetoothGatt.close(); + mBluetoothGatt = null; + } + + /** + * Request a read on a given {@code BluetoothGattCharacteristic}. The read result is reported + * asynchronously through the {@code BluetoothGattCallback#onCharacteristicRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int)} + * callback. + * + * @param characteristic The characteristic to read from. + */ + public void readCharacteristic(BluetoothGattCharacteristic characteristic) { + if (mBluetoothAdapter == null || mBluetoothGatt == null) { + Log.w(TAG, "BluetoothAdapter not initialized"); + return; + } + mBluetoothGatt.readCharacteristic(characteristic); + } + + /** + * Enables or disables notification on a give characteristic. + * + * @param characteristic Characteristic to act on. + * @param enabled If true, enable notification. False otherwise. + */ + public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic, + boolean enabled) { + if (mBluetoothAdapter == null || mBluetoothGatt == null) { + Log.w(TAG, "BluetoothAdapter not initialized"); + return; + } + mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); + + // This is specific to Heart Rate Measurement. + if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) { + BluetoothGattDescriptor descriptor = characteristic.getDescriptor( + UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG)); + descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); + mBluetoothGatt.writeDescriptor(descriptor); + } + } + + /** + * Retrieves a list of supported GATT services on the connected device. This should be + * invoked only after {@code BluetoothGatt#discoverServices()} completes successfully. + * + * @return A {@code List} of supported services. + */ + public List getSupportedGattServices() { + if (mBluetoothGatt == null) return null; + + return mBluetoothGatt.getServices(); + } +} diff --git a/Application/src/main/java/com/example/android/bluetoothlegatt/DeviceControlActivity.java b/Application/src/main/java/com/example/android/bluetoothlegatt/DeviceControlActivity.java new file mode 100644 index 0000000..dc2f90b --- /dev/null +++ b/Application/src/main/java/com/example/android/bluetoothlegatt/DeviceControlActivity.java @@ -0,0 +1,309 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.bluetoothlegatt; + +import android.app.Activity; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattService; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.ServiceConnection; +import android.os.Bundle; +import android.os.IBinder; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.ExpandableListView; +import android.widget.SimpleExpandableListAdapter; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * For a given BLE device, this Activity provides the user interface to connect, display data, + * and display GATT services and characteristics supported by the device. The Activity + * communicates with {@code BluetoothLeService}, which in turn interacts with the + * Bluetooth LE API. + */ +public class DeviceControlActivity extends Activity { + private final static String TAG = DeviceControlActivity.class.getSimpleName(); + + public static final String EXTRAS_DEVICE_NAME = "DEVICE_NAME"; + public static final String EXTRAS_DEVICE_ADDRESS = "DEVICE_ADDRESS"; + + private TextView mConnectionState; + private TextView mDataField; + private String mDeviceName; + private String mDeviceAddress; + private ExpandableListView mGattServicesList; + private BluetoothLeService mBluetoothLeService; + private ArrayList> mGattCharacteristics = + new ArrayList>(); + private boolean mConnected = false; + private BluetoothGattCharacteristic mNotifyCharacteristic; + + private final String LIST_NAME = "NAME"; + private final String LIST_UUID = "UUID"; + + // Code to manage Service lifecycle. + private final ServiceConnection mServiceConnection = new ServiceConnection() { + + @Override + public void onServiceConnected(ComponentName componentName, IBinder service) { + mBluetoothLeService = ((BluetoothLeService.LocalBinder) service).getService(); + if (!mBluetoothLeService.initialize()) { + Log.e(TAG, "Unable to initialize Bluetooth"); + finish(); + } + // Automatically connects to the device upon successful start-up initialization. + mBluetoothLeService.connect(mDeviceAddress); + } + + @Override + public void onServiceDisconnected(ComponentName componentName) { + mBluetoothLeService = null; + } + }; + + // Handles various events fired by the Service. + // ACTION_GATT_CONNECTED: connected to a GATT server. + // ACTION_GATT_DISCONNECTED: disconnected from a GATT server. + // ACTION_GATT_SERVICES_DISCOVERED: discovered GATT services. + // ACTION_DATA_AVAILABLE: received data from the device. This can be a result of read + // or notification operations. + private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + final String action = intent.getAction(); + if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) { + mConnected = true; + updateConnectionState(R.string.connected); + invalidateOptionsMenu(); + } else if (BluetoothLeService.ACTION_GATT_DISCONNECTED.equals(action)) { + mConnected = false; + updateConnectionState(R.string.disconnected); + invalidateOptionsMenu(); + clearUI(); + } else if (BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED.equals(action)) { + // Show all the supported services and characteristics on the user interface. + displayGattServices(mBluetoothLeService.getSupportedGattServices()); + } else if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) { + displayData(intent.getStringExtra(BluetoothLeService.EXTRA_DATA)); + } + } + }; + + // If a given GATT characteristic is selected, check for supported features. This sample + // demonstrates 'Read' and 'Notify' features. See + // http://d.android.com/reference/android/bluetooth/BluetoothGatt.html for the complete + // list of supported characteristic features. + private final ExpandableListView.OnChildClickListener servicesListClickListner = + new ExpandableListView.OnChildClickListener() { + @Override + public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, + int childPosition, long id) { + if (mGattCharacteristics != null) { + final BluetoothGattCharacteristic characteristic = + mGattCharacteristics.get(groupPosition).get(childPosition); + final int charaProp = characteristic.getProperties(); + if ((charaProp | BluetoothGattCharacteristic.PROPERTY_READ) > 0) { + // If there is an active notification on a characteristic, clear + // it first so it doesn't update the data field on the user interface. + if (mNotifyCharacteristic != null) { + mBluetoothLeService.setCharacteristicNotification( + mNotifyCharacteristic, false); + mNotifyCharacteristic = null; + } + mBluetoothLeService.readCharacteristic(characteristic); + } + if ((charaProp | BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) { + mNotifyCharacteristic = characteristic; + mBluetoothLeService.setCharacteristicNotification( + characteristic, true); + } + return true; + } + return false; + } + }; + + private void clearUI() { + mGattServicesList.setAdapter((SimpleExpandableListAdapter) null); + mDataField.setText(R.string.no_data); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.gatt_services_characteristics); + + final Intent intent = getIntent(); + mDeviceName = intent.getStringExtra(EXTRAS_DEVICE_NAME); + mDeviceAddress = intent.getStringExtra(EXTRAS_DEVICE_ADDRESS); + + // Sets up UI references. + ((TextView) findViewById(R.id.device_address)).setText(mDeviceAddress); + mGattServicesList = (ExpandableListView) findViewById(R.id.gatt_services_list); + mGattServicesList.setOnChildClickListener(servicesListClickListner); + mConnectionState = (TextView) findViewById(R.id.connection_state); + mDataField = (TextView) findViewById(R.id.data_value); + + getActionBar().setTitle(mDeviceName); + getActionBar().setDisplayHomeAsUpEnabled(true); + Intent gattServiceIntent = new Intent(this, BluetoothLeService.class); + bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE); + } + + @Override + protected void onResume() { + super.onResume(); + registerReceiver(mGattUpdateReceiver, makeGattUpdateIntentFilter()); + if (mBluetoothLeService != null) { + final boolean result = mBluetoothLeService.connect(mDeviceAddress); + Log.d(TAG, "Connect request result=" + result); + } + } + + @Override + protected void onPause() { + super.onPause(); + unregisterReceiver(mGattUpdateReceiver); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + unbindService(mServiceConnection); + mBluetoothLeService = null; + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.gatt_services, menu); + if (mConnected) { + menu.findItem(R.id.menu_connect).setVisible(false); + menu.findItem(R.id.menu_disconnect).setVisible(true); + } else { + menu.findItem(R.id.menu_connect).setVisible(true); + menu.findItem(R.id.menu_disconnect).setVisible(false); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.menu_connect: + mBluetoothLeService.connect(mDeviceAddress); + return true; + case R.id.menu_disconnect: + mBluetoothLeService.disconnect(); + return true; + case android.R.id.home: + onBackPressed(); + return true; + } + return super.onOptionsItemSelected(item); + } + + private void updateConnectionState(final int resourceId) { + runOnUiThread(new Runnable() { + @Override + public void run() { + mConnectionState.setText(resourceId); + } + }); + } + + private void displayData(String data) { + if (data != null) { + mDataField.setText(data); + } + } + + // Demonstrates how to iterate through the supported GATT Services/Characteristics. + // In this sample, we populate the data structure that is bound to the ExpandableListView + // on the UI. + private void displayGattServices(List gattServices) { + if (gattServices == null) return; + String uuid = null; + String unknownServiceString = getResources().getString(R.string.unknown_service); + String unknownCharaString = getResources().getString(R.string.unknown_characteristic); + ArrayList> gattServiceData = new ArrayList>(); + ArrayList>> gattCharacteristicData + = new ArrayList>>(); + mGattCharacteristics = new ArrayList>(); + + // Loops through available GATT Services. + for (BluetoothGattService gattService : gattServices) { + HashMap currentServiceData = new HashMap(); + uuid = gattService.getUuid().toString(); + currentServiceData.put( + LIST_NAME, SampleGattAttributes.lookup(uuid, unknownServiceString)); + currentServiceData.put(LIST_UUID, uuid); + gattServiceData.add(currentServiceData); + + ArrayList> gattCharacteristicGroupData = + new ArrayList>(); + List gattCharacteristics = + gattService.getCharacteristics(); + ArrayList charas = + new ArrayList(); + + // Loops through available Characteristics. + for (BluetoothGattCharacteristic gattCharacteristic : gattCharacteristics) { + charas.add(gattCharacteristic); + HashMap currentCharaData = new HashMap(); + uuid = gattCharacteristic.getUuid().toString(); + currentCharaData.put( + LIST_NAME, SampleGattAttributes.lookup(uuid, unknownCharaString)); + currentCharaData.put(LIST_UUID, uuid); + gattCharacteristicGroupData.add(currentCharaData); + } + mGattCharacteristics.add(charas); + gattCharacteristicData.add(gattCharacteristicGroupData); + } + + SimpleExpandableListAdapter gattServiceAdapter = new SimpleExpandableListAdapter( + this, + gattServiceData, + android.R.layout.simple_expandable_list_item_2, + new String[] {LIST_NAME, LIST_UUID}, + new int[] { android.R.id.text1, android.R.id.text2 }, + gattCharacteristicData, + android.R.layout.simple_expandable_list_item_2, + new String[] {LIST_NAME, LIST_UUID}, + new int[] { android.R.id.text1, android.R.id.text2 } + ); + mGattServicesList.setAdapter(gattServiceAdapter); + } + + private static IntentFilter makeGattUpdateIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(BluetoothLeService.ACTION_GATT_CONNECTED); + intentFilter.addAction(BluetoothLeService.ACTION_GATT_DISCONNECTED); + intentFilter.addAction(BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED); + intentFilter.addAction(BluetoothLeService.ACTION_DATA_AVAILABLE); + return intentFilter; + } +} diff --git a/Application/src/main/java/com/example/android/bluetoothlegatt/DeviceScanActivity.java b/Application/src/main/java/com/example/android/bluetoothlegatt/DeviceScanActivity.java new file mode 100644 index 0000000..7b1e240 --- /dev/null +++ b/Application/src/main/java/com/example/android/bluetoothlegatt/DeviceScanActivity.java @@ -0,0 +1,300 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * Copyright (C) 2017 Louis-Guillaume Dubois + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.bluetoothlegatt; + +import android.Manifest; +import android.app.Activity; +import android.app.ListActivity; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.os.Handler; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; + +/** + * Activity for scanning and displaying available Bluetooth LE devices. + */ +public class DeviceScanActivity extends ListActivity { + private LeDeviceListAdapter mLeDeviceListAdapter; + private BluetoothAdapter mBluetoothAdapter; + private boolean mScanning; + private Handler mHandler; + + private static final int REQUEST_ENABLE_COARSE_LOCATION = 2; + private static final int REQUEST_ENABLE_BT = 1; + // Stops scanning after 10 seconds. + private static final long SCAN_PERIOD = 10000; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getActionBar().setTitle(R.string.title_devices); + mHandler = new Handler(); + + // Use this check to determine whether BLE is supported on the device. Then you can + // selectively disable BLE-related features. + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); + finish(); + } + + // Initializes a Bluetooth adapter. For API level 18 and above, get a reference to + // BluetoothAdapter through BluetoothManager. + final BluetoothManager bluetoothManager = + (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + mBluetoothAdapter = bluetoothManager.getAdapter(); + + // Checks if Bluetooth is supported on the device. + if (mBluetoothAdapter == null) { + Toast.makeText(this, R.string.error_bluetooth_not_supported, Toast.LENGTH_SHORT).show(); + finish(); + return; + } + + // demande des permissions au cas où + if (ContextCompat.checkSelfPermission(this, + Manifest.permission.ACCESS_COARSE_LOCATION) + != PackageManager.PERMISSION_GRANTED) { + + // Should we show an explanation? + if (ActivityCompat.shouldShowRequestPermissionRationale(this, + Manifest.permission.ACCESS_COARSE_LOCATION)) { + + // Show an explanation to the user *asynchronously* -- don't block + // this thread waiting for the user's response! After the user + // sees the explanation, try again to request the permission. + + } else { + + // No explanation needed, we can request the permission. + + ActivityCompat.requestPermissions(this, + new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, + REQUEST_ENABLE_COARSE_LOCATION); + + // REQUEST_ENABLE_ACCESS_COARSE_LOCATION is an + // app-defined int constant. The callback method gets the + // result of the request. + } + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.main, menu); + if (!mScanning) { + menu.findItem(R.id.menu_stop).setVisible(false); + menu.findItem(R.id.menu_scan).setVisible(true); + menu.findItem(R.id.menu_refresh).setActionView(null); + } else { + menu.findItem(R.id.menu_stop).setVisible(true); + menu.findItem(R.id.menu_scan).setVisible(false); + menu.findItem(R.id.menu_refresh).setActionView( + R.layout.actionbar_indeterminate_progress); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_scan: + mLeDeviceListAdapter.clear(); + scanLeDevice(true); + break; + case R.id.menu_stop: + scanLeDevice(false); + break; + } + return true; + } + + @Override + protected void onResume() { + super.onResume(); + + // Ensures Bluetooth is enabled on the device. If Bluetooth is not currently enabled, + // fire an intent to display a dialog asking the user to grant permission to enable it. + if (!mBluetoothAdapter.isEnabled()) { + if (!mBluetoothAdapter.isEnabled()) { + Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); + } + } + + // Initializes list view adapter. + mLeDeviceListAdapter = new LeDeviceListAdapter(); + setListAdapter(mLeDeviceListAdapter); + scanLeDevice(true); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // User chose not to enable Bluetooth. + if (requestCode == REQUEST_ENABLE_BT && resultCode == Activity.RESULT_CANCELED) { + finish(); + return; + } + super.onActivityResult(requestCode, resultCode, data); + } + + @Override + protected void onPause() { + super.onPause(); + scanLeDevice(false); + mLeDeviceListAdapter.clear(); + } + + @Override + protected void onListItemClick(ListView l, View v, int position, long id) { + final BluetoothDevice device = mLeDeviceListAdapter.getDevice(position); + if (device == null) return; + final Intent intent = new Intent(this, DeviceControlActivity.class); + intent.putExtra(DeviceControlActivity.EXTRAS_DEVICE_NAME, device.getName()); + intent.putExtra(DeviceControlActivity.EXTRAS_DEVICE_ADDRESS, device.getAddress()); + if (mScanning) { + mBluetoothAdapter.stopLeScan(mLeScanCallback); + mScanning = false; + } + startActivity(intent); + } + + private void scanLeDevice(final boolean enable) { + if (enable) { + // Stops scanning after a pre-defined scan period. + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + mScanning = false; + mBluetoothAdapter.stopLeScan(mLeScanCallback); + invalidateOptionsMenu(); + } + }, SCAN_PERIOD); + + mScanning = true; + mBluetoothAdapter.startLeScan(mLeScanCallback); + } else { + mScanning = false; + mBluetoothAdapter.stopLeScan(mLeScanCallback); + } + invalidateOptionsMenu(); + } + + // Adapter for holding devices found through scanning. + private class LeDeviceListAdapter extends BaseAdapter { + private ArrayList mLeDevices; + private LayoutInflater mInflator; + + public LeDeviceListAdapter() { + super(); + mLeDevices = new ArrayList(); + mInflator = DeviceScanActivity.this.getLayoutInflater(); + } + + public void addDevice(BluetoothDevice device) { + if(!mLeDevices.contains(device)) { + mLeDevices.add(device); + } + } + + public BluetoothDevice getDevice(int position) { + return mLeDevices.get(position); + } + + public void clear() { + mLeDevices.clear(); + } + + @Override + public int getCount() { + return mLeDevices.size(); + } + + @Override + public Object getItem(int i) { + return mLeDevices.get(i); + } + + @Override + public long getItemId(int i) { + return i; + } + + @Override + public View getView(int i, View view, ViewGroup viewGroup) { + ViewHolder viewHolder; + // General ListView optimization code. + if (view == null) { + view = mInflator.inflate(R.layout.listitem_device, null); + viewHolder = new ViewHolder(); + viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address); + viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name); + view.setTag(viewHolder); + } else { + viewHolder = (ViewHolder) view.getTag(); + } + + BluetoothDevice device = mLeDevices.get(i); + final String deviceName = device.getName(); + if (deviceName != null && deviceName.length() > 0) + viewHolder.deviceName.setText(deviceName); + else + viewHolder.deviceName.setText(R.string.unknown_device); + viewHolder.deviceAddress.setText(device.getAddress()); + + return view; + } + } + + // Device scan callback. + private BluetoothAdapter.LeScanCallback mLeScanCallback = + new BluetoothAdapter.LeScanCallback() { + + @Override + public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { + runOnUiThread(new Runnable() { + @Override + public void run() { + mLeDeviceListAdapter.addDevice(device); + mLeDeviceListAdapter.notifyDataSetChanged(); + } + }); + } + }; + + static class ViewHolder { + TextView deviceName; + TextView deviceAddress; + } +} \ No newline at end of file diff --git a/Application/src/main/java/com/example/android/bluetoothlegatt/SampleGattAttributes.java b/Application/src/main/java/com/example/android/bluetoothlegatt/SampleGattAttributes.java new file mode 100644 index 0000000..e8db74c --- /dev/null +++ b/Application/src/main/java/com/example/android/bluetoothlegatt/SampleGattAttributes.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.bluetoothlegatt; + +import java.util.HashMap; + +/** + * This class includes a small subset of standard GATT attributes for demonstration purposes. + */ +public class SampleGattAttributes { + private static HashMap attributes = new HashMap(); + public static String HEART_RATE_MEASUREMENT = "00002a37-0000-1000-8000-00805f9b34fb"; + public static String CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-8000-00805f9b34fb"; + + static { + // Sample Services. + attributes.put("0000180d-0000-1000-8000-00805f9b34fb", "Heart Rate Service"); + attributes.put("0000180a-0000-1000-8000-00805f9b34fb", "Device Information Service"); + // Sample Characteristics. + attributes.put(HEART_RATE_MEASUREMENT, "Heart Rate Measurement"); + attributes.put("00002a29-0000-1000-8000-00805f9b34fb", "Manufacturer Name String"); + } + + public static String lookup(String uuid, String defaultName) { + String name = attributes.get(uuid); + return name == null ? defaultName : name; + } +} diff --git a/Application/src/main/res/drawable-hdpi/ic_launcher.png b/Application/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..15367c050ee97cb6fc902cb21be0e1229b2b7a8f GIT binary patch literal 5170 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 literal 0 HcmV?d00001 diff --git a/Application/src/main/res/drawable-hdpi/tile.9.png b/Application/src/main/res/drawable-hdpi/tile.9.png new file mode 100644 index 0000000000000000000000000000000000000000..135862883e26eddce2b19db021adf62e10357ad0 GIT binary patch literal 196 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 Tj8f(r00000NkvXXu0mjf8NG|! literal 0 HcmV?d00001 diff --git a/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/Application/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..14f1d74670e677ddd8d92db6bf92e1e616a71f6d GIT binary patch literal 7227 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 + + + diff --git a/Application/src/main/res/layout/gatt_services_characteristics.xml b/Application/src/main/res/layout/gatt_services_characteristics.xml new file mode 100644 index 0000000..2f31061 --- /dev/null +++ b/Application/src/main/res/layout/gatt_services_characteristics.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Application/src/main/res/layout/listitem_device.xml b/Application/src/main/res/layout/listitem_device.xml new file mode 100644 index 0000000..eff44fc --- /dev/null +++ b/Application/src/main/res/layout/listitem_device.xml @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/Application/src/main/res/menu/gatt_services.xml b/Application/src/main/res/menu/gatt_services.xml new file mode 100644 index 0000000..464d32f --- /dev/null +++ b/Application/src/main/res/menu/gatt_services.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/Application/src/main/res/menu/main.xml b/Application/src/main/res/menu/main.xml new file mode 100644 index 0000000..39dd66a --- /dev/null +++ b/Application/src/main/res/menu/main.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/Application/src/main/res/values-sw600dp/template-dimens.xml b/Application/src/main/res/values-sw600dp/template-dimens.xml new file mode 100644 index 0000000..22074a2 --- /dev/null +++ b/Application/src/main/res/values-sw600dp/template-dimens.xml @@ -0,0 +1,24 @@ + + + + + + + @dimen/margin_huge + @dimen/margin_medium + + diff --git a/Application/src/main/res/values-sw600dp/template-styles.xml b/Application/src/main/res/values-sw600dp/template-styles.xml new file mode 100644 index 0000000..03d1974 --- /dev/null +++ b/Application/src/main/res/values-sw600dp/template-styles.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/Application/src/main/res/values-v11/template-styles.xml b/Application/src/main/res/values-v11/template-styles.xml new file mode 100644 index 0000000..8c1ea66 --- /dev/null +++ b/Application/src/main/res/values-v11/template-styles.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/Application/src/main/res/values/base-strings.xml b/Application/src/main/res/values/base-strings.xml new file mode 100644 index 0000000..8b742b7 --- /dev/null +++ b/Application/src/main/res/values/base-strings.xml @@ -0,0 +1,30 @@ + + + + + BluetoothLeGatt + + + + diff --git a/Application/src/main/res/values/strings.xml b/Application/src/main/res/values/strings.xml new file mode 100644 index 0000000..19f3dce --- /dev/null +++ b/Application/src/main/res/values/strings.xml @@ -0,0 +1,36 @@ + + + + BLE is not supported + Data: + Device address: + State: + No data + Connected + Disconnected + BLE Device Scan + Bluetooth not supported. + + Unknown device + Unknown characteristic + Unknown service + + + Connect + Disconnect + Scan + Stop + diff --git a/Application/src/main/res/values/template-dimens.xml b/Application/src/main/res/values/template-dimens.xml new file mode 100644 index 0000000..39e710b --- /dev/null +++ b/Application/src/main/res/values/template-dimens.xml @@ -0,0 +1,32 @@ + + + + + + + 4dp + 8dp + 16dp + 32dp + 64dp + + + + @dimen/margin_medium + @dimen/margin_medium + + diff --git a/Application/src/main/res/values/template-styles.xml b/Application/src/main/res/values/template-styles.xml new file mode 100644 index 0000000..6e7d593 --- /dev/null +++ b/Application/src/main/res/values/template-styles.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4f22946 --- /dev/null +++ b/LICENSE @@ -0,0 +1,647 @@ +Apache License +-------------- + + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +All image and audio files (including *.png, *.jpg, *.svg, *.mp3, *.wav +and *.ogg) are licensed under the CC-BY-NC license. All other files are +licensed under the Apache 2 license. + +CC-BY-NC License +---------------- + +Attribution-NonCommercial-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International +Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International Public License +("Public License"). To the extent this Public License may be +interpreted as a contract, You are granted the Licensed Rights in +consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under +these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-NC-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution, NonCommercial, and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. NonCommercial means not primarily intended for or directed towards + commercial advantage or monetary compensation. For purposes of + this Public License, the exchange of the Licensed Material for + other material subject to Copyright and Similar Rights by digital + file-sharing or similar means is NonCommercial provided there is + no payment of monetary compensation in connection with the + exchange. + + l. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + m. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + n. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-NC-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database for NonCommercial purposes + only; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..b2c3558 --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ + +Android BluetoothLeGatt Sample +=================================== + +This sample demonstrates how to use the Bluetooth LE Generic Attribute Profile (GATT) +to transmit arbitrary data between devices. + +Introduction +------------ + +This sample shows a list of available Bluetooth LE devices and provides +an interface to connect, display data and display GATT services and +characteristics supported by the devices. + +It creates a [Service][1] for managing connection and data communication with a GATT server +hosted on a given Bluetooth LE device. + +The Activities communicate with the Service, which in turn interacts with the [Bluetooth LE API][2]. + +[1]:http://developer.android.com/reference/android/app/Service.html +[2]:https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html + +Pre-requisites +-------------- + +- Android SDK 25 +- Android Build Tools v25.0.2 +- Android Support Repository + +Screenshots +------------- + +Screenshot Screenshot + +Getting Started +--------------- + +This sample uses the Gradle build system. To build this project, use the +"gradlew build" command or use "Import Project" in Android Studio. + +Support +------- + +- Google+ Community: https://plus.google.com/communities/105153134372062985968 +- Stack Overflow: http://stackoverflow.com/questions/tagged/android + +If you've found an error in this sample, please file an issue: +https://github.com/googlesamples/android-BluetoothLeGatt + +Patches are encouraged, and may be submitted by forking this project and +submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. + +License +------- + +Copyright 2016 The Android Open Source Project, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor +license agreements. See the NOTICE file distributed with this work for +additional information regarding copyright ownership. The ASF licenses this +file to you under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations under +the License. diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..584ba87 --- /dev/null +++ b/build.gradle @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd GIT binary patch literal 49896 zcmagFb986H(k`5d^NVfUwr$(C?M#x1ZQHiZiEVpg+jrjgoQrerx!>1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packaging.yaml b/packaging.yaml new file mode 100644 index 0000000..898d514 --- /dev/null +++ b/packaging.yaml @@ -0,0 +1,15 @@ +# GOOGLE SAMPLE PACKAGING DATA +# +# This file is used by Google as part of our samples packaging process. +# End users may safely ignore this file. It has no relevance to other systems. +--- + +status: PUBLISHED +technologies: [Android] +categories: [Connectivity] +languages: [Java] +solutions: [Mobile] +github: googlesamples/android-BluetoothLeGatt +level: BEGINNER +icon: BluetoothLeGattSample/src/main/res/drawable-xxhdpi/ic_launcher.png +license: apache2-android diff --git a/screenshots/1-main.png b/screenshots/1-main.png new file mode 100644 index 0000000000000000000000000000000000000000..19ceb47b6faa443ed07e0a520cd0a58795e03b20 GIT binary patch literal 68389 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 z zhh7+Z^f5t;J*8rm4O`rJ=}xtSdnh_V0foBC!O01SC^&_UtXBP>EAAUud`pj_ewM~X zKuoNtrA3kU;R9?%Tzq`6PAg@*D7}t?wp%KiKLz#EDa|xqYm~S8y#}M$fbSjYQ^-E$H0#ps|va^Lb zCEFX7jMJD9lZWFuVCm{95Mei!-qQPSaNSC&yfRD!F4O2g76ckRN(DA?ar*1muM?1x zh9yuzo1|t(kixa9PlMB*qR5u19!VjQ$G^oVU9zu0XLuLQ+*yXzN+`+Z`n&S&4f%fm zre2vFU-Dyla1nV~svpVYKHS+%AK(lwD&FE`4`s_4X|stts026AI5M<&VRQAH-K z9#$Cnsj~6#5OrzCw>x%MZ2g zu$!NYTnfx13*QV7HMpA^#vq!SQ!vSZDi5KUdqiUrWS-l^E)#(2Yl-`8yDd_Z$Usq{ z&upkpT6Za|@{G!@r=-?7G=$iCY6J#i)Y$%4$jf~@V0(vCxr8pyP^eY71{U_7`I`g; zC(1n>>g(h38JQK#oG~;C^m9uA{iEMZUMU*9RWvKWZTVVVjEydQ8BS|MPaMl=JF0Ub z$wc|lqWwHkY=r`0-fS4Hk_~&rR7JI@nak*y`1qiO(tHSsDj~bOh(w9EU;Dq=1~-OE zp+8Sye$m{9PbhlRefwHyegIlDGLpZsbG+}7?AC7hhD)ygxghEaD~xhi??hb7g2L2^ zlrg?qSWu{-RxnnmTNpbI$|iPtqjru!Aem3?--?ib8C%i~-6Epfc|uoV7TUZLwq72q zaup{kMV|E`fuefM$XgVFxx-KMyL1NqZzCJywk~IP9kl-; z_V@kfecVi_%{%+sP!G;z)OwRG*a;37&Ejt5N#?TLp>rbeLemXp@i)+y*Ii@l>SZtW z%B?zhK@eNlTKpy77Ze<0!xHUsKzX$i$|hq}zDlM#j3k^Xv)5ekXt-ZEkPf?>PcMSdES z$6p%SilXJNP5zt7mb%>sLoi16(ZxA z^Y3~&QTMyk(JXPKbBwpG(>|j&blTh6=zxhA7H1h-@EmgPTAlur5AvnfZKEZxx1?HbyP>X-E$~(XZ*#Dr3X_b3!qzVLW=O+^N|-y1jeF zJC&HptH+ve3y#gUXFF1Lv%XtP{EY~c-Tb#fxH<~iWKo58UB8*W&{0q$OchroQ2Fj{ ztXUcH!}5@ln&pYki|kal%2P$v?YB?cTtqOavTs@!Q?lE~P1-`X_`bz`{qbBUEFn9G z0lg`xA(z9GzG|H_{PpzT`*eF;&VMMNYBG>=%v*hif+~)u=gLCM(c#r+f%{@YJ5Fe~ zfp@8dxeA1~hWRHRLmfJct4oV^QyVR4387aj@v?YaI%={Xp8T_;^JuqYJm%!!$Fadd z8y-}4`j>S21?2n20}a1?kJEXZ-ZYc_hW+Uz`dUkz#BRr~55wv2C67f6-QRv7ZRwu8 zhjwdTM5Zn76AZFO-uhMtv^TR2o-gB`wE3!mYm>W!x(N{o6+_y$`a~ z9}^A*!&Fcy5uIB+Zq7$db{^7cSt%$HzxRMk>6Mbnh&&y|cT)^?lo>GX;CK z=5SR(ppvUhM$W>*0<~7XOFMWlXYKzuB!q&2;mQ2G4bqvEZ}%A;e_<^Udn@YLkidNh z>ED1ln%Zb)ZHA`4<=7zf*RNlnAI+*Qk5w~;lbvs9ilT#049+nq;D7=Q-y$sld_w0} zSL+g|(Zs{|$l7A7VBxdtaFjpNRB~S;f14&R&t!tH#l|j>IrY8fr|O|&{Nc_Jp>yBh zxfV%p>eNz3d7{Z5XF^>D4-QpxR(UI&xcf}>f7GAlRY-^s-BozPgUgMtTW%Ox{xVZ- z{`bvYOYwBPP@M2Bo9O5J1#=8Gjeg6fLfB6d{R@h;${=genq1~MgN6-79> z3N$c|IT@ZwS9&;QuE-HrtZF-`-1J6rMk9F=9Z>zTS>fUjlRG2I+F@9s7Iy;)kH6SF zpQ?Dbbb3TKtrJ@RO!T|@^-F;JdU|vbh7o$xhEdP)rya6~BzCgInLaVHAD#+NuQ>|L zdmIYUZ2!IUt;4liOJJ7E*J=*0I*o{5xOj2Hq!-hdXXFChxFS~~z$Fp;zRym#*pJsS zW5cp6p+iJ(%a*S{^)S^u=Ma5Xr6_NS*1N z*GcHoRa)5a6qrhIQt0{R(-TnXAH@}kxKkG~griT2CIhXvunAYJO*F~qqhfum*z<=~ zJ;i7gJ5$Y^ZO6{auEokrearWM`|MfBr#qR*!Bp|_ku)p4xJ7@w)qQ)uzkv1k&$rD{ z%I_v7?u#>%we9PoKm@=5eHA`4GvgQj{$Oqun4@)gvE}N>SHCeTNLTpfbt`Ec7t<+L z6X{kbu)n<|KZsXP$4g(&8fC}6$op%MO5w#f{>ut8J%@2r*%VqAAVHn8%(MMU(V&Nm z8NqL~A0>5Uy1)D-jr{Ibllr?Q2VO=VnHvw|e{l|M42U(|91c$udhk8PZ~u>}vvb+7 z3sBFKld)>&$nU- z+p1OL=N*bhbMWzz&b7b80KJNkI|x6pURCY4FEr*ocOKAv3b3ux{74B2W&|yW44QlS zHc>Ykxp#6*Mz-{CB~-m=3Gvx3q*GJipwdl3-NaK^PiU|l9`Hz3hIoZC>zmx9=8kWZ zFInBzGN)8%Nup4Ak*#dNWJ@L{y%YYmGNy^tWyR3NZQ&O_=p@&Z>8fmPZ3jM^UIZ8-qm;Hh|Qd zj8|c~4z1Hj0UhQrFG1XWks6e!7zx+k^kZhw00{;hc?mm>&_nu|E=0O1qQ)T3&IVF? zSJK!hpMKR#`4kPKtiyVKcL+9*nGLSR)ohBX_F|_JcoLIQQb%`IJSD{rr+uWFmBI1h zrQ&x(Jc@&@>tTgUPXaE`U}g%L7X*2t^q!J;j~8rgP$|?sES~i)G|JFm7y%|93Bb>G zy*$y(5>&uZqT?)o|9Asu+pG@HwZ_SpEzkLIXQeCOL~3_q@Aq40)ar-?#wGIUQ)OUs zkb4_lXIFvi-sm%OX4nxFNFn~+eOpf1!{dv&DP*(_knGZck9*l6a$J*dS}i%|x2Xxq zni1H98#ivC51o-FF7tgrB&3Vz=J1G!c}dj4mTj)_S1KkkCq%%DgZP7nP)S)i6=aw4 z{oil9@{Gi`=DRq@N5h{#e@;n97Y;{ndT(P|_2y0BqoD}MgIJ2toNg;aG@#K5^msQN z?Qa(PY};YzB1xG<8;J#~CN?E@;Qd{e2Lv%fh)~+~L1pf1v|>1!`C`wf4E}nAf`p%I z|G|lo4`{F(RShk9y|$V*qg z3Yd+*Q&y$PR(W>cPAPTi*%X7Wmwi1p){godTT!uzh)jBMe)y8LNZfDlDnja+h8klil!kY2%kE#0bYDc6 zX+}d=Rql-@IPLH~UCBN66Yzq`jqRT8@#{GBMxw#2J zxh|YMz9=ipg5=O~Ggvd6yN@0T$?ngbG~6_E4BBhE*8mi!aGZBW z$jjhJU6cN{R(l!)=^+hdGFd)L5YGm_x@MX)M5d*{iJ6BO&0l(vloSo>;hm*H_~SI6 z?Zu0$e%x%hWF0RF4gHBaXqk1?tS&J(ejR)-Pf0|rEKh*1;9lplz|8!rUBPA4Oq<%1 zjmnVo3}s%0A`yPJ8yQ~?xkP$s>Y1|>MN29{SaFjzh~RO1qVkmDQQ(wk1FnDD-}3RTT)N_h+6*Jbl^}&#CeV z=RxIp5F+VC?5O{4L?@KPpT-SVu%fVL*TPlQb)2e9%6L znm~dS^el?==U2Lqai@kZXyKBz@iVZTy`}bKS$!_PFpx=z%mMSD|CAwcRetB|^EeNw z^rcpgkD**Nky#!x+P_begQzH1$T)RP`YGnJxM(q+6+{Wy`K=T>Y?&wM09_ir-@Ht# z`t;e{<_Tos#Wy0dD*|_Rq;z|=N`y0q)i*r!xU-3I*+U=1rIJg}51ms;dH6FC3Qz7Q z?{Tmh6yC27;qbkqaqE^S^^>YDlL|M&*4Eah9k2dJr|%_Pzimm|b*5YoHfrXI41trL z_Owoz>B)+X^~q$*-b6nX6%&!hwMt6?EznTNM0p~%?+wO;buNOH^m_(Xn86oK zN%uc_(=ddoyrTA>NC76>G(2US#3}c;ZJE0qx_SC-AR!5e6{S^PDbF(1U-3f-&;{(z z(qUX($Ev*NyEAVG8@e0;qC|ER7<-V!35~0LXcP#bilzWXXERj7E$KEt(LGNG#m?*W zc$buw`lH&5hRU@Xqm-zbvN4}Fls0#0oqa(y8lXI*({8)e8XJhiD07oIoLq?dRh%l2 zmagmQJga0;R#hbcgd1+;TutLRR8kMH96{I$tlf}rE$c(@m5WY^uUx#?BrL$gldaX} z0BVG7PbMrN?P7V7q&v~Qd-npQ_z}b!f=|3&dwNU`2N|9ENKsKyyU;=z#Gn)qspiLP zE>9=jj5*Bvi_2$ejCb&ylBeG3EURA0Gc85lC&)j6mt4(&BqsrZEL<2HQ!kt zM1M|)HR3YJPg?i_DOvH+qoPAW8s&N@ubZXL*6m4805Fhc-g;N$aOpL)V-QtI(%w{n zcU}uxo?-D_7L?xZxr0ySd{hXBLt1)7xZrc%1-t(Irx4x@xAfD}()`BI5T#(hX`Fi> z7z25pQ%Y+1&j!C)O?2BU0Zw*yYkNLM~2Ix?O zD`S#&7!Fp-#-~7f6iw>*n3;(HbTm#92wty6>|b(^Wa;NIUb>YO@siJoQP%on!XAX( z2DAW7ksr*;QP^hw+cY41tw?wLgD0<9x6d#JAr1)3Z_(U6U;BZUUY`tSoeF0SDCf^F z#1Wd%GT}@kpnpudfRe8ui|h;epj-Nu(%sj9KslHLkGhFQRUV7sRlNJ3+g6uZaEl5g z%}BC|e20{ckJgyE%;O21dx(NiG09Ubk2;N&?&v+pH;=adj2$~sKbWS-$bX@PJNsv~ zyy|NyESIrcOH{bA;};WJgs?(C(WtnfnUx1s)XloD-}$IUL+i+!$|zzN3Z083R4_D_ z3!pUF%Rj~g4*4=P-h^yzZArgZA6l9Lm9!C3qo7p_1)`#xzGsCLEQrs1db}36X)@^p z>K?#$^sL)rPwOLwgF2Dgg4mfEt7t|MqNVe_7sx&m-lO!jT8|8QF3`{G)$1 z-J!aOqb9JXrlv^RzUS$ollADRJM=RlQ#1e`Bd#9*;xHKEz4?1GHJpWLPoEjvJB;i8 zY6$y9tk{=~+1U;HJC~G7R)bsmWGDu+r8u0{Vj^C8vZu|OL@W<5&7N#fec$r?MZ-2v zuJ=hZX9M&bhc@=R`lB%biTx?+!S! zUCor-eXz7m4%oBX9!IPmq->r#9aE03utwA@v2#s!tv3G(zY-U0fO3NznZf=Pq+;-F zJmGbl&O04?O8pI_WNuNc?z7=ycQQ2ULFx?!nYwM*9zQsbKNlJukZ93_=Pr54&>kOb zD?;l+vI$ap(%RhfIe!rLfM5vbIMx#PTxCuUIIzt%Dr;X-E)mTwD4Ux`3_K14SD{Th z+Rn0o zeh+!^K(u*fDEA&=&nh?Il7_Rae)lVaZ2EE;3`=aZIl7gdol#;#t^Q!);}dxHM+gWH zjklsdI}^yUK-dqmPWC?II@jKWpd-s>vLDGZOwb0TFDR<(>G>V5lp$t}*|+}Cn00~A z3bQ!}fs?V(`<>Jsa{wlf=E=N7*@+3C4 zx#!az&E|B-y4a!<))+7?T1+;CK^mt07IQudd^_D+EL_g|#wjEGd zSlH6ia`lIOcLu4X=cw21;J-ZhtPyeIZCnsncvr zeXipRTWFv289k9N$tbG_9M={ErU`hkF7V#ajpmjZBPO4z`Zw& zrv1T9%iVLfxhvS+M^h3v!m3-Oyw=&0y?--w+nh;FO+^}`L79)Cm7DESlweEr>F%K$ z+Cu!o8cE_^ZtVRv{=U4XRrFwsVT9uh^f3X_3G3zP)64h>BijX`%9!j5GB3ScK-Ggt z^17n2Z-CnTPf&Z?{brhFE5ND6qnV&YHG+dkgH?!JW{U#(LvYN}0D~i?_KN>$TpR^L zKnPT=KX@>3N1!~Que3z#=csDBO6Pr>jY-NztOI?f3MWq5Fr`v9MOJ;)SPI2jr&UKG z-f{8MA?9lf`~lV?@8kkm5WEHQups0`X)uQk)c99UHqkIMM?*K4;=a_E`@^h3`NoaJ zUv|Kwf_d4?A9Dn(q2_p9nO!f@wTD0C0mW;WaF$3C0$gf_oeRs>%VAtSgn%&bN>hFr z+n;%x^^Rr`fVlmmhpYS842+DCkSJ;It-pNv675`j+}Gpt3EW^_bMHL0z{*!}h~U8Y zet({P%7_?sY6iP%wW$^D+=)Om*bK=ZpCK(GkpK_nIwb55_Wk)@OL=7)YwW=u#t>pL zz}_S#W(EN1u=<>;V^?8i!>M{(zY4gS3@0HekL5auZ{n@QWU&3Pc+XJc;p2a0HIf^2 z5JiwHlOXdoAVcd?pCM;)SS;fH*a&BCz46@b2`Hxx2%HBN=>4mGc=6lc$Vmav zzO#^+9&mhsn4ZkDbw54pA6^?QJ_`m@5&sjg{+rTejvpy$JjZA&x_X!;q*%1>TVMdqt=;jtN?;!?#dI~eqzvo240S9O!X zppGq7)q0m)Pg0Q-b2FE7S6lZ-(~Xbj$!>Wcdbzk!_`KOF<>tNkO`T~?6pO0HZLV$j z#I*NeGi34E^*M2Mv$U`g2I*w&^h997(3#h)h8cj7K#vdtvmhUFri8qMXzs?}1UiM! zxe`dyJM|xbeN>o>w41h&ED2;X1HdjW&xy7Y#0VDWGd!6!`z+?_V2}>DV=6$3sp7@Jo#- zhZq)_@5N3K(3MbY%z?H*9Fx9{0xMOGPGy#mrh)u8i!2o&)oB0--xSGZ5|;L3^r~}# zd3`UZvgx}DCB#30Y1n?)3-#T0 zsaZ$tjspXCL7OOUBsZ~o;b96Mnz@em0zESwmv&F6SXi8V6nB@^v))K~=G!tIZY?~9 z6uE!o1w#~KPm2nnXcxrVZu4zIqy9&u7F^j6CEI1dNBN5!D~JDTtjx~q*{h$%bU*3f zBgoug8hQ?1;%vi}Q2H{p@T&vm!G>WJ-K=4 z41irjL|*64o#Q{oAi4ZGTJ{Cgv!KWFU8Ng043k;2vKLR5{h~q3?{Ltv0 z%doCLNVC!t)*Z(w0Vi%o^EeC)ED(#E0TnROrNSzb)U3vhaK^uLUJ&EPG?+?bj13w< zDX+i}l_k+C9gjc9Za2|8*VMRt2!;KM^`6chyM($o7nuH~^4LWKF(R}Wb#?_}8Ivi$N z0csMsg|=nAO>t!@zu~Ni;TwT>`hLxqVY{uDa0k%I{Cp&_JL>tKn_}aEFil6)G-xfa z?XFONgCHgyFUM`~yXt?i)w;XcmQ7!vC&r$0d>R{g#A!BsAymHj;ZMJ@Q{@fArQtFG zS^?AO>yOXON|Jo?5OM|0tFfuc96W=FtYl$n>2F$Q?_vz|A~C>PP=cG(^)^s2t^F?C zCKV;N$<`0N%oN@nIeehN0mewAm#NkHvjU{kPS?<87GDx1Zh-|^EPe6OBLMYh=B6L) z4-6^@ke!!w)0E3WBIHiyEr#E4X4)RCv1X8}~1nenTarfS|NY=0}FwrVh zC)r8bl0@>KH45Wtr&Ko{y*I*l-T1jLuSGcSz1EvST2)m+(hUr%@`UI-H}C%SFMWLC z=?N{jWJ%+_drcatJ87g}NMNJw2ox_k%x24w?OKgcQgYya5Lbml4t&EOEOBCm%|e2daI=fJ%8hSZrk}1`=_~fpreiTuQfgn9J4Gs}AD}@XpDsV_NPY@- zJA{ks>wl3Q31(^JY#>Aq^0M7IGib>)=3b4Vp9th$RDbzeHgkLQjxc~-Q5sy6QahR( zu`KV_nn{R>F>M01(Qt&iI`gbspIrn>@zw276a$J{bRaHhis%X`k0{eA_0-pkV#X3h z#5Ye_NR=tEfRONR$RfZVC=Ooc1;v7;=~pNPf&CCRM_S2}ps|QlT=(||l;HdLm}}#K zHnMN}^b~%6dOVqAe#MB823lJsD+bRcGCe(Z8N<}1cOux?L7%Wb6<&!FwTmYDBzamO z{G!t=InSE7xP%t1>d@5k&~<$Ogg}GKo4M7QYd?i!f_~)GjPM z-4;-zDis1TW<8i#+HkM~B=QR>Dkx}_4HsL-E_lGY@pta{&{p6D0p|6p_AfB4zUn+C zjS268dK?KeM)zb-pv-Er+UT2@5KTj!$?(P>WrdIV2E#`k#sYVvd`_=KT6hKia6F}> z0l(oVor@$)q9g(}dmN&UL!t0W3t;XA8-vtO3hFxqyR!i8b8p)B0*E20a~*WDxGGjNO}S? zq~V(&o+nb&OLy-psg#ix$SNhgK5O?Y4x~s&t8^<5x$ETaE zOGqxgE}vRafM*f)0{XYNzwi0W-!%zx94x|z@w<*)OR&(t(Q(dc&`N~H?Z1^qnBmU-rr@H;9EU-t^bFd7*3SaE%M8k! zCA;r{p!5Ux07zL)ps4YhF^6h*q{L^#9&>rjCYOi^#QZK{0Z;|D{JPNOI|iL;a-sk+ zn}8S?T|%mf!@y^3m;x1+w!WP#ZOgb=1hquj)bk>YO_j(+77=UQ96CLbjmJ*f=1&xJ zjsfo05_&^qJ^_Zw;$OUYP#z0(JRAzG%v!3uLKjGQ8=qN~*20MXFUP6<%M0Rlri7({{dlu1m~q#5ulGTnl{ zSNaFKhQxNx)!Ng5J5lC27Q5Nm7BKrJYv$|-w*aw;Ph@J>m-__zO+*hsFa3lvezr#< zoT}xvg}){t&H7Mwy^$8%M?8n?S{!MVx}PLDoY&B59sZ&7`NzSXSxFY@SIO4wM3Qo> zU9>FYwVe5Qnd5jylr{2RT8ebMLMf`*(&sf*V{jrUaDZsVL{M^SI5R_2ZS=&>XC>ge z_tyc^nZk79DVSQw$nb@8_fqqq)JgRu&4k2fvksU1^#QHn)0c&A3p#iDOOB##Ca;8J z%ncvjz59CHaKm`%*o=9NGcpY%{Z!bY*Fq1706QRReYb4s@CpK{7v3`0RmkVV@{WPo zp$nWzM?kqDT8eE6H&_jD5CYF_b%X(IT#s%8x1Zm?iGnE#V36AKTMwqjVQlMj?$_CS z>7!~E793y>cns$pGqaE139DArK`Ti`jdjmi%qij4{7c$X(Rl6Ng`vp9$3Z0Hi9BQaq(Uy-mwDkVWA59vh?Mg>Z( zu&Mkt_L0l25+dShm2xC+-neSB{UI=qzO7Z>EKJEhDStP#QuKz^A-MUbMOP)yuWH{h zuFc6WX^_E*J|s-O))46y`)i6vh$pPMg(uikX9U`Rn0zIL2~Si<+m9cOi1PzAAy3Q9 z7mP%tk0s1ZE{aI#dso-@!-Nx%XxE~5%zIBafFil}1FDQ^au_#pgWW)(JXwp{udwo+ zd!3)n6%pPI>QYi_3-1K4@FAosODNRnx<7{JUja!o*=t}{%G-Ib)J{*>afsS|vFAE) zXO!p9KV4r(VSEJce#QbYZNUcEt-l)VZw-?udfCmbJh$q1ObLL^gw4jOlyasgCH(CD z{G?4m4K(h*c^IM*DEIa!8e}l~c6Lik%P3yeyET3iXULfErqIqrrcJ=7Hi5#s;=ZML zhWSL&7M)`sjymCJXrLUd2*1*aMQ!kG^1E=-6efT($ynuvlfB*cxlVtSrNrsViC6xs(BnY95HeT+ zFv8JQdaN|SNhEFdfGH_@nEVlu;SX{Z?+4EKtzkk>?!9yHULqvgOOEGZmaIbzhN>#q zk-10c#>Mg;G58y7+OFqPm#z zlThlQG(D`|20UznnRLc%{$|uWQiXk_qPv))rvBN}g2Pl0L&*|~lT zjSxMCHLWkX?|h?*l_g-$yaWg^;QGa(@zu{W47*qS5d15xCCNyaoMhS5 z+{|Q{ZGR(%`OTb-Kj27Za9EO>#H@Ho{qA@l3-lWGyzzB{U;|Tcd<07ZA_wfNUN=d0 zF{w4Q=Hgj5OtXS20fDC&?R*0XxcN=$!)Py*cNyDRi^{14} zRA{PJdM%(vGC)Yz{rsv9w?C2FO4pKhR^aa`g8xoq6Y-6dISLRSj?)3kOk21xS-m@U zWh<^L`SMjPlFK*x7t68g5c>AAF({1YFJ2DUzD%s2%J>g){TLW z>U3?ywpfTIR)fyocW0S<=aLHygU6c7Ko^M2`WaVwQGz5cmU~;9oOJ1{oV3v`X1Rb7 z=fe-_%coVqpkLS11JmKI8&rLTg3R8-2+U;p?`Hg~yG;4OEIx42h0^$lQOJtmWWOWO zFviCMoRq(RFkHBBVFG%G44?Bs#qM)Zv^B#-u~Xo9dx1Ja36xI7YS+v6FJ9n7m1ZCk z22va$7eZ+PA!bNA2Nlm2>m3VRLHL?Hdj*A%PY+cCNP!XsKLvUDX3UZWH4WcPP-tq( zr3r20JH#Rr5<-znPZl=BJZ&Z<%zS#fS}a2XOsv}D@{&K4s2=;7(5JmG@Nsx<9R-f4 z^H&|MC(h3SO|d*)JHCapy|y%z$6QYv)8tG2LWvMZ+p0|Qhv zk9u+pI)pp2UpoeP_w8W+IChGfF4ssDZbbTTFvd9pypAb7& zZJ-})bdDtOn=ryju7@h+=$(8yR31bHL3lI+_$)@}W{KEQ;F7)%a(($i##@rWsHmu7 z-U|W!CZ798Z^m;B1VAWE{4HQy{#k48rUC&XIhi2Nh}xtk@Z10)aH%=^^{ThalFJI~JqheJ!!+;^?1K1N~gH;|)NjcDLZUD;;U^ zH3Vd2H^78Ix>N{M0?e}xea?lXHG7DAt+wDDG#m7NU@`;UPHKD@(C;OyhYvZx`XJMr zZ!-Lu+4=Ak8V#<#JOW-vx3G4S?$&h*cl0a3^j1l5K1nSD_eqv~hMk z3CxmcVx;OvAW|tj2S!ChLnGfrCR;x*5*zo-{gb18sE1nlA7TmEI|2V7IugQHz?|{i zw$BAgNo3si+bgqxCt%h~gF)2{*Eet!dfiyG!5n(0ZE6He>|KwnYQZsi7kzmjxNTxk zQUy|K?i0>4G7km3MAy#r%*5$1XV%v5{?2NC{`FIYVS+MQLX!(cBf_K9my!Mz0>MDo!@+R%OE*@FuCSt66Z}HLt!pkIMqJKjLQ5^~KSs z&EGhw`6GnN=RpT_e-Ef2g&r%0ZI(8(K*@jMO}YW?Wi>e6po>BLe29ZDNy7CEf*BUN zGr@{M6B-`Q2^$0OQxO0uTj=_Jk}^Rs%uG~4oA!_4a%)~2o@hbLemQaUq5=u~BfFafqu2Y+($++0Sn!B0YFqVGYX)&w z1u1({AN%Xw+0foxA(^~^^=|G2#46||iyqY1g2Wq{C#Dtz=4K>*fh4&arUeCj4@5xC zp9gse(~G!UA&Zi}_+7R|-}g7-_3h%u?4>QCeX z)2Z+3*R$H%+7~@e=eDt>;E_YoEHXo=u0VL|3gTDtntm#V%#pm0{R!mKRf|S~Zi-wG zjKOplJNqbdvm9}(Bbjs68xp!axL+Uno0ve6K^mq9T|$oUK$&&I8`@Xz&DI;m$80NB z(fv-kW#j=ggm!JfF%F+p?e!biU)_1#Oju%{A9NnAu&8*(oCMFf6+hHzKo>)BrDFVI z5@+6PL$`SrC4x-?uGJ>SZ^=LT;x}kL=;wUTP}ZPnYsT}vsK`2;NxES&26o)oj14S% z$P=eP{Eh|KJOvC_5${evY`S!~#-B?vGBO?8>&jME7Z^ny=DQ{LidJff2nh?Bw^O;i zjmE+A0SxanplpP(1pFKZ4xTpRtdpXyvV~__RywaGe8JRcr8e% zXs|{Z@;k!~B5kL~+SrOItDYW0h9TAuzhJ&ld59pyUft$g4Yhd9wLY`K^hfQ+Hzwr4 zDDCg%){+Ck!6*%Kl-KIlx%G~~lXEb7oN)-hVnrAQFd>>V0lJO`1F`qY9Yd;}KvP6j zf#>*GKyE`js;jEjfu{|IgCvo0g89C@w-3y8>m)9WAZ~BS6W|hh9kU6oMs*C6*+}z8 z2wCv-1WoRMPF5d;je8Z+#n#Gj|N33%3+q4$4gtjmoQvP>dtC#`oe_bOibgpre)!RG zp+m)W95NcJNH>r3f~7O-Bm(LAVd#9ONLgbow$Z@;viZ({a}}Fril!VBuEhi$_7`op zYgMwa*>>w1DB|{Los4tNFoUn{ZnaP8?bL|5Q=hU?4<=~gbSKy?pyLb&?3UL#+zmY? z(xA(JOs#RKEI{raWKHUOLvP=2_p*}D&CB+6WB>}YI65u%9NW;=+dm9k)qVKvCVQ|v zTj(uSHdPv`L~3&y11;Vh`@t9PU8TGScj!zgr4~6N(#&XluYYC>VauYxO;wx^N$6C- z35|;rJw7=>tu1T(9&0U0AnZ8Yp4wi&;M$P{A@f|~y>I&*m;&HwO}Iphh;bjW2xQ!P zw^(S}x!`62!o)z8_cicPM1yOP9ROt-S6X^H9&E{@pKLA#&+G5k-MK9jmXMGTbhb-v zU+$8|>;H$i_l~Ri{lmvY3rSH%T7(7)6-h%&$!JkYOB5Qk_o-A?R93PYB$d=riFQIt zNvIs{CDCbU&r{#)_U1i4-|t_)e||kYc#m|>xnKAFyr0kOd0p4@gQb5Kf#XS|LPw!L zSknxI>Wjx>C`*8~X@WbA9PVD#4_$rzK;Yi@o;>+rXKA-_8S#VgUh~X0q{o7`^gQ9h z)YQ}%r&*mTnM7lmU_jfpZQHnv10nzwKzkglbGqHPOGrrQ8XKSg^hv*VLu)|upsyIq z3cmK71~^t3KeJyxZ{9qG-h6P=+AoMk6Nv8vg81=Flk1U@afyjqn_P0Y_Z9(oS{cm6 zD#y3{V#0v;K1a)^7b+!69VTWUkUUt{0Q(&?p-9cS`+wsZSdR&w!#9&1p0EHbvT zj78CO*8Gn?w8%Otw_Qie@vqhrfx?~(&Ue@xVb&*!8Ojq5w0&5bJyai`n~bI2YnJ{n z>hOKbr{gkN2>1O|f5v>=0`nxeHXi>VOxo+7LmxFs*Ed|gw#S`Z16XK%jyx@OO--WP z$QmeHHz!q-NYHXUPEk`1fLJR@}VQ!+N}S-Uve zr*~UnR})WNp`@$40C7~ofocKU_ouPyYL=!)j~>CyLM28er;c38*S;8c<32%wFD+x;)|_=CAr*$)TAU1)i7d**qyI+w!i zrM*QQ5r_7xjrDnpsYu>zHQd?bJiS!%bhn)XTWjWQzWY{rafTb!hD;s}6ut=l&O5}^ zQg=ebL|MeaWxk%I?y53Y-Bq(xxX8yOYQmc`C-gr^Z`EROFJ2r3oU$EPj4A{sS{b_^ zL`lGqM~!3!gdnA?0MMqVucjVRM9T689|AjDMoz>HSpa@ZpuH0|ob6 z8UEgJs_Nbnov!k5N@(3k^JLx}Ji`}pC{~qc`i^P!x}U8}-f`v4;Sb#NK{b(AOGV%` zCv{@o^t%mDR+h0TE6nE4bau!xZ+CB*dG?0aY|E3!KdP@$m9w`GZ~8HbP-#lsfxF^WdBB zL0D_@QcAvZN@Fc^e9=pl10ky0J-5xRt1)-$TAk=iD^3D6e|CIcPv5D_ap0_w7b4OJ zTyA`%h<|%cl+LjcN%(9mAvq|7EqZg$!vK1{E=_}r`4>HU$%dCih==A_Y+_<*XJ#%= zj}y%3vI9dw@+B=6x*O-YIe5^N?23@&#Rx6;My%VPkWMu2C(q34l?MSX^liF@; zdW9w8`g+#DlFdBgaw{48)>O~a$_f;jiK@BhJd@wT`{MFCqY2d?mD@a-rFfoQjJQkh z+&9W}_B${0mD$4gRRdm+Hw(!(-e0*YV03bM>yv}`Xms-H7i z_o2HV$UMdztpBXxYK&!SoNGSBqoEBAraViRwxfgi#3bc>SlCXGAg)A3h2m%j$8X@v zU<4&4h=mYXg)A*XVBF)!97`^;$VYMFv7ZkQ*97>p31&y6*s&jWNTjdIuf&y4Sh$Gh zu{k+>Yp>14RlL&>bcm{|{3f;38F7aNqKbQdc4nR)8Go1)#gDi-b2+f1z}cJoCDS<} zi>oA-w7z6v5BxcK-CWXuy{9~@F$`e+iyyA5aCsm@8@~PYDzxWT5wkbghfg?M)H>mB zu`6W7{elHfW}Z@bOeZ*&wFqC?aV?BTD`V?}9<{w|tNN4|8oYe7n^%R)GSfuQ(D2*s z;v!MI)r%%JOdfB~)O_&NpW-l!cD?Sx=xn?r)$v!yb(_N0!c8?V<*uK7S89)4!8&czHd z)v7I9K+t>IGQjh%*XDH8k`~5Uj@3`%TD&;!=Dh;Ru6ZHn@3R9U9T;%N<)D^g_{t`u z2(R)N>;t_~dWPm>!*$xbcOTxk%yQ$h7DqWt==IZ#!HuSR?(y>4hBPc34?HI4YY*$rW&QDEJXlb&tvM7^?f$0AIJRlXnvysMiP3%(fx2Q*Odk=Z% zuZz8M_bx|-HcN8Nyo_3o6hrX3ZhGG_Tgf83tU>tq>wn@uf4)bHStXHX&C~0p1cj>E zxb*rZ^YQt>Y&e6Qj%I(Z4)5Z)44=`)of8QkkH=R1z^}X&=5Z=8DZ@(>sr92r60b{2 za+~UHGiNhBHQ6wS>(2+&5=i{QJaZ?1We4qYpa70i(8uHI_V$nM60SUv&C_Oy+IJ3o zGrVt{xmUKC-ptw(>(-fFfThOopU`&XE+uJe!1XT%+UvU<jI8mDXR-78wKixN{)IpxzN{=6aQB*$HBfWX)u zB`1UWg~h-Q5Dr;YR$h(=>HDpby`Duk=>tlBvLw%n+~lLkRy;0~8XRx>=+EX09$RK% z@kmtCVg4ZlgE?^@znk2)N;4)RQL@`OXVu!edKJ6ho@h3N}>Yqep=zDQ8Vm zb|OC@0WG=4q|@;EpQSF1FI%&s#Zf*gF)8V^Ve%Q16n7T6kdP4UQPa1|jEa12?Vl=G zD$9*oHkWvoEO}{@k-aF)R)+6e+n@cQ>g%|RRqnwpK5Q}U+0>Su2M+MAUvklIWT)^2 z4YjC_dxpu}yu2OSawZ24&Q;+ut*p`Q>Vgfk^*9FXN ziRA&d3>e$o`n{n$j=5%u^2^@ZBPJmcSZsA#JKlK>f4*buY!|0r4~$Ed?=Hx6khiC; z)VlWV>U>AJsD1nQ@3%xZ@C%YN?06hI0xcS^zY+WV46g>aVKOh`Fn-^1XG2TQuKG7` zii?X*K1V{zj{k^XQDGz?)Oy3NnFrXY6Jx)1vi5k0h&4th9 zc|>MQ=<0AxNzsQQAn1|EpAGcMH2Z-K`7}2xY#t*?g*y*6t(@z3E<>vMf_(FETvE$I z-^4~fLLE1l(x2~iE!az4! z&(!o1aIBZMnM6Vl38U7YJsjShJQs@tiM=QCLospjSxf+yV^Qq@E^+Mnyomji{WU^7 zz+EFIC3S9Jf*Nr84-faQz^PJ=`}l-y@t+Ts_4?{1?ePr=b1VqT_+(gEVZ4xczS8%G z6}X6y#z6$PkuQ{q>Dt@i#KgqdAg)i(K!8ufJ+$G_vtaFbRaaM6E$CZ+KiSLQO4lrH z!CpXUK3!xPQ1v5tXWZ$13G>A*g<1AtDIjr2pm3EpGcJ?m3q?qHQs1MSwEu%`CjObj z@%O%GUwP8h*^a;3HgnyFl_9H`RoK094~TC{yuMv+;$Wh6ZsfX}0~6c+>?YOek~Ozp z-&2~+(#n2aW@qi6<ZWia??^<2qU$4Bn?QlTQ-|vHa z;hevZ3Ht?4qz`}p^w+PL*#3SCs{~p9*?j;1y_9B$quiHyf8HYdh2t{3yu9`-|9nyz z)BAt_%m3F!kipi!FP7sc%sv|+(Z9baN5}K>6s|Z4{{0&2nyMpx5!yp><=;H_&svA>#L45)pw;pI>pS(6s?S#;m~3SG*J|^nd4gX0T}7WICMkr@UR<%Y`4S9eo-O=qiEO2fLK`-R03WAy&?*RVsr{- zA$6*gc$}5B3|=NgUw(Ic(r-wUKP3D|7#ED^SC&UdAAu`blC}iF#XItKJTPs1y4ks zLc}PAkqoc#s99nJ41Kov_a}0p?I^fJ^LTPEt?79Zhx-@tr0U&Lr9~ri!@GvPk*F5C zfBxZWFZ$Ohs(-(Mx6W z^M`I@FXUmJY0x;MZOzHaDofWqmD{rg;Ct!XQbA=u1?6MEpYNSXNr_LcoTD2KQWm_3 zFc;#qFyahzEVMY{=}&9Z>>B@ARpm30vuOVAm}GnE2MT}_0uVuk5{Fgv&KJb}Nksc4 znU+5I)?Z&+b*Lw_rNw>ow;prUO{)HuwLVmO+skD1mWv@UI99Ce{d>i$ZIpuIlHNVg z_3oR9-uCITjx!}wD(35_D*Oc3X4<|>uSez?d~MoLo9N?st4B@eudn93{6{0#-t4e( ztUkB!>#k#~CvwgY4aOxTjE-ol?0xpnIi`#$xH!thQtiCvkspeqRUaPx=SxYe`MQn1 z={)HbQ*VokN>?aS1_vrAHhh1dY>L6p+jVm{&e;`wP^chvIj5U||MZj>@}2MjbvTipE;}`)${%PtB{}|?iq}yE1B^=7n5@DEiTY6_b?QX>Gj*)ffOGK!Z^5UXG3q1HVQsxyD<- zg2s@H%n&j5|60mTqYyWP$8Eqqck4>!E%U{J)kxn???QJr2p7NdZ^0$(z1`tRejUMK*8VJoPC2?x@GD zkiw1whK5!^RgtI1*xy1fMMf(CAyRx;w7Vom&Pg?`0+iizkjZ74TbP@NA=^8G+|cb= zEjp~oP(M6BWzpbTwO30=Cz3Lwn_pvFJkU{2T!p8QzC%6j#wo_4vcuL^0*2@zc#lig zUK4K_waE9Dg+5Ps(j4y;?`LzMQZqCzt&nI5TBAwBODwWWoX_s)x)T|B4uqJu=ABTI za)IL#Z$#0Fl0Snj^SPd}dN@?KH(_D~MPSi=jf+oU5Ed?cpC8Db22xPyt}X#c!?=#( zBel1vl~uZx%{CdWM0E!RujAOy!`SLEZs>7sf&|(TAShu-BHTnZGu%)t6AfGUu?lpo zzjIe}jQD~tKvbRO(XZf~egP1k%Cmy`OV+=Defn3oyV~(D!3V;9$E)v8@IK%QXF>NR z@RZwh;{<4$a3To>>zllYU`#@5H+6v*0}Rz)Uw6`J)zR79rF%jqKIk@M50`S5K1eVI zln8^RF|_8LfGO3|%JzypH%TG=h-aso!^nE#H9d?grEZR7*4lfvo>}??!q-}<44|91 z3Y}QCUhj&l#%zxRsWfE59LUGjPn<}yC=yGmAmVPEsg^oBYB3s-Jaq0$7`Cv8=>F%; zpHFYF$r`yD02$o<*jOe|CrTD`D^XckjWDr~K zRK!(GDK5<3;sci<(^;o=Cw2joGWTp{c?Yr#PWR)%6V_%H1MnX*BR*V+jefK^=pVmV zCtb5|>B7fcFfj#Ls<4kF3U?fMl}I1J__bTUgD;N~a!xN5IWYbgI>g$>y$LuzYZ51u z3S7yX2YJr4eD!QaD#}2jo%sdSXVmhPv&ToH&?N(B)=~2UfqS#K38AFSsJ%qc>6r;y zp)R6a=OpB9z(;pI%L78{&5<6Yhwp$(NLlo5+@NT11x+XzB-g0a90M`h^ZUJXPi!jq zZdQDYRkj0YMNst*Y6}lTyT9@|heT7JqJ!@H@oADqN8CAWn`yIWz| za0z&KaEjmQ8`7Yt!yIUrldjjR1zTI*tT=@tZf=e_@JDhG2$PXj!85`x1Kq_II37e) zjJHuC!CV5DnGzBq2i&d$gF#QE1bnd&WTum5g&^a%d zUkCaVgws%VqaL!c*aR>@gfZtWJVVAGgEP7ULn%y>Fc)*G8VATLBn@ly(Z~zgA#tZ&L90|07zF;Izi^2 zy8S~086A6;5)nL+y#e@*jrYrCyUv#{RTT!`Ntc$F&(9IkqWJ@ES>VU`o%3u9ikthc zWvnZi`UJY1+S56xfq_cmRDR5Hvom^GoYOVRa8a$^^ zEbZih7%+26ITL~Vn4S*V@t%tKfz7=CaXaon@f9{}a+0_G1}Ba}#r?Lg9~-bJe^oiUxW8EBPRjc_ZA)kY0R7Gzxzt(i$_<3@2R1 z_Yn30g(*>sz{c;#bNIZi$`-22bV{>Tny2p;mhDGWQ}c1-@4U3EHKXwCV4u;xeVpe0 z3^$-4W9y~CNkKRy7w`u(vd}ORfA4q&s4yY*lRL@L|J1y{H)ztMZ~C{2R*o{~qHU4Y z7P5|*UxPB^HFXj>MrlPwF|HWhg9nr3ULA&yNERZ_3VYTPNd1Grl9cdE6M#;Fv=s}F zog8~)^u*yAq8dOmv1hfQo08InwL#gOGJJr4yZas|K;DakV2EG^PdM{(%?C^`$w7$m zo0yB}nQje;kPMD`11=C?{=N()6d*hBw1Ir*m%YXQ20dU-*|w{9?$BL62NYWsfo2KU zlHh>4y(a=1fw@52S`!!5HR<;#`4reevq4Q*V3)eY9|VjPg2Pcb`B3GAc6Zx@Q^E&s zU;kJm*gV9L6E={sv9T}gbOll?t8hE6lWb)QK+LoH^kCPrE%s;^1eIhye)LEcYfVUY z_|b0#3t^i^6f0xp7Ss1V1%SGdT}ivj>On3gIO4Io`Ej08+mxV-#RQC5BkZqEt`D_JZh)O}zSuw)ec0Stvp-e&cM*EbQD%UH zbF>-rpNP5A3sgrNLC6D7jTMEaZDw6O%pG5XmU@wpX+ic6=}3j|hltk^%KH|=?xAqL zz^s#CO+hbazRNrZ+v4mNIawA!8ayAnuzgz&Ge&PGOT&NfGq^*pZ78Q)*sIp4g9zpvMR}!oOhYXR@e|$=M~~%bW#|(}3F6t(=RdQZ2qbG} z&>;_pR(dYhV=dt|@I5^{IOvL9X`Epb+V<`ia-?f_2>Oq`oy9M&qH9!l^dJ{U-y5|({=3kNL1umN8iEhO5( zLY(#1?9OPHl+MV>KuEiqk08LfnJX2ZWPywke>+(XgD}Llxg`==wH|@%}p#9 zi>()s!*wKFku}pq;KTU5zyLCS1$cM58+v8NaEFPa$*x;h&b$8+WeU4(s&{GO)WCd9 zu!>^DVR)a&sD@dGL`O4lUW^8u=gq1q*DGp4iMtoWKZBzgGVAHO)U4Sa4NjUbwmA?E z6$*wY@AKHEyHFXBc1^7_IU2}d-^)H3PEY`?0Z~@sed62l^1)k!Yc_1y>m+&)NiuW9 zZjG{CdMi$38>vkRj8D+1ypzPfnau1eoXj2ak^^@xyvL;x0ip;R8~WW%pR4~JW7;@4 zRk$`{U?FDyRZ!PYWyW}dxVA5?8?!6C%ZrFdCmD1V64VU%2ds=aC@K%1@<^({apn7I zVvlzQy0!QXe_$zv$F|rvWa+uL+^5kuL0cp5Vl9@0lomlM`6jaq(kC%7v7a!?+_Z@s zRM#7dl{;)kN*zXtOt4n;E2fo=|K~qR=)pl&} z12g~M$m#o*8+Uz22miCrjSM`&+M~~2^yRMIm7yM()QQMRS{JqH@p)UdOTw2+v&u*9 zb2ki}JSj6>eFO}$bQ%y_PNYo>zbh>q={rx|kTx@vpv=LdK&Ldsz% z39Ao=gG+(J#%Gu?i{c=kG4F_m%7e%EdDB_g8sY$o!?jr&gGSH=%T{{T+z%^ErZ$Ju71xSbHAhIo)^{(y}8|zfKUCXc}C>-Y5UdTW+0w3 z>!fz{9KGb+`5YNnu}T_sVysG8T`#!m$B?&kgYl@rlWF9fA-fmB;Qr<3Le=a-fQU)U zy2<3sl0COA=`K)uZXvoFvi%*vxV@Imc!ttExPtB*_%Z) zF_GFHVG{tf;_`Ms9O6{p)xAfpt+UH=yVJ|_%9Nbin8B{}eeVjmC$@VWh-PWuEh)DJ zr7I@==G9Dg9f1=?;^<^iOglba*Ps%+CIh6<#G9gDK@m_24-X3)x!o$PxBYnH(6n~B zLBsR2DSabKl!>R^{ei++HgdsnGsU17Kw=M|6kXwX`iy*(8C#(VBlsU*JM)G0101*KL z?CkBH;TJCSvpX{TFdClMJG`3|-!Ijnb>$UhuJMs33+>TaKPUC$k(}I9x^lH(;KpKOFO0@F- zd8Ea54Q%UAb0{G;@FOEpUn12eczsbThZW0)PYW?NBZevg+B%#x8BvLzAA_9pZp5Mh2i@>*xFawX+l2 ztKQ2ggb{Xh@D%F7Z1>^|LzCkC=1Jj5_QM72`39#4c!Lk-d%JyMP1mM9$jQlhPbX$T zh%4UAbK;Nq!`hZ=ZPHspwJ0=qzXku*eA9Z1t?EAOHq7}*A71cTNMv~8cT1saD=&3m z^sSMw&dZmrYLvo>RR1ixXk=;17J|s(T}n(^7bGd~TKLd6Uf}4EHzj{aIqsv_p;Ou3 zr2-b)H?Ab7x3-rI zUdgMqzu}NjM|r%dPbz+L$As`gn(~@%cb}+E+&~+l9j+a0%5sXU9E@<6cvJy6BJlm` zMSFY>t-ry_$UCu*7W1douuX2tw{S*zW{)S+MMi1mirHIk?Gen?*P?nBCkPA)kqQL%yT+|IZwjoB|i&$8F!OPxNJX54jmlfID`?u_)@P4PLSbMxGee>_v9;7i`{M&B&k~%1B_$S@F8!Z(GKy(S|3wvwg}YRoU0)5^G|2z1fCXf6|YVlM%$9DQzV&sqI`=}Iszp>isCvevN?ZKm#Y zPA0U_26Fj>iUQEF@>=i#NFm|eg29Dri8PMPhvD>ASXqSBc-YuxRck@bWBut+YQwkaK_?Kf4Bg6_&k-lBUi(9xA~4eY3oBuJDbnZ+Qz1A+Ekl;0zu4k*e%l} z6nSLzxRQPtrw3SeX%Ix>Ljo@^Te~~r#^y6F!u9-cZ8@M2i5M+&VNzn-wu5P5nb+QJ zVS%trBsb3<4CPeeagvMK$nF~TC3#Z3f99!X^ASqaK2Z{aj`wuaCuq_68iYaw3Ni~D5ocN2fHGSVMiQwgO5 z3vYb;L_;GlFEC`0^KJ@X5L&#&&1WW+*xA5|%|gO-^w_2pi$aKJR*8ygZs9W8KDtxw z6C|6(&2KBRZ0FG|#G5&P@s#H9XR;pBM%9~UUZ6WZ?=Gt7lv)dR3yUrgAn@`Jmwit& zUJq3EWJY-jktD)ORK>~C1NhpLyh=cjyptB_=e&@XBN7~-IbMt@*gS(5Mm(4Dn|7bv zAqL1|2WE4$ZH_=$_O?k`JA1998=8Qa#BqP@77pI$?`~u|d)sh564h&oM;zeWDp?;B zzvHgyWu4?2E2#KGZw%fe7+tx_*Be#LLEyrH#Nq_?m=7a4Urm3tg+HMeU0%zJK1LL= ztTo@x5nP7)iZ{U|xyF`5Kz`_Ip)LT2*T9&lH^aYz3g?L?(j7A;&iI1kI5hAHesZ@D z4OLzb-5)^lbhpbudQeW6LpK{JI1g$wbE*)M%;r9kt#=Z@od5CoQwy{0 zSf--eEpZR6WOGeUPF9mp<6yse9Mw?_n)NvIH!9?wyKn!#d(0mRz945H{33O`j^v;( zeT4gHk9$t~P`pv^iLrPs;I~fY8=i|PwKiZd4H?Q~BWpdr(0?qbO;Vn86@hB2$~U8L z(2f?(0ghC10jRLBU7szjJoPh(=CcMUz;zExjI~L3xbG^oVEN|YSz+?5?b@T&Ktopy zyi0WaTG}7s>4Nr0dVLBj8NK_HfKpTAlI(%qC&geaMT~Wi&I!@poy)fo-_)LJ6Q9G;Hfx+sVr&VjL3N}Q;y@OHM`ajVt8dLTZ28?m8;(kzfK z;QcM>l8D8zTR?fj)AIQcSPWM4E)6MK{RkKJ`BW#I4gezP;XHxa}T*cMElnBM|`BNxj82&p*Te?SR+pH z3)Z-ztzEvCW*))J=={zLPICNynS*E`Ti4hAaBYJd?>yVi+t~J&h!^SQ+mXqn=8u@f zj3y0jTej=>2GBzcDl}b#aml}~0TN6#h&q|f+XhejXyIk?aae%0-#QjeoW&p9tOQq^ zSV_3&7g7hl`U(%9xHO=)O$q$;nW;`?UN#0oCvgE*WL0Y zh;s!QAB?8;`j~Cwo>?bff51ed z>I)-3t(;m83ZCJnnZTzC#EhpHBn|rd%9GFAGb)u{?Uu?9E-Nd0(rAGtFj%4+_aey^pOk;$klJ&`659{&bV_DRAog zq&ti8WJzz;n`4R+0U4e=K`@Jpi__hfW4sGGONO1}nsxtVtsGRR8C8SH`BiuZX}~sW z#fzCNGisk$70*NO2vnC@rSK{u-9&_PDh=U`L@`3f9vB=%LBJEkfof}NnCh=#VsbnA zzVq;4M@IqE*{X9Ueu*Un^~YSMVt~EE+qEp7pZw+I0Fak6P?*^?#__p@SjYUp0QB7! z!v!t5``OL=Vpb?+2}1)8f}!Xld8Qm&s=*B|P6@zV(xkn9Q@wlv?RVbAW9rR5aqwZ$R zR@5NHxKyl5g5_b;|Yfw>g9*G42aKAirxYIWN+>XWxQpK^TjI>q% zDodZzs;39qd+{cTotdHG+U-xS&x6Vdb&Di&YBm)vC@a8u$1h#<$WcMiCM@-MD1OTi zB<&xoikS|E&3;z&Y>673_cV>zjx)Jajx{>B(@{6gs`VAqR|1j1+f(7zjdj%2iQrFu zt@0K?z)6pdv?2(hu-4BQsqi277ZA3%z#)TS0PbnRI3ood)OD2;I6$q40`3)IbK?sk z`xcRvYTM3WFFp8enSXd%%t>vG4UyKMel*0F}T}(*o*WNNi z408K6ANCQMG^d2Di^~yQk@k>vsq8uavk4svxR@_%8!Lof+PCZXPZ*%lLcF5d@Q@;+ ztiQX;Ujau9A%X-fRU|+Vea^vKL5_}F{~koB$Na%vFA@n?XuI+uH`~nL`>(Hwvm>{2 zR;@&5oVcNbz|khXJaKYqHr@`p+{{xQO$bz^H3(zzPHlGDWu0EW`%{jek?)bN9kC>W zeI#gMKxhaH5*`OHj&5c-pe%m#lW|W+FKGi4;}FnUcdDqIw(PSX@$%{b>Q9pjU9v_=%ev9ZP8?y0N)=uZdxMpDdWp zS?HFT>h!7Q7pR@(D1s+APcsc}g8L_~39}Ou3TU5Tl_YhC-`KVtD~KmKkr!^a7;gOt zgK@~=W;M@Tas3-vT~W90TZ`i;z+2C*qy$GOD!uj=FIbAIll(gwSe97RWfLPUY&v`q z69J$iPV_V*?P*+6ujnr|^*K2`VldSUHDj&pa87E`r9z!*Hh7qzt6a?6z;5KfT;}*? zD@9lw#M093wAy0*zR9FuEAV=@al6Qj;8P7;~;&$0G! zk+o|dzF&QH+8aF^@D?M@z28y=JRACga(cmbJdeiGLNLGjZ9oPkwYJyjxKOq$0ZW!9LUfp*;-Ten$RP&A~yuyX8i~P+JDF(Xv zH!bFJGKe#O7G8$T!@GyNE>$Y0Lh;xRIeO%+TNjAEXvo~dF3!$RVCWZqWR=6Wi@D(# z14bSm%>IN?hdh{$L_-HqV;k;I6>RQTBdZS%K+&_mLEt4t^txr)Qs!Bx>#uFd1ycSU z;q#i$<|gA&J7M#9{lg^0ZgIF>GH`kaD&Z`~NPYj;YdR2O)yW1)+>H?eo=g&hpU(>! z3xJ!hY-B@kA3ywcGPOV=SJp$UXF0?<}+1iOH)q_AJI*j=$ zWcyv(8CS{A{jR9Behv{!J0b2p1|B$KuA7k^y6=l&L<% z3;1wFzph0L6%yoMQhro4?HJDW3QV4)HB25k>`L&rbf zXCYEbFb(41w1Fvuq4qx2Y}yW7VS`3Feyv&V757dB4^9vpR~#6^aYVNQ$}F=BJ7IN1 z9ymD-kO-MO#JQ%n9@osCv;_N4&b|94T?vrrUouy~7i&nI#GTiYUM}g<$TsXHB{m%I z*c>$6n9wlO+k?+ce!i2_CZb$TGlmd}D6^n7gW*{$?y&F3Q;exDtIhu^Fwef^ZDB9D zmQiOn5aCY8KUsTwZSc8Q%TQI?n%*Sm=vrZwvZIY;=W_klz2L%jn?vN2GN5&DsAElsL2gqlnQu z^1phQfB)bIX{{Wb|IyS`*s-1yX6GuN+50{A4-WeK&v53xO+nDjefWc)|Nc|+u9Ubq z_wpb2{`>vmN2yj1&i%ow|N2v@P0_{ifByderA|@&zrTm@?Efaw|Md?pj{lcr=Kt~c zwmvf2rTpM8HN{_?7wypf2hzCzv)Vgzuwws~&Fudl6%qQv|6Qg3{f4sT{PxWMS;zm; z)#G~s(qx$gmCvOrWq!u zL~6Y!-v+1*)He=mYimd|aXg7!9|MKR+$GXzbGu~f1#T;u^m`qWJdpo!U>6{(B7>=8 zI?i;hTemLFcig$VA$u`ezC@4MGC8PKM+qj!Imo;FH+|7-LRllU_I5eWNBTOu#%OsY0g5L|N za**V6FgvkKDkv(z#9~XX3BiTY2AWF{St`a>hXkPczN0xCD{_~9x~stZ*2kW52c3_~C| zOW^+3By>d~A*n;=!qZ4MUXo1%maq3I*fz-UksSV)%)cvSj9fh+Y(uQahCwIo2cp5s zL@C4Id#Wu>yr?chporIq!%i?)iLiWs3RM~b2hDUo&myvS061zOr699~i2%epP&1QD z4fv8L^TCGlde~3dV2~kL5;VG>TJMou`L1i>T5ng>D9Obev zR0Ct6nL+4HLJ4SzOHt-$(e|*zWCE~Rz3ia`%stM6wGOd?A+9h;qkxN&BZvo&9RSgS zA_6oK0UnNe3xQM+)J{H6GoZ)8N(K~84^#aj2aDK*gh5OP8T)#atga8ALDv4;@k~r) zFJYQ>$y4z)wo-$OG`KB%`&qz6<@!k(M3`YaFoV8$8$OE1a56$cI~kLLNtg-~H4rO) zbLxZFcRiVKicn|4a779#Sl(hgS_SB`bmZUXPgAxx=n)E0+O^LhVsImM6Ab!-GM-pf zfyO(A+Rjv32-5mcq|x5YYhZ5ypY~So*@_7IWX8&ogQ(hh$an}CSotE7;q(K#SV7JU zn3!z5+2UwD!4s!*-bvEN108e+x|_J^O6by?Hr0OE)#%RVnnCV|9Ua{5@d%0 zMqIrjcwR9)oGPLBw)}%7`J4wuAcw3w_n}*Fn^ep%z=b3fWFD)EAaB4-xDeo203s&DE4xLKmkb2 z;91PtHET94+WV)`siPzG#OT7WHeR^(YC??$*&{#t!)}%-To5~92W$7DLn*@Cn}HK% zI>!(=2^mF6fBSfU)84I(!SD}dV!FFe6i=k{Ky+cP0Ync5&>hYprcD6$&jK^|WZ7zZ z(2!*oCWK{{tUr%9iCp6C4XMaiuPBb9?6YO~7Qk{Y*neiS8QBFZ69I`33eHyj;E>Bk?PNKBUf$L z-r7{By!p%1U9XudmhF0&sU<4V{-DaxWpI(+{0nv7p&lw4mtwg!4t_Dy<+}0Q|K{lM z-NuaEV+V)6o{Q<*^Nk+asF>T?z3tYvLdts=zXN`Su$hy^&f(?e#-j-VLiWI76!YZK z)Gh%YBM7o&IC8DEoIrAJPd0=#ea=NEbD&dbySx3-gN98vF!HP`E!VsWqCtZu|8pG6 z7y0)u_16=e_t~B;bucR%Mg1gY#stH@D~`+<#7yiTPrsHLW0ADK?XJuFB(H8|Al0(Z zeWE*MBgqyT;7V=ksL73S&sV6A&HQX)my-E8)OAgHIvI^vM&UVlqZo#~hg_C@96ov! zWxUgiS!~yZ4&lc)3b3Z9)D;6h{@q7}=xzxmh+t)rGV1Dpvmg2ntl&;Vd5f_O zC%g^`xV+n>*!!R~ef@j6_Dcg%(qs(oZPBWln3*^sh8X0Mi_z@5gvP(D>!)Whm4(mV zK`${k@Gwg-+RenT7e?*M!PA9SG0n|JkRC2ifcKdY(zA-!YiXfh&cwZi*B1?uFNzMg(0 zx%z`&q}CdRgwt|kMurAEy#zr~xB$*@O@oe)x9@R02Rsb7nC)_Pb#-Nhi^7*}T18w5 zJM9iV()^Y@v+9s<-q?Kqe)SY;6p;yD$nDKZ_ARf#%~X?jw*$CGsL;$K#2Nwov`bi6aAZj(Hg_zoRo4yt89FkI(S2m+#Hqmf;6Q&mr9K%pImx>Y# z?;r647aY{D8%QdeHDR!X6@1z|a$6x$xnJKi0r5!sH+hV$S^pk`O_e+(NTajBzOKYBV-MzfNp3(WeA!2G)i9PT-qPZL;nRqx4d=Qv8~#TtLO0Lwr1xNlH0 z@AIoGZGSM~H(}nbbr{Vjn{NwCIm2}P2Cnrd_)jD#7M!tFeE#g&jhI90zdoKGLy==U za$v}fxUGsQ7pA0asH?9p*PF2lyf@La`J!lGP2?avXK8sy2=Hke-97S6JAM(a3D@Ppfz8c1LkWp^k%GO)h6n*UqOdZnr*EA!o zIf78wxOPoQxTgBkr%#8xvTJmrMecu_d*t=@i;_#%8*?GWwZi=9Z6J?SIV7m|yC-n> zt@rNk8-6rOn?AkI@#sM!ehkMph&;zm?hv59HNH*ILK&MEqSng&M*Ydi7ku8}yn8%7 z_`Jsw%_Wm^A(i#m{&vv{QWgby--I7VU-a0VG|e#d_r+;coDTCIKr}9Iu0=zHz<(Vj z0MrEv5$f(|WJpI-Mrz?;s=@F0VphG|Rod{AxGU7;0wptl(HcCm$nyFe{iN4Om5p62 z){hm=Ocst+&P-Lxp^|9to9^xF+9%Qdy`&;6&q71}dC9b>QvZd2?J2g=QP~Y-d>uLY zz60*xZXNsFDEk4Xfjv^+^36`t<^;Dntj(2t-+)^ncdsE&q(Q!c6;xvjD9zJZ3A+Lc z3Qi)peMCf^_U-BEahqvtqz%)%h)lj0-utD43Lswcp-{dEH`cY78dyBAt9_Sf6pzK& z%cVIzt8U?(U_fxXZ%G)Do7gy=$nP`C7rLJia|+nIQ|ZccL*CoY)Z<`B3F1-6r%aDQ zNzxWDhx2@Aw2!3x_U-LxzJ|}2%6n27B{t{01saLn!^4j(oIgh3o+(E1 zHVC!WUS9^?qVHKi#`5qxI~h>D&=f|LCu=LW47tt8jse*VU!!(xnsK75sE`_)qC)Ag zaKtp+4|2#f>C-G8K5GT|#;2OxZFzKVth#R+m=mWH{A|=a^XXHFzBI>;CVH~{%plb1 z%4$8k!Zw;`sg4qeR00qSo8NUV6PK0J6ff|@P=x-E;eJmW{K+*t*3hX$bJ(iY$|mS3 zjB6r#VBq5Ok%p$`BR8y3xp`cd(!n5K*YSbiuF5;Ic7_U&$Z>N!q39~Xa~~_1ZsN;U zGFvD^G8;_+xBXB?iK8_u04`)W!kvuY;GJf59MJJ4`Q!vuysWfQJjvHj#P7&>q=Y8V z3Ah{Ib^WxfZ~V`}vDhxh=e406cBRWPO?pG50czeYk~!b+3wpR$-*G+un!%V7U<~&a zOP=czy}5m&bKMdx!#*>yhw6}IHjyrmcf&YvlkR~|6Rf%^tl4E3Go1mIgui)u5AzTR5UA4)ExBavqA;)M`BjcJTuy=tR;(t8laEic}GD8hA$ zZ}(EEG%w}egkRzGU1-+5xnW>>y@9r!8+rMjaoQx+w`1KVr?%Gu(@O_WPq93wuY4)= ziCJ^F^+l{okb7z6VCzDExq_j1DUIk(a<{`P)-3Pm%lZAdD2tI@w;|qMKuNbnGJoik zT-$k(9125EQ-Bu?KhJH&zaE&zQZpXpok!u4s|4ljFj=ZLsJQ8W37z31s|FPmKN_8o*2A+2RX<9{h~+QnA(@3 zE7k|ME!X4cctjyg9_mw zyOm%Sm(WaI_Ez*ID*G2vw{pAUy+oA=X^{&A|#AdpZ z9=)fNUWZ&=6Zi9GB&*10~S=>z@-L#|4-7+Y&5B!nvH_c??3iYrYQRh{VL2%=uvTO zv`M!OetAg6 z&6Nwy`+!9e(*_Oo*Fe1qEcSoeyY9Fquk{~9#ZjRuYLx)CSgBUA${rzF2To8yP^JYH zm5uC;)+v#DF4e$Hr zJ?A|0`<(NAK&M@0#%WMD^~Ky7OdLd91%P_eLxBstBQ{(cI<~v@zIjj42YgkAWej%v+!YbxURJ5p={|$C*?{^Xd=d6L=4gU6tig%TeuR;JADB$ z+8plE{ZIkGJCPhB$Og^Ok(PN`m~r$<0PKH~gMHq5IoW58f_3(L36p{$DHa;-$OJpn ztvXD}E_&hL=`vC=(%OG#GE;3#cd^b648VLAYYc3a+pz-JSHNB{2#@65Y`1ufj}G(_ zupC5{=m{`k+tP-XgLg@i@>p)viiIkWf=WZ;x&#g(`x7Syi3!e+D=WyU$;k!KI;co8 zLY(#f62-$qhfW^@D(=hJLA@f1L;hklbMl_b1P@v)2I*lB`5UC-O^n77Ale$D)2ajn z3Y4$OZ0R~k9i}Ht&=UqyZf-W&1ubCCW~x^MDL@tbNvdr>X&M8U%p!NDh9|vZU_KLI z4ly9`p*VCjhVSwB4i#1%D%)-YsBs}+>BbP7^=nKFX~+uj(Q-UsL&ZrQ(xVs!oL-Kb z^H^G!+3S1Jg~h{$5shLDKR0(9Vnd3B-X~%z3P4)Yt!fp}O*zU;SHH{2^O;?F1`*?s zif@2p+A(j^Y)p3Sz=O5zPfl=;b30$r`Qim6x>#3he;*%k0;<5$`5Cki?d%@}JXn`i z2R5YcJv2dPn20luV#=+5!x_$-KZ{`2L{w$fM@1))z;Kx@_g=nFOJK|Vvhwo9O|T!R zh%jHAUUsPkLnj&>YdT|-Hu$y`1qW-)H3HI)Tft?O3_37(1y2y5sdolB`kLY66MM#? zLAjN4ha$v4sg#kWixZ*NJMdyqDzj(F3VrKsSO8aAr`Qs9=AyCM)9pe8VQll}n5C4T z+k{Kt7yN{E^%kiO#$y9*nAe01ssHu9O$AWNcg=E#2+pjLa0)iAK)!;F7?4;$mC{yV zehC23SsL1QVP|r>Y?26MQ$QB`8>k+sg@qoG!8-0lX0Mf}-Z^62$XL}#1z-mDnUWWN znZ!}Vd*Zc-V|wYfC$UOZd37};c37qk`*HFiwWF}UOixuEeq(|)s9M}#@}#sSA%mtm z0j_w1(W)i=C2Mx+tQunh0wYNrdoh5+_67Qhk2ednJ$V(L!}61F^Z}l-jRNtbRg`nIg8?i}n!!%X17rbZalxdz8M>rPu( z_(2zwtnrZmw|5fE9D>9b0L)h3AbNU?*8E zFD~Av0eHco!M-mbuGBAXz5nLIA?iRk!P2F6WrYq25M-Dvou4YctO{VV^bN_3u8pbn zuPMDiNR^Q>QXxuXlusH%PwR}s%N1V66nV2JYuxtbcfdtt1E&tj?u%GJR3r|$@@3c;T%Gmx9$H&5jH!M8DC92_ z`M}3vm{j?gj*0s!%vly^9t(xtbq%}PM8e)-K$E^}Z?aAK&J{s{YYOsmkC}#5^)_gB z8;~H>iLaxHK*(IY^bMdUk#1WWXaj)cw7_;m2j_#b(EUyUkT?-mk&}(n`>F&F*_;U` zHF)19$^ADzH5zYOQIx%ymXkww`~||6TLDCRXQb>V9VPh1kev@b&wf&9_TqmTu*`Rz z$QZp*P}zmj7_adbi^xtb=`;a7_~BM->!Z8_F+ZW@~^;D_<*ceswgUADLy!eE5pOX zZ+NsB1qZ^{QxAag*bRQv;{GROR0ls|`=s0~6igRBoDJk8}&dzS%R1Hc8l{4{RecL@y zseVvM{-nX7&O(-K1(lJ8_$IIn;#lMgslr+;xr9K*05;>Vxvvo+1`v)f25({^By42# z2O#AZMJvnvZZy>s-t`%@9)`UyqUE)0Qw#P!ULkP5MKlj8y2UT$yVB-=M8pD1WVugAz6kHJQ3?-2l!yOYTm~1 zO835V5nngWO^pt`a~?>dDzgUn5r87&s9|)=9vcnG16U3nLAC;w$7UHee;Z<5oY<)o z_)O@DmDN7q!)7J)>GH=su&l;uS2_z|m6)1EhnTJe48wpbqrZVeO%ypW$%TApbQDYJ zARj+CmI!`E1`-pJM!Pyp9^gZx0dFAm#WE;33tO4sIMVeJym5Cau&wQe&_pt4tk~*0 zLjeo^VFPol^VpuZ@Z>M0AcX@gdsoArC=9`A3J8G;B{@6ZAYnT#$G3&i`=HRn#u?y& zVOhl}j`t?mM@36+ELeJV*Mtt0;!8?1f(>UjZ@#;<6BH2QzQB0kKFet&(W5>$*fa>K z$q(S2lHJZ9CHNar2QfgPiC&%B^5Z_K%S3u4@d}ikE1BtPkidgWaKq-?2B7$%Q6{4{ z4+C^RQ?xw+Gofk&rQCuhIB#4Cb*I*Qf$HleGu{|1H2OL?M;I!iJ`1JN zZr8otm7PGPD=W3%Fga^@xT3Mq(8Gf)`OYur{#js&U?-wxzQF|90YsiK$ z%m;+x0q`uAxa+pC%)5-1kYEt;jlG>6I~$CPi-WCo*D(YIZ&$Vr%kMKhi>WRvF?a+E ziecX#9^n5ooni7RnCrra?s&jW_+eCTS7oor&`R-^Ij2+(J;-I98J^HoY2%~4AweWOM-ebjwq z7da|~&_JC_mt``;?3meD;~5NH$21-k4BK;Fbm1`f&dCz$PuGnpz zzIoIUd3P-tfV1NWj8PPJe^YXbNM+5fnz^7j`>k3!YcSEW><=<)NxtZ}c&hzzT!tPdkF zhbq#~iA~*q0CC~f;f3(8>oI89_YGv``NA3KRB7v3C9@=4?V4kxCunTZ| zG;Ll-a@1Fs@~&?73l@&N4qpn$)TSzneV%!VOzUJdt4FZ1DtJiYoq5B5+!=?Di z3yYu47GT4M($Z7+o|apyaD$ym->l($%hsgLd3lq-(<^22Y_;nruXRub?Kp)dc&q3# z*`;{r@Jqa@vdxB*clCP$xSweDT?rK9`21>J$tDMD?(MaLg4{otA>)bbZRV&5%!erc z19wpFJ4B5_Q!VySyOx2C#5a>8I@c}7eQWNJZXU4a{22y3HAPGDma{nz;N4<={=(!e z+;rYrqN}GjI7%oWay%6_6Kc98OKVCFeX^J-n~lvs#yKQuo-De|{#e*fyPlT=v1m9jWZGmiAE zc3xlLsW8TgsX;$tEI41bCO{O=9bd|YsW*6&$H~5{Q4tQm5;7@__xyiFD?dtgf9)cz z#~WhD1h|4md6$u#EbCY@`EG~ryIsB#D9-(BbnTSV3?MHJ!a4b-xBQUtsplN9W`FGU zZk;1nx+J-?WWRsv!=(9>R>$j<30Jr{_u^zke(RD^@k{Z?uI~&dDL>~%>qTEsc3aZ}U2z%Q30e-FVbagE88Zq1}n z2dvW;^Gpoq7ML844xU10;;G-1;n|}MLAZh84sWhWvEOSTop*@2jk{_TEhX%lzI$qz z0c8u|I>!Rk2w5TKCCsgkCyyVrJ1G~oa~~!?g#J&NEXY|-;fFO`OA~sRD-ArO$q^>p zEkEucoQ^~smP4^YYcedc54k%P(NNZ8H5Qe4yxCmTAjmw*9ejx|3`1aiv0z5B@{2>{YJXAG3 z%jysfmTU_8Vrtxfg=)6*DPkLV{-GAaHUHDXe_t)6(^maQKF&71#u3#sDmWrqF4Qe&Tod; zC}eNHc)?|!VYENXjWji;`*&_=+QZ8o><744|EuFt4d+~N9>oIOm59^qdIWpFcyVY8 z61?zSwi2=`N@G*8!;giC>96Ak6f+N9BmKfuLZf(WD%pED!({*VKvaJ!5G_Lj(QnE7 zt=~C|AT%}_50sUPnl$UJ}-oEG#T;-Q&&cwB-LSDuTB=SG`~_Gr>K zl{Rss0$y?m!KnPKUx{T^R+~cU+j%^^MVy-e#%Xr%g}t%jmE5;gk4pm7`omf9$Hv>! z2h9yErp2s|`GWpzgO1yM;}$o{Y!~K!lO7OJtPr+o+9N1wpd&S9w*m41wKie7pi%=OPSELD`P^0~T z!MgJtxJL1aPW?QN+Y8O$LZLH3FR!>>v1axq5pT`|xVIqaso2#d*zosmCyH290xDUB zdcr97H6Iy*zDPw}J{onRi7)E?nA_0cA^Ti!GshKPyCwSPqN8oI)ery*2}7esg(QhQ z&!5aifo7CH5hQX!V0)8k$^YaSPRlKmpTuK!i~dd+=I^nZ@V(bh%1%t3+JVx6K9r|F z|DWbTWd#YTKQ2D|mueoIHEjP!nulHUpRaj{J(>bm9tuw!3U%VEvfk_QK{D*PSzgIvWqWY5Ge?!q(RYVu}n!*vpS7C$fZ}tqNpwywu85hrez0Ok=!u2obt**37JLu z@LXQDn2l5cdKd9t*~|(lQHtOjd4NK)Jg?{)XV&|e5y-__l8>bheSUPRVj#!J$or0) zugNPs;wFm?%|CPRvA^(?>o_c}M?d9WMVWhvdqbQEo_j;`rP>zQCVOQ3HY1RGXZ6ht z=(9xi<$X|-;RKz`+7LkDW~LodMeadI>xz^LYDJKY`;z(edEh-Coe_^^R@SpYV7D5( zqr;Sr7r|qnx>#CsC#8B3RyOgAP78iK4~SkB~Ez5d#rJpu>zmH@Az$x=s`BKwZl z=h#J&dmZc@1iMSwm65CA?1JTL0^2Wdb;;)Uzxx$E2T|oHU+9OZUE&NQ@p`ovtp;;m zt_FR%t~&PAtR_sKakv?0KZrM5E${Dwi%QdyUQSk&&XhXDGpqeL@+M2wqoHJ1LFX=z=Cqi5~Li_VgLFZL>}(Wx1gks@j>yt8~{4tM=18w^xjh920m%lRj?QPaSAx#uN+#57Q{(Ybb* zoa@KGf3E9!=D+uNL-SWxzKH1_yU6oBlusHQFGR+~@MJ)pj0qwd)tn1PgSs44RSFAIT|8YX8~(Y`X3R?L0KZ{GPW88E`_zrY#gR9?u_*Y+SGI!8Oid$sB8hdaZ1> z-##dh2&a-e$C;B|5wj)No58;HM91HU12fIubb*A|`G>KEKe%5W9Veg^v-2WE92*BbGH zNe9p7cf4Ig$9`)dhP*lq5c~3OZTdX;<<;}s!$^+Wy@XiO<6GXl8W5ca?r}U^HDmd* zKVlkY(96_DBuuFNWpY}th9T2GWv%{=^zA=P$0AhY{-KVky6gT=$B-0&o9z5^bPW2h z{dGF_&-Q(_c^P?!gm-FH4K5Vr#TP3xsB_hh96@UJ@zC}9SESAzwe09Je8{jvriXa> zX>Kpsp@zAKYt(8V>Ct(3M~M6MxRL97l2Ma`hLG|KZoJSG#Zdrc;C;zI`W#$6|+eJesjLW0=GD^@3=S?81ua6l&aw`ZMHR3`pp2S=F-DDAl6qONIYjtCxT z1i4~tpV3%f|LDIqhwHtQ;xycIY#FhWb&ogZ`%Rqc=Tama!vqt=G@ z`A4avQGp2ipv2XqP3YqPz=>|ce|L1F?ciBP=;x*9CDokdEC@}?vu8+yrexU#9U3QQ zY)9bdXe*8}*ei}fHdn)@V~x{uv)=$xo`l{U#A&u4Ta6CvJGM~VebG}8rWTx6KtLP- z?%+xQm5}(Ji?q@jdALU0fy~J%srfjd_qS(uwRveA@8*l()i*PGo|T~6ueGuV7YU-l z@*5PJn}!A`P0L}>1)45<|6cfrxrN1%hR)Yq2VYVN7`%hWA=I$K*1Hd*v`HvR8}?C1 z68%V4-eOD;F4It-U7W^IgFki6X_nS@XSi6OsToHq0kA}~b2AQ>(19qCD+gdfmXhl? z5{B3VsQC@L^J_|{vm6k~rQAiR?s73Ri~W;A$-fYOoGDknU~?f7qrvW2p~yo+r0r|` z!X!CtGMH#RbmPM#dQX7pM! zxQw_zs&IdYKsGiu#)q=&q5~t_t$6$rQUQ>o?Cb}OS0_Z z>4?QJs!C|Wf~I2A)$l#92#%&=(~1N_$vbJ{ke;Hpy&FPiWfGE=Mft`sBoObdUW*NJM*T5-~FlyjCo$r z8RN5+D=$MoIjk!~TiZ$T1(1sDUA#CbfKUB?d3pH_=u-!rvLnoKI^88y*-=U<%wK3e z4!1jxPat$_@hNGbURo9z8R^QBO@#&(H*c;KUv7PT`}Xadm6TRJefqTAT&@+^P2d+q z9F0a5K)~LuWZlhM zwzO>LAC^^7!3PEgLa*U|;-!@WRq&XTC%*(9kJzKfj$Mu!NL`D|oq+iX{Zvy^(*~%5 zPRpzkV3lUks`XSAj_be+ZYB`2sRw=zE$-0=@sL5}ePRS$97=+Qikh&T2J&u>k&?+tA9|4XBFyff91ZvFn@cE$aCM zey)HvW%^l8{TG{BhSvkRKmpdF)8&(){Ra*dK=am@MhxhQ4WzUyJeI!o0ahoz3YZ`u zcD{nK7GjJ`?+#9^2DVwB(Nga&VD=n7ET3n1Q9XJokWyWNcJH-Tb3cW3jq5FqeCh(7 zGscHgNwko8YWaKupIq(l?;iyMYHW1`l-?ZG)AI$&5$YJ>j-Z0qojZ51jr4edfF=i{Nlw}<2q66+{Lg{@3QPFzZ=ji0!ZHRozHe< zHuysap`*~5gG!pn85wK>a>{tmY<@w7^uPV>Z^qE4%Y$AK(Z?VIrQX*Vw=|7;bKvp) z`}bQaG>Co}ZCMkkWaQ_kFH*>Sg*M6x??-grx5CbcJqB4$n?VYM#uMBP3=RE51oIpY2LMAgJK|Sll`- zk54UnXz^Al5asMtX+hhx#GD*4Pzg*~bXY=PTP_!Ru{mbv9H4|`zN(x8_*w6c&?k5FYkA>}}m>tr*svAOvM zZ5~s>iI7kssLaSX9RzxVloac9)AGmg{^D-$xBXJr zYd})nvSkTqt^hstXB_SVC^Fsz8`}hn*+{g`>a=PhS63UKII#v81nyRJq?D{I{UTEKJD_#ktgM{b5n&3Q12Bfm(PDlaD6owTJlogTceA{_<84Pd_-O%F z@*f^PTt_v>ZEC}4u*SP}NVPOGAu$ynAnK`dIGvG|gy}bo%k3pOJB5Gf7{m~0cPb3gy{p<47t{X{y zvP1xHykCJFXxG@J9@s*DQV=s?x_fzhlG zIJY`T$+HD5;8CT-eJtQX7Yi}!0P<|mIRhcZwQJX6M*134kLc#R01unh4+cVyF054$ zC=fr>%t$Xz8+&7DvFEsfRi|~_8XSft+3K<$h(9n~M-+CGm54+Vg|860-GwUIzqDG5 z3q3BV(5zN{TE-Y!xj_4l6(Hc7#wm5Z4zG%f3*Njrx?$tSF`Ty!%k(u^;CQ1w89@b!#!TnNDVH$H#98;(-s0~?;} z?F)VaLSk&~gyyQ5@^W4hw37aby+JtKg2Q`uY|~Pv_Rt*)fW$A6DK8xd4bvE4Oo&9H zjLbWEVVwFmu$bSk^4kThte!s5OO5#QvD;gICopTLOif!id5-M^gT;`K#HnE|7#e7$ z_glxSOTo4zQA(AYabAJNpb^)=O9Pve^Y}n8Nu?~#4;oT2w1u11MnKkk=z}AD4azB` z_G}Lev6XW;cYu2bqIQq|Cr|z0gm9V*?d&hQ8=L%R;YBR3^3^zHEd|GJ5&BYYk8oWR^B;4*95j>FA8?+L4YZAEtKp(97!fEQm--phn(dPI)ZyWpGA z;f#mZ+F%A1=cvIhYWy`=7WV`v`HeyTNNqF!5&ItF0l)$u{IQaT#-3?BouqX}!Ypndq&yOZJXC zv-^hLlUpyl@I56dq&wn=hy`=yjaJu>I^TQ#BlRLaOd`H-tYIV^ngv#kf!f<+jp0Bd4nBak5Tj^XBql2AqMStlB2Do31OeUZJ@K zeBpU;NlrtZhxV(h?@B!S12l>4E7d1?5F8vF?rN`{0M-s@bot+PQ6QPCo*W^a<-lIUgS0|=Sy|o}q{711*A2fUUN;G>pz8f7? zfN-c4dc7G~R471CK{7*~&#_7^PL7O>L~5;fwwUAewS%LhvY}%iw1+xbd$Xvm z1=z(cT^}8OxFe}X=0+L+k2xt97YL>)%o0qS)lGBxX>SztUEihRHu`gH#EVl&*h|Qoef^rMaEjX^q7iPS8sc z^O^%=pTTn-dma3boIb&>XWvl|V3vFmZ8F5)>3P|9W9o zxxFbg@N1P_8&Rqz6`VQb;0N6p6OZ;Ne2&RyVBk{zd4znq#I2GrIW0^5gEtvH8yK(! z5p+n7GxzlL#MWL=NJt{0l(OTt8FT^DgB7q-F@Ki`1AUgRfxTv}Vm!Z8rs0E@y zQ!&yHI9v{M~nXUfYBY=keKn(d;$*jLfQp<-!}6`*y^aUfUbh z0t6R{NlDP+Sp=R`QUyr{^g%H-G{Qn~D=X@^@#~<8ACMfv8}ERj6b>%9_$>t5PdJYZ zo#>pk`#xAaEDnSn+z!dExgcRc-;F5&P>F68m?e57w(5Dupy}W6;E}A{iz7gvE?v5G zt@u=FC{B36MIZ{EyTC>3@OlX?>)bYq?>t7#wkP0XcYp#zFX{LaAe40mL3lPi?670U zIPij6!0vT?WqR4uXV0Diu*j%C_={meVSD>2uzO5O%$2uq-vYPGWw1F)a|Hw>f|M9F zMZm2sLL7g8A%NL{#OGmd;6g0fNQB2}_T5mFIw=nu4G6EibK3JVJl#c3PWxj5L_ z$-uWl9H9b17Una-JR35V_uV<@13)R{Q*#AeZg}x`I#HL*5_C#fD*-KHmoH!5f;IC} z->n;`4T|AUO<$u7_GzApOd6nG+RQVR4eL>xd71 zxdQ0j@I~MY{jS@s&^ic%aHqutnIwb?4dqU@iA^Ma{_Rp?ZNCCB0y2*oK* zB@o*Q`|b>zV+TfP1H2u!h*%19`gCVT>9nKOd(nh5dYcLAZl z($&=k4c9#^X4%@=38(8zfm5>+E@K`jAf~twm@12;)K`2)hv8Tx_1B~EZ*4o+Z;~`I??ASF(N(s|`CWmg<8gP6k467Xd3Yfbp%K@642gBVW#k8Wh~TbyXuY9tOOVe_$Pr}~cg IZ;zkQICITLO3NMt1MfEU=MqLt92q!?;~*_B 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 MbX?T64Z9D01X$(;u>b%7 literal 0 HcmV?d00001 diff --git a/screenshots/icon-web.png b/screenshots/icon-web.png new file mode 100644 index 0000000000000000000000000000000000000000..94206686192107740958027faf6b2198b3bbe9e3 GIT binary patch literal 70614 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 fLb^Q%Qh^VmqFU!MRR zt!2v0Cp-;OA3*KB2UZQE#aOoZ1)-pv8>~uJ>6$UMPT+7JNtn>M-m8Mb9H-uBOnxQGUF|TBg`v468RDf&0c0W0u zbW}&fDcS2LPEUZuy6`7428Y|$6bc_LeZgDEr3ny&rC9_yAA6yx^lBKJ-K*&!{S6Kb z0RP$iKo@K{F&`G)5`9LvLk-%~_9x;+qXWI6CH&Ay<|_i~;$mGJsy-3`?xa#1tEw%x z8SlUJ#^$4Co(-`;Z4$&P2r-d|)FFg-@%l z;I0j)FuS*S-6qP|IRTHAzPs{!t@0?Q&;Ev*EPLubZ0uQ$#`Qz-(4X#1$pJvAy{t)j zm=pdGhz<9&QjcKGY|L6{hA!Q7Ua@UG8 z=fn`}ijl|IxlzF4VeEsZ>e#-}RQUiBa;(O0%z5pfZ#9zVZ&2aSbV*!|ZPV7FJxb(M z&O=r;&Yu*ND$4b&IOqJy$lylnd7fxnJs5^80h_C7GfT5Cs9EP=kke?33x|QGlh#a0 z?7pH$ot0;Y@i(e`1%^@nqI2=&9~gzFX1z&J+fC%RZSU9n+m0R!YGrNH7Ks2cH8lXA zM2oSREimgMKeMw7+M9HtVu!oMxcd$&0WyL413L-#1T0wPT*}yr4VH1P83_jwE_r)A zx&BK+Slh!B&O$s@Y-;h{Pt`lPX=7ah?~AOk)F|c?w%2$QEtS+o4r*nR4Td0(u zWj!=sd(?j%9T-==`L0>Ku-%({^kh=AG$gkvTW9{W^GYRfz&52{fzXEZ$`VnaI5c8r z5NeAZJ>})pK3s@T4J^_|6}tsraX4^%g*8_7@0SM$$>Iy3t*(wAegIaV!aucD7+exT z;2VxqOW`{4Z8(JPh8OR&ml?s_ZZZTxEjy)}!cey0#nFkr&fc}la4O__S$s^sB>6@| z#MB^~to4w6uJY?KGosXXewLn0p`{8_Z}sWj$-E3JVXLxVvwOYv8_ zR)idhC$It%NL!ADbvtDmxz^q`SulQBVp;)x=~AD{z7UkoS%uR z-dPMPvFI+XX6!~S(l#AJWUz>-(r**{L|}0JvkQCgx}15S=U##PgM-8(%jJojj#aik zHu5`Mqlwi%Vpl{89q($&ZEA3wj=jOuLs|OF&6fgN-v&^YWIZNOO?E^(9k~B?nNm&# zkQ#NDSouLeLSP?jwHyw%FZf1s=tVa1<|u~MJxKFal#NRS=+)nt$|g#>^0wsjPFQ&DFyii(0%PE3KfJxXM*N|}%Eq}lETz|)o^?k+e=yi$)Q zok;uWItJwbWaL6toi>36!}M=^6&a*J;iaw%3kc~#%L(^RPT?nZ?oGwu%C%RvK}QZ% zXlyhk`Rd7kCjY(*?it|`*PuLIjS|vpL-O&FLOy%hi!ehj<=6Y+TI(S(Mj8i3_Tdc^7(q%?+Df$9^9|dQHQDF>YIAAB<;iLV zAO=V9s7-|P#|XQogI?OKp|GTgWISS zgJ)wpTHwgk*uOLyLbPkl+MrA~#bkOERnAl@;QZ>7cNx%ZT%_CnihLpe+dJdG8E-}? z&+9arx#t@DTVA@&HBt8954UDdde$o5xLCf3vJ=08bY&C<7EKv7SG|#-UIbG`36j2a ztwaMSLMTd6@m){;j!}hH-`6(8^iF9~;MH~MM=psLW#R0D80#F3jzN z0tgxBdnT?Y9GE{^uVSERltdM?&N1ANr76_7FN{5U+#O@i@3|eecIojS-ir4zua^Ay zJcW`isNfSeRfLHI6^q+tI_8#SRam&hQJcsJ7MTQI-t`Jo01o7ZWcz;;!nyfci#R~d zH0P-*+Oz1sxh`;=wd_~AKp>=m)#*DNuIi|P=qV7n@~TM*TM0H|#zw2>3Si^ zg%L`O2u6gfFZ17cVDamCvasd6(Pi(A`Q=}fAN4VzpZTf4-Y3m$G&Xe&4~MN-BZ&ts z{dE6Oj~zHpT@tvI#yc9qt)Yx5{G=cNhD3EQC$lplDus0=>BT`wyfc&&c(p1N#!Va4KO&xR zi2A9Sck2j-D_==>rVYRK&i4~6W4hf&O>z}P8rykTMnMYGMjFU5tym&(sR~u(TXcW~ zA%J9nyzUvE^m{Nprby$V(-Hw0ZKIfQi+kNNZm2#Tz;v++RA3Z+szG5CTz>0*eH!(| z5qpiM`oXhNH20<#1igLsT_Z*s;EKm|t?O#`uDS{fO}VbAj3bGJt=2o=y;1R<7%|mrs>HA$I%FZ(ANhy9t|!-V z`?Jet%Rsg$hJa*V36;C&%=ZtM@|yfmHe%asrc981SHDUQd+Vp2wNn~)JT)ggwGrp9 z&WClvzdGhkzR4rtbi4g=X!s0#(>WbY(Wx9`SDBT?`%ACZjhQQj-^u7@!j>3Z+Qp6{ zL(Fb_OK#}O%jrb9vyQ2BO?uw1DSe7pZGpR`{ ze9#I}PqZ&6nJuALTDmGx=bx)9J4n`O?xQ}ZU`uk|78;|KDG}{&{*X9tQv!?uY|Sd^ z*Ind5ijcUFZK>jg!|&s8q%&AygZ||#9WFXWmkKCpHlsu1QIfL7-s}1hV&%o`i~%?i zApuigTp3RlOZ?_j)#E;A9;ghJ9y35q1h;pZh9~i;XT^9DT>Fetzg*EDZwuDmX^dI9c4@70b+|VFp@@Xy##d8EtWE-u>c42cm|F~;U);#NM0;54-<`` ztugmtWsc8DbNMWF^@f~MM7OwD{%ufs6hl1KEIHc64tDVkS9^blen`o0+;Kc1FU&6; z>m9m1Y9Pm0p^jT+V01a`P-S^|{d@y8J;>ASeYd|Js~@an^FpHRy-zTn@||U$f*Yh? zQI^#H=T8j@9ro7wu29Vcjx=y#3rv@vR%y%87@s4lMlP&)a){BvL^&5bO~PL zmT>Lf7k;qpUNw-Pj^2RGTnTKP6H?3g& zi*KcQ_vi}?pIO=)_9-x8R6bIb7bNA}hta}7nwo0F=mD?5LMt^nHN3LVXsGEU-i2j?;cP^w?fpKk|B zy8YSXf-uJ1e+(GuOO-|ZC^|}3r?6iavZ}q&$sDidxlfgxrE@lJcxK-gt@Rixb+H1m z{v<&c*snRUUq^Gy&cOSoVpe&t)W=BQJR?aQP%oLE+CWQ7= zVbbj2&YT~a9zC@2W4h%?=x!Lm`^*n;Ktw9F<^DQ*lnvmB!{EHmIe$SWjRWE1Gku@x z+5}FsyA*5QOObnDuzzw{w_+YxDJ2_5hj*0*yq%RP06pf$Om1bs!BYaEk5ysCOn8Sk z$3s)BTo2TF)CxfaxGHTlwbYmyGbN8ynemm-2ljDsKuyM1{Q%m7E0AW?I2vGvhU||g zbUxVf@qsd!&elScguGQ_K25Efdo_3)MQ1<1U}c3}@P%pcwElo5Shr z@Th>8Zo{YHJAbuK$|&v%Ll7nQC#_nH>sAOTxv8ifm4=;&Y|o8@V7WShxoA)SkFMxA zaAyW4B(VZ0y3nbnZ2g>e6M>G8^zxoLAb?^KKiAg{rV@Lx!`*|IwuB}exX)zt9AK(6 z4`R!yk_sG{u`+pV>lK^l8X4zyALT{ikxB)Uk$robm0-1)&fx#miT*8vYXO~uaiUaN^q6f{}8 z9B?8z#}xyH0;`WT5BWIowqWPpNsDagiQcWrjD>AOv}N!xA`&=IXGJp7*FSf@3LAu=4Wj z!?O}pAr8wDGW1N;U?*h}zPCf;9<$A<29$Z;qyV#ux0;om!P-Z>L=s_HTvF8nN4(s( zv+Gp%B?%obLpU$iTR?Ah7uo&#uA3W0-6cyTG4W>Dq-7ByCF8sixd9i@OfA=Q`UY}5 z^m&Jm;(F>y1) zF!G?(5*5O)K%<vW)*82}7kkWU%bt*nR?)UB%$%cdE(ZYPw| zF98*}>m@3G3x=wm4r}4DG3Vhk9EL&%E})|Yqa3c)pjTcljhmTXtWddLW_Q6lf06Ei zQARr^*;g)rsSHa4lPqNXW$xraj7~ZNU<1>Eq<{!O`^>f#K`l!hvF|>j3YwA_$aL)l zAsoZG&aO@VUgiThb8&9s7x@kwvYvmQVm*C>t&8@A&`T{idFi+ljUF%8-c;+ri;zQu z?qeEviJ~w@07apS2_?VW+x77|?Lyr*qOg+ZzI*!H9sMfR@b_M!%1Lb1_)S%FWc?jc zkq&>1VuZ>YRocHJt}JBAHw2C5_;VS+Buyz`o^V+G^2!1HY~^u5NMV}l=geoSm>hWU z;&Bd-pJVydYB=zQ9vZ+h$6mK$#ek;W#UhxmP*m8evcnTpk#_R}NR!F@OWhEJF)6xB z&)VHSFmO*Jgc&ls8o!+Q?Z?IO5GOCOJry6YlY6hyM*wvudf{PFtQX|A zDE&&#TCg`oJ5a!;$rN9kuLM*`gXwsHJyRi{{mxUbK&ZUWmK0-_8JMHKTPP*%vwB7? ziW$vdDfU_v>Y&fs*8wgd@uC8nO}}_u$AS>c;>a5b@MH-2nwlLJ++@`a!t)4F=VZT- zD@u=l(!e5g&(P5mQFO0#JcDtyZX*LOBthE&U@P!IY5_M{=Nh-CZ!$9WP~(dH`W7B*0i#rWefz9*z3JKgTaRFev`6Yx%GVnptssd=bSZXNAzT)M zDBTJXC`i)|@gSwgb<(~k!F1HLR93-q(o7X8U~&EkEoi%YCD- z)_e~z>r`#~hKpP(isuRb4lo7($rs|k#HYuXSsxysGabFqcMU*?i>m12rut_VpcMtN zq<3AiqFWiIIuKnJhx4pjuc&k2*&_tY0brN?6<4}pL(6Q-%5mqJylHYLBpLz>MDRzoJQmG6+oz+-QRCeb~;E8{mNa3ziVmdh&%sj zUfl0?jJ6RQn)I%3UZ8jH@Q4n%EBLpwk}6w3P&ZR6xap#lc7GOcR{P$B%@HhZS`E(@ zy7-BH_!wVFp9cAo1y$^iKA7_a4=(tE?^W-M&9s_2YxfQ@?8zZXC|n1#d%F?2wVC@j zz@c1cuQ-8&8N9#8S1u?6;)S&dM~AnT=L!94!ORzZn#$(-F1MO0%F00r^zx-Yn80n! zSACxEG(JE4ec2FN4>it!$WX0EeI^Kgibkrm6sFya2%eBtY;Yi&DX6998etykwB98~ zI>KMl#-`@9;sE_;s;K(@~ zB!C6ZGZ=P2iKi)OFqeK@*Aukrs%MOg%wAUudfSdsa2@k(8hShW3e@BH(Pl zgpbd`B+o^T6mX1XQD+CJIBwm5er{%}J>;uD==5!ceR$a~XSAas2mCOjt%%Ri0!%N8 zhB>&J%j!z505FPyd5>e<{;q?ok{C$Q1$qd#hk;n;DiMHuCO_0Ybm=g-LAW zrYO0TQ6ndU{7>rP&9u^>XcYm5Ck3WEB2SW>xfd&$s}`!wA&3O*<&uR@5THSP$ zippnM4<$#DVB&#LY;Eiy_z5~GZz@$Qfs3jxPvecomip#esg>5=4YC7P`P3W2BwVt~ z)`?5~4qOrriU;c-um!LKDZ53(-gZD*f9jDGFBm?4H1Ni!ZZg%NG>sM4JR3OJL4%W! z*rOVs$O(ez)w|+3;!pQp;{&B8=AxH)=?1hO8n*JV@F0dvQkLE6ve|4BuPdVx;^(Gd z1c37y6WI|KQu(J=jn9Jzm<#;uX+7i}C!PGtRt?0_n7xx}3FsQU>ZfkAotdvTn@Mw0 zBguw1AJjAOav_Rk_UX&Sp-NC;wCJ>ihc8VKsdq+m>{maPS&eU3Vf8_|4C#EpO#HBN^9JzD)m%TFBL+~W&%rl38LqWO64+1?T~ zgF2uVO8@1N2yHIQ@s~m9Fvvg|NP*+dr|KtevP%DP;jhx{7Qh2at&%N1drW^lQy_O+ z?GuAR8#VgEJ>}-uOU4DEYUfy7H^xD_WJ(z^5F?e4DI*}nT89Y96t%Tt;5?Vq4PZ{% z#Zy;TOB&-M$g53Ec1^$tOa&$7<74EFSlob0#L_U(kU&C^h9X$dLTjQvhKUk6}vMpaI_y*l$DF^fqY#T)#Z8%3QBegVwhsaOGWU1Z4RZI#ub zVn~SFu}*ofhpELM-U(-rm;HfhgkE}t7;D866#n80;h+ls^<3{}7S zkq)NsDpW_RBE+q`by00na3Pxfb$WfdU2N3KSbDB5a!bya&+~Qa~eYusmbI?mK5+ zES;xZ2`}A33Q#{tKoDpI+&~RCZiyB0IKUqA#QBs8_;lD5RC>T`LxkMMYp28=%;AcP z2L*mVzz;T;{nL-phPREK~NA@qGubh$bN-%o*D#E z0w=#pi#A+obQs|bcD_HwKmDazZ)$ILpz6R63r}G)=x=e6 zz$Zl&^jaBtMC@+87d97`$TLp3QKs(mqx!maMQ{dY8fF!HA=m+^Si{|mcbSe9)kD(v z+HWvwTNiax0}dM2>8Nt}zU8hZ&p9P<0g-6?``MsTehjMcIWrfBtJK5Zx=>*~4V*js zy*K2I6S*vRA+=Wd=omIKn@y@+1+i?gm*Ni3bxijpa$@7*gA`Q83{-1xIN{BeFLJ`s z;SL7ujS8hN9rCRZz@T(gld=z?)C+8cI5aBzR#ppX>yBn-gzK>ttc`>7BcCKTw8woS z2aG0-I{e(Vip~u(r6wn_$=`RVhsk=WV55^5hK%aT7M&M#XmjA(Y1SRpnGaZEBVK1Y zXrn-|Lcp8wQXugOyeT`yCxj9RPqg~WVk_oGb673#>fygEuEf(&iU}_iW2&To1@OB9 zVawv2P&QqE7+XRl5@&caToO{iay2cP2ucDa-JqG&#!&*-BN{l2PGXxCcS)cMvl55M zG|3hW=e4+CPEyDVK%m*019K6mX!(C=`p$T`zVGWhGX@zoLDV1#(OdLBA`vAREfPKP zjT*i8L68t7dN=y$5}oKlLiCpCy~ZHQ=$@P3^ZCCpUNFYJ_nf`gUTf`r^vb=#y}%@> zt?G6V+qVWLI{<^CM}+;lj*jpXf?G*B)zl`Vm3oAbpSMNtz}SkVHag3}#H>zt`>S!o zuhbvw^#7tuc*`sg@P4X|486vJ&TAN26M0_rl@Qtg3Y1stiG@PneJ)1->2Ju9puFKv z(Ytj9?KYq<3Lr(lX8ic)7Lqim2eh2aInWc>0gnY-B?E^Dk=bO;vYai;OAf4KKb!>X z%THzC76A2}CA?=Qs$D#+B0W7Ah0b)_l*CPoIZ#gDd8=(EJ|0srp{F2%7@_K3fofKagh|w55xo`8i`dN+{ke3XE#F0YL{(GqrGuv6NDvRZOWlI`- zneG%>My^EB(Fz;CRO)t5xbO?ZarW1rb?gT_Zq#jmSHZV^j#*BmDY)>~@4od>tvBOt z!!zfxtYZ7-FH{=j{kGyFI0mkX0(;Z+d&G(Ch!{C>p!a3SntT}qHAlw)&;zUe$(h>v zPEYVmGHbZ0x`h_c1#HuKb}nx3!;{tq0U$YGkuc$ryGg?Z-=c}QQ?MA?epkzliR^kO< zYANG`vOc|j#C^|qpoIqWvXyKOuu>wK_*g6o^a_84!~jT7h&b(wxs@&MBU}g-?!YIy zUUNrkrNwn&gEKi*2hABXl&%y^`J}-POT=+nUir~{PYsSveT33ES)5Tm+FfR`Tc{zd z7FjJENhT>R(KGjoCxIwCM^157ddup)k2}#QCJW=4D-dMOLe;&3iAE_ zVmr(j`|g`bssA?M*dUVhb0XrM{j|q7KhJ3ed`R=tnIEHt9Q>8B2ugk)L@!}0D^1Ru zVnCf*q-(_*CLep286=$*{bx4I zAhExBWHp!9_;yy8nB7$Ei2OKsY_sZfzLFEH3KHVwWh8&~x1#C75>O{dpu z??`EUBT{c-FOk^C!}d*bHaPvQ^I7~5f9Bf zlj$S_qt+ni!Jba=lasiERHDc!T`1aloMlF!IAaZ(cEmmAa0&j+V=>?%(3>XYl6=NP zamOvdA1~)Id37R6wmE9_DttwyB6A5HiUlr@Gklcvsa=nB5dKOFZIltW;{{8ts0(yc zN5Bylc)qlW=@P-l)EF4=BzSXCq-av~UyGmV1?4!hv!U9snRz=etHX}xI0CcMB~ZBy z`wGQu5jtozj3g@N$I&oKx*Cv(N~(T>pwfn`zZ!#sgg6Jk^dZn&{dQAt253466-@oI zeJt8=^66h6nsX|eR7(oJ+il!LgH8VA50kK*~ zYMj>OKv($sp?JFOIAA3f*9E?~oBplA$$F1mPT4ih$Wn~s1g}RY)wCqrRJtH!H_`sv zQBj(KpI#`UH6C1`+VW(b3WC!_J|=)Yzg`6Z-zhuq1_lgnp0va|KT9fK*}yQNp;d3K zN&ZOq&RnkD@tN@>Dx}PVV{W!#xK(=~S}`KJK%=>7S;69q!b8qIuIge6_`{a5Tjdpv z7nEKis&V|0M)q4}fA`njya+jmpce;S#2QQ4U21Y8a| z;Rg(H9u&OkrQ&;SkqI96UDM@j!wGR)k!4 z7-S}3NWonSFi848ZC;;}Yd()TpOwZpQWf6z0eSRi)WD+10Tek#slA2b|FhsMiczR} z0v5A`r6NFnJOiRqwW-z2P#v=6bu-1ujTybNeRE66`QHK+W`3OGO#_5rs1hGGoRFV# z)RXLE&rL|tq2fZSwOH@Hc@KOrZnut!j;6#dINu>I$}q);$)5{?`XQ8i+u78AOE;xk zRFq2%A}=!Yt$B4uPcXkaa8XWe)vvGn2q&spUtj&B>}#L_MhysW`%aCSvrt$E2o|~K zF1Gv`fFrRv;gXG^4>~yGy4@&ykpkU_*ra=^yO)2v(bj7(A>5+%>063{#O1<7{x%EB zCGzzqk=*0?XF4@K0CwzcTC}q^@Xq)J#5Gz4Og^M&3vnXw#q#`({(&C_i;Mhq$ocFd z)n4s}{W4n6RTD$>a$a%BnFy2JN%7qJLeRbJ%It+OU|`ah^lvc<6w$F_my|i2QcXgw z5U9D8)b+7|(;A}L`8oZjjsn4vi)J%Nd*?T6SY#g!nr&~GQ{F%@1yEZ$qFxl=*t}N7 z${Pi&oJ3Vxz%X7WA%CZ%AlN=bOi7A`!qBPt7~9iY=(|>}FbDoD@ClPrJ6qnyhW)2n*$8l{82Wj$OjBOqmn@)L8HMU~? zJ0F(x@6JDW2(F{UILA3HuqP0*Za&h4VXhu1S^@;EDTVgIV!)O|TNrBe`m0Cl`L@sT zXOOc#CP;l~AJV<5z_`$GxMT|f9>=K(xb*SyEInM1@biX$;B>&a$>#7>`|Nj><4E&q!5v)N z=lxmaa6;Hg-iw*@vHbU<==EmSnqFZ|U~D{nD2RfHU2-puNX#kP#XNx1ELNt+?QUFu)7c!7F- z-;3>BW|yS38kft>*CyO24SOHQ?U!HL&d{uvx+P^*O~@Y4xZysnmuC2Io{b8~FUZyJ zWdA7LIurS2#Y-RcuGM4!7`yE&QIA&BR+*&LGd08~DP0zA-ARSI;uW9HMhAEs0?3P^ z`z!wcnJG|Fjf>rW0EZsYjpDS+akbpfemOAIId89Z-wWE^?|dzU^kN+qsew?wY7hem zvOjoSZUUT~w(0rW;pI{u89o=MmW>>l0R>ICo0bj2&-FSbOy&P!$houA4BW4xt=Bqd zG!&9Oi$bN|wkyTRP6Es)UKr!kI7yz~)dd0zC0T z|By6X4?u#RWWj86GB|EW(U_*O^9_Ji8@=FkF>CHVYH{EW*e_C%?w=<9z4QZiYpR#%1;;3d=x_;o#u1_@6|6GE zXwg%Th)b(O*>0vNbA0`l5@T}xZ@~I!NQV|5Do*)E)dlAs}G0`5`RwR z6finE6dzhR0MxBBwIq~QBzKJ{AEw)akEolu3#nf6G__G3!rdCB#V!WLFt`?UIYHVX zGMK6CC81qV{k%x+fq3aSJII;V*>r6j-Me1=wBD2ed%8d0WE*|{YaooH>ONe7OPr2G zMU`elC|HKDb@~XLKsc7m=m(zc>H>@+-ULYz?|RldQ)hT8?kxevWs(!+@yH z!{Mt_lQjH!!pq`+i9vfP7oO#v`$4Tw%O9&gBR^Xuar)%w(on3-qvFnx`Va%aU~{2K zz+uKUsD}n=m})mQq%7oqH8}MOqw?a;KlavMK1uZ!gxEfBxHV;A^Z`dZh$-%Fyjyz~ znDt*>ETG%TF=x+rW1RL_IQOBgWP|6_8%;g|B7$_+b- zG;otzCe^yteej80=mR)i?pr6zkf0l(f%yRPh%lWIm@{UgWGYd;JOv@3v*y=@pP{39 z({Fbh{py-t;j=NZ4=D2*z~IK4?7$2tGmuH-I#@%qp4P0b(-8oAPiq5g%oK*`&`NFVuX5g8P`!Jq5=mT6O9>&ZpG&UQ`&}WqONuX< zba3A$Jl^`)bSzL`H&^X4*4d(q@s=?^VY&xgp6x7hRf^Rimm`G&eqdchoV>JvYLmFmO8tV|(x(in6W#giP3VIu>Yp7HkN(9L$E%fY<|mHO)Euu5 zMFsXSOaad`dC(<|A||#n-(NtVthk{E;?xzH%*ls)n>EPSjJ!~r+dZ+_OUVpQ! zYvN{=dOkT-f^@WB@;4_g#z7dSggi-+RZP<4zS^w0A-8_j#qQm=drZaoZCBfJMn>-p z{DX>-*MWO^A@7X<8%CfE!YcV7BD59J@(i+NnV<%xtnmU3b89qco1qkPR9Xb9?fD2I zN{pO1QK1MHx9>b)9Pr~eu58kdX>59hR)arEBWOoXo2%uGF01v&h1?Jb)|;k#n#i4E zh!Oy^1*k}RS7qmhYuoc72Bxs`2ZTuV8B@=nq5jvJq$<_k1m_9cSK)RKja5`TlORJ( zFjVvDMnX(BHpHBmUi;O&tCSW$<=kv z`Yl)yAn7RmoQlmX+wXi=h=EWVjp@Alxi6iCU7R4e-|5RGabqM0A?jw`s|mNFFoxJH zT?J9zEpkY=bH2+ObXzd7LE(G8xg%Dx!0obz3@rv%Zm_0Sp7;QL2S%0-YT}}BYtHXiI+o)}jP3v(xx^JJ8;|Iuoz`MGbf1q9r8u9r? zjzm!vp4o$3dJ`21GTQ%or>QwS*R4y$4bI07^oGdG|MY8Yzgo^6^r-Njd2;zv@C{$9 z%Q`dOX-}h)&T-`hD{)wTFB7pr6u{O{SIIY;I^?NirVyM($?&FoJ@GXU8%k|F8&X@0 z^MYWq8(KvuF@6vmfWyjw?Cyy{&~E&BKiDkeRQ>EZHG1JeyvzMV8E8x%vbvdqII%2b zaOzl!X5%bk&>f^3E9X3po|?{VUwNIkn@Oz`K2AbodfrNy#|R4qdsjfkA#<`88s`f2Po_*);0aYx&+F z$v+UB28nThVwf?jAngfk+_IXU z^3*w~T(qsL5YqnTKWR{fU@KcOGMZjYDo zw+aIcc4NKB4KL8e&3fxUtMdW7z0|tSNilMca3y%7*{lsdbKPWffPScKD8L;o4OwcL zSS|e!L1X;=(v3*>zX{Wsi% zp{eo>?UPPTR>>io&Wj}_pf1vX16WkAS7G{>u->ptKZHn>F&3-L=l2`K6x0E$*|n!)vGYW#zeP$;A_9Ho-v?O|#Xej)%~4YT--h+pH^>K^0_PA1UsO^73f^Zha-&tn zKo;hh6Ec@f&_5OJSPkkxWKi-&(n+0bQ^xDy;E_(r-zI^d7Px>1A`POnoHh%C0Jgul zV33C!DLOOOSAH96W?;wrQybK2=T!`kR|pT>^c4*tL#r?;#5GP}$Bkv~c@Ln)=%)(r zU>!(^Qx*RY7?GJ6a<^MlDvpM+e03td>AxkmWo)XO1?KUCl`8}qs?IB~su+Gf48&09 zWq}h1d&Pl~Qum!vEQHvBlimCk_=~py_f5j!G_YPT2+j_;PAhjDFY8e}J-uu?ZVdR{ z4x=Qb-Ll)~st@#A?Y0Bw7WVDOV+zSm%vjs~IK7tCVDj|>)XL8%l`no#@#98jUcL!f z1*zkjtSPY{qXg*GnMHt8Ha|sP()++cA`~f{bPEVEqqARzFlE2`o94bbY9{(EB%$nOLr3$uq<&++ zCB=P0tiijv!-gFk4%QPCDi*@Z2WZt6MYU7xP$x%2dcD6GKG0C0fO8ln7|?;1yx!>B z@y^j-UHq8XfIAXfCg+<55SyGUl;E$P%?iN60IED2w%B!zoVHmCC_W@a^3e*uIc5XK z(;jCcasq++hJF~(F6T8}P!2`ccAnl(x_tsCQedO}$QVaO>UX@A0It&J4rAADL15$i zk0@<) zfUup(#(Ah=jt0ozR0+R$ZeV2caI<+M2 zr+mIOA0(c02%8{I))qrU8;m@DeTATs`X2KiDlg~=99M<0lt;$ec1+XZwDc$sqvf5D z3Pa{_>#>5le8gb}2-xMXzNww1yb3qC!cT-5xlxH+q|gxPaV&?fLF1@d zL%gbDMFKNx7lOqfAS4_)s`nMxm;E2?I2XB=lV)f7#UHPC#67RxryA zwDW8LsOM%s;IPyJ6WoKqAR)W(LxYcZp+jmV9)Wk&z(Bhqc5v(I(zbdFu75kz_49dD zU)b{1+4rbm93D3#y(#BbtU^WcZk_p$Fi~<~f6q18fl!to$jokpJOMS zacbPuTAcb16$jW5AUzdhqhAO2GyRzp97I7lw>UK&>`YT#9?t#Hu)yosy;cB+Z8pP#}@H%UG-V8T~S!2>z=EwSn|h%1^>}n zmI7fwwany=9O##F6n3~pBq9LPBgoDMDq_WWg4deO8*lLun)4#beH10NSF4l94cGWg zzqk}q1&8P0G-hP0NM#!4E|B2$=Roa;mJeHHo1;PvThFTAXCb4L{RPUZ}z%Uo0#VX`C(Mx1BMx|jkqgbR76N(0Q7z(z$DVP_e_lcRjn0u;oWu$%dldW!Fd@O_{LLt(Pkn}j$@+ZsvkcD z7(QOebYMg;3n%)qQ&oirVV7Gb?9P-rdIM+oQo2edHu-hV} zD{pZ{HE^9QL=t-xtF1l_%G#>(0_U$-N#fRr7GTg|u@m}%w3$);vGi>OIuCdY!<4d@ zIxTerkAvFl=^GH=zd}(ej3+l&pgCz+r0w%E*XyHsqm_TIgP%v}$aVFSk0czlvzoJ& zvv#ts=^w3A@^9%vhGI;pwCNk67(*6`k=`}q|1|D+PNFHUl>SVo^h&FpfRVGm>g+z` z{cW^}eH*`KKn=W-yA|vS;CXIj!2yUsgFi0sfgv*KYCBPdCAGf2l8lx2$Vq7FtcGWn z!qn&Ud2OFqeW1~)aEjk}*3dghPo&D`DWaWx)=BhPR61O_0VHj}?SYzlZ4!C4dD zN-Fdx;+QS9AZqIk_Sz0v5myw1X(oC0T((jjN%^q%SHfSdXeZx8AI>cjA{0A>_f0V0 zb(ejRM#bYD9X7~&T}edKKYAwL4%K;cYN7pwm{y<}W63g3AYdk>9O276HF#ytF`Fh| zH>$_cc0oZQeyIrZbu#AKZOblsx@js>7TN`WZQI_J+|9D=(z*Yye9tz-EtG}v({Rs_iv|Y3EG7+0J_Q|5UCZZsA(Y# z98LJ%e>-*MX#TGL@`jNSFLgdKFC4J(`Aafwu27A?@a`9=<0T3|< zyjM);TAC{Q13-=^2=kzQ=t#+kFbG@;ILV~UWfSlIC%9ghiDO|GhB0kp!P8oSncXPe z-R3STUfmi)M%HeNW(@Yr!^CnxAS_!UgaUg^lq3Y{Z^u<{>t7W0E*b-d0_ZO&> z2{?`{cZ^K)%82r=9$yks)w7}9;DLllGO=XBmoNT}hu-XGakw}jN9Orm5Jqoc^AN5- zQc7lB#LGP9J%32z_Sdr(pHuMtB6{|H7PLc5JIrm?Vv;gd>&!Y&jidw{35QNTG}tKm z86L;@%K-gf)VWaEQxjMJy)X*$rGNbkQ8oqI$M%%OMSw>9f)HLfYyKu3(w1jm`>{wR zcLGN^yA8t7ZB?ty2f2KhtY%+C6;T+xE$%y&UEf;F47$9krfLW=x6-cr%3Fq-7r8pU zXq4P2VmtyDBV%F7a=MtR$x`R&-<1=x`$599ar_c}muUxsj*JuKTb2dY*wvGzob#G# z_ohLd+_Pf3s&}k1Ez!RnL(geon3eN}yv-r;6ElhItKDfHyW{p2ZUO@RP4FC-h{BAL zOyPb_s&P#n`(cqgVt>J8-mrWAz1h4zwYG6*H6qtb+}?u`59(jTDQveNKq+UK8b1c6 z=mW(&aV<;_Ihc#N%T!xm^>cgt0M(9e;mLZQi3+D^lhy%a7aYC)=x;F;c^Duc$pgV{4QMjK#WzZ6@Lv9kU|K zA-ODr1zV!%#_PRBA1D9<@r8y0?VflcQ~_`#Y(5S=wqwobf5OB7Vs-ZsKkfY>4VlMd z-2-IzpEbFI3X=`^Ws&c)Uixx%qT=N$C@b}5)VYsiW(`ug&h|4Xn&!`!O!Q|jsQ{u+ z4Yur@aE0-8{S4`6@Qp;s9E`0!l*NS4Xf=pJ-y_MsLM5vk0h-V(;B+Po6iCN%5eSA~ zBf!fRe0;(V;Q-~0r_0B-W6{|Vlzf5dS&i>M4@r-yzZq11#At7VlT2Y`CQk{p9mooZ z&V3MD5DrRv%pMy7!DHg5NgnC1Lc#ntm~gk?I|S3B2};37(&n*%$P^O63=dF39(Fy<=;^fnP;sZXqWRTNZ`dMR`RiUZ^WM!oTk!*808g&l5VfsOfS zb2QdVJn+_-5Uwk~o>U{_X9F+-V6$H8k)o9)81Q#j35CI;q_U}e6*MT}1J92eTBrZU zNV^wDoo1VeYX$FCiyHmW)gkU!UG`T~`1KFzHo7GR3n3*xTg)We>fPZE=#_o4b~h-^ zuTj^_uDvjnwy|fVF5njhlfd7y1d^X1OTnHW_xCO!sudtestAUsvp$bs05&c=8leZF zoI$Ck69!j;UPpP@tQ#L**7s-gx|+{y*>YWC7+TTcx8get$Y7TDe4z%bj=)yYb+kcL zUkS-cQLhM)+QrMOV`&K3+`2Ft^vF0bQ9W|=p?#6kt`Q$ghNLv{{cWcatoP>YMQQ}0 z8wE-r(ez$|E{VZzuPchl{OoiOR7llaj=jcXz zBh^nT8CSqDDX{>&WU zamR2yM=T?F=@pCohJ(k7J+r3sP4jwBXEmR*J-#4?1SuV8?=iMVgVo&bS9n7k;-pQ4 zGFIBK5z1l%9tVI7VP~AZjrW4~XdElemzV{WQ1H<)z>x@u}f)YtTY^Mfmlx zIt4QbbiZ6;&Zqf^W&+I%A3TZuEIM3*>}}{|tIU2K%|`rpPmTg)!AaHPKS7zdrup;* z)+bcExL4aKG7{}?MxC}7k)l<9Vt#`^X4Up%(#({bF-_3>37;680qM-Vk|NlaS%)&Gm}J+``+lVRbC70WQ0cI-f;?8*=%q?^DfN9@#m%8Y^Y0l|nJ5jL9UV zJjkkaNrsJ0m@igJwM0%^zSw+E{*}T|ReE^jb~&)&b6wPOW9piqEkbo7{fe9B;!mFt zU?cPOe^kP7C^Z*!fF5`g`EvJz2eag&T-A2W`M1lk8GU9c)d`9)w++h2{fhHkFpQ&T zO&eGU=T>*{@)w;AVIJ%A`!!LB_l@EV#T^8JEkAZ{omV;lciEM)3+Vg)`JzzuCd8^* z3v(+kPFg)Un+&bpDbh5EzazUT=Qw{gyjflr7S*(+-W$)umCErr&iq8ZsS_)?5iy_@ zwB@{X=9u2 zcG?y&${91&*&DiW1<-Dv_UezkLq4gW1^yL2z@5p}R8r6_f=uCtszOX2A?W^fDdO52 zL*Kgw{jg9uU*<+WNqd18K@ilntws@pBwz!TACsYgZMb<{w}A)T8G`OS?M}YLI0B4! z6>$KF=FB8d7#krd0rOcE_Hn~G2d};N=PTukxT+@drVyQoec!t_{5#~iYu1Q&oJqg* z*2`UX8H^}h@dy;-P+(_TQ0mxv3vVPMxKM9^OTc;gHA7fJL2)Lnk%bU4gO^j58Uew& z?zsRDe|CjY=PkR_0Y`#2(_Jz^Fr|UfbcB_@M*B}`1Re=5-I;LSZ8ygSPcu8SOnZI5 zBPAruToFRmZ!7G3P*X9etbm%WwYCN$n8%DWcz1U{kv}ar9%jG}=Vgn9-k@YZ%wsyq zj+Pu1!z>i4T7#pE27W#iha>%%{ltOP)r~N>D!>)qNTlq;fofhHD`NL}4;gZNps<-Z zb2%i0pA*=1tCOv#q&EKRN=Kx3i#2~2Vz5YxcCAu?iKL29wP_U#)VoP82v2#w$61d* zNFD%`#Wh2dd%;%1qp(!XmS-1JB+1WRAi3aH|Cv4kV)m#d4c3$X8R~yoV9+26v=RsS z%tP=X9CW0BiN4pfZzD>-MX>&nK+2AFqnOOH-ZWsM(j-KP0Ip0TJmqTF9(H!SA2N`~ ze+Ves%VRH4n_#*!QtzEefc?9wu!Bhe`zP5Y{{!gmQ93)G6QcwBN3+^9pYV;VY5&hf zRMkYGSv-kE$>LpmR=9}6{Kh#oY_=fxCn`|3<;+b{Es-$_KU z=euRl0DcrMh*HAsO&t^i=+7qE1}Q?>pT*EI5F9*AHM4p+UvDkf3W>2PT@xGrtP_E& zXsI2%?Dr#5!V{~sjfhAz-XMtl%PPfi4``OX31dq?%let}z^t=FtuqCyXY@Dwg9C~y ziMBMGyGk2Pie}JwM{hX_jS=yNEr8aRv1GTo)dh9~*S*qabZ&yeEsF))X{ zoHRbAM86Ixls*E9t0o~k1Ls?yHDaXelP9Q{b&3a^%6VOP;_7g}mdUfy?+`e}=mris z6JlyHR9LnT9o6ER>y1qkg1v#2)E9I>|9m6NaOO5zxt>`c_2{xF{2?5hB{@L?QqtrE zMM?4lQSEr)nNI8~6)2}c^W(zR4{;K6i@9D;h^hg-5%a-2CX|N)b2FE+NOlXQE&jWF zhmPTcrMfJ|bKu!Plk%srw=Ak2de@>s-&CUi3IP>9*J{FqEz;xIcTRQT6XKQM8)fRvBwG9j~T7-#T z$beO>JY{-K`{11JKhS6W1+1!Eg6{u()hP>nI_*{=L!Z(AxjXLc>onYa9zjtbFmr~w zPh7mNBPsfQP!q=LpJ;{Vp!HVTge$2o>KN{Q+Dd{Nlc7VaQ&(z0O`SGK$LxrSPU%my zLtiaz^hy`iK*Lr@#CX=0#c$Pz_<+Asvo2d>NduW_ozDviS&0QDxrbz+L*@55W=!X+ zqD2hGJRnyKdNC{SC=WDB@IRhc7%fhezE~VEY97gGa!-)9wXtk24rktC?AI?~ExJIU{msqrz|jtLG>Dw3iYdQmorg@$I(Y;x zHAzW(wQx;AhAy_WUjJm%I(GTqEG0)HJ6ysxqNDprgg@{{{Sip#=4MUZKFm=Adi4T| zYw3W^HK%D^UcmT@wr(eM4+vS*bqpiJ+i(7*~>C(oe! z+#kpKC&o_10~x=hlTJPdRQbl35zj;f_11Za>yF zAF#I8IeYO0EdJ(6Wyl&smtI@w^Jn`4zrM~jU;RirmLzy>%#5CDqj&(_NhwaGHC;dbH0*(~8N;K-Er;5k4BxxS#5mD z(1+$(+MdqYVbkw9R@pX+_)e6MmRnjDz8v8S3D=;(h!_H1x_kK&jHJB3l!_v_?>h>f z(5qYi(0l1uJF5}6Nt<(G=5^A1xzbUVIo=-N?EhJq-U4f2U#o^!eYX z3#-V@p3J6!%ZVz1-NLF~gERNQRW$jZpo!+ygX+Lc@B0O6-#;9EGK-u;ZA*oL>&M76 z`#jWi4GZMf_y_Gw+pDj&yyRQPmD zOcW$G>YF&6!TLX!S5HY)r)mct9R>Q)aRW7hEMFzp!J#2u!z-JN{$@TRZ8v{v#@u~+ zhv(+`a-Sf;-BjV2FABCJ(~qilSNH0E?E@L*4f6+Yf5Hg#gcMr;e(WQpr8926mm5yB zP_^Vw5}Go3y$ zH{r-XD*xGUodvBXyww>!cD;F08X^P&AM7?w8NVq3D=~2NU?dVDLIJMM9BriQf6^kE zL-7sem7YdRKXUA*#T|@x{c%N%L~f7$@f|nt!7S5Dw`osD4So^oU_Y^>$J@S@1mV;7 z_C(EuNu`}du_d7ReNhZd?kM!}y5~QeA|v5#f*lA}TEh31NlGwHuzJU3f-R>Z8`#OZltSMs;{s4)_EnkIfIyc}P1 zF$Nm8>?rs@YOCQg;*IOK>K|6f;Xk%_0nIxk(zD>9s+fd=KYT9{o+3lHpwIk2Mh|99 zwcUH6NS`PDNeK@a%gKWSWf+8JR=O_RE@DeQK*{ZzDtXGuV!$r@uye3AZtzQjF6eg9 zu*+i)%3h~OPyHftz)daxp-$Gq#BdMRHHX8_YAo%UXK6*^vs%mS!&+<|hSKGbSSk4N zG>jyOnH#YFms+S>l11VswGF%MjWfDP3cx#d8mOIFStsaw}^nvHo`FAGao%d+M- z<(keZPopY~MBfK%&cv4t8nz%%{42<5Yt|5kW2Ozv!8$C>^=n3HFiPucb_lQnbM7if z0qDfqb6zB}pA+HL;7e#~umuNiSg3TXod%U3H6`i)1n`Zej=t6#29^;ukZo6g%+0#C-C zQ;BlIAA#@8Vlg8{=`0k9Q#038uR62mu|_qH#iV^6u`bMpp%}j_2Pz#(K3o_wGNsEq zL*=qfCKbp^`!D<$uNwvdQQWfpcr$AP6Ye_R&`O%qTB4oWd3_8Rvk2C-!&Q_9VTjhC zC18^zFPO?D3)eycg@1i{!;C9oe_c8=J8_l{Q#VDzq#8|by(2|;3{OH;YzFd7s*B4C zsZUmd=*m651J%@vM33};fc0;5b0Opz-gPr;Hr|9SkwtSX@TbkJdX_V63k4f3E4 zAx(ff*i3@bxEnSeBT{ykX7^F+Eocob+Zm2$z|DaPWz-3Ksu{J!K%Vtc;K?7vJCOX4 z*XKg|M7=LuOywss*!#{W50~-Jo=lYH*=uLaaM(qGle+eDwZy(&IvYD16EG}GzTm!H z1dhh4=>wFT9#*R*!I8#A$Z@VpaSB~Xj+uQTC0miIKlch&m$Eo?jj-f)?4-YU$$4*J z?jK%(8;|tZCrJefzr#>XPn)M_7#6tTvP|)9%xm4JD7&~BYf!_EY2o#?1{cGVt$U9} z;HiXkF2`9<(#hVc{dmE~wMUPaUpHYZ^BDrL(?`8Y{7_W0WGI<+uA^glB^ZqH*L}@7 zQ?W35ySaQN$crS(L(q4#ST4K!)88U1C-Gm^c|LiEf&&N5ksaWgqd;x7J4D3rrpmhgz=dJ<)DYAD~w?o76Yf}&=D`4vZ{-VG0 z1MF0X?+NY3Ce zEKg6Avwla_`bS_S6KmW;VO|C)8Zi`^^PUYXSd^`4tW3b6eC~g3k+EJk4>`~X)CdZF?JIMuq{D7>&8?HBnWW>h8NI15UeBr={B5o2=eJA7rI(Yjn zRA$VAE}>+DN#CQ`v-bUR5#Vlteyn?ZR`!jzRPC?A%&l&jF#rKRfpi0 zXnzkgenAT44h#O6T_og=sf%jAik}=;n948FlQG5?mwErwN+UDV$3n>X_)}`N|MLPg zyO?s_gdl|cEFcU;?r!ug9kPb7+}pPaAs8(An<_zt}HpRThI zS{%v4JUEi%trO@Xa`@sImr4ZKESsn*DA`3@leroVxvn_RJky%xbWzD?Pc~eTZ>YrD z#Z72{y-?4Y{7ghaY1-pOWuE=Y+pTe-lk5y=Nf2gH6Y($+K_I)lR5j}$V=JN1X6mCAbNi!OlU6%ZfA+MqunQ{1WHUx*z_(Jpekd zNuuzCDAg5B1(a;zsq)qq-36tw87O@7{j?f&8oK#NwXwR^NiLV{Ly^UI;J-bcSuy5o z(xZ{iAHGEDVu1Era(FBoD4r|Wy*9eA5ETI4-4(#!dvpU^nNf5-d8GNYIihWY!^p9~ z2k%nOD_GM@{rPh52EI4i!HMJcDOtq_!=H8JohY}POS@!(gjSqDe0P-NjLWFn(5LX- zPi=Opp|%#14W?mytF;7wTd{-u`Dund zCxWutP3PDCo9Yl|d#XwF3me4_7lh)k7>L#Fz2KgEL6HB3V(U->HD-T$b-~B~2l)ix zB+Qec+0dIL=OG5AVoQ zLDom2unp|Q#hD!M^Wnx``yxKU*7Xa0Rf)|7R%}rc_1>h71s}RZHM9gR)KzDoOHy@&N^>nCLvmu|U~DAWIAnJX?2#lDmluzpi8 zJ30rq-Oy_^m|?)g6Ov)Hzy*=@JUFD{9Jf$83XF5yKn!VzWqC*O@=emFR}mtg)JFez z_Z}GRpU@VjgUUGs1Ddcot{r4A~Bteivd_O+iAt)$`yoH+}>j z8n5oRAG=K=maQuO447J!t6NvLgV|Y9*V;kFj6SOe7S8=V>9)D^#;8%3r6xSuA-iH- znvek|LU8ioE)@PLcai@Fy{DXtSt5c?(>RZQIyEdyx2dw96irR?B9Ki5$PqgSXQvT9 zrnrf|ash)peLc9LysIKSn)nkiB!e$@=I{mLs~*_B8s)x=xOwC`8u0{5a3XonjoVoaPl(g6}!j%!H|zk z>|8X{q7H$BqwCAn(?_v|x(<1Ai|NvmS1!Ghb;MU90q=djzufaNC@ce|G`IqLun#yE zT~QjY^#7Rp>aeDx@BeKuM(5}n>FAP1*pLS44ke`#qyz=W2nh*cgi@0Z>F$&cMY<%V z1d$d&fAjNwzMt=p`|!t}J$t|JJ@?$#$$Jh^pN!|r&s{lqD<8h=V$5je^~ufn!OBu@ zXUi9&bgQf9o%M4af8BrQdGHbTN}<3S6vaUOhp5^B1tYE3_!7pf4|<9#?@VNuE92U? zaCCH4%MttlYWS)mMnd}H)iW<$*Tt7W?+OC8d-cjZtJ^V$PkUY)CX=G-1+?4zaGtH} zPOHGcpfP4I<@;b5@y%UtgDI~Nez1mkJX}$3-=WQez9Bby``&%VzBBJk9PiCwU{;g&VDd7FX`gO zod(mu-{B<4$Op*iaJb9_0pgcKc^Ji`GPDtzKx41rJPp9!UTP{_jl)rjKkhFmD7^x; zI@Yj$Ln9OfYu4v?^aG>EJg0NBY<+fxab-*%y?VFhf@=k5-#o5LL-EhH*Mk$dlp-kE zB$Qkq`X6$sRdF*;P4?o_OOq2leV!*6R~}!zG74C19;}qTB)xn!$v9gs8kGld4Z}+? z7Cv@CXnr9VHswo|ZV0-*AR|K^m08>31GYU@N2x+N5h^sW!O)h^FAK0In6TXSD@2x!TupDPMV%2!zGwpDqa!?ew019e(OJC z*?EBrUXa7Rw^(p?DO44Rxh_+Yscm z)K5-+8V`ll%b3duR!uguFMqZEZ4fqDElq$pTvszf6Qk5J^BBR zZ-AX!zlL6HhsWKPe*XgrJoI@PGWq9kZpSIAuB@5qing&vTRoOA4a@niAI^)^H@2U) z6;&gBq;LE>n&6WQemo~}tT~8@rY-vL{`5RGnU-KKn2KBZyM2D#S!Z?X59ueD3KN;q z5<6p_KRQdVj4d?^h&riB`i{WY&0&b(Q7 zb2>yK;5_trVyw%p78};KwO}~s8!HocJo!*mvF_)6t93-;hYvpirGJcob(&z9&~9XP zpYQT<{<|*G@RAgdw@(3%=Q1ZY^Mr`jCNCO%C&>55mk)H~C(Qs;qt2HZDFjGXZIX`i z&}qKU$6N){kB^9-2-p021cgm^_)GlgjKEd+AV$G8MDO`Gqd4b~tPMRC(jIY%%ah!o zPqM8cC~86_IhpO8R0V>f{V?bFQ z9sXo9n(0nbh10~foxF8UP_t+L&7_~7@g zQu}T?{D5)oW8F{I@Xz<&_M+Lc4e#EvU#nQWIH5(AJWIuRBuVX{xOfCcYBwOEGPh%X z9otRr6Tl?e!7E`MP|^p-_l2T1cARALt`@ev;36jX>zBzx;YCBfnC8&Uu9a*9;L@cf z^!X0k^sIc1wm?-0-yQpb%V6SdWuLQ;WF(#AW!jRs%U*l4)n#>%CgGn)2W?N_n}p@m zc0er<01VE)>%m}c)fN^ZaxbMYw${EBBMa71CcnLOO)YUwn}=vL0%WfiI-*X5gk8s5 zjzo?B&~(4lqyv;f2^)rU;{|lSD+}5iCZF)2v6GZyh?4sl9t{%F-SB2XWa+O(2Z|?O zzp1Xe{%*L?T_{eyvk`i-US1TCF8z2l7SlU7iiwgT*Ovn*6QemJ0dcQtkFUbmXbQZe zHt1hqt27B_NJzO6if__({K*_Z^u z%0~6-{ZZv`;>iSl^!JB7J2<9dytzS8Hdx*5CQeH*oK3#+W7a*gFkEB(+&TT*=l3^U zCf9g})W=^yMbUPO+4ScxGwPPhmD`lmfy(?P^nbPUz`J_AAWU~WrT^sH64W66y=mvR z)K1G8<_e8iiWFi5=IMiBO(qI3t^ZtxjaFIkW)!=LQr$Y2@66+nO7m$9PyADkYoBph zKrJ={pc)S_F3!q-h2_T6Pv$5oz{bqA)PGtk4tf)aD5w6BB*n98=b5=3-=N;$_2l|T z;A)(k>2XSb56 zWrVT6PY#QmFXk= zzJh0b;F?Qq0{~zA6|q@;1%DT~+6mAFg=OP{>(WAZ7A>_1A)es)_7F0cVI_Yg^6irWbqZL@2mfy4&kg z25ecmR~!*LjAkPNR9`-E%lZw71|j z1vru*m;JmTh?+5fPG$?6huiVN&TpISpQqNm%nC`nF^_a)cnZJ_IZ>Aw0T6a53crGv zb7`v$_v9h_>1{GExnY3as7o^^Kbew)(Rwykz{fhNdcgFwr3lax_f$T1QK>bb2Czm0u zvu$?BY;ZI>SFU+jxKKL?qPa2oZzY{CaK@9HvQ9jEsK)aji}89+G>U@(@y6z;EuZ~vjlwY&fMmUiJzF9f;8z$s z;|Clu>N+(58|GnWP66d2DFV1Myb3AV7*oZi`Y&zvIH@+C@Vz+~j?f?oNMVTp?;@Rn zS|f%;h3q7=Y0tUHT#u#JHU$yybu?E^KmZksm+-4n9OF?a^~r4ot;*5kvyL*^0VyHq z>7UAP|IQ$j@UZ6Jb=0>G(8xu=S zHl+F`zL>KSe1OfPAE3SvGJyl_$}j(TTA2j#TnqUrYt5*OlG`4ItKFDGH0dPZ9%%af z<-4Y---MogdM(X)_#CvPvVf6o;+P^&Mid%FarOzQf7ds4+VY307~<2Q=o$oN`9DwW zAw-;H`Wai;k)t-=ez$HsnfXTiV<57;JyH7mP&9kE;x91A$YS`QP7{ZevY&9Zb!7^C zkq&UTcMHTt-ZaG;>65J;o@n1nZE**TuxshGJ;puAg1{6|U?hb!+7$U-Q>@Jw@7(D- zH3B&p?Kt@QXj^E>^zG+PevP+ij9hvAUz96xvkFst9B^br@ihR3ND3#STK~v@99ir8d1UFU z=c$)v^N3YjzU9)3d6=UEZStrb0M{HZrttwO0@(uz-p4_XthVJL1FF|M#A$|uZ2li{ zQD8)EGNC-%&_7;abrz5>ckkGH!KZ=K+NLR_ ze)0M987ZE#DWjc}U_c&uabVMVz*AWi|u1EeIBZsBdwwXUG0jZ_O9A&*)US z%K^}s0FlTaK`5qi6Z~?-jPfJ?NQaIP_rvAtI;yXXG?p>_VAqx^#5D+bGa4sHt~w{O zq80^3AVZ42eD(Lob-D{q?SIrojJiQnw0Fb_isB|X=~QWn0m4bI-UuN@r3@~w-@ghx zQ_%Ck@Y+NA1LJpsdNJf*Td2Y1Hb)ZgOe`WIaj{qc*3xx-(+e5OXR-_F|d*<-)E zqzr}?Pap`=^&JZ;MihMab4T{(UkY#GY6UBBPb&!k8g&qdW_Jb>OPNWTr2q=TVOC}t zL^#e|(6R6ut>mvdd1&6sM|*JU*|H%hqI#KEi-W5N9SY5+93HGVL|;0mRXz9*qT_T0 zeW*n0vK$!j;Mw1$59E)XBb^e%w1V`)8tP@T!SI}hZVj>qqCCC1!s%goYT2UA z>Z^mmXHP@_K6U>R@E_tJsM5IgOPCTXd2J}42qv0M8WM*yv=v7 z6fA%}ZJNNOiB@>-N##CK;~zv21ktne+6WKFyrwVY^yiV2|5~8`)UBmL85489o_^Ny@ZU!{FVFD=wlf^4EH zw`mA{KA7aao+nyt>3-V8mhZv{fRi4F{lT4O`=Vs4J2+d^<`E3&42*RaN&-M3__!}Z zYs=jOgE&z^+ZX&#h8u~0jE>W;ZdA~&{?p0G&i4*JkuW|jwcU_GYBaEYxow2zk30y_ zIC#9;H`tbq6;ge>yYbhcAFyYu!4@riuw#r9EN5A-R%8KKnKkvZ6`=mSL`h{L4vMDM z`|K}fr#F`HjbaFa)153t5CzPnH(huPKSIH`*#uJTTlav~Zk(fd{Db(|fUG|Wuy%xx*r#$6^M*dkjkW!JrE&U# z{g^i3Q{6HIg4jA_(gJ?P1tM$T6^k}#+OIUU{jP!(j_F}$L7JplG#_PW$%NbakUIPL z(n;yhFKE?|8Yvz5C*RPM+>Hr&?(rLox#wdgYHnr`F64dXc?Z)bH<&ul&swB7&O|#y ze*VkLsYqDUX3_v%R;vFv$CckGeMZkaEl$nI*z{!a3ciQu#X<|=Z8_N-isQQD#Hgug zcWxyzIi}}#yZS6govEGie+DA8zmbJ_?0hM#`yVz4`2Nq>^TzPbDHqvBK+=c z8(|d%VxM@{LPugDh3qLNw>+cPle_UoCPDp#)M=tyXA;~P%U z@6b-`f|AJ5GN!Op>TmF1e?~br4X;GJCvw}v{#?I+GOStfZCXlnvoC<8mk!;0l9Dbl zDCE`(?)83CI5^fm*Bil^(*AZOro%iVDc>ls73qWE!OH_FCz2EBB-t^g=nlWD`m855 zxSv!h4-^(*4!VwHZy`(AR*#}tc@dHNv(QTE=`9YXg4$~Ua2>)8{!VU$KApbnH*P-4 zf^aHU@3$PB&#ObR;b?-R;7=>$j<*gK}*VsG0Hux-=86Z0gN%>H_VzJM3+uYH-x%QgF?dpvawBQGS`U)>S z{&-LpzHmMmJIhHxXu{tAj+$5FDyCdh>#GT_g_Y|RvV_=6r*u=R`mP|CRUG9UYnhvP zjA%i)dKZH3Dq%dI7;cM&$~%{Y3JR13-?p~AuC{fJtc^K+j}kT$7BT6PsU-tZmP#3b zf8i^&cFF@bmT!ATtAX$m5c!uvj62~J-^Xepq+7Frp4^~)RMpl5#5zR})*nW9^ha3= ztG1G0JxXn&m#o+nmL-aFRM}-%HSE!-%N}fvn=DQ@^SN772BtH95?6nmY?YD5e)Q}H zVU2TIrBvm1Znomoz*CF_NS_isMwGPO`O_C8KbPEVuw^Zvmh@*1SQuiRLZmWtT4>g0 zU=?ocpo2&25VF*|>u2(`n~RXr2Nfr_tm4(_f=APc?S4Z9d8VWFa3-pvP_?p;;%b++ z@FB6*Wd_p4y3p#55!+1!ks?2%x6`l>trYZ%>giJ)JImnn=%>J=4IG61p6@ehSbA1MrN|66K=1CWv)ofkofJ2)hq zRs+|Oz1b8c9BxhKt*pG(Wol|b+=Wd8+f>|XqLujZ$W39)&7O~rZfz*L5P&v}lmmwT zZ!W-eYtK?^n(?_eCaW>zBcw4T&yg*1Mx9J@KgZE3dV0#`^>KdqWAb*K(A$3Vtp*rf z{-Q-Iz1*W_)m4Ym(QrbumZ0#ubeB@S#RUeURdcI79I}+D}cHX-yp(FcvsUvt8W_lgnp(C`FQ*Zs^e8l8cRiw!`1>eQ0$q% zym6{?-8eDI1LKvEhAr82?bS(38&zBzwR7z?a z(>N5|jaOQi(vp1@nx5aSm`5k*8Z4X%ljA(y=8pw8`Q3v&8tK?=9(gP#fNWK7y^8qV+$?P>!HskMqMLu-MXqSH0A#cCwi6-^zb%XHy&ql`Qak56Zz-~@ zwBi#iPZGjLfK{&8wi6b1LRj~l?2x)ey&L`udP~UngZR|Yl3z8rT~oVA{pRC1GC8oH z@196PD#x(h|9gHYO<+_sywO(@_s;em!(JWO6!Zz7i|z2*;EFyCSU ze7>|W=fT-tPZ!ZM%U3j&qmg(BWOvwsaxKyRcB>~E|5-7um+}Xs93UU<=efl%V!LF{ zvqHAkl$galLNMYT5)XXsfrM<)^k1vkxYKldZay@uNNw&`hj29#n>MYsn6lHtB0R;! zdQ0vCgvWdYl^zo&45GIM5m|Sh9*e61wD^>ZmUzCxG|IPV#mSg)FPR&bufvlP7BlJy zE)f&qTtc{R&SxB?3Op&3BaVUx8JxfJ=^zi4^&B)A5Lq6&%|}HtQS1aW?}`b?l}Y>O z?$BHnT)SuJ2;YjCmq!Kym*`?h-{u$ws@peG(UuW37Q~lS7GkQt2DF?nf)d%g_2YX) z&Pr?n`GT_)q`hXYVkAq7*2~ogXsOfar=YdA9fLAj;*x=;m1urB=G#Z@BS!^w` zk99t^C$*=lwNNU0s4uEA9NW5bgE06cRjSBy==*X=Ik(A)=}z$jVcbfhz9eXt8q6(O zzUT$8(?&ZYvbdkswIx85q&5pS9H;aJE+y2o(-hb$Y2z#ftX32eH43Y^Q=nYXv$;ROTm%>N7Yr$&y@t zY6C;PbN6U4)yZ(AOv>|rq6>_-_K!J-ZySK1>|SX;qkHf@XMyO^QNlNdAEjz^tm7=R zyxL3F)Q3I+DR*3{+h0?mbhLVTPvIVfhUjRzS#hOmgQ?|bw3!*05>NqOq!->Jm{_Ku zq{WTYQ(X|L!AV`qOfP_|{DL8}4@IvgvB!x-4iHxfVW zt-dZ%HcE_F_y+DYf^vc&r1Y5oI%xvjbSN=Q<&zgT7B6`s`rK3;(O)FSnp9;E&P zC`x%_Q^MjS`|-8NL&eRi$FF^GIo&jpZMsqbS;8qj!nu#d$?xN}U!wt5?n&gm@TBNo zNj2bm!H}+ytz}cqC{EqKDdqzNcMY{>E#Y@&HG2H!5m6Ik&j{Dglsa;9n0RJIfz+GR~JE4 zm5E=Z%Whx%$}-$9@=+mDz}Qbl(cNk^J8bcP`_L$y)f*crNHJe84;35XaIXDM}*0P$bDiG-(VmRl4M{M0(=R;fCqo(x6XOO@E)}31J zrXtnN_vlGoQOOb-k0ndoQQpp&b5?vtAFa5<|FUcpX$#r^b{1(wa5+OKUfUB>oMcjX z7CXl_kZgY*LmcWc;LJ5w(4Cl+i3i)~qn_B|#!#3bDTbfY!uqwIeRk0$M=ij2 zNzIM?`UyyNyz^4x7UD4r?@NTZS)%LTcqXq60`)WWIDBpX$z~`E+E~2bh^A0dV@?VT zX~E|p*15qaG}@FLS2u5R%tAp;bN$aFh-5HN=Pr5%VST6^ISqa399*gMFkJ>QF*!z= zs~SA_8M&u)Fm~z2MD2M1<_AvqEWv3nKCS)xj+JIhTItL+gdPLLCaOSXDCJ^zG&@5c zK$|X~OyO5EMV;_44_p;2WrrYz2pb>jFL*8odsYZOedO_h8VWT$EqI+NCa9Zf&Te%T zBe1FtdEtLMexy1js3dw1hoH}5r~J)<`qVIu!e$R>{eur$3_YLs|Gc|1Fn|Notwx;Q zL^(fXA*sx~aKPOUd?SN`lf62-_f2bB8%4s1+1Me(fY?&R`xpGui{cB%Ep`YuK85vyhrP=HjWiJPZqpzCps!g4*pn0IQ820$zY?3X&qD;ZD&sxW}FKF)6y`^pS?vBDjn*_ z#(YuAyka8n-tESFn!4||l=*z_G@DVY&zI3aj1cQ0-2?B0x&B$46|d9UA!<&!vNRGFMj!?@eQ zQ2A5mct$cvkvqd2A6UGNWylI>k2P`Gq}%8PIwvGIyElwq{WHfjNbnK<#9VFpkDH?Y zHZwA7CuzRrL-xXczui$A=`uIv zj99}{Il897F{b}h*7cRn? zXnxGPw-@A z0Pw9uhls_cqVK_X4Ps|!nYJL;^>d zs{su8&@WIhr>^_U`l4Ft8EkH6B+AlvFyf8=U}Xvqn>S@SOXlB7tT@~lv=TG-2{(P+ zbQw&zi=rQO_uvtN#S-tdT{_Cg0++h=%!Ng0 z{UT*&J)Iw-n_o4*R$!1WXl&XWD@IU+B7WZVwJM=IU2trcLxzZFM8j3n;^wh(wxW8iLN|p-gprW? z+gIysal}z2L6}z$hUdNtrH9a}SK2jfH?e8SURRiP3cIa|g^hU0tR>FQt|Uu7j9-(v zM<_7yDp_-R?fyk^Sl@rPtvUz(E%*ZfzDMbZ23avw`;(}WA?3Em4W=3$DDWcSh&qF7 zjKEM)rQpy{pIjfuqx?lR{}{5}f*x*E1RP7)H=@4-~CQK-n4AHUwHcNl_=tuTYn$GfsAEC-5UVA@WQ z@Hl>dO-p}Oa*Z5TNdrqd8+`n|>&RfL-()D&4+;RNtgNrUI3htYG2!na`Ux!vel1ys z-=LD%T*gSa(qRQ?yJah@&}h6U9rx}Fx&qitV<$JJ7{gMWh}qbj?g56$F;u$?k?x9} z$A4i~dTS$h{C>;P{paVt@X%R|C&Rk*nF` zPx?R)%g++^^@j>2bkZ}VJOa3sor)+Taf9hpAi6O;ac$3TnCLs3H&n4n+{?yJIgvtw3L@T0I&jNB4TeRtyRC4uhL$uWJ2h}d?9YvC1EPOJ2~8&maa}}9pnT`w z8ygblS@O!hCpuw83pK)(bBPpnD3wP{>d0@<1UwL8P|2S~_>0U|4@3gf{UobVz1;Bn z^a6K2)q~UJ9^y$kY@+ zb7%jj9N^>>Q{5GXkL6aT1XJx}A9Z+pgh!-qlht0fHIn54p&3OiXtL{LBU*u^(N#D6SW#Lnix*7A)8wyy4`IFW#$q}(g} z4#^?=5}(gq)l}gpn@h*uwU%$T|9CF~ z2r3u@6*Z@v3)rbCc`b=8_2!Uw{u3ooT-+rbb{;Wr8SWRGZRld>6z9{8HoUTaM#yDK zSfJZOIpe$^u#uoy`Rbi?*~-9~ESO!+0;ht?MT?GWV`ka3!hS^Y`cv>RmeU3w^{7KY zY8C>D_1Vl;?q(V4&oTzuzkrd0Coa<<{TM>Dsb82Ov=Nu6#iLQkz~|&9kDJOXA|%Vl zDx)b3%hd6Ei`Z#PY~@a94w#j6-xkX8MD*xNhc@yvMQuJ2AA;|Zu5@^}E)zKeS)}XU zx^kTE`hpER+f~N3LoyGKyp=$7Zb-aGK)~#O3I&4V#@RnRZz43p zh{E6MGET@F{yvIQO&FmKk!voud!0=}9cuqZ{JN|ZWl1spOk%0pYG%2y55-uSb*Pra zKIjwylr|T(n;negU6Q(m2d^w2ERrt&pE!=EO|8#0c*4A zS@x#ZJlP8rM{ogJG}+2uxawoSm@Og~1BWKC5UZo%VTNL{pnT>g5`)+6sAHYIPum z?Tfr~6ha#ivK)|NonR={7}8XlNJ1}Vs|Lg+^i9Zk2tgS=-I=h9=Ok{8w)XBkTFCqT zKanh=Z|2Gmn;SeeXmNp-5b-O4DhT%XPO%{3*vWn7Gn(f8xyOoTV>i_+Re{Qy;vKd8 zAihWsGlvXCLcshr3l74uMx`Q`Cb0i-+2qvje@9P)n~jjlgz`km~xRf*$qHqC8g4d?PtVZsYUjaRCpn zXmFmnC0>0#Jiz!U2-fjbs+`uUJb`^a7O(#4y-;!;{IFM|)>e&HWcualOo>9Dh7Nyq zDAIc?5A#1#yd<%}7#0oa+34|!n%rsv*jJiMf9`S&2o4umXnQ}&Z-mA)ZZQ0vAbGhD zh;Ds<|H_&IaXDcE(r3+5VP{~a_qZY=C3nBc`gQt6X@$iHKzv<*hsXSp{qF1##fK{} z({kE4gNZML8oP`;*RT_O9(#R6pA2_`Hysq`BJF*}uXiMLA^U`1h*J!|hejY-sLR0w z_Z>pJ1o|+ZYlp;|}aMnaa*zX6aDWQ%eAU z=ktW8?AX_kmc%tHC3S@eyLiza!0TZO$C93y94e*mLa<(|>}KT%k|S)Gv-F{%=dW#A zFZN#iw`Z+(LrNbwmwlctZt{ET+8DouFK(byzBcmljDUq%5&GhNxtWW3*QHt*5NVa*g!}7pNh`v&@84tto z>IT~luFZI^Ox_36b;{!=WnTAl&F4}M!n(LiFK&8?O{$jfFP+>_O$`RkPp6*MvZ#I! zB%O_&aJ~;UUN{R+h7=3?zNWGXuT=4@_+?oEy0f(p$+)r9tX&@n)tP1~jndX!p%5KT zvJ^YP#m5zY*kz8M0sMBBTVU%1nEx__!YA!WT*_6u$w#O@*k&C<=OiVDNv92h*D8cu@(#c6F#8;c++p z*x@+BMLVFkL!4mFcahx&H#jR4EYf&@nR&9LRd`}oF@suhIZHQ+HQ|8?tL#RMx~3Qn zJU)R_qFTr3*jrV*h|Q-_kET0J*|qh=#Vhs*B7#`*I*&42Y(Qd+Du5fGvCDicU3t|_-!@TQeO&T%5zVr?9W9BSvJ|(4YCy=Zb zTalenh$PbfTH;$?!QzPod717mlkDFyF>lm6Big2~S*^*IQHGRRp|1=e^+r}!qppT6 z#U%dk*}-MTego=IJ*IZU{V2c9wQ0sXN$~aPXQ+~IxlHMgg09{~dhNfj98qHVfkOkT z|DeIkpcOeXwo7$SqP*wdAuh>Y$SFQUB}!X7&QOPB8PEB%>?rM*(cK-fRtXQY+qCCj ze=U2M*-MpP2#xysjSqEfB+^v1{PZb1Tmb6S(|r!U$A5piuwhX&;=qicG=P@gcmEWR z=vwTZS#+(Cy}>UaZ`aA%Q2EJJC^-&r3I7AQo>j@hqFO{(KCkv{!%Xw`-x!TdCPu3L z;IGAm;(BW&^1XG57;iQGBINdGP2BP#>*4gw0N*fQJ`;7I!gAmt-8(vHO6e*I$ep9E5 zC#x3ie`nHPq$DMN{Dpp^16sc-Q?&z+uD-r+@yJ`=;4-efduq*r68+%O?Z6V^w6#94 zjH0Fb?ynm0Ux&r}tujr7pTb;cw(kU-C{#_Iw!2N9x_xRoK8*D;GNPY7+$m?vbgrr* z5EK>{izY>YLi+>l*0(ImYoTdH25!}IsylPFh{odGJB1#la{eb1;IXSn1BUxJ{2cyb zA5s+ibc-EoDC6lp*M4}_D>w;$Xp}j9Uvccu(}R;!l}q0T1fpWmye`ZqxbiJU!eR}h zhenj%BjCHGv&53KGGUs|rTO2CNnGA#=DVF~J`c(qBb(7X8FaR#4y7{s4< zEUuDTf2ygF7HlTML(KQOW5Kr|^H0U{m%+^CG+=>7ql^QF_sy7gq3Fk91!~oHeS~-O zNj?+I>^;DF8H0!R zKOJKvv*CU12ABQRG4z+Z5%8W#tkAsKFb`^P+2cc!7gegbI22YEC-G2egl>PPVRE?S zOB;5qqp{(2hTGp&!c+uF9582=bgSaezF%I3VQnlT${ z&M;|E`{o+NJ0CU)2rz5~+1v@G|Agm*XtS|xx^Z`fCc*a4Xudk28M}ImDoL1IWkwVT z$MiSX1xv8%P6c++E@M@+k@5r891%;x>I0QJMfkn?H_d7ZoTPbF@PpLxXRp14qtJ!3 z)Wsr5tmYG;JgW;lF24%5m|b9er2&yrzX4~_xoXpHkcnANZPfsX+m;YOD4qX1cbQiA zbh?&PDe)jE#!d|^Eq*n0obMY(3tc|zwV!|)Cv_X1DXvIoDV9DStkM>wPh;$I(CK^C z!_r%^WIQpus9XW*s_tba32GvMCzUJCPat_=_zd1CZHJ%}>f6&L2yt1nh4rTn_=+`O zJUwL&ToxS0+m*)KWy-sf3>z$IN#e3{ddxTji~U{J>DK)R{s&@@!Zj`>VDkVb3#rul zM}JNMNXtnSNtlzoO=Cf^1K2Wi`APJVJq0gc#KeqDTV#W{Xmg7UC;C>ZHh!jD2)C9p zlgyZPs1E)h+>aP&kt2=f*h!*B-5oUUDxC~py?YfrTKU^eZsOK|jL?;Fe; z-a~hpmwpN#P>++GI36d2b;(ACJv$J#6y$$JNWdyH_cCiY?>Y>5mi(Ov+8~ zJ?}d4R7z0guu*>fzaY=2-6+kpm)%F&Y>~~-IFpm)_p8b zS-G!Wx(9irY{b(FXFXlWER0q7Jmbnf#9ap|L+-vv3OSp(bH76BL^2E%xEy*-u|lyF z&%J+spj$9t$2BL|Z8S!&-f4NoVP?|!(Q9H-zN<6n^xI{z&fAkNk*=E)H9j&nXEg9? z?Qf}KI*_Q3GXGV8YTk>4cWdedY~DUG?rRbzZ;QSZ>;3q>$^Q510*yuo*q1=={Xq^y z%i<9;Q_6Vm7e%(tK5+}pwl|s6ZFt){>&5Cc5%$gAE1MVW4p#1GxIsbG1($vH_w&Tb z<3rXIfU@DrzJs=C=)@H+csl3Bogi3B+xI4nEp+#E*Kh96<=jd~nvj+9rJLgK?{z+Rvi+t~ z;54N7$rH#7Z-w7|wuo#N)Q;ib^i5!^E359T9-iR|Cr>yGo9zE94%po*&ixaVs~B)oS3?CEE zKFLb7FswZy(`~q_sxO$ z)np#+cK?IfAQKal&eezv@uwfN@c(b@^T0?+BO@bMbDkf)1z~3^tcsnCaDSn<=W`V8 zzmM9|IpPvXm9FMVSxJZK-a`{3Wr+-cl#PJ(D>f8s`+E)#w-V5MD5a1^?N%r5*X(>0 z*5+YS9`i{c*yT3&+J6USB7SUaY`c`_qV0iR>-vLCsaxl++l#hpHk9a^?QxH~b2mZk zv21tZ2oK#NppO9Nar;I{iT{dErA@ByTNFdYyXC;IA?n#d-`+O8lCn2@lY;v1Kon3v zyZJdN(stZS@>P`*-%S+K293 z35Z%NiJO+xP7`d&_grf9fB)@hRI~fP1NM`8zS(C}9Y=*9AE)?!GKBX3@J`~7g8ef7 zHS__2BZK+NEpv8KSUsb zeEeZp1YUs?A$t1R!Ji>|6(HiIr!Z+7T%!n3JkeWVo%Q<|OM8h)ODhU^5%5SC^nc?Q zSJ>fFQ`O;O!-0k)uvb_F!2at_0$DO%o{xgQEmDODF@J(rDdh2!??OTE#b_F=8Y*ei z!7|Pk)OYH9m#qD_?4o-dz7T{ zlMs@-IdC8$I(PfKh{vtLM_{3i?VT)doK8k_=i%lC3N&8RHveC)!%cB|c6Qd9}=zkbN$U( z?YMa@F(Ffb^T>+^!7-^z8g|~Vel33#~_@|<}T9l`}=s{-i^Y1n4|BtAz z4vX@Ox}6!i5g1T%kZur>W(E;S0qHK`hX~RQ!Vm(2gi5HS2!eEXhm?YXgh&jHbTjll z^F80acmDKwWad3*pS{;wd+qa{tsyN9n@JQt#ji5AikjPekz26#~W)i4=ZB7{B&CO1pKs6;)BejVhghBJZ1=d&4#>kfhHo9$lpLv%=W@~ ziHRSunW8qG#Q(Nvx~TiqX8DmWCZR!?eDc?h{;wSVDl=Gk1+NZeBqTyr2^3}id~GMX z;%Qeg=UFl`F)1wl0^S zzx#JX!J8j++VOr>Gf*4*do>{!mGs1?t&XUsMbDX3-L@CH)loGMMIrND0i#Yn-O)GN zHl}KvT$A^|jkCdj_qBh9AxS+kAqt-$F0wtX0yaCN~7F zxv#fo-E|y!k=PB|!Z3-?!{|pVj{}iBjIFn+twE z4AyiH)Me$$P3x@>#SWDh-4eDLHYS~CwA9tMJu%Xt7@pkaR3U%kmjEA=iFMlII)*OF zJXD9Yb=wF~ckg393oluGV%IUfNIHSggba$v**RzubmEgblNzx^lG3vVtr&g#7S(6Z zjUoP6+~(zu!H3!VD*ayW(EtB#*br0?L8 z#v&19n=t~V)J+2m@``rU>V@C++lfW|9}UayG>=kBFC|_igEFRP9q zMoY)U-;JjtEUKOjiu_yWI_I|-Cuvy)@&$`-WCXclr7}k~ZKBXiwGOJ*VY2P|#rUWS zI7O4Uz9G5ZCTYAClwmS2)l#Nft7TN*{ujrk9s_!WpW|bK2jR-Z#mK^U82b%v z-jqJkP}tnzWN+M}|L#gOL}^z~n5T(9`|4q9?ey*kn)VIl^Wzso(yNCXGfgKwQf>@p zA&6s@;Ej6(sKH%4b(M>tt(pl|Kagx!RaY#ef9N@k^}W3PcE@RR{o9H2z>60rGrrnH zWYmP}(GDG@LK$3-;1CNosqHvs>3u;ppM9nrtx)mQM;Kd~-INmhT|v!j=DSaIb`}$m zS1@OSuGnpEA?{`3u;I+%=zD}LT#rqSEV!hbngQoSi>fhcrn z+Kl1nn-NJt?$GqIsMVQ zbYQ5MuzCE}!m9qN9nTkj*N>z?@Ga!e*CXE_5)uVpc?4^|ZRa!p z-d@;kn5;GRm=2Ix3NF7_B_?Y(bla1Sj}u(`TelOc6h+xmTTs9YPl&9uODsW^583S! zqQb5Rp}#O%bjY@=vyEOJt#n>k&Z8);m4VB3rNiyF%o->-QAC#g9by}!+WJ(3y%&`R zl6MhQwCE)!HYCKZN}BgJv!D=>{04-#_h93rb~*lTKuSsCWGB$1w6lb}qNqZu>+7X5 z{5g8B3Z^BnTV{rL8`~XjG&lL}E!35@98aBZlrZ>d_%V|g{5=R8`2Omdx}8QOW$?)A zrTp32=W99$C(!|+cPPoNm>thy`4fG$$ik9+_h!^nDvd9Rd$Fbu!P{MIRZ_OJ~Y>i z?|N5dZvXRf&*9hUKc71N=peZ;_6!mhrG%j^Ws~4eRwWM0Dhk`RN?2G;>J3l#2@Btu z->oms7b}XOkm$;*_vTi+hVha+MFj97Lcq;%cckzEl$SZ#(hR-m6}< zrrSk_Ya39(oB;;UFfe2zLLJ9eidltDFc(YcDDe6I0NgQns?4e_P_dz4n!GUE0U0`c zzvFwFzi z1yrGYil{272_@s*HM`-1?%LBYw4ascM7sAQ@02J8$t4;mU=eF~@#AiZuNWaO|7l+n zg&kA~LVrGD(kL7+Oz$Ty6=k0=0(dp&e5WmhHAcH@?`eZ&c*=rr&yyrH1?1~Om>uHn zpmnTv!8lv_?+77*TgLiS;lJetx3~pTyF!%MK0|8Ddw13cMM_vGVQqAn*%d!qUA|5y$kb6W#Sbw(rpVH%%j-!pZZngc~JNwSbvumUfxs7Z?5!49ld<^QO@J|Xk-+nCd6_Z1KA%gD?_7x+qsQJHXTkIpX zqo(QJ0(6ODY3IYcyzxi**+ylS&jHRqSAYEY@v|!FnFHPuagr5eF(Q8+->Neffp_l zb>EcG>7$Maedxe75^D1M#gBx%>fnm6 z(?_Ps$HF_O97#R^S^ik+f7gpkAF&%H$n5g@{7phVJ~v{@ZmQQ(Mv&%ujPoOtP_ktT z^`<3&K>{@D+n0V^=$lxlzd(yZNEnQ-uP)C6GV5sjf7>Z`tsK@b6Ap{b5JvAeL^}$Y z%0u$(aHsyV_w_B$Cy(E#8WzVEbrOMhjO6Sw8W3y_8Y1@UAe!tOJFVy2pK!T0pvO|f zPiSR;i)od)u{KN%MIb1%``E-^pBi4Q5>vDoM%ut)U|qEyB6E|}g1WS`ISEagvs?n# z-Q)lKFir;hTTlB%LwR|*j>F}fx%g#2_@A?IWN*|XQv3bAUbeP?KlZ8e(F+Em5F6so zaW*h;o)Q(hatfi&9lYv{X|e+xstU{wdx!Qzy!QKf*es|}mE;D0tQ%fK!yFj8bNW%G zUhKEuYnp|*0C{Qd5<`TS2iwhW9ZmI5PAKYK)GYyI@dXutR$H!u3Wn$-3>PBUEv;0Wp)gHh?|Y2qL{asL zADvvC@64?L{PS@HEWrw7hng&c>d{LHL89%&nv8M5CLjMvk5?rqvpSc{woxtFE$5eT z)ntp*BJU5=Ji3e9w`y3uP;^X(@2xo*^m+*xT^h_^chr1fBI(-}`D5^I%JBsJZJB?G zN|gQ&>X31B?GDnP35SXTfDp)*Cgr}+Mpr7r0+~N>D}UQRMi}jP&z>PZC|k@JtsVgj z0q}A*js~qIH6QVLU6E$m+7HRK`LH`McFERTSMk(1p8td)@>7oc;8Eb?>G;(&ZjdERIRN3%J4+c9G*`%Bf6$N_JMCGE61h zI7HuZCqZt%Pbfj*Yz-E7L}Z38z|3$OhjdSgnxJ>DBsyVqJP;c&{Sq3=Bsf8jV3$pX z^9o3@J?H-F6&mWa3CfYeMf1VXIqhsaZFn;u!W2%+DHA}=gYRThwJuKf_(No^WJmQtXty$6>}G(qyz-tS5J>=!Nk(D{S0yjTDe<6?N zd$;9uY0ngm&|#R5o$vc+Cl04_>E?N@gYUqV5tEf;C1Z!%OZ)D(c_}PwiQz}vGff-V zy+v0(@IjNy-deZueDJ69NhPdfDkXvSPqpJHptZDJD$IKteNQ7=ip$L={)>7#x)N=REW#1{ zC2&wKji%Tc@tXcJ@M0O=C6-XQ-9mUx*da*Pl1LP`THIE?e;Af@oo!}NNTO}yd*T%T z!{3VEsN;C+ucQ^26iW>`->OUd)rzDpAfrcYe~VJn^NLwXbi(i{Ry8L zqReY<)I}b?4%baCF+#C{G7VS=stt3=;3vq&_|FY{_9@N3JIR*2qzjA2A?teK75Lx zZ%xa%PR@=c2#Aoe^b@WfJ&t0O%tR{l1+%ISyVWLy*F5y?hOrF+%`PYbOlG0oJ9_zA zExDkIsC*q+=#t_gZ|dY15E#q~+VB6&7PPDQ=HJsP=3jX|QBD7uKfj>{PRD~V@3BaJ zaB2^bS9=M8rZvxwoRE$?(+8~(w9odmiT{{^QJhJ=+dTivBO-^O{_(7!Ku;eC-Ma43 z6!YWa=QrB5^Lhs9v+2lLfcTx^0(QTji;GLyFT6Y35aITQZ)71$_VREvWC#2p3%b(U zX;tv8E=${{%Nl67?A|K!`jkh7)qjbM+ZR1>#t}~C6EffKASK4+)1LuOh`5o3_t>Z| zrs~J59W~0JZ&izs=r+R!E@|j5Y{3n3q)FSH*XSdM!}T#IM7%$(uo&|po1tltxA#%$ z>A@-$b~NkiFf$3hGP2N6wKKr=5S&CBad;^QBT0EukA_Ig-J;^+&8WxuEwSjIC1!P{ zNB}Ax0!(FzAF&Wexjd7}j=g0YvcIRJMueK5`>22K$vXAinJZLo!FNpT*4OJAKsz>n zsjy{?RN4>vOrG(9-coK)YHDhT+W=pF`s-qpu#m!q#KN=Jir}klsVkj2>+tnsVABNU zJK7z9?R%{RpKqO{7L3jkTo9A}1l1sLHN$sS+RWziSH>}ARL08Z98iSpW+btsz z{#Mzq53!FwKRmi6<%a2boZk~p;05w~Y9`3<2?DmE7}Q+umIM5UV58}QDfrI)fHTIR zRReWcmb&Fn@MPmSc9y=dut3>((CQ`^9>ffRpL4i^m(q?EiVVpeeBT4B-8@IteW?@W z#l74tGJ4+wLO1jL8wnUwWE&yn8~`nlCl{81Ti%K3^i(O?|+SeAI0GOmr_4p_}9@2N4m zeCWKh0txC&(-)9re}MftOzt@1V)G9bZ+jasn~Ik`J+1YdapHM=0eSRQk4Uh4``WM1 zJoIq*%a8O4R*2m_k&W?^CeNSQijp^NL*F*mD7pOix8@^gB0 zie2dXktT`!0PGin(!1P6vT(C2=2@SfVHThx*B_2(T-QJSm2;%ILA8km^=IF`OA6fA zGk(Xr#xYzw+Vh=n^f=)IHXwmL2jMyN7v#*3^Tnd`SDirWIa^K-kJ@38777NBE^@tY z)W-NsHI~6;wlQt^VEV?b-_P8#dig=3tBCn4@huS|uyrXCaysY^I$x7|emk^7;Ivo! zo;H_B&INgXiy)!B`c!e%N0hn1l64@qdrSKr9^zXLg>eLFv=+3jTB({eOjqTp=6lh3 zBfxf9n3Yl0wvt{uT>v%wuuru({-Ocibw@hAT%iHZ`Q~k33K|+jvLX;W)W2wFU6}$c z)z_~t7B$SP70B?xDh9HV^o5)fn{I-poZ>mu9G95W&W{Lw&FwPzu#>B zXVcn%2kK<)v^f8N4KIGpqTHyvGZKTfg_~@DTUD-pLra?Qh ze=%@@Qkm6s&o64Fq7~x@zqXi$UpE>1u@7$0i|+BhqT%mX{{w{-fb?Sl$U)z-C2n>Gnw8;E4hBSGnF@Le{qY zo{9V(*XE7VruZ|EKKX2y7)Q<$T#qd@{@xBkO&UlSFfGWO|<6d(54vmKh z@$fWyDFEf)l|K4;JpulJ9Z>HRdR(hu5r}iLw1e<3Eg&hoGARUM?F9^rCm(E{5U$xZz*o)wvNEUf(oFB|J>w*C^O6)R~Pid)2eu!y2}W2*hw8HuAKb3=jZMZqFw z+pUSOh>a#ES3F&zj1S?er{_pU<7KP%Z16j%g2iMDSo>sOH{8(o-Z?K)vJ4&S|T3v_hM!d>&x+ZBP{+45cc`6)2t#qpmVIyk)MXI{(T z-!r{&wu=Vlu5!Enw>VPx+8A}wUb6H21A0EShAM=h^}=9wvqv8=Ly-rvi{PO zU;JS7%cG_soIgZ2nVw37RuO0{zr;WxFaxUi?CN|Jo8>Yr$FmM?KKLIfHXZ_;Ml{wf z^9n#OtgCYz{ZDkYSwxTUCM&0K)FK1GWJS2nQctu0fuX5sNcl$5r`=qkT|Yol@7509fA>LIS^1Ik$SmJP>RQ>rQH^y+7{kK^*30@; z|H&U*W;l0^^l?7>^UEDbUoVVmkH+FPGlZHl`rbCBknSRnc4p9j!j}ly&yNa7^EKyv-yw)USXK1F>2Vq{KSvvkfQ)ZJ#g_Cb7Og9;6kX`|)kV$G>*n<>~tyL zgv^~185=2*Za(NZ-eo8etJESIkFs92wEEa4$dIW8kHGZVwsp892Ye$RO;lL#}alxkuutX(GUBqV)1V zfKVn>nOI2$5~OAr!xKQwQPK=d&Hn?{Q6)p7B$!hx27pOcPd7_AYZkHhH9r%Kszg!F zU{r7M3(f9G+bpmG;A$@IGF|@!(32LSwM1(h`JO2J)eWtG&@W>aADuuH4jhr+Ej>0- z%mDU*B{++WmuiL`MaM^vbXf9n{G&sDarvn_yNS80<2n+6fSM;;t>8Q1;%$sdQ%!i; zcC+t_bD?|!n)U?XwphpfjPXUF^nf=L0+)hCkVRs(-(Fbg385)44<_OML>*XmJK@rA zQvyV&IPVotahE$KzP}3|pI@F$v;~7+O2G#|*_TnC`l~NM1~=Lv2hBUJ9(M+7D6EL; zBBDMk^5gL~gje!}FyCPR>T3c~X9a4(*BPpA7P<|rb&mmAwPrIgZANEhLw`wiRTdUL z>jlw2a{`c=*}}+zwBFW0H#>-achx^N?40cZ;g_H~`db07N(fwKDo|OuXXw{wm4s6O z1q=lM*W|ugdv$lI+Ls8`-(qD#uMZ@*28~0i;N9?ey)T-lp6>4MY5?q+)jIoMRgY>l z_2u>O_=ZZp_$vG{qe3N<}v8nKcs{HiYejt z5i%~vOg#Da`U3!$4WnBF%6#Ct9;;7`QP3dRrtskfPbXS&zpZ&|?mFT^!b8dvTEJ<2=WlG3_cOM4Dr_$f(@QOywBlv9ShR|R z0l>fV0mP>DiQ}asx#P|djBYH0+Op+0*-K#|OGg4mX%D-dP&^__+s2a%);FIjn}w}f zFZOYwwV1M?j?!Oc`Q}@`63Vx67im5yF4g6Pp4w2Do#I{G#o3;wK&@HH_+L_k`9Y&Q z`@9&rzv3)lRC?jum&h*33j= z4r-D@DX_)JFID@M;!nphy&2EnO-_D=6#DjCqdxC z!gEHVz!HRo&gh5wjx|`;OWj9V_J=2J*DvmaUXVywR2dq9rRP{kKOTA%h^xUZz~fT( zLE3X=;&r=&f3HKcFUf2dXC4y`&!w9TP`{X^BQ40hUBCK7k2iLno$SnQC4jz8_rikh zR)u)*$iiMMnU7+bS>1LfFfPVPcEcJxJ3B4KN?QeS#V7W*I!U7IS0f-!D+0j0umO^P zk9%%Q2&4~j@WwGCOa$RfBvtuWxrOV&yeI6y1SPTW&gx+h3>Z;T^O(?y9R zw9H;o%I&t-hMfPMbHTZ-_+~>bjDvR{=2|~r-fWNGG1-ivukZufM#fQ*)#bW5kom}> z<2@xLI%~nj+?{F(HhsmK$+)I~LlkSk8hJAjiQH40#V*m&*|~s?l7EZ62_eviRxerP zpsa%AiY6RLKhvVnkJ+#scT>4;d>d?sOGOT7)lx~}T$?d`LbJe&JWQCtD6uZFL>exr zar*vs*H%mY)5qZ$6DFBjv<&Nh#tJ%m(^g!GV<;Ea2HMM>a$u7@Fzx=SY zPR<)5=`v(>{zOnQpL!DzJfQZ)Mv~v!uR7Y8h&|U$eu^nZ^;?2@C0Qbrzx<0=n{tDK z*ON~YEGF|bQa9Y2L(y!LVOg|T!KOBSDpS=!hQJKXw0m1f1>jDR9Fegy?*b|l*&tNs zwrkaEtqysf74-{BPj2%cj=thy2m{f(sK>v4eo{)11GMJbd%>#0YQI~-ZniL=)PAP7 zr9dm1HgU+{TG(f7YLY$`C<#3RH-zJ*{lq7aBL9AIR2DK5ywvx`GbT3HOeN!381nRV zfB72ML3RBa(q8EE;#&n0bM>s)ac7?fTw{z*i}^*c-@0fT`k60AA;Y8ezmovC&f1r?_4C$ZMetmJ_ihpZpQGVY5>Jw0cU14ttO% z4s^#~N7c#lb6U`sqkR-Ocd&%?(k}ALLBl1d6fYQ$R zPS?9jGB7Ym_UxgsIt$s3d!79F^ivc}_vC`U-EuI01t}17k$%G_Py#&~0T2A~J2O=e zU2Nj)p8o}QZw?8f$BIu-P!O^~#k2dz&ayYHy#E6?kl#8qQZ0P`d?v*HG6`AY5Mgu@ z48zN2o-?NZQDnQ*PQl&Oi4f3aqJ9BDZPvkOw#zjJ7#jGlb5P?s=R`pvT$6&qKOY@Kt23ArDqVp&?3yR?`F0qK4TRK*Y%PyTb=8tL1V(e!Pp zsDYqVVGGl_kn77jkO6Ce)8uBvQXu`6p^4KY_W(fLv*fMY(c-y3ZWx>(nqMysf3MHv z)&;48Mq0>!f^R$=C!k*1pKQP09AuFY-(SiMEo&nS2Ts41om^QU%NyUhisl-lgqeLG zy8&dF^60~z<&yt?eB6p<`!ab6?>^(mpC|?S;!h&GQfVRJJ;K6!vb7MK4Jzk=$;r{# z89KQ6CZ7kphivesG2sr1lz>V=h=f(ssTE(qbHy{_9uRbxN8p; zHwI_fDs;@Pk%c_VrDaHL~`s*3rxtY5_U}@tWB5`tVDjyZ!QpbM_h$CvjlVQRkIFvy3s~|9E zHBNw|ERhdTTEo9)k&E42t-uKa1u_Ug`g?((L*HZ}v!hY7A#O~?c>cd(f^_xNGHw1B z{o3o{`)HDnGT!U)gU5d(gi;ET+{Svj0N7s$WIw9bz0WoJV0bJ1UPe2Ho zfy4??+@t(TMeB_$35$g8Nj;cfH~5yVm`h6o6Cpg5}45dt`p!AicN+HjAIHu$IIA)#S{Sw znN8r@G40;sSy-JaU-Eb$Ab?qIfCOYEQOb^)gxF1_#!B>AQW!!GL5Ql5qS~-MBFvDz z9pgLq5+<2%n1#mhJo?*^T`om3ttKHv$GnzxjcY8C#t&_wOoW$3wFZ$_OAuQ8s(#eK$qCIJg zAm81iWV*Mx4^ot~0hnueH#`4bqfCki|#LI9#@QtWTf_@WdRH z`a0g;-eFvcT0zLt-_RJ;u#einQdPV1BdxAOM10?IZ?cDAHR9{G6KLxW2%FV@5B!&x z+6=q|TGOLDZD3XNRdHO)@9LuIZ3Iwt8@Lu!V8ujEJF_hzqlE@VO>Wb}>`}}MEWizI z2~c=ksYtSIHjaK+!hEAsBvq15i1}G1p6Sn7UG1lGbOIFyO#9&4vHol!7w$6ArjT7Q#iBBl zg}mO;6-*3#TwzJL4NJ!TH1By8*iw8I@H0RAQ)E;oO#t4Xv>QL%88lmLB3=gY`z&Da znU#c!4~gMe!8Q}ylL=r8Y*oM&K0a91-oKqMkEqyz|q4$z{^@RFfbrYu#w=WdY}5P9OvM` zK(l2_fIo0c4*Ko(r?CDB63%bId2JiPq)S-__#Otr2?n3gj!fi2zDA&A8AJdQu-C&d z2Ri(OgMvA?eY#tgxYAeD*;3QjBerc-!py|0f# zo^Oip98FlAfR24q7;F7bkM@PG{^Q4csi4`g%B>`rNETgdMY~Pv<(Eer`3_q-cT9R2YV6y+}kQbueZFmQ*Y98x&}m3$>F+jdhfU&1sK{~ zc61DTV8n+m-s(M@QH=fI)J=*$JK9KvqTJp}ZJtp;INKQn6tOG_hTc%jwKQZu1WzL^ zWk5u9vXThA-y%B+zJ}95TYx((9HUG$ZIehtWrz@~0~je(5@?IAz%q6VLq;t)+~mwo zw_yXcx3;St(1MKz&4p@09MYjgPkUh0(F5E!sD3Vh)pWQP=H->5qszp;l0?zPLEHP( zsm<_#Q+$gB6xmrtB9^3D!v574&%w#r0z(LQ0{}5wjyO^=4n}OT+-X~yWMjYM0APV>&EWj|k=3ditdb;=VJv>7jr8CH)3BN|lLBA9zr4c9yFK`@s~J zasl$N90Fn?i^jVI3b%(;g6H1=kU7X^Ni;S#mi0YT{=EB4Q2T^tF@&XFU<1hJeL@8B z_{J*-pw_IXgAlyB~gS1OJ(0`qX-*w0QE*YR0nLXo@+crdtnNP-9&JH z6LaOMrv5WLS%s!*-=Xhj-ypchRA;zJh!BecGcdse2W3-qv}Q!07;*p5i3xZEy1ouu zltP%bY0u#;Z=CIu-!-0hWNP(C+G>e;!yWhm(ShLH$*x>GhU|dC5P{{}zTV&8|8=lB z9HQy*l0=}?^9hk9V_X?{D^;B9(B*66;HNQBx#i@jP1I=1$!wDaIQOe`^z^lO@1(j3 z!K3VQM?XO>)hSM^?LjW*sY2F(gF_asahq;+eXIzHQ?wt%ZIIzn*IpIOGO~wvH?-a_ zhmb&kacmP7j`0<{=4ZGWfBMq|4MvuP9H9H2L=Ki+B+-PD?|+eUn%e*#F)RUyrrd+? zHShm|W^Z6t$d&)VI#H<``erhm*esY=K>WN`$v6^5`QBHIuQG#W3!COQZ<7I`rV4UOOe1xh#p*Fq@mQ>lyERbK4f>rpA zW6F?-s!nhdDB@v(>s)IW(53dpPn(g=Jao1`t3$#WIwe9T?IhAc##uT6%;5d7?9P$rufE=Pf~$&q2PxkC+X; zO^V!VSaM2A?Y}=&tIxrZjlJ7-_?UL)^;z}tYeAGV#Rx&?le(t{24hY*9cM6uo^8nX zX>kq6dBx(xOm#zN9MhIxt@}a0ve^}MA2U<*Y}k2q;SiD-%6!ExGgdD$vtW$4`wZ}* zT>JjYQ5LyVg2Yz)G7BJjFY8|@9d2}xqT}U{C#wm-@^zS^DMW3q>>1uO6UPaGq~s?l zTt$cDte!TPp{~p9U#$sn$yx+}{JZ#V#PbqpP>oJ1nTfdD$ot)`_ZugHh~Ex6A=u{+ zO`DtAK9B+bjwj^zJR;iJw@X!gRig*1}QF59m470+xX)~mzfAf zDL1h3xTq^JQ9EAVxP<_9b~*>lyruM?U$p~s!Za9Of$#EnmYl~!Ahhyo4;1xT{q|Ft z&p8GJ&1yGO-~xt%qM*#stJW-51&W@TF^+?w4umZWin@9L2HbtX{c3#~?%}!e-5s*z z%F0K4XL~!o7*+TpbcBg}8~7tsHo=gU(E`KmO`6_ef(zS-8B179`IvU?Mf;qDgv2t~ z_btoo1-$dXSE;OHvGG-~mrX8=51vz^8N2UBDiG^!YEPYwf`m|tvpxm+wfBFpg2+-I zMvJ!~Aa9*6|A2-@Cvb#Kn_kzdn1pDSiliR9)R_aK0fM@}9AX0rv-VRBpXh=7GiS?b z#zQpqKS|-HW#N>3-w!wR>%O64{tN6&*Pg}==1B4sc4-0qA!5BA=vNd@06|&`Q^F7A z$Wd7PUVHyL42n+#SAd`}BqRSHztV$ld^(&Va1M01|2n7d^V^1$msuqr5m@Jjv0Z$l zat#INW(=5Ldy)avr>2rg-^)8=F$>Wz6*)oWuCk?;!?Hoc)szgiuYd}MtO54tO^;|g zT}=7{G{co>u!y46@ER~0wE>2SgEVlR+F)rIF^x68lcGJr+wl30`^6q{I05+tOySNa z>Q8RpS6Cdj5AZNlK3A(N-Y^H2*Ov)KiuFR?*h{5Wz}DB zcG$+lm^q>?Z1y$Y0*n0+O_7M+CE$Z6=Ya72-4H_gwTbi{d(m6{P5v1@0ND3~chAN2 z{cgT>y#}Y_GVt-^UkTQ2RDMl(FS&cKFi~lR$jT2*jg0{Zpc;6c4rRznezwT+KS?(OMmc=N#Uu3G1vCi56T}Urp4}l4 zK>i^ZdB2(<>*GuS%o-3y>@rcfNIVIR6XM7OsC`9XVA~mIju#+T^a~`fc!*IZVRIA2 zOC${LE*&MiKFGQzzduYc%IGHB;%RiBgMSrl!K2z99Wh9MuO%jFG6x{It6DITPrGXq zjcE)k7BT4$Rbzr>e6sSuRAB=FK%@!=)8=KWfmeM@Y+=hP7u^6f9JC5@Tj(Xhz?gY1 zq`-G)HWaD~$HRx*b)A)Sh62A&P_R1%kP)EwZHIu~@n1UY9B3xc0*-%|+}aqOD2!k< zi(P&#nyjH&{04-R#YsO;mK-}YaeyMS1U0YzeJo`Hh;vC3qrjuMoMe1K|Gt7JdJ?+{ zj*x$IeLWW8=7}m7pIs#)lIX;vII$!^0-moyFKjMlsP4+3PGyE}-^bfkvJaQqNSLXt zfMo;L(_)~blQ?yQIbN~DjeO6loc#+k5&mv5sb5J+$&47d?jrc;Kx7=40h$_e)i;V! zxZjVo1`VW_@c=Qs0z6}y_RVeY3h9R7lY_W#64fJPaAFo7&Il9&VxGy(1g*xTIlY^x*Fj|- z&R$Sk>oc*xJm_lP5^$vQwn;CoF=4!cwBr!_?$t zio_Xfthv-)O2X)j0n_}v#ADFC>rAx@mNxMS`Dcq>qFcl0J`IvsgXP$8=m%-tB%BwN zd~eKwo3zt%nrS?8WoKapW?}>4dnyqvq3bhiO+aQkJ_9$Bu!@L?SS6TSQsZ%(g&TaZ z-o3MQr-N}$=3e|HG|`N@5?=~{H$qiLG(sa6YzUDT2;pMTn%kCIBol;A-p0?u`EiXw zBcDzgQ$>!NT%`hHJ%%F~BfXK(R#S?H&_R1JR+r=7LxNTm51fJFnwUsw@g^dOy0BRS z#{3fElv7!`AC9}1rx4hLpT}U?%3%weNFvnL3Zs>BUe6N&YP*;J;`>ziJ;ND3XdTuU>1lqEH)N<0m$I(aiVQsKS~J1-Tc!K0ez7C-98-F?sKHL%L_*9 zm8g)rOFw>g&p}kbzODc>hnMx>nXX53)!x)BtRtr@S4|m0M_)t5;Uhy9ezJ?O|o%gl6G**@Ut+twdj7h;)L;8S5{S3Ob1k z4x`+UJ|=mA@ugl+@HfrCtoSwPyRfex`fN=ZfI+Ffc|htNfV=u%?AePT(IqemB`LS$ z60}l`Y)uV!XyUURpddv3263?iQi~-I2w_%39i5*x3G&BJNueblFD>|iNn{+1as*cc zSG*BWkq&E?j@$q3O#cwMOlWnta#W9<;Ck5SZX=~?dSUq!{HbsNynS^+AB>8OlvI6V z#-;{jhr!zC=hw$W){-7f#5w3Uu_B6B*S;QoMp(8mgo1OqDD0Nr!-nZxDJL~?##VX% ztqM-V)U=*;?xP(m5Ue4sEiFRsmff*CyZX%*7raP6w)fL0t?`*<)k0tUX+;RWiO|Z4s1;CJh!u17CRoI&FhGEVnw$I$i>3M7!z4BSp zwHE?38p)_Kv$C#@KYq5dvbr{zJ#}#P&=$tpSq~v$?>AFr>sMiadbpaiNE|)_`Qy|&Jvm5&BJ8AoxrUS zk{1T~VYe!At&YV$OZ>L_R@4Uq3s6;;mL z;}tjDckWD4XXN)7Q6@eZRWX^iHhU0LkBQA$c1j2=WBA$7OUBAt14tmp6$ct2y|dX#l>^jAoK5Z>td7=Rb8H48J}fdLXhHrMVs?^KP^eV zE9*G*%mthWla$*RG+Ko8(PsH5D7{ zLLqT>6!GFpIJL-KwT8e&k%wLk?X*^nNa5gF-w=zd24#yQD2OJ4?L11?_uo0A##&go z#?O$2k!#w$2=joB3rNf6`R*(2&RYIgUwDtJLe}v93a^w1)R<>mYPmVok6kZHcd%rC zCz)kNzNJlK@S~c%nwDB-p+@DC|J|mtC^-(2)Jf@_CfT)25Rq*cwoh0#rQvIx@?_wB zXA#3@=-)JoStM-96is-sjQ`(GLj7VLo3zf! z>ntrySh`0TV@j3e&(rK_3`}j>T~f-wz4Iw$JY@n6^e*|B7u)x-O#H;u&L9EjlyA*L zJCuo@r5~}CM4U#aEf4DOUvbvSgJw^*bG$ZDxkpIQ*be2-JC1o|OGTHPr~i`g&vz=A zCt9mTO}>029IIWY>-U}%ZxQ%AzPfw%dwm>kT zTE)L_?a;{^3`cS6?Tqbx>EWMm5dSIQEjs^PJye8JXPCsJPDF!+21V03#P!Nh#E5s+ zKpI?}mQUBHeQ{9OqH9dbysEs9AV?%j@rry$yAaCev&KA-n)Q|`e*W9n?J$UpK|N*2 zq|<{$NeOl0f15W+xJ3e=E);$IR7JPYPaS*i#u&6YUI^qG1sx6IKoOG_R*@I_@3Laq zS5;iR$2p^!>e;j(YAiKKtqVmTR%cR~Pv>I#Gc2RCE*CD#jUGbeou5kHde0;CXSPJ` zXHR@;Ggun|6$TWz4S8yAEM>f~;SGG2o88qiw`Sc)?e0q*EuXW7Ce>hZU)Sknjgw)G z>=p%4tQ$F7N|PU-=BZ-Hi9GAtNs>deh-hG_E_uUlNp}L7b$z)AgI1t7{!d3G-^uW@ zR|u}=X}%TOOdeH|uLID17KCtwX=#FCZ1M3)zLM+M&h5UJIw|TFa^P&8xY{{#{GV0t zkNJ~wpS{Ln9=~3Wt@;)*XT7>ArWL0+UjkQW_y4##pL_XUW~LWg7FvHf7_FqCzD1`n z<)yZF!c>k=S7TQ1ajgA+;luv>YqZ+GsqGbUJvnt6gO{L+;uPVBQJb}e@Bfp@EL>Dt z)5g8HqG8%N@3u)Vp5q~YVXkX=gI4;FSvwy8xzonJe782!ixS1%-R$e`ESM(o>3ulo`N^?r z`%c~Z_QY+G^*p}oNA^7x>GP}E>*>F-+_8tjY97C&_t8DuEl$muz<0sJ@5Fh5-?xwa zyHf7TFxRTayuKp-XQk4bNeSM6ewq=A~|D)$+58qohUOh7XPK2<7-OQ~qa?iVp zUzDvlQ~Ny7@5>SYV}}2~89x(cf7Zvecs~~-%Z1Q_j}Ms|wLbRxREW+{=Hz==Y;Tg| zTV;82YfDkz67m1n&PV*b&o3Wz`$6LANhX8f7i4gKU)jAfA0h$9!m?~zT5gH zntzMf`-|O&y91Y;`?%9IPT+mece)+9%s+v#fq?^x9F!UunuHY?m>}q~Vgti0 zy(c^pEDj71#K^)9W3nuBW?(dlJt1iT(+%_%AKWaTb_S-5T@#EG1Q-}0h($mK#uS*r z2MoRv#q*`U@6{E+__?Pt2PXoV^R5O})!xvX