From 5bc00298c64707397839a1a7df8e99375a38e554 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 3 Feb 2024 22:51:29 +1100 Subject: [PATCH] [WIP] Site ID Fixes (#6390) * Fix docs for INVENTREE_SITE_URL * Adjust default SITE_ID * Optional support for multi-site - Disable by default * Prevent site setting from being changed if set by config parameter * Update site url setting on server launch * Update log messages * Update RULESET_MODELS * Update unit tests * More fixes for unit tests * Update docs * Update SSO image --- InvenTree/InvenTree/apps.py | 41 +++ InvenTree/InvenTree/context.py | 2 +- InvenTree/InvenTree/forms.py | 5 +- InvenTree/InvenTree/helpers_model.py | 82 +++-- InvenTree/InvenTree/magic_login.py | 9 +- InvenTree/InvenTree/serializers.py | 23 +- InvenTree/InvenTree/settings.py | 29 +- InvenTree/InvenTree/tests.py | 24 +- InvenTree/common/models.py | 25 +- InvenTree/config_template.yaml | 4 +- InvenTree/users/models.py | 322 +++++++++--------- InvenTree/users/tests.py | 19 +- .../settings/social_application_configure.png | Bin 62592 -> 86333 bytes docs/docs/start/advanced.md | 12 + docs/docs/start/config.md | 1 + 15 files changed, 361 insertions(+), 237 deletions(-) diff --git a/InvenTree/InvenTree/apps.py b/InvenTree/InvenTree/apps.py index edb02dbea9..2e90780efa 100644 --- a/InvenTree/InvenTree/apps.py +++ b/InvenTree/InvenTree/apps.py @@ -58,6 +58,7 @@ class InvenTreeConfig(AppConfig): # Let the background worker check for migrations InvenTree.tasks.offload_task(InvenTree.tasks.check_for_migrations) + self.update_site_url() self.collect_notification_methods() self.collect_state_transition_methods() @@ -223,6 +224,46 @@ class InvenTreeConfig(AppConfig): except Exception as e: logger.exception('Error updating exchange rates: %s (%s)', e, type(e)) + def update_site_url(self): + """Update the site URL setting. + + - If a fixed SITE_URL is specified (via configuration), it should override the INVENTREE_BASE_URL setting + - If multi-site support is enabled, update the site URL for the current site + """ + import common.models + + if not InvenTree.ready.canAppAccessDatabase(): + return + + if InvenTree.ready.isImportingData() or InvenTree.ready.isRunningMigrations(): + return + + if settings.SITE_URL: + try: + if ( + common.models.InvenTreeSetting.get_setting('INVENTREE_BASE_URL') + != settings.SITE_URL + ): + common.models.InvenTreeSetting.set_setting( + 'INVENTREE_BASE_URL', settings.SITE_URL + ) + logger.info('Updated INVENTREE_SITE_URL to %s', settings.SITE_URL) + except Exception: + pass + + # If multi-site support is enabled, update the site URL for the current site + try: + from django.contrib.sites.models import Site + + site = Site.objects.get_current() + site.domain = settings.SITE_URL + site.save() + + logger.info('Updated current site URL to %s', settings.SITE_URL) + + except Exception: + pass + def add_user_on_startup(self): """Add a user on startup.""" # stop if checks were already created diff --git a/InvenTree/InvenTree/context.py b/InvenTree/InvenTree/context.py index e25a27d668..11bbb52e21 100644 --- a/InvenTree/InvenTree/context.py +++ b/InvenTree/InvenTree/context.py @@ -72,7 +72,7 @@ def user_roles(request): roles = {} - for role in RuleSet.RULESET_MODELS.keys(): + for role in RuleSet.get_ruleset_models().keys(): permissions = {} for perm in ['view', 'add', 'change', 'delete']: diff --git a/InvenTree/InvenTree/forms.py b/InvenTree/InvenTree/forms.py index 3b5f15665b..3358804a9a 100644 --- a/InvenTree/InvenTree/forms.py +++ b/InvenTree/InvenTree/forms.py @@ -6,7 +6,6 @@ from urllib.parse import urlencode from django import forms from django.conf import settings from django.contrib.auth.models import Group, User -from django.contrib.sites.models import Site from django.http import HttpResponseRedirect from django.urls import reverse from django.utils.translation import gettext_lazy as _ @@ -23,6 +22,7 @@ from crispy_forms.layout import Field, Layout from dj_rest_auth.registration.serializers import RegisterSerializer from rest_framework import serializers +import InvenTree.helpers_model import InvenTree.sso from common.models import InvenTreeSetting from InvenTree.exceptions import log_error @@ -293,7 +293,8 @@ class CustomUrlMixin: def get_email_confirmation_url(self, request, emailconfirmation): """Custom email confirmation (activation) url.""" url = reverse('account_confirm_email', args=[emailconfirmation.key]) - return Site.objects.get_current().domain + url + + return InvenTree.helpers_model.construct_absolute_url(url) class CustomAccountAdapter( diff --git a/InvenTree/InvenTree/helpers_model.py b/InvenTree/InvenTree/helpers_model.py index b55e274f11..037dd17d32 100644 --- a/InvenTree/InvenTree/helpers_model.py +++ b/InvenTree/InvenTree/helpers_model.py @@ -34,47 +34,59 @@ def getSetting(key, backup_value=None): return common.models.InvenTreeSetting.get_setting(key, backup_value=backup_value) -def construct_absolute_url(*arg, **kwargs): +def get_base_url(request=None): + """Return the base URL for the InvenTree server. + + The base URL is determined in the following order of decreasing priority: + + 1. If a request object is provided, use the request URL + 2. Multi-site is enabled, and the current site has a valid URL + 3. If settings.SITE_URL is set (e.g. in the Django settings), use that + 4. If the InvenTree setting INVENTREE_BASE_URL is set, use that + """ + # Check if a request is provided + if request: + return request.build_absolute_uri('/') + + # Check if multi-site is enabled + try: + from django.contrib.sites.models import Site + + return Site.objects.get_current().domain + except (ImportError, RuntimeError): + pass + + # Check if a global site URL is provided + if site_url := getattr(settings, 'SITE_URL', None): + return site_url + + # Check if a global InvenTree setting is provided + try: + if site_url := common.models.InvenTreeSetting.get_setting( + 'INVENTREE_BASE_URL', create=False, cache=False + ): + return site_url + except (ProgrammingError, OperationalError): + pass + + # No base URL available + return '' + + +def construct_absolute_url(*arg, base_url=None, request=None): """Construct (or attempt to construct) an absolute URL from a relative URL. - This is useful when (for example) sending an email to a user with a link - to something in the InvenTree web framework. - A URL is constructed in the following order: - 1. If settings.SITE_URL is set (e.g. in the Django settings), use that - 2. If the InvenTree setting INVENTREE_BASE_URL is set, use that - 3. Otherwise, use the current request URL (if available) + Args: + *arg: The relative URL to construct + base_url: The base URL to use for the construction (if not provided, will attempt to determine from settings) + request: The request object to use for the construction (optional) """ relative_url = '/'.join(arg) - # If a site URL is provided, use that - site_url = getattr(settings, 'SITE_URL', None) + if not base_url: + base_url = get_base_url(request=request) - if not site_url: - # Otherwise, try to use the InvenTree setting - try: - site_url = common.models.InvenTreeSetting.get_setting( - 'INVENTREE_BASE_URL', create=False, cache=False - ) - except (ProgrammingError, OperationalError): - pass - - if not site_url: - # Otherwise, try to use the current request - request = kwargs.get('request', None) - - if request: - site_url = request.build_absolute_uri('/') - - if not site_url: - # No site URL available, return the relative URL - return relative_url - - return urljoin(site_url, relative_url) - - -def get_base_url(**kwargs): - """Return the base URL for the InvenTree server.""" - return construct_absolute_url('', **kwargs) + return urljoin(base_url, relative_url) def download_image_from_url(remote_url, timeout=2.5): diff --git a/InvenTree/InvenTree/magic_login.py b/InvenTree/InvenTree/magic_login.py index 725b913bbf..8d8df798ae 100644 --- a/InvenTree/InvenTree/magic_login.py +++ b/InvenTree/InvenTree/magic_login.py @@ -2,7 +2,6 @@ from django.conf import settings from django.contrib.auth.models import User -from django.contrib.sites.models import Site from django.core.mail import send_mail from django.template.loader import render_to_string from django.urls import reverse @@ -13,18 +12,20 @@ from rest_framework import serializers from rest_framework.response import Response from rest_framework.views import APIView +import InvenTree.version + def send_simple_login_email(user, link): """Send an email with the login link to this user.""" - site = Site.objects.get_current() + site_name = InvenTree.version.inventreeInstanceName() - context = {'username': user.username, 'site_name': site.name, 'link': link} + context = {'username': user.username, 'site_name': site_name, 'link': link} email_plaintext_message = render_to_string( 'InvenTree/user_simple_login.txt', context ) send_mail( - _(f'[{site.name}] Log in to the app'), + _(f'[{site_name}] Log in to the app'), email_plaintext_message, settings.DEFAULT_FROM_EMAIL, [user.email], diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index 4f13ec9fac..e88b9527fd 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -7,7 +7,6 @@ from decimal import Decimal from django.conf import settings from django.contrib.auth.models import User -from django.contrib.sites.models import Site from django.core.exceptions import ValidationError as DjangoValidationError from django.db import models from django.utils.translation import gettext_lazy as _ @@ -26,7 +25,7 @@ from taggit.serializers import TaggitSerializer import common.models as common_models from common.settings import currency_code_default, currency_code_mappings from InvenTree.fields import InvenTreeRestURLField, InvenTreeURLField -from InvenTree.helpers_model import download_image_from_url +from InvenTree.helpers_model import download_image_from_url, get_base_url class InvenTreeMoneySerializer(MoneyField): @@ -445,19 +444,23 @@ class UserCreateSerializer(ExendedUserSerializer): def create(self, validated_data): """Send an e email to the user after creation.""" + base_url = get_base_url() + instance = super().create(validated_data) # Make sure the user cannot login until they have set a password instance.set_unusable_password() - # Send the user an onboarding email (from current site) - current_site = Site.objects.get_current() - domain = current_site.domain - instance.email_user( - subject=_(f'Welcome to {current_site.name}'), - message=_( - f'Your account has been created.\n\nPlease use the password reset function to get access (at https://{domain}).' - ), + + message = _( + 'Your account has been created.\n\nPlease use the password reset function to login' ) + + if base_url: + message += f'\nURL: {base_url}' + + # Send the user an onboarding email (from current site) + instance.email_user(subject=_('Welcome to InvenTree'), message=message) + return instance diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 0eaae34726..73aefd2a75 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -978,13 +978,30 @@ CRISPY_TEMPLATE_PACK = 'bootstrap4' # Use database transactions when importing / exporting data IMPORT_EXPORT_USE_TRANSACTIONS = True -SITE_ID = 1 +# Site URL can be specified statically, or via a run-time setting +SITE_URL = get_setting('INVENTREE_SITE_URL', 'site_url', None) + +if SITE_URL: + logger.info('Using Site URL: %s', SITE_URL) + + # Check that the site URL is valid + validator = URLValidator() + validator(SITE_URL) + +# Enable or disable multi-site framework +SITE_MULTI = get_boolean_setting('INVENTREE_SITE_MULTI', 'site_multi', False) + +# If a SITE_ID is specified +SITE_ID = get_setting('INVENTREE_SITE_ID', 'site_id', 1 if SITE_MULTI else None) # Load the allauth social backends SOCIAL_BACKENDS = get_setting( 'INVENTREE_SOCIAL_BACKENDS', 'social_backends', [], typecast=list ) +if not SITE_MULTI: + INSTALLED_APPS.remove('django.contrib.sites') + for app in SOCIAL_BACKENDS: # Ensure that the app starts with 'allauth.socialaccount.providers' social_prefix = 'allauth.socialaccount.providers.' @@ -1096,16 +1113,6 @@ PLUGIN_RETRY = get_setting( ) # How often should plugin loading be tried? PLUGIN_FILE_CHECKED = False # Was the plugin file checked? -# Site URL can be specified statically, or via a run-time setting -SITE_URL = get_setting('INVENTREE_SITE_URL', 'site_url', None) - -if SITE_URL: - logger.info('Site URL: %s', SITE_URL) - - # Check that the site URL is valid - validator = URLValidator() - validator(SITE_URL) - # User interface customization values CUSTOM_LOGO = get_custom_file( 'INVENTREE_CUSTOM_LOGO', 'customize.logo', 'custom logo', lookup_media=True diff --git a/InvenTree/InvenTree/tests.py b/InvenTree/InvenTree/tests.py index b58f53534c..0cda36703b 100644 --- a/InvenTree/InvenTree/tests.py +++ b/InvenTree/InvenTree/tests.py @@ -10,7 +10,6 @@ from unittest import mock import django.core.exceptions as django_exceptions from django.conf import settings from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site from django.core import mail from django.core.exceptions import ValidationError from django.test import TestCase, override_settings @@ -372,7 +371,7 @@ class TestHelpers(TestCase): for url, expected in tests.items(): # Test with supplied base URL self.assertEqual( - InvenTree.helpers_model.construct_absolute_url(url, site_url=base), + InvenTree.helpers_model.construct_absolute_url(url, base_url=base), expected, ) @@ -1049,6 +1048,12 @@ class TestInstanceName(InvenTreeTestCase): self.assertEqual(version.inventreeInstanceTitle(), 'Testing title') + try: + from django.contrib.sites.models import Site + except (ImportError, RuntimeError): + # Multi-site support not enabled + return + # The site should also be changed site_obj = Site.objects.all().order_by('id').first() self.assertEqual(site_obj.name, 'Testing title') @@ -1060,9 +1065,18 @@ class TestInstanceName(InvenTreeTestCase): 'INVENTREE_BASE_URL', 'http://127.1.2.3', self.user ) + # No further tests if multi-site support is not enabled + if not settings.SITE_MULTI: + return + # The site should also be changed - site_obj = Site.objects.all().order_by('id').first() - self.assertEqual(site_obj.domain, 'http://127.1.2.3') + try: + from django.contrib.sites.models import Site + + site_obj = Site.objects.all().order_by('id').first() + self.assertEqual(site_obj.domain, 'http://127.1.2.3') + except Exception: + pass class TestOffloadTask(InvenTreeTestCase): @@ -1234,7 +1248,7 @@ class MagicLoginTest(InvenTreeTestCase): self.assertEqual(resp.status_code, 200) self.assertEqual(resp.data, {'status': 'ok'}) self.assertEqual(len(mail.outbox), 1) - self.assertEqual(mail.outbox[0].subject, '[example.com] Log in to the app') + self.assertEqual(mail.outbox[0].subject, '[InvenTree] Log in to the app') # Check that the token is in the email self.assertTrue('http://testserver/api/email/login/' in mail.outbox[0].body) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 8bb855084e..84d02cba26 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -24,7 +24,6 @@ from django.contrib.auth.models import Group, User from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.contrib.humanize.templatetags.humanize import naturaltime -from django.contrib.sites.models import Site from django.core.cache import cache from django.core.exceptions import AppRegistryNotReady, ValidationError from django.core.validators import MaxValueValidator, MinValueValidator, URLValidator @@ -101,6 +100,10 @@ class BaseURLValidator(URLValidator): """Make sure empty values pass.""" value = str(value).strip() + # If a configuration level value has been specified, prevent change + if settings.SITE_URL: + raise ValidationError(_('Site URL is locked by configuration')) + if len(value) == 0: pass @@ -647,7 +650,7 @@ class BaseInvenTreeSetting(models.Model): return value @classmethod - def set_setting(cls, key, value, change_user, create=True, **kwargs): + def set_setting(cls, key, value, change_user=None, create=True, **kwargs): """Set the value of a particular setting. If it does not exist, option to create it. Args: @@ -1065,6 +1068,15 @@ def settings_group_options(): def update_instance_url(setting): """Update the first site objects domain to url.""" + if not settings.SITE_MULTI: + return + + try: + from django.contrib.sites.models import Site + except (ImportError, RuntimeError): + # Multi-site support not enabled + return + site_obj = Site.objects.all().order_by('id').first() site_obj.domain = setting.value site_obj.save() @@ -1072,6 +1084,15 @@ def update_instance_url(setting): def update_instance_name(setting): """Update the first site objects name to instance name.""" + if not settings.SITE_MULTI: + return + + try: + from django.contrib.sites.models import Site + except (ImportError, RuntimeError): + # Multi-site support not enabled + return + site_obj = Site.objects.all().order_by('id').first() site_obj.name = setting.value site_obj.save() diff --git a/InvenTree/config_template.yaml b/InvenTree/config_template.yaml index 9baef5fbce..6c1b1eadb5 100644 --- a/InvenTree/config_template.yaml +++ b/InvenTree/config_template.yaml @@ -90,8 +90,8 @@ language: en-us timezone: UTC # Base URL for the InvenTree server -# Use the environment variable INVENTREE_BASE_URL -# base_url: 'http://localhost:8000' +# Use the environment variable INVENTREE_SITE_URL +# site_url: 'http://localhost:8000' # Base currency code (or use env var INVENTREE_BASE_CURRENCY) base_currency: USD diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index 7e5e348f77..fdc886adf1 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -201,160 +201,170 @@ class RuleSet(models.Model): RULESET_PERMISSIONS = ['view', 'add', 'change', 'delete'] - RULESET_MODELS = { - 'admin': [ - 'auth_group', - 'auth_user', - 'auth_permission', - 'users_apitoken', - 'users_ruleset', - 'report_reportasset', - 'report_reportsnippet', - 'report_billofmaterialsreport', - 'report_purchaseorderreport', - 'report_salesorderreport', - 'account_emailaddress', - 'account_emailconfirmation', - 'sites_site', - 'socialaccount_socialaccount', - 'socialaccount_socialapp', - 'socialaccount_socialtoken', - 'otp_totp_totpdevice', - 'otp_static_statictoken', - 'otp_static_staticdevice', - 'plugin_pluginconfig', - 'plugin_pluginsetting', - 'plugin_notificationusersetting', - 'common_newsfeedentry', - 'taggit_tag', - 'taggit_taggeditem', - 'flags_flagstate', - ], - 'part_category': [ - 'part_partcategory', - 'part_partcategoryparametertemplate', - 'part_partcategorystar', - ], - 'part': [ - 'part_part', - 'part_partpricing', - 'part_bomitem', - 'part_bomitemsubstitute', - 'part_partattachment', - 'part_partsellpricebreak', - 'part_partinternalpricebreak', - 'part_parttesttemplate', - 'part_partparametertemplate', - 'part_partparameter', - 'part_partrelated', - 'part_partstar', - 'part_partcategorystar', - 'company_supplierpart', - 'company_manufacturerpart', - 'company_manufacturerpartparameter', - 'company_manufacturerpartattachment', - 'label_partlabel', - ], - 'stocktake': ['part_partstocktake', 'part_partstocktakereport'], - 'stock_location': [ - 'stock_stocklocation', - 'stock_stocklocationtype', - 'label_stocklocationlabel', - 'report_stocklocationreport', - ], - 'stock': [ - 'stock_stockitem', - 'stock_stockitemattachment', - 'stock_stockitemtracking', - 'stock_stockitemtestresult', - 'report_testreport', - 'label_stockitemlabel', - ], - 'build': [ - 'part_part', - 'part_partcategory', - 'part_bomitem', - 'part_bomitemsubstitute', - 'build_build', - 'build_builditem', - 'build_buildline', - 'build_buildorderattachment', - 'stock_stockitem', - 'stock_stocklocation', - 'report_buildreport', - 'label_buildlinelabel', - ], - 'purchase_order': [ - 'company_company', - 'company_companyattachment', - 'company_contact', - 'company_address', - 'company_manufacturerpart', - 'company_manufacturerpartparameter', - 'company_supplierpart', - 'company_supplierpricebreak', - 'order_purchaseorder', - 'order_purchaseorderattachment', - 'order_purchaseorderlineitem', - 'order_purchaseorderextraline', - 'report_purchaseorderreport', - ], - 'sales_order': [ - 'company_company', - 'company_companyattachment', - 'company_contact', - 'company_address', - 'order_salesorder', - 'order_salesorderallocation', - 'order_salesorderattachment', - 'order_salesorderlineitem', - 'order_salesorderextraline', - 'order_salesordershipment', - 'report_salesorderreport', - ], - 'return_order': [ - 'company_company', - 'company_companyattachment', - 'company_contact', - 'company_address', - 'order_returnorder', - 'order_returnorderlineitem', - 'order_returnorderextraline', - 'order_returnorderattachment', - 'report_returnorderreport', - ], - } + @staticmethod + def get_ruleset_models(): + """Return a dictionary of models associated with each ruleset.""" + ruleset_models = { + 'admin': [ + 'auth_group', + 'auth_user', + 'auth_permission', + 'users_apitoken', + 'users_ruleset', + 'report_reportasset', + 'report_reportsnippet', + 'report_billofmaterialsreport', + 'report_purchaseorderreport', + 'report_salesorderreport', + 'account_emailaddress', + 'account_emailconfirmation', + 'socialaccount_socialaccount', + 'socialaccount_socialapp', + 'socialaccount_socialtoken', + 'otp_totp_totpdevice', + 'otp_static_statictoken', + 'otp_static_staticdevice', + 'plugin_pluginconfig', + 'plugin_pluginsetting', + 'plugin_notificationusersetting', + 'common_newsfeedentry', + 'taggit_tag', + 'taggit_taggeditem', + 'flags_flagstate', + ], + 'part_category': [ + 'part_partcategory', + 'part_partcategoryparametertemplate', + 'part_partcategorystar', + ], + 'part': [ + 'part_part', + 'part_partpricing', + 'part_bomitem', + 'part_bomitemsubstitute', + 'part_partattachment', + 'part_partsellpricebreak', + 'part_partinternalpricebreak', + 'part_parttesttemplate', + 'part_partparametertemplate', + 'part_partparameter', + 'part_partrelated', + 'part_partstar', + 'part_partcategorystar', + 'company_supplierpart', + 'company_manufacturerpart', + 'company_manufacturerpartparameter', + 'company_manufacturerpartattachment', + 'label_partlabel', + ], + 'stocktake': ['part_partstocktake', 'part_partstocktakereport'], + 'stock_location': [ + 'stock_stocklocation', + 'stock_stocklocationtype', + 'label_stocklocationlabel', + 'report_stocklocationreport', + ], + 'stock': [ + 'stock_stockitem', + 'stock_stockitemattachment', + 'stock_stockitemtracking', + 'stock_stockitemtestresult', + 'report_testreport', + 'label_stockitemlabel', + ], + 'build': [ + 'part_part', + 'part_partcategory', + 'part_bomitem', + 'part_bomitemsubstitute', + 'build_build', + 'build_builditem', + 'build_buildline', + 'build_buildorderattachment', + 'stock_stockitem', + 'stock_stocklocation', + 'report_buildreport', + 'label_buildlinelabel', + ], + 'purchase_order': [ + 'company_company', + 'company_companyattachment', + 'company_contact', + 'company_address', + 'company_manufacturerpart', + 'company_manufacturerpartparameter', + 'company_supplierpart', + 'company_supplierpricebreak', + 'order_purchaseorder', + 'order_purchaseorderattachment', + 'order_purchaseorderlineitem', + 'order_purchaseorderextraline', + 'report_purchaseorderreport', + ], + 'sales_order': [ + 'company_company', + 'company_companyattachment', + 'company_contact', + 'company_address', + 'order_salesorder', + 'order_salesorderallocation', + 'order_salesorderattachment', + 'order_salesorderlineitem', + 'order_salesorderextraline', + 'order_salesordershipment', + 'report_salesorderreport', + ], + 'return_order': [ + 'company_company', + 'company_companyattachment', + 'company_contact', + 'company_address', + 'order_returnorder', + 'order_returnorderlineitem', + 'order_returnorderextraline', + 'order_returnorderattachment', + 'report_returnorderreport', + ], + } + + if settings.SITE_MULTI: + ruleset_models['admin'].append('sites_site') + + return ruleset_models # Database models we ignore permission sets for - RULESET_IGNORE = [ - # Core django models (not user configurable) - 'admin_logentry', - 'contenttypes_contenttype', - # Models which currently do not require permissions - 'common_colortheme', - 'common_customunit', - 'common_inventreesetting', - 'common_inventreeusersetting', - 'common_notificationentry', - 'common_notificationmessage', - 'common_notesimage', - 'common_projectcode', - 'common_webhookendpoint', - 'common_webhookmessage', - 'label_labeloutput', - 'users_owner', - # Third-party tables - 'error_report_error', - 'exchange_rate', - 'exchange_exchangebackend', - 'user_sessions_session', - # Django-q - 'django_q_ormq', - 'django_q_failure', - 'django_q_task', - 'django_q_schedule', - 'django_q_success', - ] + @staticmethod + def get_ruleset_ignore(): + """Return a list of database tables which do not require permissions.""" + return [ + # Core django models (not user configurable) + 'admin_logentry', + 'contenttypes_contenttype', + # Models which currently do not require permissions + 'common_colortheme', + 'common_customunit', + 'common_inventreesetting', + 'common_inventreeusersetting', + 'common_notificationentry', + 'common_notificationmessage', + 'common_notesimage', + 'common_projectcode', + 'common_webhookendpoint', + 'common_webhookmessage', + 'label_labeloutput', + 'users_owner', + # Third-party tables + 'error_report_error', + 'exchange_rate', + 'exchange_exchangebackend', + 'user_sessions_session', + # Django-q + 'django_q_ormq', + 'django_q_failure', + 'django_q_task', + 'django_q_schedule', + 'django_q_success', + ] RULESET_CHANGE_INHERIT = [('part', 'partparameter'), ('part', 'bomitem')] @@ -409,12 +419,12 @@ class RuleSet(models.Model): return True # If the table does *not* require permissions - if table in cls.RULESET_IGNORE: + if table in cls.get_ruleset_ignore(): return True # Work out which roles touch the given table for role in cls.RULESET_NAMES: - if table in cls.RULESET_MODELS[role]: + if table in cls.get_ruleset_models()[role]: if check_user_role(user, role, permission): return True @@ -474,7 +484,7 @@ class RuleSet(models.Model): def get_models(self): """Return the database tables / models that this ruleset covers.""" - return self.RULESET_MODELS.get(self.name, []) + return self.get_ruleset_models().get(self.name, []) def split_model(model): @@ -669,7 +679,7 @@ def clear_user_role_cache(user): Args: user: The User object to be expunged from the cache """ - for role in RuleSet.RULESET_MODELS.keys(): + for role in RuleSet.get_ruleset_models().keys(): for perm in ['add', 'change', 'view', 'delete']: key = f'role_{user}_{role}_{perm}' cache.delete(key) diff --git a/InvenTree/users/tests.py b/InvenTree/users/tests.py index 54d56759f7..4e29bf0497 100644 --- a/InvenTree/users/tests.py +++ b/InvenTree/users/tests.py @@ -14,7 +14,7 @@ class RuleSetModelTest(TestCase): def test_ruleset_models(self): """Test that the role rulesets work as intended.""" - keys = RuleSet.RULESET_MODELS.keys() + keys = RuleSet.get_ruleset_models().keys() # Check if there are any rulesets which do not have models defined @@ -30,16 +30,16 @@ class RuleSetModelTest(TestCase): if len(extra) > 0: # pragma: no cover print( - 'The following rulesets have been improperly added to RULESET_MODELS:' + 'The following rulesets have been improperly added to get_ruleset_models():' ) for e in extra: print('-', e) # Check that each ruleset has models assigned - empty = [key for key in keys if len(RuleSet.RULESET_MODELS[key]) == 0] + empty = [key for key in keys if len(RuleSet.get_ruleset_models()[key]) == 0] if len(empty) > 0: # pragma: no cover - print('The following rulesets have empty entries in RULESET_MODELS:') + print('The following rulesets have empty entries in get_ruleset_models():') for e in empty: print('-', e) @@ -62,8 +62,8 @@ class RuleSetModelTest(TestCase): assigned_models = set() # Now check that each defined model is a valid table name - for key in RuleSet.RULESET_MODELS.keys(): - models = RuleSet.RULESET_MODELS[key] + for key in RuleSet.get_ruleset_models().keys(): + models = RuleSet.get_ruleset_models()[key] for m in models: assigned_models.add(m) @@ -72,7 +72,8 @@ class RuleSetModelTest(TestCase): for model in available_tables: if ( - model not in assigned_models and model not in RuleSet.RULESET_IGNORE + model not in assigned_models + and model not in RuleSet.get_ruleset_ignore() ): # pragma: no cover missing_models.add(model) @@ -90,7 +91,7 @@ class RuleSetModelTest(TestCase): for model in assigned_models: defined_models.add(model) - for model in RuleSet.RULESET_IGNORE: + for model in RuleSet.get_ruleset_ignore(): defined_models.add(model) for model in defined_models: # pragma: no cover @@ -118,7 +119,7 @@ class RuleSetModelTest(TestCase): # Check that all permissions have been assigned permissions? permission_set = set() - for models in RuleSet.RULESET_MODELS.values(): + for models in RuleSet.get_ruleset_models().values(): for model in models: permission_set.add(model) diff --git a/docs/docs/assets/images/settings/social_application_configure.png b/docs/docs/assets/images/settings/social_application_configure.png index 52565e84cf7abf76d16b6991f6b3166488a790ff..6eeb026761085324ce0923eee89acafaa21761ff 100644 GIT binary patch literal 86333 zcmeFZWmsIx(l$(lIFMiyJi*;{&;$q$!Gr4ngTvq&LV`<>!CeN2;BLV^c#y$eGr03k z_Bnf>Je5 ziU+rmPlEYh*tAPQoyQ40GB*O6&;&^rku85tB>WX1!O`?oMr?))S{{-NB$M?w7~ zje??oi{P)c=`HGi(;#`?VnO-I`KLVFTdaSiv5{#vUogtuf0zA?y#D+&A^(wF|8*6! z1%WIfCRTPRtjw(JKxS4TGusPRRv;@Ekd+k$gb z*>`j5N@|%7RhP&`KY~ z=wxC2Qz{Cd6A+oS0NLriaI!GBgaDoRN&lb#BGW$~Gm*adgT&5^pY)x~+ZV!CwxAcB zjLeM8qymp#ym-N9YiI;i5P9?O;>bIGQWHBnYakPoqoX6EBO9ZYtuYe|4-XF$Gb0fFK68U~4+^3tEv)|% zWC{6qt&sI&a?-PAVqs)v`ny6PC-8sN`yZu#=KNzZYb1QEkQn+0iGOAPBLhQ&zjU>> zw>AI6B!&h|Aajrf$kGmiEXVS<`r3hw{z2cLIsX#(hZp{396qEgfihNxU?XP{Jv)%V zPy8@2vobKVDgB9fKBgNq|1s?!rG;%l$dbP={R_?CmA0}~va&K4_$%=KCGw9#|IYfQ z)K9wu<&2CVAUh?n1xVmuu;ydB`TU=Yh=7g3c3>Bf;XjrA55Y|)iuU>tkik#6|Di#~ z^1r43UG6_~kh4YVVX0>>@OKRU%Dh?rKQ;f0EM64 z(eUq3@}~}eU*H!F3=Mz~dwo-of!!~1kYN0yRd}su%=F7+KBm8==KBd{AhLSMNYMKk z`2s9_O#k)l-!l1_el`ogG!uXD|JPGwBP8$$3AR5QG=WF7UzhVyP=rtfw)`Ck#+fX%}Y%si>DN;m|yp2e+39a=tCOPw}HvL_p z_whm+n4Vl051O?4`BzaF`pRtZOSE{`%=KcL)x@Z$YHeSLAdb+~{r|KRRZA(UJH z_@(w<=<)ci-|`W;b(=xz<0A7v@<3+%Bo^-w4UkmAiPcB}5ANR0m-EaoQ=pSDxZ`=LvYGfHZKmvM3gjXYXIbsG z@@a*aVtk3MSV(WM1JbIzwz;{*&5__#`7NqEubb{L+|%^pVzj}si$vWW&=^-ySdMK% z-q>+kOK`-Snb5YJX-|oW09f^8?&LX2!n&ybE0lXNt7PslBzriWG_8nC=jj8v$Tx4b|8kVkJ8-y@Yh*D&&Cm+d3S84FN%vN!7N9ITLMu&9kx|=%M zWcJU_4qjYB$o99Brng}O{3S--uOg=pcT#;+;axHbBbE{=+4*jA(9GVH(M;;~6L&>z zt5CSdg6;UH<3d=8z+q~4!JEVHLgQX8Q?3q*)0opGM0G~PXM!}NX6;12AzHjE>J`Ji z$v?XDBF#6&0)|8q4Bc9&;sW_Fs9^1Loj}p5Vp9_rb#Aw>Ih0_1n7PdKGA|LWS zzKNpgklU5ulx2sEn#;WmT57nCF~g|nvNSYpEYmo@AV*y*4zi>)Jdb+ugJx$&s@{1{rcE6fUxIz*KV>R zsnu@0$XGf__ID@)eiRulR6Qb2Mg5&pcycM?EI667fs5fXiZ$XQg-xBFfMROiZ!5p4 z(u~0+v5N5kubd*+Ah>6?=jA+V^#Uyj%EMvJmVp<%9GPu;#gAgw2z#1J@#{Os~dmX}r1k6{(k!2ekW=YyOMC6)bkd=oU&x@=-$=BfHKSOYy~3BCbn%8e^+f?K6}b{ z;i#+Y+)>Zg=w|nVODPl@^@#`W;cAgxu9DF`ff*5ZG3T`OUfi3i(9dYc^>`&yJO>8f zgoGwOf48%BuB9b-rZsMxOrd=ysu3xGr5G_BH-g=zJE=^`QQ0vSX1|;IzNXABy6U2p zb)DOZ-PAAlF@si=vRQ+=*^m?sR2igU#h$2r6ogi1XEK)w66{H|`7mtUpDY03HM9pQ zOZq5Vg)P!IAZW^E(^=z76@Bli9<9AAWqQ53yxHGVs#?^_QHjyE9T5R_B6@qHK3=?1 z?}-^4Rop*8;#DH>p8K{BTMMvuV}93LcvoK_d^KNV*xNrrB(S#Qsu-b6-SNnspW%{! zFEq6rL@`!d6zQnxUt;SG4?43bD5biMS7Wn%k}};UGK9zV4Rt*vPm8tA^Dfc8=*_OWI6oGs=j?T4VA$QoC_Wp&9 zh9N17uhi|WBlPUq@vG0j4aZGwf#nU)pG z)Y(CYBpum`a2MSaB9XNiT(i6v3y5pM39ry|KlT39o?wk=gYtdzq@Pe69$&kSfh#{g zSgAoxCYFfhTGFP(O7kYdFBH{RNrCgttUx%qWlKm>gZJvOq z(HLocP9<7U3UHcX+*)TqwZdZ|8x)+ScXAW9DVM-=dV9%t>{0>9V8&oob`!%>l@QD4r?iq1)3%eGkWhArrk#{CoB-cs zD>2$j>t~|5cJe>jvZx+$SJoC3lO=ao=|8JGFkhy{sXcQS$QpJ}pPFF^B?Fdb_o9+8 z4uUCkbc{PtcY8lE9K|GI>Iiuo-?J>hH0!1Qnb+nYr1+^}Vk}hIK*wrocz^B75_6IRqX%pjT zZSc0y?y?`vig_czba2mEIdp=EDIpHN0qCF8pFKEq>RwK5VPA)u4P}_w#FgqeZ^C1I zlx)zIU!AH}E&<+@bxM)?y0lEjSj}dIm3djo9+6$NPH$x{>-3cpUKor#P(`FJC5)?J+Yx4mb~|4r zV&(PAXWxw<5v?8D?hDT5Jgw=j@tisP4kRAv zq8D(bz%GsD(e2umDqB6R#09eM=D75c0-HLKsWxPDB7TRM2h$T#k6~1s6bw0hi z$QSO2(+7668q2*EEA2^RUGmg3UIz-(i)%L=B7CJm#`xMA)aFW)xgUlu?VGzIz7pJy zp17Lk&U`uut1CG?4?gQOF0P`$nk9=XA=>1O(P#3}(%3B!|6%>um<$nL20t!v%@87p zy>DajAVAQWJCF4YU&HMdRx;;I6a`;>`Q)h1tVLIFRq373wW2nGwAosX7bS+yD@uuk z;m4EbFt_1!?+6#++(^CN-mrFqg@<10CHs#nSF&hv=pBa@bChy&a+Why0>#$v1h5ak0BWh2v=i>y)_tW;>q zz*DLOC8So0(8(BZ4U_P=ZRzSH=3-TtJ;UlN`db0~lr3$W^rQc_p| zg+lO&lP_6`>>UY)6&)F{fB9HKn)O{snnGSMEC`q`(AeW($<6u^SNdIq_K#PHK(tfI z2gcfFkO&jKwrean z&gdgkSEQft${^P&JS=9NlACIw=sX*77nO``SLZ=+rS2yOI25`tNa88jxjVCwuG_E zQbT}OrTQHk%E5)}gB2m}ZZ1A%>x&iZMZZSo7)V!)>P4GOlJ#eBaqd3A{D^om2(5Z3 zvcoyGyi(N3?2v%2VDw%&t!QIv%^GyZQlg~(2X7{s`~oqX#%|sN5w&(AVXCQn`091- zlKW$OAIj5Ca`1S^RXL702khMa`@L!TjU7Qg5_=UDb~;)@SgF^0)?(GKMnokY2FC?5 z1nqX({kfa_)*#|)I^UJm3q-`cdA1H?A4}UyqH~<(*YoDxL+9|l;}w{j9>YdMGJIr- zfgDi#+?VA%BHFRX!CA7(p`8rR8#O`WHKi*&sGz*L(N{mmV28+zG ziC!ytA(&rw=6VN8?eD8Gk$i-9?dk3hiPr6jlNoKM4jhLdT#i3^H5aqL(u0S`!z2c+ zChB0GMrnztxYk#XSuM4rjt)2h>aC%R=dNEvO*TVVz5RAKZ1+jJO6x~R_(lt+Z<8h! zJ18fuscPb^sd~Rhg3sq+)byBd5+%gzE5BL&5<0;&r0!}^- z=9w;Vs1#FJ4~FG#u`7Oo3T}M97)lU|Y!l=k6=Zi%JiY4fVw;Ib?Ng#e1WfYI+=ot< zDEpV3Tn>9Xhz)=4p~=L3$C_t5^n?~Vs6Vkq%=^qGDR*Rr2wAJyWjl^z9*c-v>2y8i zq?c66nKE3K^&O5&E7n!dbohV{)bhB414ibZHlR*^ZYU|HPDCCS#+TlNX^W&JMFjq` zFi&4L9h!*Rg#lRztbt|fqapkA?ni99gL#Syhh~z}L>3|6`X760y)H4eiI;Vys=eRt z((Zm0Ig-YgelmkSZz$z)(eQ52jybJ7&LS}|a)XE{p zk*^3K$yf&L%$&x_&*RauvSu$US@Ysk#^|WZ61Ua&J6!>JCh5u_k42awXf$>^5A~vl zlcS)Zx^dG^X?eVo63!4F*{%V@^I|E*NXyn5%;ZO_garwV^6vX+@{Kx~t?+A**R{bW5z%4Vo(x)w@A26Hv9(r?$+$Xpy?s z!?$Y0cC&q}%xi)JOlZzDp?nFEo|6!V72oez@Op1Ca~z%7sQCDB1$E`aZ{>8p2Du_Z z{dVMOa>8Od9TmYk^pc84$k_?ZXYy;$`2-twV)1QoEu7^WMu^SF^Cy*RM0d{SH?5M_ zH(1#DY>Qppu7yQ2@$JD95~JlGEhZvb>Q!Yj<5`zi!cz$xjHQo^Jk8AoBI_-!l2pp3 zmjVRvC@5Nl4T9_Ijf;2}&`c;vuIG&MOwN-MTON=53S3%4JL?#y&YWb9L-Fr4a>`8A za%!B0IVmCJo`fcBVMwaXC~Df1>G=~ga>XtU%WAqFzs^RC4_d=*K%~n>oS@i@$h6ye zBZM6NF?Hv!0mJUNnGWq*svn9A3t{qR;0kq6w+p%4qsqd2LyA!7eVB1FKEa77bqZ;9 zO?(?S74I%i3j`cAfiX61uGHNCs#o4&z*dBkuEGnmNT>_Ml~-|a`0XsotsgQd*r&Dy zPB76yA9X^*V>ljETg8Yo?~k1KD+POIBhc7*iX*o5KkY<|K;*oWhtD~wxqO{ zcaDMSsUY1-g;(J(&x;E#gR{JYbCHdfUl8hS?w;g0s5=n_ zcE1+m~OaY}ernvb9M+Zr?m4i#F;rNnrz?h5#{!Rm;Ua|Q~yAQs=8b9J* zmZna%UQ*&9RbjyLP#TEdFT$Gfm6k8(A z1GhB$NhSt>?h>3<@{;EhU&$?t_8T$qy+DDT1Ei8j5 z>~z1^D~6H=>4Ux|Dyx|UOSs03@G)2Y7ua8{Yk=p{8m3EO<)i>8uvT(CZ8bT`yl!Tg zaN{fM9HE6g>9M3-TqoH={lK`!l3zLdv=#3lm3mVf>!=>Yv1X5iQ4SDYI$<8>^TEce zgjF$QsEHWQx&*^{OPG=3X{IDc9H)kluos?;a_UP(+3E3F4y?Duht4h?OW!SEl8MpA z{m+TT58Si5S#YW6Nyl}s2X}Of!dS*lT7tpwIKn)YAy^hb!r-wJDNWm>%hEE#EdKt8 zRB<2j>aBDGcpK`mnh4b7(H_C$`#A!)-LP3(QUuWx&(Ob!&N9M2{*^aJy@ zk|d*j^(KQCb=XUWR(2{p0)G}Nhs!6Y%aS3Rw)Co~ux zwdG#8UDa#>I~EKYMe{PrFVX>r0IEE*8SM>Mc}+kSqVrtEW3RBk@@{TN%}Zw4VB@9Z z!M7gK+c@z<-?Ii)mF{7_OE6u_2y{=ZvL&UQs(=Z#nTZ5$zs4=s0ZTz)SsG~$$xa2v z*#qN~D`s*JfIX^$|^=FB&qV~?+r z@EX-v)5KF=S&)BAiZ`wBInp}Gb3F*CTA4bREkh+CP8Ghd-a0VZ#%k72UTo>cel$Nk zYP~3(GQl|`Y+#a2FxuHIvR^Ho-2pk+3qed za*tA1E5B#{t4BEvnrs47%`>c(lPT-PQB8GM9 zUMR&+jCcz5FX>H%v9ASx#R&I;oub`DuZf;UWRx__5u;Qd@6()x5l&cd- z-HahGrvpxsc?O&>Xz;m1#jkaT4a^a8kRL9FfyJ<=K_S*UAp`1O;~&acePcHwM!4yS zmQbBTs}PvFxb#SM8Fcr|LzZM%qWte!`>bvN*#Ud1UG+DW+QvR-kY@1<$!=S(^SYgcatmE`T@ub z-rLwl^=4J}0GwRJ5?02nZh^Cnzp#-tYF2*p@SSh+kGZIqN2j|Rh2UIOa*lfg4OfXw z9>U!cNi**rc^;`+2{Ct|3hh#R_US{JP?NFgJ7POVqu4m@w+W&OJX!6KR%XQwKC^js zaJI7(-$-b?`=OB%Z#^xQ%z6^(B*NF&SPmah&HP;S^%?s!`_GLa`bnXd#$h&WNeE>G z+}mJ90-^JwLEgrzui+q)=+dAidNl-PAfwXHu}f-fLeR3r#g+gIC8 zN+Amt@C`JL=YokX99O59RF4ZVAAw)jke;Rl0fH&)53&`>S+g?d^? zOB189O4Nua%>7TbvL*693e;i25%{o6#_`WwQ}mN43ei`P{;COt28U#VsALb*bw5?l z;tttYR-n5%mPBvTf^jETuc#SYB#8{Kz9%DoDP%4E`~XUjRpci?4P#h#CdgNVb}t>` zdoLHCkDI&}#>_dOkp#(M@GMk-9~Q5p-5Y#Mu=VoUj3>P|ud0Zv88zUcb|5XCfO--| zoRMAJTP51&q(C(-rMxFvq`|d}BIPu`8cS%K-5JBplvZJ1Ua?J~WLlqR{tZtOIj|MT28RA&^2QuCJp1u+P9-V+{I(|xX$HJQoC$ZS{- z4|<$uM0dhk46wPWj8?E|wS#YSKv7byVUTluL z_xy{GI>~8#*%wKOY}}0r6)z6FZsE~gto=svNzm1yN5|aZ;K-r=4!VpfNaB@fv8U}2 z??T)f(ev#XKU2KptXybQ$O8h=0*pihQ>P)-LM-|F_H+18c1bGPABQ?*m$h?5jb6A^6|<`#WGoWJoNYB#jvJyOciALNR#3b% zn><6KVHYXNV^o*U)sK@h&|S@?Y9*_fnHzDk%o~CA%sDa9;QB{oo(Sf6#SoZMw$O;= zEB?*7B0tsno-2KjXzF6%nxgMuYqJZz+)s*5&U{b-7jg=KE)_!?g9C_Ep<$1{>TXbLGUZJmu$ z2Hi}Is^@mYzeSN7QoulHb8VY5KsIsyVH-s@u zVeE6O?TT6JcC@@!@)AuFhU&3CRIt~TbqPqky+{Er`3)2suEqFCG%K$tzf+B1t%GJ{ ziQ?oy!l)NCSpDD2ayv#py=J>QcwCu$aaGMTskr(bn>rtsMy~bb{Z2Bz)rPi6B!xn^ z;Pmmn@J5s2I(`J$mz*eQ`a-*Y)$d`wcpovKplgZZa1xBTFlI86g^IoHJ*DYGcC` z4-p0MA!@A8YejXKHeC{04!9;R;5B5mm+uJixY*oG8Fmq@!jd0LzB7E3)C`N&>&sZM zbtXQ{Oms&2MBONAG5cajHxe|oSTn{#ILOvjW?vv0q}Bf4TdE`gRZ~|Ol`V80ySY)u z3Ai$dQv4#Nd&0VB!RuW=bQ!u{D$AX`GHMZb#1NM`Zm_iMFxwJ;5$fZF-!kj=6UJdA;@@q8&=Ei z7mW5^FyV}tvm)Y9Ze_*a@sAxUW(TmjtVQ7@u{~B1buXLZuPgqR$%$u8??e$XjQ9GXCd5NHCZRaXqv zKVo~%x<{cpr!Vi^+N!HwkRdznA8&BwK`vWO5T%|u7^85Zklm;&eHM7OcI;yAfS^Jj zT3T8j!|@}{-rwuRYq>+Z#RNlnMkNu}(KI4H7%@d>JQxE-6o?c>G;uti@$6zN@-=#& zyiqsd&STmTBZ@=kuu4v;fuBIxA;>{kYn-QWe`X0Y@Q?u@T(8ge!ycjEGe^2!{au=Xx#vPk7;Ds<5s8#d+~ zo>ooWX0SqYCNA-FV0K?tkFawwS_pn`-!>W4l)>cBgCf*q&RA(=e7jyx-heyo5+w zVS~0D?5!+Kxj<5m(c7y`%tVuHFhth%?DJL-X5a`;5d{SU_x!6h>+AC3tBs)7(8y>- z1qu!>-?97Jq6cY8U;KSYD>tQel{-$}%J`Tt4sZda6jXJ!PG)m02$E^T?{ESzw4A^y zLQ)elR!ZuT?OOfhZ`4G(aX`(Iggd4J*p&<#X3mE7e9m%uuOvn@g(Qf!``7LDAI*L< z-9;l3V ze~Hx|H5?o23VlUn@*%Ka!&V@NbL>jXze*dXQJ8oR76}ts&C;1JyRaybV8WLh7ERwK zv^Y!ipLp@672okma+&|z5yC*@Ub_7q*xtE-nRS!HU`Yex^| zx)#9-l$dHtL~VU*HM&biX`U*P6jJ4_$z6e1%j-~+Ovf~aT+2lxy&WjHmaXlQBFcXr zl>({(esouo$_2P0%j2*)QS9$a?;?@Oq(LSzu3r&%6^&7(7R~r!%=_9YTaC{+T(v0% ztBWN1a6K_dL#PDXDB5qXYs5)7&%NQwCw9#4)DjcoqqF%O(rTtW(A|^sOwYcc@GI#d z4TjD2kEM6T{b}K>(koBm38(xt6^!9YT01%F2Dve6bhScM_8rsExKC)x#?wj$#imLg zq5B26t|G%Hk@cP_TzOTRc2p7)U6D$%gAsiKET%G86Kr^Wcnao6t?>8)tgw5~0XDq4 zd%krBpTKJRwD{gm#28{xqIF!j072cbMF|Vl8b&HVOw@+93q?f-NAu^x{2isVE7GL` zluQ#rbxnka4K%)HGt_}=OBn-0ou~*I*?s`Mf7ijuTvZXfa)IP1?mD@vw6fI7xhWfD zWGKU64Z~tV&{biXJCWSEqhs;1@|ARV;3fCWb`qlu4%=A8D*HAH3UdpS;Uz4t z*4&EyPV!&xtx~${G69vwJeSeFys)KwkXnzR)>EjM@~bw1ydejkKTI~JC@)5Umw+wjAjLp8|<-QyE*ViO)jZB1cl_j#Zq zUp*}|zZ>&QX!Ds+66v~alK*&6;T9K1W*P5#5Uiki@ir5RGO!1U*eu)DBip zA5_7??a)jhU3p2$yoZV3D)@tDMJHku(?q{vk`s3jpP*EA&fvk@2%Ficp*8((Ucb%N z;jt#3`j#Uh$od>h?N9-E|8_)$YnF1(3-EVKULrodHSEW^>2oY$Oa{$4#0Q_!rW9M# zXsNGX&(S<9ww<@?fbvQYZP4|kp_d>x2qY$2F95WR#w;m%@dVyXHxk^2S7`P}lv3tY zzN0lzGUEjJ=Lobe*as0l$}0K7)gnX2Z_8F$Q>NdSZ;q|(M;&NFMzVv!ha06L6!y9o zm4*svrZ$#!Trhh(oH2`2Lwc4?&ap+PSYaQ{Yu%GF!GJ+__5Co%`EL7K#$JkiENhGV z0pTU_>8(^rsYWiYZ-I23?4uH%k; z<)6g5fwp5Rm%8#fDv7EU8-ke_gl5FtgPTP;y>MlyYAhpHh;;B#Js+FXNNaPR_vn-@ zL{Wiud{n@oglOZ7j!l*Y&A_aEs3=$qxlA>|k!MdsKQ+G5$<(VPRg>Q#P*PYj%vfUF z)vcy#NUP*=n|?P-CD0-7F7dow+N=^N`W}9yudj{_cX-g^+afdJOp_YfyzFl1*?ker ztD}m=w&MWjSM2T6Om5tV(vV%eYKKRT`Teso3|vr|U^L=~P<|!o;M=@?lKf5@s0P6O z5)Pl2G6~CliCe#nz$gGZ7>Hx*Sg~8tb4JrDKh>HP^?VeX1FBHj&fBs$&J`6*e4Liq zP<<@v+>UEgZ3uAR7C!3?goyc1x9=u9Xf-DNu**G22KpV{sMt(lS5M!>yNqe{G|xWW>rJBObamNEEp}Ba=DSwO2Ep!t z8Y+5G9u3ocg4^yK?P4J!2l5(9M14#22Rr(qo9U=(l!MzjdoxAG-6kz=ex#Q#sjiN?2JQm-(5b>@}*qX`+omYUWTr8o%kN`aBUl~ZEb1#J<%0uQvoK8?sJIbRfp zRMwOvQ4gC%nqzD20;l-dW0Gn!zt*I`#pAXfvRN=qxuvRZehW+cv%J~^&v*UE)&PEc zfm2IEzf-Ai7XFqd2-ZywjPnEKRtmy&B&)vY>waZ%)s9o91G7Eh*cg1n6U8z*y~vo0 zt<|B#Gxp*BlO2^>4Qaa~uDINi;U{~-KvTrIPazs?w{tKfBV#O|vEoTEJhBnBHCw0M zl~qLA$)uG8r zG^+#Svw{iF#Z5`}3nc;JG^ooI#~3_T0pFBz3r7;Pb;Tb-Whok^2y??8Gn=WYm(ZLA z5phgbTn+ZihjMYGlM6zi5^r!JD)vXg{XqZM84%=Jx~rCe`)BbPsf(yIu#d@@%|jJG z39mS!PXyAm6a;YuoIC{K0{g^y>q$@AbSc%I6|$*|_|g`5K!VGAcFKa!5AF?~D;p2` zkeJdw>v-(j+u~ifyn@^}m$-uswHkpkhc4cUz8C0dWTu1f&di5H-XNum-3OKTUN1o7qUcLh?@5vKCdyD3=Ct?qpbO zn#90#vGzqDIrB0xkDa~|ty3oLFs9I{k87=mgC)7!4^ripdAd{5iBg^gz|f+0s4T%g z9pZ-??n(RX?D$saB<+fyY~T0d22)>?oW}gS>KS3PNo$-tjD@((p%Z{CzZ6X~4>H)H z;6kKFT%?2-^xm&E}eZ7`M8*JY9>KXIggX**@kDnTvACL)NT6M z*Ni)AEKb#%8JVWh6r#{H1_lONwCKs*ZO7dGpfqKb2zhFW=AF0Az0xwWQaNY#c|C19 zA}a1J@WjSo$G~7Y+07xgihPZ7(P=@p9y?>R4!U}_WWd$VWHn3}yh%*+&9v+cZBxa< zPg;eqs$ZKIw}ul}qp1~OcrneeI(!~wc}rqXvwqNn!=uo+U^I6BU{CI9c?TcDM@C^B zLDoZypRb%Vk(T}{nULlfIcIrj%Biv3B_9L}LW2dp-SF`3Fn$yy15l^X_HD&R0G(GL z$^n#u;|a+G)0FDhV)c`~+1f16d`0VUbof^le(ta{9gR!SEIkSQPCf7jl4?MSy>N_{ zY_14*45i@}1u=unW4n^vK9BP|Pg*_qk3lheK>wo<=|5&pCumw1oF%JUxaFg(oKLWx`;} zxU0%<+^_=P4eIV%*YV`JEh?G{ziGdR0E9hcL7u*_bX__&Z*8xhm9;NJTg$Um%|h;Z zvF8BQ#QDLqsFssWK8E8U3W^hK6+@hAGGS0081&Qefs2^(q%>mIeG)q_!!+8PbZ?=u z_Dr-_jx1+*h^w>ydmTeG=6&_0B$;}^=$JZ0GT@Ddc7iJLEz(?AR*wVY^H?Z_`i<9WFMzLIOilsyu<*@8h}OiBNi+2^RSUmNJ!`C=PdL z+FJIf)S1%P=e(fG?Ajjg)qs-JxsNZ8pb`M~~}) z=6f_o8}j|9orvLR&k<&<>&M%*P2>IsRQ*I%?B7^9BkrFzj}9VcLt6Q&kTLoZV3?M` zFgwia=GFJjpOL)B`tj20W{@P{Da-2-=^#>VuSCv)&wKQ&#{Oz@A9}vM-`*aRAAGE* zj@LJ^dn_j_TVenG%H+7+^|h0_x&@UBzkydVew+LJakXaQelXnPnT~L3*73&jhBnIhK1+8j>*8`Y;TZ{JnlxdOsI{!*WtCp*7LBZ;COMj75*RQyH% zxgEfZZ??zdEEG2nbNw<^h*astw-V_u{Ego95kF1-fkN$fCO`ja z@=JT^hriKVH})>lm zs8PNPzd2p|t4nHi z-V61>bvh!S{;KE=kVZ)$iT?ivrMIV-SI!YTo10kYORK8`wN$(}f%`vPN+*Uqu|}6w zNJH}*T#+LWkV}QXl0g5BF;qg3*n=vLM`HhmD4bp>g`z8k-1k?A+;AvTBcYz|95cy) z-w;XQzW5ey_%>Yl7pL8j>jfo4LT`D5gW`9NCPyMhf|a`K=4{G)MxIv^fBqK0e-vrz zeuj)y+l{#J-ylpV92sKdc#%st@bc@e?(zd93VG~hBz_ZyFS?LTO!yN?+Z!hO_4bP` zGF0;uYG4_^KK&m)e(>V6Au@O*?osgkF2Hz@!c=6n6cv6$Bwm8_GP!p+;cw8APly!u zzmWQGNc}I2{tVIoh0*_qmg)Z~7!?JDyYMIZL*<92vLdl8E02%5`qCf^_A`SMI(E)H z|Iqx0)1^pQ+Ga!%dd+wb@So?(&`uv;KwKY3MP+Qyl@8R8(c$nNP49=QM@O|LIw~y| zT@_ugX17E)Y%?_+kGNPU>^G9~w|rQ|a64^smdKsDUc9uQhjtTmOwC@mGZEBpgu4%T zKyt=S?E-e!sX7Kd&)SRP>J+*fRvW4v+oq{@X;`TKwriRz1R#f>;d$@M>O9r7llVU*d+s!_Dd|YssxY zgXouW=1()k2qXJVLT-rVhFg}vH`XZ)omrmMBy+c-yZQE0k|Kh*1@;3wuCsZN!h?M! zE4V49+%v^K@A%zT^p~Skjxi!QabtXMD_aW<=q_)kT>O1!()3MFs_ve;TvFM6jPgd; zl0!BM94TqPmT>B~Rmbsy)A6kb;-=bO2Q^t&2r;?7+NtwW;e}@duTLe4&PzQn5Xqke z5dYMz(`zF~B7t03Vkh_^jf-w^v&&~p+Bz?Vq?RIbAWlk13jwty!xu4{6PQ=q+;_O;b;V}H>891!J z9wM29nSlBa#{Ox0m2hNV*fxIDdg@5fDi2FMRt=1v+_tyPSRSg)>Hs8Ti~VNg)s#q| zQXRo|eYFHf^y{&Z1$LLXi+u|BiqqolJG4UQA{1Du@(cy1I`5$;2p+_9g=p;(IrM1h zm90~nwH;x&uV78($9=ljSa-B{&~yqAIUNh>#9Zn1}4E!wNBhx~#&tyd7T6GBaN7m9s9}->XABIwD!Ug2xOQ)N1Ei zL}^(EH+^L}+F?J|l4|Pi;;r$YOqUi-W_)!Y5Ui|x@ru|zq`&mgH>6>TT9Pw$3#;k6 zDLr&6o0&qK`;~g2T7B#Oy%k8MkK__jy~6=lV;+XFcDx=#4*aN-kaDOXi`kfEHQ8EQ zV0uv7bM269x8e|((7lY!e%(sOD*s|zX7`~^J*>~!y=D)Aot50M@m3v zS?5A@3klcuH6nUB7W$#*)N{gfE?;NzVwuDftZ1T@pc>|D;K^-QMnieMugO-ymE^i( zAFuRfw|ezheOakKWK6Nqb-8ap)l9B|X5)wt!IJuPH6#D^4QTx9){FNw5?lItU5Fk3 z_=T7)hN(brUlsG&xc!xvuB+>gM6S5lU>nV|QNha|d5xua2HKVB>GOTpGe1`7?B%XT zuM+o-Ov~m~ukGfLzX^xgl8EN(G4x}si0f)y$72~eP#3TB9?-sKnsrCik-1q_(QQrV}NAocwUVK94?{Av?Y!S@k5z z194w4FO)P~BgdO&Y0GJ2Q)fDgP3O+#*2rRKVB+l)K`WT-mzDj^h}jkQp4D>u zNfDAVV6`++3RD}o+1q%0dq|HMP|%%%(OdtRiEG-VnH=| zIxb>v&TsVVd=rMY8KyUSKm8uXRQgQS0EyF4lXG>svRVB#f{FyL86Hsx ztxFo5Ia2i1aXDN%1tedNtpRp}fs`xW;tQvDR<*py1+JIGHYN9#$fwaYI&#vP>a{)R zjR)M#4!R~|(s54)ja?T>l3eQ*!$)8N@Z^)N7Oz%{u2p+St~x|F(`?O(wdQ%>tmpXo zG}n>(;z!{0>h*c)ecA4UjmZy*=K{xb{kfQ7Jk_9@#{G+3or`6O_{B-H>t!pAq>J`( z2cwRGi0xo2bjQ2jg zG2VOQe%rA3UTe*==KRf)wPT|Czf#{U`+QMO1UchQ{3s-y0WOH&-z2OQuANj(>F|uF zI9`f@JP@tZ_iG?*1|UKEPZUxQMhmivK09*P27%RkD!j@^Va_vYZ27$HFYXB&LF%0s z%1PTAX=&S7#8G@<)sh4m3QLK+O=~`N7|<(Gm3Gf9-|;r<;V~Em0+-ewzqUvuppG;A z&vSnvOor{BDXl4*e&7_voj_Kevos6%prXP?>d&YubBYH1PQR~_?lC!HupbxG>*X4H zE9ORZFKJ=yw=8BI)y*VM$>RO#ROfz&?)3_2qQpUIjI>n01KtPG!Ruvb*steq#Pst( zWHRaG?Ouuf$vP3I>IIqO;NW2Q{knDN%2AUNWrbUMNtpO?e@EJfx}0?0m0L_hvICOLK3Y)Q?|>uW!u%a${g1-yb&P;}=o z>3&U_AE-_*=e15b#U-a-vJZJey=eaURzO)-Lf}P8uLDVWi~6Uj7US#KXAHxX;#K3q zn$fA1V-&<0kmTk&8d7Vi(&l+iKDpe>wwW$dp|X-%eX0n>vI|0qj`_sT_%Ccb6VnH1 z#PR-#{(OU@FG3C249fhD?hB@hd>=mP)ogpqR%nYV8g4*whF+DVB(evK-GO@n(T6CK zbfl)->=Hi%UA@B*#I&WeyvTte|y zj$o>3UWJ!E6b?CdkDqWYM;(0P9oZU52}^K}bm~tUC`hW@@51!#JyU@+#ZKSOXl2VS zHqY!3kH?NFxtguYC##lX0n5nZK+36gKg*Q3KA%Dx}t5CSK?M1vh>o&eU)<35l2| zP3l^759LOAcdIm8dYLh?x}{VR4q^?EyRG&_*$P@8#Y-J*$baC+e_q*7kT1tekD0vFZ1UZ2u4b{Iw4)9PoIdvcS0ciNTs&eA3NIi&;@$f4M3 zJqCpTOUz<`p)qcHnb9v=^RqC z>@?$Mt-E)TM*LCF;V3H=OT3qmA)@};J%+XkD%WybYNmLf{U(b~)FAhCPQ4$cb`(|EjjQzpN}ZtR-d z`BfJsc!|vP@jy6!WqbJg;8%%XScVE9%|WLsc(HA5v0^At|E>dF|5B~?^RZNF+dYho zAiXT7q{G^0Ig#I0O7;V6SHmM+WHB05`#E9Vcn6q0Jtn7eCOq=i1fhB4)S!-kf%STt z5~lQ7>U@`R%rr&6=c9<+T&^YI6656uA_H@!Sez_+Q3Bfmejt}ovf+Nuh!}NDzEAW6 zRm;}Jv)n!>ghZfAhr{LC>Vzgq=c-){*2E3?{e0+(%I-ht^t2r>7ATIpkzqU0@Nl|d z7C*Ut&pp|PS56FqU*ZIzZf=VVk0^QJ;L7(&FOFxy+t6C<<+-eQd)xUuWM?VEqWF;y zS@$_;#1L(mMCO}r#Sz)oO&zyV#k8C`kEu zucXN66xZAxC4{?$OoEp3!q^}blWZbhvxjx*I35`vpmV>3`FY;zYtJPBQTuyX3wu6X zr7Z?8Z?I*?S7HjOy)W*IVG`uu&kZ{{LZjUr;@&^bkFRW@j67iMx$T|ci4G%?6Jnju zuT{|A2wm*jpx;$YQ!n(F>rIe2RZcO^i4$6h*nd0h>1N0FTo2YNG9%MC>Qipdc-48jb2kY0N<*8b7rs`EgEvop1%4G5r-96WDccquVg@$Cki}ioTdeA36NN2VF zpn&EaUR0Dl)!fBUG)3)8g}b7JGl3?zM>RXoc?#b);Bgg_Lmu-v*p16{o+Cq6Q*C(Ai) zUh5^Nao=uSEx|2oi*9g4pLXswviO=^Zya!7;kA{)sL!cw9P!1!;7}q5kl6izU8GHW z74YS?|D_u%Iw@0i`bo1*qxM|H3vAP$j54qd>CH8LPOa!=7DjbOWBF%6#zGvcrLN0q zVW0I+c~HU$hxAI=t}!GB{#}7B?@r*W4o~NPCTg$T{I~I$>IJ+kvn=?{ddIZta_1zz zOFJhrv4kXiX%_K_ro2>)-e*wP3UWSZM>qxBty4bFiS79dOqysBgGOkoDPgZ=o*UVW?5{V>tYrIo74Nj)BtyMp$!Wva@F(xHSIkMkb{CTyl0 zN3#=r3@AR#&($m9?i05Y(=7Nazxc6)28?;~82Q(Y1w27Au(Cv$zT*MPU6$6~Sj1yH(p3C+%5CBoc%;B&BpKt2Jtdu9l++=+8+KyP@yj34hp! z23Z|P&Jg)2M^M|Hnlsg__O61=_>hCh8@3+W*q#DUS9nURXzwX5@=mx%%_j`>)EQV{ z=(E#H0oqzzLF1hh+c+iS1hRLck;SEKH8xhc^7k2*%G(HKi`e>Ig3I)nh&yuBQpIjH zc)BMIa2%yqVUZX37^kk_61AHMXP}@G7W-q zlVkPhR@?r_9=18It$wdIEOawuImuJPSP^%cLtn$w$BUfgv!o3k%bS?7dRM<0pE1o?yb8grrl|qHK)YYM>MM^Io1)M2(7@mEh z|5?6fj)tUYv(5*#7rK_1pswc+mjZjZzXpE+z!}wh?yq96pgQ(k1GndRWgtOaYVSv0 z4Sc<2l>4&(tJdqN7vZ;_Wh>l|e$icv6OnuRNRj%{Rkr0Z5W+OMUJ|F%JI>j*LDKf5 zZN)5V&=Gg{8b>bQn!q3Fl6pl7v}I}q%U!gRSS3n(>MflQAdj>>Z+gs)4Cakoj%M}p z+f{6doQ*5koN36;A}Q8#Labn8 z`V(}TkCIgak1GiB*kkJh>0Fslgl)Tg26NkmC8H4L-A>9T{55dgc5q2^D8_xCV?*Gc zN9FLw3OHNBiA1!Jme1Po%(5+2=tw@?Us=m-uGjWNIGeL#sz5;%5*9KV*9S z&Yl2fLEp(-fd;=%8TM>~e&V<_6x57|=PtU|7du&eR)eA4e_PvW#n_=(JUyXRB8IxQ z`g8po%ty%0{`Px2GVs}=RRLL5h`d?YuKSF;1=Ld61^4?#G-EW+F~Eg95mq-~R2pd= z{3wgURcS-jIGykd@7={QLXQS=7EY6QdgxZcAW#M(1p@E->5s-)Ar!Yzu4feT>Diy<=*5Iz47E z**JXpo~`Q zygnFxo^9+kyzGur+0rB5PXbLIwodd%22o6S=^hx8Bk4EFUMh1#;!Wd72 zj(B%1sINRq6w{@~fWc_m*;Q2Aj3Rs|$+6qFo*Cfdym+!+`Ef6<&%dNh8#V8X9< z6D6Tny%|2d9XXO$;##>}#NU>8uo)R92qjfI>Jry9bpl<7M%-7H-IpmZ@DIRCR}c3o zS!|3kLM_{3^T)jbndl)~2|w6;oMm_vG)a%RYmO<0aL$?1*s=mE~;P_C8u{S1xnt1HPY2*vU!{gXt-L-tAFBRNW2y7srJ4 zYmV2lOT*pGB59;pBbF2`_tM|!!0sOvR~SI+7{rXqyWD`*L?`UQEfuxuOF1y=T`vx|Ohz<58%I{`Vxsmy`=O%5upBN|C@yk@| z4H}FcJa6)EIZc9fWN=CgLD=v;K8_3tYUy}zyqgfEd}(DtKI>?|squyc-}^fva8E+DS@-akl9De2h#^Ly zDl@7ySQ2VhXGlnbyDcIF$B;9q3OpM|n@K_5atg5@%(?+@-XonTHI1=*ZNWHFH z!5U-05XOn-)*?1(#xWKtbr=#x4|yrSBqz{^iEd63tyMAaG8xq{TCGL5x1sA~6Vb;e z0-MPw`=*8$Ya2-7;%B8%Zrhlj@&6r_@GRmONg6h`03F?_*+%TN_e&hS8}ATWM0%8q zkIbhc6^{o?mBe2aCfj?A7h)%-3;2-2Sb5Ea(e)SYNyq%+^HZdw;iTVCh~qH}L;ThG z1Y%ZlLjUfYFPvoDGlWfYFmW+iGoRE=R_w%Ad;fS7%4HHuA6&O{)Vc=v*ov82QngDj zTZbV67aPNUuNOVKzYzI|w)i#MhUe~~AZh0#e%L8uIeH209}I($J|#D>CViwu2O|ir zy=)o|ODWeZFofO$2&@P*Y>_;TuT>>3+edZ866Nkx4N1Y&2GU*EoE4k~=X#}wn zv743EvTl2z)JuFUIXb^+5!m_YV!Xle*YpkISeEINK_?JLU~mXnK@s|zs9NA~->r}@#n%=Wk}Pwd9x?Stq z++?PzvD1mrKbk^#O1y9FVTFzsurpSOri$Ph*Va}*3*g6$WRBLk5U$(2HOx4haeNP< z*3j){O+t@&EhKqGW` z@!nO!kilxb2eG)sn1qf=I^5nN(~zuBJBnn5`64!zK)3l0ui|oc3lDZq`?Wm+xs1zB zB*U@5**J*ZrK}zhMyb(9OqVC!&J{>9^hjKlnzu+cwL#)Zg}t9bP7NEx^jjvCx4MhWA40OsSmP={OryW;2$t!Ka@A~3m#zwmg`u4*Knsy$`o3`K>Tipq@ zSjia0Y9}274OO|~V0p*^$vpYEojqh|zB%7H|K-oL7q9v7L@g))3yQ!;3Vx{XiFZ}J5+gZ-+7CAr6r3y8>Mcd$aWe*lU=b}4303#*H@2G_+qpx@LscrI3CX_CB59IT`lKUucKB*E~>PP0XMtzL@* z8!LqvPmA;xS5CuonGPXX1B;8bM6`Sx#%new>p}faE4s21%vw8Cs+251c7e@(Q@yEY zb8y3UF=^RrQFmYeaJnLEL=xKw2GBOK?ZEnONSr3dOJM`Ya(A=gLx}ZC?DncaFN^5T zxN=j^v2*D%B(-7Xh1xP=LceM@;FTdADr!aTBH=T)te%eQaB*eF>+ zrJst`u5#C0AHLf-3qc+2MKT$<@m`R>AHXrPyFgslyT6eOMmerB6x;#KLTC|28MmTy zJgtu6^|Ib+1ko$%-EamoML3g#KxUDz8PWdQFY;Wu$>xaK`F&<`g z@)uN}B}>>}{n9hj5*QR@^4N(IqL2T|gsFyo>`(`JE>^M)*Y$g3`Xp++9M*8{kVZJ{ z?-$w*5tA4IW{MpJf|2+~G~5XhA8+{^uxBZ z&MMxvopuIv<~L#R@qI``nXQ62o^jmOAmcwny}!qMOMSAv;dv5u;;7uu;)6fl`PhH< zY#DP%QpwM-@;6f=^^E*%S^D1Ay7+ey<=@lT-#>YhS2it+=T{HB9RMDsPZ#i20F+>G4esQyYmDT${~>5Ma|x%_gDH9&spJzDFxf5rX29)SCs7ji{^HOEz# zQ>S!PEb_5HlmE}3v9vhh9qoEXo#hwzuf7!p=ExBk@p$%M9Quz%mz4qn6nmW;`l~sf zvH)`oF@PmF{#LB-F2=Q`QZf=Bs>}Xrj`UDqj#vIf08vi`f9q%GO`MCh2R35)E;lA$EkMcS6a33OP zc`r?$ovN#>`N1h?b6)LJp={yA41ywUt`s}5)&Z_qQk5 zXTK3IiEM{^6oe2EbDf8gI+|aObbxd&$z_;!lzV|E6gC766rGg#VEK&xbh4 zTln{Cf4Goh`UYIjW?lK=&R+mfDy2p6kELvKyeM;fTE+{{spnFo{PB739zJ_x3rGqM z;N(@G(_F5!g@pb%&ZH@|BRln%pPAo_nSMS%k`9O6e-lvEk{{xAhUf9x|8d*8gV%O{VV zS~>cKRZHPqNFIH6!X5L05?)%i$|h~Khd<%UN9FVH`yJo?-X4T1bNj4tsBqJQg4yG6 zrFb-?*2CV_Ba$Js>C;+RP_&|MS>e5eT(_l$jdDt*E=dXtm-9ed5VyTO;WwdPulyU& zjTuC3KjlL%bhih>_0^&_$9E3uCSvGm`I9BfN7KS)-cF3;7k-9gzkWFjtieVvzM$NA zG&-3-8RRkr~5GpLtZq zvO)vY%T6XAKlCXQUDH!J7e+cO%(5kGO7^^)^Ox*w9aLX4Neo3s6%_b9Lx4l>)2s8XHqMg=0)CFDu(?p*K7lA8i;}sfzjD zK6t;Qy<{nZew-X0B?j*)DTA3T(YE&Lze9a+OZA}(B?t>&^X}m;S}%Wsql4!KZs^64v-iyE7}#FmaRl-BX*Ap%>HgWR$I^Zd0C^-_p| z+7?{@w7Qwt`5g?9_-xAQjPAXXpbQn?VCK0IY)z0(DsCW-kCAT2iJC4-b<-GMub%*M2*c@$&v~0 zwGPMqDX5>6yl|FQr*c!?_j_vP=1EqTk-NXeMnSRu;{q{6bESiO?q34YY$~Nw>RS)Z z+T%PSSKP-+;-19MMQo+c+&jp^vR zc0#SW+3ta1&fs#J?t%}v1K0Jqf3O=F_ia@Ba{&U zihz@u!=~+IYt~kr)U$JH>Ry)+{0rvE?oW;jZ&g{S_?M_91Lsq9gy_;t__i$tcLu1_ zA*--B!TzSt)|LC@OH-GmwG~+<*849Cx(gL12*6*u42RMVnj>!?S3R(Bi?k!!UGInx zuv1i6>Rx9{6p-AM&6_*%;ju{kG`GGJp^Pk$Ymf}))IQ$bUtJ-Na%kawJ!rxKM(bI| z#%A`1V)~o)qAxv(ePF9|AT-v#p2~CW3VTPy^LB^te9qO=fH4=f>=O{^EfjN-mY$cA z85_x{eEuHg;pw)clwa}yU*y@%Vp13<%8z;}>*lOf)`H5DB>946dOS*&8nm!2X*WmU zl(4B0d>-mD1aZ^g=8=H;Msku)E#jcJBeg}fwOdc)5-Wy=IuA!zP>aA<>Fy#t-FocP zOBS}pWJ9aX`g22CfJRMqrJ#oF24kF1o1%^eX+zK_PkukY8Ur4Tp}l#J%^$rGP0M4b zccn*NTf>bs@XBo^qg_?xDS%G7aKmq&cnD(8BGW05k`1OXw+V^{lS3E{e}3Y5r?nIZ zC~vHjv`2o4JrRV=Blo658kF$WS@0)ew3W2fDFxp_&6sDl^juDvuM zE!s5&ly(1Or?yd3#W3?F-b25-Gft*)c4MC!qsYm*2M3TkMH>_DW7{XKI87-UW(oTW zXZg>w8R$+ri^zthNu5o&u~c%O2AsoYrd{j0>0pzn`U7APtp)NLWFdW!KpIL4@+>9P zo#ir_f-g1J!?*({#9AoI@Q&xekq6~rj{I3M+S5*)JmbtQ(gTWD#JOsq3^PfSJL@%= zbPN|>+NyiDnBDI|_1a@`5ifSQ4zVyU!39LI!IeW&KNz1kTQ`?AOh&@ANfzqcJ64GO zg;}FW!8{Gw&F2*@kNMlFSvaLq7`$KW!f`M5BopoDN68+1j&^;7JBYUv81MP?1Pb#66cH^uR2`+;R${}zUQ-smb+qVNp z8rze-Y0%@@7SE-Sq$`1FZQWY~1LCvWa<-Bq*E<}&WIk#Cg>V0D554)gfO8G%$oP2F z^>J%)hfZwS7xmK-^8=HajN$I+&jG5CI8kioCzwfb95Pwi4K<#aV;b+uru(%@N@^Wn6=iX<`kHE{rF4xfsEJD=Z^vM zNx?lOE=?xTV7t_(!@HE-o)4%5MTXMfx{uJ)EF3-Z)`#PK&R7pxXV==+Qwttr*QyDsm~)^F(UOd2$k~2YRMwvzO&8Bl{V{7fj#+ z3#Zw);r)4y5km81P}>=1g@>I?2@_AIC!b7rb3krfFVEnJPkZEEog5G&F@Tu9r9)54 z;J!VJT0XN7?B9|r4;>K~-+l^?M%AB=XwiA1J+7+*`_79UZ}SIh+TP|1(2t08^Uxx8+&ZhGr&UJkbyOTOMWg>Z3m}hc zyhhSMm=27qHX@Ukw_dJqmZ7LF%6z&v->lVpMmgGkWt1PpaC5NvF+Y=e7~{QK19Z*Q z+`#@ijz;XUpZ@rQ{#Ti?x*KoDPr~qTIANOs^>v)hif2ZYO+!$mmhEyR;9c*zm~93{ zBZ$}N6rfg9xVA5!w2X80-hm{J7e;6!^Wx9m4=mrq%ox7Qh`&%^_dP6Zdk!4T@xK3o zs)LLMdW%0S`OYEJ;}T%Qn2F>s5IomTUJXGNCXES+Yw;9se$fs85|G4NaSs$&W;4B` za(JLDRw=F=nK8EP+tRTgHPWgmv+yME{{32Y_0}|=?xpajze_Ql%I#&kcaJ^VP`l0! zyxQzNR*?5WGx=@t{R)WTfkYqhQQ={>nCQAI^+w>OBGVfuMF_YkA;GBhvKx}Hf}4=! z@tM2*)XxeIVZ%k$v9PpZqk$5O1!SVfK~ods5;nK=>`++wn`PhF&H?Q+GGgCbpPp~l zM_lG61dZpI51n})>Y+r*eQTUS3_KyA+{a;)#t&JlHVWXeJ=~wWtLi7auR=M)Ck#)N zJX#37w32($$Y6X}wWq_d!h+DDECnZ+s+TQ=sXe-zngE;);RWEfaKl7-!u^w{BF-&@#wW!n>+8pXNS}CV1Eg1(%q6zke32#+exZq% zPm61U_L>W2W~Dj1s<>~Jt%)Xp&;0C*OgHaQvi0%uHb1j^Bp+z#V7_MkMILUiW5N2to zXlvmCM+a^PAahX1k$!A2K?k>?7(XF+$_ra!b8pf%GO2B!n>=VbJLZdhx3Alyp09Vy z86GSn$CPW6545XYTAHN&rqpcTw{f356-Om(vXL)_O3-HEb~go(j^<@Fm)Mmse>H@j zdU37W)Xr)tYsmSm{qFqu==bn;1%b9V`>_7TcsoO^b@%I2Ch8eJ`wGd&Hf~}RNrJXE zz=zA1zuvA4xrkD);IEl2RBtH<-}b2s%IxL4pme&#U*cl?t|0iPY3N?T{_R_NC7W#CG?X}XLIo(Y+}1L+BKqI>?iTl|_vvB~hp zn9*UBCF3(4oPwsTAro?JfS*M~(qwo(s(5XnG8IzdXSQ-hCdkHrLj3(wihb4 z164yMlzX&SX-uYb^J+QwzShOzSRUB+Y^Ldkqu|^dG%F1!E%Zw*vA2UD$H|8+z5IzH zMppBonHkG)lTR>cXl_X2o4qb&sDwvbn<~BCmnzGSR%tA`>4M^M76%R4h?w(Qb~R;h zZjHP0CtvBv2lqe6OIof)5IC2HbVE5{TZX&`>jgsMFUsbN$3`U{)D}i3@GmY(>S|TK zQk&YA5nFw2!BdOkTKhbH7&+1dc`Ir^7vVl%zsdC8?Z>o2-!PCVs%iFbLBSh5Mru|V z#MA-#GrAktuyS}E5+ zN7QA{Xy0``m)tOe&0&6$JINoRDjAI<8VR{JrM=Q97&*ph=Os~Mqu)(d zZ_Q!lTXjYk5IGTYMTghtg^#q$O=?Oc3S*g35hGb1hd|#Oio&dr``}v-=+t``W9Ea(5P9LW+e+b^eg$&5f?rjmB&|Z zoEKOG5)OaG*SA6^?AK#Gn*tH2JEU5WTl&|GzTmxlc^Q3@=1g2d>FS6DIn$C2UVSLM zd^Ddhy8}emTyUX1c6cEu+3Q&Fb*a~RLEEKU-z)0xQZZEaL3u$JhI7*B#6`2#d=F0t zEaUE5x-4Z^hxJ(3rMeug8i5qMgwIv$df92Ewr+(Sm_-I6Z@Ot_>}hjW2YeH=+;Gw`#OB74mG2vRFtktc&@zBo<(Wk#5dn` zC2-&5uQGPb+p$<$P|$uWl%eik>Z@dMr_QKctOL$O+ue1frhoA@WTFOJQKN~4Dze;n zT}mw$SZ6EwN!dI_?5tK=#(MCa$UJ=^!n$R$J?)GcM?)KHL!P8#V?J3j&^?pG>D-dc zsxeWkAug1E6WsbW76f1WWR>RF>#wK+v+jw>;&I!XCEPTi)@ZV;%Se1H;fkJT(&T&Z z(cPC2w;W-%bb-xt0?KMg`fTf75EmaIxRyDw(^!44WXCSi0m~4gG%I-GWTMp9m)pB7 z+lTkD6OKieQ#AdNXJjwbr%&&8t}Pe+Wa(FFPYvYe#aDSxXD@s1qc6(hvFoG%&UCym z{0ihgF7Wf$Zj|83YVq(fytZL&-q(DG%HHZ#Cc$3rJT6`j=h-r{^LfS=3I@0X+s721 z{@R+DQXCtQyZ54J_VG*o9_{YaZ>3^3RrN3mkiZ{t71I883Jjw7n3$)WUS}7Th@=*A++d|+<^E*$$ zbQiuev<+k+!&YO}6~9koT$M`M1$qITiFXGceM?6cNsXUd9c$w3IZtx2f1Hr?9dZOx zuu@qxEB&iF=?}jn=AS3M`K|*QTIn;-1itg!duChxjvx9)YW#tqnx5fSH*h{2_gPbOb6<1x3<|}4UxVpf8A@ty zPN|M+9OWwbLob172Jm7QGhN7a!1J9qH8b<^1C7Hm-{h z?=2b2PrLzk!`x4bW6=~mA)RJ)T8?u+W zzL3xYQJFWCwCnQ?XeQCVv|6*Kat zYyw4PeZzj^bfZmyLA{3=z;5zsnx@eDN`dc#hs1An6M@jc2f#sR7f&@RSnMa(eiB|g z`8^|ny}WeV<9;$v)b~p9SAhd47sLXx0)FcIs~rNI69%-;l>O^Q>@UZ73&b)UvBC4- zGwbi=c+&yyS?6C7&wt$X|NhU@n?R$`^VaXPYX3YhMGi!Yy#JEB`OnJ#x%tP+ZqNXY zLO17y|DN^xiBe^#lKY}js|Fk%TYwZk0UbW z{$2n3`{q9v&Bo?sRp`1dl}$6dxG&VrGLVkZuFPxCzTTNtqS`_HTaj0{IB5p zOO*yvBL9~Qu0NHJWg4*inPxBltfcto#yMM7b>{y`;d53L|EW8D`5*n*;943Q8p_HJ zUq5=Ut*x2wKKrxQA98wNV88>r78M&C8x`d;Ajc`Fh>QC#jS&T!N#(N`&R@JHmBMuH zuhtBqwYP=e6!zmb-PwnDP;=#$wQ?#j@V^L4aRD^3z$qdK7`K4V?HD`S z+1dFR2S3Iqx{g}`4W<+`&+J^R82+%7Qa3K0kTjRd4JrKDAwdB zf8c)?nen)-x&1%Qa$lKLSSF>|AKjL+e3wSdz(b?(y8dm^6f{r0s%}VHisn-({E1micp zL75Jp#h{7*JM;ZiYQ z^vCSMzx~30F#l9d>c?8J9Se0uEO>e|uwc~uC)Bq+`If>h%Kc?e@Y8RAL+y$g?1vtl zzsLv;0Ghh*8ma%XGx_a#fV(+&I`BYT_Hzj^(*Tp0G%~8=2j(pMR}LP`VaPiuK}y{v z1InQvfR869q0j#OO+a?-fI$px`zxoOKt?!3dzWgra8JEw-ILv(hGsUjJuPU|DD z2)Ni0qoH8-^2)-onQSrjjBC4l=h9NU9?JwDF6FnZ2XRZ{XNK7 z)O&VK^@_Bsq(V89LPH(3F=0Zusian!&CaNub{#sS#Em_-!$7CKFlSUT?)d3LhdO#Ipf(?{Z%p*n(CAak2>l5xSh)@erVX6p%Bx>hv*4E4XT&TnB)p$S%15Q;AFx|>vE;9?Jiz+IXI{Q@9=P*qR#LR##j0@rtQy?wQ^69t)7U* z(Z{u17VgY$163W+JI@=jc@GfK@tx6Bnc#R;Ri`2UZ7YzDixxYh5SNF3%@WRv^0Im+ zC4MQQJU&gs)*U_{sCy=>?b*m=b&-0hQC#lu&-$VCr2%C<2vO_*Eoih}7k1RM{2VZ) zj^0xscT1PE_UU2u(3S*;>R8Sv-3q-OEYQ&i5zTZVYtQX9j`hZ}s2~douioZKRWP*x zKQm~VSnbX*tlryWSoa~d@N>B7^lmeyhIB~PpJm=5X2!elo(RNe@T7kY4fD8&R+XcX zk(mx&oje*Q#xG`Y6-f4c67nK7oST)NZ2|{TE|&k$90w?(7|`Cu+@@T>lTc~wRP|wO zhfYI7tKM?t-MWkcT|v_&!>yOAH7o&sr-!5Aw;Mbjy<;s%c~NXKH8;T-Qh(h;!ts$- z#fKXXshK1C*+3721-1=P!I++gj3sCG!bE36eO{{i^)*OT%i#>gy3j(%p(`=8iB&}n zlm-JDjc&iFC@8u`C*RqyiVu&)2Bjyyg&jscUS|tXw{(>+Y(yba7AvA=RTgvXqx_hW)oM9uB5T0pzN^iA|z-ZelnC*77StNxnbQWAG$uLq?SQ%xj z<9Pf<4qBkK@72AUi=%_+)m!2P*)1frbz&eh0+f942l+GhDH~%gGoG177hPgEE?u?1 zanjS3)^}r=-I1wHkpgKtitFyL6@%E@(L_FX^a~DtX2a*szP(q(-l3;cBEpprLx^2z zqk=##7X)<#*9q?zrT*q9^JY2@VZ~A8x_f_79@rB0^mWckei)N*t2! z1g-OD^sO8jnfX|`tm{}T>Am;-@E6{ zndd&3A@q^E%*N%WW(f6m%{ZhOe5#oWd{r$FV~6b2fr>}t+8z^dKoex1l=f<2wxy1Y zInAd?nJA5D*N)<>w6`)m8Y*%A-mG#DYbga=x3c2IbaJ}L_75<8_gM$~<8gDPC{A--YzKy`nQhq31 z7DXGqLbeDZzhn#LI;^HyU;0(CH!OhD1)Qdp^+?6j) z3KZ*b-(?(SPr zra1P#+~%#fe-vEACBd-E9AkS^8K>FlgROIMl4hlcnG}w4U7Mw(1ef@~{+S?SfwLmoY^4NbyX#Dz%-KY(N9UiVQPnxV zxc4Q?xIWI-BEn7E73INgGb*lkD>rND#ACCTc!Po*T!C5S8fe$z$@LCu4)oYQT!Hl) z_YJ)_di7Yjo_m^mI)%|ZPjGx`XHZsZx6Z9xRMD?-G|;;8**{^IIy{2C!>i}?_KZAJ zWu;X&es3e;l3@-X?64flB-jCT@%^xka)6|#BeN_%czdR%eu?3wC#&u|!*_1xnlu-) zzo;J^)R*4;*8CN>()Ru^KGNJS)r*@FHW`TNuPosj1M;_y-VKjse6Py7tnSD@&=}&^ zKXzEnw5S*YQOmPEaDC<~T(U-{^zOdS!s?WZyk-M!gp9seu6f}Em01rXev#_hO09)E zyxZyIdXFx?^HqThf5hgSLsxpgvPRlNKhW^jA4NyO-bc?hrhk_2(Koo-uIA4-gH#;% zPJm24z-}|mb*8@KNvtfIw&rrV2zc@hU#m_-@SN_ti+1Rzo-xhmb=EH;}sICjBhbr|Pm_Hl@lj(G8nj1j=lgeANhJ#ba8H&>K$puPB|ZQC)~zie;Ng zDbmx%Rli%ru%i=JQDnrvMoqbyPMK7^LCn=9S-`jdD9nN0UBaDF)VrtjF5^T1{g28x zrSvhaDRlpRX4w0Nm(NvIwNri7Y^JLCs9Mb@IlWb%_y)d2#U>M%8@GW;=&z-3&$9iK%j23Ouvp{WkTzd(PM zdmS^ad3jj1+71`o5JcP$?kpY50~L-N9yK@W($m%@JK29stJJ5S^0*izV^aqqzSiBx zvfP6K#o3Z|1eBOP@!{mj9G{Kfy`w{ z#fUwmFKwG~lqW8cJ);0W8~IB0+NAg9b+$b7&?EOApRrZKv%r~)rFzye&$0uLXN!z& zC0{_g-)jwr9!<0^3gzdT4u_r3)Vuc}zev9V-k(3*zc$HHYd$6Bc6>Z~5a;oj3wgFo zA*IBvvoPTUeXB*p(C`cOz1`#u3Jkt(HaRGX#jUIIbxSX%iy>*Eh>9#|M5358!K1lP zK2)AP)SW-^hou84jAAOFpk*>Yu2N7Px%9jT=<;|uHjjSVbu~cqh4PNIgLp?oq`)2c z)uYmK)84jnf-FfOzi?}d6zd?@dlM|`zLzh%ETbGPqdU&V#IgmPB3^OsT|vB%3;vzl zt_FS72;Z2Rx=z_#kJVv@mDN}zXNV*#Rd)#%I%VIPF1HJxOrfGAO_fDu6o1i<%+iA$ z@OxKaHE#dJT2H9}sYeRNkxR4xhrPFss%mQ=g^!@3qJ$DkOZS%UP)b^I(_28gq#Hz( z4ryew>F(}Qx|>ZS-5?E{x(m_fAobW=+>UQ53 zU;zPXlb1|(>km${;aI$ontW!Q&bAIhw}U2ecyRqfpY(JcSf+l{4+3&M^z5Qbo3YX` zzaVn$9TH3!M12*A*b}dWf^%x^*T$Xk+1bgqw{dzOM)rUGQs@|Q(A*w|Vy0GjSeI$C zZQ|gyUo(N*`*7fOl4K)+)~|Xi1_@APJk?a=C(8KWLzn8K`Lt6-?3X+4r_E`EdXINw zxLzAhSG04uk%5*A4mQ;@mZ?J`a&P z>stZN9r}m$a4Q1N0-+OFEYJji;tP(-5uR-AW55rweE%!WU}cMt$&V8A1>MWQNVVGn zKe~?oO$%Z`m50^4mqq_MY+wvnti}|-ty2FJH3;GX7V@!GjENRdYRia+M18L4$;ag@qgl{s}nZ z(0qe*0t1pSdQ=mNw0Z}f(7y=qugtcrXrOlcL0d=19oTfWy@j5h-r9lIpWjru{Vq7- z>+F4FS(iS7?7@tGH=G$K2Ru2H?C*hH>I?rn_!kc2vG*%wrC9h@EkjT!cr19Em@ZM} z*ylDetC)t?zZQ+b*@8qxG>=dMV(T75_a8oa+2DbU($U%Je!dPlT8D3!49ctn0m)K- zg>}+CbpUrtyajD-ZB?Qu052a?RH|$||14P=AFVRVzs4;o7F0Wakk?H6zx|3<=?ZiL*8JnaSOGQ3KCH^TAKcd=e`s;w4z{y%87bF?J@p-f0>%(&( zBRzb?vmi3qauW#|Km7)m4Hu<8}49u5AYI- zl1yS*Lvkhp(t^HQ96vn!oU)G$2!8xS8$bN^=Ulsim^*?$fYegLS6f+p~{?bE)E zCb$P+X7}muB;#L%L=GUgxCGhH$)Eo?fBI?wx91+e{C_4wae%}^2cG})%D-t8sDJ|j zSW^?M_yZsK_gV$z0YXS&z5nn3{wVbR2NZwf$^SW^c&)S7o*7#O)Ho_`)z$q+9?k$1 zr45jV{FiPRX@HVvG)_UV3D1WNu-^U~R6k#MsB{J3fUo_FZ~RD^{}aOd|EXs3=Z*Qc zBmetDc>f>cw_lprBmWHl#$f+knmuKz<@?jB0j1}cTJ1`_bT+{EdzB*~!%h+d97$CE zJ$J%KDro1ci)A=LkHmRdLBGy>?3mw#k!IToXmgM zXN%pW;`ld#uH+y+9=U(fg`SJ*zUwV;#$&=#>i>sF5TFCCK6hQF6ik5L4v&a;2{Jb$!i2!hegJ4@F3`y=Pxr-B#S@&@aPn`vBj@5BVfw^j8(y9q+iB#Wdvq{cXV0 z{Q#BxVpR5QcE%T)X$0&|z*Y3If`<+e@bV-%0l0|at1#dg59}v9jfU>Sv97?5w|fWa z3ILaXl21Iya5D1p(DXiAIsU)<-cR`RmwW`WjDRrUCz9W#82!1JJ|2fZZ{?rd$so(|C#U(M-4#A8 z%!_J=V=0+LRz+v*XcWBSeuM4PIo+0AiQ+gmucV>Zey=vTsq<|_V~GD8>7#j?C*n^$ z84CjG!q41$HD2mhgi)_7k7@N-pJ>kXa&Ga?oSeIT>*vgeMJlJo2P5_d&APwbRT8()3zC{~`-x*An90`c4%adYCs+5zOg^WSx_5chCx>pYc?w41U=$zpu~}Tc zaI2S`wz~YJxm-y@BVpey-i0$2(gDdOywEbP=#j8%W5KU;LbQR0=5~B;+-pI&CC<3~Om?4g0JUiU!8Je5*+#1u1^H^y=g+x}62r zv~7UB#HJ|IFifKE2~~2{VytDlOsxu|WT|xcR5K-*&%*eP#*2m_$HLVcwxO@0v5kEZ zej?LL#CX}L)5b;y4f|tsWsA|J=|{f!JC6I)OB&>`5V&5XBD z!+Dsr*ESZ#xt7-_q{p_z(owOEtYx2+;v+Rk8gJ);WqFFNID=3YeMG$jAPOE zCKJ?@(y@JKUKt<=8GXF;XntAulwLiFfu+)U<$-BC9e9%Ey}nM#B@|lPj>8TMhyKHo=bH4(lC) zE5;B!2D_%oTs|FAv8SXm>K`hQ<}xGY2u;cE(qLnI)jtwx$L^MRuCBJRv07{&YqZBS z64n$|r28x`Sh|;G`(h)rQ=!K_dD(DN3B`H1@^*0={b;0u%~N8H{$ZoN0bR%~zwunN z!JIORHY5ee2i@6-nbFG1@%FZ{%tFw+mRIGveaG$Ul4J!w0$|vzWI6p_j=ez$|5vJQJZ~q-_(3#YvWDm*keV8gUeI zhw>>V_UM$erZ?Ado?->tCY52mX|BZt(z za{=}}AEU-T)#b4oSq329cDsh@-qpl-aoU`&SM2ku)n;dvR=jkqQ}0@;{m>!7j!~Ha zOMb?ewh`4W()%IR+^Yrrb$VKs{nPvPDD;wSQ<(iS7OA)1EH>wLWRwuaWytg@3g^tk zr`P8eWxJ^3msTf*?FL>lMn{>}<)aUXrN>#65MqX;98h*vyw?{ihR*VhN? z&r^=r#`CPhkbXVlaYYPJI}scDE@5FswF4?u>z}7A7!@nIN6`z5iRZp739y(?to<=x zD!F%5MU?LH4GB;eNrrnGZF6Gpd$Rbr+Axo`GAs6#dRy(jH@qPv9W9J0B}U zt4#?-z4BGgQby~;^<3_oSx0%VRf;uz9Pp&-B4xNILfqzYKYdw|$cwr8DbGYIvU>-H zY>!#Iw3I608k2DR=aEljtmf-@5gMr{cIKBOjik9pewxtFVlgd@cOPLE8JkRASI0c{ zb>~Yzu+Bm8h58+KvZRY6(Ay*9xKBY+)9e%74};k)ybs(KA)y1Hwy_xvV)K=^Z>*qr zQ4h(yb~Pksq9(>^*K_7npb;+5wua~4y}t4tU^I>J6m4R8t4sxgetG2tbrdr@^{guyLLRxsF!9xl zlzw5>(BT2F!a9B11ZqwDgk#a0f{cWtag3j>%e0{vr%DlfwTLDA{loPF3k|_v6#~S2 z;IPiRs(S~`RBCSbiH_Gljs)|-kPW2Rlw2zmC)#_%c;b2_1w1d&_73hxTC`CYsVID^ zX!D4^+Xbc{PJpPrv@399@Vc##telQp-qovvAma;ujO zx!MwLq3wr}G3G+|9_%W<>>fT~KtJH4tS5O0p%%Fq+0yg6CvYB2fAz+da*S+{Z$ zvsSs|=k76PJ3St5=4TY<%Ja??%5t~B8 zqP#fQJ@76qk>R&lYR}!yw@2h^*)0UJ(JX!bIqvxT)jp3$^{J-6dDKlKNoy%hxl9*& zVvBa%4PJL5>_wgDbDS#gNXIFe7A-DIx0*)4$|>iis7vibtz!H$d^<$9C^nwmy-^7}ixO*z-s4IDS&@Z4gZ7HH0*Hp7E7-(j>Sq?_)i z4N4b!RR=7C1IX*sG{a+~&r`Q^c%InqK0DE70*)e#zI_Z(c>p6ju2LU$=6(*Zvr2{k z8E$S_5pR{>*jO-8iFSUnvH)4F)CfQm26;k!&=h&9R#0q0mV(Wy8ea z?zI~J#{LT9GPMW@^0#yNqt3*Hjd$cN+IzZZ;JJ$$AbWxur8xPzvK@^@aOjaI43~Mp z-YY!ru~A2M3JFT4&BSO1tN-1sVefLUA>#ux7;6zM?W9gk<1A}vQrvVpiTC8oXRedY zK3>ak+ZssdWc&;9&@@Dt%sg6&uP<7N@DxMWNXVn0UdU35_dwHU$ zUo}_{4}$W1HJV1ni@3m4u)6MQ(23*#NTro=U(Yx7M&!op zvEtX^ix2wGCL=M~bCuStLZ_XXUI%$Ed?925Nn|m~bhD#r@1OK<5) zJ1Jt#y$#aHFfC8brNLWV_KK{3U{TvfgmlY>^2yn9Z|41G65pH$5!$on@`GbKC!eb9 z+m7wx2B8rO>aI`SUzr%3$Z1EW=pCuKmey=$Mm^9M*kYP)E&gW9o9c3UZ}G;!>V}Mz7%a)WHC~F3j@yopLrC zy=8v=bhAOE5yQO93e`Uj~cvb|0Jzh&tm2Oqq08 z9E|sUtsVYYCy-OELIY+V7%N0^T|L#8L;l6~BIyHce1=+`>fw)B#i85bW15$BPbrl`?e^hZM6rEV!S#*)l(ndow}_}r1R;G*WRPTJ$7T8-LR&$x4Uax zL_LfisL9BwEaJHyk?xR+*EZ;9;Jf7^Xd=W;&?1XZH?_J9E&XfVoD4kk; z;&hyA0;+HszE8GZ6*bJf^Cg~_yhYpwWU#HkM^Kf^S#rKH%tc44dmwbaF)50;c_Y{= zQi%VuPv5|BzcBUCdMcrK+TY(Fx11rnmv3CzF}cU4FFD8`j7BuMBa-)vjrj)>vIr18 z6RcEN+RWh%(Ic?meQxuti>0MCv#cj8wfRjGq7M+sN4=k+iFMkVqyDtrUVjRI5);Gh|ET;n8ZNkVQDou(2>?z%%GC2 z$N%t^?R zi;jE41l<@7i@*@eA2^wHL#GfUWW1S0&|GSIEYG0U>Zp&Zn}!kly}B9uc(LOyO~gd9 z7agDYSphU%UdmJ{h33KI*f@)x9@&nMR+4m1ao~lD5BdCbT5oZBID(7zOEPYn`O+Km z4CI>Z$(A67trX*6?>`YeVnkw?Yl$6{&C?r;U7IB23AInb^-&$Ks-#&MHWrS~Njb|l zU#j40kDc1z&P>`xKE958537$Eabe%?$WOta%hWJzUU>>7%G?bZm|5BwC$?5^?bp{YPzKfxZGx_Vi z7(R{Ib}6pcpXT0@4=-+vQ}o)hIgXRh>nQR`Z1C|*p*1aC7}YD^&0(6r>phbuQ-h!A zuX7khwoOOJW#yH1G43i6by9Ef67_#g z^5|)<)~L4*aP$_^)3DV`#X@aT*K#`84Z4jts;9hLgNP|4;FOz#Dr^be6ZzYCPuqXB znHvIuvO+6ef{F0CFB{{`n*naVE9^9Q{0y|TPtL$+FqBoZ&UNz|f;DGzx@C0(f%H*w_*Ze!negX?1vZTyVnUr^YXipY3nQ;G-78>8>oVO%DF!4J#J+w~l}@wk5#;n--LuO^ZpTtVvA?o>L$s#P$nA=>qs(256Hxr>NS zETF4Qay4Icn>xdsS@_Mn;iZ+)#-zwuOn-e&XsStd_Cx$aowvCuoxYmUHc6=p;5+v8 zTJ#(_u&VJ$ZM&Am%GA9kUd^b1WP?@%BYY{$OfT!TW5@oTb$!P6EOyDMbIo%C%Q-&F zEXD9KQ`)kL6YpLX9E$pL<|r{LTqXDPUihbp{0Y5Kj9)FE3N|FyCmut&tIzARhr6w7 z$YFgPk_uU7ckevmLuM;0Nu;)Y+NIt2w5bPayC=TdcBmGl>4_uSDWJTC4xM_j<7wWQ zfWuWbv?^P6D&%a0j8q=+=4ipOanR1^6UEaom(6N8i~2T%sz!s?zbS(+9M(0itsg@@Y3;rp028 z#i%VcjH2vPC36L&+Tg{=vbdM%zwXe=Hd27$YBtZpLkuiKS{~h*$LnMIS=Q(elj(Ij z2xZaNsch0>H|zK}xW@NYa$uEuS;G^~CwmKabnBnmXBiQT_ZJ9al7jKnt=Ny?l|5=| zZD>g49)iWK8RAwPpVOsRT57ag(CB!VQZDpP2NL?x5C)fJXvvjo84h{rG&DLvAKlBb$&hsIVaUt8-^v` zN4A}` zu=x~TCUZYm8N}Ye0NcD6VBhvq$15ld({A{rPFMx2IXCmZ`Mv+GKyZjOq*YdSs(wuc z)g3=$)nDmLv*@}iJeNXUF6C7M7eGcWPBy9(w4t=fUoPW**+JL5dwID1H@ zh<{*jA6{>2D`f^9Mfr!(V_Y${?kZhl>ik=GsXY|ZWqc2V9{Ak;du0nM&WaDXHet}Sc*r2W2cas z@UA1Qso38IOuZzGE0mgAYGeG`EMm?zaZs3wx;Fa6c3n}}Y`{;YH*bZZlDq$XM{a+f ztXsi{_$TF_O*Gf5==wgKYKbPl;xT!4bW`e~zu5qeV#SHG%1!+k32U^r^$C>YpgJ14 z$hA4r_Exy@T5c6@DM6`{jMLiA*8LA?zY?_IA0FzY4MW}GElxFU?lOm33#+cUVLm|3WF|t38!n0~6A78(!(eG|@@0$7 zWl#0?&K{=8ZfuDIrI;!qdEWvQHm`clzwPT)0H|+%EV;WEepzu$H(hORAQ=LT_6>P*DgKtd@QnuelNoNK{6x^ zr7IAEbMXqrb8Q?HRQ%J<{dqfSb4|2lpQ&?oefv?i z0k%ckarMG^b_B0v>E~Gt5A)ljK4aGwRkQ9w)rC!kgK=D}9Jon!ntX?Hq~%nh^y|e+ z466Y^oCpEp$$V|c=iT~y=BR3Od`*A5_Wi&=OiK0x z=~7AGG!W9fE;ca9?F@8fVqf-Kc;eLZ`LdXGe}|~mym?%PO@BwNu&Np&Xeg|h(NUV5 z=-_Gv!S7kDDV2pqLCD3DEd;xcTR1}5)XZyWC`kVmB}10}qVK*=Y{*{%P>3pE$iQ5V zR(X(aO}@N#0fOJVnacUIqZ<+U#|+}MJ2&C+t$m(rBZjN?L(|fo9Z7EY{rtagt`|hFnH>3PE+ILH<1BsoTJt?BQyBj$nmlgAuv8xzf9v4|0&&_N~kqiIf!E
CYw?$)mc1peSi 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ⅈpaKCvop|egrGmNC&k+~&ux9}pXR5zaNVl6(!`6nQzR*H<;VI8@rQ%$pBQF9wHs4-T$BIDmF6o~E4#NhY;R;=mp2DWB@S zAhPJam){>_u7$B|Hmo>!@8(|879rur2WF3Xsu)5Nq~o5*x)6cOwTZ&PHrA

0S5Xkk8;Gd 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 HP6