From dc37df94bd12c894ff0804426ea93fcb7d41513f Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Mon, 15 Mar 2021 19:51:39 +0530 Subject: [PATCH 001/160] login with github --- buildly/settings/authentication.py | 4 +++- core/admin.py | 2 +- docker-compose.yml | 15 ++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/buildly/settings/authentication.py b/buildly/settings/authentication.py index ff4a7cf3..c090b253 100644 --- a/buildly/settings/authentication.py +++ b/buildly/settings/authentication.py @@ -102,6 +102,7 @@ # Github social auth SOCIAL_AUTH_GITHUB_KEY = os.getenv('SOCIAL_AUTH_GITHUB_KEY', '') SOCIAL_AUTH_GITHUB_SECRET = os.getenv('SOCIAL_AUTH_GITHUB_SECRET', '') +SOCIAL_AUTH_GITHUB_SCOPE = ['email'] # Google social auth SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = os.getenv('SOCIAL_AUTH_GOOGLE_OAUTH2_KEY', '') @@ -115,7 +116,8 @@ # Whitelist of domains allowed to login via social auths # i.e. ['example.com', 'buildly.io','treeaid.org'] if os.getenv('SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS'): - SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS = os.getenv('SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS').split(',') + SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS = os.getenv( + 'SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS').split(',') if os.getenv('SOCIAL_AUTH_MICROSOFT_WHITELISTED_DOMAINS'): SOCIAL_AUTH_GOOGLE_MICROSOFT_DOMAINS = os.getenv('SOCIAL_AUTH_MICROSOFT_WHITELISTED_DOMAINS').split(',') diff --git a/core/admin.py b/core/admin.py index 91926ce3..5983d84f 100644 --- a/core/admin.py +++ b/core/admin.py @@ -29,7 +29,7 @@ class CoreGroupAdmin(admin.ModelAdmin): class CoreUserAdmin(UserAdmin): - list_display = ('username', 'first_name', 'last_name', 'organization', 'is_active') + list_display = ('username', 'first_name', 'last_name', 'email', 'organization', 'is_active') display = 'Core User' list_filter = ('is_staff', 'organization') search_fields = ('first_name', 'first_name', 'username', 'title', 'organization__name', ) diff --git a/docker-compose.yml b/docker-compose.yml index 0a252987..d2a1d2c2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -54,7 +54,6 @@ services: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRB qhqvJu1hKPYn9HYd75c0gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQ== -----END PUBLIC KEY----- - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "https://localhost:8000/complete/github" SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URL: "https://localhost:8000/complete/google-oauth2" SOCIAL_AUTH_LOGIN_REDIRECT_URL: "http://localhost:8080/" SOCIAL_AUTH_MICROSOFT_GRAPH_REDIRECT_URL: "https://localhost:8000/complete/microsoft-graph" @@ -68,6 +67,20 @@ services: USE_PASSWORD_COMMON_VALIDATOR: "True" USE_PASSWORD_NUMERIC_VALIDATOR: "True" FRONTEND_URL: "http://localhost:3000/login/" + SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://0.0.0.0:8080" + SOCIAL_AUTH_GITHUB_KEY: "076e9a822c235db9057f" + SOCIAL_AUTH_GITHUB_SECRET: "4282aecb84ac72a33db8041c0de6d15220f43b2d" + SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" + SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" + EMAIL_HOST: "smtp.sendgrid.net" + EMAIL_HOST_USER: "apikey" + EMAIL_HOST_PASSWORD: "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" + EMAIL_PORT: "587" + EMAIL_USE_TLS: "False" + EMAIL_SUBJECT_PREFIX: "NO REPLY: Transparent Path - " + EMAIL_BACKEND: "SMTP" + DEFAULT_FROM_EMAIL: "admin@buildly.io" + RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" # LDAP_ENABLE: "True" # LDAP_HOST: "ldap://openldap_server:389" # LDAP_USERNAME: "cn=admin,dc=example,dc=org" From b0c7e831be15256c2450269534e9a947b5ed33cb Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Tue, 16 Mar 2021 16:00:38 +0530 Subject: [PATCH 002/160] added django template --- core/urls.py | 2 ++ core/views/oauth.py | 11 ++++++++++- docker-compose.yml | 2 +- templates/email/index.html | 8 ++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 templates/email/index.html diff --git a/core/urls.py b/core/urls.py index f6b85954..d6821706 100644 --- a/core/urls.py +++ b/core/urls.py @@ -6,6 +6,7 @@ from core import views from core.views.web import IndexView, oauth_complete +from core.views.oauth import github_login admin.autodiscover() admin.site.site_header = 'Buildly Administration' @@ -30,6 +31,7 @@ path('datamesh/', include('datamesh.urls')), path('', include('gateway.urls')), path('', include('workflow.urls')), + path('github/', github_login, name='github_login'), # Auth backend URL's path('oauth/', include('oauth2_provider_jwt.urls', namespace='oauth2_provider_jwt')), diff --git a/core/views/oauth.py b/core/views/oauth.py index d21e4b6f..dcec3aa3 100644 --- a/core/views/oauth.py +++ b/core/views/oauth.py @@ -1,6 +1,7 @@ from rest_framework import mixins, viewsets import django_filters - +from django.shortcuts import render +from django.utils.encoding import smart_str from oauth2_provider.models import AccessToken, Application, RefreshToken from core.serializers import AccessTokenSerializer, ApplicationSerializer, RefreshTokenSerializer @@ -110,3 +111,11 @@ class RefreshTokenViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, permission_classes = (IsSuperUser,) queryset = RefreshToken.objects.all() serializer_class = RefreshTokenSerializer + + +def github_login(request): + encoded_client_id = smart_str('076e9a822c235db9057f', encoding='utf-8', strings_only=False, errors='strict') + context = { + 'url': encoded_client_id + } + return render(request, 'email/index.html', context) diff --git a/docker-compose.yml b/docker-compose.yml index d2a1d2c2..5bc01099 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,7 +67,7 @@ services: USE_PASSWORD_COMMON_VALIDATOR: "True" USE_PASSWORD_NUMERIC_VALIDATOR: "True" FRONTEND_URL: "http://localhost:3000/login/" - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://0.0.0.0:8080" + SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://localhost:3000" SOCIAL_AUTH_GITHUB_KEY: "076e9a822c235db9057f" SOCIAL_AUTH_GITHUB_SECRET: "4282aecb84ac72a33db8041c0de6d15220f43b2d" SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" diff --git a/templates/email/index.html b/templates/email/index.html new file mode 100644 index 00000000..d2595996 --- /dev/null +++ b/templates/email/index.html @@ -0,0 +1,8 @@ +{%load static %} + +Login with Github + + +Login With Github + + \ No newline at end of file From 07b299655b51020936654943c80cd5c4e5359d38 Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Wed, 17 Mar 2021 12:21:29 +0530 Subject: [PATCH 003/160] removed django template --- core/admin.py | 2 +- core/urls.py | 3 +-- core/views/oauth.py | 10 ---------- docker-compose.yml | 2 +- templates/email/index.html | 8 -------- 5 files changed, 3 insertions(+), 22 deletions(-) delete mode 100644 templates/email/index.html diff --git a/core/admin.py b/core/admin.py index 5983d84f..adaa3935 100644 --- a/core/admin.py +++ b/core/admin.py @@ -32,7 +32,7 @@ class CoreUserAdmin(UserAdmin): list_display = ('username', 'first_name', 'last_name', 'email', 'organization', 'is_active') display = 'Core User' list_filter = ('is_staff', 'organization') - search_fields = ('first_name', 'first_name', 'username', 'title', 'organization__name', ) + search_fields = ('first_name', 'last_name', 'username', 'title', 'organization__name', ) fieldsets = ( (None, {'fields': ('username', 'password')}), (_('Personal info'), {'fields': ('title', 'first_name', 'last_name', 'email', 'contact_info', 'organization')}), diff --git a/core/urls.py b/core/urls.py index d6821706..4e2657b6 100644 --- a/core/urls.py +++ b/core/urls.py @@ -6,7 +6,7 @@ from core import views from core.views.web import IndexView, oauth_complete -from core.views.oauth import github_login + admin.autodiscover() admin.site.site_header = 'Buildly Administration' @@ -31,7 +31,6 @@ path('datamesh/', include('datamesh.urls')), path('', include('gateway.urls')), path('', include('workflow.urls')), - path('github/', github_login, name='github_login'), # Auth backend URL's path('oauth/', include('oauth2_provider_jwt.urls', namespace='oauth2_provider_jwt')), diff --git a/core/views/oauth.py b/core/views/oauth.py index dcec3aa3..7374df11 100644 --- a/core/views/oauth.py +++ b/core/views/oauth.py @@ -1,7 +1,5 @@ from rest_framework import mixins, viewsets import django_filters -from django.shortcuts import render -from django.utils.encoding import smart_str from oauth2_provider.models import AccessToken, Application, RefreshToken from core.serializers import AccessTokenSerializer, ApplicationSerializer, RefreshTokenSerializer @@ -111,11 +109,3 @@ class RefreshTokenViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, permission_classes = (IsSuperUser,) queryset = RefreshToken.objects.all() serializer_class = RefreshTokenSerializer - - -def github_login(request): - encoded_client_id = smart_str('076e9a822c235db9057f', encoding='utf-8', strings_only=False, errors='strict') - context = { - 'url': encoded_client_id - } - return render(request, 'email/index.html', context) diff --git a/docker-compose.yml b/docker-compose.yml index 5bc01099..596f5a5a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -77,7 +77,7 @@ services: EMAIL_HOST_PASSWORD: "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" EMAIL_PORT: "587" EMAIL_USE_TLS: "False" - EMAIL_SUBJECT_PREFIX: "NO REPLY: Transparent Path - " + EMAIL_SUBJECT_PREFIX: "NO REPLY: Buildly - " EMAIL_BACKEND: "SMTP" DEFAULT_FROM_EMAIL: "admin@buildly.io" RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" diff --git a/templates/email/index.html b/templates/email/index.html deleted file mode 100644 index d2595996..00000000 --- a/templates/email/index.html +++ /dev/null @@ -1,8 +0,0 @@ -{%load static %} - -Login with Github - - -Login With Github - - \ No newline at end of file From fde95b5d316b80bc6fce351bbf3fd6a89dd79124 Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Wed, 17 Mar 2021 22:26:11 +0530 Subject: [PATCH 004/160] initial commit --- core/serializers.py | 56 +++++++++++++++++++++++++++++++++++++++++- core/views/coreuser.py | 21 +++++++++++++++- 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 365de054..5304b395 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -17,7 +17,7 @@ from core.email_utils import send_email, send_email_body from core.models import CoreUser, CoreGroup, EmailTemplate, LogicModule, Organization, PERMISSIONS_ORG_ADMIN, \ - TEMPLATE_RESET_PASSWORD + TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY class LogicModuleSerializer(serializers.ModelSerializer): @@ -278,3 +278,57 @@ def create(self, validated_data): validated_data['client_id'] = secrets.token_urlsafe(75) validated_data['client_secret'] = secrets.token_urlsafe(190) return super(ApplicationSerializer, self).create(validated_data) + + +class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): + """ Let's user update his organization_name,and email. Also this assigns permissions to users """ + + email = serializers.CharField(required=False) + organization_name = serializers.CharField(required=False) + core_groups = CoreGroupSerializer(read_only=True, many=True) + organization = OrganizationSerializer(read_only=True) + + class Meta: + model = CoreUser + fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', + 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups',) + + def update(self, instance, validated_data): + + organization_name = validated_data.pop('organization_name') + instance.email = validated_data.get('email', instance.email) + organization, is_new_org = Organization.objects.get_or_create(name=organization_name) + + # if the current user is the first user + if is_new_org: + + # first update the org name for that user + instance.organization = organization + instance.save() + # now attach the user role as ADMIN + org_admin = CoreGroup.objects.get(organization=organization, + is_org_level=True, + permissions=PERMISSIONS_ORG_ADMIN) + instance.core_groups.add(org_admin) + + # add requested groups to the user + # for group in core_groups: + # instance.core_groups.add(group) + + else: + instance.organization = organization + instance.save() + # now attach the user role as USER + org_user = CoreGroup.objects.get(organization=organization, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY) + print("org_admin", org_user) + instance.core_groups.add(org_user) + + # add requested groups to the user + # for group in core_groups: + # instance.core_groups.add(group) + + # instance.save() + + return instance diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 450ba88d..786fba00 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -9,11 +9,15 @@ import django_filters import jwt from drf_yasg.utils import swagger_auto_schema +from django.http import Http404 +from rest_framework.views import APIView +from rest_framework.permissions import AllowAny + from core.models import CoreUser, Organization from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, - CoreUserResetPasswordConfirmSerializer) + CoreUserResetPasswordConfirmSerializer,CoreUserUpdateOrganizationSerializer) from core.permissions import AllowAuthenticatedRead, AllowOnlyOrgAdmin, IsOrgMember from core.swagger import (COREUSER_INVITE_RESPONSE, COREUSER_INVITE_CHECK_RESPONSE, COREUSER_RESETPASS_RESPONSE, DETAIL_RESPONSE, SUCCESS_RESPONSE, TOKEN_QUERY_PARAM) @@ -258,3 +262,18 @@ def get_permissions(self): filter_backends = (django_filters.rest_framework.DjangoFilterBackend,) queryset = CoreUser.objects.all() permission_classes = (AllowAuthenticatedRead,) + + + + @action(detail=True, methods=['patch'], name='Update Organization') + def update_org(self, request, pk=None, *args, **kwargs): + """ + Update a user Organization + """ + # the particular user in CoreUser table + user = self.get_object() + serializer = CoreUserUpdateOrganizationSerializer(user, data=request.data, partial=True) + serializer.is_valid(raise_exception=True) + serializer.save() + return Response(serializer.data) + From e1f52e5c3a0a6cf97af328f4832626e113665094 Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Thu, 18 Mar 2021 10:42:27 +0530 Subject: [PATCH 005/160] remove user groups --- core/admin.py | 2 +- core/serializers.py | 43 +++++++++++++++++++++++------------------- core/views/coreuser.py | 6 ++---- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/core/admin.py b/core/admin.py index adaa3935..92eb99dd 100644 --- a/core/admin.py +++ b/core/admin.py @@ -23,7 +23,7 @@ class OrganizationAdmin(admin.ModelAdmin): class CoreGroupAdmin(admin.ModelAdmin): - list_display = ('name', 'organization', 'is_global', 'is_org_level', 'is_default', 'permissions') + list_display = ('id', 'name', 'organization', 'is_global', 'is_org_level', 'is_default', 'permissions') display = 'Core Group' search_fields = ('name', 'organization__name', ) diff --git a/core/serializers.py b/core/serializers.py index 5304b395..508a570f 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -299,9 +299,27 @@ def update(self, instance, validated_data): instance.email = validated_data.get('email', instance.email) organization, is_new_org = Organization.objects.get_or_create(name=organization_name) - # if the current user is the first user - if is_new_org: + # if an already existing user in an org add him as user + if not is_new_org: + instance.organization = organization + instance.save() + # now attach the user role as USER + org_user = CoreGroup.objects.filter(organization__name=organization_name, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY).first() + instance.core_groups.add(org_user) + + # remove any other group permissions he is not added + for single_group in instance.core_groups.all(): + org_groups = CoreGroup.objects.filter(organization__name=organization_name, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY) + if single_group not in org_groups: + instance.core_groups.remove(single_group) + + # if the current user is the first user + else: # first update the org name for that user instance.organization = organization instance.save() @@ -311,24 +329,11 @@ def update(self, instance, validated_data): permissions=PERMISSIONS_ORG_ADMIN) instance.core_groups.add(org_admin) - # add requested groups to the user - # for group in core_groups: - # instance.core_groups.add(group) - - else: - instance.organization = organization - instance.save() - # now attach the user role as USER - org_user = CoreGroup.objects.get(organization=organization, - is_org_level=True, - permissions=PERMISSIONS_VIEW_ONLY) - print("org_admin", org_user) - instance.core_groups.add(org_user) + core_groups_for_org = CoreGroup.objects.filter(organization__name=organization, + is_org_level=True) # add requested groups to the user - # for group in core_groups: - # instance.core_groups.add(group) - - # instance.save() + for group in core_groups_for_org: + instance.core_groups.add(group) return instance diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 786fba00..78c26b2f 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -17,7 +17,7 @@ from core.models import CoreUser, Organization from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, - CoreUserResetPasswordConfirmSerializer,CoreUserUpdateOrganizationSerializer) + CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer) from core.permissions import AllowAuthenticatedRead, AllowOnlyOrgAdmin, IsOrgMember from core.swagger import (COREUSER_INVITE_RESPONSE, COREUSER_INVITE_CHECK_RESPONSE, COREUSER_RESETPASS_RESPONSE, DETAIL_RESPONSE, SUCCESS_RESPONSE, TOKEN_QUERY_PARAM) @@ -60,6 +60,7 @@ class CoreUserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, 'reset_password': CoreUserResetPasswordSerializer, 'reset_password_check': CoreUserResetPasswordCheckSerializer, 'reset_password_confirm': CoreUserResetPasswordConfirmSerializer, + 'update_org': CoreUserUpdateOrganizationSerializer, } def list(self, request, *args, **kwargs): @@ -263,8 +264,6 @@ def get_permissions(self): queryset = CoreUser.objects.all() permission_classes = (AllowAuthenticatedRead,) - - @action(detail=True, methods=['patch'], name='Update Organization') def update_org(self, request, pk=None, *args, **kwargs): """ @@ -276,4 +275,3 @@ def update_org(self, request, pk=None, *args, **kwargs): serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data) - From fa95b7c1159b2bcbfe1fdaa58a465b377154dfea Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Thu, 18 Mar 2021 14:37:14 +0530 Subject: [PATCH 006/160] updated urls --- core/serializers.py | 16 ++++++---------- core/views/coreuser.py | 4 ++-- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 508a570f..f5d82c62 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -1,6 +1,5 @@ import jwt import secrets - from urllib.parse import urljoin from django.contrib.auth import password_validation @@ -120,7 +119,8 @@ class Meta: def create(self, validated_data): # get or create organization organization = validated_data.pop('organization') - organization, is_new_org = Organization.objects.get_or_create(**organization) + org_name = organization['name'] + organization, is_new_org = Organization.objects.get_or_create(name=str(org_name).lower()) core_groups = validated_data.pop('core_groups', []) @@ -295,8 +295,11 @@ class Meta: def update(self, instance, validated_data): - organization_name = validated_data.pop('organization_name') + organization_name = str(validated_data.pop('organization_name')).lower() instance.email = validated_data.get('email', instance.email) + if instance.email is not None: + instance.save() + organization, is_new_org = Organization.objects.get_or_create(name=organization_name) # if an already existing user in an org add him as user @@ -329,11 +332,4 @@ def update(self, instance, validated_data): permissions=PERMISSIONS_ORG_ADMIN) instance.core_groups.add(org_admin) - core_groups_for_org = CoreGroup.objects.filter(organization__name=organization, - is_org_level=True) - - # add requested groups to the user - for group in core_groups_for_org: - instance.core_groups.add(group) - return instance diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 78c26b2f..ca41ca4e 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -264,8 +264,8 @@ def get_permissions(self): queryset = CoreUser.objects.all() permission_classes = (AllowAuthenticatedRead,) - @action(detail=True, methods=['patch'], name='Update Organization') - def update_org(self, request, pk=None, *args, **kwargs): + @action(detail=False, methods=['patch'], name='Update Organization', url_path='update_org/(?P\d+)') + def update_info(self, request, pk=None, *args, **kwargs): """ Update a user Organization """ From 5ac65b8c5b77d89a55a4718351553cb53e2beea3 Mon Sep 17 00:00:00 2001 From: ashishkmishra36 Date: Mon, 22 Mar 2021 15:14:18 +0530 Subject: [PATCH 007/160] initial commit --- core/serializers.py | 33 ++++++++++++++++++++++++++++----- core/views/organization.py | 18 +++++++++++++++++- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index f5d82c62..a3bd2ad2 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -281,7 +281,8 @@ def create(self, validated_data): class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): - """ Let's user update his organization_name,and email. Also this assigns permissions to users """ + """ Let's user update his organization_name,and email from the one time pop-up screen. + Also this assigns permissions to users """ email = serializers.CharField(required=False) organization_name = serializers.CharField(required=False) @@ -299,12 +300,33 @@ def update(self, instance, validated_data): instance.email = validated_data.get('email', instance.email) if instance.email is not None: instance.save() + is_new_org = Organization.objects.filter(name=organization_name) - organization, is_new_org = Organization.objects.get_or_create(name=organization_name) + # check whether org_name is "default" + if organization_name == 'default': + default_org = Organization.objects.filter(name='Default Organization').first() + instance.organization = default_org + instance.save() + # now attach the user role as USER to default organization + default_org_user = CoreGroup.objects.filter(organization__name='Default Organization', + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY).first() + instance.core_groups.add(default_org_user) + + # remove any other group permissions he is not added + for single_group in instance.core_groups.all(): + default_org_groups = CoreGroup.objects.filter(organization__name='Default Organization', + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY) + if single_group not in default_org_groups: + instance.core_groups.remove(single_group) + + # check whether an old organization + elif is_new_org.exists(): - # if an already existing user in an org add him as user - if not is_new_org: + organization = Organization.objects.get(name=organization_name) instance.organization = organization + instance.is_active = False instance.save() # now attach the user role as USER org_user = CoreGroup.objects.filter(organization__name=organization_name, @@ -322,8 +344,9 @@ def update(self, instance, validated_data): instance.core_groups.remove(single_group) # if the current user is the first user - else: + elif not is_new_org.exists(): # first update the org name for that user + organization = Organization.objects.create(name=organization_name) instance.organization = organization instance.save() # now attach the user role as ADMIN diff --git a/core/views/organization.py b/core/views/organization.py index e6f81e79..96559d8b 100644 --- a/core/views/organization.py +++ b/core/views/organization.py @@ -3,7 +3,7 @@ import django_filters from rest_framework import viewsets from rest_framework.response import Response - +from rest_framework.decorators import action from core.models import Organization from core.serializers import OrganizationSerializer from core.permissions import IsOrgMember @@ -47,3 +47,19 @@ def list(self, request, *args, **kwargs): permission_classes = (IsOrgMember,) queryset = Organization.objects.all() serializer_class = OrganizationSerializer + + # /organization/names/ + # send only the names + @action(detail=False, methods=['get'], name='Fetch Already existing Organization', url_path='names') + def fetch_existing_orgs(self, request, pk=None, *args, **kwargs): + """ + Fetch Already existing Organizations in Buildly Core, + Any logged in user can access this + """ + # all orgs in Buildly Core + queryset = Organization.objects.all() + names = list() + for record in queryset: + names.append(record.name) + + return Response(names) From 60ea4b1c02659d5ac89432ae170bf6402777660b Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Fri, 1 Oct 2021 16:31:27 +0530 Subject: [PATCH 008/160] Updated dependency issues --- buildly/management/commands/loadinitialdata.py | 2 +- buildly/settings/production.py | 2 +- requirements/base.txt | 3 ++- scripts/docker-entrypoint.sh | 1 + scripts/run-standalone-dev.sh | 1 + 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/buildly/management/commands/loadinitialdata.py b/buildly/management/commands/loadinitialdata.py index fda5f653..9de415a6 100644 --- a/buildly/management/commands/loadinitialdata.py +++ b/buildly/management/commands/loadinitialdata.py @@ -17,7 +17,7 @@ class Command(BaseCommand): help = """ Loads initial data for Buildly. """ - + print('Settings: ', settings) def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) diff --git a/buildly/settings/production.py b/buildly/settings/production.py index 531c381f..a0c87568 100644 --- a/buildly/settings/production.py +++ b/buildly/settings/production.py @@ -16,7 +16,7 @@ MIDDLEWARE = MIDDLEWARE_CORS + MIDDLEWARE -CORS_ORIGIN_ALLOW_ALL = os.getenv('CORS_ORIGIN_ALLOW_ALL', False) +CORS_ORIGIN_ALLOW_ALL = True CORS_ORIGIN_WHITELIST = os.environ['CORS_ORIGIN_WHITELIST'].split(',') diff --git a/requirements/base.txt b/requirements/base.txt index 2ffdb885..87e8924e 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,5 @@ Django==2.2.13 +jsonschema==3.2.0 django-filter==2.2.0 django-health-check==3.6.1 git+https://github.com/buildlyio/django-oauth-toolkit-jwt@v0.5.2#egg=django-oauth-toolkit-jwt @@ -13,4 +14,4 @@ bravado-core==5.13.1 drf-yasg==1.10.2 requests==2.21.0 aiohttp==3.5.4 -django-auth-ldap==2.1.0 +django-auth-ldap==2.1.0 \ No newline at end of file diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index 7771732c..2eaddcd1 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -5,6 +5,7 @@ set -e bash scripts/tcp-port-wait.sh $DATABASE_HOST $DATABASE_PORT echo $(date -u) "- Migrating" +python manage.py makemigrations python manage.py migrate echo $(date -u) "- Load Initial Data" diff --git a/scripts/run-standalone-dev.sh b/scripts/run-standalone-dev.sh index a266e465..7cd07b09 100644 --- a/scripts/run-standalone-dev.sh +++ b/scripts/run-standalone-dev.sh @@ -8,6 +8,7 @@ set -e bash scripts/tcp-port-wait.sh $DATABASE_HOST $DATABASE_PORT echo $(date -u) "- Migrating" +python manage.py makemigrations python manage.py migrate echo $(date -u) "- Load Initial Data" From 0510488b7a7dd1caeed635c7da82c18399fd382e Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Mon, 4 Oct 2021 12:51:57 +0530 Subject: [PATCH 009/160] Datamesh update (#11) * Datamesh async fixed * Datamesh join function script --- .../management/commands/joinrelationships.py | 31 +++++++++++++++++++ gateway/request.py | 4 +-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 datamesh/management/commands/joinrelationships.py diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py new file mode 100644 index 00000000..2a60f3e3 --- /dev/null +++ b/datamesh/management/commands/joinrelationships.py @@ -0,0 +1,31 @@ +from django.core.management.base import BaseCommand +import json +from datamesh.models import JoinRecord, Relationship, LogicModuleModel +from core.models import LogicModule +from .gateway import gateway_custodian_relationship, organization_gateway_relationship +from .shipment import shipment_gateway_relationship, consortium_shipment_relationship, shipment_item_relationship, \ + organization_shipment_relationship +from .custody import custody_shipment_relationship, custodian_custody_relationship + + +class Command(BaseCommand): + + def add_arguments(self, parser): + """Add --file argument to Command.""" + parser.add_argument( + '--file', default=None, nargs='?', help='Path of file to import.', + ) + + def handle(self, *args, **options): + run_seed(self, options['file']) + + +def run_seed(self, mode): + """call function here.""" + """ create a functions for model and call that functions here """ + + """shipment""" + + """shipment_gateway_relationship()""" + + diff --git a/gateway/request.py b/gateway/request.py index 5d46933d..2c0ffab9 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -214,8 +214,8 @@ async def _get_swagger_spec(self, endpoint_name: str) -> Spec: ) logic_module.api_specification = spec_dict logic_module.save() - swagger_spec = Spec.from_dict(spec_dict, config=self.SWAGGER_CONFIG) - self._specs[schema_url] = swagger_spec + swagger_spec = Spec.from_dict(spec_dict, config=self.SWAGGER_CONFIG) + self._specs[schema_url] = swagger_spec return self._specs[schema_url] async def _join_response_data(self, resp_data: Union[dict, list]) -> None: From ec783bcda2ae58ae7aa9082a7996ee7ac2a9e4f9 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Tue, 5 Oct 2021 12:50:00 +0530 Subject: [PATCH 010/160] Email alert integration (#13) * Integration - Email Notification * Integration - Email Notification * updated serializer * updated unit test --- core/serializers.py | 10 +++++ core/tests/test_coreuserview.py | 16 +++++++- core/views/coreuser.py | 38 +++++++++++++++++- .../email/coreuser/user_notification.html | 40 +++++++++++++++++++ .../email/coreuser/user_notification.txt | 0 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 templates/email/coreuser/user_notification.html create mode 100644 templates/email/coreuser/user_notification.txt diff --git a/core/serializers.py b/core/serializers.py index a3bd2ad2..56347369 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -356,3 +356,13 @@ def update(self, instance, validated_data): instance.core_groups.add(org_admin) return instance + + +class CoreUserEmailNotificationSerializer(serializers.Serializer): + """ + Serializer for email Notification + """ + organization_uuid = serializers.UUIDField() + notification_messages = serializers.CharField() + + diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index 1cc8c47b..b3e4ce87 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -162,7 +162,7 @@ def test_reused_token_invalidation(self, request_factory, org_admin): request = request_factory.post(reverse('coreuser-list'), data) response = CoreUserViewSet.as_view({'post': 'create'})(request) assert response.status_code == 400 - + def test_email_mismatch_token_invalidation(self, request_factory, org_admin): data = TEST_USER_DATA.copy() token = create_invitation_token("foobar@example.com", org_admin.organization) @@ -453,3 +453,17 @@ def test_coreuser_retrieve_me(self, request_factory, org_member): response = CoreUserViewSet.as_view({'get': 'me'})(request) assert response.status_code == 200 assert response.data['username'] == org_member.username + + +@pytest.mark.django_db() +class TestNotification: + + def test_notification(self, request_factory): + dif_org = factories.Organization(name='Another Org') + data = { + "organization_uuid": dif_org.organization_uuid, + "notification_messages": "message" + } + request = request_factory.post(reverse('coreuser-notification'), data) + response = CoreUserViewSet.as_view({'post': 'notification'})(request) + assert response.status_code == 200 diff --git a/core/views/coreuser.py b/core/views/coreuser.py index ca41ca4e..ec7a7841 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -17,7 +17,8 @@ from core.models import CoreUser, Organization from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, - CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer) + CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer, + CoreUserEmailNotificationSerializer) from core.permissions import AllowAuthenticatedRead, AllowOnlyOrgAdmin, IsOrgMember from core.swagger import (COREUSER_INVITE_RESPONSE, COREUSER_INVITE_CHECK_RESPONSE, COREUSER_RESETPASS_RESPONSE, DETAIL_RESPONSE, SUCCESS_RESPONSE, TOKEN_QUERY_PARAM) @@ -25,6 +26,7 @@ from core.email_utils import send_email + class CoreUserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.CreateModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet): @@ -61,6 +63,7 @@ class CoreUserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, 'reset_password_check': CoreUserResetPasswordCheckSerializer, 'reset_password_confirm': CoreUserResetPasswordConfirmSerializer, 'update_org': CoreUserUpdateOrganizationSerializer, + 'notification': CoreUserEmailNotificationSerializer, } def list(self, request, *args, **kwargs): @@ -275,3 +278,36 @@ def update_info(self, request, pk=None, *args, **kwargs): serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data) + + @swagger_auto_schema(methods=['post'], request_body=CoreUserEmailNotificationSerializer, responses=SUCCESS_RESPONSE) + @action(methods=['POST'], detail=False) + def notification(self, request, *args, **kwargs): + """ + a)Request notification and uuid of organization + b)Access user uuids for that respective organization + c)Send Email to the user's email with notification + """ + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + org_uuid = request.data['organization_uuid'] + message = request.data['notification_messages'] + try: + + subject = 'Notification Message' + context = { + 'message': message, + } + template_name = 'email/coreuser/user_notification.txt' + html_template_name = 'email/coreuser/user_notification.html' + core_users = CoreUser.objects.filter(organization__organization_uuid=org_uuid) + for user in core_users: + email_address = user.email + send_email(email_address, subject, context, template_name, html_template_name) + except Exception as ex: + print('Exception: ', ex) + return Response( + { + 'detail': 'The notification were sent successfully on email.', + }, status=status.HTTP_200_OK) + + diff --git a/templates/email/coreuser/user_notification.html b/templates/email/coreuser/user_notification.html new file mode 100644 index 00000000..ef1b3680 --- /dev/null +++ b/templates/email/coreuser/user_notification.html @@ -0,0 +1,40 @@ + + + + + + + + + +
+

+
+
+

+ + + + + + +
+

+ +

+






+
+ +
+ + \ No newline at end of file diff --git a/templates/email/coreuser/user_notification.txt b/templates/email/coreuser/user_notification.txt new file mode 100644 index 00000000..e69de29b From 6465b21feee30fe6f4d5b5c128f964510d0f2025 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Tue, 12 Oct 2021 12:11:49 +0530 Subject: [PATCH 011/160] datamesh join script (#14) * datamesh join script * datamesh join script * comment removed * updated datamesh join script * updated datamesh join script * updated join_record_datamesh function * removed print statement --- .../commands/datamesh_join_script.py | 164 ++++++++++++++++++ .../management/commands/joinrelationships.py | 86 +++++++-- 2 files changed, 240 insertions(+), 10 deletions(-) create mode 100644 datamesh/management/commands/datamesh_join_script.py diff --git a/datamesh/management/commands/datamesh_join_script.py b/datamesh/management/commands/datamesh_join_script.py new file mode 100644 index 00000000..13509b75 --- /dev/null +++ b/datamesh/management/commands/datamesh_join_script.py @@ -0,0 +1,164 @@ +import json +import re + +from datamesh.models import JoinRecord, Relationship, LogicModuleModel +from core.models import LogicModule + +""" +# add logic module from core + origin_logic_module = logic module from core + related_logic_module = logic module from core + +# send is_local =True/False if join is it with core + +# origin_module_model = send Model name of origin +# origin_module_endpoint = send origin module endpoint +# origin_module_lookup_field_name = send origin module model lookup field + +# related_module_model = send Model name of origin +# related_module_endpoint = send origin module endpoint +# related_module_lookup_field_name = send origin module model lookup field + +# lookup_field_type = it's either id or uuid +# relationship_key_name = send relation name + +# field_name = send field of json file which want to join with +# is_list = True/False if the field type is array then send it True else False + +# organization = send organization name if have else by default it will set to None + +join_relationship( + json_file=, + + is_local=, + + origin_logic_module = , + related_logic_module = , + + origin_module_model =, + origin_module_endpoint =, + origin_module_lookup_field_name =, + + related_module_model =, + related_module_endpoint=, + related_module_lookup_field_name=, + + lookup_field_type = , + + relationship_key_name=, + field_name=, + is_list=, + organization=, +) +""" + + +def join_relationship(*args, **kwargs): + model_json_file = str(kwargs.get('json_file')) + + # load json file and take data into model_data variable + with open(model_json_file, 'r', encoding='utf-8') as file_data: + model_data = json.load(file_data) + + # get logic module from core + origin_logic_module = LogicModule.objects.get(endpoint_name=str(kwargs.get('origin_logic_module'))) + + if not kwargs.get('is_local'): + related_logic_module = LogicModule.objects.get(endpoint_name=str(kwargs.get('related_logic_module'))) + related_module_name = related_logic_module.endpoint_name + else: + related_module_name = 'core' + + # get or create datamesh Logic Module Model + origin_model, _ = LogicModuleModel.objects.get_or_create( + model=str(kwargs.get('origin_module_model')), + logic_module_endpoint_name=origin_logic_module.endpoint_name, + endpoint=str(kwargs.get('origin_module_endpoint')), + lookup_field_name=str(kwargs.get('origin_module_lookup_field_name')), + ) + + # get or create datamesh Logic Module Model + related_model, _ = LogicModuleModel.objects.get_or_create( + model=str(kwargs.get('related_module_model')), + logic_module_endpoint_name=related_module_name, + endpoint=str(kwargs.get('related_module_endpoint')), + lookup_field_name=str(kwargs.get('related_module_lookup_field_name')), + is_local=kwargs.get('is_local'), + ) + + # get or create relationship of origin_model and related_model in datamesh + relationship, _ = Relationship.objects.get_or_create( + origin_model=origin_model, + related_model=related_model, + key=str(kwargs.get('relationship_key_name')) + ) + eligible_join_records = [] + counter = 0 + + # iterate over loaded JSON data + for related_data in model_data: + + field_value = related_data['fields'][kwargs.get('field_name')] + + if not field_value: + continue + + # convert uuid string to list + if kwargs.get('related_lookup_field_type') == 'uuid': + value_list = re.findall(r'[0-9a-f]{8}(?:-[0-9a-f]{4}){4}[0-9a-f]{8}', field_value) + else: + value_list = field_value if not kwargs.get('is_list') else json.loads(field_value) + + # iterate over item_ids + for field_value in value_list: + join_record = join_record_datamesh( + relationship=relationship, + pk=related_data['pk'], + field_value=field_value, + organization=kwargs.get('organization'), + origin_lookup_field_type=kwargs.get('origin_lookup_field_type'), + related_lookup_field_type=kwargs.get('related_lookup_field_type'), + ) + counter += 1 + + print(join_record) + eligible_join_records.append(join_record.pk) + + print(f'{counter} parsed and written to the JoinRecords.') + + +def join_record_datamesh(*args, **kwargs): + if kwargs.get('origin_lookup_field_type') == 'id' and kwargs.get('related_lookup_field_type') == 'id': + metrics = { + "record_id": kwargs.get('pk'), + "related_record_id": kwargs.get('field_value') + } + + elif kwargs.get('origin_lookup_field_type') == 'uuid' and kwargs.get('related_lookup_field_type') == 'uuid': + metrics = { + "record_uuid": kwargs.get('pk'), + "related_record_uuid": kwargs.get('field_value') + } + + elif kwargs.get('origin_lookup_field_type') == 'uuid' and kwargs.get('related_lookup_field_type') == 'id': + metrics = { + "record_uuid": kwargs.get('pk'), + "related_record_id": kwargs.get('field_value') + } + + elif kwargs.get('origin_lookup_field_type') == 'id' and kwargs.get('related_lookup_field_type') == 'uuid': + metrics = { + "record_id": kwargs.get('pk'), + "related_record_uuid": kwargs.get('field_value') + } + else: + metrics = None + + join_record, _ = JoinRecord.objects.get_or_create( + relationship=kwargs.get('relationship'), + **metrics, + defaults={ + 'organization': kwargs.get('organization') if kwargs.get('organization') else None + } + ) + return join_record diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 2a60f3e3..19ebece7 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -1,11 +1,5 @@ from django.core.management.base import BaseCommand -import json -from datamesh.models import JoinRecord, Relationship, LogicModuleModel -from core.models import LogicModule -from .gateway import gateway_custodian_relationship, organization_gateway_relationship -from .shipment import shipment_gateway_relationship, consortium_shipment_relationship, shipment_item_relationship, \ - organization_shipment_relationship -from .custody import custody_shipment_relationship, custodian_custody_relationship +from datamesh.management.commands.datamesh_join_script import join_relationship class Command(BaseCommand): @@ -22,10 +16,82 @@ def handle(self, *args, **options): def run_seed(self, mode): """call function here.""" - """ create a functions for model and call that functions here """ - """shipment""" + # product <-> product_tool - within service model join. + join_relationship( + json_file="product.json", - """shipment_gateway_relationship()""" + is_local=False, + origin_logic_module='product', + related_logic_module='product', + origin_module_model='Product', + origin_module_endpoint='/product/', + origin_module_lookup_field_name='product_uuid', + + related_module_model='ProductTools', + related_module_endpoint='/producttools/', + related_module_lookup_field_name='product_tool_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='product_product_tool_relationship', + field_name='product_tool', + is_list=False, + organization=None, + ) + + # product <-> product_team - within service model join. + join_relationship( + json_file="product.json", + + is_local=False, + + origin_logic_module='product', + related_logic_module='product', + + origin_module_model='Product', + origin_module_endpoint='/product/', + origin_module_lookup_field_name='product_uuid', + + related_module_model='ProductTeam', + related_module_endpoint='/productteam/', + related_module_lookup_field_name='product_team_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='product_product_team_relationship', + + field_name='product_team', + is_list=False, + organization=None, + ) + + # product_tool <-> users - service and core model join. + join_relationship( + json_file="ProductTeam.json", + + is_local=True, + + origin_logic_module='product', + related_logic_module='product', + + origin_module_model='ProductTools', + origin_module_endpoint='/producttools/', + origin_module_lookup_field_name='product_tool_uuid', + + related_module_model='CoreUser', + related_module_endpoint='/coreuser/', + related_module_lookup_field_name='core_user_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='product_user_relationship', + field_name='users', + is_list=True, + organization=None, + ) From 6b17f51e949864bf543ea6630f297bd1c3505830 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Wed, 27 Oct 2021 15:04:12 +0530 Subject: [PATCH 012/160] Partner implementation (#17) * Partner Implementation * removed organization * removed partner organization * removed partner organization * - partner unit test * - updated test fixtures * - removed comment --- core/admin.py | 4 +- core/migrations/0003_partner.py | 23 +++++++ core/models.py | 7 ++ core/serializers.py | 8 ++- core/tests/fixtures.py | 2 +- core/tests/test_partner.py | 110 ++++++++++++++++++++++++++++++++ core/urls.py | 1 + core/views/__init__.py | 1 + core/views/partner.py | 19 ++++++ 9 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 core/migrations/0003_partner.py create mode 100644 core/tests/test_partner.py create mode 100644 core/views/partner.py diff --git a/core/admin.py b/core/admin.py index 92eb99dd..6221b25f 100644 --- a/core/admin.py +++ b/core/admin.py @@ -2,7 +2,7 @@ from django.contrib.auth.admin import UserAdmin from django.utils.translation import ugettext_lazy as _ -from core.models import CoreUser, CoreGroup, CoreSites, EmailTemplate, Industry, LogicModule, Organization +from core.models import CoreUser, CoreGroup, CoreSites, EmailTemplate, Industry, LogicModule, Organization, Partner class LogicModuleAdmin(admin.ModelAdmin): @@ -68,3 +68,5 @@ class EmailTemplateAdmin(admin.ModelAdmin): admin.site.register(CoreSites, CoreSitesAdmin) admin.site.register(EmailTemplate, EmailTemplateAdmin) admin.site.register(Industry) +admin.site.register(Partner) + diff --git a/core/migrations/0003_partner.py b/core/migrations/0003_partner.py new file mode 100644 index 00000000..15486e9a --- /dev/null +++ b/core/migrations/0003_partner.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.13 on 2021-10-22 07:29 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0002_auto_20200303_1657'), + ] + + operations = [ + migrations.CreateModel( + name='Partner', + fields=[ + ('partner_uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), + ('name', models.CharField(blank=True, max_length=255, null=True)), + ('create_date', models.DateTimeField(blank=True, null=True)), + ('edit_date', models.DateTimeField(blank=True, null=True)), + ], + ), + ] diff --git a/core/models.py b/core/models.py index 46a3383d..aa65614f 100644 --- a/core/models.py +++ b/core/models.py @@ -260,3 +260,10 @@ def save(self, *args, **kwargs): def __str__(self): return str(self.name) + + +class Partner(models.Model): + partner_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) + name = models.CharField(blank=True, null=True, max_length=255) + create_date = models.DateTimeField(null=True, blank=True) + edit_date = models.DateTimeField(null=True, blank=True) diff --git a/core/serializers.py b/core/serializers.py index 56347369..428f7987 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -16,7 +16,7 @@ from core.email_utils import send_email, send_email_body from core.models import CoreUser, CoreGroup, EmailTemplate, LogicModule, Organization, PERMISSIONS_ORG_ADMIN, \ - TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY + TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner class LogicModuleSerializer(serializers.ModelSerializer): @@ -366,3 +366,9 @@ class CoreUserEmailNotificationSerializer(serializers.Serializer): notification_messages = serializers.CharField() +class PartnerSerializer(serializers.ModelSerializer): + partner_uuid = serializers.ReadOnlyField() + + class Meta: + model = Partner + fields = '__all__' \ No newline at end of file diff --git a/core/tests/fixtures.py b/core/tests/fixtures.py index bb270459..8d3c1e05 100644 --- a/core/tests/fixtures.py +++ b/core/tests/fixtures.py @@ -15,7 +15,7 @@ 'email': 'test@example.com', 'username': 'johnsnow', 'password': '123qwe', - 'organization_name': 'Buidly', + 'organization_name': 'buidly', 'organization_uuid': uuid.uuid4(), } diff --git a/core/tests/test_partner.py b/core/tests/test_partner.py new file mode 100644 index 00000000..ace8e9ca --- /dev/null +++ b/core/tests/test_partner.py @@ -0,0 +1,110 @@ +import factories +from core.models import Partner +from django.test import TestCase, Client +from rest_framework import status +from rest_framework.request import Request +from rest_framework.test import APIRequestFactory +from django.urls import reverse +from core.views import PartnerViewSet + +client = Client() + + +class GetAllPartnerTest(TestCase): + """ Test module for GET all events API """ + + def setUp(self): + self.partner = Partner.objects.create( + + ) + self.factory = APIRequestFactory() + self.request = self.factory.get('/') + self.serializer_context = { + 'request': Request(self.request), + } + + def test_list_all_partner(self): + self.request.user = factories.CoreUser(is_superuser=True, is_staff=True) + view = PartnerViewSet.as_view({'get': 'list'}) + response = view(self.request) + self.assertEqual(response.status_code, 200) + + +class GetSinglePartnerTest(TestCase): + """ Test module for GET single partner API """ + + def setUp(self): + self.partner = Partner.objects.create( + name='partner name' + ) + self.factory = APIRequestFactory() + self.request = self.factory.get('/partner/') + self.serializer_context = { + 'request': Request(self.request), + } + + def test_get_valid_single_partner(self): + self.request.user = factories.CoreUser(is_superuser=True, is_staff=True) + view = PartnerViewSet.as_view({'get': 'retrieve'}) + response = view(self.request, pk=self.partner.pk) + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_get_invalid_single_partner(self): + self.request.user = factories.CoreUser(is_superuser=True, is_staff=True) + view = PartnerViewSet.as_view({'get': 'retrieve'}) + response = view(self.request, pk=12) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + + +class CreatePartnerTest(TestCase): + """ Test module for inserting a new partner""" + + def setUp(self): + self.factory = APIRequestFactory() + self.request = self.factory.get('/partner/') + self.valid_payload = {"name": "partner name"} + + def test_create_valid_partner(self): + data = {'name': 'partner name', } + request = self.factory.post(reverse('partner-list'), data, format='json') + request.user = factories.CoreUser(is_superuser=True, is_staff=True) + response = PartnerViewSet.as_view({'post': 'create'})(request) + + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + +class UpdatePartnerTest(TestCase): + """Test module for updating an existing partner record""" + + def setUp(self): + self.factory = APIRequestFactory() + self.request = self.factory.get('/partner/') + + def test_valid_update_partner(self): + self.partner = Partner.objects.create(name='partner name') + data = {'name': 'partner name', } + request = self.factory.put(reverse('partner-detail', args=(self.partner.pk,)), data) + request.user = factories.CoreUser(is_superuser=True, is_staff=True) + response = PartnerViewSet.as_view({'put': 'update'})(request, pk=self.partner.pk) + self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class DeleteSinglePartnerTest(TestCase): + """ Test module for deleting an existing partner record """ + + def setUp(self): + self.factory = APIRequestFactory() + self.request = self.factory.get('/partner/') + self.partner = Partner.objects.create(name='test name') + + def test_valid_delete_partner(self): + request = self.factory.delete(reverse('partner-detail', args=(self.partner.pk,))) + request.user = factories.CoreUser(is_superuser=True, is_staff=True) + response = PartnerViewSet.as_view({'delete': 'destroy'})(request, pk=self.partner.pk) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + def test_invalid_delete_partner(self): + request = self.factory.delete(reverse('partner-detail', args=(self.partner.pk,))) + request.user = factories.CoreUser(is_superuser=True, is_staff=True) + response = PartnerViewSet.as_view({'delete': 'destroy'})(request, pk=12) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) diff --git a/core/urls.py b/core/urls.py index 4e2657b6..d4fe4748 100644 --- a/core/urls.py +++ b/core/urls.py @@ -22,6 +22,7 @@ router.register(r'oauth/refreshtokens', views.RefreshTokenViewSet) router.register(r'organization', views.OrganizationViewSet) router.register(r'logicmodule', views.LogicModuleViewSet) +router.register(r'partner', views.PartnerViewSet) urlpatterns = [ diff --git a/core/views/__init__.py b/core/views/__init__.py index b38e517e..38cbcdf8 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -3,3 +3,4 @@ from .oauth import AccessTokenViewSet, ApplicationViewSet, RefreshTokenViewSet # noqa from .organization import OrganizationViewSet # noqa from .logicmodule import LogicModuleViewSet # noqa +from .partner import PartnerViewSet # noqa diff --git a/core/views/partner.py b/core/views/partner.py new file mode 100644 index 00000000..d250a164 --- /dev/null +++ b/core/views/partner.py @@ -0,0 +1,19 @@ +from rest_framework import viewsets +from rest_framework.response import Response +from core.serializers import PartnerSerializer +from core.models import Partner + + +class PartnerViewSet(viewsets.ModelViewSet): + """ + This viewset automatically provides `list`, `create`, `retrieve`, + `update` and `destroy` actions. + """ + + def list(self, request): + queryset = self.filter_queryset(self.get_queryset()) + serializer = self.get_serializer(queryset, many=True) + return Response(serializer.data) + + queryset = Partner.objects.all() + serializer_class = PartnerSerializer From 472abe676706bebd995d258cb70af26be39f44a2 Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Fri, 12 Nov 2021 12:01:12 +0530 Subject: [PATCH 013/160] Resolve permissions for Organization --- core/views/organization.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/views/organization.py b/core/views/organization.py index 96559d8b..e89285ae 100644 --- a/core/views/organization.py +++ b/core/views/organization.py @@ -7,6 +7,7 @@ from core.models import Organization from core.serializers import OrganizationSerializer from core.permissions import IsOrgMember +from rest_framework.permissions import AllowAny logger = logging.getLogger(__name__) @@ -50,7 +51,7 @@ def list(self, request, *args, **kwargs): # /organization/names/ # send only the names - @action(detail=False, methods=['get'], name='Fetch Already existing Organization', url_path='names') + @action(detail=False, methods=['get'], permission_classes=[AllowAny], name='Fetch Already existing Organization', url_path='names') def fetch_existing_orgs(self, request, pk=None, *args, **kwargs): """ Fetch Already existing Organizations in Buildly Core, From 9fbcf4dbf2bf9b57e724fb2b1670afe56b7bf1b5 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Tue, 23 Nov 2021 19:06:38 +0530 Subject: [PATCH 014/160] fix core endpoint issue (#21) * fix core endpoint issue * updated comment --- gateway/clients.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gateway/clients.py b/gateway/clients.py index 9adef477..06dc9156 100644 --- a/gateway/clients.py +++ b/gateway/clients.py @@ -41,8 +41,14 @@ def prepare_data(self, spec: Spec, **kwargs) -> Tuple[str, str]: path = f'/{model}/' else: pk_name = 'uuid' if utils.valid_uuid4(pk) else 'id' - path_kwargs = {pk_name: pk} - path = f'/{model}/{{{pk_name}}}/' + + # update path kwargs key name + # example: {"product_uuid" :"db827034-30bb-4062-ac35-f8c24e8f81ad"} + path_kwargs = {f'{model}_{pk_name}': pk} + + # create path for retrieving individual data example : /product/{{product_uuid}}/ + path_parameter_name = f'{model}_{pk_name}' + path = f'/{model}/{{{path_parameter_name}}}/' # Check that operation is valid according to spec operation = spec.get_op_for_request(self._in_request.method, path) From 4e048ab97e589c65402dbbd822fe77b4034b054f Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Wed, 8 Dec 2021 17:19:31 +0530 Subject: [PATCH 015/160] Updated environment variables --- docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 596f5a5a..3bf0e9ef 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,9 +68,9 @@ services: USE_PASSWORD_NUMERIC_VALIDATOR: "True" FRONTEND_URL: "http://localhost:3000/login/" SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://localhost:3000" - SOCIAL_AUTH_GITHUB_KEY: "076e9a822c235db9057f" - SOCIAL_AUTH_GITHUB_SECRET: "4282aecb84ac72a33db8041c0de6d15220f43b2d" - SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" + SOCIAL_AUTH_GITHUB_KEY: "16fad6652ee9aafa3482" + SOCIAL_AUTH_GITHUB_SECRET: "a61f11e312ed29ab8ec17c0ed5d0f0735c5ef654" + # SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" EMAIL_HOST: "smtp.sendgrid.net" EMAIL_HOST_USER: "apikey" From f193e263b82b786d2592ee055db7ecc622598cfb Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Fri, 10 Dec 2021 20:14:26 +0530 Subject: [PATCH 016/160] Updated environment values --- docker-compose.yml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3bf0e9ef..4789c458 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -66,12 +66,12 @@ services: PASSWORD_MINIMUM_LENGTH: "6" USE_PASSWORD_COMMON_VALIDATOR: "True" USE_PASSWORD_NUMERIC_VALIDATOR: "True" - FRONTEND_URL: "http://localhost:3000/login/" - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://localhost:3000" - SOCIAL_AUTH_GITHUB_KEY: "16fad6652ee9aafa3482" - SOCIAL_AUTH_GITHUB_SECRET: "a61f11e312ed29ab8ec17c0ed5d0f0735c5ef654" + FRONTEND_URL: "http://localhost:3000/" + SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://localhost:3000/" + SOCIAL_AUTH_GITHUB_KEY: "25fc5ab2bdfca0e70c63" + SOCIAL_AUTH_GITHUB_SECRET: "ff981a6390929445153092d0dbbf4a507c0ecf8b" # SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" - SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" + # SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" EMAIL_HOST: "smtp.sendgrid.net" EMAIL_HOST_USER: "apikey" EMAIL_HOST_PASSWORD: "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" @@ -81,16 +81,6 @@ services: EMAIL_BACKEND: "SMTP" DEFAULT_FROM_EMAIL: "admin@buildly.io" RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" -# LDAP_ENABLE: "True" -# LDAP_HOST: "ldap://openldap_server:389" -# LDAP_USERNAME: "cn=admin,dc=example,dc=org" -# LDAP_PASSWORD: "admin" -# LDAP_BASE_DN: "dc=example,dc=org" -# LDAP_USERNAME_FIELD_SEARCH: "uid" -# -# openldap-server: -# container_name: openldap_server -# image: osixia/openldap:1.3.0 volumes: static-content: From 285c9b05e978fc504c372d9637b97e07759c5b94 Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Thu, 16 Dec 2021 20:33:50 +0530 Subject: [PATCH 017/160] Handle for Gateway response 400 --- gateway/clients.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gateway/clients.py b/gateway/clients.py index 06dc9156..0aa7539d 100644 --- a/gateway/clients.py +++ b/gateway/clients.py @@ -74,12 +74,13 @@ def get_request_data(self) -> dict: return json.dumps(self._in_request.data) method = self._in_request.META['REQUEST_METHOD'].lower() - data = self._in_request.query_params.dict() + data = {} + if method in ['post', 'put', 'patch']: + data = self._in_request.query_params.dict() - data.pop('aggregate', None) - data.pop('join', None) + data.pop('aggregate', None) + data.pop('join', None) - if method in ['post', 'put', 'patch']: query_dict_body = self._in_request.data if hasattr(self._in_request, 'data') else dict() body = query_dict_body.dict() if isinstance(query_dict_body, QueryDict) else query_dict_body data.update(body) From 8c0da22df41572cc4eb81f2ed1756e51dfad24b1 Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 22 Dec 2021 14:48:08 +0530 Subject: [PATCH 018/160] datamesh join: - product <-> third party tool and - product <-> product_team --- .../management/commands/joinrelationships.py | 44 +++++-------------- 1 file changed, 10 insertions(+), 34 deletions(-) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 19ebece7..b4be0183 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -17,29 +17,29 @@ def handle(self, *args, **options): def run_seed(self, mode): """call function here.""" - # product <-> product_tool - within service model join. + # product <-> third party tool - within service model join. join_relationship( json_file="product.json", is_local=False, - origin_logic_module='product', - related_logic_module='product', + origin_logic_module='projecttool', + related_logic_module='projecttool', origin_module_model='Product', origin_module_endpoint='/product/', origin_module_lookup_field_name='product_uuid', - related_module_model='ProductTools', - related_module_endpoint='/producttools/', - related_module_lookup_field_name='product_tool_uuid', + related_module_model='ThirdPartyTool', + related_module_endpoint='/thirdpartytool/', + related_module_lookup_field_name='third_party_tool_uuid', origin_lookup_field_type='uuid', related_lookup_field_type='uuid', relationship_key_name='product_product_tool_relationship', - field_name='product_tool', - is_list=False, + field_name='third_party_tool', + is_list=True, organization=None, ) @@ -49,8 +49,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='product', - related_logic_module='product', + origin_logic_module='projecttool', + related_logic_module='projecttool', origin_module_model='Product', origin_module_endpoint='/product/', @@ -70,28 +70,4 @@ def run_seed(self, mode): organization=None, ) - # product_tool <-> users - service and core model join. - join_relationship( - json_file="ProductTeam.json", - - is_local=True, - - origin_logic_module='product', - related_logic_module='product', - - origin_module_model='ProductTools', - origin_module_endpoint='/producttools/', - origin_module_lookup_field_name='product_tool_uuid', - - related_module_model='CoreUser', - related_module_endpoint='/coreuser/', - related_module_lookup_field_name='core_user_uuid', - origin_lookup_field_type='uuid', - related_lookup_field_type='uuid', - - relationship_key_name='product_user_relationship', - field_name='users', - is_list=True, - organization=None, - ) From 85a33a577226bbe1543adcaa40ef80302ab6812a Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 22 Dec 2021 17:25:24 +0530 Subject: [PATCH 019/160] completed project tool service datamesh join --- .../management/commands/joinrelationships.py | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index b4be0183..172d5e5a 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -18,6 +18,7 @@ def run_seed(self, mode): """call function here.""" # product <-> third party tool - within service model join. + """product.json""" join_relationship( json_file="product.json", @@ -44,6 +45,7 @@ def run_seed(self, mode): ) # product <-> product_team - within service model join. + """product.json""" join_relationship( json_file="product.json", @@ -70,4 +72,114 @@ def run_seed(self, mode): organization=None, ) + # credential <-> product within service model join. + """credential.json""" + join_relationship( + json_file="credential.json", + + is_local=False, + + origin_logic_module='projecttool', + related_logic_module='projecttool', + + origin_module_model='Credential', + origin_module_endpoint='/credential/', + origin_module_lookup_field_name='credential_uuid', + + related_module_model='Product', + related_module_endpoint='/product/', + related_module_lookup_field_name='product_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='credential_product_relationship', + + field_name='product_uuid', + is_list=False, + organization=None, + ) + + # release <-> product within service model join. + """release.json""" + join_relationship( + json_file="release.json", + + is_local=False, + + origin_logic_module='projecttool', + related_logic_module='projecttool', + + origin_module_model='Release', + origin_module_endpoint='/release/', + origin_module_lookup_field_name='release_uuid', + related_module_model='Product', + related_module_endpoint='/product/', + related_module_lookup_field_name='product_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='release_product_relationship', + + field_name='product_uuid', + is_list=False, + organization=None, + ) + + # # release <-> module with two different service model join. + # """release.json""" + # join_relationship( + # json_file="release.json", + # + # is_local=False, + # + # origin_logic_module='projecttool', + # related_logic_module='hostedadmin', + # + # origin_module_model='Release', + # origin_module_endpoint='/release/', + # origin_module_lookup_field_name='release_uuid', + # + # related_module_model='Module', + # related_module_endpoint='/module/', + # related_module_lookup_field_name='module_uuid', + # + # origin_lookup_field_type='uuid', + # related_lookup_field_type='uuid', + # + # relationship_key_name='release_module_relationship', + # + # field_name='modules_uuid', + # is_list=False, + # organization=None, + # ) + + # release <-> dev team with two different service model join. + """release.json""" + join_relationship( + json_file="release.json", + + is_local=False, + + origin_logic_module='projecttool', + related_logic_module='devpartner', + + origin_module_model='Release', + origin_module_endpoint='/release/', + origin_module_lookup_field_name='release_uuid', + + related_module_model='DevTeam', + related_module_endpoint='/devteam/', + related_module_lookup_field_name='dev_team_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='release_dev_team_relationship', + + field_name='dev_team_uuid', + is_list=True, + organization=None, + ) From 43789199423ba3008461811989532769829bf83f Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 22 Dec 2021 18:32:06 +0530 Subject: [PATCH 020/160] completed release service datamesh join --- .../management/commands/joinrelationships.py | 226 ++++++++++++++++++ 1 file changed, 226 insertions(+) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 172d5e5a..3019cb99 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -183,3 +183,229 @@ def run_seed(self, mode): is_list=True, organization=None, ) + + ####################################################################### + + # decision <-> feature team within service model join. + """decision.json""" + join_relationship( + json_file="decision.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Decision', + origin_module_endpoint='/decision/', + origin_module_lookup_field_name='decision_uuid', + + related_module_model='Feature', + related_module_endpoint='/feature/', + related_module_lookup_field_name='feature_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='decision_feature_relationship', + + field_name='feature', + is_list=False, + organization=None, + ) + + # decision <-> issue team within service model join. + """decision.json""" + join_relationship( + json_file="decision.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Decision', + origin_module_endpoint='/decision/', + origin_module_lookup_field_name='decision_uuid', + + related_module_model='Issue', + related_module_endpoint='/issue/', + related_module_lookup_field_name='issue_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='decision_feature_relationship', + + field_name='issue', + is_list=False, + organization=None, + ) + + # status <-> issue team within service model join. + """status.json""" + join_relationship( + json_file="status.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Status', + origin_module_endpoint='/status/', + origin_module_lookup_field_name='status_uuid', + + related_module_model='Issue', + related_module_endpoint='/issue/', + related_module_lookup_field_name='issue_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='status_issue_relationship', + + field_name='issue', + is_list=False, + organization=None, + ) + + # status <-> feature team within service model join. + """status.json""" + join_relationship( + json_file="status.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Status', + origin_module_endpoint='/status/', + origin_module_lookup_field_name='status_uuid', + + related_module_model='Feature', + related_module_endpoint='/feature/', + related_module_lookup_field_name='feature_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='status_feature_relationship', + + field_name='feature', + is_list=False, + organization=None, + ) + + # # feature <-> status team within service model join. + # """feature.json""" + # join_relationship( + # json_file="feature.json", + # + # is_local=False, + # + # origin_logic_module='release', + # related_logic_module='release', + # + # origin_module_model='Feature', + # origin_module_endpoint='/feature/', + # origin_module_lookup_field_name='feature_uuid', + # + # related_module_model='Status', + # related_module_endpoint='/status/', + # related_module_lookup_field_name='status_uuid', + # + # origin_lookup_field_type='uuid', + # related_lookup_field_type='uuid', + # + # relationship_key_name='feature_status_relationship', + # + # field_name='status', + # is_list=False, + # organization=None, + # ) + + # issue <-> feature team within service model join. + """issue.json""" + join_relationship( + json_file="issue.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Issue', + origin_module_endpoint='/issue/', + origin_module_lookup_field_name='issue_uuid', + + related_module_model='Feature', + related_module_endpoint='/feature/', + related_module_lookup_field_name='feature_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='status_feature_relationship', + + field_name='feature_uuid', + is_list=False, + organization=None, + ) + + # feedback <-> issue team within service model join. + """feedback.json""" + join_relationship( + json_file="feedback.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Feedback', + origin_module_endpoint='/feedback/', + origin_module_lookup_field_name='feedback_uuid', + + related_module_model='Issue', + related_module_endpoint='/issue/', + related_module_lookup_field_name='issue_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='feedback_issue_relationship', + + field_name='issue', + is_list=False, + organization=None, + ) + + # feedback <-> feature team within service model join. + """feedback.json""" + join_relationship( + json_file="feedback.json", + + is_local=False, + + origin_logic_module='release', + related_logic_module='release', + + origin_module_model='Feedback', + origin_module_endpoint='/feedback/', + origin_module_lookup_field_name='feedback_uuid', + + related_module_model='Feature', + related_module_endpoint='/feature/', + related_module_lookup_field_name='feature_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='feedback_feature_relationship', + + field_name='feature', + is_list=False, + organization=None, + ) From 92c267328b74537670a81b6e7b7f2a6f9edda1ba Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 22 Dec 2021 18:37:52 +0530 Subject: [PATCH 021/160] completed dev/partner service datamesh join --- .../management/commands/joinrelationships.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 3019cb99..3a178c39 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -409,3 +409,31 @@ def run_seed(self, mode): is_list=False, organization=None, ) + + # timesheethour <-> timesheet team within service model join. + """timesheethour.json""" + join_relationship( + json_file="timesheethour.json", + + is_local=False, + + origin_logic_module='devpartner', + related_logic_module='devpartner', + + origin_module_model='TimeSheetHour', + origin_module_endpoint='/timesheethour/', + origin_module_lookup_field_name='timesheet_hour_uuid', + + related_module_model='TimeSheet', + related_module_endpoint='/timesheet/', + related_module_lookup_field_name='timesheet_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='timesheethour_timesheet_relationship', + + field_name='timesheet_uuid', + is_list=False, + organization=None, + ) \ No newline at end of file From 49612e668a23ae9c2130697e291eb6e892dc6adb Mon Sep 17 00:00:00 2001 From: manish Date: Thu, 23 Dec 2021 16:55:53 +0530 Subject: [PATCH 022/160] Fix Datamesh request issue --- .../management/commands/joinrelationships.py | 140 +++++++++++------- gateway/clients.py | 12 +- 2 files changed, 87 insertions(+), 65 deletions(-) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 3a178c39..6d04ba30 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -38,7 +38,7 @@ def run_seed(self, mode): origin_lookup_field_type='uuid', related_lookup_field_type='uuid', - relationship_key_name='product_product_tool_relationship', + relationship_key_name='product_thirdpartytool_relationship', field_name='third_party_tool', is_list=True, organization=None, @@ -235,54 +235,110 @@ def run_seed(self, mode): origin_lookup_field_type='uuid', related_lookup_field_type='uuid', - relationship_key_name='decision_feature_relationship', + relationship_key_name='decision_issue_relationship', field_name='issue', is_list=False, organization=None, ) - # status <-> issue team within service model join. - """status.json""" + # # status <-> issue team within service model join. + # """status.json""" + # join_relationship( + # json_file="status.json", + # + # is_local=False, + # + # origin_logic_module='release', + # related_logic_module='release', + # + # origin_module_model='Status', + # origin_module_endpoint='/status/', + # origin_module_lookup_field_name='status_uuid', + # + # related_module_model='Issue', + # related_module_endpoint='/issue/', + # related_module_lookup_field_name='issue_uuid', + # + # origin_lookup_field_type='uuid', + # related_lookup_field_type='uuid', + # + # relationship_key_name='status_issue_relationship', + # + # field_name='issue', + # is_list=False, + # organization=None, + # ) + # + # # status <-> feature team within service model join. + # """status.json""" + # join_relationship( + # json_file="status.json", + # + # is_local=False, + # + # origin_logic_module='release', + # related_logic_module='release', + # + # origin_module_model='Status', + # origin_module_endpoint='/status/', + # origin_module_lookup_field_name='status_uuid', + # + # related_module_model='Feature', + # related_module_endpoint='/feature/', + # related_module_lookup_field_name='feature_uuid', + # + # origin_lookup_field_type='uuid', + # related_lookup_field_type='uuid', + # + # relationship_key_name='status_feature_relationship', + # + # field_name='feature', + # is_list=False, + # organization=None, + # ) + + # feature <-> status team within service model join. + """feature.json""" join_relationship( - json_file="status.json", + json_file="feature.json", is_local=False, origin_logic_module='release', related_logic_module='release', - origin_module_model='Status', - origin_module_endpoint='/status/', - origin_module_lookup_field_name='status_uuid', + origin_module_model='Feature', + origin_module_endpoint='/feature/', + origin_module_lookup_field_name='feature_uuid', - related_module_model='Issue', - related_module_endpoint='/issue/', - related_module_lookup_field_name='issue_uuid', + related_module_model='Status', + related_module_endpoint='/status/', + related_module_lookup_field_name='status_uuid', origin_lookup_field_type='uuid', related_lookup_field_type='uuid', - relationship_key_name='status_issue_relationship', + relationship_key_name='feature_status_relationship', - field_name='issue', + field_name='status', is_list=False, organization=None, ) - # status <-> feature team within service model join. - """status.json""" + # issue <-> feature team within service model join. + """issue.json""" join_relationship( - json_file="status.json", + json_file="issue.json", is_local=False, origin_logic_module='release', related_logic_module='release', - origin_module_model='Status', - origin_module_endpoint='/status/', - origin_module_lookup_field_name='status_uuid', + origin_module_model='Issue', + origin_module_endpoint='/issue/', + origin_module_lookup_field_name='issue_uuid', related_module_model='Feature', related_module_endpoint='/feature/', @@ -291,42 +347,14 @@ def run_seed(self, mode): origin_lookup_field_type='uuid', related_lookup_field_type='uuid', - relationship_key_name='status_feature_relationship', + relationship_key_name='issue_feature_relationship', - field_name='feature', + field_name='feature_uuid', is_list=False, organization=None, ) - # # feature <-> status team within service model join. - # """feature.json""" - # join_relationship( - # json_file="feature.json", - # - # is_local=False, - # - # origin_logic_module='release', - # related_logic_module='release', - # - # origin_module_model='Feature', - # origin_module_endpoint='/feature/', - # origin_module_lookup_field_name='feature_uuid', - # - # related_module_model='Status', - # related_module_endpoint='/status/', - # related_module_lookup_field_name='status_uuid', - # - # origin_lookup_field_type='uuid', - # related_lookup_field_type='uuid', - # - # relationship_key_name='feature_status_relationship', - # - # field_name='status', - # is_list=False, - # organization=None, - # ) - - # issue <-> feature team within service model join. + # issue <-> status team within service model join. """issue.json""" join_relationship( json_file="issue.json", @@ -340,16 +368,16 @@ def run_seed(self, mode): origin_module_endpoint='/issue/', origin_module_lookup_field_name='issue_uuid', - related_module_model='Feature', - related_module_endpoint='/feature/', - related_module_lookup_field_name='feature_uuid', + related_module_model='Status', + related_module_endpoint='/status/', + related_module_lookup_field_name='status_uuid', origin_lookup_field_type='uuid', related_lookup_field_type='uuid', - relationship_key_name='status_feature_relationship', + relationship_key_name='issue_status_relationship', - field_name='feature_uuid', + field_name='status', is_list=False, organization=None, ) @@ -436,4 +464,4 @@ def run_seed(self, mode): field_name='timesheet_uuid', is_list=False, organization=None, - ) \ No newline at end of file + ) diff --git a/gateway/clients.py b/gateway/clients.py index 0aa7539d..2a8463b9 100644 --- a/gateway/clients.py +++ b/gateway/clients.py @@ -40,15 +40,9 @@ def prepare_data(self, spec: Spec, **kwargs) -> Tuple[str, str]: if kwargs.get('pk') is None: path = f'/{model}/' else: - pk_name = 'uuid' if utils.valid_uuid4(pk) else 'id' - - # update path kwargs key name - # example: {"product_uuid" :"db827034-30bb-4062-ac35-f8c24e8f81ad"} - path_kwargs = {f'{model}_{pk_name}': pk} - - # create path for retrieving individual data example : /product/{{product_uuid}}/ - path_parameter_name = f'{model}_{pk_name}' - path = f'/{model}/{{{path_parameter_name}}}/' + pk_name = kwargs.get('pk_name') # 'uuid' if utils.valid_uuid4(pk) else 'id' + path_kwargs = {pk_name: pk} + path = f'/{model}/{{{pk_name}}}/' # Check that operation is valid according to spec operation = spec.get_op_for_request(self._in_request.method, path) From 622b0518c2c98626deb98b301d9c24fd871d608c Mon Sep 17 00:00:00 2001 From: manish Date: Fri, 24 Dec 2021 17:37:18 +0530 Subject: [PATCH 023/160] updated admin username and password --- buildly/management/commands/loadinitialdata.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildly/management/commands/loadinitialdata.py b/buildly/management/commands/loadinitialdata.py index 9de415a6..af955131 100644 --- a/buildly/management/commands/loadinitialdata.py +++ b/buildly/management/commands/loadinitialdata.py @@ -66,7 +66,7 @@ def _create_user(self): logger.info("Creating Super User") user_password = None if settings.DEBUG: - user_password = settings.SUPER_USER_PASSWORD if settings.SUPER_USER_PASSWORD else 'admin' + user_password = settings.SUPER_USER_PASSWORD if settings.SUPER_USER_PASSWORD else 'Djf0KG0YDr8m' elif settings.SUPER_USER_PASSWORD: user_password = settings.SUPER_USER_PASSWORD else: @@ -78,7 +78,7 @@ def _create_user(self): su = CoreUser.objects.create_superuser( first_name='System', last_name='Admin', - username='admin', + username='DA05L19J52XX', email='admin@example.com', password=user_password, organization=self._default_org, From b92881602671e2f48a30f92ccb5d179275d3777d Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 5 Jan 2022 11:02:17 +0530 Subject: [PATCH 024/160] revert find endpoint fix --- gateway/clients.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gateway/clients.py b/gateway/clients.py index 2a8463b9..0aa7539d 100644 --- a/gateway/clients.py +++ b/gateway/clients.py @@ -40,9 +40,15 @@ def prepare_data(self, spec: Spec, **kwargs) -> Tuple[str, str]: if kwargs.get('pk') is None: path = f'/{model}/' else: - pk_name = kwargs.get('pk_name') # 'uuid' if utils.valid_uuid4(pk) else 'id' - path_kwargs = {pk_name: pk} - path = f'/{model}/{{{pk_name}}}/' + pk_name = 'uuid' if utils.valid_uuid4(pk) else 'id' + + # update path kwargs key name + # example: {"product_uuid" :"db827034-30bb-4062-ac35-f8c24e8f81ad"} + path_kwargs = {f'{model}_{pk_name}': pk} + + # create path for retrieving individual data example : /product/{{product_uuid}}/ + path_parameter_name = f'{model}_{pk_name}' + path = f'/{model}/{{{path_parameter_name}}}/' # Check that operation is valid according to spec operation = spec.get_op_for_request(self._in_request.method, path) From 6ae3c59fd314bca28d47700b0c722c31a2e98f41 Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 5 Jan 2022 11:12:20 +0530 Subject: [PATCH 025/160] updated datamesh join module name --- .../management/commands/joinrelationships.py | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 6d04ba30..2ec885bc 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -24,8 +24,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Product', origin_module_endpoint='/product/', @@ -51,8 +51,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Product', origin_module_endpoint='/product/', @@ -79,8 +79,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Credential', origin_module_endpoint='/credential/', @@ -107,8 +107,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Release', origin_module_endpoint='/release/', @@ -135,7 +135,7 @@ def run_seed(self, mode): # # is_local=False, # - # origin_logic_module='projecttool', + # origin_logic_module='product', # related_logic_module='hostedadmin', # # origin_module_model='Release', @@ -163,7 +163,7 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', + origin_logic_module='product', related_logic_module='devpartner', origin_module_model='Release', @@ -193,8 +193,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Decision', origin_module_endpoint='/decision/', @@ -221,8 +221,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Decision', origin_module_endpoint='/decision/', @@ -249,8 +249,8 @@ def run_seed(self, mode): # # is_local=False, # - # origin_logic_module='release', - # related_logic_module='release', + # origin_logic_module='decision', + # related_logic_module='decision', # # origin_module_model='Status', # origin_module_endpoint='/status/', @@ -277,8 +277,8 @@ def run_seed(self, mode): # # is_local=False, # - # origin_logic_module='release', - # related_logic_module='release', + # origin_logic_module='decision', + # related_logic_module='decision', # # origin_module_model='Status', # origin_module_endpoint='/status/', @@ -305,8 +305,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Feature', origin_module_endpoint='/feature/', @@ -333,8 +333,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Issue', origin_module_endpoint='/issue/', @@ -361,8 +361,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Issue', origin_module_endpoint='/issue/', @@ -389,8 +389,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Feedback', origin_module_endpoint='/feedback/', @@ -417,8 +417,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Feedback', origin_module_endpoint='/feedback/', From 989f0d3ecedafa84af1021defe41653c2c1a5676 Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Thu, 6 Jan 2022 16:22:56 +0530 Subject: [PATCH 026/160] Added script to load datamesh --- .../commands/datamesh_join_script.py | 37 ++++++------ .../commands/datamesh_retrieve_json.sh | 16 ++++++ .../management/commands/joinrelationships.py | 56 +++++++++---------- 3 files changed, 64 insertions(+), 45 deletions(-) create mode 100755 datamesh/management/commands/datamesh_retrieve_json.sh diff --git a/datamesh/management/commands/datamesh_join_script.py b/datamesh/management/commands/datamesh_join_script.py index 13509b75..de9a4337 100644 --- a/datamesh/management/commands/datamesh_join_script.py +++ b/datamesh/management/commands/datamesh_join_script.py @@ -5,22 +5,22 @@ from core.models import LogicModule """ -# add logic module from core +# add logic module from core origin_logic_module = logic module from core related_logic_module = logic module from core -# send is_local =True/False if join is it with core - -# origin_module_model = send Model name of origin +# send is_local =True/False if join is it with core + +# origin_module_model = send Model name of origin # origin_module_endpoint = send origin module endpoint # origin_module_lookup_field_name = send origin module model lookup field -# related_module_model = send Model name of origin +# related_module_model = send Model name of origin # related_module_endpoint = send origin module endpoint # related_module_lookup_field_name = send origin module model lookup field # lookup_field_type = it's either id or uuid -# relationship_key_name = send relation name +# relationship_key_name = send relation name # field_name = send field of json file which want to join with # is_list = True/False if the field type is array then send it True else False @@ -29,36 +29,39 @@ join_relationship( json_file=, - + is_local=, - + origin_logic_module = , related_logic_module = , - + origin_module_model =, origin_module_endpoint =, origin_module_lookup_field_name =, - + related_module_model =, related_module_endpoint=, related_module_lookup_field_name=, - + lookup_field_type = , - + relationship_key_name=, field_name=, is_list=, - organization=, + organization=, ) """ def join_relationship(*args, **kwargs): - model_json_file = str(kwargs.get('json_file')) + if kwargs.get('json_file'): + model_json_file = str(kwargs.get('json_file')) - # load json file and take data into model_data variable - with open(model_json_file, 'r', encoding='utf-8') as file_data: - model_data = json.load(file_data) + # load json file and take data into model_data variable + with open(model_json_file, 'r', encoding='utf-8') as file_data: + model_data = json.load(file_data) + else: + pass # get logic module from core origin_logic_module = LogicModule.objects.get(endpoint_name=str(kwargs.get('origin_logic_module'))) diff --git a/datamesh/management/commands/datamesh_retrieve_json.sh b/datamesh/management/commands/datamesh_retrieve_json.sh new file mode 100755 index 00000000..652f9f79 --- /dev/null +++ b/datamesh/management/commands/datamesh_retrieve_json.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +PRODUCT=$(kubectl get pod -l app=projecttool-service -o jsonpath="{.items[0].metadata.name}" -n buildly) +DEV_PARTNER=$(kubectl get pod -l app=devpartner-service -o jsonpath="{.items[0].metadata.name}" -n buildly) +DECISION=$(kubectl get pod -l app=release-service -o jsonpath="{.items[0].metadata.name}" -n buildly) + +cd ../../../ +pwd + +kubectl exec -it $PRODUCT -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 project_tool.product" > product.json +kubectl exec -it $PRODUCT -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 project_tool.credential" > credential.json +kubectl exec -it $PRODUCT -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 project_tool.release" > release.json +kubectl exec -it $DEV_PARTNER -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 dev_partner.timesheethour" > timesheethour.json +kubectl exec -it $DECISION -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 release.decision" > decision.json +kubectl exec -it $DECISION -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 release.feature" > feature.json +kubectl exec -it $DECISION -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 release.issue" > issue.json +kubectl exec -it $DECISION -n buildly -- bash -c "python manage.py dumpdata --format=json --indent=4 release.feedback" > feedback.json \ No newline at end of file diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 6d04ba30..2ec885bc 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -24,8 +24,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Product', origin_module_endpoint='/product/', @@ -51,8 +51,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Product', origin_module_endpoint='/product/', @@ -79,8 +79,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Credential', origin_module_endpoint='/credential/', @@ -107,8 +107,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', - related_logic_module='projecttool', + origin_logic_module='product', + related_logic_module='product', origin_module_model='Release', origin_module_endpoint='/release/', @@ -135,7 +135,7 @@ def run_seed(self, mode): # # is_local=False, # - # origin_logic_module='projecttool', + # origin_logic_module='product', # related_logic_module='hostedadmin', # # origin_module_model='Release', @@ -163,7 +163,7 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='projecttool', + origin_logic_module='product', related_logic_module='devpartner', origin_module_model='Release', @@ -193,8 +193,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Decision', origin_module_endpoint='/decision/', @@ -221,8 +221,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Decision', origin_module_endpoint='/decision/', @@ -249,8 +249,8 @@ def run_seed(self, mode): # # is_local=False, # - # origin_logic_module='release', - # related_logic_module='release', + # origin_logic_module='decision', + # related_logic_module='decision', # # origin_module_model='Status', # origin_module_endpoint='/status/', @@ -277,8 +277,8 @@ def run_seed(self, mode): # # is_local=False, # - # origin_logic_module='release', - # related_logic_module='release', + # origin_logic_module='decision', + # related_logic_module='decision', # # origin_module_model='Status', # origin_module_endpoint='/status/', @@ -305,8 +305,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Feature', origin_module_endpoint='/feature/', @@ -333,8 +333,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Issue', origin_module_endpoint='/issue/', @@ -361,8 +361,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Issue', origin_module_endpoint='/issue/', @@ -389,8 +389,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Feedback', origin_module_endpoint='/feedback/', @@ -417,8 +417,8 @@ def run_seed(self, mode): is_local=False, - origin_logic_module='release', - related_logic_module='release', + origin_logic_module='decision', + related_logic_module='decision', origin_module_model='Feedback', origin_module_endpoint='/feedback/', From 348cc62b68d83cb7a55304a8b3917e2b1506d250 Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Thu, 6 Jan 2022 16:23:17 +0530 Subject: [PATCH 027/160] Handled blank response for join records --- buildly/management/commands/loadinitialdata.py | 1 - datamesh/services.py | 5 ++++- gateway/request.py | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/buildly/management/commands/loadinitialdata.py b/buildly/management/commands/loadinitialdata.py index af955131..02545474 100644 --- a/buildly/management/commands/loadinitialdata.py +++ b/buildly/management/commands/loadinitialdata.py @@ -17,7 +17,6 @@ class Command(BaseCommand): help = """ Loads initial data for Buildly. """ - print('Settings: ', settings) def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) diff --git a/datamesh/services.py b/datamesh/services.py index fa81abe8..57a23e91 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -127,7 +127,10 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: if hasattr(client, 'request') and callable(client.request): content = client.request(**params) if isinstance(content, tuple): # assume that response body is the first returned value - content = content[0] + if content[1] == 200: + content = content[0] + else: + content = [] if isinstance(content, dict): data_item[relationship.key].append(dict(content)) else: diff --git a/gateway/request.py b/gateway/request.py index 2c0ffab9..8d258efb 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -97,6 +97,9 @@ def perform(self) -> GatewayResponse: # perform a service data request content, status_code, headers = client.request(**self.url_kwargs) + # calls to individual service as per relationship + + # call to join record insertion method # aggregate/join with the JoinRecord-models if 'join' in self.request.query_params and status_code == 200 and type(content) in [dict, list]: try: From 9ae39c9c92f7e4b3c97331b4d059e0589ff8c6fc Mon Sep 17 00:00:00 2001 From: manish Date: Fri, 7 Jan 2022 17:09:26 +0530 Subject: [PATCH 028/160] datamesh POST/PUT request implementation --- datamesh/services.py | 33 +++++++++++++++++++------ gateway/request.py | 59 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 80 insertions(+), 12 deletions(-) diff --git a/datamesh/services.py b/datamesh/services.py index fa81abe8..64e3f016 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -47,18 +47,18 @@ def get_related_records_meta(self, origin_pk: Any) -> Generator[tuple, None, Non """ for relationship, is_forward_lookup in self._relationships: join_records = JoinRecord.objects.get_join_records(origin_pk, relationship, is_forward_lookup) + print('join_records', join_records) if join_records: related_model, related_record_field = prepare_lookup_kwargs( is_forward_lookup, relationship, join_records[0]) for join_record in join_records: - params = { - 'pk': (str(getattr(join_record, related_record_field))), - 'model': related_model.endpoint.strip('/'), - 'service': related_model.logic_module_endpoint_name, - 'pk_name': related_model.lookup_field_name, - } + 'pk': (str(getattr(join_record, related_record_field))), + 'model': related_model.endpoint.strip('/'), + 'service': related_model.logic_module_endpoint_name, + 'pk_name': related_model.lookup_field_name, + } yield relationship, params @@ -107,6 +107,7 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: """ Nest data retrieved from related services. """ + print() origin_pk = data_item.get(self._origin_lookup_field) if not origin_pk: raise DatameshConfigurationError( @@ -123,7 +124,8 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: params['method'] = 'get' client = client_map.get(params['service']) - + print('client', client) + print("params", params) if hasattr(client, 'request') and callable(client.request): content = client.request(**params) if isinstance(content, tuple): # assume that response body is the first returned value @@ -135,6 +137,23 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: else: raise DatameshConfigurationError(f'DataMesh Error: Client should have request method') + def fetch_datamesh_relationship(self): + relationship_list = [] + request_param = {} + for relationship, _ in self._relationships: + relationship_list.append(relationship.key) + + params = { + 'pk': None, + 'model': relationship.origin_model.endpoint.strip('/'), + 'service': relationship.origin_model.logic_module_endpoint_name, + 'related_model_pk_name': relationship.related_model.lookup_field_name, + 'origin_model_pk_name': relationship.origin_model.lookup_field_name + } + + request_param[relationship.key] = params + return relationship_list, request_param + async def async_extend_data(self, data: Union[dict, list], client_map: Dict[str, Any]): """ Async aggregation logic diff --git a/gateway/request.py b/gateway/request.py index 2c0ffab9..e6c1c095 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -14,6 +14,7 @@ from core.models import LogicModule from gateway.clients import SwaggerClient, AsyncSwaggerClient from datamesh.services import DataMesh +from datamesh.models import JoinRecord, Relationship logger = logging.getLogger(__name__) @@ -69,7 +70,7 @@ def get_datamesh(self) -> DataMesh: # find out forwards relations through logic module from request as origin padding = self.request.path.index(f'/{logic_module.endpoint_name}') - endpoint = self.request.path[len(f'/{logic_module.endpoint_name}')+padding:] + endpoint = self.request.path[len(f'/{logic_module.endpoint_name}') + padding:] endpoint = endpoint[:endpoint.index('/', 1) + 1] return DataMesh(logic_module_endpoint=logic_module.endpoint_name, model_endpoint=endpoint, @@ -86,19 +87,20 @@ def perform(self) -> GatewayResponse: Make request to underlying service(s) and returns aggregated response. """ # init swagger spec from the service swagger doc file + print("'self.url_kwargs['service']'", self.url_kwargs['service']) try: spec = self._get_swagger_spec(self.url_kwargs['service']) except exceptions.ServiceDoesNotExist as e: return GatewayResponse(e.content, e.status, {'Content-Type': e.content_type}) - + print('spec', spec) # create a client for performing data requests + print('self.url_kwargs', self.url_kwargs) client = SwaggerClient(spec, self.request) - # perform a service data request content, status_code, headers = client.request(**self.url_kwargs) # aggregate/join with the JoinRecord-models - if 'join' in self.request.query_params and status_code == 200 and type(content) in [dict, list]: + if 'join' in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: try: self._join_response_data(resp_data=content) except exceptions.ServiceDoesNotExist as e: @@ -139,6 +141,7 @@ def _join_response_data(self, resp_data: Union[dict, list]) -> None: Aggregates data from the requested service and from related services. Uses DataMesh relationship model for this. """ + self.request._request.GET = QueryDict(mutable=True) if isinstance(resp_data, dict): @@ -148,10 +151,56 @@ def _join_response_data(self, resp_data: Union[dict, list]) -> None: datamesh = self.get_datamesh() client_map = {} + for service in datamesh.related_logic_modules: spec = self._get_swagger_spec(service) client_map[service] = SwaggerClient(spec, self.request) - datamesh.extend_data(resp_data, client_map) + + # check the request method + if self.request.method in ['POST', 'PUT', 'PATCH']: + # fetch datamesh logic module info for current request from datamesh + datamesh_relationship, request_param = datamesh.fetch_datamesh_relationship() + + # iterate over the datamesh relationships + for relationship in datamesh_relationship: + # from the relationship get the set of data for given individual relationship + post_data = self.request.data[relationship] + request_relationship_data = self.request # copy the request data to another variable + + for data in post_data: # iterate over the list of objects + request_param['method'] = self.request.method + + # clearing all the form current request and updating it with related data the going to POST/PUT + request_relationship_data.data.clear() + request_relationship_data.data.update(data) + + # update the created object reference to request_relationship_data + if self.request.method in ['POST']: + request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data['url'] + + # for the PUT/PATCH request update PK in request param + if self.request.method in ['PUT', 'PATCH']: + request_param[relationship]['pk'] = \ + request_relationship_data.data[request_param[relationship]['origin_model_pk_name']] + request_param[relationship]['method'] = self.request.method + + # create a client for performing data requests + spec = self._get_swagger_spec(request_param[relationship]['service']) + client = SwaggerClient(spec, request_relationship_data) + + # perform a service data request + content, status_code, headers = client.request(**request_param[relationship]) + + if self.request.method in ['POST']: # create join record + JoinRecord.objects.create( + relationship=Relationship.objects.filter(key=relationship).first(), + record_uuid=content[str(request_param[relationship]['origin_model_pk_name'])], + related_record_uuid=resp_data[str(request_param[relationship]['related_model_pk_name'])], + organization_id=None + ) + + if self.request.method in ['GET']: + datamesh.extend_data(resp_data, client_map) class AsyncGatewayRequest(BaseGatewayRequest): From df2252a865e7b5be835294341c92a814e1a69cc4 Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 10 Jan 2022 17:20:36 +0530 Subject: [PATCH 029/160] updated post request for different use-cases --- datamesh/services.py | 6 ++-- gateway/request.py | 68 +++++++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 33 deletions(-) diff --git a/datamesh/services.py b/datamesh/services.py index 64e3f016..56df6045 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -47,7 +47,6 @@ def get_related_records_meta(self, origin_pk: Any) -> Generator[tuple, None, Non """ for relationship, is_forward_lookup in self._relationships: join_records = JoinRecord.objects.get_join_records(origin_pk, relationship, is_forward_lookup) - print('join_records', join_records) if join_records: related_model, related_record_field = prepare_lookup_kwargs( is_forward_lookup, relationship, join_records[0]) @@ -107,7 +106,7 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: """ Nest data retrieved from related services. """ - print() + origin_pk = data_item.get(self._origin_lookup_field) if not origin_pk: raise DatameshConfigurationError( @@ -124,8 +123,7 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: params['method'] = 'get' client = client_map.get(params['service']) - print('client', client) - print("params", params) + if hasattr(client, 'request') and callable(client.request): content = client.request(**params) if isinstance(content, tuple): # assume that response body is the first returned value diff --git a/gateway/request.py b/gateway/request.py index e6c1c095..e0602604 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -87,22 +87,20 @@ def perform(self) -> GatewayResponse: Make request to underlying service(s) and returns aggregated response. """ # init swagger spec from the service swagger doc file - print("'self.url_kwargs['service']'", self.url_kwargs['service']) try: spec = self._get_swagger_spec(self.url_kwargs['service']) except exceptions.ServiceDoesNotExist as e: return GatewayResponse(e.content, e.status, {'Content-Type': e.content_type}) - print('spec', spec) + # create a client for performing data requests - print('self.url_kwargs', self.url_kwargs) client = SwaggerClient(spec, self.request) # perform a service data request content, status_code, headers = client.request(**self.url_kwargs) # aggregate/join with the JoinRecord-models - if 'join' in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: + if 'join' or 'extend' in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: try: - self._join_response_data(resp_data=content) + self._join_response_data(resp_data=content, query_params=self.request.query_params) except exceptions.ServiceDoesNotExist as e: logger.error(e.content) @@ -136,12 +134,11 @@ def _get_swagger_spec(self, endpoint_name: str) -> Spec: return self._specs[schema_url] - def _join_response_data(self, resp_data: Union[dict, list]) -> None: + def _join_response_data(self, resp_data: Union[dict, list], query_params: str) -> None: """ Aggregates data from the requested service and from related services. Uses DataMesh relationship model for this. """ - self.request._request.GET = QueryDict(mutable=True) if isinstance(resp_data, dict): @@ -168,39 +165,52 @@ def _join_response_data(self, resp_data: Union[dict, list]) -> None: request_relationship_data = self.request # copy the request data to another variable for data in post_data: # iterate over the list of objects - request_param['method'] = self.request.method # clearing all the form current request and updating it with related data the going to POST/PUT request_relationship_data.data.clear() request_relationship_data.data.update(data) + # get organization + organization = self.request.session.get('jwt_organization_uuid', None) + + # post the origin_model model data and create join with related_model + if self.request.method in ['POST'] and 'extend' in query_params: + origin_model_pk = resp_data[request_param[relationship]['origin_model_pk_name']] + related_model_pk = self.request.data[request_param[relationship]['related_model_pk_name']] + self._join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + # update the created object reference to request_relationship_data - if self.request.method in ['POST']: + if self.request.method in ['POST'] and 'join' in query_params: request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data['url'] # for the PUT/PATCH request update PK in request param - if self.request.method in ['PUT', 'PATCH']: - request_param[relationship]['pk'] = \ - request_relationship_data.data[request_param[relationship]['origin_model_pk_name']] + if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: + request_param[relationship]['pk'] = request_relationship_data.data[request_param[relationship]['origin_model_pk_name']] request_param[relationship]['method'] = self.request.method - # create a client for performing data requests - spec = self._get_swagger_spec(request_param[relationship]['service']) - client = SwaggerClient(spec, request_relationship_data) - - # perform a service data request - content, status_code, headers = client.request(**request_param[relationship]) - - if self.request.method in ['POST']: # create join record - JoinRecord.objects.create( - relationship=Relationship.objects.filter(key=relationship).first(), - record_uuid=content[str(request_param[relationship]['origin_model_pk_name'])], - related_record_uuid=resp_data[str(request_param[relationship]['related_model_pk_name'])], - organization_id=None - ) - - if self.request.method in ['GET']: - datamesh.extend_data(resp_data, client_map) + # allow only if origin model needs to update or create + if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in query_params: + # create a client for performing data requests + spec = self._get_swagger_spec(request_param[relationship]['service']) + client = SwaggerClient(spec, request_relationship_data) + + # perform a service data request + content, status_code, headers = client.request(**request_param[relationship]) + + if self.request.method in ['POST'] and 'join' in query_params: # create join record + origin_model_pk = content[request_param[relationship]['origin_model_pk_name']] + related_model_pk = resp_data[request_param[relationship]['related_model_pk_name']] + self._join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + + datamesh.extend_data(resp_data, client_map) + + def _join_record(self, relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: + JoinRecord.objects.create( + relationship=Relationship.objects.filter(key=relationship).first(), + record_uuid=origin_model_pk, + related_record_uuid=related_model_pk, + organization_id=organization + ) class AsyncGatewayRequest(BaseGatewayRequest): From de114347504a1c8046f50d0af725db2ef4ad1ffc Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 10 Jan 2022 19:01:02 +0530 Subject: [PATCH 030/160] datamesh implemented delete request --- gateway/request.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gateway/request.py b/gateway/request.py index e0602604..2e71c60f 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -6,6 +6,7 @@ import aiohttp from bravado_core.spec import Spec +from django.db.models import Q from django.http.request import QueryDict from rest_framework.request import Request @@ -94,16 +95,20 @@ def perform(self) -> GatewayResponse: # create a client for performing data requests client = SwaggerClient(spec, self.request) + # perform a service data request content, status_code, headers = client.request(**self.url_kwargs) # aggregate/join with the JoinRecord-models - if 'join' or 'extend' in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: + if ("join" or "extend") in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: try: self._join_response_data(resp_data=content, query_params=self.request.query_params) except exceptions.ServiceDoesNotExist as e: logger.error(e.content) + if 'join' in self.request.query_params and self.request.method == 'DELETE' and status_code == 204: + self._delete_join_record(pk=self.url_kwargs['pk']) # delete join record + if type(content) in [dict, list]: content = json.dumps(content, cls=utils.GatewayJSONEncoder) @@ -212,6 +217,12 @@ def _join_record(self, relationship: str, origin_model_pk: str, related_model_pk organization_id=organization ) + def _delete_join_record(self, pk: [str, int]) -> None: + + JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) + | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) + ).delete() + class AsyncGatewayRequest(BaseGatewayRequest): """ From fcde76c24ffe88b91d699d9fecea0bc55a315ace Mon Sep 17 00:00:00 2001 From: manish Date: Tue, 11 Jan 2022 19:08:15 +0530 Subject: [PATCH 031/160] post empty response validation --- gateway/request.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/gateway/request.py b/gateway/request.py index 2e71c60f..6f6fb23e 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -157,7 +157,7 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - for service in datamesh.related_logic_modules: spec = self._get_swagger_spec(service) client_map[service] = SwaggerClient(spec, self.request) - + # print('self.request.data',self.request.data) # check the request method if self.request.method in ['POST', 'PUT', 'PATCH']: # fetch datamesh logic module info for current request from datamesh @@ -166,7 +166,12 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - # iterate over the datamesh relationships for relationship in datamesh_relationship: # from the relationship get the set of data for given individual relationship - post_data = self.request.data[relationship] + post_data = self.request.data.get(relationship, None) + + # if relationship data is empty in this case continue + if not post_data: + continue + request_relationship_data = self.request # copy the request data to another variable for data in post_data: # iterate over the list of objects @@ -186,11 +191,18 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - # update the created object reference to request_relationship_data if self.request.method in ['POST'] and 'join' in query_params: - request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data['url'] + # print('request_relationship_data.data', request_relationship_data.data) + # print('resp_data', resp_data) + print('request_param[relationship]', request_param[relationship]) + request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data.get(request_param[relationship]['related_model_pk_name'], None) # for the PUT/PATCH request update PK in request param if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: - request_param[relationship]['pk'] = request_relationship_data.data[request_param[relationship]['origin_model_pk_name']] + # print('request_param',request_param) + # print('relationship', relationship) + # print('request_param[relationship]["origin_model_pk_name"]', request_param[relationship]['related_model_pk_name']) + # print('request_relationship_data.data', request_relationship_data.data) + request_param[relationship]['pk'] = request_relationship_data.data[request_param[relationship]['related_model_pk_name']] request_param[relationship]['method'] = self.request.method # allow only if origin model needs to update or create @@ -198,11 +210,13 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - # create a client for performing data requests spec = self._get_swagger_spec(request_param[relationship]['service']) client = SwaggerClient(spec, request_relationship_data) - + print('relationship', relationship) + print('request_param[relationship]', request_param[relationship]) # perform a service data request content, status_code, headers = client.request(**request_param[relationship]) if self.request.method in ['POST'] and 'join' in query_params: # create join record + print('content', content, request_param[relationship]['related_model_pk_name']) origin_model_pk = content[request_param[relationship]['origin_model_pk_name']] related_model_pk = resp_data[request_param[relationship]['related_model_pk_name']] self._join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) From 9f5304c1added02c21eac43115fd8f16e2bbdffa Mon Sep 17 00:00:00 2001 From: manish Date: Tue, 11 Jan 2022 19:13:54 +0530 Subject: [PATCH 032/160] updated datamesh script for pk --- datamesh/management/commands/joinrelationships.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index 2ec885bc..e4b682c4 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -172,7 +172,7 @@ def run_seed(self, mode): related_module_model='DevTeam', related_module_endpoint='/devteam/', - related_module_lookup_field_name='dev_team_uuid', + related_module_lookup_field_name='devteam_uuid', origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -450,7 +450,7 @@ def run_seed(self, mode): origin_module_model='TimeSheetHour', origin_module_endpoint='/timesheethour/', - origin_module_lookup_field_name='timesheet_hour_uuid', + origin_module_lookup_field_name='timesheethour_uuid', related_module_model='TimeSheet', related_module_endpoint='/timesheet/', From fc996686c4b1774b79838f2a601d373a6d61c0de Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 12 Jan 2022 18:23:05 +0530 Subject: [PATCH 033/160] converted into functions --- gateway/request.py | 124 ++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/gateway/request.py b/gateway/request.py index c581c014..043f5b5a 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -110,7 +110,7 @@ def perform(self) -> GatewayResponse: logger.error(e.content) if 'join' in self.request.query_params and self.request.method == 'DELETE' and status_code == 204: - self._delete_join_record(pk=self.url_kwargs['pk']) # delete join record + self.delete_join_record(pk=self.url_kwargs['pk']) # delete join record if type(content) in [dict, list]: content = json.dumps(content, cls=utils.GatewayJSONEncoder) @@ -165,68 +165,68 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - if self.request.method in ['POST', 'PUT', 'PATCH']: # fetch datamesh logic module info for current request from datamesh datamesh_relationship, request_param = datamesh.fetch_datamesh_relationship() - - # iterate over the datamesh relationships - for relationship in datamesh_relationship: - # from the relationship get the set of data for given individual relationship - post_data = self.request.data.get(relationship, None) - - # if relationship data is empty in this case continue - if not post_data: - continue - - request_relationship_data = self.request # copy the request data to another variable - - for data in post_data: # iterate over the list of objects - - # clearing all the form current request and updating it with related data the going to POST/PUT - request_relationship_data.data.clear() - request_relationship_data.data.update(data) - - # get organization - organization = self.request.session.get('jwt_organization_uuid', None) - - # post the origin_model model data and create join with related_model - if self.request.method in ['POST'] and 'extend' in query_params: - origin_model_pk = resp_data[request_param[relationship]['origin_model_pk_name']] - related_model_pk = self.request.data[request_param[relationship]['related_model_pk_name']] - self._join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) - - # update the created object reference to request_relationship_data - if self.request.method in ['POST'] and 'join' in query_params: - # print('request_relationship_data.data', request_relationship_data.data) - # print('resp_data', resp_data) - print('request_param[relationship]', request_param[relationship]) - request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data.get(request_param[relationship]['related_model_pk_name'], None) - - # for the PUT/PATCH request update PK in request param - if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: - # print('request_param',request_param) - # print('relationship', relationship) - # print('request_param[relationship]["origin_model_pk_name"]', request_param[relationship]['related_model_pk_name']) - # print('request_relationship_data.data', request_relationship_data.data) - request_param[relationship]['pk'] = request_relationship_data.data[request_param[relationship]['related_model_pk_name']] - request_param[relationship]['method'] = self.request.method - - # allow only if origin model needs to update or create - if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in query_params: - # create a client for performing data requests - spec = self._get_swagger_spec(request_param[relationship]['service']) - client = SwaggerClient(spec, request_relationship_data) - print('relationship', relationship) - print('request_param[relationship]', request_param[relationship]) - # perform a service data request - content, status_code, headers = client.request(**request_param[relationship]) - - if self.request.method in ['POST'] and 'join' in query_params: # create join record - print('content', content, request_param[relationship]['related_model_pk_name']) - origin_model_pk = content[request_param[relationship]['origin_model_pk_name']] - related_model_pk = resp_data[request_param[relationship]['related_model_pk_name']] - self._join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) - + self.retrieve_relationship_data(datamesh_relationship=datamesh_relationship, query_params=query_params, request_param=request_param, resp_data=resp_data) datamesh.extend_data(resp_data, client_map) - def _join_record(self, relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: + def retrieve_relationship_data(self, datamesh_relationship: any, query_params: str, request_param: any, resp_data: Union[dict, list]): + # iterate over the datamesh relationships + for relationship in datamesh_relationship: + # from the relationship get the set of data for given individual relationship + post_data = self.request.data.get(relationship, None) + + # if relationship data is empty in this case continue + if not post_data: + continue + + request_relationship_data = self.request # copy the request data to another variable + + for data in post_data: # iterate over the list of objects + # clearing all the form current request and updating it with related data the going to POST/PUT + request_relationship_data.data.clear() + request_relationship_data.data.update(data) + + # validate request + self.validate_request(resp_data=resp_data, request_param=request_param, relationship=relationship, query_params=query_params, request_relationship_data=request_relationship_data) + + def validate_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any): + # get organization + organization = self.request.session.get('jwt_organization_uuid', None) + + # post the origin_model model data and create join with related_model + if self.request.method in ['POST'] and 'extend' in query_params: + origin_model_pk = resp_data[request_param[relationship]['origin_model_pk_name']] + related_model_pk = self.request.data[request_param[relationship]['related_model_pk_name']] + self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + + # update the created object reference to request_relationship_data + if self.request.method in ['POST'] and 'join' in query_params: + request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data.get(request_param[relationship]['related_model_pk_name'], None) + + # for the PUT/PATCH request update PK in request param + if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: + request_param[relationship]['pk'] = request_relationship_data.data[request_param[relationship]['related_model_pk_name']] + request_param[relationship]['method'] = self.request.method + + # perform request + self.perform_request(resp_data=resp_data, request_param=request_param, relationship=relationship, query_params=query_params, request_relationship_data=request_relationship_data, + organization=organization) + + def perform_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any, organization: any): + # allow only if origin model needs to update or create + if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in query_params: + # create a client for performing data requests + spec = self._get_swagger_spec(request_param[relationship]['service']) + client = SwaggerClient(spec, request_relationship_data) + + # perform a service data request + content, status_code, headers = client.request(**request_param[relationship]) + + if self.request.method in ['POST'] and 'join' in query_params: # create join record + origin_model_pk = content[request_param[relationship]['origin_model_pk_name']] + related_model_pk = resp_data[request_param[relationship]['related_model_pk_name']] + self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + + def join_record(self, relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: JoinRecord.objects.create( relationship=Relationship.objects.filter(key=relationship).first(), record_uuid=origin_model_pk, @@ -234,7 +234,7 @@ def _join_record(self, relationship: str, origin_model_pk: str, related_model_pk organization_id=organization ) - def _delete_join_record(self, pk: [str, int]) -> None: + def delete_join_record(self, pk: [str, int]) -> None: JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) From 60e4c9cd08421013d9fcef4076aad4c0aa507451 Mon Sep 17 00:00:00 2001 From: manish Date: Thu, 13 Jan 2022 18:52:57 +0530 Subject: [PATCH 034/160] updated put request --- gateway/request.py | 75 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/gateway/request.py b/gateway/request.py index 043f5b5a..62c1557e 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -10,6 +10,7 @@ from django.http.request import QueryDict from rest_framework.request import Request +from datamesh.exceptions import DatameshConfigurationError from gateway import exceptions from gateway import utils from core.models import LogicModule @@ -157,59 +158,79 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - datamesh = self.get_datamesh() client_map = {} - for service in datamesh.related_logic_modules: - spec = self._get_swagger_spec(service) - client_map[service] = SwaggerClient(spec, self.request) # print('self.request.data',self.request.data) # check the request method if self.request.method in ['POST', 'PUT', 'PATCH']: # fetch datamesh logic module info for current request from datamesh datamesh_relationship, request_param = datamesh.fetch_datamesh_relationship() self.retrieve_relationship_data(datamesh_relationship=datamesh_relationship, query_params=query_params, request_param=request_param, resp_data=resp_data) + + for service in datamesh.related_logic_modules: + spec = self._get_swagger_spec(service) + client_map[service] = SwaggerClient(spec, self.request) + datamesh.extend_data(resp_data, client_map) def retrieve_relationship_data(self, datamesh_relationship: any, query_params: str, request_param: any, resp_data: Union[dict, list]): # iterate over the datamesh relationships - for relationship in datamesh_relationship: - # from the relationship get the set of data for given individual relationship - post_data = self.request.data.get(relationship, None) + # print('datamesh_relationship', datamesh_relationship) + relationship_data = {} + for relationship in datamesh_relationship: # retrieve relationship data from request.data + relationship_data[relationship] = self.request.data.get(relationship) - # if relationship data is empty in this case continue - if not post_data: + for relationship, data in relationship_data.items(): # iterate over the relationship and data + if not data: continue - request_relationship_data = self.request # copy the request data to another variable - - for data in post_data: # iterate over the list of objects + # iterate over the relationship data as the data always in list + for instance in data: # clearing all the form current request and updating it with related data the going to POST/PUT - request_relationship_data.data.clear() - request_relationship_data.data.update(data) + request_relationship_data = self.request # copy the request data to another variable + request_relationship_data.data.clear() # clear request.data.data + request_relationship_data.data.update(instance) # update the relationship_data to request.data to perform request # validate request - self.validate_request(resp_data=resp_data, request_param=request_param, relationship=relationship, query_params=query_params, request_relationship_data=request_relationship_data) + self.validate_request(resp_data=resp_data, request_param=request_param, relationship=relationship, + query_params=query_params, relationship_data=request_relationship_data + ) - def validate_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any): + def validate_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, relationship_data: any): # get organization organization = self.request.session.get('jwt_organization_uuid', None) + origin_model_pk_name = request_param[relationship]['origin_model_pk_name'] + related_model_pk_name = request_param[relationship]['related_model_pk_name'] + request_method = self.request.method # post the origin_model model data and create join with related_model if self.request.method in ['POST'] and 'extend' in query_params: - origin_model_pk = resp_data[request_param[relationship]['origin_model_pk_name']] - related_model_pk = self.request.data[request_param[relationship]['related_model_pk_name']] + origin_model_pk = resp_data[origin_model_pk_name] + related_model_pk = self.request.data[related_model_pk_name] self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) # update the created object reference to request_relationship_data if self.request.method in ['POST'] and 'join' in query_params: - request_relationship_data.data[request_param[relationship]['related_model_pk_name']] = resp_data.get(request_param[relationship]['related_model_pk_name'], None) + relationship_data.data[related_model_pk_name] = resp_data.get(related_model_pk_name, None) # for the PUT/PATCH request update PK in request param if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: - request_param[relationship]['pk'] = request_relationship_data.data[request_param[relationship]['related_model_pk_name']] - request_param[relationship]['method'] = self.request.method + # assuming if request doesn't have pk then data needed to be created + pk = relationship_data.data.get(origin_model_pk_name, None) + if not pk: + # update the request method and update the request data + # validation for + import re + reference_field_name = related_model_pk_name if relationship_data.data.get(related_model_pk_name) else re.split("_", related_model_pk_name)[0] + + if relationship_data.data[reference_field_name]: + request_param[relationship]['pk'], self.request.method = None, 'POST' + relationship_data.data[reference_field_name] = resp_data[related_model_pk_name] + else: + self.request.method, request_param[relationship]['method'] = request_method, request_method + request_param[relationship]['pk'] = pk # perform request - self.perform_request(resp_data=resp_data, request_param=request_param, relationship=relationship, query_params=query_params, request_relationship_data=request_relationship_data, - organization=organization) + self.perform_request(resp_data=resp_data, request_param=request_param, relationship=relationship, + query_params=query_params, request_relationship_data=relationship_data, organization=organization) def perform_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any, organization: any): # allow only if origin model needs to update or create @@ -224,7 +245,15 @@ def perform_request(self, resp_data: any, request_param: any, relationship: any, if self.request.method in ['POST'] and 'join' in query_params: # create join record origin_model_pk = content[request_param[relationship]['origin_model_pk_name']] related_model_pk = resp_data[request_param[relationship]['related_model_pk_name']] - self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + organization=organization) + + def validate_relationship_joins(self): + pass + + def validate_join(self): + join_record = JoinRecord.objects.filter() + return True if join_record else False def join_record(self, relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: JoinRecord.objects.create( From cd4d25c0233483a22fa306f43e3a7b712f5b5bcc Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 17 Jan 2022 18:51:48 +0530 Subject: [PATCH 035/160] updated PUT request for case -> The relation that exists but needs to create join --- .../migrations/0003_auto_20220117_1134.py | 23 ++++++++++ datamesh/models.py | 2 + datamesh/services.py | 4 +- gateway/request.py | 42 ++++++++++++++----- 4 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 datamesh/migrations/0003_auto_20220117_1134.py diff --git a/datamesh/migrations/0003_auto_20220117_1134.py b/datamesh/migrations/0003_auto_20220117_1134.py new file mode 100644 index 00000000..48a8b82e --- /dev/null +++ b/datamesh/migrations/0003_auto_20220117_1134.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.13 on 2022-01-17 11:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('datamesh', '0002_auto_20190918_1659'), + ] + + operations = [ + migrations.AddField( + model_name='relationship', + name='origin_lookup_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), + migrations.AddField( + model_name='relationship', + name='related_lookup_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), + ] diff --git a/datamesh/models.py b/datamesh/models.py index b455b22d..e4201316 100644 --- a/datamesh/models.py +++ b/datamesh/models.py @@ -59,6 +59,8 @@ class Relationship(models.Model): relationship_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) origin_model = models.ForeignKey(LogicModuleModel, related_name='joins_origins', on_delete=models.CASCADE) related_model = models.ForeignKey(LogicModuleModel, related_name='joins_relateds', on_delete=models.CASCADE) + origin_lookup_field_name = models.CharField(max_length=128, blank=True, null=True) + related_lookup_field_name = models.CharField(max_length=128, blank=True, null=True) def __str__(self): return f'{self.origin_model} -> {self.related_model}' diff --git a/datamesh/services.py b/datamesh/services.py index fc06a0f7..29071e8c 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -149,7 +149,9 @@ def fetch_datamesh_relationship(self): 'model': relationship.origin_model.endpoint.strip('/'), 'service': relationship.origin_model.logic_module_endpoint_name, 'related_model_pk_name': relationship.related_model.lookup_field_name, - 'origin_model_pk_name': relationship.origin_model.lookup_field_name + 'origin_model_pk_name': relationship.origin_model.lookup_field_name, + 'origin_lookup_field_name': relationship.origin_lookup_field_name, + 'related_lookup_field_name': relationship.related_lookup_field_name } request_param[relationship.key] = params diff --git a/gateway/request.py b/gateway/request.py index 62c1557e..be3a52a1 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -3,6 +3,7 @@ import asyncio from urllib.error import URLError from typing import Any, Dict, Union +import re import aiohttp from bravado_core.spec import Spec @@ -162,13 +163,14 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - # check the request method if self.request.method in ['POST', 'PUT', 'PATCH']: # fetch datamesh logic module info for current request from datamesh - datamesh_relationship, request_param = datamesh.fetch_datamesh_relationship() - self.retrieve_relationship_data(datamesh_relationship=datamesh_relationship, query_params=query_params, request_param=request_param, resp_data=resp_data) + self.datamesh_relationship, self.request_param = datamesh.fetch_datamesh_relationship() + self.retrieve_relationship_data(datamesh_relationship=self.datamesh_relationship, query_params=query_params, request_param=self.request_param, resp_data=resp_data) for service in datamesh.related_logic_modules: spec = self._get_swagger_spec(service) client_map[service] = SwaggerClient(spec, self.request) + # self.request.method = 'GET' datamesh.extend_data(resp_data, client_map) def retrieve_relationship_data(self, datamesh_relationship: any, query_params: str, request_param: any, resp_data: Union[dict, list]): @@ -179,7 +181,9 @@ def retrieve_relationship_data(self, datamesh_relationship: any, query_params: s relationship_data[relationship] = self.request.data.get(relationship) for relationship, data in relationship_data.items(): # iterate over the relationship and data + print('relationship--->', relationship) if not data: + self.validate_relationship_data(relationship=relationship, resp_data=resp_data) continue # iterate over the relationship data as the data always in list @@ -216,18 +220,22 @@ def validate_request(self, resp_data: any, request_param: any, relationship: any # assuming if request doesn't have pk then data needed to be created pk = relationship_data.data.get(origin_model_pk_name, None) if not pk: - # update the request method and update the request data - # validation for - import re + # validation for to save reference of related model reference_field_name = related_model_pk_name if relationship_data.data.get(related_model_pk_name) else re.split("_", related_model_pk_name)[0] if relationship_data.data[reference_field_name]: + # update the method as we are creating relation object and save pk to none as we are performing post request request_param[relationship]['pk'], self.request.method = None, 'POST' relationship_data.data[reference_field_name] = resp_data[related_model_pk_name] else: + # update the request and param method here we are keeping original request in + # request_method considering request might update for above condition self.request.method, request_param[relationship]['method'] = request_method, request_method request_param[relationship]['pk'] = pk + if 'join' in relationship_data.data: + pass + # perform request self.perform_request(resp_data=resp_data, request_param=request_param, relationship=relationship, query_params=query_params, request_relationship_data=relationship_data, organization=organization) @@ -248,14 +256,28 @@ def perform_request(self, resp_data: any, request_param: any, relationship: any, self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) - def validate_relationship_joins(self): - pass + def validate_relationship_data(self, resp_data: any, relationship: any): + """This function will validate the type of field and the relationship data""" + origin_lookup_field_uuid = resp_data[self.request_param[relationship]['origin_lookup_field_name']] + related_lookup_field_uuid = resp_data[self.request_param[relationship]['related_lookup_field_name']] + + if related_lookup_field_uuid: + if type(related_lookup_field_uuid) == type([]): # check for array type + for uuid in related_lookup_field_uuid: # for each item in array/list + related_lookup_field_uuid = uuid + # validate the join + self.validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + else: + self.validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) - def validate_join(self): - join_record = JoinRecord.objects.filter() - return True if join_record else False + def validate_join(self, record_uuid: any, related_record_uuid: any, relationship: any): + """This function is validating the join if the join not created, yet then it will create the join """ + join_record_instance = JoinRecord.objects.filter(relationship__key=relationship, record_uuid=record_uuid, related_record_uuid=related_record_uuid) + if not join_record_instance: + self.join_record(relationship=relationship, origin_model_pk=record_uuid, related_model_pk=related_record_uuid, organization=None) def join_record(self, relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: + """This function will create datamesh join""" JoinRecord.objects.create( relationship=Relationship.objects.filter(key=relationship).first(), record_uuid=origin_model_pk, From b42a4916bdb82895b6c776bf3cb3962f5b76153e Mon Sep 17 00:00:00 2001 From: Yasmin Ansari Date: Wed, 19 Jan 2022 15:26:37 +0530 Subject: [PATCH 036/160] Allow users to be auto-approved after registration --- README.md | 1 + buildly/settings/base.py | 1 + core/serializers.py | 7 +++++-- docker-compose.yml | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d4f3b579..5a1c7d04 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ The following tables list the configurable parameters of buildly and their defau | `DEFAULT_ORG` | The first organization created in the database | `` | | `SECRET_KEY` | Used to provide cryptographic signing, and should be set to a unique, unpredictable value | None | | `SUPER_USER_PASSWORD` | Used to define the super user password when it's created for the first time | `admin` in Debug mode or None | +| `AUTO_APPROVE_USER` | If approval process is set to auto-approve users can automatically login without admin apprvoal | False | #### Database Connection | Parameter | Description | Default | diff --git a/buildly/settings/base.py b/buildly/settings/base.py index 819bc748..1c72be73 100644 --- a/buildly/settings/base.py +++ b/buildly/settings/base.py @@ -192,6 +192,7 @@ # User and Organization configuration SUPER_USER_PASSWORD = os.getenv('SUPER_USER_PASSWORD') DEFAULT_ORG = os.getenv('DEFAULT_ORG') +AUTO_APPROVE_USER = os.getenv('AUTO_APPROVE_USER', False) # Swagger settings - for generate_swagger management command diff --git a/core/serializers.py b/core/serializers.py index 428f7987..67dfe9d8 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -125,8 +125,11 @@ def create(self, validated_data): core_groups = validated_data.pop('core_groups', []) # create core user - invitation_token = validated_data.pop('invitation_token', None) - validated_data['is_active'] = is_new_org or bool(invitation_token) + if bool(settings.AUTO_APPROVE_USER): # If auto-approval set to true + validated_data['is_active'] = True + else: + invitation_token = validated_data.pop('invitation_token', None) + validated_data['is_active'] = is_new_org or bool(invitation_token) coreuser = CoreUser.objects.create( organization=organization, **validated_data diff --git a/docker-compose.yml b/docker-compose.yml index 4789c458..df9fbca5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,7 @@ services: DATABASE_HOST: "postgres_buildly" DATABASE_PORT: "5432" DEFAULT_ORG: "Default Organization" + AUTO_APPROVE_USER: "True" JWT_ISSUER: "buildly" JWT_PRIVATE_KEY_RSA_BUILDLY: |- -----BEGIN RSA PRIVATE KEY----- From b3d842fb24485dd3ad6aec3d64a7c890e8100e32 Mon Sep 17 00:00:00 2001 From: manish Date: Wed, 19 Jan 2022 19:56:47 +0530 Subject: [PATCH 037/160] added fields on Relationship model --- .../migrations/0004_auto_20220119_0807.py | 23 ++++++++ datamesh/models.py | 2 + datamesh/services.py | 17 ++++-- gateway/request.py | 57 +++++++++++++------ 4 files changed, 76 insertions(+), 23 deletions(-) create mode 100644 datamesh/migrations/0004_auto_20220119_0807.py diff --git a/datamesh/migrations/0004_auto_20220119_0807.py b/datamesh/migrations/0004_auto_20220119_0807.py new file mode 100644 index 00000000..39b7caa8 --- /dev/null +++ b/datamesh/migrations/0004_auto_20220119_0807.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.13 on 2022-01-19 08:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('datamesh', '0003_auto_20220117_1134'), + ] + + operations = [ + migrations.AddField( + model_name='relationship', + name='origin_fk_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), + migrations.AddField( + model_name='relationship', + name='related_fk_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), + ] diff --git a/datamesh/models.py b/datamesh/models.py index e4201316..78047e23 100644 --- a/datamesh/models.py +++ b/datamesh/models.py @@ -60,7 +60,9 @@ class Relationship(models.Model): origin_model = models.ForeignKey(LogicModuleModel, related_name='joins_origins', on_delete=models.CASCADE) related_model = models.ForeignKey(LogicModuleModel, related_name='joins_relateds', on_delete=models.CASCADE) origin_lookup_field_name = models.CharField(max_length=128, blank=True, null=True) + origin_fk_field_name = models.CharField(max_length=128, blank=True, null=True) related_lookup_field_name = models.CharField(max_length=128, blank=True, null=True) + related_fk_field_name = models.CharField(max_length=128, blank=True, null=True) def __str__(self): return f'{self.origin_model} -> {self.related_model}' diff --git a/datamesh/services.py b/datamesh/services.py index 29071e8c..2bf6e843 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -58,7 +58,6 @@ def get_related_records_meta(self, origin_pk: Any) -> Generator[tuple, None, Non 'service': related_model.logic_module_endpoint_name, 'pk_name': related_model.lookup_field_name, } - yield relationship, params def extend_data(self, data: Union[dict, list], client_map: Dict[str, Any]) -> None: @@ -106,7 +105,6 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: """ Nest data retrieved from related services. """ - origin_pk = data_item.get(self._origin_lookup_field) if not origin_pk: raise DatameshConfigurationError( @@ -141,17 +139,26 @@ def _add_nested_data(self, data_item: dict, client_map: Dict[str, Any]) -> None: def fetch_datamesh_relationship(self): relationship_list = [] request_param = {} - for relationship, _ in self._relationships: + + for relationship, is_forward_lookup in self._relationships: + + if is_forward_lookup: + related_model = relationship.related_model + else: + related_model = relationship.origin_model + relationship_list.append(relationship.key) params = { 'pk': None, - 'model': relationship.origin_model.endpoint.strip('/'), + 'model': related_model.endpoint.strip('/'), 'service': relationship.origin_model.logic_module_endpoint_name, 'related_model_pk_name': relationship.related_model.lookup_field_name, 'origin_model_pk_name': relationship.origin_model.lookup_field_name, 'origin_lookup_field_name': relationship.origin_lookup_field_name, - 'related_lookup_field_name': relationship.related_lookup_field_name + 'origin_fk_name': relationship.origin_fk_field_name, + 'related_lookup_field_name': relationship.related_lookup_field_name, + 'related_fk_name': relationship.related_fk_field_name } request_param[relationship.key] = params diff --git a/gateway/request.py b/gateway/request.py index be3a52a1..ee5d6689 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -102,10 +102,10 @@ def perform(self) -> GatewayResponse: content, status_code, headers = client.request(**self.url_kwargs) # calls to individual service as per relationship - # call to join record insertion method # aggregate/join with the JoinRecord-models if ("join" or "extend") in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: + try: self._join_response_data(resp_data=content, query_params=self.request.query_params) except exceptions.ServiceDoesNotExist as e: @@ -159,35 +159,37 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - datamesh = self.get_datamesh() client_map = {} - # print('self.request.data',self.request.data) # check the request method if self.request.method in ['POST', 'PUT', 'PATCH']: # fetch datamesh logic module info for current request from datamesh self.datamesh_relationship, self.request_param = datamesh.fetch_datamesh_relationship() + self.request_method = self.request.method self.retrieve_relationship_data(datamesh_relationship=self.datamesh_relationship, query_params=query_params, request_param=self.request_param, resp_data=resp_data) for service in datamesh.related_logic_modules: spec = self._get_swagger_spec(service) client_map[service] = SwaggerClient(spec, self.request) - # self.request.method = 'GET' datamesh.extend_data(resp_data, client_map) def retrieve_relationship_data(self, datamesh_relationship: any, query_params: str, request_param: any, resp_data: Union[dict, list]): # iterate over the datamesh relationships - # print('datamesh_relationship', datamesh_relationship) + relationship_data = {} for relationship in datamesh_relationship: # retrieve relationship data from request.data relationship_data[relationship] = self.request.data.get(relationship) for relationship, data in relationship_data.items(): # iterate over the relationship and data - print('relationship--->', relationship) + if not data: self.validate_relationship_data(relationship=relationship, resp_data=resp_data) continue # iterate over the relationship data as the data always in list for instance in data: + # print('relationship-->', relationship, self.request.method, self.request_method) + self.request.method = self.request_method + # print('relationship-->', relationship, self.request.method, self.request_method) # clearing all the form current request and updating it with related data the going to POST/PUT request_relationship_data = self.request # copy the request data to another variable request_relationship_data.data.clear() # clear request.data.data @@ -201,9 +203,10 @@ def retrieve_relationship_data(self, datamesh_relationship: any, query_params: s def validate_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, relationship_data: any): # get organization organization = self.request.session.get('jwt_organization_uuid', None) - origin_model_pk_name = request_param[relationship]['origin_model_pk_name'] - related_model_pk_name = request_param[relationship]['related_model_pk_name'] - request_method = self.request.method + origin_model_pk_name = request_param[relationship]['origin_lookup_field_name'] + related_model_pk_name = request_param[relationship]['related_lookup_field_name'] + origin_fk_name = request_param[relationship]['origin_fk_name'] + related_fk_name = request_param[relationship]['related_fk_name'] # post the origin_model model data and create join with related_model if self.request.method in ['POST'] and 'extend' in query_params: @@ -213,24 +216,40 @@ def validate_request(self, resp_data: any, request_param: any, relationship: any # update the created object reference to request_relationship_data if self.request.method in ['POST'] and 'join' in query_params: - relationship_data.data[related_model_pk_name] = resp_data.get(related_model_pk_name, None) + pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) + key_name = origin_fk_name if origin_fk_name in relationship_data.data.keys() else related_fk_name + if pk and key_name: + relationship_data.data[key_name] = pk + else: + return # for the PUT/PATCH request update PK in request param if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: + # print('relationship-->', relationship, self.request.method, self.request_method) # assuming if request doesn't have pk then data needed to be created - pk = relationship_data.data.get(origin_model_pk_name, None) + pk_name = list(relationship_data.data.keys())[0] + + if str(pk_name) == str(origin_model_pk_name): + pk = relationship_data.data.get(origin_model_pk_name) + elif str(pk_name) == str(related_model_pk_name): + pk = relationship_data.data.get(related_model_pk_name) + else: + pk = None + if not pk: # validation for to save reference of related model - reference_field_name = related_model_pk_name if relationship_data.data.get(related_model_pk_name) else re.split("_", related_model_pk_name)[0] + # pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) + # Note : Not updating fk reference considering when we're updating we have it already on request relation data + reference_field_name = origin_fk_name if origin_fk_name in relationship_data.data.keys() else related_fk_name - if relationship_data.data[reference_field_name]: + if reference_field_name in relationship_data.data.keys(): # update the method as we are creating relation object and save pk to none as we are performing post request request_param[relationship]['pk'], self.request.method = None, 'POST' - relationship_data.data[reference_field_name] = resp_data[related_model_pk_name] + relationship_data.data[reference_field_name] = pk else: # update the request and param method here we are keeping original request in - # request_method considering request might update for above condition - self.request.method, request_param[relationship]['method'] = request_method, request_method + # request_method considering for above condition request method might be updated + self.request.method, request_param[relationship]['method'] = self.request_method, self.request_method request_param[relationship]['pk'] = pk if 'join' in relationship_data.data: @@ -241,6 +260,7 @@ def validate_request(self, resp_data: any, request_param: any, relationship: any query_params=query_params, request_relationship_data=relationship_data, organization=organization) def perform_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any, organization: any): + # allow only if origin model needs to update or create if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in query_params: # create a client for performing data requests @@ -258,10 +278,11 @@ def perform_request(self, resp_data: any, request_param: any, relationship: any, def validate_relationship_data(self, resp_data: any, relationship: any): """This function will validate the type of field and the relationship data""" - origin_lookup_field_uuid = resp_data[self.request_param[relationship]['origin_lookup_field_name']] - related_lookup_field_uuid = resp_data[self.request_param[relationship]['related_lookup_field_name']] + origin_lookup_field_uuid = resp_data.get(self.request_param[relationship]['origin_lookup_field_name'], None) + related_lookup_field_uuid = resp_data.get(self.request_param[relationship]['related_lookup_field_name'], None) + + if related_lookup_field_uuid and origin_lookup_field_uuid: - if related_lookup_field_uuid: if type(related_lookup_field_uuid) == type([]): # check for array type for uuid in related_lookup_field_uuid: # for each item in array/list related_lookup_field_uuid = uuid From 40d03c60a2b392b5af9ab8a4135c6d7a6e9ce0bc Mon Sep 17 00:00:00 2001 From: manish Date: Thu, 20 Jan 2022 09:44:05 +0530 Subject: [PATCH 038/160] model via forward lookup --- datamesh/services.py | 5 ++++- gateway/request.py | 15 ++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/datamesh/services.py b/datamesh/services.py index 2bf6e843..8b92c2f4 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -144,17 +144,20 @@ def fetch_datamesh_relationship(self): if is_forward_lookup: related_model = relationship.related_model + origin_model = relationship.origin_model else: related_model = relationship.origin_model + origin_model = relationship.related_model relationship_list.append(relationship.key) params = { 'pk': None, 'model': related_model.endpoint.strip('/'), - 'service': relationship.origin_model.logic_module_endpoint_name, + 'service': origin_model.logic_module_endpoint_name, 'related_model_pk_name': relationship.related_model.lookup_field_name, 'origin_model_pk_name': relationship.origin_model.lookup_field_name, + 'origin_lookup_field_name': relationship.origin_lookup_field_name, 'origin_fk_name': relationship.origin_fk_field_name, 'related_lookup_field_name': relationship.related_lookup_field_name, diff --git a/gateway/request.py b/gateway/request.py index ee5d6689..6370a67e 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -187,9 +187,8 @@ def retrieve_relationship_data(self, datamesh_relationship: any, query_params: s # iterate over the relationship data as the data always in list for instance in data: - # print('relationship-->', relationship, self.request.method, self.request_method) self.request.method = self.request_method - # print('relationship-->', relationship, self.request.method, self.request_method) + # clearing all the form current request and updating it with related data the going to POST/PUT request_relationship_data = self.request # copy the request data to another variable request_relationship_data.data.clear() # clear request.data.data @@ -212,14 +211,16 @@ def validate_request(self, resp_data: any, request_param: any, relationship: any if self.request.method in ['POST'] and 'extend' in query_params: origin_model_pk = resp_data[origin_model_pk_name] related_model_pk = self.request.data[related_model_pk_name] - self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + return self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) # update the created object reference to request_relationship_data if self.request.method in ['POST'] and 'join' in query_params: pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) key_name = origin_fk_name if origin_fk_name in relationship_data.data.keys() else related_fk_name + if pk and key_name: relationship_data.data[key_name] = pk + request_param[relationship]['method'] = self.request_method else: return @@ -278,8 +279,12 @@ def perform_request(self, resp_data: any, request_param: any, relationship: any, def validate_relationship_data(self, resp_data: any, relationship: any): """This function will validate the type of field and the relationship data""" - origin_lookup_field_uuid = resp_data.get(self.request_param[relationship]['origin_lookup_field_name'], None) - related_lookup_field_uuid = resp_data.get(self.request_param[relationship]['related_lookup_field_name'], None) + + origin_field_name = self.request_param[relationship]['origin_lookup_field_name'] + related_field_name = self.request_param[relationship]['origin_fk_name'] + + origin_lookup_field_uuid = resp_data.get(origin_field_name, None) + related_lookup_field_uuid = resp_data.get(related_field_name, None) if related_lookup_field_uuid and origin_lookup_field_uuid: From 5907771dae01bde9afe2b1909318388515f60a13 Mon Sep 17 00:00:00 2001 From: manish Date: Thu, 20 Jan 2022 10:47:32 +0530 Subject: [PATCH 039/160] param service name via forward_lookup --- datamesh/services.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datamesh/services.py b/datamesh/services.py index 8b92c2f4..42b74f27 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -154,7 +154,7 @@ def fetch_datamesh_relationship(self): params = { 'pk': None, 'model': related_model.endpoint.strip('/'), - 'service': origin_model.logic_module_endpoint_name, + 'service': related_model.logic_module_endpoint_name, 'related_model_pk_name': relationship.related_model.lookup_field_name, 'origin_model_pk_name': relationship.origin_model.lookup_field_name, From 770bb8912c6fc6e74646fb21d623ff2f1f9a13a1 Mon Sep 17 00:00:00 2001 From: manish Date: Thu, 20 Jan 2022 19:02:39 +0530 Subject: [PATCH 040/160] written function for the case - Handles The relation that only needs to update ID or UUID --- gateway/request.py | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/gateway/request.py b/gateway/request.py index 6370a67e..f7343a3b 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -180,11 +180,9 @@ def retrieve_relationship_data(self, datamesh_relationship: any, query_params: s relationship_data[relationship] = self.request.data.get(relationship) for relationship, data in relationship_data.items(): # iterate over the relationship and data - if not data: self.validate_relationship_data(relationship=relationship, resp_data=resp_data) continue - # iterate over the relationship data as the data always in list for instance in data: self.request.method = self.request_method @@ -226,16 +224,18 @@ def validate_request(self, resp_data: any, request_param: any, relationship: any # for the PUT/PATCH request update PK in request param if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: - # print('relationship-->', relationship, self.request.method, self.request_method) + # assuming if request doesn't have pk then data needed to be created pk_name = list(relationship_data.data.keys())[0] if str(pk_name) == str(origin_model_pk_name): pk = relationship_data.data.get(origin_model_pk_name) + res_pk = resp_data.get(related_model_pk_name) elif str(pk_name) == str(related_model_pk_name): pk = relationship_data.data.get(related_model_pk_name) + res_pk = resp_data.get(origin_model_pk_name) else: - pk = None + pk, res_pk = None, None if not pk: # validation for to save reference of related model @@ -253,15 +253,19 @@ def validate_request(self, resp_data: any, request_param: any, relationship: any self.request.method, request_param[relationship]['method'] = self.request_method, self.request_method request_param[relationship]['pk'] = pk - if 'join' in relationship_data.data: - pass + if ("join" and "previous_pk") in relationship_data.data: + if self.delete_join_record(pk=res_pk, previous_pk=relationship_data.data['previous_pk'])[0]: + origin_model_pk = resp_data[request_param[relationship]['origin_model_pk_name']] + related_model_pk = relationship_data.data[request_param[relationship]['related_model_pk_name']] + + self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + organization=organization) # perform request self.perform_request(resp_data=resp_data, request_param=request_param, relationship=relationship, query_params=query_params, request_relationship_data=relationship_data, organization=organization) def perform_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any, organization: any): - # allow only if origin model needs to update or create if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in query_params: # create a client for performing data requests @@ -277,6 +281,9 @@ def perform_request(self, resp_data: any, request_param: any, relationship: any, self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) + if self.request_method in ['PUT', 'PATCH'] and self.request.method in ['POST']: + self.request.method = self.request_method + def validate_relationship_data(self, resp_data: any, relationship: any): """This function will validate the type of field and the relationship data""" @@ -311,11 +318,16 @@ def join_record(self, relationship: str, origin_model_pk: str, related_model_pk: organization_id=organization ) - def delete_join_record(self, pk: [str, int]) -> None: + def delete_join_record(self, pk: [str, int], previous_pk: [str, int]) -> None: + + if previous_pk and pk: + return JoinRecord.objects.filter(Q(record_uuid__icontains=pk, related_record_uuid__icontains=previous_pk) | + Q(record_uuid__icontains=previous_pk, related_record_uuid__icontains=pk)).delete() - JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) - | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) - ).delete() + if pk and not previous_pk: + return JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) + | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) + ).delete() class AsyncGatewayRequest(BaseGatewayRequest): From 8c3ef0158c655f885e8ba069c69dc3bfb004a2e7 Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 24 Jan 2022 11:07:46 +0530 Subject: [PATCH 041/160] Get response after a POST and PUT request --- gateway/request.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/gateway/request.py b/gateway/request.py index f7343a3b..7b316736 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -6,6 +6,7 @@ import re import aiohttp +import requests from bravado_core.spec import Spec from django.db.models import Q from django.http.request import QueryDict @@ -105,14 +106,13 @@ def perform(self) -> GatewayResponse: # call to join record insertion method # aggregate/join with the JoinRecord-models if ("join" or "extend") in self.request.query_params and status_code in [200, 201] and type(content) in [dict, list]: - try: self._join_response_data(resp_data=content, query_params=self.request.query_params) except exceptions.ServiceDoesNotExist as e: logger.error(e.content) if 'join' in self.request.query_params and self.request.method == 'DELETE' and status_code == 204: - self.delete_join_record(pk=self.url_kwargs['pk']) # delete join record + self.delete_join_record(pk=self.url_kwargs['pk'], previous_pk=None) # delete join record if type(content) in [dict, list]: content = json.dumps(content, cls=utils.GatewayJSONEncoder) @@ -164,13 +164,28 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - # fetch datamesh logic module info for current request from datamesh self.datamesh_relationship, self.request_param = datamesh.fetch_datamesh_relationship() self.request_method = self.request.method + self.retrieve_relationship_data(datamesh_relationship=self.datamesh_relationship, query_params=query_params, request_param=self.request_param, resp_data=resp_data) - for service in datamesh.related_logic_modules: - spec = self._get_swagger_spec(service) - client_map[service] = SwaggerClient(spec, self.request) + meta_data, service_url = self.request.META, None + request_host = f'{meta_data["wsgi.url_scheme"]}://{meta_data["HTTP_HOST"]}' + + if self.request.method in ['PUT', 'PATCH']: + service_url = f'{request_host}{meta_data.get("PATH_INFO", None)}?{meta_data.get("QUERY_STRING", None)}' + elif self.request.method in ['POST']: + service_url = f'{request_host}{meta_data.get("PATH_INFO", None)}{list(resp_data.values())[0]}/?{meta_data.get("QUERY_STRING", None)}' + + header = {'Authorization': meta_data["HTTP_AUTHORIZATION"]} + result = requests.get(url=service_url, headers=header) + resp_data.clear() + resp_data.update(result.json()) + else: + + for service in datamesh.related_logic_modules: + spec = self._get_swagger_spec(service) + client_map[service] = SwaggerClient(spec, self.request) - datamesh.extend_data(resp_data, client_map) + datamesh.extend_data(resp_data, client_map) def retrieve_relationship_data(self, datamesh_relationship: any, query_params: str, request_param: any, resp_data: Union[dict, list]): # iterate over the datamesh relationships From 14a40e664a84ebf9d9a9dd531d23caa47f95bbfa Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 24 Jan 2022 19:04:33 +0530 Subject: [PATCH 042/160] refactor the functions --- datamesh/handle_request.py | 164 ++++++++++++++++++++++++++++++++ datamesh/utils.py | 34 ++++++- gateway/request.py | 190 ++++--------------------------------- gateway/utils.py | 20 +++- 4 files changed, 236 insertions(+), 172 deletions(-) create mode 100644 datamesh/handle_request.py diff --git a/datamesh/handle_request.py b/datamesh/handle_request.py new file mode 100644 index 00000000..7f0ccc26 --- /dev/null +++ b/datamesh/handle_request.py @@ -0,0 +1,164 @@ +from typing import Any, Dict, Union +import re +from django.db.models import Q +from gateway import utils +from urllib.error import URLError +from bravado_core.spec import Spec +from datamesh.utils import validate_join, delete_join_record, join_record +from gateway.clients import SwaggerClient + +import gateway.request as gateway_request + + +class RequestHandler: + + def __init__(self): + self.relationship_data, self.request_kwargs = None, None + self.query_params, self.request_param = None, None + self.resp_data, self.request_method = None, None + self.related_fk_name, self.origin_fk_name = None, None + self.related_model_pk_name, self.origin_model_pk_name = None, None + self.organization, self.request, self.relation_data = None, None, None + + def validate_request(self, relationship: any, relationship_data: any, request_kwargs: any): + + # update the variable + self.organization = self.request.session.get('jwt_organization_uuid', None) + self.origin_model_pk_name = request_kwargs['request_param'][relationship]['origin_lookup_field_name'] + self.related_model_pk_name = request_kwargs['request_param'][relationship]['related_lookup_field_name'] + self.origin_fk_name = request_kwargs['request_param'][relationship]['origin_fk_name'] + self.related_fk_name = request_kwargs['request_param'][relationship]['related_fk_name'] + self.relation_data = relationship_data + + # post the origin_model model data and create join with related_model + if self.request.method in ['POST'] and 'extend' in self.query_params: + origin_model_pk = self.resp_data[self.origin_model_pk_name] + related_model_pk = self.request.data[self.related_model_pk_name] + return join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=self.organization) + + # update the created object reference to request_relationship_data + if self.request.method in ['POST'] and 'join' in self.query_params: + pk = self.resp_data.get(self.origin_model_pk_name) if self.resp_data.get(self.origin_model_pk_name, None) else self.resp_data.get(self.related_model_pk_name, None) + key_name = self.origin_fk_name if self.origin_fk_name in self.relation_data.data.keys() else self.related_fk_name + + if pk and key_name: + self.relation_data.data[key_name] = pk + self.request_param[relationship]['method'] = self.request_method + else: + return + + # for the PUT/PATCH request update PK in request param + if self.request.method in ['PUT', 'PATCH'] and 'join' in self.query_params: + self.relation_data = self.prepare_update_request(relationship=relationship) + + # perform request + self.perform_request(relationship=relationship, relation_data=self.relation_data) + + def prepare_update_request(self, relationship): + # assuming if request doesn't have pk then data needed to be created + pk_name = list(self.relationship_data.data.keys())[0] + + if pk_name == self.origin_model_pk_name: + pk = self.relationship_data.data.get(self.origin_model_pk_name) + res_pk = self.resp_data.get(self.related_model_pk_name) + elif pk_name == self.related_model_pk_name: + pk = self.relationship_data.data.get(self.related_model_pk_name) + res_pk = self.resp_data.get(self.origin_model_pk_name) + else: + pk, res_pk = None, None + + if not pk: + # validation for to save reference of related model + # pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) + # Note : Not updating fk reference considering when we're updating we have it already on request relation data + reference_field_name = self.origin_fk_name if self.origin_fk_name in self.relationship_data.data.keys() else self.related_fk_name + if reference_field_name in self.relationship_data.data.keys(): + # update the method as we are creating relation object and save pk to none as we are performing post request + self.request_param[relationship]['pk'], self.request.method = None, 'POST' + self.relationship_data.data[reference_field_name] = pk + else: + # update the request and param method here we are keeping original request in + # request_method considering for above condition request method might be updated + self.request.method, self.request_param[relationship]['method'] = self.request_method, self.request_method + self.request_param[relationship]['pk'] = pk + + if ("join" and "previous_pk") in self.relationship_data.data: + if delete_join_record(pk=res_pk, previous_pk=self.relationship_data.data['previous_pk'])[0]: + origin_model_pk = self.resp_data[self.request_param[relationship]['origin_model_pk_name']] + related_model_pk = self.relationship_data.data[self.request_param[relationship]['related_model_pk_name']] + + join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + organization=self.organization) + return self.relationship_data + + def retrieve_relationship_data(self, request_kwargs: any): + + self.resp_data = request_kwargs.get('resp_data', None) + self.request = request_kwargs['request'] + self.request_kwargs = request_kwargs + self.request_method = request_kwargs['request_method'] + self.request_param = request_kwargs['request_param'] + self.query_params = request_kwargs['query_params'] + + # iterate over the datamesh relationships + self.relationship_data = {} + for relationship in request_kwargs['datamesh_relationship']: # retrieve relationship data from request.data + self.relationship_data[relationship] = self.request.data.get(relationship) + + for relationship, data in self.relationship_data.items(): # iterate over the relationship and data + if not data: + self.validate_relationship_data(relationship=relationship, resp_data=self.resp_data) + continue + + # iterate over the relationship data as the data always in list + for instance in data: + self.request.method = self.request_method + + # clearing all the form current request and updating it with related data the going to POST/PUT + self.relationship_data = self.request # copy the request data to another variable + self.relationship_data.data.clear() # clear request.data.data + self.relationship_data.data.update(instance) # update the relationship_data to request.data to perform request + + # validate request + self.validate_request(relationship=relationship, relationship_data=self.relationship_data, request_kwargs=request_kwargs) + + def perform_request(self, relationship: any, relation_data: any): + # allow only if origin model needs to update or create + if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in self.query_params: + + # create a client for performing data requests + g_request = gateway_request.GatewayRequest(self.request_kwargs['request']) + spec = g_request._get_swagger_spec(self.request_param[relationship]['service']) + + client = SwaggerClient(spec, relation_data) + + # perform a service data request + content, status_code, headers = client.request(**self.request_param[relationship]) + + if self.request.method in ['POST'] and 'join' in self.query_params: # create join record + origin_model_pk = content[self.request_param[relationship]['origin_model_pk_name']] + related_model_pk = self.resp_data[self.request_param[relationship]['related_model_pk_name']] + join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + organization=self.organization) + + if self.request_method in ['PUT', 'PATCH'] and self.request.method in ['POST']: + self.request.method = self.request_method + + def validate_relationship_data(self, resp_data: any, relationship: any): + """This function will validate the type of field and the relationship data""" + + origin_field_name = self.request_param[relationship]['origin_lookup_field_name'] + related_field_name = self.request_param[relationship]['origin_fk_name'] + + origin_lookup_field_uuid = resp_data.get(origin_field_name, None) + related_lookup_field_uuid = resp_data.get(related_field_name, None) + + if related_lookup_field_uuid and origin_lookup_field_uuid: + + if type(related_lookup_field_uuid) == type([]): # check for array type + for uuid in related_lookup_field_uuid: # for each item in array/list + related_lookup_field_uuid = uuid + # validate the join + validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + else: + validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) diff --git a/datamesh/utils.py b/datamesh/utils.py index 3ae80d51..0d64a200 100644 --- a/datamesh/utils.py +++ b/datamesh/utils.py @@ -1,5 +1,7 @@ from typing import Tuple +from django.db.models import Q + from datamesh.models import Relationship, JoinRecord, LogicModuleModel @@ -9,11 +11,39 @@ def prepare_lookup_kwargs(is_forward_lookup: bool, """Find out if pk is id or uuid and prepare lookup according to direction.""" if is_forward_lookup: related_model = relationship.related_model - related_record_field = 'related_record_id' if join_record.related_record_id is not None\ + related_record_field = 'related_record_id' if join_record.related_record_id is not None \ else 'related_record_uuid' else: related_model = relationship.origin_model - related_record_field = 'record_id' if join_record.record_id is not None\ + related_record_field = 'record_id' if join_record.record_id is not None \ else 'record_uuid' return related_model, related_record_field + + +def validate_join(record_uuid: any, related_record_uuid: any, relationship: any): + """This function is validating the join if the join not created, yet then it will create the join """ + join_record_instance = JoinRecord.objects.filter(relationship__key=relationship, record_uuid=record_uuid, related_record_uuid=related_record_uuid) + if not join_record_instance: + join_record(relationship=relationship, origin_model_pk=record_uuid, related_model_pk=related_record_uuid, organization=None) + + +def join_record(relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: + """This function will create datamesh join""" + JoinRecord.objects.create( + relationship=Relationship.objects.filter(key=relationship).first(), + record_uuid=origin_model_pk, + related_record_uuid=related_model_pk, + organization_id=organization + ) + + +def delete_join_record(pk: [str, int], previous_pk: [str, int]) -> None: + if previous_pk and pk: + return JoinRecord.objects.filter(Q(record_uuid__icontains=pk, related_record_uuid__icontains=previous_pk) | + Q(record_uuid__icontains=previous_pk, related_record_uuid__icontains=pk)).delete() + + if pk and not previous_pk: + return JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) + | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) + ).delete() diff --git a/gateway/request.py b/gateway/request.py index 7b316736..5658addf 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -13,12 +13,15 @@ from rest_framework.request import Request from datamesh.exceptions import DatameshConfigurationError +from datamesh.handle_request import RequestHandler +from datamesh.utils import delete_join_record from gateway import exceptions from gateway import utils from core.models import LogicModule from gateway.clients import SwaggerClient, AsyncSwaggerClient from datamesh.services import DataMesh from datamesh.models import JoinRecord, Relationship +from gateway.utils import prepare_get_request logger = logging.getLogger(__name__) @@ -112,7 +115,7 @@ def perform(self) -> GatewayResponse: logger.error(e.content) if 'join' in self.request.query_params and self.request.method == 'DELETE' and status_code == 204: - self.delete_join_record(pk=self.url_kwargs['pk'], previous_pk=None) # delete join record + delete_join_record(pk=self.url_kwargs['pk'], previous_pk=None) # delete join record if type(content) in [dict, list]: content = json.dumps(content, cls=utils.GatewayJSONEncoder) @@ -165,18 +168,24 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - self.datamesh_relationship, self.request_param = datamesh.fetch_datamesh_relationship() self.request_method = self.request.method - self.retrieve_relationship_data(datamesh_relationship=self.datamesh_relationship, query_params=query_params, request_param=self.request_param, resp_data=resp_data) - - meta_data, service_url = self.request.META, None - request_host = f'{meta_data["wsgi.url_scheme"]}://{meta_data["HTTP_HOST"]}' - - if self.request.method in ['PUT', 'PATCH']: - service_url = f'{request_host}{meta_data.get("PATH_INFO", None)}?{meta_data.get("QUERY_STRING", None)}' - elif self.request.method in ['POST']: - service_url = f'{request_host}{meta_data.get("PATH_INFO", None)}{list(resp_data.values())[0]}/?{meta_data.get("QUERY_STRING", None)}' - - header = {'Authorization': meta_data["HTTP_AUTHORIZATION"]} + request_kwargs = { + 'query_params': query_params, + 'request_param': self.request_param, + 'datamesh_relationship': self.datamesh_relationship, + 'resp_data': resp_data, + 'request_method': self.request.method, + 'request': self.request + } + + # handle datamesh requests + request_handler = RequestHandler() + request_handler.retrieve_relationship_data(request_kwargs=request_kwargs) + + # perform get + service_url, header = prepare_get_request(request=self.request, resp_data=resp_data) result = requests.get(url=service_url, headers=header) + + # clear and update datamesh get response resp_data.clear() resp_data.update(result.json()) else: @@ -187,163 +196,6 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - datamesh.extend_data(resp_data, client_map) - def retrieve_relationship_data(self, datamesh_relationship: any, query_params: str, request_param: any, resp_data: Union[dict, list]): - # iterate over the datamesh relationships - - relationship_data = {} - for relationship in datamesh_relationship: # retrieve relationship data from request.data - relationship_data[relationship] = self.request.data.get(relationship) - - for relationship, data in relationship_data.items(): # iterate over the relationship and data - if not data: - self.validate_relationship_data(relationship=relationship, resp_data=resp_data) - continue - # iterate over the relationship data as the data always in list - for instance in data: - self.request.method = self.request_method - - # clearing all the form current request and updating it with related data the going to POST/PUT - request_relationship_data = self.request # copy the request data to another variable - request_relationship_data.data.clear() # clear request.data.data - request_relationship_data.data.update(instance) # update the relationship_data to request.data to perform request - - # validate request - self.validate_request(resp_data=resp_data, request_param=request_param, relationship=relationship, - query_params=query_params, relationship_data=request_relationship_data - ) - - def validate_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, relationship_data: any): - # get organization - organization = self.request.session.get('jwt_organization_uuid', None) - origin_model_pk_name = request_param[relationship]['origin_lookup_field_name'] - related_model_pk_name = request_param[relationship]['related_lookup_field_name'] - origin_fk_name = request_param[relationship]['origin_fk_name'] - related_fk_name = request_param[relationship]['related_fk_name'] - - # post the origin_model model data and create join with related_model - if self.request.method in ['POST'] and 'extend' in query_params: - origin_model_pk = resp_data[origin_model_pk_name] - related_model_pk = self.request.data[related_model_pk_name] - return self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=organization) - - # update the created object reference to request_relationship_data - if self.request.method in ['POST'] and 'join' in query_params: - pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) - key_name = origin_fk_name if origin_fk_name in relationship_data.data.keys() else related_fk_name - - if pk and key_name: - relationship_data.data[key_name] = pk - request_param[relationship]['method'] = self.request_method - else: - return - - # for the PUT/PATCH request update PK in request param - if self.request.method in ['PUT', 'PATCH'] and 'join' in query_params: - - # assuming if request doesn't have pk then data needed to be created - pk_name = list(relationship_data.data.keys())[0] - - if str(pk_name) == str(origin_model_pk_name): - pk = relationship_data.data.get(origin_model_pk_name) - res_pk = resp_data.get(related_model_pk_name) - elif str(pk_name) == str(related_model_pk_name): - pk = relationship_data.data.get(related_model_pk_name) - res_pk = resp_data.get(origin_model_pk_name) - else: - pk, res_pk = None, None - - if not pk: - # validation for to save reference of related model - # pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) - # Note : Not updating fk reference considering when we're updating we have it already on request relation data - reference_field_name = origin_fk_name if origin_fk_name in relationship_data.data.keys() else related_fk_name - - if reference_field_name in relationship_data.data.keys(): - # update the method as we are creating relation object and save pk to none as we are performing post request - request_param[relationship]['pk'], self.request.method = None, 'POST' - relationship_data.data[reference_field_name] = pk - else: - # update the request and param method here we are keeping original request in - # request_method considering for above condition request method might be updated - self.request.method, request_param[relationship]['method'] = self.request_method, self.request_method - request_param[relationship]['pk'] = pk - - if ("join" and "previous_pk") in relationship_data.data: - if self.delete_join_record(pk=res_pk, previous_pk=relationship_data.data['previous_pk'])[0]: - origin_model_pk = resp_data[request_param[relationship]['origin_model_pk_name']] - related_model_pk = relationship_data.data[request_param[relationship]['related_model_pk_name']] - - self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, - organization=organization) - - # perform request - self.perform_request(resp_data=resp_data, request_param=request_param, relationship=relationship, - query_params=query_params, request_relationship_data=relationship_data, organization=organization) - - def perform_request(self, resp_data: any, request_param: any, relationship: any, query_params: any, request_relationship_data: any, organization: any): - # allow only if origin model needs to update or create - if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in query_params: - # create a client for performing data requests - spec = self._get_swagger_spec(request_param[relationship]['service']) - client = SwaggerClient(spec, request_relationship_data) - - # perform a service data request - content, status_code, headers = client.request(**request_param[relationship]) - - if self.request.method in ['POST'] and 'join' in query_params: # create join record - origin_model_pk = content[request_param[relationship]['origin_model_pk_name']] - related_model_pk = resp_data[request_param[relationship]['related_model_pk_name']] - self.join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, - organization=organization) - - if self.request_method in ['PUT', 'PATCH'] and self.request.method in ['POST']: - self.request.method = self.request_method - - def validate_relationship_data(self, resp_data: any, relationship: any): - """This function will validate the type of field and the relationship data""" - - origin_field_name = self.request_param[relationship]['origin_lookup_field_name'] - related_field_name = self.request_param[relationship]['origin_fk_name'] - - origin_lookup_field_uuid = resp_data.get(origin_field_name, None) - related_lookup_field_uuid = resp_data.get(related_field_name, None) - - if related_lookup_field_uuid and origin_lookup_field_uuid: - - if type(related_lookup_field_uuid) == type([]): # check for array type - for uuid in related_lookup_field_uuid: # for each item in array/list - related_lookup_field_uuid = uuid - # validate the join - self.validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) - else: - self.validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) - - def validate_join(self, record_uuid: any, related_record_uuid: any, relationship: any): - """This function is validating the join if the join not created, yet then it will create the join """ - join_record_instance = JoinRecord.objects.filter(relationship__key=relationship, record_uuid=record_uuid, related_record_uuid=related_record_uuid) - if not join_record_instance: - self.join_record(relationship=relationship, origin_model_pk=record_uuid, related_model_pk=related_record_uuid, organization=None) - - def join_record(self, relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: - """This function will create datamesh join""" - JoinRecord.objects.create( - relationship=Relationship.objects.filter(key=relationship).first(), - record_uuid=origin_model_pk, - related_record_uuid=related_model_pk, - organization_id=organization - ) - - def delete_join_record(self, pk: [str, int], previous_pk: [str, int]) -> None: - - if previous_pk and pk: - return JoinRecord.objects.filter(Q(record_uuid__icontains=pk, related_record_uuid__icontains=previous_pk) | - Q(record_uuid__icontains=previous_pk, related_record_uuid__icontains=pk)).delete() - - if pk and not previous_pk: - return JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) - | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) - ).delete() - class AsyncGatewayRequest(BaseGatewayRequest): """ diff --git a/gateway/utils.py b/gateway/utils.py index 8a78bf9a..4cf08320 100644 --- a/gateway/utils.py +++ b/gateway/utils.py @@ -17,7 +17,6 @@ from core.models import CoreUser, LogicModule, Organization from core.views import CoreUserViewSet, OrganizationViewSet - SWAGGER_LOOKUP_FIELD = 'swagger' SWAGGER_LOOKUP_FORMAT = 'json' SWAGGER_LOOKUP_PATH = 'docs' @@ -101,6 +100,7 @@ class ObjectAccessValidator: """ Create an instance of this class to validate access to an object """ + def __init__(self, request: Request): self._request = request @@ -112,6 +112,7 @@ class GatewayJSONEncoder(json.JSONEncoder): """ JSON encoder for API Gateway """ + def default(self, obj): """ JSON doesn't have a default datetime and UUID type, so this is why @@ -135,3 +136,20 @@ def valid_uuid4(uuid_string): re.I) match = uuid4hex.match(uuid_string) return bool(match) + + +def prepare_get_request(request: any, resp_data: any): + meta_data, service_url = request.META, None + request_host = f'{meta_data["wsgi.url_scheme"]}://{meta_data["HTTP_HOST"]}' + query_string = meta_data.get("QUERY_STRING", None) + path = meta_data.get("PATH_INFO", None) + + if request.method in ['PUT', 'PATCH']: + service_url = f'{request_host}{path}?{query_string}' + elif request.method in ['POST']: + pk = list(resp_data.values())[0] + service_url = f'{request_host}{path}{pk}/?{query_string}' + + header = {'Authorization': meta_data["HTTP_AUTHORIZATION"]} + + return service_url, header From 4f8bb1b02dac2e059fd678f613d24e46880f8e4f Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 24 Jan 2022 19:56:55 +0530 Subject: [PATCH 043/160] updated func parameter --- datamesh/handle_request.py | 35 ++++++++++++++++++++--------------- datamesh/services.py | 2 ++ datamesh/utils.py | 4 ++-- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/datamesh/handle_request.py b/datamesh/handle_request.py index 7f0ccc26..80b68eb7 100644 --- a/datamesh/handle_request.py +++ b/datamesh/handle_request.py @@ -20,7 +20,7 @@ def __init__(self): self.related_model_pk_name, self.origin_model_pk_name = None, None self.organization, self.request, self.relation_data = None, None, None - def validate_request(self, relationship: any, relationship_data: any, request_kwargs: any): + def validate_request(self, relationship: str, relationship_data: Union[dict, list], request_kwargs: dict): # update the variable self.organization = self.request.session.get('jwt_organization_uuid', None) @@ -54,7 +54,7 @@ def validate_request(self, relationship: any, relationship_data: any, request_kw # perform request self.perform_request(relationship=relationship, relation_data=self.relation_data) - def prepare_update_request(self, relationship): + def prepare_update_request(self, relationship: str): # assuming if request doesn't have pk then data needed to be created pk_name = list(self.relationship_data.data.keys())[0] @@ -68,8 +68,6 @@ def prepare_update_request(self, relationship): pk, res_pk = None, None if not pk: - # validation for to save reference of related model - # pk = resp_data.get(origin_model_pk_name) if resp_data.get(origin_model_pk_name, None) else resp_data.get(related_model_pk_name, None) # Note : Not updating fk reference considering when we're updating we have it already on request relation data reference_field_name = self.origin_fk_name if self.origin_fk_name in self.relationship_data.data.keys() else self.related_fk_name if reference_field_name in self.relationship_data.data.keys(): @@ -87,12 +85,14 @@ def prepare_update_request(self, relationship): origin_model_pk = self.resp_data[self.request_param[relationship]['origin_model_pk_name']] related_model_pk = self.relationship_data.data[self.request_param[relationship]['related_model_pk_name']] - join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, - organization=self.organization) + return join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + organization=self.organization) return self.relationship_data - def retrieve_relationship_data(self, request_kwargs: any): + def retrieve_relationship_data(self, request_kwargs: dict): + """ This function will retrieve relation data from request relationship list data """ + # update the variable self.resp_data = request_kwargs.get('resp_data', None) self.request = request_kwargs['request'] self.request_kwargs = request_kwargs @@ -107,6 +107,8 @@ def retrieve_relationship_data(self, request_kwargs: any): for relationship, data in self.relationship_data.items(): # iterate over the relationship and data if not data: + # if data is empty then check the related relation pk is preset on origin request response + # or not else continue self.validate_relationship_data(relationship=relationship, resp_data=self.resp_data) continue @@ -122,14 +124,13 @@ def retrieve_relationship_data(self, request_kwargs: any): # validate request self.validate_request(relationship=relationship, relationship_data=self.relationship_data, request_kwargs=request_kwargs) - def perform_request(self, relationship: any, relation_data: any): + def perform_request(self, relationship: str, relation_data: any): # allow only if origin model needs to update or create if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in self.query_params: # create a client for performing data requests g_request = gateway_request.GatewayRequest(self.request_kwargs['request']) spec = g_request._get_swagger_spec(self.request_param[relationship]['service']) - client = SwaggerClient(spec, relation_data) # perform a service data request @@ -141,24 +142,28 @@ def perform_request(self, relationship: any, relation_data: any): join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=self.organization) - if self.request_method in ['PUT', 'PATCH'] and self.request.method in ['POST']: - self.request.method = self.request_method - - def validate_relationship_data(self, resp_data: any, relationship: any): + def validate_relationship_data(self, resp_data: Union[dict, list], relationship: str): """This function will validate the type of field and the relationship data""" + # get the pk name origin_field_name = self.request_param[relationship]['origin_lookup_field_name'] related_field_name = self.request_param[relationship]['origin_fk_name'] + # get pk from origin request response origin_lookup_field_uuid = resp_data.get(origin_field_name, None) related_lookup_field_uuid = resp_data.get(related_field_name, None) if related_lookup_field_uuid and origin_lookup_field_uuid: - if type(related_lookup_field_uuid) == type([]): # check for array type for uuid in related_lookup_field_uuid: # for each item in array/list related_lookup_field_uuid = uuid # validate the join validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + + elif type(origin_lookup_field_uuid) == type([]): # check for array type + for uuid in origin_lookup_field_uuid: # for each item in array/list + origin_lookup_field_uuid = uuid + # validate the join + validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) else: - validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + return validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) diff --git a/datamesh/services.py b/datamesh/services.py index 42b74f27..05495dd0 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -142,6 +142,8 @@ def fetch_datamesh_relationship(self): for relationship, is_forward_lookup in self._relationships: + print(relationship, is_forward_lookup) + if is_forward_lookup: related_model = relationship.related_model origin_model = relationship.origin_model diff --git a/datamesh/utils.py b/datamesh/utils.py index 0d64a200..22d6462a 100644 --- a/datamesh/utils.py +++ b/datamesh/utils.py @@ -21,14 +21,14 @@ def prepare_lookup_kwargs(is_forward_lookup: bool, return related_model, related_record_field -def validate_join(record_uuid: any, related_record_uuid: any, relationship: any): +def validate_join(record_uuid: [str, int], related_record_uuid: [str, int], relationship: str) -> None: """This function is validating the join if the join not created, yet then it will create the join """ join_record_instance = JoinRecord.objects.filter(relationship__key=relationship, record_uuid=record_uuid, related_record_uuid=related_record_uuid) if not join_record_instance: join_record(relationship=relationship, origin_model_pk=record_uuid, related_model_pk=related_record_uuid, organization=None) -def join_record(relationship: str, origin_model_pk: str, related_model_pk: str, organization: any) -> None: +def join_record(relationship: str, origin_model_pk: [str, int], related_model_pk: [str, int], organization: [str, any]) -> None: """This function will create datamesh join""" JoinRecord.objects.create( relationship=Relationship.objects.filter(key=relationship).first(), From 133162d35a3c2d1de4a1446fe9c8a77ff18054f2 Mon Sep 17 00:00:00 2001 From: manish Date: Tue, 25 Jan 2022 11:06:25 +0530 Subject: [PATCH 044/160] issue fix - delete join --- datamesh/handle_request.py | 36 ++++++++++++++++++------------------ datamesh/services.py | 4 ---- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/datamesh/handle_request.py b/datamesh/handle_request.py index 80b68eb7..4e48ee5c 100644 --- a/datamesh/handle_request.py +++ b/datamesh/handle_request.py @@ -1,9 +1,4 @@ -from typing import Any, Dict, Union -import re -from django.db.models import Q -from gateway import utils -from urllib.error import URLError -from bravado_core.spec import Spec +from typing import Union from datamesh.utils import validate_join, delete_join_record, join_record from gateway.clients import SwaggerClient @@ -38,22 +33,26 @@ def validate_request(self, relationship: str, relationship_data: Union[dict, lis # update the created object reference to request_relationship_data if self.request.method in ['POST'] and 'join' in self.query_params: - pk = self.resp_data.get(self.origin_model_pk_name) if self.resp_data.get(self.origin_model_pk_name, None) else self.resp_data.get(self.related_model_pk_name, None) - key_name = self.origin_fk_name if self.origin_fk_name in self.relation_data.data.keys() else self.related_fk_name - - if pk and key_name: - self.relation_data.data[key_name] = pk - self.request_param[relationship]['method'] = self.request_method - else: - return + return self.prepare_create_request(relationship=relationship) # for the PUT/PATCH request update PK in request param if self.request.method in ['PUT', 'PATCH'] and 'join' in self.query_params: self.relation_data = self.prepare_update_request(relationship=relationship) - + if not self.relation_data: + return # perform request self.perform_request(relationship=relationship, relation_data=self.relation_data) + def prepare_create_request(self, relationship: str): + pk = self.resp_data.get(self.origin_model_pk_name) if self.resp_data.get(self.origin_model_pk_name, None) else self.resp_data.get(self.related_model_pk_name, None) + key_name = self.origin_fk_name if self.origin_fk_name in self.relation_data.data.keys() else self.related_fk_name + + if pk and key_name: + self.relation_data.data[key_name] = pk + self.request_param[relationship]['method'] = self.request_method + else: + return + def prepare_update_request(self, relationship: str): # assuming if request doesn't have pk then data needed to be created pk_name = list(self.relationship_data.data.keys())[0] @@ -81,12 +80,13 @@ def prepare_update_request(self, relationship: str): self.request_param[relationship]['pk'] = pk if ("join" and "previous_pk") in self.relationship_data.data: - if delete_join_record(pk=res_pk, previous_pk=self.relationship_data.data['previous_pk'])[0]: + if delete_join_record(pk=res_pk, previous_pk=self.relationship_data.data['previous_pk']): origin_model_pk = self.resp_data[self.request_param[relationship]['origin_model_pk_name']] related_model_pk = self.relationship_data.data[self.request_param[relationship]['related_model_pk_name']] - - return join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=self.organization) + return False + return self.relationship_data def retrieve_relationship_data(self, request_kwargs: dict): diff --git a/datamesh/services.py b/datamesh/services.py index 05495dd0..c01a168e 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -142,14 +142,10 @@ def fetch_datamesh_relationship(self): for relationship, is_forward_lookup in self._relationships: - print(relationship, is_forward_lookup) - if is_forward_lookup: related_model = relationship.related_model - origin_model = relationship.origin_model else: related_model = relationship.origin_model - origin_model = relationship.related_model relationship_list.append(relationship.key) From 8928e7985a9f18055dbf866ede17396b9b7c9af6 Mon Sep 17 00:00:00 2001 From: manish Date: Tue, 25 Jan 2022 15:21:04 +0530 Subject: [PATCH 045/160] delete status join --- datamesh/handle_request.py | 17 +++++++++++------ datamesh/utils.py | 14 ++++++++------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/datamesh/handle_request.py b/datamesh/handle_request.py index 4e48ee5c..054b4859 100644 --- a/datamesh/handle_request.py +++ b/datamesh/handle_request.py @@ -80,12 +80,17 @@ def prepare_update_request(self, relationship: str): self.request_param[relationship]['pk'] = pk if ("join" and "previous_pk") in self.relationship_data.data: - if delete_join_record(pk=res_pk, previous_pk=self.relationship_data.data['previous_pk']): - origin_model_pk = self.resp_data[self.request_param[relationship]['origin_model_pk_name']] - related_model_pk = self.relationship_data.data[self.request_param[relationship]['related_model_pk_name']] - join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, - organization=self.organization) - return False + # delete join record + delete_join_record(pk=res_pk, previous_pk=self.relationship_data.data['previous_pk']) + + # update new values + origin_model_pk = self.resp_data[self.request_param[relationship]['origin_model_pk_name']] + related_model_pk = self.relationship_data.data[self.request_param[relationship]['related_model_pk_name']] + + # join record + join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, + organization=self.organization) + return False return self.relationship_data diff --git a/datamesh/utils.py b/datamesh/utils.py index 22d6462a..1ae13eb7 100644 --- a/datamesh/utils.py +++ b/datamesh/utils.py @@ -30,6 +30,7 @@ def validate_join(record_uuid: [str, int], related_record_uuid: [str, int], rela def join_record(relationship: str, origin_model_pk: [str, int], related_model_pk: [str, int], organization: [str, any]) -> None: """This function will create datamesh join""" + JoinRecord.objects.create( relationship=Relationship.objects.filter(key=relationship).first(), record_uuid=origin_model_pk, @@ -38,12 +39,13 @@ def join_record(relationship: str, origin_model_pk: [str, int], related_model_pk ) -def delete_join_record(pk: [str, int], previous_pk: [str, int]) -> None: +def delete_join_record(pk: [str, int], previous_pk: [str, int]): + pk_query_set = JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) + | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk)) if previous_pk and pk: - return JoinRecord.objects.filter(Q(record_uuid__icontains=pk, related_record_uuid__icontains=previous_pk) | - Q(record_uuid__icontains=previous_pk, related_record_uuid__icontains=pk)).delete() + pk_query_set.filter(record_uuid=pk, related_record_uuid=previous_pk).delete() + pk_query_set.filter(record_uuid=previous_pk, related_record_uuid=pk).delete() + return True if pk and not previous_pk: - return JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) - | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk) - ).delete() + return pk_query_set.delete() From 880dedb0d610db1c5d04850c9801a0302fc92b39 Mon Sep 17 00:00:00 2001 From: manish Date: Tue, 25 Jan 2022 15:35:10 +0530 Subject: [PATCH 046/160] migration file --- .../migrations/0003_auto_20220117_1134.py | 12 +++++++++- .../migrations/0004_auto_20220119_0807.py | 23 ------------------- 2 files changed, 11 insertions(+), 24 deletions(-) mode change 100644 => 100755 datamesh/migrations/0003_auto_20220117_1134.py delete mode 100644 datamesh/migrations/0004_auto_20220119_0807.py diff --git a/datamesh/migrations/0003_auto_20220117_1134.py b/datamesh/migrations/0003_auto_20220117_1134.py old mode 100644 new mode 100755 index 48a8b82e..cd74e9e4 --- a/datamesh/migrations/0003_auto_20220117_1134.py +++ b/datamesh/migrations/0003_auto_20220117_1134.py @@ -1,4 +1,4 @@ -# Generated by Django 2.2.13 on 2022-01-17 11:34 +# Generated by Django 2.2.13 on 2022-01-25 09:59 from django.db import migrations, models @@ -20,4 +20,14 @@ class Migration(migrations.Migration): name='related_lookup_field_name', field=models.CharField(blank=True, max_length=128, null=True), ), + migrations.AddField( + model_name='relationship', + name='origin_fk_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), + migrations.AddField( + model_name='relationship', + name='related_fk_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), ] diff --git a/datamesh/migrations/0004_auto_20220119_0807.py b/datamesh/migrations/0004_auto_20220119_0807.py deleted file mode 100644 index 39b7caa8..00000000 --- a/datamesh/migrations/0004_auto_20220119_0807.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.2.13 on 2022-01-19 08:07 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('datamesh', '0003_auto_20220117_1134'), - ] - - operations = [ - migrations.AddField( - model_name='relationship', - name='origin_fk_field_name', - field=models.CharField(blank=True, max_length=128, null=True), - ), - migrations.AddField( - model_name='relationship', - name='related_fk_field_name', - field=models.CharField(blank=True, max_length=128, null=True), - ), - ] From ee2c859bcf7647aa0e20e83a8c44aad374142bb0 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Thu, 3 Feb 2022 13:44:15 +0530 Subject: [PATCH 047/160] User Type Implementation (#45) * added user type * admin dashboard * added survey_status * serializer fields added * help text --- core/admin.py | 4 ++-- core/migrations/0004_auto_20220203_0755.py | 23 ++++++++++++++++++++++ core/models.py | 9 ++++++++- core/serializers.py | 2 +- 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 core/migrations/0004_auto_20220203_0755.py diff --git a/core/admin.py b/core/admin.py index 6221b25f..df63d89f 100644 --- a/core/admin.py +++ b/core/admin.py @@ -29,13 +29,13 @@ class CoreGroupAdmin(admin.ModelAdmin): class CoreUserAdmin(UserAdmin): - list_display = ('username', 'first_name', 'last_name', 'email', 'organization', 'is_active') + list_display = ('username', 'first_name', 'last_name', 'email', 'organization', 'is_active', 'user_type', 'survey_status') display = 'Core User' list_filter = ('is_staff', 'organization') search_fields = ('first_name', 'last_name', 'username', 'title', 'organization__name', ) fieldsets = ( (None, {'fields': ('username', 'password')}), - (_('Personal info'), {'fields': ('title', 'first_name', 'last_name', 'email', 'contact_info', 'organization')}), + (_('Personal info'), {'fields': ('title', 'first_name', 'last_name', 'email', 'contact_info', 'organization', 'user_type', 'survey_status')}), (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'core_groups', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'date_joined', 'create_date', 'edit_date')}), ) diff --git a/core/migrations/0004_auto_20220203_0755.py b/core/migrations/0004_auto_20220203_0755.py new file mode 100644 index 00000000..39943cb5 --- /dev/null +++ b/core/migrations/0004_auto_20220203_0755.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.13 on 2022-02-03 07:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0003_partner'), + ] + + operations = [ + migrations.AddField( + model_name='coreuser', + name='survey_status', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='coreuser', + name='user_type', + field=models.CharField(blank=True, choices=[('Developer', 'Developer'), ('Product Team', 'Product Team')], max_length=50, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index aa65614f..46728b34 100644 --- a/core/models.py +++ b/core/models.py @@ -170,6 +170,11 @@ class CoreUser(AbstractUser): ('ms', 'Ms.'), ) + USER_TYPE_CHOICES = ( + ('Developer', 'Developer'), + ('Product Team', 'Product Team'), + ) + core_user_uuid = models.CharField(max_length=255, verbose_name='CoreUser UUID', default=uuid.uuid4, unique=True) title = models.CharField(blank=True, null=True, max_length=3, choices=TITLE_CHOICES) contact_info = models.CharField(blank=True, null=True, max_length=255) @@ -178,6 +183,8 @@ class CoreUser(AbstractUser): privacy_disclaimer_accepted = models.BooleanField(default=False) create_date = models.DateTimeField(default=timezone.now) edit_date = models.DateTimeField(null=True, blank=True) + user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES) + survey_status = models.BooleanField(default=False) class Meta: ordering = ('first_name',) @@ -227,7 +234,7 @@ class EmailTemplate(models.Model): template_html = models.TextField("Reset password e-mail template (HTML)", null=True, blank=True) class Meta: - unique_together = ('organization', 'type', ) + unique_together = ('organization', 'type',) verbose_name = "Email Template" verbose_name_plural = "Email Templates" diff --git a/core/serializers.py b/core/serializers.py index 67dfe9d8..3d789440 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -98,7 +98,7 @@ class Meta: model = CoreUser fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', - 'invitation_token') + 'invitation_token', 'user_type', 'survey_status') read_only_fields = ('core_user_uuid', 'organization',) depth = 1 From 7a02196f6008eb8d7f3df7b0a1f7b463e78f0b8a Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Mon, 7 Feb 2022 16:55:04 +0530 Subject: [PATCH 048/160] User profile update API (#48) * user profile update API * updated get_permission * unit test cases * added serializer field * serializer organization_name validation --- core/serializers.py | 42 ++++++++++++++++++++++++++++++--- core/tests/test_coreuserview.py | 16 +++++++++++-- core/tests/test_serializers.py | 2 ++ core/views/coreuser.py | 26 +++++++++++++------- datamesh/tests/test_views.py | 4 ++++ 5 files changed, 77 insertions(+), 13 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 3d789440..489f43d3 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -61,7 +61,6 @@ def to_representation(self, value): class CoreGroupSerializer(serializers.ModelSerializer): - permissions = PermissionsField(required=False) organization = UUIDPrimaryKeyRelatedField(required=False, queryset=Organization.objects.all(), @@ -152,6 +151,44 @@ def create(self, validated_data): return coreuser +class CoreUserProfileSerializer(serializers.Serializer): + """ Let's user update his first_name,last_name,title,contact_info, + password and organization_name """ + + first_name = serializers.CharField(required=False) + last_name = serializers.CharField(required=False) + title = serializers.CharField(required=False) + contact_info = serializers.CharField(required=False) + password = serializers.CharField(required=False) + organization_name = serializers.CharField(required=False) + user_type = serializers.CharField(required=False) + survey_status = serializers.BooleanField(required=False) + + class Meta: + model = CoreUser + fields = ('first_name', 'last_name', 'password', 'title', 'contact_info', 'organization_name', 'user_type', 'survey_status') + + def update(self, instance, validated_data): + + organization_name = validated_data.pop('organization_name', None) + + name = Organization.objects.filter(name=organization_name).first() + if name is not None: + instance.organization = name + instance.organization_name = name + + instance.first_name = validated_data.get('first_name', instance.first_name) + instance.last_name = validated_data.get('last_name', instance.last_name) + instance.title = validated_data.get('title', instance.title) + instance.contact_info = validated_data.get('contact_info', instance.contact_info) + password = validated_data.get('password', None) + if password is not None: + instance.set_password(password) + instance.save() + + return instance + + class CoreUserInvitationSerializer(serializers.Serializer): emails = serializers.ListField(child=serializers.EmailField(), min_length=1, max_length=10) @@ -226,7 +263,6 @@ class CoreUserResetPasswordConfirmSerializer(CoreUserResetPasswordCheckSerialize new_password2 = serializers.CharField(max_length=128) def validate(self, attrs): - attrs = super().validate(attrs) password1 = attrs.get('new_password1') @@ -374,4 +410,4 @@ class PartnerSerializer(serializers.ModelSerializer): class Meta: model = Partner - fields = '__all__' \ No newline at end of file + fields = '__all__' diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index b3e4ce87..4e5055e6 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -129,7 +129,7 @@ def test_registration_of_second_org_user(self, request_factory, org_admin): assert user.first_name == TEST_USER_DATA['first_name'] assert user.last_name == TEST_USER_DATA['last_name'] assert user.organization.name == TEST_USER_DATA['organization_name'] - assert not user.is_active + assert user.is_active # check this user is NOT org admin assert not user.is_org_admin @@ -233,6 +233,18 @@ def test_coreuser_update_groups(self, request_factory, org_admin): coreuser = CoreUser.objects.get(pk=pk) assert set(coreuser.core_groups.all()) == set(new_groups) + def test_coreuser_profile_update(self, request_factory, org_admin): + user = factories.CoreUser.create(is_active=False, organization=org_admin.organization, username='org_user') + pk = user.pk + + data = {'contact_info': "data"} + + request = request_factory.patch(reverse('coreuser-update-profile', args=(pk,)), data) + request.user = org_admin + response = CoreUserViewSet.as_view({'patch': 'partial_update'})(request, pk=pk) + assert response.status_code == 200 + coreuser = CoreUser.objects.get(pk=pk) + assert coreuser.contact_info == "data" @pytest.mark.django_db() class TestCoreUserInvite: @@ -424,7 +436,7 @@ def test_reset_password_confirm_token_expired(self, request_factory, reset_passw class TestCoreUserRead(object): keys = {'id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', - 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups'} + 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', 'user_type', 'survey_status'} def test_coreuser_list(self, request_factory, org_member): factories.CoreUser.create(organization=org_member.organization, username='another_user') # 2nd user of the org diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index e924c29d..14c4542b 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -60,6 +60,8 @@ def test_core_user_serializer(request_factory, org_member): 'privacy_disclaimer_accepted', 'organization', 'core_groups', + 'user_type', + 'survey_status' ] assert set(data.keys()) == set(keys) assert isinstance(data['organization'], dict) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index ec7a7841..bf7424ee 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -13,12 +13,11 @@ from rest_framework.views import APIView from rest_framework.permissions import AllowAny - from core.models import CoreUser, Organization from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer, - CoreUserEmailNotificationSerializer) + CoreUserEmailNotificationSerializer, CoreUserProfileSerializer) from core.permissions import AllowAuthenticatedRead, AllowOnlyOrgAdmin, IsOrgMember from core.swagger import (COREUSER_INVITE_RESPONSE, COREUSER_INVITE_CHECK_RESPONSE, COREUSER_RESETPASS_RESPONSE, DETAIL_RESPONSE, SUCCESS_RESPONSE, TOKEN_QUERY_PARAM) @@ -26,7 +25,6 @@ from core.email_utils import send_email - class CoreUserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.CreateModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet): @@ -57,6 +55,7 @@ class CoreUserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, 'default': CoreUserSerializer, 'create': CoreUserWritableSerializer, 'update': CoreUserWritableSerializer, + 'update_profile': CoreUserProfileSerializer, 'partial_update': CoreUserWritableSerializer, 'invite': CoreUserInvitationSerializer, 'reset_password': CoreUserResetPasswordSerializer, @@ -142,8 +141,8 @@ def invite_check(self, request, *args, **kwargs): return Response({'detail': 'Token has been used.'}, status.HTTP_401_UNAUTHORIZED) - organization = Organization.objects\ - .values('organization_uuid', 'name')\ + organization = Organization.objects \ + .values('organization_uuid', 'name') \ .get(organization_uuid=decoded['org_uuid']) \ if decoded['org_uuid'] else None @@ -254,7 +253,8 @@ def get_permissions(self): 'reset_password', 'reset_password_check', 'reset_password_confirm', - 'invite_check']: + 'invite_check', + 'update_profile']: return [permissions.AllowAny()] if self.action in ['update', 'partial_update', 'invite']: @@ -267,6 +267,18 @@ def get_permissions(self): queryset = CoreUser.objects.all() permission_classes = (AllowAuthenticatedRead,) + @action(detail=True, methods=['patch'], name='Update Profile') + def update_profile(self, request, pk=None, *args, **kwargs): + """ + Update a user Profile + """ + # the particular user in CoreUser table + user = self.get_object() + serializer = CoreUserProfileSerializer(user, data=request.data, partial=True) + serializer.is_valid(raise_exception=True) + serializer.save() + return Response(serializer.data) + @action(detail=False, methods=['patch'], name='Update Organization', url_path='update_org/(?P\d+)') def update_info(self, request, pk=None, *args, **kwargs): """ @@ -309,5 +321,3 @@ def notification(self, request, *args, **kwargs): { 'detail': 'The notification were sent successfully on email.', }, status=status.HTTP_200_OK) - - diff --git a/datamesh/tests/test_views.py b/datamesh/tests/test_views.py index 1424fcf5..10dd8a9d 100644 --- a/datamesh/tests/test_views.py +++ b/datamesh/tests/test_views.py @@ -314,6 +314,10 @@ class TestRelationshipView: 'origin_model', 'related_model', 'key', + 'origin_lookup_field_name', + 'origin_fk_field_name', + 'related_lookup_field_name', + 'related_fk_field_name' } def test_list_relationships(self, request_factory, relationship, relationship2): From 7785b1a8feb5a306fe7436a2f9b33be9417bb95a Mon Sep 17 00:00:00 2001 From: manish Date: Tue, 8 Feb 2022 14:54:04 +0530 Subject: [PATCH 049/160] updated core-user serializer update method --- core/serializers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/serializers.py b/core/serializers.py index 489f43d3..e552ef3f 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -181,6 +181,8 @@ def update(self, instance, validated_data): instance.last_name = validated_data.get('last_name', instance.last_name) instance.title = validated_data.get('title', instance.title) instance.contact_info = validated_data.get('contact_info', instance.contact_info) + instance.user_type = validated_data.get('user_type', instance.user_type) + instance.survey_status = validated_data.get('survey_status', instance.survey_status) password = validated_data.get('password', None) if password is not None: instance.set_password(password) From 62b8af4beb178adee04741af44e5160b50e2a532 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Thu, 10 Feb 2022 18:17:04 +0530 Subject: [PATCH 050/160] User registration update (#53) * register with org validation * uncommented invitation_token method * updated load initial script for org creation * set auto approve to false * core user create method * default org name * added new var to update * code format --- .../management/commands/loadinitialdata.py | 2 +- core/serializers.py | 29 ++++++++++++++++--- docker-compose.yml | 2 +- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/buildly/management/commands/loadinitialdata.py b/buildly/management/commands/loadinitialdata.py index 02545474..a488a682 100644 --- a/buildly/management/commands/loadinitialdata.py +++ b/buildly/management/commands/loadinitialdata.py @@ -43,7 +43,7 @@ def _create_oauth_application(self): def _create_default_organization(self): if settings.DEFAULT_ORG: - self._default_org, _ = Organization.objects.get_or_create(name=settings.DEFAULT_ORG) + self._default_org, _ = Organization.objects.get_or_create(name=settings.DEFAULT_ORG.lower()) def _create_groups(self): self._su_group = CoreGroup.objects.filter(is_global=True, permissions=15).first() diff --git a/core/serializers.py b/core/serializers.py index e552ef3f..e5985d6c 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -137,6 +137,23 @@ def create(self, validated_data): coreuser.set_password(validated_data['password']) coreuser.save() + # check whether org_name is "default" + if org_name in ['default']: + default_org_user = CoreGroup.objects.filter(organization__name='default organization', + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY).first() + coreuser.core_groups.add(default_org_user) + + # check whether an old organization + if not is_new_org: + coreuser.is_active = False + coreuser.save() + + org_user = CoreGroup.objects.filter(organization__name=organization, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY).first() + coreuser.core_groups.add(org_user) + # add org admin role to the user if org is new if is_new_org: group_org_admin = CoreGroup.objects.get(organization=organization, @@ -333,30 +350,34 @@ class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): class Meta: model = CoreUser fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', - 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups',) + 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups', + 'user_type', 'survey_status') def update(self, instance, validated_data): organization_name = str(validated_data.pop('organization_name')).lower() instance.email = validated_data.get('email', instance.email) + instance.user_type = validated_data.get('user_type', instance.user_type) + instance.survey_status = validated_data.get('survey_status', instance.survey_status) + if instance.email is not None: instance.save() is_new_org = Organization.objects.filter(name=organization_name) # check whether org_name is "default" if organization_name == 'default': - default_org = Organization.objects.filter(name='Default Organization').first() + default_org = Organization.objects.filter(name='default organization').first() instance.organization = default_org instance.save() # now attach the user role as USER to default organization - default_org_user = CoreGroup.objects.filter(organization__name='Default Organization', + default_org_user = CoreGroup.objects.filter(organization__name='default organization', is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY).first() instance.core_groups.add(default_org_user) # remove any other group permissions he is not added for single_group in instance.core_groups.all(): - default_org_groups = CoreGroup.objects.filter(organization__name='Default Organization', + default_org_groups = CoreGroup.objects.filter(organization__name='default organization', is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY) if single_group not in default_org_groups: diff --git a/docker-compose.yml b/docker-compose.yml index df9fbca5..b215df00 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,7 +38,7 @@ services: DATABASE_HOST: "postgres_buildly" DATABASE_PORT: "5432" DEFAULT_ORG: "Default Organization" - AUTO_APPROVE_USER: "True" + AUTO_APPROVE_USER: "False" JWT_ISSUER: "buildly" JWT_PRIVATE_KEY_RSA_BUILDLY: |- -----BEGIN RSA PRIVATE KEY----- From 83e6f8cc21ca5b2e5df43a62cf8cc98ae52998aa Mon Sep 17 00:00:00 2001 From: manish Date: Mon, 21 Feb 2022 19:32:59 +0530 Subject: [PATCH 051/160] updated gunicorn timeout --- scripts/run-standalone-dev.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run-standalone-dev.sh b/scripts/run-standalone-dev.sh index 7cd07b09..5e8609c4 100644 --- a/scripts/run-standalone-dev.sh +++ b/scripts/run-standalone-dev.sh @@ -15,4 +15,4 @@ echo $(date -u) "- Load Initial Data" python manage.py loadinitialdata echo $(date -u) "- Running the server" -gunicorn -b 0.0.0.0:8080 --reload buildly.wsgi -w 2 --timeout 120 +gunicorn -b 0.0.0.0:8080 --reload buildly.wsgi -w 2 --timeout 300 From f8ae46ec7ac1e3b5c791feebed1d943509115301 Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Mon, 2 May 2022 15:54:24 +0530 Subject: [PATCH 052/160] Datamesh id CRUD Implementation (#56) * create join with ID * updated join script to create relation if json file doesn't exist * added newly added var in script * delete id join * Fixed gateway unit test cases * implemented forward and reverse relation join in PUT req * refactored fk reference variable * written module join script * PUT request: modified prepare_update_request() fun * Fix POST req reverse relation join * updated relation model fields * updated script variable * unit tes case * updated unit test cases * updated join script * Datamesh implementation with core (#59) * implementation with core * PUT request update fk value * script info * added Datamesh relation response data in POST and PUT request * removed unused import * RequestHandler returned response * added core update req data to req response data --- datamesh/handle_request.py | 302 ++++++++++++++---- .../commands/datamesh_join_script.py | 142 ++++---- .../management/commands/joinrelationships.py | 171 +++++----- .../migrations/0004_auto_20220325_1104.py | 34 ++ datamesh/models.py | 5 +- datamesh/services.py | 7 +- datamesh/utils.py | 95 +++++- gateway/request.py | 18 +- gateway/tests/fixtures.py | 4 +- .../tests/fixtures/data_detail_document.json | 2 +- .../fixtures/data_detail_siteprofile.json | 2 +- .../tests/fixtures/data_list_siteprofile.json | 6 +- gateway/tests/test_views.py | 11 +- gateway/tests/test_views_async.py | 6 +- gateway/utils.py | 17 - 15 files changed, 550 insertions(+), 272 deletions(-) create mode 100644 datamesh/migrations/0004_auto_20220325_1104.py mode change 100644 => 100755 gateway/tests/test_views.py diff --git a/datamesh/handle_request.py b/datamesh/handle_request.py index 054b4859..4de80b2c 100644 --- a/datamesh/handle_request.py +++ b/datamesh/handle_request.py @@ -1,8 +1,17 @@ +import json from typing import Union -from datamesh.utils import validate_join, delete_join_record, join_record -from gateway.clients import SwaggerClient +from django.core.exceptions import ValidationError +from django.forms.models import model_to_dict +from datamesh.utils import validate_join, delete_join_record, join_record, prepare_request +from gateway.clients import SwaggerClient +from django.apps import apps import gateway.request as gateway_request +from .exceptions import DatameshConfigurationError +import logging +import requests + +logger = logging.getLogger(__name__) class RequestHandler: @@ -11,94 +20,128 @@ def __init__(self): self.relationship_data, self.request_kwargs = None, None self.query_params, self.request_param = None, None self.resp_data, self.request_method = None, None - self.related_fk_name, self.origin_fk_name = None, None + self.fk_field_name, self.is_forward_lookup = None, None self.related_model_pk_name, self.origin_model_pk_name = None, None self.organization, self.request, self.relation_data = None, None, None + self.request_response = None def validate_request(self, relationship: str, relationship_data: Union[dict, list], request_kwargs: dict): + """ + Here we are getting relation,relation data request kwargs from the retrieve_relationship_data function. + In This function we are validating incoming request and forwarding that request to respective function to + perform datamesh join. + """ # update the variable self.organization = self.request.session.get('jwt_organization_uuid', None) - self.origin_model_pk_name = request_kwargs['request_param'][relationship]['origin_lookup_field_name'] - self.related_model_pk_name = request_kwargs['request_param'][relationship]['related_lookup_field_name'] - self.origin_fk_name = request_kwargs['request_param'][relationship]['origin_fk_name'] - self.related_fk_name = request_kwargs['request_param'][relationship]['related_fk_name'] + self.origin_model_pk_name = request_kwargs['request_param'][relationship]['origin_model_pk_name'] + self.related_model_pk_name = request_kwargs['request_param'][relationship]['related_model_pk_name'] + + self.fk_field_name = request_kwargs['request_param'][relationship]['fk_field_name'] + self.is_forward_lookup = request_kwargs['request_param'][relationship]['is_forward_lookup'] self.relation_data = relationship_data # post the origin_model model data and create join with related_model if self.request.method in ['POST'] and 'extend' in self.query_params: origin_model_pk = self.resp_data[self.origin_model_pk_name] related_model_pk = self.request.data[self.related_model_pk_name] - return join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, organization=self.organization) + return join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, pk_dict=None) # update the created object reference to request_relationship_data if self.request.method in ['POST'] and 'join' in self.query_params: - return self.prepare_create_request(relationship=relationship) + self.prepare_create_request(relationship=relationship) # for the PUT/PATCH request update PK in request param if self.request.method in ['PUT', 'PATCH'] and 'join' in self.query_params: self.relation_data = self.prepare_update_request(relationship=relationship) if not self.relation_data: return + # perform request self.perform_request(relationship=relationship, relation_data=self.relation_data) def prepare_create_request(self, relationship: str): - pk = self.resp_data.get(self.origin_model_pk_name) if self.resp_data.get(self.origin_model_pk_name, None) else self.resp_data.get(self.related_model_pk_name, None) - key_name = self.origin_fk_name if self.origin_fk_name in self.relation_data.data.keys() else self.related_fk_name - - if pk and key_name: - self.relation_data.data[key_name] = pk + """ + This function will update fk reference in relation data and return updated relation data to perform + POST request. + """ + pk = list(self.resp_data.values())[0] + if pk: + if self.fk_field_name in self.relation_data.data: + self.relation_data.data[self.fk_field_name] = pk self.request_param[relationship]['method'] = self.request_method else: return def prepare_update_request(self, relationship: str): - # assuming if request doesn't have pk then data needed to be created - pk_name = list(self.relationship_data.data.keys())[0] - - if pk_name == self.origin_model_pk_name: + """ + Datamesh update request have the following cases: + 1.If the UUID/ID(pk) haven’t been sent for the relation PUT request data in this case datamesh is creating + that object and join + 2.If the UUID/ID(pk) is present in the relation data then we're performing the original request i.e PUT or PATCH + 3.The relation that only needs to update ID or UUID: for some relation we don't need to perform CRUD operation we're + always going to update the reference(pk) in other model + """ + + # retrieving values for reversed relation by checking is_forward_lookup var flag + if not self.request_param[relationship]['is_forward_lookup']: pk = self.relationship_data.data.get(self.origin_model_pk_name) res_pk = self.resp_data.get(self.related_model_pk_name) - elif pk_name == self.related_model_pk_name: + else: + # retrieving values for forward relation pk = self.relationship_data.data.get(self.related_model_pk_name) res_pk = self.resp_data.get(self.origin_model_pk_name) - else: - pk, res_pk = None, None if not pk: # Note : Not updating fk reference considering when we're updating we have it already on request relation data - reference_field_name = self.origin_fk_name if self.origin_fk_name in self.relationship_data.data.keys() else self.related_fk_name - if reference_field_name in self.relationship_data.data.keys(): + if self.fk_field_name in self.relationship_data.data.keys(): # update the method as we are creating relation object and save pk to none as we are performing post request - self.request_param[relationship]['pk'], self.request.method = None, 'POST' - self.relationship_data.data[reference_field_name] = pk + self.relationship_data.data[self.fk_field_name] = res_pk + self.request_param[relationship]['pk'], self.request.method = None, 'POST' + else: - # update the request and param method here we are keeping original request in - # request_method considering for above condition request method might be updated + # update the request and param method to original.as considering for above condition(case 1) request method might be updated. self.request.method, self.request_param[relationship]['method'] = self.request_method, self.request_method self.request_param[relationship]['pk'] = pk + """ + If have join and previous_pk var in relation data then delete join record for the current relation which + contain previous_pk and create join with relation data pk else update current relation data + """ if ("join" and "previous_pk") in self.relationship_data.data: - # delete join record + origin_model_pk_name = self.request_param[relationship]['origin_model_pk_name'] + related_model_pk_name = self.request_param[relationship]['related_model_pk_name'] + + # delete join record for the current relation which contain previous_pk delete_join_record(pk=res_pk, previous_pk=self.relationship_data.data['previous_pk']) - # update new values - origin_model_pk = self.resp_data[self.request_param[relationship]['origin_model_pk_name']] - related_model_pk = self.relationship_data.data[self.request_param[relationship]['related_model_pk_name']] + # fetch values from response data and relation data to create join + # retrieving values considering forward relation + origin_model_pk = self.resp_data.get(origin_model_pk_name) + related_model_pk = self.relationship_data.data.get(related_model_pk_name) - # join record - join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, - organization=self.organization) + # if not forward relation update the values and create join + if not self.request_param[relationship]['is_forward_lookup']: + origin_model_pk = self.relationship_data.data.get(origin_model_pk_name) + related_model_pk = self.resp_data.get(related_model_pk_name) + + if validate_join(origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, relationship=relationship): + self.perform_get_request(relationship=relationship, related_pk=list(self.relationship_data.data.values())[0]) return False return self.relationship_data def retrieve_relationship_data(self, request_kwargs: dict): - """ This function will retrieve relation data from request relationship list data """ + """ + This function will work following way: + 1.It will retrieve the datamesh relation and relation related required data + 2.After that iterate over request data and retrieving the relation data + 3.As relation data is always in array formate so function will iterate over relation data + 4.For each relation data the class values will update, and it will remain same till the relation request execution + """ # update the variable - self.resp_data = request_kwargs.get('resp_data', None) + self.resp_data, self.request_response = request_kwargs['resp_data'], request_kwargs['resp_data'].copy() self.request = request_kwargs['request'] self.request_kwargs = request_kwargs self.request_method = request_kwargs['request_method'] @@ -108,6 +151,7 @@ def retrieve_relationship_data(self, request_kwargs: dict): # iterate over the datamesh relationships self.relationship_data = {} for relationship in request_kwargs['datamesh_relationship']: # retrieve relationship data from request.data + self.request_response[relationship] = [] self.relationship_data[relationship] = self.request.data.get(relationship) for relationship, data in self.relationship_data.items(): # iterate over the relationship and data @@ -121,7 +165,7 @@ def retrieve_relationship_data(self, request_kwargs: dict): for instance in data: self.request.method = self.request_method - # clearing all the form current request and updating it with related data the going to POST/PUT + # clearing all the data from current request and updating it with related data the going to POST/PUT self.relationship_data = self.request # copy the request data to another variable self.relationship_data.data.clear() # clear request.data.data self.relationship_data.data.update(instance) # update the relationship_data to request.data to perform request @@ -129,46 +173,170 @@ def retrieve_relationship_data(self, request_kwargs: dict): # validate request self.validate_request(relationship=relationship, relationship_data=self.relationship_data, request_kwargs=request_kwargs) + return self.request_response + def perform_request(self, relationship: str, relation_data: any): + """ + In this function all the relation request ['POST', 'PUT', 'PATCH'] will call and will create join with origin request + response model pk with relation request response model pk. + """ + # allow only if origin model needs to update or create if self.request.method in ['POST', 'PUT', 'PATCH'] and 'join' in self.query_params: - # create a client for performing data requests - g_request = gateway_request.GatewayRequest(self.request_kwargs['request']) - spec = g_request._get_swagger_spec(self.request_param[relationship]['service']) - client = SwaggerClient(spec, relation_data) - - # perform a service data request - content, status_code, headers = client.request(**self.request_param[relationship]) + if self.request_param[relationship]['is_local']: + self.perform_core_request(relationship=relationship, relation_data=relation_data) + else: + # create a client for performing data requests + g_request = gateway_request.GatewayRequest(self.request_kwargs['request']) + spec = g_request._get_swagger_spec(self.request_param[relationship]['service']) + client = SwaggerClient(spec, relation_data) - if self.request.method in ['POST'] and 'join' in self.query_params: # create join record - origin_model_pk = content[self.request_param[relationship]['origin_model_pk_name']] - related_model_pk = self.resp_data[self.request_param[relationship]['related_model_pk_name']] - join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, - organization=self.organization) + # perform a service data request + content, status_code, headers = client.request(**self.request_param[relationship]) - def validate_relationship_data(self, resp_data: Union[dict, list], relationship: str): - """This function will validate the type of field and the relationship data""" + if self.request.method in ['PUT', 'PATCH'] and 'join' in self.query_params and status_code in [200, 201]: + if content and relationship in self.request_response: + relation_data = self.request_response[relationship].copy() + relation_data.append(content) + self.request_response.update({relationship: relation_data}) - # get the pk name - origin_field_name = self.request_param[relationship]['origin_lookup_field_name'] - related_field_name = self.request_param[relationship]['origin_fk_name'] + if self.request.method in ['POST'] and 'join' in self.query_params and status_code in [200, 201]: + self.prepare_join(content=content, relationship=relationship) - # get pk from origin request response - origin_lookup_field_uuid = resp_data.get(origin_field_name, None) - related_lookup_field_uuid = resp_data.get(related_field_name, None) + def validate_relationship_data(self, resp_data: Union[dict, list], relationship: str): + """ + This function will work following way: + If the request data has empty array relation like --> '"product_item_relation": []' so for this + relation this function will check for existing join if we don't have join then it will create it + with origin request model pk + """ + + # retrieve fk name + fk_field_name = self.request_param[relationship]['fk_field_name'] + + # retrieve pk from origin request response + origin_lookup_field = resp_data.get(self.request_param[relationship]['origin_model_pk_name'], None) + related_lookup_field = resp_data.get(fk_field_name, None) + + """ + Note: we are updating __init__() values in validate_request() function and current function will execute before that because + of that when we call __init__() values we will get None except some value that we are updating before this function call. + To call other values we can retrieve from 'self.request_param[relationship][{relation_value_name}]' + """ + + related_model_pk_name = self.request_param[relationship]['related_model_pk_name'] + fk_field_name = self.request_param[relationship]['fk_field_name'] + + # for reverse relation set value to None + if not self.request_param[relationship]['is_forward_lookup']: + if related_model_pk_name == fk_field_name: + resp_data_keys = list(resp_data.keys()) + resp_data_keys.pop(0) + if fk_field_name in resp_data_keys: + origin_lookup_field = resp_data.get(self.request_param[relationship]['related_model_pk_name'], None) + else: + origin_lookup_field = resp_data.get(self.request_param[relationship]['related_model_pk_name'], None) - if related_lookup_field_uuid and origin_lookup_field_uuid: - if type(related_lookup_field_uuid) == type([]): # check for array type - for uuid in related_lookup_field_uuid: # for each item in array/list - related_lookup_field_uuid = uuid + # considering models field might be array-type. + if related_lookup_field and origin_lookup_field: + if type(related_lookup_field) == type([]): # check for array type + for pk in related_lookup_field: # for each item in array/list + related_lookup_field = pk # validate the join - validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + validate_join(origin_model_pk=origin_lookup_field, related_model_pk=related_lookup_field, relationship=relationship) + self.perform_get_request(relationship=relationship, related_pk=related_lookup_field) - elif type(origin_lookup_field_uuid) == type([]): # check for array type - for uuid in origin_lookup_field_uuid: # for each item in array/list - origin_lookup_field_uuid = uuid + elif type(origin_lookup_field) == type([]): # check for array type + for pk in origin_lookup_field: # for each item in array/list + origin_lookup_field = pk # validate the join - validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + validate_join(origin_model_pk=origin_lookup_field, related_model_pk=related_lookup_field, relationship=relationship) + self.perform_get_request(relationship=relationship, related_pk=related_lookup_field) + else: + validate_join(origin_model_pk=origin_lookup_field, related_model_pk=related_lookup_field, relationship=relationship) + self.perform_get_request(relationship=relationship, related_pk=related_lookup_field) + + def perform_get_request(self, relationship: str, related_pk: [int, str]): + + service_url, header = prepare_request(request=self.request, request_param=self.request_param[relationship], related_model_pk=related_pk) + result = requests.get(url=service_url, headers=header) + + if result.status_code in [200] and relationship in self.request_response: + relation_data = self.request_response[relationship].copy() + relation_data.append(result.json()) + + self.request_response.update({relationship: relation_data}) + + def perform_core_request(self, relationship: str, relation_data: any): + """ + To perform request with core here we need to retrieve model from different app in project. + so to retrieve model while creating relation mention service name to {app_name} from buildly + project ex.core,datamesh,gateway. + """ + try: + model = apps.get_model(app_label=self.request_param[relationship]['service'], + model_name=self.request_param[relationship]['model']) + except LookupError as e: + raise DatameshConfigurationError(f'Data Mesh configuration error: {e}') + + lookup = { + self.request_param[relationship]['related_model_pk_name']: self.request_param[relationship]['pk'] + } + + instance = None + + # validate the request and perform respective request on model + if self.request.method in ['POST'] and 'join' in self.query_params: + try: + instance = model.objects.create(**relation_data.data) + except ValidationError as e: + logger.warning(f'{e}, params: {lookup}') + + obj_dict = model_to_dict(instance) + return self.prepare_join(content=obj_dict, relationship=relationship) + + # validate the request and perform respective request on model + if self.request.method in ['PUT', 'PATCH'] and 'join' in self.query_params: + + # To get data from model retrieve model pk_name and pk_value from relation data and + # pass it to get function + key_value = {list(relation_data.data)[0]: list(relation_data.data.values())[0]} + + try: + instance = model.objects.get(**key_value) + except model.DoesNotExist as e: + logger.warning(f'{e}, params: {lookup}') + + # update the relation to and save the instance + instance.__dict__.update(**relation_data.data) + instance.save() + + self.request_response[relationship] = [relation_data.data] + + def prepare_join(self, content: dict, relationship: str): + """ + This function will retrieve the primary key from the original request response and related relation + response depending on forward/reverse relation and will create join with both pk + """ + + related_model_pk = content.get(self.related_model_pk_name) + origin_model_pk = self.resp_data.get(self.origin_model_pk_name) + + if not self.is_forward_lookup: + related_model_pk = self.resp_data.get(self.related_model_pk_name) + origin_model_pk = content.get(self.origin_model_pk_name) + + if join_record(relationship=relationship, origin_model_pk=origin_model_pk, related_model_pk=related_model_pk, pk_dict=None): + """ + Append the relation request response to original request response. + If POST or PUT request is not sending the data in response in that case call that object via request. + """ + # validating content and the current relation + if content and relationship in self.request_response: + relation_data = self.request_response[relationship].copy() + relation_data.append(content) + self.request_response.update({relationship: relation_data}) else: - return validate_join(record_uuid=origin_lookup_field_uuid, related_record_uuid=related_lookup_field_uuid, relationship=relationship) + # perform get request if request doesn't send data in response + self.perform_get_request(relationship=relationship, related_pk=list(content.values())[0]) diff --git a/datamesh/management/commands/datamesh_join_script.py b/datamesh/management/commands/datamesh_join_script.py index de9a4337..7f56752d 100644 --- a/datamesh/management/commands/datamesh_join_script.py +++ b/datamesh/management/commands/datamesh_join_script.py @@ -19,6 +19,8 @@ # related_module_endpoint = send origin module endpoint # related_module_lookup_field_name = send origin module model lookup field +# fk_field_name = foreign key name + # lookup_field_type = it's either id or uuid # relationship_key_name = send relation name @@ -28,41 +30,98 @@ # organization = send organization name if have else by default it will set to None join_relationship( - json_file=, + json_file="product.json", + + is_local=False, - is_local=, + origin_logic_module='product', + related_logic_module='product', - origin_logic_module = , - related_logic_module = , + origin_module_model='Product', + origin_module_endpoint='/product/', + origin_module_lookup_field_name='product_uuid', - origin_module_model =, - origin_module_endpoint =, - origin_module_lookup_field_name =, + related_module_model='ThirdPartyTool', + related_module_endpoint='/thirdpartytool/', + related_module_lookup_field_name='thirdpartytool_uuid', - related_module_model =, - related_module_endpoint=, - related_module_lookup_field_name=, + fk_field_name='third_party_tool', - lookup_field_type = , + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', - relationship_key_name=, - field_name=, - is_list=, - organization=, + relationship_key_name='product_thirdpartytool_relationship', + field_name='third_party_tool', + is_list=True, + organization=None, ) """ +""" +join_relationship will accept above data to create datamesh relation and from JSON file it will create join for +existing objects. +""" + def join_relationship(*args, **kwargs): + is_file_exists = True if kwargs.get('json_file'): model_json_file = str(kwargs.get('json_file')) # load json file and take data into model_data variable - with open(model_json_file, 'r', encoding='utf-8') as file_data: - model_data = json.load(file_data) + try: + with open(model_json_file, 'r', encoding='utf-8') as file_data: + model_data = json.load(file_data) + except FileNotFoundError: + is_file_exists = False + print(f'file {model_json_file} not found !!') else: pass + # create relationship,origin and related model + relationship, _ = prepare_relation(**kwargs) + + print(f'created relation : {relationship}') + + eligible_join_records = [] + counter = 0 + + # iterate over loaded JSON data + if is_file_exists: + for related_data in model_data: + + field_value = related_data['fields'][kwargs.get('field_name')] + + if not field_value: + continue + + # convert uuid string to list + if kwargs.get('related_lookup_field_type') == 'uuid': + value_list = re.findall(r'[0-9a-f]{8}(?:-[0-9a-f]{4}){4}[0-9a-f]{8}', field_value) + else: + value_list = field_value if not kwargs.get('is_list') else json.loads(field_value) + + # iterate over item_ids + for field_value in value_list: + join_record = join_record_datamesh( + relationship=relationship, + pk=related_data['pk'], + field_value=field_value, + organization=kwargs.get('organization'), + origin_lookup_field_type=kwargs.get('origin_lookup_field_type'), + related_lookup_field_type=kwargs.get('related_lookup_field_type'), + ) + counter += 1 + + print(join_record) + eligible_join_records.append(join_record.pk) + + print(f'{counter} parsed and written to the JoinRecords.') + + +def prepare_relation(*args, **kwargs): + """This function will create logic module and datamesh relationship""" + # get logic module from core origin_logic_module = LogicModule.objects.get(endpoint_name=str(kwargs.get('origin_logic_module'))) @@ -93,73 +152,42 @@ def join_relationship(*args, **kwargs): relationship, _ = Relationship.objects.get_or_create( origin_model=origin_model, related_model=related_model, - key=str(kwargs.get('relationship_key_name')) + key=str(kwargs.get('relationship_key_name')), + fk_field_name=kwargs.get('fk_field_name'), ) - eligible_join_records = [] - counter = 0 - - # iterate over loaded JSON data - for related_data in model_data: - - field_value = related_data['fields'][kwargs.get('field_name')] - - if not field_value: - continue - - # convert uuid string to list - if kwargs.get('related_lookup_field_type') == 'uuid': - value_list = re.findall(r'[0-9a-f]{8}(?:-[0-9a-f]{4}){4}[0-9a-f]{8}', field_value) - else: - value_list = field_value if not kwargs.get('is_list') else json.loads(field_value) - - # iterate over item_ids - for field_value in value_list: - join_record = join_record_datamesh( - relationship=relationship, - pk=related_data['pk'], - field_value=field_value, - organization=kwargs.get('organization'), - origin_lookup_field_type=kwargs.get('origin_lookup_field_type'), - related_lookup_field_type=kwargs.get('related_lookup_field_type'), - ) - counter += 1 - - print(join_record) - eligible_join_records.append(join_record.pk) - - print(f'{counter} parsed and written to the JoinRecords.') + return relationship, _ def join_record_datamesh(*args, **kwargs): if kwargs.get('origin_lookup_field_type') == 'id' and kwargs.get('related_lookup_field_type') == 'id': - metrics = { + relation_value = { "record_id": kwargs.get('pk'), "related_record_id": kwargs.get('field_value') } elif kwargs.get('origin_lookup_field_type') == 'uuid' and kwargs.get('related_lookup_field_type') == 'uuid': - metrics = { + relation_value = { "record_uuid": kwargs.get('pk'), "related_record_uuid": kwargs.get('field_value') } elif kwargs.get('origin_lookup_field_type') == 'uuid' and kwargs.get('related_lookup_field_type') == 'id': - metrics = { + relation_value = { "record_uuid": kwargs.get('pk'), "related_record_id": kwargs.get('field_value') } elif kwargs.get('origin_lookup_field_type') == 'id' and kwargs.get('related_lookup_field_type') == 'uuid': - metrics = { + relation_value = { "record_id": kwargs.get('pk'), "related_record_uuid": kwargs.get('field_value') } else: - metrics = None + relation_value = None join_record, _ = JoinRecord.objects.get_or_create( relationship=kwargs.get('relationship'), - **metrics, + **relation_value, defaults={ 'organization': kwargs.get('organization') if kwargs.get('organization') else None } diff --git a/datamesh/management/commands/joinrelationships.py b/datamesh/management/commands/joinrelationships.py index e4b682c4..de742343 100644 --- a/datamesh/management/commands/joinrelationships.py +++ b/datamesh/management/commands/joinrelationships.py @@ -17,6 +17,35 @@ def handle(self, *args, **options): def run_seed(self, mode): """call function here.""" + # # product <-> organization - with core model join. + # """product.json""" + # join_relationship( + # json_file="product.json", + # + # is_local=True, + # + # origin_logic_module='product', + # related_logic_module='core', + # + # origin_module_model='Product', + # origin_module_endpoint='/product/', + # origin_module_lookup_field_name='product_uuid', + # + # related_module_model='Organization', + # related_module_endpoint='/organization/', + # related_module_lookup_field_name='organization_uuid', + # + # fk_field_name='organization_uuid', + # + # origin_lookup_field_type='uuid', + # related_lookup_field_type='uuid', + # + # relationship_key_name='product_organization_relationship', + # field_name='organization_uuid', + # is_list=False, + # organization=None, + # ) + # product <-> third party tool - within service model join. """product.json""" join_relationship( @@ -33,7 +62,9 @@ def run_seed(self, mode): related_module_model='ThirdPartyTool', related_module_endpoint='/thirdpartytool/', - related_module_lookup_field_name='third_party_tool_uuid', + related_module_lookup_field_name='thirdpartytool_uuid', + + fk_field_name='third_party_tool', origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -60,7 +91,9 @@ def run_seed(self, mode): related_module_model='ProductTeam', related_module_endpoint='/productteam/', - related_module_lookup_field_name='product_team_uuid', + related_module_lookup_field_name='productteam_uuid', + + fk_field_name='product_team', origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -90,6 +123,8 @@ def run_seed(self, mode): related_module_endpoint='/product/', related_module_lookup_field_name='product_uuid', + fk_field_name='product_uuid', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -118,6 +153,8 @@ def run_seed(self, mode): related_module_endpoint='/product/', related_module_lookup_field_name='product_uuid', + fk_field_name='product_uuid', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -128,33 +165,35 @@ def run_seed(self, mode): organization=None, ) - # # release <-> module with two different service model join. - # """release.json""" - # join_relationship( - # json_file="release.json", - # - # is_local=False, - # - # origin_logic_module='product', - # related_logic_module='hostedadmin', - # - # origin_module_model='Release', - # origin_module_endpoint='/release/', - # origin_module_lookup_field_name='release_uuid', - # - # related_module_model='Module', - # related_module_endpoint='/module/', - # related_module_lookup_field_name='module_uuid', - # - # origin_lookup_field_type='uuid', - # related_lookup_field_type='uuid', - # - # relationship_key_name='release_module_relationship', - # - # field_name='modules_uuid', - # is_list=False, - # organization=None, - # ) + # release <-> module within service model join. + """release.json""" + join_relationship( + json_file="release.json", + + is_local=False, + + origin_logic_module='product', + related_logic_module='product', + + origin_module_model='Release', + origin_module_endpoint='/release/', + origin_module_lookup_field_name='release_uuid', + + related_module_model='Module', + related_module_endpoint='/module/', + related_module_lookup_field_name='module_uuid', + + fk_field_name='modules_uuid', + + origin_lookup_field_type='uuid', + related_lookup_field_type='uuid', + + relationship_key_name='release_module_relationship', + + field_name='modules_uuid', + is_list=False, + organization=None, + ) # release <-> dev team with two different service model join. """release.json""" @@ -174,6 +213,8 @@ def run_seed(self, mode): related_module_endpoint='/devteam/', related_module_lookup_field_name='devteam_uuid', + fk_field_name='dev_team_uuid', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -204,6 +245,8 @@ def run_seed(self, mode): related_module_endpoint='/feature/', related_module_lookup_field_name='feature_uuid', + fk_field_name='feature', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -232,6 +275,8 @@ def run_seed(self, mode): related_module_endpoint='/issue/', related_module_lookup_field_name='issue_uuid', + fk_field_name='issue', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -242,62 +287,6 @@ def run_seed(self, mode): organization=None, ) - # # status <-> issue team within service model join. - # """status.json""" - # join_relationship( - # json_file="status.json", - # - # is_local=False, - # - # origin_logic_module='decision', - # related_logic_module='decision', - # - # origin_module_model='Status', - # origin_module_endpoint='/status/', - # origin_module_lookup_field_name='status_uuid', - # - # related_module_model='Issue', - # related_module_endpoint='/issue/', - # related_module_lookup_field_name='issue_uuid', - # - # origin_lookup_field_type='uuid', - # related_lookup_field_type='uuid', - # - # relationship_key_name='status_issue_relationship', - # - # field_name='issue', - # is_list=False, - # organization=None, - # ) - # - # # status <-> feature team within service model join. - # """status.json""" - # join_relationship( - # json_file="status.json", - # - # is_local=False, - # - # origin_logic_module='decision', - # related_logic_module='decision', - # - # origin_module_model='Status', - # origin_module_endpoint='/status/', - # origin_module_lookup_field_name='status_uuid', - # - # related_module_model='Feature', - # related_module_endpoint='/feature/', - # related_module_lookup_field_name='feature_uuid', - # - # origin_lookup_field_type='uuid', - # related_lookup_field_type='uuid', - # - # relationship_key_name='status_feature_relationship', - # - # field_name='feature', - # is_list=False, - # organization=None, - # ) - # feature <-> status team within service model join. """feature.json""" join_relationship( @@ -316,6 +305,8 @@ def run_seed(self, mode): related_module_endpoint='/status/', related_module_lookup_field_name='status_uuid', + fk_field_name='status', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -344,6 +335,8 @@ def run_seed(self, mode): related_module_endpoint='/feature/', related_module_lookup_field_name='feature_uuid', + fk_field_name='feature_uuid', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -372,6 +365,8 @@ def run_seed(self, mode): related_module_endpoint='/status/', related_module_lookup_field_name='status_uuid', + fk_field_name='status', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -400,6 +395,8 @@ def run_seed(self, mode): related_module_endpoint='/issue/', related_module_lookup_field_name='issue_uuid', + fk_field_name='issue', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -428,6 +425,8 @@ def run_seed(self, mode): related_module_endpoint='/feature/', related_module_lookup_field_name='feature_uuid', + fk_field_name='feature', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', @@ -456,6 +455,8 @@ def run_seed(self, mode): related_module_endpoint='/timesheet/', related_module_lookup_field_name='timesheet_uuid', + fk_field_name='timesheet_uuid', + origin_lookup_field_type='uuid', related_lookup_field_type='uuid', diff --git a/datamesh/migrations/0004_auto_20220325_1104.py b/datamesh/migrations/0004_auto_20220325_1104.py new file mode 100644 index 00000000..9c50ac52 --- /dev/null +++ b/datamesh/migrations/0004_auto_20220325_1104.py @@ -0,0 +1,34 @@ +# Generated by Django 2.2.13 on 2022-03-25 11:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('datamesh', '0003_auto_20220117_1134'), + ] + + operations = [ + migrations.RemoveField( + model_name='relationship', + name='origin_fk_field_name', + ), + migrations.RemoveField( + model_name='relationship', + name='origin_lookup_field_name', + ), + migrations.RemoveField( + model_name='relationship', + name='related_fk_field_name', + ), + migrations.RemoveField( + model_name='relationship', + name='related_lookup_field_name', + ), + migrations.AddField( + model_name='relationship', + name='fk_field_name', + field=models.CharField(blank=True, max_length=128, null=True), + ), + ] diff --git a/datamesh/models.py b/datamesh/models.py index 78047e23..88d18de9 100644 --- a/datamesh/models.py +++ b/datamesh/models.py @@ -59,10 +59,7 @@ class Relationship(models.Model): relationship_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) origin_model = models.ForeignKey(LogicModuleModel, related_name='joins_origins', on_delete=models.CASCADE) related_model = models.ForeignKey(LogicModuleModel, related_name='joins_relateds', on_delete=models.CASCADE) - origin_lookup_field_name = models.CharField(max_length=128, blank=True, null=True) - origin_fk_field_name = models.CharField(max_length=128, blank=True, null=True) - related_lookup_field_name = models.CharField(max_length=128, blank=True, null=True) - related_fk_field_name = models.CharField(max_length=128, blank=True, null=True) + fk_field_name = models.CharField(max_length=128, blank=True, null=True) def __str__(self): return f'{self.origin_model} -> {self.related_model}' diff --git a/datamesh/services.py b/datamesh/services.py index c01a168e..17850a25 100644 --- a/datamesh/services.py +++ b/datamesh/services.py @@ -156,10 +156,9 @@ def fetch_datamesh_relationship(self): 'related_model_pk_name': relationship.related_model.lookup_field_name, 'origin_model_pk_name': relationship.origin_model.lookup_field_name, - 'origin_lookup_field_name': relationship.origin_lookup_field_name, - 'origin_fk_name': relationship.origin_fk_field_name, - 'related_lookup_field_name': relationship.related_lookup_field_name, - 'related_fk_name': relationship.related_fk_field_name + 'fk_field_name': relationship.fk_field_name, + 'is_forward_lookup': is_forward_lookup, + 'is_local': relationship.related_model.is_local } request_param[relationship.key] = params diff --git a/datamesh/utils.py b/datamesh/utils.py index 1ae13eb7..290830fc 100644 --- a/datamesh/utils.py +++ b/datamesh/utils.py @@ -1,8 +1,10 @@ from typing import Tuple +from django.core.exceptions import ValidationError from django.db.models import Q from datamesh.models import Relationship, JoinRecord, LogicModuleModel +from gateway.utils import valid_uuid4 def prepare_lookup_kwargs(is_forward_lookup: bool, @@ -21,31 +23,100 @@ def prepare_lookup_kwargs(is_forward_lookup: bool, return related_model, related_record_field -def validate_join(record_uuid: [str, int], related_record_uuid: [str, int], relationship: str) -> None: +def validate_join(origin_model_pk: [str, int], related_model_pk: [str, int], relationship: str): """This function is validating the join if the join not created, yet then it will create the join """ - join_record_instance = JoinRecord.objects.filter(relationship__key=relationship, record_uuid=record_uuid, related_record_uuid=related_record_uuid) + pk_dict = validate_primary_key(origin_model_pk=origin_model_pk, related_model_pk=related_model_pk) + + join_record_instance = JoinRecord.objects.filter(**pk_dict, relationship__key=relationship) if not join_record_instance: - join_record(relationship=relationship, origin_model_pk=record_uuid, related_model_pk=related_record_uuid, organization=None) + return join_record(pk_dict=pk_dict, relationship=relationship, origin_model_pk=None, related_model_pk=None) -def join_record(relationship: str, origin_model_pk: [str, int], related_model_pk: [str, int], organization: [str, any]) -> None: +def join_record(relationship: str, origin_model_pk: [str, int], related_model_pk: [str, int], pk_dict: [dict, None]): """This function will create datamesh join""" - JoinRecord.objects.create( - relationship=Relationship.objects.filter(key=relationship).first(), - record_uuid=origin_model_pk, - related_record_uuid=related_model_pk, - organization_id=organization - ) + # validate primary key combination and pass it ro create function + if not pk_dict: + pk_dict = validate_primary_key(origin_model_pk=origin_model_pk, related_model_pk=related_model_pk) + + try: + JoinRecord.objects.create( + relationship=Relationship.objects.filter(key=relationship).first(), + **pk_dict, + organization_id=None + ) + return True + except ValidationError: + return False def delete_join_record(pk: [str, int], previous_pk: [str, int]): + """ + This function will delete + 1.join associated with particulate primary key. + 2.if relation have both origin_model_pk and related_model_pk then it deletes this single join + """ + + # retrieve the related join associated with pk pk_query_set = JoinRecord.objects.filter(Q(record_uuid__icontains=pk) | Q(related_record_uuid__icontains=pk) | Q(record_id__icontains=pk) | Q(related_record_id__icontains=pk)) + + # if relation have previous_pk then filter in pk_query_set and delete the join if previous_pk and pk: - pk_query_set.filter(record_uuid=pk, related_record_uuid=previous_pk).delete() - pk_query_set.filter(record_uuid=previous_pk, related_record_uuid=pk).delete() + pk_dict = validate_primary_key(origin_model_pk=pk, related_model_pk=previous_pk) + pk_query_set.filter(**pk_dict).delete() + + pk_dict = validate_primary_key(origin_model_pk=previous_pk, related_model_pk=pk) + pk_query_set.filter(**pk_dict).delete() return True + # if not then delete join entry associated with pk if pk and not previous_pk: return pk_query_set.delete() + + +def validate_primary_key(origin_model_pk: [str, int], related_model_pk: [str, int]): + origin_pk_type = 'uuid' if valid_uuid4(str(origin_model_pk)) else 'id' + related_pk_type = 'uuid' if valid_uuid4(str(related_model_pk)) else 'id' + + if origin_pk_type == 'id' and related_pk_type == 'id': + return { + "record_id": origin_model_pk, + "related_record_id": related_model_pk + } + + elif origin_pk_type == 'uuid' and related_pk_type == 'uuid': + return { + "record_uuid": origin_model_pk, + "related_record_uuid": related_model_pk + } + + elif origin_pk_type == 'uuid' and related_pk_type == 'id': + return { + "record_uuid": origin_model_pk, + "related_record_id": related_model_pk + } + + elif origin_pk_type == 'id' and related_pk_type == 'uuid': + return { + "record_id": origin_model_pk, + "related_record_uuid": related_model_pk + } + + +def prepare_request(request: any, request_param: dict, related_model_pk: [int, str]): + """This function will create datamesh URL to get individual objects from particulate service""" + + meta_data, service_url = request.META, None + request_host = f'{meta_data["wsgi.url_scheme"]}://{meta_data["HTTP_HOST"]}' + + # If the relation is local than it doesn't have service parameter + if not request_param['is_local']: + path = f'/{request_param["service"]}/{request_param["model"]}/{related_model_pk}/' + else: + path = f'/{request_param["model"]}/{related_model_pk}/' + + service_url = f'{request_host}{path}' + header = {'Authorization': meta_data["HTTP_AUTHORIZATION"]} + + return service_url, header diff --git a/gateway/request.py b/gateway/request.py index 5658addf..e150b64c 100644 --- a/gateway/request.py +++ b/gateway/request.py @@ -3,16 +3,14 @@ import asyncio from urllib.error import URLError from typing import Any, Dict, Union -import re import aiohttp -import requests + from bravado_core.spec import Spec -from django.db.models import Q + from django.http.request import QueryDict from rest_framework.request import Request -from datamesh.exceptions import DatameshConfigurationError from datamesh.handle_request import RequestHandler from datamesh.utils import delete_join_record from gateway import exceptions @@ -20,8 +18,7 @@ from core.models import LogicModule from gateway.clients import SwaggerClient, AsyncSwaggerClient from datamesh.services import DataMesh -from datamesh.models import JoinRecord, Relationship -from gateway.utils import prepare_get_request + logger = logging.getLogger(__name__) @@ -179,15 +176,12 @@ def _join_response_data(self, resp_data: Union[dict, list], query_params: str) - # handle datamesh requests request_handler = RequestHandler() - request_handler.retrieve_relationship_data(request_kwargs=request_kwargs) - - # perform get - service_url, header = prepare_get_request(request=self.request, resp_data=resp_data) - result = requests.get(url=service_url, headers=header) + response = request_handler.retrieve_relationship_data(request_kwargs=request_kwargs) # clear and update datamesh get response resp_data.clear() - resp_data.update(result.json()) + resp_data.update(response) + else: for service in datamesh.related_logic_modules: diff --git a/gateway/tests/fixtures.py b/gateway/tests/fixtures.py index 2c668397..87842da7 100644 --- a/gateway/tests/fixtures.py +++ b/gateway/tests/fixtures.py @@ -13,9 +13,9 @@ def datamesh(): lm2 = factories.LogicModule.create(name='documents', endpoint_name='documents', endpoint='http://documentservice:8080') lmm1 = factories.LogicModuleModel(logic_module_endpoint_name=lm1.endpoint_name, model='SiteProfile', - endpoint='/siteprofiles/', lookup_field_name='uuid') + endpoint='/siteprofiles/', lookup_field_name='siteprofiles_uuid') lmm2 = factories.LogicModuleModel(logic_module_endpoint_name=lm2.endpoint_name, model='Document', - endpoint='/documents/', lookup_field_name='id') + endpoint='/documents/', lookup_field_name='documents_id') relationship = factories.Relationship(origin_model=lmm1, related_model=lmm2, key='documents') return lm1, lm2, relationship diff --git a/gateway/tests/fixtures/data_detail_document.json b/gateway/tests/fixtures/data_detail_document.json index a27c6c60..1c811c73 100644 --- a/gateway/tests/fixtures/data_detail_document.json +++ b/gateway/tests/fixtures/data_detail_document.json @@ -1,5 +1,5 @@ { - "id": 1, + "documents_id": 1, "uuid": "a4772733-a404-4825-86ef-45654ce9f82a", "upload_date": "2019-07-01T17:41:54.309874Z", "thumbnail": null, diff --git a/gateway/tests/fixtures/data_detail_siteprofile.json b/gateway/tests/fixtures/data_detail_siteprofile.json index 3d5ab5ec..3737e809 100644 --- a/gateway/tests/fixtures/data_detail_siteprofile.json +++ b/gateway/tests/fixtures/data_detail_siteprofile.json @@ -1,5 +1,5 @@ { - "uuid": "19a7f600-74a0-4123-9be5-dfa69aa172cc", + "siteprofiles_uuid": "19a7f600-74a0-4123-9be5-dfa69aa172cc", "country": "ES", "organization_uuid": "08edc823-cf3b-4bfb-aa92-ce33a8e2817d", "name": "", diff --git a/gateway/tests/fixtures/data_list_siteprofile.json b/gateway/tests/fixtures/data_list_siteprofile.json index b75f8e43..fd59100a 100644 --- a/gateway/tests/fixtures/data_list_siteprofile.json +++ b/gateway/tests/fixtures/data_list_siteprofile.json @@ -4,7 +4,7 @@ "previous": null, "results": [ { - "uuid": "19a7f600-74a0-4123-9be5-dfa69aa172cc", + "siteprofiles_uuid": "19a7f600-74a0-4123-9be5-dfa69aa172cc", "country": "ES", "organization_uuid": "08edc823-cf3b-4bfb-aa92-ce33a8e2817d", "name": "", @@ -29,7 +29,7 @@ "profiletype": 50 }, { - "uuid": "64193f72-d7ba-42f7-87d2-feca15ac157d", + "siteprofiles_uuid": "64193f72-d7ba-42f7-87d2-feca15ac157d", "country": "ES", "organization_uuid": "08edc823-cf3b-4bfb-aa92-ce33a8e2817d", "name": "", @@ -54,7 +54,7 @@ "profiletype": 2 }, { - "uuid": "b6b5ce2d-2dd9-4953-893f-023536f1b634", + "siteprofiles_uuid": "b6b5ce2d-2dd9-4953-893f-023536f1b634", "country": "GB", "organization_uuid": "08edc823-cf3b-4bfb-aa92-ce33a8e2817d", "name": "", diff --git a/gateway/tests/test_views.py b/gateway/tests/test_views.py old mode 100644 new mode 100755 index 7894b373..9a899fec --- a/gateway/tests/test_views.py +++ b/gateway/tests/test_views.py @@ -6,6 +6,7 @@ import factories from core.tests.fixtures import auth_api_client, logic_module +from datamesh.models import LogicModuleModel from .fixtures import datamesh @@ -18,7 +19,7 @@ @httpretty.activate def test_make_service_request_data_and_raw(auth_api_client, logic_module, content, content_type): url = f'/{logic_module.endpoint_name}/thumbnail/1/' - + print('url', url , auth_api_client, logic_module, content, content_type) # mock requests with open(os.path.join(CURRENT_PATH, 'fixtures/swagger_documents.json')) as r: swagger_body = r.read() @@ -93,7 +94,7 @@ def test_make_service_request_to_unexisting_detail_endpoint(auth_api_client, log assert response.status_code == 404 assert response.has_header('Content-Type') assert response.get('Content-Type') == 'application/json' - assert json.loads(response.content)['detail'] == "Endpoint not found: GET /nowhere/{id}/" + assert json.loads(response.content)['detail'] == "Endpoint not found: GET /nowhere/{nowhere_id}/" @pytest.mark.django_db() @@ -156,6 +157,7 @@ def test_make_service_request_with_datamesh_detailed(auth_api_client, datamesh): @httpretty.activate def test_make_service_request_with_reverse_datamesh_detailed(auth_api_client, datamesh): lm1, lm2, relationship = datamesh + factories.JoinRecord(relationship=relationship, record_id=None, record_uuid='19a7f600-74a0-4123-9be5-dfa69aa172cc', related_record_id=1, related_record_uuid=None) @@ -205,7 +207,7 @@ def test_make_service_request_with_reverse_datamesh_detailed(auth_api_client, da data = response.json() assert relationship.key in data assert len(data[relationship.key]) == 1 - assert data[relationship.key][0]['uuid'] == '19a7f600-74a0-4123-9be5-dfa69aa172cc' + assert data[relationship.key][0][list(data[relationship.key][0].keys())[0]] == '19a7f600-74a0-4123-9be5-dfa69aa172cc' @pytest.mark.django_db() @@ -264,7 +266,8 @@ def test_make_service_request_with_datamesh_list(auth_api_client, datamesh): item1 = data["results"][0] assert relationship.key in item1 assert len(item1[relationship.key]) == 1 - assert item1[relationship.key][0]['id'] == 1 + + assert item1[relationship.key][0][list(item1[relationship.key][0].keys())[0]] == 1 # second item in the list doesn't have a joined record item2 = data["results"][1] diff --git a/gateway/tests/test_views_async.py b/gateway/tests/test_views_async.py index a49a317c..fbd95191 100644 --- a/gateway/tests/test_views_async.py +++ b/gateway/tests/test_views_async.py @@ -97,7 +97,7 @@ def test_make_service_request_to_unexisting_detail_endpoint(client_session_mock, assert response.status_code == 404 assert response.has_header('Content-Type') assert response.get('Content-Type') == 'application/json' - assert json.loads(response.content)['detail'] == "Endpoint not found: GET /nowhere/{id}/" + assert json.loads(response.content)['detail'] == "Endpoint not found: GET /nowhere/{nowhere_id}/" @pytest.mark.django_db() @@ -141,7 +141,7 @@ def test_make_service_request_with_datamesh_detailed(client_session_mock, auth_a data = response.json() assert relationship.key in data assert len(data[relationship.key]) == 1 - assert data[relationship.key][0]['id'] == 1 + assert data[relationship.key][0][list(data[relationship.key][0].keys())[0]] == 1 @pytest.mark.django_db() @@ -187,7 +187,7 @@ def test_make_service_request_with_datamesh_list(client_session_mock, auth_api_c item1 = data["results"][0] assert relationship.key in item1 assert len(item1[relationship.key]) == 1 - assert item1[relationship.key][0]['id'] == 1 + assert item1[relationship.key][0][list(item1[relationship.key][0].keys())[0]] == 1 # second item in the list doesn't have a joined record item2 = data["results"][1] diff --git a/gateway/utils.py b/gateway/utils.py index 4cf08320..a6fbe309 100644 --- a/gateway/utils.py +++ b/gateway/utils.py @@ -136,20 +136,3 @@ def valid_uuid4(uuid_string): re.I) match = uuid4hex.match(uuid_string) return bool(match) - - -def prepare_get_request(request: any, resp_data: any): - meta_data, service_url = request.META, None - request_host = f'{meta_data["wsgi.url_scheme"]}://{meta_data["HTTP_HOST"]}' - query_string = meta_data.get("QUERY_STRING", None) - path = meta_data.get("PATH_INFO", None) - - if request.method in ['PUT', 'PATCH']: - service_url = f'{request_host}{path}?{query_string}' - elif request.method in ['POST']: - pk = list(resp_data.values())[0] - service_url = f'{request_host}{path}{pk}/?{query_string}' - - header = {'Authorization': meta_data["HTTP_AUTHORIZATION"]} - - return service_url, header From 5c9bb98d013431c847f706fc7d65f50be9c737b7 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Fri, 13 May 2022 15:04:28 +0530 Subject: [PATCH 053/160] Stripe integration for customer create and get card details (#62) * initial stripe subscription changes * add new stripe/products endpoint * change plan to product for subscription * add stripe check for update org for a user scenario --- buildly/settings/base.py | 1 + ...rganization_stripe_subscription_details.py | 19 ++++++++ core/models.py | 1 + core/serializers.py | 42 +++++++++++++++++- core/tests/test_serializers.py | 1 + core/urls.py | 1 + core/views/__init__.py | 1 + core/views/stripe.py | 44 +++++++++++++++++++ docker-compose.yml | 9 ++-- gateway/__init__.py | 1 + requirements/base.txt | 3 +- 11 files changed, 116 insertions(+), 7 deletions(-) create mode 100644 core/migrations/0005_organization_stripe_subscription_details.py create mode 100644 core/views/stripe.py diff --git a/buildly/settings/base.py b/buildly/settings/base.py index 1c72be73..4b47ecec 100644 --- a/buildly/settings/base.py +++ b/buildly/settings/base.py @@ -193,6 +193,7 @@ SUPER_USER_PASSWORD = os.getenv('SUPER_USER_PASSWORD') DEFAULT_ORG = os.getenv('DEFAULT_ORG') AUTO_APPROVE_USER = os.getenv('AUTO_APPROVE_USER', False) +STRIPE_SECRET = os.getenv('STRIPE_SECRET', '') # Swagger settings - for generate_swagger management command diff --git a/core/migrations/0005_organization_stripe_subscription_details.py b/core/migrations/0005_organization_stripe_subscription_details.py new file mode 100644 index 00000000..d167a349 --- /dev/null +++ b/core/migrations/0005_organization_stripe_subscription_details.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.27 on 2022-05-05 08:54 + +import django.contrib.postgres.fields.jsonb +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0004_auto_20220203_0755'), + ] + + operations = [ + migrations.AddField( + model_name='organization', + name='stripe_subscription_details', + field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 46728b34..1823295c 100644 --- a/core/models.py +++ b/core/models.py @@ -94,6 +94,7 @@ class Organization(models.Model): oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) + stripe_subscription_details = JSONField(blank=True, null=True) class Meta: ordering = ('name',) diff --git a/core/serializers.py b/core/serializers.py index e5985d6c..28e805cb 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -1,10 +1,14 @@ +import datetime import jwt +import json import secrets +import stripe from urllib.parse import urljoin from django.contrib.auth import password_validation from django.contrib.auth.tokens import default_token_generator from django.conf import settings +from django.utils import timezone from django.utils.encoding import force_bytes, force_text from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode from django.template import Template, Context @@ -109,10 +113,12 @@ class CoreUserWritableSerializer(CoreUserSerializer): password = serializers.CharField(write_only=True) organization_name = serializers.CharField(source='organization.name') core_groups = serializers.PrimaryKeyRelatedField(many=True, queryset=CoreGroup.objects.all(), required=False) + product = serializers.CharField(required=False) + card = serializers.CharField(required=False) class Meta: model = CoreUser - fields = CoreUserSerializer.Meta.fields + ('password', 'organization_name') + fields = CoreUserSerializer.Meta.fields + ('password', 'organization_name', 'product', 'card') read_only_fields = CoreUserSerializer.Meta.read_only_fields def create(self, validated_data): @@ -122,6 +128,8 @@ def create(self, validated_data): organization, is_new_org = Organization.objects.get_or_create(name=str(org_name).lower()) core_groups = validated_data.pop('core_groups', []) + product = validated_data.pop('product', None) + card = validated_data.pop('card', None) # create core user if bool(settings.AUTO_APPROVE_USER): # If auto-approval set to true @@ -156,6 +164,19 @@ def create(self, validated_data): # add org admin role to the user if org is new if is_new_org: + if (settings.STRIPE_SECRET and product and card): + stripe.api_key = settings.STRIPE_SECRET + customer = stripe.Customer.create(email=coreuser.email, name=str(organization.name).capitalize()) + stripe.PaymentMethod.attach(card, customer=customer.id) + organization.stripe_subscription_details = json.dumps({ + "customer_stripe_id": customer.id, + "product": product, + "trial_start_date": timezone.now().isoformat(), + "trial_end_date": (timezone.now() + datetime.timedelta(days=30)).isoformat(), + "subscription_start_date": (timezone.now() + datetime.timedelta(days=31)).isoformat() + }) + organization.save() + group_org_admin = CoreGroup.objects.get(organization=organization, is_org_level=True, permissions=PERMISSIONS_ORG_ADMIN) @@ -346,16 +367,20 @@ class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): organization_name = serializers.CharField(required=False) core_groups = CoreGroupSerializer(read_only=True, many=True) organization = OrganizationSerializer(read_only=True) + product = serializers.CharField(required=False) + card = serializers.CharField(required=False) class Meta: model = CoreUser fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups', - 'user_type', 'survey_status') + 'user_type', 'survey_status', 'product', 'card') def update(self, instance, validated_data): organization_name = str(validated_data.pop('organization_name')).lower() + product = validated_data.pop('product', None) + card = validated_data.pop('card', None) instance.email = validated_data.get('email', instance.email) instance.user_type = validated_data.get('user_type', instance.user_type) instance.survey_status = validated_data.get('survey_status', instance.survey_status) @@ -409,6 +434,19 @@ def update(self, instance, validated_data): elif not is_new_org.exists(): # first update the org name for that user organization = Organization.objects.create(name=organization_name) + if (settings.STRIPE_SECRET and product and card): + stripe.api_key = settings.STRIPE_SECRET + customer = stripe.Customer.create(email=instance.email, name=str(organization.name).capitalize()) + stripe.PaymentMethod.attach(card, customer=customer.id) + organization.stripe_subscription_details = json.dumps({ + "customer_stripe_id": customer.id, + "product": product, + "trial_start_date": timezone.now().isoformat(), + "trial_end_date": (timezone.now() + datetime.timedelta(days=30)).isoformat(), + "subscription_start_date": (timezone.now() + datetime.timedelta(days=31)).isoformat() + }) + organization.save() + instance.organization = organization instance.save() # now attach the user role as ADMIN diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 14c4542b..91554bb8 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -20,6 +20,7 @@ def test_org_serializer(request_factory, org): 'date_format', 'phone', 'industries', + 'stripe_subscription_details', ] assert set(data.keys()) == set(keys) diff --git a/core/urls.py b/core/urls.py index d4fe4748..f56bced4 100644 --- a/core/urls.py +++ b/core/urls.py @@ -23,6 +23,7 @@ router.register(r'organization', views.OrganizationViewSet) router.register(r'logicmodule', views.LogicModuleViewSet) router.register(r'partner', views.PartnerViewSet) +router.register(r'stripe', views.StripeViewSet, basename='stripe') urlpatterns = [ diff --git a/core/views/__init__.py b/core/views/__init__.py index 38cbcdf8..4b36386d 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -4,3 +4,4 @@ from .organization import OrganizationViewSet # noqa from .logicmodule import LogicModuleViewSet # noqa from .partner import PartnerViewSet # noqa +from .stripe import StripeViewSet # noqa# noqa diff --git a/core/views/stripe.py b/core/views/stripe.py new file mode 100644 index 00000000..ca6b524d --- /dev/null +++ b/core/views/stripe.py @@ -0,0 +1,44 @@ +import logging +import stripe + +from django.conf import settings +from rest_framework import viewsets +from rest_framework.response import Response +from rest_framework.decorators import action +from rest_framework.permissions import AllowAny + + +logger = logging.getLogger(__name__) + + +class StripeViewSet(viewsets.GenericViewSet): + """ + Products available on the stripe account. + + title: + Products is a collection of all the products available on the stripe account. + + description: + All the products available for subscription on the stripe account. + + list: + Return a list of all the products on the stripe account. + """ + + queryset = [] + + # /stripe/products/ + # send all the products + @action(detail=False, methods=['get'], permission_classes=[AllowAny], name='Fetch all existing products', url_path='products') + def fetch_existing_products(self, request, pk=None, *args, **kwargs): + """ + Fetch all existing Products in Stripe Platform + """ + # all products on stripe platform + products = [] + if (settings.STRIPE_SECRET): + stripe.api_key = settings.STRIPE_SECRET + stripe_products = stripe.Product.list() + products = stripe_products.data + + return Response(products) \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b215df00..c23c3ae5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,10 +67,10 @@ services: PASSWORD_MINIMUM_LENGTH: "6" USE_PASSWORD_COMMON_VALIDATOR: "True" USE_PASSWORD_NUMERIC_VALIDATOR: "True" - FRONTEND_URL: "http://localhost:3000/" - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "http://localhost:3000/" - SOCIAL_AUTH_GITHUB_KEY: "25fc5ab2bdfca0e70c63" - SOCIAL_AUTH_GITHUB_SECRET: "ff981a6390929445153092d0dbbf4a507c0ecf8b" + FRONTEND_URL: "https://localhost:3000/" + SOCIAL_AUTH_GITHUB_REDIRECT_URL: "https://localhost:3000/" + SOCIAL_AUTH_GITHUB_KEY: "9a05980c46f7fc8fc8d7" + SOCIAL_AUTH_GITHUB_SECRET: "f85afed46854e4d71e64db1f69032643b15f164d" # SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" # SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" EMAIL_HOST: "smtp.sendgrid.net" @@ -82,6 +82,7 @@ services: EMAIL_BACKEND: "SMTP" DEFAULT_FROM_EMAIL: "admin@buildly.io" RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" + STRIPE_SECRET: "sk_test_ddLjeqLRWcj8znVAhMaNPu7J00evbJrikA" volumes: static-content: diff --git a/gateway/__init__.py b/gateway/__init__.py index 61a7ff41..4e81b9ab 100644 --- a/gateway/__init__.py +++ b/gateway/__init__.py @@ -13,4 +13,5 @@ 'logicmodule', 'organization', 'datamesh', + 'stripe', ] diff --git a/requirements/base.txt b/requirements/base.txt index 8c4b3ea6..7de344d0 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -15,4 +15,5 @@ bravado-core==5.13.1 drf-yasg==1.20.0 requests==2.21.0 aiohttp==3.7.4 -django-auth-ldap==2.1.0 \ No newline at end of file +django-auth-ldap==2.1.0 +stripe==2.75.0 From ca8109dd3084600dfa7fe5cd4bfdab93f79f98fa Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Mon, 30 May 2022 11:50:00 +0530 Subject: [PATCH 054/160] Fixed unit test cases (#63) --- .../management/commands/loadinitialdata.py | 3 +- buildly/settings/base.py | 2 +- core/serializers.py | 10 +- core/tests/test_coreuserview.py | 4 +- datamesh/tests/test_views.py | 5 +- gateway/tests/fixtures/swagger_documents.json | 734 ++++++++++++++- gateway/tests/fixtures/swagger_location.json | 864 +++++++++++++++++- gateway/tests/test_views.py | 4 +- 8 files changed, 1609 insertions(+), 17 deletions(-) diff --git a/buildly/management/commands/loadinitialdata.py b/buildly/management/commands/loadinitialdata.py index a488a682..b3361a9c 100644 --- a/buildly/management/commands/loadinitialdata.py +++ b/buildly/management/commands/loadinitialdata.py @@ -17,6 +17,7 @@ class Command(BaseCommand): help = """ Loads initial data for Buildly. """ + def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) @@ -43,7 +44,7 @@ def _create_oauth_application(self): def _create_default_organization(self): if settings.DEFAULT_ORG: - self._default_org, _ = Organization.objects.get_or_create(name=settings.DEFAULT_ORG.lower()) + self._default_org, _ = Organization.objects.get_or_create(name=settings.DEFAULT_ORG) def _create_groups(self): self._su_group = CoreGroup.objects.filter(is_global=True, permissions=15).first() diff --git a/buildly/settings/base.py b/buildly/settings/base.py index 4b47ecec..873efe11 100644 --- a/buildly/settings/base.py +++ b/buildly/settings/base.py @@ -191,7 +191,7 @@ # User and Organization configuration SUPER_USER_PASSWORD = os.getenv('SUPER_USER_PASSWORD') -DEFAULT_ORG = os.getenv('DEFAULT_ORG') +DEFAULT_ORG = os.getenv('DEFAULT_ORG').lower() if os.getenv('DEFAULT_ORG') else None AUTO_APPROVE_USER = os.getenv('AUTO_APPROVE_USER', False) STRIPE_SECRET = os.getenv('STRIPE_SECRET', '') diff --git a/core/serializers.py b/core/serializers.py index 28e805cb..2a6fba4f 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -130,12 +130,12 @@ def create(self, validated_data): core_groups = validated_data.pop('core_groups', []) product = validated_data.pop('product', None) card = validated_data.pop('card', None) + invitation_token = validated_data.pop('invitation_token', None) # create core user if bool(settings.AUTO_APPROVE_USER): # If auto-approval set to true validated_data['is_active'] = True else: - invitation_token = validated_data.pop('invitation_token', None) validated_data['is_active'] = is_new_org or bool(invitation_token) coreuser = CoreUser.objects.create( organization=organization, @@ -147,7 +147,7 @@ def create(self, validated_data): # check whether org_name is "default" if org_name in ['default']: - default_org_user = CoreGroup.objects.filter(organization__name='default organization', + default_org_user = CoreGroup.objects.filter(organization__name=settings.DEFAULT_ORG, is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY).first() coreuser.core_groups.add(default_org_user) @@ -391,18 +391,18 @@ def update(self, instance, validated_data): # check whether org_name is "default" if organization_name == 'default': - default_org = Organization.objects.filter(name='default organization').first() + default_org = Organization.objects.filter(name=settings.DEFAULT_ORG).first() instance.organization = default_org instance.save() # now attach the user role as USER to default organization - default_org_user = CoreGroup.objects.filter(organization__name='default organization', + default_org_user = CoreGroup.objects.filter(organization__name=settings.DEFAULT_ORG, is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY).first() instance.core_groups.add(default_org_user) # remove any other group permissions he is not added for single_group in instance.core_groups.all(): - default_org_groups = CoreGroup.objects.filter(organization__name='default organization', + default_org_groups = CoreGroup.objects.filter(organization__name=settings.DEFAULT_ORG, is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY) if single_group not in default_org_groups: diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index 4e5055e6..a85aa3ac 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -129,7 +129,7 @@ def test_registration_of_second_org_user(self, request_factory, org_admin): assert user.first_name == TEST_USER_DATA['first_name'] assert user.last_name == TEST_USER_DATA['last_name'] assert user.organization.name == TEST_USER_DATA['organization_name'] - assert user.is_active + assert not user.is_active # check this user is NOT org admin assert not user.is_org_admin @@ -148,7 +148,7 @@ def test_registration_of_invited_org_user(self, request_factory, org_admin): assert user.first_name == TEST_USER_DATA['first_name'] assert user.last_name == TEST_USER_DATA['last_name'] assert user.organization.name == TEST_USER_DATA['organization_name'] - assert user.is_active + assert not user.is_active # check this user is NOT org admin assert not user.is_org_admin diff --git a/datamesh/tests/test_views.py b/datamesh/tests/test_views.py index 10dd8a9d..288d672f 100644 --- a/datamesh/tests/test_views.py +++ b/datamesh/tests/test_views.py @@ -314,10 +314,7 @@ class TestRelationshipView: 'origin_model', 'related_model', 'key', - 'origin_lookup_field_name', - 'origin_fk_field_name', - 'related_lookup_field_name', - 'related_fk_field_name' + 'fk_field_name' } def test_list_relationships(self, request_factory, relationship, relationship2): diff --git a/gateway/tests/fixtures/swagger_documents.json b/gateway/tests/fixtures/swagger_documents.json index a7b35e52..87246f9b 100644 --- a/gateway/tests/fixtures/swagger_documents.json +++ b/gateway/tests/fixtures/swagger_documents.json @@ -1,2 +1,734 @@ +{ + "swagger":"2.0", + "info":{ + "title":"Documents Service API", + "description":"A microservice which handles file up- and downloads to an Amazon S3 Bucket.", + "version":"latest" + }, + "host":"documentservice:8080", + "schemes":[ + "http" + ], + "basePath":"/", + "consumes":[ + "application/json" + ], + "produces":[ + "application/json" + ], + "securityDefinitions":{ + "basic":{ + "type":"basic" + } + }, + "security":[ + { + "basic":[ -{"swagger": "2.0", "info": {"title": "Documents Service API", "description": "A microservice which handles file up- and downloads to an Amazon S3 Bucket.", "version": "latest"}, "host": "documentservice:8080", "schemes": ["http"], "basePath": "/", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"basic": {"type": "basic"}}, "security": [{"basic": []}], "paths": {"/documents/": {"get": {"operationId": "documents_list", "description": "Documents.", "parameters": [{"name": "file_type", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "contact_uuid", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "cursor", "in": "query", "description": "The pagination cursor value.", "required": false, "type": "string"}, {"name": "page_size", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "workflowlevel1_uuid", "in": "query", "description": "Filter by workflowlevel1_uuid.", "type": "string"}, {"name": "workflowlevel2_uuid", "in": "query", "description": "Filter by workflowlevel2_uuid.", "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["results"], "type": "object", "properties": {"next": {"type": "string", "format": "uri"}, "previous": {"type": "string", "format": "uri"}, "results": {"type": "array", "items": {"$ref": "#/definitions/Document"}}}}}}, "tags": ["documents"]}, "post": {"operationId": "documents_create", "description": "Documents.", "parameters": [{"name": "id", "in": "formData", "required": false, "type": "string"}, {"name": "uuid", "in": "formData", "required": false, "type": "string"}, {"name": "upload_date", "in": "formData", "required": false, "type": "string"}, {"name": "thumbnail", "in": "formData", "required": false, "type": "string"}, {"name": "file_description", "in": "formData", "description": "File Description", "required": false, "type": "string", "maxLength": 200}, {"name": "file_name", "in": "formData", "description": "Filename", "required": true, "type": "string", "maxLength": 200, "minLength": 1}, {"name": "file_type", "in": "formData", "description": "Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", "required": false, "type": "string", "enum": ["jpg", "jpeg", "png", "gif", "pdf", "txt", "doc", "docx", "xls", "xlsx", "ppt", "pptx"]}, {"name": "file", "in": "formData", "required": false, "type": "file"}, {"name": "create_date", "in": "formData", "required": false, "type": "string", "format": "date-time"}, {"name": "organization_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "user_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "contact_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "workflowlevel1_uuids", "in": "formData", "description": "List of Workflowlevel1 UUIDs", "required": false, "type": "array", "items": {"type": "string", "maxLength": 36, "minLength": 1}}, {"name": "workflowlevel2_uuids", "in": "formData", "description": "List of Workflowlevel2 UUIDs", "required": false, "type": "array", "items": {"type": "string", "maxLength": 36, "minLength": 1}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/Document"}}}, "tags": ["documents"]}, "parameters": []}, "/documents/{id}/": {"get": {"operationId": "documents_read", "description": "Documents.", "parameters": [], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/Document"}}}, "tags": ["documents"]}, "put": {"operationId": "documents_update", "description": "Documents.", "parameters": [{"name": "id", "in": "formData", "required": false, "type": "string"}, {"name": "uuid", "in": "formData", "required": false, "type": "string"}, {"name": "upload_date", "in": "formData", "required": false, "type": "string"}, {"name": "thumbnail", "in": "formData", "required": false, "type": "string"}, {"name": "file_description", "in": "formData", "description": "File Description", "required": false, "type": "string", "maxLength": 200}, {"name": "file_name", "in": "formData", "description": "Filename", "required": true, "type": "string", "maxLength": 200, "minLength": 1}, {"name": "file_type", "in": "formData", "description": "Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", "required": false, "type": "string", "enum": ["jpg", "jpeg", "png", "gif", "pdf", "txt", "doc", "docx", "xls", "xlsx", "ppt", "pptx"]}, {"name": "file", "in": "formData", "required": false, "type": "file"}, {"name": "create_date", "in": "formData", "required": false, "type": "string", "format": "date-time"}, {"name": "organization_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "user_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "contact_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "workflowlevel1_uuids", "in": "formData", "description": "List of Workflowlevel1 UUIDs", "required": false, "type": "array", "items": {"type": "string", "maxLength": 36, "minLength": 1}}, {"name": "workflowlevel2_uuids", "in": "formData", "description": "List of Workflowlevel2 UUIDs", "required": false, "type": "array", "items": {"type": "string", "maxLength": 36, "minLength": 1}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/Document"}}}, "tags": ["documents"]}, "patch": {"operationId": "documents_partial_update", "description": "Documents.", "parameters": [{"name": "id", "in": "formData", "required": false, "type": "string"}, {"name": "uuid", "in": "formData", "required": false, "type": "string"}, {"name": "upload_date", "in": "formData", "required": false, "type": "string"}, {"name": "thumbnail", "in": "formData", "required": false, "type": "string"}, {"name": "file_description", "in": "formData", "description": "File Description", "required": false, "type": "string", "maxLength": 200}, {"name": "file_name", "in": "formData", "description": "Filename", "required": true, "type": "string", "maxLength": 200, "minLength": 1}, {"name": "file_type", "in": "formData", "description": "Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", "required": false, "type": "string", "enum": ["jpg", "jpeg", "png", "gif", "pdf", "txt", "doc", "docx", "xls", "xlsx", "ppt", "pptx"]}, {"name": "file", "in": "formData", "required": false, "type": "file"}, {"name": "create_date", "in": "formData", "required": false, "type": "string", "format": "date-time"}, {"name": "organization_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "user_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "contact_uuid", "in": "formData", "required": false, "type": "string", "maxLength": 36}, {"name": "workflowlevel1_uuids", "in": "formData", "description": "List of Workflowlevel1 UUIDs", "required": false, "type": "array", "items": {"type": "string", "maxLength": 36, "minLength": 1}}, {"name": "workflowlevel2_uuids", "in": "formData", "description": "List of Workflowlevel2 UUIDs", "required": false, "type": "array", "items": {"type": "string", "maxLength": 36, "minLength": 1}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/Document"}}}, "tags": ["documents"]}, "delete": {"operationId": "documents_delete", "description": "Documents.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["documents"]}, "parameters": [{"name": "id", "in": "path", "description": "A unique integer value identifying this document.", "required": true, "type": "integer"}]}, "/file/{id}/": {"get": {"operationId": "file_read", "description": "", "parameters": [], "responses": {"200": {"description": ""}}, "tags": ["file"]}, "parameters": [{"name": "id", "in": "path", "required": true, "type": "string"}]}, "/thumbnail/{id}/": {"get": {"operationId": "thumbnail_read", "description": "", "parameters": [], "responses": {"200": {"description": ""}}, "tags": ["thumbnail"]}, "parameters": [{"name": "id", "in": "path", "required": true, "type": "string"}]}}, "definitions": {"Document": {"required": ["file_name"], "type": "object", "properties": {"id": {"title": "Id", "type": "string", "readOnly": true}, "uuid": {"title": "Uuid", "type": "string", "readOnly": true}, "upload_date": {"title": "Upload date", "type": "string", "readOnly": true}, "thumbnail": {"title": "Thumbnail", "type": "string", "readOnly": true}, "file_description": {"title": "File description", "description": "File Description", "type": "string", "maxLength": 200}, "file_name": {"title": "File name", "description": "Filename", "type": "string", "maxLength": 200, "minLength": 1}, "file_type": {"title": "File type", "description": "Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", "type": "string", "enum": ["jpg", "jpeg", "png", "gif", "pdf", "txt", "doc", "docx", "xls", "xlsx", "ppt", "pptx"]}, "file": {"title": "File", "type": "string", "readOnly": true, "format": "uri"}, "create_date": {"title": "Create date", "type": "string", "format": "date-time"}, "organization_uuid": {"title": "Organization UUID", "type": "string", "maxLength": 36}, "user_uuid": {"title": "User UUID", "type": "string", "maxLength": 36}, "contact_uuid": {"title": "Contact UUID", "type": "string", "maxLength": 36}, "workflowlevel1_uuids": {"description": "List of Workflowlevel1 UUIDs", "type": "array", "items": {"title": "Workflowlevel1 uuids", "type": "string", "maxLength": 36, "minLength": 1}}, "workflowlevel2_uuids": {"description": "List of Workflowlevel2 UUIDs", "type": "array", "items": {"title": "Workflowlevel2 uuids", "type": "string", "maxLength": 36, "minLength": 1}}}}}} \ No newline at end of file + ] + } + ], + "paths":{ + "/documents/":{ + "get":{ + "operationId":"documents_list", + "description":"Documents.", + "parameters":[ + { + "name":"file_type", + "in":"query", + "description":"", + "required":false, + "type":"string" + }, + { + "name":"contact_uuid", + "in":"query", + "description":"", + "required":false, + "type":"string" + }, + { + "name":"ordering", + "in":"query", + "description":"Which field to use when ordering the results.", + "required":false, + "type":"string" + }, + { + "name":"cursor", + "in":"query", + "description":"The pagination cursor value.", + "required":false, + "type":"string" + }, + { + "name":"page_size", + "in":"query", + "description":"Number of results to return per page.", + "required":false, + "type":"integer" + }, + { + "name":"workflowlevel1_uuid", + "in":"query", + "description":"Filter by workflowlevel1_uuid.", + "type":"string" + }, + { + "name":"workflowlevel2_uuid", + "in":"query", + "description":"Filter by workflowlevel2_uuid.", + "type":"string" + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "required":[ + "results" + ], + "type":"object", + "properties":{ + "next":{ + "type":"string", + "format":"uri" + }, + "previous":{ + "type":"string", + "format":"uri" + }, + "results":{ + "type":"array", + "items":{ + "$ref":"#/definitions/Document" + } + } + } + } + } + }, + "tags":[ + "documents" + ] + }, + "post":{ + "operationId":"documents_create", + "description":"Documents.", + "parameters":[ + { + "name":"id", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"uuid", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"upload_date", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"thumbnail", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"file_description", + "in":"formData", + "description":"File Description", + "required":false, + "type":"string", + "maxLength":200 + }, + { + "name":"file_name", + "in":"formData", + "description":"Filename", + "required":true, + "type":"string", + "maxLength":200, + "minLength":1 + }, + { + "name":"file_type", + "in":"formData", + "description":"Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", + "required":false, + "type":"string", + "enum":[ + "jpg", + "jpeg", + "png", + "gif", + "pdf", + "txt", + "doc", + "docx", + "xls", + "xlsx", + "ppt", + "pptx" + ] + }, + { + "name":"file", + "in":"formData", + "required":false, + "type":"file" + }, + { + "name":"create_date", + "in":"formData", + "required":false, + "type":"string", + "format":"date-time" + }, + { + "name":"organization_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"user_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"contact_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"workflowlevel1_uuids", + "in":"formData", + "description":"List of Workflowlevel1 UUIDs", + "required":false, + "type":"array", + "items":{ + "type":"string", + "maxLength":36, + "minLength":1 + } + }, + { + "name":"workflowlevel2_uuids", + "in":"formData", + "description":"List of Workflowlevel2 UUIDs", + "required":false, + "type":"array", + "items":{ + "type":"string", + "maxLength":36, + "minLength":1 + } + } + ], + "responses":{ + "201":{ + "description":"", + "schema":{ + "$ref":"#/definitions/Document" + } + } + }, + "tags":[ + "documents" + ] + }, + "parameters":[ + + ] + }, + "/documents/{documents_id}/":{ + "get":{ + "operationId":"documents_read", + "description":"Documents.", + "parameters":[ + + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/Document" + } + } + }, + "tags":[ + "documents" + ] + }, + "put":{ + "operationId":"documents_update", + "description":"Documents.", + "parameters":[ + { + "name":"id", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"uuid", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"upload_date", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"thumbnail", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"file_description", + "in":"formData", + "description":"File Description", + "required":false, + "type":"string", + "maxLength":200 + }, + { + "name":"file_name", + "in":"formData", + "description":"Filename", + "required":true, + "type":"string", + "maxLength":200, + "minLength":1 + }, + { + "name":"file_type", + "in":"formData", + "description":"Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", + "required":false, + "type":"string", + "enum":[ + "jpg", + "jpeg", + "png", + "gif", + "pdf", + "txt", + "doc", + "docx", + "xls", + "xlsx", + "ppt", + "pptx" + ] + }, + { + "name":"file", + "in":"formData", + "required":false, + "type":"file" + }, + { + "name":"create_date", + "in":"formData", + "required":false, + "type":"string", + "format":"date-time" + }, + { + "name":"organization_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"user_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"contact_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"workflowlevel1_uuids", + "in":"formData", + "description":"List of Workflowlevel1 UUIDs", + "required":false, + "type":"array", + "items":{ + "type":"string", + "maxLength":36, + "minLength":1 + } + }, + { + "name":"workflowlevel2_uuids", + "in":"formData", + "description":"List of Workflowlevel2 UUIDs", + "required":false, + "type":"array", + "items":{ + "type":"string", + "maxLength":36, + "minLength":1 + } + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/Document" + } + } + }, + "tags":[ + "documents" + ] + }, + "patch":{ + "operationId":"documents_partial_update", + "description":"Documents.", + "parameters":[ + { + "name":"id", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"uuid", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"upload_date", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"thumbnail", + "in":"formData", + "required":false, + "type":"string" + }, + { + "name":"file_description", + "in":"formData", + "description":"File Description", + "required":false, + "type":"string", + "maxLength":200 + }, + { + "name":"file_name", + "in":"formData", + "description":"Filename", + "required":true, + "type":"string", + "maxLength":200, + "minLength":1 + }, + { + "name":"file_type", + "in":"formData", + "description":"Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", + "required":false, + "type":"string", + "enum":[ + "jpg", + "jpeg", + "png", + "gif", + "pdf", + "txt", + "doc", + "docx", + "xls", + "xlsx", + "ppt", + "pptx" + ] + }, + { + "name":"file", + "in":"formData", + "required":false, + "type":"file" + }, + { + "name":"create_date", + "in":"formData", + "required":false, + "type":"string", + "format":"date-time" + }, + { + "name":"organization_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"user_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"contact_uuid", + "in":"formData", + "required":false, + "type":"string", + "maxLength":36 + }, + { + "name":"workflowlevel1_uuids", + "in":"formData", + "description":"List of Workflowlevel1 UUIDs", + "required":false, + "type":"array", + "items":{ + "type":"string", + "maxLength":36, + "minLength":1 + } + }, + { + "name":"workflowlevel2_uuids", + "in":"formData", + "description":"List of Workflowlevel2 UUIDs", + "required":false, + "type":"array", + "items":{ + "type":"string", + "maxLength":36, + "minLength":1 + } + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/Document" + } + } + }, + "tags":[ + "documents" + ] + }, + "delete":{ + "operationId":"documents_delete", + "description":"Documents.", + "parameters":[ + + ], + "responses":{ + "204":{ + "description":"" + } + }, + "tags":[ + "documents" + ] + }, + "parameters":[ + { + "name":"id", + "in":"path", + "description":"A unique integer value identifying this document.", + "required":true, + "type":"integer" + } + ] + }, + "/file/{file_id}/":{ + "get":{ + "operationId":"file_read", + "description":"", + "parameters":[ + + ], + "responses":{ + "200":{ + "description":"" + } + }, + "tags":[ + "file" + ] + }, + "parameters":[ + { + "name":"id", + "in":"path", + "required":true, + "type":"string" + } + ] + }, + "/thumbnail/{thumbnail_id}/":{ + "get":{ + "operationId":"thumbnail_read", + "description":"", + "parameters":[ + + ], + "responses":{ + "200":{ + "description":"" + } + }, + "tags":[ + "thumbnail" + ] + }, + "parameters":[ + { + "name":"id", + "in":"path", + "required":true, + "type":"string" + } + ] + } + }, + "definitions":{ + "Document":{ + "required":[ + "file_name" + ], + "type":"object", + "properties":{ + "id":{ + "title":"Id", + "type":"string", + "readOnly":true + }, + "uuid":{ + "title":"Uuid", + "type":"string", + "readOnly":true + }, + "upload_date":{ + "title":"Upload date", + "type":"string", + "readOnly":true + }, + "thumbnail":{ + "title":"Thumbnail", + "type":"string", + "readOnly":true + }, + "file_description":{ + "title":"File description", + "description":"File Description", + "type":"string", + "maxLength":200 + }, + "file_name":{ + "title":"File name", + "description":"Filename", + "type":"string", + "maxLength":200, + "minLength":1 + }, + "file_type":{ + "title":"File type", + "description":"Allowed File Types: jpg, jpeg, png, gif, pdf, txt, doc, docx, xls, xlsx, ppt, pptx", + "type":"string", + "enum":[ + "jpg", + "jpeg", + "png", + "gif", + "pdf", + "txt", + "doc", + "docx", + "xls", + "xlsx", + "ppt", + "pptx" + ] + }, + "file":{ + "title":"File", + "type":"string", + "readOnly":true, + "format":"uri" + }, + "create_date":{ + "title":"Create date", + "type":"string", + "format":"date-time" + }, + "organization_uuid":{ + "title":"Organization UUID", + "type":"string", + "maxLength":36 + }, + "user_uuid":{ + "title":"User UUID", + "type":"string", + "maxLength":36 + }, + "contact_uuid":{ + "title":"Contact UUID", + "type":"string", + "maxLength":36 + }, + "workflowlevel1_uuids":{ + "description":"List of Workflowlevel1 UUIDs", + "type":"array", + "items":{ + "title":"Workflowlevel1 uuids", + "type":"string", + "maxLength":36, + "minLength":1 + } + }, + "workflowlevel2_uuids":{ + "description":"List of Workflowlevel2 UUIDs", + "type":"array", + "items":{ + "title":"Workflowlevel2 uuids", + "type":"string", + "maxLength":36, + "minLength":1 + } + } + } + } + } +} \ No newline at end of file diff --git a/gateway/tests/fixtures/swagger_location.json b/gateway/tests/fixtures/swagger_location.json index 61efcc3d..0ec5e9ee 100644 --- a/gateway/tests/fixtures/swagger_location.json +++ b/gateway/tests/fixtures/swagger_location.json @@ -1,2 +1,864 @@ +{ + "swagger":"2.0", + "info":{ + "title":"Location Service API", + "description":"The location service enables your application to store and group international addresses.", + "version":"latest" + }, + "host":"locationservice:8080", + "schemes":[ + "http" + ], + "basePath":"/", + "consumes":[ + "application/json" + ], + "produces":[ + "application/json" + ], + "securityDefinitions":{ + "Basic":{ + "type":"basic" + } + }, + "security":[ + { + "Basic":[ -{"swagger": "2.0", "info": {"title": "Location Service API", "description": "The location service enables your application to store and group international addresses.", "version": "latest"}, "host": "locationservice:8080", "schemes": ["http"], "basePath": "/", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"Basic": {"type": "basic"}}, "security": [{"Basic": []}], "paths": {"/profiletypes/": {"get": {"operationId": "profiletypes_list", "summary": "Retrieves a list of ProfileTypes.", "description": "Retrieves a list of ProfileTypes.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri"}, "previous": {"type": "string", "format": "uri"}, "results": {"type": "array", "items": {"$ref": "#/definitions/ProfileType"}}}}}}, "tags": ["profiletypes"]}, "post": {"operationId": "profiletypes_create", "summary": "Creates a new ProfileType.", "description": "Creates a new ProfileType.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/ProfileType"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/ProfileType"}}}, "tags": ["profiletypes"]}, "parameters": []}, "/profiletypes/{id}/": {"get": {"operationId": "profiletypes_read", "summary": "Retrieves a ProfileType by its ID.", "description": "Retrieves a ProfileType by its ID.", "parameters": [], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/ProfileType"}}}, "tags": ["profiletypes"]}, "put": {"operationId": "profiletypes_update", "summary": "Updates the ProfileType with the given ID (all fields).", "description": "Updates the ProfileType with the given ID (all fields).", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/ProfileType"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/ProfileType"}}}, "tags": ["profiletypes"]}, "patch": {"operationId": "profiletypes_partial_update", "summary": "Updates the ProfileType with the given ID (only specified fields).", "description": "Updates the ProfileType with the given ID (only specified fields).", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/ProfileType"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/ProfileType"}}}, "tags": ["profiletypes"]}, "delete": {"operationId": "profiletypes_delete", "summary": "Deletes the ProfileType with the given ID.", "description": "Deletes the ProfileType with the given ID.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["profiletypes"]}, "parameters": [{"name": "id", "in": "path", "description": "A unique integer value identifying this profile type.", "required": true, "type": "integer"}]}, "/siteprofiles/": {"get": {"operationId": "siteprofiles_list", "summary": "Retrieves a list of SiteProfiles.", "description": "Retrieves a list of SiteProfiles.", "parameters": [{"name": "profiletype__id", "in": "query", "description": "", "required": false, "type": "number"}, {"name": "workflowlevel2_uuid", "in": "query", "description": "Multiple values may be separated by commas.", "required": false, "type": "string"}, {"name": "search", "in": "query", "description": "A search term.", "required": false, "type": "string"}, {"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri"}, "previous": {"type": "string", "format": "uri"}, "results": {"type": "array", "items": {"$ref": "#/definitions/SiteProfile"}}}}}}, "tags": ["siteprofiles"]}, "post": {"operationId": "siteprofiles_create", "summary": "Creates a new SiteProfile.", "description": "Creates a new SiteProfile.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/SiteProfile"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/SiteProfile"}}}, "tags": ["siteprofiles"]}, "parameters": []}, "/siteprofiles/{uuid}/": {"get": {"operationId": "siteprofiles_read", "summary": "Retrieves a SiteProfile by its UUID.", "description": "Retrieves a SiteProfile by its UUID.", "parameters": [], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/SiteProfile"}}}, "tags": ["siteprofiles"]}, "put": {"operationId": "siteprofiles_update", "summary": "Updates the SiteProfile with the given UUID (all fields).", "description": "Updates the SiteProfile with the given UUID (all fields).", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/SiteProfile"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/SiteProfile"}}}, "tags": ["siteprofiles"]}, "patch": {"operationId": "siteprofiles_partial_update", "summary": "Updates the SiteProfile with the given UUID (only specified fields).", "description": "Updates the SiteProfile with the given UUID (only specified fields).", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/SiteProfile"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/SiteProfile"}}}, "tags": ["siteprofiles"]}, "delete": {"operationId": "siteprofiles_delete", "summary": "Deletes the SiteProfile with the given UUID.", "description": "Deletes the SiteProfile with the given UUID.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["siteprofiles"]}, "parameters": [{"name": "uuid", "in": "path", "description": "UUID of the SiteProfile.", "required": true, "type": "string", "format": "uuid"}]}}, "definitions": {"ProfileType": {"required": ["name"], "type": "object", "properties": {"id": {"title": "ID", "type": "integer", "readOnly": true}, "name": {"title": "Name", "description": "Name of the ProfileType.", "type": "string", "maxLength": 255, "minLength": 1}, "organization_uuid": {"title": "Organization UUID", "description": "ID of the organization that has access to the ProfileType.", "type": "string", "format": "uuid", "readOnly": true}, "create_date": {"title": "Create date", "description": "Timestamp when the SiteProfile was created (automatically set, ISO format).", "type": "string", "format": "date-time", "readOnly": true}, "edit_date": {"title": "Edit date", "description": "Timestamp when the SiteProfile was last modified (automatically set, ISO format).", "type": "string", "format": "date-time", "readOnly": true}}}, "SiteProfile": {"type": "object", "properties": {"uuid": {"title": "Uuid", "description": "UUID of the SiteProfile.", "type": "string", "format": "uuid", "readOnly": true}, "country": {"title": "Country", "type": "string", "enum": ["", "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "CV", "KH", "CM", "CA", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "SZ", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "KP", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "KR", "SS", "ES", "LK", "SD", "SR", "SJ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "UM", "US", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"]}, "organization_uuid": {"title": "Organization uuid", "description": "Any value sent will be ignored and will be just taken from JWT payload", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Name of the SiteProfile.", "type": "string", "maxLength": 255}, "address_line1": {"title": "Address line 1", "description": "First line of the SiteProfile's address, like street and number.", "type": "string", "maxLength": 255}, "address_line2": {"title": "Address line 2", "description": "Second line of the SiteProfile's address", "type": "string", "maxLength": 255}, "address_line3": {"title": "Address line 3", "description": "Third line of the SiteProfile's address", "type": "string", "maxLength": 255}, "address_line4": {"title": "Address line 4", "description": "Fourth line of the SiteProfile's address", "type": "string", "maxLength": 255}, "postcode": {"title": "Postcode", "description": "Postal code where the SiteProfile is located", "type": "string", "maxLength": 20}, "city": {"title": "City", "description": "City where the SiteProfile is located", "type": "string", "maxLength": 85}, "administrative_level1": {"title": "Administrative division (First level)", "type": "string", "maxLength": 255}, "administrative_level2": {"title": "Administrative division (Second level)", "type": "string", "maxLength": 255}, "administrative_level3": {"title": "Administrative division (Third level)", "type": "string", "maxLength": 255}, "administrative_level4": {"title": "Administrative division (Fourth level)", "type": "string", "maxLength": 255}, "latitude": {"title": "Latitude", "description": "Latitude coordinates of the SiteProfile (decimal format)", "type": "string", "format": "decimal"}, "longitude": {"title": "Longitude", "description": "Longitude coordinates of the SiteProfile (decimal format)", "type": "string", "format": "decimal"}, "notes": {"title": "Notes", "description": "Textual notes for the SiteProfile", "type": "string"}, "create_date": {"title": "Create date", "description": "Timestamp when the SiteProfile was created (set automatically, ISO format)", "type": "string", "format": "date-time", "readOnly": true}, "edit_date": {"title": "Edit date", "description": "Timestamp when the SiteProfile was last modified (set automatically, ISO format)", "type": "string", "format": "date-time", "readOnly": true}, "workflowlevel2_uuid": {"description": "Array of WorkflowLevel2s associated with the SiteProfile.", "type": "array", "items": {"title": "Workflowlevel2 uuid", "type": "string", "maxLength": 36, "minLength": 1}, "x-nullable": true}, "profiletype": {"title": "Profiletype", "description": "UUID of the related ProfileType of the SiteProfile.", "type": "integer", "x-nullable": true}}}}} \ No newline at end of file + ] + } + ], + "paths":{ + "/profiletypes/":{ + "get":{ + "operationId":"profiletypes_list", + "summary":"Retrieves a list of ProfileTypes.", + "description":"Retrieves a list of ProfileTypes.", + "parameters":[ + { + "name":"ordering", + "in":"query", + "description":"Which field to use when ordering the results.", + "required":false, + "type":"string" + }, + { + "name":"limit", + "in":"query", + "description":"Number of results to return per page.", + "required":false, + "type":"integer" + }, + { + "name":"offset", + "in":"query", + "description":"The initial index from which to return the results.", + "required":false, + "type":"integer" + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "required":[ + "count", + "results" + ], + "type":"object", + "properties":{ + "count":{ + "type":"integer" + }, + "next":{ + "type":"string", + "format":"uri" + }, + "previous":{ + "type":"string", + "format":"uri" + }, + "results":{ + "type":"array", + "items":{ + "$ref":"#/definitions/ProfileType" + } + } + } + } + } + }, + "tags":[ + "profiletypes" + ] + }, + "post":{ + "operationId":"profiletypes_create", + "summary":"Creates a new ProfileType.", + "description":"Creates a new ProfileType.", + "parameters":[ + { + "name":"data", + "in":"body", + "required":true, + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + ], + "responses":{ + "201":{ + "description":"", + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + }, + "tags":[ + "profiletypes" + ] + }, + "parameters":[ + + ] + }, + "/profiletypes/{id}/":{ + "get":{ + "operationId":"profiletypes_read", + "summary":"Retrieves a ProfileType by its ID.", + "description":"Retrieves a ProfileType by its ID.", + "parameters":[ + + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + }, + "tags":[ + "profiletypes" + ] + }, + "put":{ + "operationId":"profiletypes_update", + "summary":"Updates the ProfileType with the given ID (all fields).", + "description":"Updates the ProfileType with the given ID (all fields).", + "parameters":[ + { + "name":"data", + "in":"body", + "required":true, + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + }, + "tags":[ + "profiletypes" + ] + }, + "patch":{ + "operationId":"profiletypes_partial_update", + "summary":"Updates the ProfileType with the given ID (only specified fields).", + "description":"Updates the ProfileType with the given ID (only specified fields).", + "parameters":[ + { + "name":"data", + "in":"body", + "required":true, + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/ProfileType" + } + } + }, + "tags":[ + "profiletypes" + ] + }, + "delete":{ + "operationId":"profiletypes_delete", + "summary":"Deletes the ProfileType with the given ID.", + "description":"Deletes the ProfileType with the given ID.", + "parameters":[ + + ], + "responses":{ + "204":{ + "description":"" + } + }, + "tags":[ + "profiletypes" + ] + }, + "parameters":[ + { + "name":"id", + "in":"path", + "description":"A unique integer value identifying this profile type.", + "required":true, + "type":"integer" + } + ] + }, + "/siteprofiles/":{ + "get":{ + "operationId":"siteprofiles_list", + "summary":"Retrieves a list of SiteProfiles.", + "description":"Retrieves a list of SiteProfiles.", + "parameters":[ + { + "name":"profiletype__id", + "in":"query", + "description":"", + "required":false, + "type":"number" + }, + { + "name":"workflowlevel2_uuid", + "in":"query", + "description":"Multiple values may be separated by commas.", + "required":false, + "type":"string" + }, + { + "name":"search", + "in":"query", + "description":"A search term.", + "required":false, + "type":"string" + }, + { + "name":"ordering", + "in":"query", + "description":"Which field to use when ordering the results.", + "required":false, + "type":"string" + }, + { + "name":"limit", + "in":"query", + "description":"Number of results to return per page.", + "required":false, + "type":"integer" + }, + { + "name":"offset", + "in":"query", + "description":"The initial index from which to return the results.", + "required":false, + "type":"integer" + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "required":[ + "count", + "results" + ], + "type":"object", + "properties":{ + "count":{ + "type":"integer" + }, + "next":{ + "type":"string", + "format":"uri" + }, + "previous":{ + "type":"string", + "format":"uri" + }, + "results":{ + "type":"array", + "items":{ + "$ref":"#/definitions/SiteProfile" + } + } + } + } + } + }, + "tags":[ + "siteprofiles" + ] + }, + "post":{ + "operationId":"siteprofiles_create", + "summary":"Creates a new SiteProfile.", + "description":"Creates a new SiteProfile.", + "parameters":[ + { + "name":"data", + "in":"body", + "required":true, + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + ], + "responses":{ + "201":{ + "description":"", + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + }, + "tags":[ + "siteprofiles" + ] + }, + "parameters":[ + + ] + }, + "/siteprofiles/{siteprofiles_uuid}/":{ + "get":{ + "operationId":"siteprofiles_read", + "summary":"Retrieves a SiteProfile by its UUID.", + "description":"Retrieves a SiteProfile by its UUID.", + "parameters":[ + + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + }, + "tags":[ + "siteprofiles" + ] + }, + "put":{ + "operationId":"siteprofiles_update", + "summary":"Updates the SiteProfile with the given UUID (all fields).", + "description":"Updates the SiteProfile with the given UUID (all fields).", + "parameters":[ + { + "name":"data", + "in":"body", + "required":true, + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + }, + "tags":[ + "siteprofiles" + ] + }, + "patch":{ + "operationId":"siteprofiles_partial_update", + "summary":"Updates the SiteProfile with the given UUID (only specified fields).", + "description":"Updates the SiteProfile with the given UUID (only specified fields).", + "parameters":[ + { + "name":"data", + "in":"body", + "required":true, + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + ], + "responses":{ + "200":{ + "description":"", + "schema":{ + "$ref":"#/definitions/SiteProfile" + } + } + }, + "tags":[ + "siteprofiles" + ] + }, + "delete":{ + "operationId":"siteprofiles_delete", + "summary":"Deletes the SiteProfile with the given UUID.", + "description":"Deletes the SiteProfile with the given UUID.", + "parameters":[ + + ], + "responses":{ + "204":{ + "description":"" + } + }, + "tags":[ + "siteprofiles" + ] + }, + "parameters":[ + { + "name":"uuid", + "in":"path", + "description":"UUID of the SiteProfile.", + "required":true, + "type":"string", + "format":"uuid" + } + ] + } + }, + "definitions":{ + "ProfileType":{ + "required":[ + "name" + ], + "type":"object", + "properties":{ + "id":{ + "title":"ID", + "type":"integer", + "readOnly":true + }, + "name":{ + "title":"Name", + "description":"Name of the ProfileType.", + "type":"string", + "maxLength":255, + "minLength":1 + }, + "organization_uuid":{ + "title":"Organization UUID", + "description":"ID of the organization that has access to the ProfileType.", + "type":"string", + "format":"uuid", + "readOnly":true + }, + "create_date":{ + "title":"Create date", + "description":"Timestamp when the SiteProfile was created (automatically set, ISO format).", + "type":"string", + "format":"date-time", + "readOnly":true + }, + "edit_date":{ + "title":"Edit date", + "description":"Timestamp when the SiteProfile was last modified (automatically set, ISO format).", + "type":"string", + "format":"date-time", + "readOnly":true + } + } + }, + "SiteProfile":{ + "type":"object", + "properties":{ + "uuid":{ + "title":"Uuid", + "description":"UUID of the SiteProfile.", + "type":"string", + "format":"uuid", + "readOnly":true + }, + "country":{ + "title":"Country", + "type":"string", + "enum":[ + "", + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MK", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ] + }, + "organization_uuid":{ + "title":"Organization uuid", + "description":"Any value sent will be ignored and will be just taken from JWT payload", + "type":"string", + "minLength":1 + }, + "name":{ + "title":"Name", + "description":"Name of the SiteProfile.", + "type":"string", + "maxLength":255 + }, + "address_line1":{ + "title":"Address line 1", + "description":"First line of the SiteProfile's address, like street and number.", + "type":"string", + "maxLength":255 + }, + "address_line2":{ + "title":"Address line 2", + "description":"Second line of the SiteProfile's address", + "type":"string", + "maxLength":255 + }, + "address_line3":{ + "title":"Address line 3", + "description":"Third line of the SiteProfile's address", + "type":"string", + "maxLength":255 + }, + "address_line4":{ + "title":"Address line 4", + "description":"Fourth line of the SiteProfile's address", + "type":"string", + "maxLength":255 + }, + "postcode":{ + "title":"Postcode", + "description":"Postal code where the SiteProfile is located", + "type":"string", + "maxLength":20 + }, + "city":{ + "title":"City", + "description":"City where the SiteProfile is located", + "type":"string", + "maxLength":85 + }, + "administrative_level1":{ + "title":"Administrative division (First level)", + "type":"string", + "maxLength":255 + }, + "administrative_level2":{ + "title":"Administrative division (Second level)", + "type":"string", + "maxLength":255 + }, + "administrative_level3":{ + "title":"Administrative division (Third level)", + "type":"string", + "maxLength":255 + }, + "administrative_level4":{ + "title":"Administrative division (Fourth level)", + "type":"string", + "maxLength":255 + }, + "latitude":{ + "title":"Latitude", + "description":"Latitude coordinates of the SiteProfile (decimal format)", + "type":"string", + "format":"decimal" + }, + "longitude":{ + "title":"Longitude", + "description":"Longitude coordinates of the SiteProfile (decimal format)", + "type":"string", + "format":"decimal" + }, + "notes":{ + "title":"Notes", + "description":"Textual notes for the SiteProfile", + "type":"string" + }, + "create_date":{ + "title":"Create date", + "description":"Timestamp when the SiteProfile was created (set automatically, ISO format)", + "type":"string", + "format":"date-time", + "readOnly":true + }, + "edit_date":{ + "title":"Edit date", + "description":"Timestamp when the SiteProfile was last modified (set automatically, ISO format)", + "type":"string", + "format":"date-time", + "readOnly":true + }, + "workflowlevel2_uuid":{ + "description":"Array of WorkflowLevel2s associated with the SiteProfile.", + "type":"array", + "items":{ + "title":"Workflowlevel2 uuid", + "type":"string", + "maxLength":36, + "minLength":1 + }, + "x-nullable":true + }, + "profiletype":{ + "title":"Profiletype", + "description":"UUID of the related ProfileType of the SiteProfile.", + "type":"integer", + "x-nullable":true + } + } + } + } +} \ No newline at end of file diff --git a/gateway/tests/test_views.py b/gateway/tests/test_views.py index 9a899fec..48542b1d 100755 --- a/gateway/tests/test_views.py +++ b/gateway/tests/test_views.py @@ -19,7 +19,7 @@ @httpretty.activate def test_make_service_request_data_and_raw(auth_api_client, logic_module, content, content_type): url = f'/{logic_module.endpoint_name}/thumbnail/1/' - print('url', url , auth_api_client, logic_module, content, content_type) + # mock requests with open(os.path.join(CURRENT_PATH, 'fixtures/swagger_documents.json')) as r: swagger_body = r.read() @@ -150,7 +150,7 @@ def test_make_service_request_with_datamesh_detailed(auth_api_client, datamesh): data = response.json() assert relationship.key in data assert len(data[relationship.key]) == 1 - assert data[relationship.key][0]['id'] == 1 + assert data[relationship.key][0][list(data[relationship.key][0].keys())[0]] == 1 @pytest.mark.django_db() From bd79c328eaae0da05247e06924581a34c4c9ef1a Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Fri, 24 Jun 2022 13:21:46 +0530 Subject: [PATCH 055/160] GitHub action configuration (#67) * GitHub action configuration * Updated prod-build GCR path * Updated prod-build slack message * Updated prod-build mail message --- .github/workflows/codeql-analysis.yml | 33 -------- .github/workflows/dev-build.yml | 27 +++++++ .github/workflows/prod-build.yml | 82 ++++++++++++++++++++ .github/workflows/release.yml | 107 -------------------------- .github/workflows/review.yml | 94 ---------------------- .github/workflows/unit_test.yml | 26 +++++++ 6 files changed, 135 insertions(+), 234 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .github/workflows/dev-build.yml create mode 100644 .github/workflows/prod-build.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/review.yml create mode 100644 .github/workflows/unit_test.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 773fc873..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ master ] - schedule: - - cron: '28 15 * * 1' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: [ 'javascript', 'python' ] - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml new file mode 100644 index 00000000..51f0a569 --- /dev/null +++ b/.github/workflows/dev-build.yml @@ -0,0 +1,27 @@ +name: Build and Push to Development + +on: + push: + branches: + - master +jobs: + build: + name: Build and Push to GCR + runs-on: ubuntu-latest + env: + IMAGE_NAME: gcr.io/dev-buildly/insights/dev/buildly-core + steps: + - uses: actions/checkout@v2 + + - name: Docker login + uses: docker/login-action@v1 + with: + registry: gcr.io + username: _json_key + password: ${{ secrets.GCR_JSON_KEY }} + + - name: Build docker image + run: docker build -t $IMAGE_NAME:latest . + + - name: Push to Google Container Registry + run: docker push $IMAGE_NAME:latest diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml new file mode 100644 index 00000000..95f8d433 --- /dev/null +++ b/.github/workflows/prod-build.yml @@ -0,0 +1,82 @@ +name: Build and Push Docker Image to Prod + +on: + push: + branches: + - prod + +jobs: + build: + name: Build and Push image to GCR + runs-on: ubuntu-latest + env: + IMAGE_NAME: gcr.io/dev-buildly/insights/prod/buildly-core + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + # auto generate tag from label defined in Dockerfile + - uses: butlerlogic/action-autotag@stable + id: tag_version + with: + GITHUB_TOKEN: "${{ secrets.RELEASE_TOKEN }}" + strategy: docker + tag_prefix: "v" + + # Create release notes + - name: Build changelog + id: build_changelog + uses: mikepenz/release-changelog-builder-action@main + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} + + # Create release + - name: Create Release + id: create_release + uses: actions/create-release@latest + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} + with: + tag_name: ${{ steps.tag_version.outputs.tagname }} + release_name: Release ${{ steps.tag_version.outputs.tagname }} + body: ${{ steps.build_changelog.outputs.changelog }} + draft: false + prerelease: false + + # Login to docker + - name: Docker login + uses: docker/login-action@v1 + with: + registry: gcr.io + username: _json_key + password: ${{ secrets.GCR_JSON_KEY }} + + # Build docker image + - name: Build docker image + run: docker build -t $IMAGE_NAME:latest . + + # Push docker image to GCR + - name: Push to Google Container Registry + run: docker push $IMAGE_NAME:latest + + # Send message on Slack + - name: Slack Notification + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_MESSAGE: 'Production Docker Image of buildly core pushed to Google Container Registry Successfully' + MSG_MINIMAL: true + + # Send email alert + - name: Email Alert + uses: dawidd6/action-send-mail@v3 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{ secrets.MAIL_USERNAME }} + password: ${{ secrets.MAIL_PASSWORD }} + subject: Github Actions Build and Push job alert + to: ${{ secrets.RECIPIENT_EMAIL }} + from: ${{ secrets.SENDER_EMAIL }} + body: Production Docker Image of buildly core pushed to Google Container Registry Successfully \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index ddcf1e10..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: Semantic Release - -on: - push: - branches: - - master - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Semantic Release - uses: buildlyio/semantic-release-action@v2 - id: semantic - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - - name: Start OpenLDAP Server - run: | - docker run -p 389:389 -p 636:636 --name openldap_server -d osixia/openldap:1.3.0 - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install libsasl2-dev libldap2-dev libssl-dev - sudo touch /var/log/buildly.log - sudo chown runner:docker /var/log/buildly.log - cat requirements/base.txt | grep "^Django==\|^psycopg2" | xargs pip install - pip install -r requirements/ci.txt - - - name: Lint & Vulnerability check - run: | - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - bandit -r . -ll - - - name: Test with pytest - run: | - pytest - env: - ALLOWED_HOSTS: "*" - CORS_ORIGIN_WHITELIST: "*" - DATABASE_ENGINE: "postgresql" - DATABASE_NAME: "buildly_api" - DATABASE_USER: "root" - DATABASE_PASSWORD: "root" - DATABASE_HOST: "localhost" - DATABASE_PORT: "5432" - DEFAULT_ORG: "Default Organization" - DJANGO_SETTINGS_MODULE: "buildly.settings.production" - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "/complete/github" - SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URL: "/complete/google-oauth2" - SOCIAL_AUTH_MICROSOFT_GRAPH_REDIRECT_URL: "/complete/microsoft-graph" - JWT_ISSUER: "buildly" - JWT_PRIVATE_KEY_RSA_BUILDLY: |- - -----BEGIN RSA PRIVATE KEY----- - MIIBOwIBAAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRBqhqvJu1hKPYn9HYd75c0 - gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQJAe5z5096oyeqGX6J+RGGx - 11yuDJ7J+0N4tthUHSWWUtgkd19NvmTM/mVLmPCzZHgNUT+aWUKsQ84+jhru/NQD - 0QIhAOHOzFmjxjTAR1jspn6YtJBKQB40tvT6WEvm2mKm0aD7AiEAyRPwXyZf3JT+ - M6Ui0Mubs7Qb/E4g1d/kVL+o/XoZC6cCIQC+nKzPtnooKW+Q1yOslgdGDgeV9/XB - Ulqap+MNh7hJZQIgZNaM+wqhlFtbx8aO2SrioJI4XqVHrjojpaSgOM3cdY0CIQDB - Q6ckOaDV937acmWuiZhxuG2euNLwNbMldtCV5ADo/g== - -----END RSA PRIVATE KEY----- - JWT_PUBLIC_KEY_RSA_BUILDLY: |- - -----BEGIN PUBLIC KEY----- - MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRB - qhqvJu1hKPYn9HYd75c0gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQ== - -----END PUBLIC KEY----- - SECRET_KEY: "nothing" - OAUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" - OAUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8EzjKqN6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJ" - DOCKER_REPO: "buildly/buildly" - LDAP_ENABLE: "True" - LDAP_HOST: "ldap://localhost:389" - LDAP_USERNAME: "cn=admin,dc=example,dc=org" - LDAP_PASSWORD: "admin" - LDAP_BASE_DN: "dc=example,dc=org" - - - name: Docker Build & Release - if: steps.semantic.outputs.new_release_published == 'true' - run: | - echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - docker build --tag ${BUILDLY_IMAGE} . - docker push ${BUILDLY_IMAGE} - env: - BUILDLY_IMAGE: buildly/buildly:v${{ steps.semantic.outputs.new_release_version }} - - # postgres - services: - postgres: - image: postgres:9.6 - env: - POSTGRES_USER: root - POSTGRES_PASSWORD: root - POSTGRES_DB: buildly_api - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml deleted file mode 100644 index e13e6560..00000000 --- a/.github/workflows/review.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Review application - -on: [pull_request] - -jobs: - review: - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@v2 - - - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - - name: Start OpenLDAP Server - id: docker - run: | - docker run -p 389:389 -p 636:636 --name openldap_server -d osixia/openldap:1.3.0 - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install libsasl2-dev libldap2-dev libssl-dev - sudo touch /var/log/buildly.log - sudo chown runner:docker /var/log/buildly.log - cat requirements/base.txt | grep "^Django==\|^psycopg2" | xargs pip install - pip install -r requirements/ci.txt - - - name: Lint & Vulnerability check - run: | - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - bandit -r . -ll - - - name: Test with pytest - run: | - pytest - env: - ALLOWED_HOSTS: "*" - CORS_ORIGIN_WHITELIST: "*" - DATABASE_ENGINE: "postgresql" - DATABASE_NAME: "buildly_api" - DATABASE_USER: "root" - DATABASE_PASSWORD: "root" - DATABASE_HOST: "localhost" - DATABASE_PORT: "5432" - DEFAULT_ORG: "Default Organization" - DJANGO_SETTINGS_MODULE: "buildly.settings.production" - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "/complete/github" - SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URL: "/complete/google-oauth2" - SOCIAL_AUTH_MICROSOFT_GRAPH_REDIRECT_URL: "/complete/microsoft-graph" - JWT_ISSUER: "buildly" - JWT_PRIVATE_KEY_RSA_BUILDLY: |- - -----BEGIN RSA PRIVATE KEY----- - MIIBOwIBAAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRBqhqvJu1hKPYn9HYd75c0 - gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQJAe5z5096oyeqGX6J+RGGx - 11yuDJ7J+0N4tthUHSWWUtgkd19NvmTM/mVLmPCzZHgNUT+aWUKsQ84+jhru/NQD - 0QIhAOHOzFmjxjTAR1jspn6YtJBKQB40tvT6WEvm2mKm0aD7AiEAyRPwXyZf3JT+ - M6Ui0Mubs7Qb/E4g1d/kVL+o/XoZC6cCIQC+nKzPtnooKW+Q1yOslgdGDgeV9/XB - Ulqap+MNh7hJZQIgZNaM+wqhlFtbx8aO2SrioJI4XqVHrjojpaSgOM3cdY0CIQDB - Q6ckOaDV937acmWuiZhxuG2euNLwNbMldtCV5ADo/g== - -----END RSA PRIVATE KEY----- - JWT_PUBLIC_KEY_RSA_BUILDLY: |- - -----BEGIN PUBLIC KEY----- - MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRB - qhqvJu1hKPYn9HYd75c0gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQ== - -----END PUBLIC KEY----- - SECRET_KEY: "nothing" - OAUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" - OAUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8EzjKqN6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJ" - DOCKER_REPO: "buildly/buildly" - LDAP_ENABLE: "True" - LDAP_HOST: "ldap://localhost:389" - LDAP_USERNAME: "cn=admin,dc=example,dc=org" - LDAP_PASSWORD: "admin" - LDAP_BASE_DN: "dc=example,dc=org" - - - name: docker build - run: | - docker build --tag buildly-core . - - # postgres! - services: - postgres: - image: postgres:9.6 - env: - POSTGRES_USER: root - POSTGRES_PASSWORD: root - POSTGRES_DB: buildly_api - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 \ No newline at end of file diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml new file mode 100644 index 00000000..123434e5 --- /dev/null +++ b/.github/workflows/unit_test.yml @@ -0,0 +1,26 @@ +name: Buildly Core Unit Test + +on: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + unit_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + + - name: Build the docker-compose stack + run: docker-compose build + + - name: Setup docker containers + run: docker-compose up -d + + - name: Check running containers + run: docker ps -a + + - name: Run unit test case + run: docker-compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/run-tests.sh --keepdb + + - name: Stop docker container + run: docker-compose down From 96e67028b60e373643b21ef9e1648a897d0b5a0e Mon Sep 17 00:00:00 2001 From: mthombare <83965396+mthombare@users.noreply.github.com> Date: Fri, 24 Jun 2022 15:54:15 +0530 Subject: [PATCH 056/160] Added Product Team as default user type (#65) --- core/migrations/0006_auto_20220620_0528.py | 18 ++++++++++++++++++ core/models.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 core/migrations/0006_auto_20220620_0528.py diff --git a/core/migrations/0006_auto_20220620_0528.py b/core/migrations/0006_auto_20220620_0528.py new file mode 100644 index 00000000..069617b6 --- /dev/null +++ b/core/migrations/0006_auto_20220620_0528.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.27 on 2022-06-20 05:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0005_organization_stripe_subscription_details'), + ] + + operations = [ + migrations.AlterField( + model_name='coreuser', + name='user_type', + field=models.CharField(blank=True, choices=[('Developer', 'Developer'), ('Product Team', 'Product Team')], default='Product Team', max_length=50, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 1823295c..a20b6e61 100644 --- a/core/models.py +++ b/core/models.py @@ -184,7 +184,7 @@ class CoreUser(AbstractUser): privacy_disclaimer_accepted = models.BooleanField(default=False) create_date = models.DateTimeField(default=timezone.now) edit_date = models.DateTimeField(null=True, blank=True) - user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES) + user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, default='Product Team') survey_status = models.BooleanField(default=False) class Meta: From e3cbd1739b41362caef183021a65b049316073ed Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Thu, 29 Sep 2022 11:53:18 +0530 Subject: [PATCH 057/160] Changes for email verification * changes for email verification * fix test case for coreuser registration --- buildly/settings/base.py | 6 +- buildly/settings/production.py | 2 +- ...rganization_stripe_subscription_details.py | 17 ++++ core/models.py | 1 - core/serializers.py | 89 ++++++++++--------- core/tests/test_coreuserview.py | 1 - core/tests/test_serializers.py | 1 - core/urls.py | 1 - core/views/__init__.py | 1 - core/views/coreuser.py | 20 ++++- core/views/stripe.py | 44 --------- docker-compose.yml | 9 +- gateway/__init__.py | 1 - requirements/base.txt | 1 - 14 files changed, 92 insertions(+), 102 deletions(-) create mode 100644 core/migrations/0007_remove_organization_stripe_subscription_details.py delete mode 100644 core/views/stripe.py diff --git a/buildly/settings/base.py b/buildly/settings/base.py index 873efe11..0390a4fb 100644 --- a/buildly/settings/base.py +++ b/buildly/settings/base.py @@ -8,7 +8,7 @@ DEBUG = False if os.getenv('DEBUG') == 'False' else True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = ['*'] # Application definition @@ -182,6 +182,7 @@ FRONTEND_URL = os.getenv('FRONTEND_URL', 'http://www.example.com/') REGISTRATION_URL_PATH = os.getenv('REGISTRATION_URL_PATH', 'register/') RESETPASS_CONFIRM_URL_PATH = os.getenv('RESETPASS_CONFIRM_URL_PATH', 'reset_password_confirm/') +VERIFY_EMAIL_URL_PATH = os.getenv('VERIFY_EMAIL_URL_PATH', 'verify-email/') PASSWORD_RESET_TIMEOUT_DAYS = 1 @@ -192,8 +193,7 @@ # User and Organization configuration SUPER_USER_PASSWORD = os.getenv('SUPER_USER_PASSWORD') DEFAULT_ORG = os.getenv('DEFAULT_ORG').lower() if os.getenv('DEFAULT_ORG') else None -AUTO_APPROVE_USER = os.getenv('AUTO_APPROVE_USER', False) -STRIPE_SECRET = os.getenv('STRIPE_SECRET', '') +AUTO_APPROVE_USER = False if os.getenv('AUTO_APPROVE_USER') == 'False' else True # Swagger settings - for generate_swagger management command diff --git a/buildly/settings/production.py b/buildly/settings/production.py index a0c87568..be799f2d 100644 --- a/buildly/settings/production.py +++ b/buildly/settings/production.py @@ -16,7 +16,7 @@ MIDDLEWARE = MIDDLEWARE_CORS + MIDDLEWARE -CORS_ORIGIN_ALLOW_ALL = True +CORS_ORIGIN_ALLOW_ALL = False if os.getenv('CORS_ORIGIN_ALLOW_ALL') == 'False' else True CORS_ORIGIN_WHITELIST = os.environ['CORS_ORIGIN_WHITELIST'].split(',') diff --git a/core/migrations/0007_remove_organization_stripe_subscription_details.py b/core/migrations/0007_remove_organization_stripe_subscription_details.py new file mode 100644 index 00000000..6ca30588 --- /dev/null +++ b/core/migrations/0007_remove_organization_stripe_subscription_details.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.28 on 2022-09-28 07:22 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0006_auto_20220620_0528'), + ] + + operations = [ + migrations.RemoveField( + model_name='organization', + name='stripe_subscription_details', + ), + ] diff --git a/core/models.py b/core/models.py index a20b6e61..e617a9b4 100644 --- a/core/models.py +++ b/core/models.py @@ -94,7 +94,6 @@ class Organization(models.Model): oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) - stripe_subscription_details = JSONField(blank=True, null=True) class Meta: ordering = ('name',) diff --git a/core/serializers.py b/core/serializers.py index ca0c508d..4236bfc0 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -1,14 +1,10 @@ -import datetime import jwt -import json import secrets -import stripe from urllib.parse import urljoin from django.contrib.auth import password_validation from django.contrib.auth.tokens import default_token_generator from django.conf import settings -from django.utils import timezone from django.utils.encoding import force_bytes, force_text from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode from django.template import Template, Context @@ -113,12 +109,10 @@ class CoreUserWritableSerializer(CoreUserSerializer): password = serializers.CharField(write_only=True) organization_name = serializers.CharField(source='organization.name') core_groups = serializers.PrimaryKeyRelatedField(many=True, queryset=CoreGroup.objects.all(), required=False) - product = serializers.CharField(required=False) - card = serializers.CharField(required=False) class Meta: model = CoreUser - fields = CoreUserSerializer.Meta.fields + ('password', 'organization_name', 'product', 'card') + fields = CoreUserSerializer.Meta.fields + ('password', 'organization_name') read_only_fields = CoreUserSerializer.Meta.read_only_fields def create(self, validated_data): @@ -128,15 +122,14 @@ def create(self, validated_data): organization, is_new_org = Organization.objects.get_or_create(name=str(org_name).lower()) core_groups = validated_data.pop('core_groups', []) - product = validated_data.pop('product', None) - card = validated_data.pop('card', None) invitation_token = validated_data.pop('invitation_token', None) # create core user - if bool(settings.AUTO_APPROVE_USER): # If auto-approval set to true + if settings.AUTO_APPROVE_USER: # If auto-approval set to true validated_data['is_active'] = True else: - validated_data['is_active'] = is_new_org or bool(invitation_token) + validated_data['is_active'] = bool(invitation_token) + coreuser = CoreUser.objects.create( organization=organization, **validated_data @@ -164,19 +157,6 @@ def create(self, validated_data): # add org admin role to the user if org is new if is_new_org: - if (settings.STRIPE_SECRET and product and card): - stripe.api_key = settings.STRIPE_SECRET - customer = stripe.Customer.create(email=coreuser.email, name=str(organization.name).capitalize()) - stripe.PaymentMethod.attach(card, customer=customer.id) - organization.stripe_subscription_details = json.dumps({ - "customer_stripe_id": customer.id, - "product": product, - "trial_start_date": timezone.now().isoformat(), - "trial_end_date": (timezone.now() + datetime.timedelta(days=30)).isoformat(), - "subscription_start_date": (timezone.now() + datetime.timedelta(days=31)).isoformat() - }) - organization.save() - group_org_admin = CoreGroup.objects.get(organization=organization, is_org_level=True, permissions=PERMISSIONS_ORG_ADMIN) @@ -186,6 +166,28 @@ def create(self, validated_data): for group in core_groups: coreuser.core_groups.add(group) + # create or update an invitation + reg_location = urljoin(settings.FRONTEND_URL, + settings.VERIFY_EMAIL_URL_PATH) + reg_location = reg_location + '{}' + token = urlsafe_base64_encode(force_bytes(coreuser.core_user_uuid)) + + # build the invitation link + invitation_link = self.context['request'].build_absolute_uri( + reg_location.format(token) + ) + + # create the user context for the E-mail templates + context = { + 'invitation_link': invitation_link, + 'org_admin_name': coreuser.first_name, + 'organization_name': coreuser.organization.name, + } + subject = 'Application Access' # TODO we need to make this dynamic + template_name = 'email/coreuser/invitation.txt' + html_template_name = 'email/coreuser/invitation.html' + send_email(coreuser.email, subject, context, template_name, html_template_name) + return coreuser @@ -367,19 +369,15 @@ class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): organization_name = serializers.CharField(required=False) core_groups = CoreGroupSerializer(read_only=True, many=True) organization = OrganizationSerializer(read_only=True) - product = serializers.CharField(required=False) - card = serializers.CharField(required=False) class Meta: model = CoreUser fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups', - 'user_type', 'survey_status', 'product', 'card') + 'user_type', 'survey_status') def update(self, instance, validated_data): organization_name = str(validated_data.pop('organization_name')).lower() - product = validated_data.pop('product', None) - card = validated_data.pop('card', None) instance.email = validated_data.get('email', instance.email) instance.user_type = validated_data.get('user_type', instance.user_type) instance.survey_status = validated_data.get('survey_status', instance.survey_status) @@ -433,19 +431,6 @@ def update(self, instance, validated_data): elif not is_new_org.exists(): # first update the org name for that user organization = Organization.objects.create(name=organization_name) - if (settings.STRIPE_SECRET and product and card): - stripe.api_key = settings.STRIPE_SECRET - customer = stripe.Customer.create(email=instance.email, name=str(organization.name).capitalize()) - stripe.PaymentMethod.attach(card, customer=customer.id) - organization.stripe_subscription_details = json.dumps({ - "customer_stripe_id": customer.id, - "product": product, - "trial_start_date": timezone.now().isoformat(), - "trial_end_date": (timezone.now() + datetime.timedelta(days=30)).isoformat(), - "subscription_start_date": (timezone.now() + datetime.timedelta(days=31)).isoformat() - }) - organization.save() - instance.organization = organization instance.save() # now attach the user role as ADMIN @@ -471,3 +456,23 @@ class PartnerSerializer(serializers.ModelSerializer): class Meta: model = Partner fields = '__all__' + + +class CoreUserVerifyEmailSerializer(serializers.Serializer): + """Serializer for checking token for resetting password + """ + token = serializers.CharField() + + def validate(self, attrs): + # Decode the uidb64 to uid to get User object + try: + uid = force_text(urlsafe_base64_decode(attrs['token'])) + user = CoreUser.objects.filter(core_user_uuid=uid).first() + if user: + user.is_active = True + user.save() + + except (TypeError, ValueError, OverflowError, CoreUser.DoesNotExist): + raise serializers.ValidationError({'token': ['Invalid value']}) + + return attrs diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index a85aa3ac..b9dda343 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -114,7 +114,6 @@ def test_registration_of_first_org_user(self, request_factory): assert user.first_name == TEST_USER_DATA['first_name'] assert user.last_name == TEST_USER_DATA['last_name'] assert user.organization.name == TEST_USER_DATA['organization_name'] - assert user.is_active # check this user is org admin assert user.is_org_admin diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 91554bb8..14c4542b 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -20,7 +20,6 @@ def test_org_serializer(request_factory, org): 'date_format', 'phone', 'industries', - 'stripe_subscription_details', ] assert set(data.keys()) == set(keys) diff --git a/core/urls.py b/core/urls.py index f56bced4..d4fe4748 100644 --- a/core/urls.py +++ b/core/urls.py @@ -23,7 +23,6 @@ router.register(r'organization', views.OrganizationViewSet) router.register(r'logicmodule', views.LogicModuleViewSet) router.register(r'partner', views.PartnerViewSet) -router.register(r'stripe', views.StripeViewSet, basename='stripe') urlpatterns = [ diff --git a/core/views/__init__.py b/core/views/__init__.py index 4b36386d..38cbcdf8 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -4,4 +4,3 @@ from .organization import OrganizationViewSet # noqa from .logicmodule import LogicModuleViewSet # noqa from .partner import PartnerViewSet # noqa -from .stripe import StripeViewSet # noqa# noqa diff --git a/core/views/coreuser.py b/core/views/coreuser.py index bf7424ee..00ff10ae 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -17,7 +17,8 @@ from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer, - CoreUserEmailNotificationSerializer, CoreUserProfileSerializer) + CoreUserEmailNotificationSerializer, CoreUserProfileSerializer, + CoreUserVerifyEmailSerializer) from core.permissions import AllowAuthenticatedRead, AllowOnlyOrgAdmin, IsOrgMember from core.swagger import (COREUSER_INVITE_RESPONSE, COREUSER_INVITE_CHECK_RESPONSE, COREUSER_RESETPASS_RESPONSE, DETAIL_RESPONSE, SUCCESS_RESPONSE, TOKEN_QUERY_PARAM) @@ -63,6 +64,7 @@ class CoreUserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, 'reset_password_confirm': CoreUserResetPasswordConfirmSerializer, 'update_org': CoreUserUpdateOrganizationSerializer, 'notification': CoreUserEmailNotificationSerializer, + 'verify_email': CoreUserVerifyEmailSerializer, } def list(self, request, *args, **kwargs): @@ -321,3 +323,19 @@ def notification(self, request, *args, **kwargs): { 'detail': 'The notification were sent successfully on email.', }, status=status.HTTP_200_OK) + + + @swagger_auto_schema(methods=['post'], + request_body=CoreUserVerifyEmailSerializer, + responses=SUCCESS_RESPONSE) + @action(methods=['POST'], detail=False) + def verify_email(self, request, *args, **kwargs): + """ + This endpoint is used to verify the email address. + """ + serializer = self.get_serializer(data=request.data) + return Response( + { + 'success': serializer.is_valid(), + }, + status=status.HTTP_200_OK) \ No newline at end of file diff --git a/core/views/stripe.py b/core/views/stripe.py deleted file mode 100644 index ca6b524d..00000000 --- a/core/views/stripe.py +++ /dev/null @@ -1,44 +0,0 @@ -import logging -import stripe - -from django.conf import settings -from rest_framework import viewsets -from rest_framework.response import Response -from rest_framework.decorators import action -from rest_framework.permissions import AllowAny - - -logger = logging.getLogger(__name__) - - -class StripeViewSet(viewsets.GenericViewSet): - """ - Products available on the stripe account. - - title: - Products is a collection of all the products available on the stripe account. - - description: - All the products available for subscription on the stripe account. - - list: - Return a list of all the products on the stripe account. - """ - - queryset = [] - - # /stripe/products/ - # send all the products - @action(detail=False, methods=['get'], permission_classes=[AllowAny], name='Fetch all existing products', url_path='products') - def fetch_existing_products(self, request, pk=None, *args, **kwargs): - """ - Fetch all existing Products in Stripe Platform - """ - # all products on stripe platform - products = [] - if (settings.STRIPE_SECRET): - stripe.api_key = settings.STRIPE_SECRET - stripe_products = stripe.Product.list() - products = stripe_products.data - - return Response(products) \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index c23c3ae5..f8eb6c93 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,8 +29,9 @@ services: - postgres_buildly environment: DJANGO_SETTINGS_MODULE: "buildly.settings.production" - ALLOWED_HOSTS: "*" - CORS_ORIGIN_WHITELIST: "*" + ALLOWED_HOSTS: localhost,127.0.0.1,0.0.0.0 + CORS_ORIGIN_ALLOW_ALL: "True" + CORS_ORIGIN_WHITELIST: localhost,127.0.0.1,0.0.0.0 DATABASE_ENGINE: "postgresql" DATABASE_NAME: "buildly" DATABASE_USER: "root" @@ -75,14 +76,14 @@ services: # SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" EMAIL_HOST: "smtp.sendgrid.net" EMAIL_HOST_USER: "apikey" - EMAIL_HOST_PASSWORD: "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" + EMAIL_HOST_PASSWORD: "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" EMAIL_PORT: "587" EMAIL_USE_TLS: "False" EMAIL_SUBJECT_PREFIX: "NO REPLY: Buildly - " EMAIL_BACKEND: "SMTP" DEFAULT_FROM_EMAIL: "admin@buildly.io" RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" - STRIPE_SECRET: "sk_test_ddLjeqLRWcj8znVAhMaNPu7J00evbJrikA" + VERIFY_EMAIL_URL_PATH: "verify-email/" volumes: static-content: diff --git a/gateway/__init__.py b/gateway/__init__.py index 4e81b9ab..61a7ff41 100644 --- a/gateway/__init__.py +++ b/gateway/__init__.py @@ -13,5 +13,4 @@ 'logicmodule', 'organization', 'datamesh', - 'stripe', ] diff --git a/requirements/base.txt b/requirements/base.txt index 8641a3db..c91e4a90 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -15,4 +15,3 @@ drf-yasg==1.20.0 requests==2.21.0 aiohttp==3.7.4 django-auth-ldap==2.1.0 -stripe==2.75.0 From eb323b718daf04ce82369dc2061c6e65fbd36463 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Thu, 29 Sep 2022 12:02:26 +0530 Subject: [PATCH 058/160] move key to ops --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index f8eb6c93..4194e081 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -76,7 +76,7 @@ services: # SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" EMAIL_HOST: "smtp.sendgrid.net" EMAIL_HOST_USER: "apikey" - EMAIL_HOST_PASSWORD: "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" + EMAIL_HOST_PASSWORD: // put sendgrid key here EMAIL_PORT: "587" EMAIL_USE_TLS: "False" EMAIL_SUBJECT_PREFIX: "NO REPLY: Buildly - " From 458b2035d9e81b2e11be21c4f25239cbc054b34f Mon Sep 17 00:00:00 2001 From: Greg Lind Date: Thu, 29 Sep 2022 08:34:16 -0700 Subject: [PATCH 059/160] Delete docker-compose.yml --- docker-compose.yml | 89 ---------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 4194e081..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,89 +0,0 @@ -version: "2.0" - -services: - - postgres_buildly: - container_name: postgres_buildly - image: postgres:9.6 - environment: - POSTGRES_DB: buildly - POSTGRES_USER: root - POSTGRES_PASSWORD: root - volumes: - - /var/lib/postgresql/data/ - restart: always - - buildly: - build: - context: . - dockerfile: Dockerfile - entrypoint: bash /code/scripts/run-standalone-dev.sh - container_name: buildly - image: buildly - volumes: - - .:/code - - static-content:/static - ports: - - "8080:8080" - depends_on: - - postgres_buildly - environment: - DJANGO_SETTINGS_MODULE: "buildly.settings.production" - ALLOWED_HOSTS: localhost,127.0.0.1,0.0.0.0 - CORS_ORIGIN_ALLOW_ALL: "True" - CORS_ORIGIN_WHITELIST: localhost,127.0.0.1,0.0.0.0 - DATABASE_ENGINE: "postgresql" - DATABASE_NAME: "buildly" - DATABASE_USER: "root" - DATABASE_PASSWORD: "root" - DATABASE_HOST: "postgres_buildly" - DATABASE_PORT: "5432" - DEFAULT_ORG: "Default Organization" - AUTO_APPROVE_USER: "False" - JWT_ISSUER: "buildly" - JWT_PRIVATE_KEY_RSA_BUILDLY: |- - -----BEGIN RSA PRIVATE KEY----- - MIIBOwIBAAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRBqhqvJu1hKPYn9HYd75c0 - gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQJAe5z5096oyeqGX6J+RGGx - 11yuDJ7J+0N4tthUHSWWUtgkd19NvmTM/mVLmPCzZHgNUT+aWUKsQ84+jhru/NQD - 0QIhAOHOzFmjxjTAR1jspn6YtJBKQB40tvT6WEvm2mKm0aD7AiEAyRPwXyZf3JT+ - M6Ui0Mubs7Qb/E4g1d/kVL+o/XoZC6cCIQC+nKzPtnooKW+Q1yOslgdGDgeV9/XB - Ulqap+MNh7hJZQIgZNaM+wqhlFtbx8aO2SrioJI4XqVHrjojpaSgOM3cdY0CIQDB - Q6ckOaDV937acmWuiZhxuG2euNLwNbMldtCV5ADo/g== - -----END RSA PRIVATE KEY----- - JWT_PUBLIC_KEY_RSA_BUILDLY: |- - -----BEGIN PUBLIC KEY----- - MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRB - qhqvJu1hKPYn9HYd75c0gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQ== - -----END PUBLIC KEY----- - SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URL: "https://localhost:8000/complete/google-oauth2" - SOCIAL_AUTH_LOGIN_REDIRECT_URL: "http://localhost:8080/" - SOCIAL_AUTH_MICROSOFT_GRAPH_REDIRECT_URL: "https://localhost:8000/complete/microsoft-graph" - ACCESS_TOKEN_EXPIRE_SECONDS: "86400" - SECRET_KEY: "ek*)b=mtcc7q1cym@oox(lyrz1ncz-(w+(#&u7l-&)7a8wv#_k" - OAUTH_CLIENT_ID: "wkXLlC9h3k0jxIx7oLllxpFVU89Dxgi7O8FYZyfX" - OAUTH_CLIENT_SECRET: "KiKRft8MajLabQId7pjSsa3OfvJAXN9NENi0tVRTX3Vbthr6iClEDZZtbyGuD9M8UbKpK2E8R4xJYUolZxg1nVa1iZwhQPi5ionOKdpIs4de2bmUaZ0qWi4MdBmdwDvF" - USE_PASSWORD_USER_ATTRIBUTE_SIMILARITY_VALIDATOR: "True" - USE_PASSWORD_MINIMUM_LENGTH_VALIDATOR: "True" - PASSWORD_MINIMUM_LENGTH: "6" - USE_PASSWORD_COMMON_VALIDATOR: "True" - USE_PASSWORD_NUMERIC_VALIDATOR: "True" - FRONTEND_URL: "https://localhost:3000/" - SOCIAL_AUTH_GITHUB_REDIRECT_URL: "https://localhost:3000/" - SOCIAL_AUTH_GITHUB_KEY: "9a05980c46f7fc8fc8d7" - SOCIAL_AUTH_GITHUB_SECRET: "f85afed46854e4d71e64db1f69032643b15f164d" - # SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" - # SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" - EMAIL_HOST: "smtp.sendgrid.net" - EMAIL_HOST_USER: "apikey" - EMAIL_HOST_PASSWORD: // put sendgrid key here - EMAIL_PORT: "587" - EMAIL_USE_TLS: "False" - EMAIL_SUBJECT_PREFIX: "NO REPLY: Buildly - " - EMAIL_BACKEND: "SMTP" - DEFAULT_FROM_EMAIL: "admin@buildly.io" - RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" - VERIFY_EMAIL_URL_PATH: "verify-email/" - -volumes: - static-content: From c76af91c6fc544669fb062f58888c2e2412705e2 Mon Sep 17 00:00:00 2001 From: Greg Lind Date: Thu, 29 Sep 2022 08:35:11 -0700 Subject: [PATCH 060/160] Create docker-compose.yml --- docker-compose.yml | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..4194e081 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,89 @@ +version: "2.0" + +services: + + postgres_buildly: + container_name: postgres_buildly + image: postgres:9.6 + environment: + POSTGRES_DB: buildly + POSTGRES_USER: root + POSTGRES_PASSWORD: root + volumes: + - /var/lib/postgresql/data/ + restart: always + + buildly: + build: + context: . + dockerfile: Dockerfile + entrypoint: bash /code/scripts/run-standalone-dev.sh + container_name: buildly + image: buildly + volumes: + - .:/code + - static-content:/static + ports: + - "8080:8080" + depends_on: + - postgres_buildly + environment: + DJANGO_SETTINGS_MODULE: "buildly.settings.production" + ALLOWED_HOSTS: localhost,127.0.0.1,0.0.0.0 + CORS_ORIGIN_ALLOW_ALL: "True" + CORS_ORIGIN_WHITELIST: localhost,127.0.0.1,0.0.0.0 + DATABASE_ENGINE: "postgresql" + DATABASE_NAME: "buildly" + DATABASE_USER: "root" + DATABASE_PASSWORD: "root" + DATABASE_HOST: "postgres_buildly" + DATABASE_PORT: "5432" + DEFAULT_ORG: "Default Organization" + AUTO_APPROVE_USER: "False" + JWT_ISSUER: "buildly" + JWT_PRIVATE_KEY_RSA_BUILDLY: |- + -----BEGIN RSA PRIVATE KEY----- + MIIBOwIBAAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRBqhqvJu1hKPYn9HYd75c0 + gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQJAe5z5096oyeqGX6J+RGGx + 11yuDJ7J+0N4tthUHSWWUtgkd19NvmTM/mVLmPCzZHgNUT+aWUKsQ84+jhru/NQD + 0QIhAOHOzFmjxjTAR1jspn6YtJBKQB40tvT6WEvm2mKm0aD7AiEAyRPwXyZf3JT+ + M6Ui0Mubs7Qb/E4g1d/kVL+o/XoZC6cCIQC+nKzPtnooKW+Q1yOslgdGDgeV9/XB + Ulqap+MNh7hJZQIgZNaM+wqhlFtbx8aO2SrioJI4XqVHrjojpaSgOM3cdY0CIQDB + Q6ckOaDV937acmWuiZhxuG2euNLwNbMldtCV5ADo/g== + -----END RSA PRIVATE KEY----- + JWT_PUBLIC_KEY_RSA_BUILDLY: |- + -----BEGIN PUBLIC KEY----- + MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALFc9NFZaOaSwUMPNektbtJqEjYZ6IRB + qhqvJu1hKPYn9HYd75c0gIDYHJ9lb7QwQvg44aO27104rDK0xSstzL0CAwEAAQ== + -----END PUBLIC KEY----- + SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URL: "https://localhost:8000/complete/google-oauth2" + SOCIAL_AUTH_LOGIN_REDIRECT_URL: "http://localhost:8080/" + SOCIAL_AUTH_MICROSOFT_GRAPH_REDIRECT_URL: "https://localhost:8000/complete/microsoft-graph" + ACCESS_TOKEN_EXPIRE_SECONDS: "86400" + SECRET_KEY: "ek*)b=mtcc7q1cym@oox(lyrz1ncz-(w+(#&u7l-&)7a8wv#_k" + OAUTH_CLIENT_ID: "wkXLlC9h3k0jxIx7oLllxpFVU89Dxgi7O8FYZyfX" + OAUTH_CLIENT_SECRET: "KiKRft8MajLabQId7pjSsa3OfvJAXN9NENi0tVRTX3Vbthr6iClEDZZtbyGuD9M8UbKpK2E8R4xJYUolZxg1nVa1iZwhQPi5ionOKdpIs4de2bmUaZ0qWi4MdBmdwDvF" + USE_PASSWORD_USER_ATTRIBUTE_SIMILARITY_VALIDATOR: "True" + USE_PASSWORD_MINIMUM_LENGTH_VALIDATOR: "True" + PASSWORD_MINIMUM_LENGTH: "6" + USE_PASSWORD_COMMON_VALIDATOR: "True" + USE_PASSWORD_NUMERIC_VALIDATOR: "True" + FRONTEND_URL: "https://localhost:3000/" + SOCIAL_AUTH_GITHUB_REDIRECT_URL: "https://localhost:3000/" + SOCIAL_AUTH_GITHUB_KEY: "9a05980c46f7fc8fc8d7" + SOCIAL_AUTH_GITHUB_SECRET: "f85afed46854e4d71e64db1f69032643b15f164d" + # SOCIAL_AUTH_CLIENT_ID: "vBn4KsOCthm7TWzMH0kVV0dXkUPJEtOQwaLu0eoC" + # SOCIAL_AUTH_CLIENT_SECRET: "0aYDOHUNAxK4MjbnYOHhfrKx8Ezj3jd7aKq2C7yRDZ6FbAL4SgRFxY8N6GbB6IGyCgpT6pmQ5pEVJmH7mIEUJxyXKbta7ebxULLULjXwnJYGhUgT2hPyCfptkWFhsZVV" + EMAIL_HOST: "smtp.sendgrid.net" + EMAIL_HOST_USER: "apikey" + EMAIL_HOST_PASSWORD: // put sendgrid key here + EMAIL_PORT: "587" + EMAIL_USE_TLS: "False" + EMAIL_SUBJECT_PREFIX: "NO REPLY: Buildly - " + EMAIL_BACKEND: "SMTP" + DEFAULT_FROM_EMAIL: "admin@buildly.io" + RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" + VERIFY_EMAIL_URL_PATH: "verify-email/" + +volumes: + static-content: From a870a1ad1d1125408048baf0dedff45495a37433 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Wed, 5 Oct 2022 13:50:45 +0530 Subject: [PATCH 061/160] add importlib_metadata package --- requirements/ci.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements/ci.txt b/requirements/ci.txt index 9739fd9e..d0e490c9 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -9,3 +9,4 @@ pytest-django==3.6.0 pytest-cov==2.7.1 httpretty==0.9.7 pytest-asyncio==0.10.0 +importlib_metadata==4.7.1 From defbd13d00123b260a3af7d23abd9844a5dbf833 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Tue, 11 Oct 2022 16:52:01 +0530 Subject: [PATCH 062/160] coupon, verification, lint changes --- buildly/settings/base.py | 1 + .../0008_organization_unlimited_free_plan.py | 18 +++++++++++ core/models.py | 1 + core/serializers.py | 32 +++++++++++-------- core/tests/test_serializers.py | 1 + docker-compose.yml | 1 + .../email/coreuser/email_verification.html | 25 +++++++++++++++ .../email/coreuser/email_verification.txt | 12 +++++++ 8 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 core/migrations/0008_organization_unlimited_free_plan.py create mode 100644 templates/email/coreuser/email_verification.html create mode 100644 templates/email/coreuser/email_verification.txt diff --git a/buildly/settings/base.py b/buildly/settings/base.py index 0390a4fb..a3a99689 100644 --- a/buildly/settings/base.py +++ b/buildly/settings/base.py @@ -194,6 +194,7 @@ SUPER_USER_PASSWORD = os.getenv('SUPER_USER_PASSWORD') DEFAULT_ORG = os.getenv('DEFAULT_ORG').lower() if os.getenv('DEFAULT_ORG') else None AUTO_APPROVE_USER = False if os.getenv('AUTO_APPROVE_USER') == 'False' else True +FREE_COUPON_CODE = os.getenv('FREE_COUPON_CODE', '') # Swagger settings - for generate_swagger management command diff --git a/core/migrations/0008_organization_unlimited_free_plan.py b/core/migrations/0008_organization_unlimited_free_plan.py new file mode 100644 index 00000000..038f9ed3 --- /dev/null +++ b/core/migrations/0008_organization_unlimited_free_plan.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2022-10-11 07:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0007_remove_organization_stripe_subscription_details'), + ] + + operations = [ + migrations.AddField( + model_name='organization', + name='unlimited_free_plan', + field=models.BooleanField(default=True, verbose_name='Free unlimited features plan'), + ), + ] diff --git a/core/models.py b/core/models.py index e617a9b4..79bbb06b 100644 --- a/core/models.py +++ b/core/models.py @@ -94,6 +94,7 @@ class Organization(models.Model): oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) + unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) class Meta: ordering = ('name',) diff --git a/core/serializers.py b/core/serializers.py index 4236bfc0..00516554 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -109,10 +109,11 @@ class CoreUserWritableSerializer(CoreUserSerializer): password = serializers.CharField(write_only=True) organization_name = serializers.CharField(source='organization.name') core_groups = serializers.PrimaryKeyRelatedField(many=True, queryset=CoreGroup.objects.all(), required=False) + coupon_code = serializers.CharField(required=False) class Meta: model = CoreUser - fields = CoreUserSerializer.Meta.fields + ('password', 'organization_name') + fields = CoreUserSerializer.Meta.fields + ('password', 'organization_name', 'coupon_code') read_only_fields = CoreUserSerializer.Meta.read_only_fields def create(self, validated_data): @@ -123,6 +124,7 @@ def create(self, validated_data): core_groups = validated_data.pop('core_groups', []) invitation_token = validated_data.pop('invitation_token', None) + coupon_code = validated_data.pop('coupon_code', None) # create core user if settings.AUTO_APPROVE_USER: # If auto-approval set to true @@ -157,6 +159,10 @@ def create(self, validated_data): # add org admin role to the user if org is new if is_new_org: + if coupon_code and coupon_code == settings.FREE_COUPON_CODE: + organization.unlimited_free_plan = True + organization.save() + group_org_admin = CoreGroup.objects.get(organization=organization, is_org_level=True, permissions=PERMISSIONS_ORG_ADMIN) @@ -167,25 +173,23 @@ def create(self, validated_data): coreuser.core_groups.add(group) # create or update an invitation - reg_location = urljoin(settings.FRONTEND_URL, - settings.VERIFY_EMAIL_URL_PATH) + reg_location = urljoin(settings.FRONTEND_URL, settings.VERIFY_EMAIL_URL_PATH) reg_location = reg_location + '{}' token = urlsafe_base64_encode(force_bytes(coreuser.core_user_uuid)) # build the invitation link - invitation_link = self.context['request'].build_absolute_uri( + verification_link = self.context['request'].build_absolute_uri( reg_location.format(token) ) # create the user context for the E-mail templates context = { - 'invitation_link': invitation_link, - 'org_admin_name': coreuser.first_name, - 'organization_name': coreuser.organization.name, + 'verification_link': verification_link, + 'user': coreuser, } - subject = 'Application Access' # TODO we need to make this dynamic - template_name = 'email/coreuser/invitation.txt' - html_template_name = 'email/coreuser/invitation.html' + subject = 'Account verification required' # TODO we need to make this dynamic + template_name = 'email/coreuser/email_verification.txt' + html_template_name = 'email/coreuser/email_verification.html' send_email(coreuser.email, subject, context, template_name, html_template_name) return coreuser @@ -206,10 +210,10 @@ class CoreUserProfileSerializer(serializers.Serializer): class Meta: model = CoreUser - fields = ('first_name', 'last_name', 'password', 'title', 'contact_info', 'organization_name', 'user_type', 'survey_status') + fields = ('first_name', 'last_name', 'password', 'title', 'contact_info', 'organization_name', + 'user_type', 'survey_status') def update(self, instance, validated_data): - organization_name = validated_data.pop('organization_name', None) name = Organization.objects.filter(name=organization_name).first() @@ -375,8 +379,8 @@ class Meta: fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups', 'user_type', 'survey_status') - def update(self, instance, validated_data): + def update(self, instance, validated_data): organization_name = str(validated_data.pop('organization_name')).lower() instance.email = validated_data.get('email', instance.email) instance.user_type = validated_data.get('user_type', instance.user_type) @@ -448,7 +452,7 @@ class CoreUserEmailNotificationSerializer(serializers.Serializer): """ organization_uuid = serializers.UUIDField() notification_messages = serializers.CharField() - + class PartnerSerializer(serializers.ModelSerializer): partner_uuid = serializers.ReadOnlyField() diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 14c4542b..ca7b7ae4 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -20,6 +20,7 @@ def test_org_serializer(request_factory, org): 'date_format', 'phone', 'industries', + 'unlimited_free_plan', ] assert set(data.keys()) == set(keys) diff --git a/docker-compose.yml b/docker-compose.yml index 4194e081..54b3eb45 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -84,6 +84,7 @@ services: DEFAULT_FROM_EMAIL: "admin@buildly.io" RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" VERIFY_EMAIL_URL_PATH: "verify-email/" + FREE_COUPON_CODE: "Insights@2022" volumes: static-content: diff --git a/templates/email/coreuser/email_verification.html b/templates/email/coreuser/email_verification.html new file mode 100644 index 00000000..960168bf --- /dev/null +++ b/templates/email/coreuser/email_verification.html @@ -0,0 +1,25 @@ +{% load i18n %} + + +{% autoescape off %} +

+{% blocktrans %}You're receiving this email for verification of your user account.{% endblocktrans %} +

+ +

+{% trans "Please click on the below link to verify your account and be able to login" %} +

+ + {{ verification_link }} +

+ {% trans "Your username, in case you've forgotten:" %} {{ user.get_username }} +

+ +{% trans "Thanks for using our site!" %} + +{% endautoescape %} + + + + + \ No newline at end of file diff --git a/templates/email/coreuser/email_verification.txt b/templates/email/coreuser/email_verification.txt new file mode 100644 index 00000000..7e01a688 --- /dev/null +++ b/templates/email/coreuser/email_verification.txt @@ -0,0 +1,12 @@ +{% load i18n %}{% autoescape off %} +{% blocktrans %}You're receiving this email for verification of your user account.{% endblocktrans %} + +{% trans "Please click on the below link to verify your account and be able to login" %} + +{{ verification_link }} + +{% trans "Your username, in case you've forgotten:" %} {{ user.get_username }} + +{% trans "Thanks for using our site!" %} + +{% endautoescape %} \ No newline at end of file From 8a8e840ac977552b35c4cd8d719441225af55a3c Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Thu, 3 Nov 2022 14:12:03 +0530 Subject: [PATCH 063/160] Production release --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index eaacea4d..cdce40e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,3 +23,6 @@ RUN apk del .build-deps EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] + +# Specify tag name to be created on github +LABEL version="0.5.2" From 9d0ef29a7ab38cc794d1b1fe2ec5b1a48a58ce93 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Thu, 3 Nov 2022 14:13:21 +0530 Subject: [PATCH 064/160] add versioning for github actions deployment --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index eaacea4d..cdce40e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,3 +23,6 @@ RUN apk del .build-deps EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] + +# Specify tag name to be created on github +LABEL version="0.5.2" From 0388a26672622d05d75b3fd9c22e3a184da4efa1 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 30 Nov 2022 07:31:36 +0300 Subject: [PATCH 065/160] clean email template --- templates/email/coreuser/invitation.html | 17 +++-------------- templates/email/coreuser/invitation.txt | 4 ++-- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index 074aa623..a1b5f7e8 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -5,14 +5,14 @@ -
toladata
+
Buildly



@@ -32,13 +32,7 @@

- - - - - - - + @@ -48,10 +42,5 @@

Invitation from your Org
Admin!

-

You have been invited to join {{ organization_name }} on TolaData!
Click the button below to create your user profile

+

You have been invited to join {{ organization_name }} on Buildly!
Click the button below to create your user profile

Once you have registered you will be within {{ organization_name }}’s portfolio. To see specific programs you must request access.
You can access the TolaData knowledgebase with training materials, FAQs and other useful information at our TolaData
Knowledgebase: https://help.toladata.comOnce you have registered you will be within {{ organization_name }}'s workspace.
-






-
-

TolaData GmbH
Wöhlerstraße 12-13, 10115 Berlin, Germany

-

Have any questions or thoughts on TolaData?
Reach out to us at anytime at support@toladata.com

-
diff --git a/templates/email/coreuser/invitation.txt b/templates/email/coreuser/invitation.txt index a44c47a4..c8151965 100644 --- a/templates/email/coreuser/invitation.txt +++ b/templates/email/coreuser/invitation.txt @@ -1,11 +1,11 @@ Invitation from Organization Admin -You have been invited to join {{ organization_name }} on TolaData! +You have been invited to join {{ organization_name }} on Buildly! Click the button below to create your user profile. {{ invitation_link }} Next steps -Once you have registered, you will be within {{ organization_name }}'s portfolio. To see specific programs, you must request access. +Once you have registered, you will be within {{ organization_name }}'s workspace. If you have any questions about this invitation please contact {{ org_admin_name }} from {{ organization_name }}. From 04529a50040a2f540cd208b9ce4f15b7b0e1bf9f Mon Sep 17 00:00:00 2001 From: Greg Lind Date: Thu, 1 Dec 2022 21:18:02 -0800 Subject: [PATCH 066/160] Update Dockerfile (#78) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cdce40e5..2f5e5a47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.2" +LABEL version="0.5.4" From df536b681ed25130a46e6a0e13884b999aca4621 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Fri, 2 Dec 2022 12:58:08 +0530 Subject: [PATCH 067/160] Update Dockerfile (#78) (#79) Co-authored-by: Greg Lind --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cdce40e5..2f5e5a47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.2" +LABEL version="0.5.4" From 6485f9bdc7c9d349b3c6a8b5ea953ff151ed5925 Mon Sep 17 00:00:00 2001 From: glind Date: Thu, 22 Dec 2022 07:29:19 -0800 Subject: [PATCH 068/160] update with tos field --- .../0009_coreuser_tos_disclaimer_accepted.py | 18 ++++++++++++++++++ core/models.py | 1 + core/serializers.py | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 core/migrations/0009_coreuser_tos_disclaimer_accepted.py diff --git a/core/migrations/0009_coreuser_tos_disclaimer_accepted.py b/core/migrations/0009_coreuser_tos_disclaimer_accepted.py new file mode 100644 index 00000000..dea2bbad --- /dev/null +++ b/core/migrations/0009_coreuser_tos_disclaimer_accepted.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2022-12-22 15:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0008_organization_unlimited_free_plan'), + ] + + operations = [ + migrations.AddField( + model_name='coreuser', + name='tos_disclaimer_accepted', + field=models.BooleanField(default=False), + ), + ] diff --git a/core/models.py b/core/models.py index 79bbb06b..b38bf134 100644 --- a/core/models.py +++ b/core/models.py @@ -182,6 +182,7 @@ class CoreUser(AbstractUser): organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, help_text='Related Org to associate with') core_groups = models.ManyToManyField(CoreGroup, verbose_name='User groups', blank=True, related_name='user_set', related_query_name='user') privacy_disclaimer_accepted = models.BooleanField(default=False) + tos_disclaimer_accepted = models.BooleanField(default=False) create_date = models.DateTimeField(default=timezone.now) edit_date = models.DateTimeField(null=True, blank=True) user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, default='Product Team') diff --git a/core/serializers.py b/core/serializers.py index 00516554..5e8720b3 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -96,7 +96,7 @@ def validate_invitation_token(self, value): class Meta: model = CoreUser fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', - 'title', 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', + 'title', 'contact_info', 'privacy_disclaimer_accepted','tos_disclaimer_accepted', 'organization', 'core_groups', 'invitation_token', 'user_type', 'survey_status') read_only_fields = ('core_user_uuid', 'organization',) depth = 1 From 03074b7fc8576c0adec7b1b76c3d64fdb7123590 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sun, 15 Jan 2023 13:45:05 +0300 Subject: [PATCH 069/160] add stripe subscription endpoint --- buildly/settings/base.py | 3 + core/models.py | 28 ++++++++ core/urls.py | 1 + core/views/__init__.py | 2 + core/views/coreuser.py | 1 - core/views/subscription.py | 132 +++++++++++++++++++++++++++++++++++++ docker-compose.yml | 1 + gateway/__init__.py | 1 + requirements/base.txt | 1 + 9 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 core/views/subscription.py diff --git a/buildly/settings/base.py b/buildly/settings/base.py index a3a99689..f41e177f 100644 --- a/buildly/settings/base.py +++ b/buildly/settings/base.py @@ -195,9 +195,12 @@ DEFAULT_ORG = os.getenv('DEFAULT_ORG').lower() if os.getenv('DEFAULT_ORG') else None AUTO_APPROVE_USER = False if os.getenv('AUTO_APPROVE_USER') == 'False' else True FREE_COUPON_CODE = os.getenv('FREE_COUPON_CODE', '') +STRIPE_SECRET = os.getenv('STRIPE_SECRET', '') + # Swagger settings - for generate_swagger management command SWAGGER_SETTINGS = { 'DEFAULT_INFO': 'gateway.urls.swagger_info', } + diff --git a/core/models.py b/core/models.py index 79bbb06b..131df2eb 100644 --- a/core/models.py +++ b/core/models.py @@ -5,6 +5,7 @@ from django.contrib.sites.models import Site from django.db import models from django.utils import timezone +from pyasn1.compat.octets import null ROLE_ORGANIZATION_ADMIN = 'OrgAdmin' ROLE_WORKFLOW_ADMIN = 'WorkflowAdmin' @@ -95,6 +96,7 @@ class Organization(models.Model): date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) + stripe_info = JSONField(blank=True, null=True) class Meta: ordering = ('name',) @@ -275,3 +277,29 @@ class Partner(models.Model): name = models.CharField(blank=True, null=True, max_length=255) create_date = models.DateTimeField(null=True, blank=True) edit_date = models.DateTimeField(null=True, blank=True) + + +class Subscription(models.Model): + subscription_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) + stripe_product = models.CharField(max_length=255) + card = models.CharField(max_length=255, null=True, blank=True) + trial_start_date = models.DateField(null=True, blank=True) + trial_end_date = models.DateField(null=True, blank=True) + subscription_start_date = models.DateField() + create_date = models.DateTimeField(auto_now_add=True) + update_date = models.DateTimeField(auto_now=True) + user = models.ForeignKey( + 'core.CoreUser', + on_delete=models.SET_NULL, + blank=null, + null=True, + related_name='subscription_user' + ) + created_by = models.ForeignKey( + 'core.CoreUser', + on_delete=models.SET_NULL, + blank=null, + null=True, + related_name='subscription_creator' + ) + organization = models.ForeignKey('core.Organization', on_delete=models.CASCADE) diff --git a/core/urls.py b/core/urls.py index d4fe4748..6314e935 100644 --- a/core/urls.py +++ b/core/urls.py @@ -23,6 +23,7 @@ router.register(r'organization', views.OrganizationViewSet) router.register(r'logicmodule', views.LogicModuleViewSet) router.register(r'partner', views.PartnerViewSet) +router.register(r'subscription', views.SubscriptionViewSet) urlpatterns = [ diff --git a/core/views/__init__.py b/core/views/__init__.py index 38cbcdf8..ffe2ef59 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -4,3 +4,5 @@ from .organization import OrganizationViewSet # noqa from .logicmodule import LogicModuleViewSet # noqa from .partner import PartnerViewSet # noqa +from .subscription import SubscriptionViewSet + diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 00ff10ae..48498fed 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -324,7 +324,6 @@ def notification(self, request, *args, **kwargs): 'detail': 'The notification were sent successfully on email.', }, status=status.HTTP_200_OK) - @swagger_auto_schema(methods=['post'], request_body=CoreUserVerifyEmailSerializer, responses=SUCCESS_RESPONSE) diff --git a/core/views/subscription.py b/core/views/subscription.py new file mode 100644 index 00000000..0b522520 --- /dev/null +++ b/core/views/subscription.py @@ -0,0 +1,132 @@ +import logging +from datetime import datetime +from dateutil import relativedelta + +import stripe + +from django.conf import settings +from django.utils import timezone +from rest_framework import viewsets, status +from rest_framework.response import Response +from rest_framework.decorators import action +from rest_framework.permissions import (AllowAny, IsAuthenticated) + +from core.models import Subscription + + +class SubscriptionViewSet(viewsets.ModelViewSet): + """ + Managing subscriptions + + title: + Manage user subscription done through stripe + + description: + All the subscriptions related actions + + """ + queryset = Subscription.objects.all() + + permission_classes = (AllowAny, IsAuthenticated) + + def create(self, request, *args, **kwargs): + + if settings.STRIPE_SECRET: + data = self.get_stripe_details() + if data: + serializer = self.get_serializer(data=data) + serializer.is_valid(raise_exception=True) + self.perform_create(serializer) + + return Response( + serializer.data, + status=status.HTTP_201_CREATED + ) + + return Response( + dict( + code='missing_stripe_details', + message='Please pass valid product/card or stripe secret' + ), + status=status.HTTP_400_BAD_REQUEST + ) + + def update(self, request, *args, **kwargs): + instance = self.get_object() + if settings.STRIPE_SECRET: + data = self.get_stripe_details() + if data: + serializer = self.get_serializer(instance, data=data, partial=True) + serializer.is_valid(raise_exception=True) + self.perform_create(serializer) + + return Response( + serializer.data, + status=status.HTTP_201_CREATED + ) + + return Response( + dict( + code='missing_stripe_details', + message='Please pass valid product/card or stripe secret' + ), + status=status.HTTP_400_BAD_REQUEST + ) + + def perform_create(self, serializer): + serializer.save( + user=self.request.user, + created_by=self.request.user, + organization=self.request.user.organization + ) + + @action( + detail=False, + methods=['get'], + permission_classes=[AllowAny], + name='Fetch all existing products', + ) + def stripe_products(self, request, pk=None, *args, **kwargs): + """ + Fetch all existing Products in Stripe Platform + """ + # all products on stripe platform + products = [] + if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET + stripe_products = stripe.Product.list() + products = stripe_products.data + + return Response( + products, + status=status.HTTP_200_OK, + ) + + def get_stripe_details(self): + """ + Get stripe details + """ + data = self.request.data.copy() + product = data.get('product') + card = data.get('card') + + if not (product and card): + return None + + stripe.api_key = settings.STRIPE_SECRET + customer = stripe.Customer.create( + email=self.request.user.email, + name=str(self.request.user.organization.name).capitalize() + ) + stripe.PaymentMethod.attach(card, customer=customer.id) + stripe_subscription_details = dict( + customer_stripe_id=customer.id, + product=product, + trial_start_date=timezone.now(), + trial_end_date=timezone.now() + relativedelta.relativedelta(months=1), + subscription_start_date=timezone.now() + relativedelta.relativedelta(months=1), + ) + + data.update(stripe_subscription_details) + + return data diff --git a/docker-compose.yml b/docker-compose.yml index 54b3eb45..6ed3c8b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -85,6 +85,7 @@ services: RESETPASS_CONFIRM_URL_PATH: "reset-password-confirm/" VERIFY_EMAIL_URL_PATH: "verify-email/" FREE_COUPON_CODE: "Insights@2022" + STRIPE_SECRET: "sk_test_ddLjeqLRWcj8znVAhMaNPu7J00evbJrikA" volumes: static-content: diff --git a/gateway/__init__.py b/gateway/__init__.py index 61a7ff41..26de7140 100644 --- a/gateway/__init__.py +++ b/gateway/__init__.py @@ -13,4 +13,5 @@ 'logicmodule', 'organization', 'datamesh', + 'subscription', ] diff --git a/requirements/base.txt b/requirements/base.txt index c91e4a90..8641a3db 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -15,3 +15,4 @@ drf-yasg==1.20.0 requests==2.21.0 aiohttp==3.7.4 django-auth-ldap==2.1.0 +stripe==2.75.0 From 29978c74d429b37778e9ee1392688044ed5797fd Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 16 Jan 2023 20:40:25 +0300 Subject: [PATCH 070/160] add subscription endpoint --- core/migrations/0009_auto_20230115_1103.py | 39 +++++++++++++++ .../0010_remove_organization_stripe_info.py | 17 +++++++ core/migrations/0011_auto_20230115_1552.py | 40 +++++++++++++++ core/models.py | 14 ++++-- core/serializers.py | 9 +++- core/tests/test_subscription_view.py | 50 +++++++++++++++++++ core/views/subscription.py | 40 ++++++++------- factories/core_models.py | 9 +++- workflow/admin.py | 22 ++++++++ 9 files changed, 215 insertions(+), 25 deletions(-) create mode 100644 core/migrations/0009_auto_20230115_1103.py create mode 100644 core/migrations/0010_remove_organization_stripe_info.py create mode 100644 core/migrations/0011_auto_20230115_1552.py create mode 100644 core/tests/test_subscription_view.py diff --git a/core/migrations/0009_auto_20230115_1103.py b/core/migrations/0009_auto_20230115_1103.py new file mode 100644 index 00000000..3c436c98 --- /dev/null +++ b/core/migrations/0009_auto_20230115_1103.py @@ -0,0 +1,39 @@ +# Generated by Django 2.2.28 on 2023-01-15 11:03 + +from django.conf import settings +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0008_organization_unlimited_free_plan'), + ] + + operations = [ + migrations.AddField( + model_name='organization', + name='stripe_info', + field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True), + ), + migrations.CreateModel( + name='Subscription', + fields=[ + ('subscription_uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), + ('stripe_product', models.CharField(max_length=255)), + ('stripe_id', models.CharField(max_length=255)), + ('card', models.CharField(blank=True, max_length=255, null=True)), + ('trial_start_date', models.DateField(blank=True, null=True)), + ('trial_end_date', models.DateField(blank=True, null=True)), + ('subscription_start_date', models.DateField()), + ('create_date', models.DateTimeField(auto_now_add=True)), + ('update_date', models.DateTimeField(auto_now=True)), + ('created_by', models.ForeignKey(blank=b'', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='subscription_creator', to=settings.AUTH_USER_MODEL)), + ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Organization')), + ('user', models.ForeignKey(blank=b'', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='subscription_user', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/core/migrations/0010_remove_organization_stripe_info.py b/core/migrations/0010_remove_organization_stripe_info.py new file mode 100644 index 00000000..4c520cc9 --- /dev/null +++ b/core/migrations/0010_remove_organization_stripe_info.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.28 on 2023-01-15 11:07 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0009_auto_20230115_1103'), + ] + + operations = [ + migrations.RemoveField( + model_name='organization', + name='stripe_info', + ), + ] diff --git a/core/migrations/0011_auto_20230115_1552.py b/core/migrations/0011_auto_20230115_1552.py new file mode 100644 index 00000000..3e435644 --- /dev/null +++ b/core/migrations/0011_auto_20230115_1552.py @@ -0,0 +1,40 @@ +# Generated by Django 2.2.28 on 2023-01-15 15:52 + +from django.conf import settings +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0010_remove_organization_stripe_info'), + ] + + operations = [ + migrations.RemoveField( + model_name='subscription', + name='card', + ), + migrations.AddField( + model_name='subscription', + name='stripe_card_info', + field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True), + ), + migrations.AlterField( + model_name='subscription', + name='created_by', + field=models.ForeignKey(blank=b'', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_subscription', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='subscription', + name='organization', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='organization_subscription', to='core.Organization'), + ), + migrations.AlterField( + model_name='subscription', + name='user', + field=models.ForeignKey(blank=b'', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user_subscription', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/core/models.py b/core/models.py index 131df2eb..08d6bab8 100644 --- a/core/models.py +++ b/core/models.py @@ -96,7 +96,6 @@ class Organization(models.Model): date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) - stripe_info = JSONField(blank=True, null=True) class Meta: ordering = ('name',) @@ -282,7 +281,8 @@ class Partner(models.Model): class Subscription(models.Model): subscription_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) stripe_product = models.CharField(max_length=255) - card = models.CharField(max_length=255, null=True, blank=True) + stripe_id = models.CharField(max_length=255) + stripe_card_info = JSONField(null=True, blank=True) trial_start_date = models.DateField(null=True, blank=True) trial_end_date = models.DateField(null=True, blank=True) subscription_start_date = models.DateField() @@ -293,13 +293,17 @@ class Subscription(models.Model): on_delete=models.SET_NULL, blank=null, null=True, - related_name='subscription_user' + related_name='user_subscription' ) created_by = models.ForeignKey( 'core.CoreUser', on_delete=models.SET_NULL, blank=null, null=True, - related_name='subscription_creator' + related_name='created_subscription' + ) + organization = models.ForeignKey( + 'core.Organization', + on_delete=models.CASCADE, + related_name='organization_subscription' ) - organization = models.ForeignKey('core.Organization', on_delete=models.CASCADE) diff --git a/core/serializers.py b/core/serializers.py index 00516554..93c9ce4c 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -16,7 +16,7 @@ from core.email_utils import send_email, send_email_body from core.models import CoreUser, CoreGroup, EmailTemplate, LogicModule, Organization, PERMISSIONS_ORG_ADMIN, \ - TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner + TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription class LogicModuleSerializer(serializers.ModelSerializer): @@ -480,3 +480,10 @@ def validate(self, attrs): raise serializers.ValidationError({'token': ['Invalid value']}) return attrs + + +class SubscriptionSerializer(serializers.ModelSerializer): + class Meta: + model = Subscription + fields = '__all__' + \ No newline at end of file diff --git a/core/tests/test_subscription_view.py b/core/tests/test_subscription_view.py new file mode 100644 index 00000000..967005ad --- /dev/null +++ b/core/tests/test_subscription_view.py @@ -0,0 +1,50 @@ +from django.urls import reverse +from django.utils import timezone +from django.test import override_settings +from rest_framework import status +from rest_framework.test import (APIClient, APITestCase) + +import factories + + +class SubscriptionTestCase(APITestCase): + def setUp(self) -> None: + self.client = APIClient() + self.user = factories.CoreUser( + first_name='John', last_name='doe', email="john@gmail.com" + ) + self.subscription = factories.Subscription( + subscription_start_date=timezone.localdate(), + organization=self.user.organization + ) + + def test_list_subscriptions(self): + self.client.force_authenticate(self.user) + response = self.client.get( + reverse('subscription-list') + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.data), 1) + + # @override_settings(STRIPE_SECRET='sk_test_ddLjeqLRWcj8znVAhMaNPu7J00evbJrikA') + # def test_post_subscription(self): + # self.client.force_authenticate(self.user) + # payload = dict( + # product='pm_1MQveB2eZvKYlo2CNDz1tA9f', + # stripe_card_info='card_1MQtzn2eZvKYlo2C8conuf6j' + # ) + # + # response = self.client.post( + # reverse('subscription-list'), + # payload, + # format='json' + # ) + # self.assertEqual(response.status_code, (status.HTTP_201_CREATED or status.HTTP_400_BAD_REQUEST)) + # self.assertEqual(response.data.get('product'), 'prod_LcvzgZTikSo1yd') + + def test_get_stripe_products(self): + response = self.client.get(f'{reverse("subscription-list")}stripe_products/') + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertGreater(len(response.data), 0) diff --git a/core/views/subscription.py b/core/views/subscription.py index 0b522520..54cc4bf5 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -12,6 +12,7 @@ from rest_framework.permissions import (AllowAny, IsAuthenticated) from core.models import Subscription +from core.serializers import SubscriptionSerializer class SubscriptionViewSet(viewsets.ModelViewSet): @@ -26,11 +27,10 @@ class SubscriptionViewSet(viewsets.ModelViewSet): """ queryset = Subscription.objects.all() - + serializer_class = SubscriptionSerializer permission_classes = (AllowAny, IsAuthenticated) def create(self, request, *args, **kwargs): - if settings.STRIPE_SECRET: data = self.get_stripe_details() if data: @@ -108,25 +108,29 @@ def get_stripe_details(self): """ data = self.request.data.copy() product = data.get('product') - card = data.get('card') + card = data.pop('stripe_card_info', None) if not (product and card): return None - stripe.api_key = settings.STRIPE_SECRET - customer = stripe.Customer.create( - email=self.request.user.email, - name=str(self.request.user.organization.name).capitalize() - ) - stripe.PaymentMethod.attach(card, customer=customer.id) - stripe_subscription_details = dict( - customer_stripe_id=customer.id, - product=product, - trial_start_date=timezone.now(), - trial_end_date=timezone.now() + relativedelta.relativedelta(months=1), - subscription_start_date=timezone.now() + relativedelta.relativedelta(months=1), - ) - - data.update(stripe_subscription_details) + try: + stripe.api_key = settings.STRIPE_SECRET + customer = stripe.Customer.create( + email=self.request.user.email, + name=str(self.request.user.organization.name).capitalize() + ) + stripe.PaymentMethod.attach(card, customer=customer.id) + stripe_subscription_details = dict( + customer_stripe_id=customer.id, + product=product, + stripe_card_info=card if data.get('save_card_details') else None, + trial_start_date=timezone.now(), + trial_end_date=timezone.now() + relativedelta.relativedelta(months=1), + subscription_start_date=timezone.now() + relativedelta.relativedelta(months=1), + ) + + data.update(stripe_subscription_details) + except stripe.error.InvalidRequestError: + return None return data diff --git a/factories/core_models.py b/factories/core_models.py index 3aae9e14..77fa0be7 100644 --- a/factories/core_models.py +++ b/factories/core_models.py @@ -1,11 +1,13 @@ from django.template.defaultfilters import slugify +from django.utils import timezone from factory import DjangoModelFactory, SubFactory, Faker, lazy_attribute from core.models import ( CoreUser as CoreUserM, CoreGroup as CoreGroupM, LogicModule as LogicModuleM, - Organization as OrganizationM + Organization as OrganizationM, + Subscription as SubscriptionM, ) @@ -17,6 +19,11 @@ class Meta: name = 'Default Organization' +class Subscription(DjangoModelFactory): + class Meta: + model = SubscriptionM + + class CoreGroup(DjangoModelFactory): name = Faker('name') diff --git a/workflow/admin.py b/workflow/admin.py index 35c776e7..3baf7ea9 100644 --- a/workflow/admin.py +++ b/workflow/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin +from core.models import Subscription from .models import WorkflowLevel1, WorkflowLevel2, WorkflowLevel2Sort, WorkflowTeam, WorkflowLevelStatus @@ -29,6 +30,27 @@ class WorkflowLevel2Admin(admin.ModelAdmin): search_fields = ('name',) +@admin.register(Subscription) +class SubscriptionAdmin(admin.ModelAdmin): + list_display = ( + 'organization', + 'user', + 'stripe_product', + 'trial_start_date', + 'trial_end_date', + 'subscription_start_date' + ) + search_fields = ('organization', 'stripe_product', 'user',) + list_filter = ( + 'organization', + 'user', + 'stripe_product', + 'trial_start_date', + 'trial_end_date', + 'subscription_start_date' + ) + + admin.site.register(WorkflowLevel2, WorkflowLevel2Admin) admin.site.register(WorkflowLevel1, WorkflowLevel1Admin) admin.site.register(WorkflowLevel2Sort) From fe8f860a6406b82b921931aa6bacf5d3ceba0ddb Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 18 Jan 2023 11:00:49 +0300 Subject: [PATCH 071/160] update stripe endpoint --- core/migrations/0012_auto_20230118_0651.py | 27 ++++++++++++++++++++++ core/models.py | 4 ++-- core/views/organization.py | 22 ++++++++++-------- core/views/subscription.py | 18 +++++++-------- 4 files changed, 51 insertions(+), 20 deletions(-) create mode 100644 core/migrations/0012_auto_20230118_0651.py diff --git a/core/migrations/0012_auto_20230118_0651.py b/core/migrations/0012_auto_20230118_0651.py new file mode 100644 index 00000000..85ed87e7 --- /dev/null +++ b/core/migrations/0012_auto_20230118_0651.py @@ -0,0 +1,27 @@ +# Generated by Django 2.2.28 on 2023-01-18 06:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0011_auto_20230115_1552'), + ] + + operations = [ + migrations.RenameField( + model_name='subscription', + old_name='stripe_id', + new_name='customer_stripe_id', + ), + migrations.RemoveField( + model_name='subscription', + name='stripe_card_info', + ), + migrations.AddField( + model_name='subscription', + name='stripe_card_id', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 08d6bab8..20fc94bb 100644 --- a/core/models.py +++ b/core/models.py @@ -281,8 +281,8 @@ class Partner(models.Model): class Subscription(models.Model): subscription_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) stripe_product = models.CharField(max_length=255) - stripe_id = models.CharField(max_length=255) - stripe_card_info = JSONField(null=True, blank=True) + customer_stripe_id = models.CharField(max_length=255) + stripe_card_id = models.CharField(max_length=255, null=True, blank=True) trial_start_date = models.DateField(null=True, blank=True) trial_end_date = models.DateField(null=True, blank=True) subscription_start_date = models.DateField() diff --git a/core/views/organization.py b/core/views/organization.py index e89285ae..9702aa21 100644 --- a/core/views/organization.py +++ b/core/views/organization.py @@ -1,7 +1,7 @@ import logging import django_filters -from rest_framework import viewsets +from rest_framework import viewsets, status from rest_framework.response import Response from rest_framework.decorators import action from core.models import Organization @@ -51,16 +51,20 @@ def list(self, request, *args, **kwargs): # /organization/names/ # send only the names - @action(detail=False, methods=['get'], permission_classes=[AllowAny], name='Fetch Already existing Organization', url_path='names') + @action( + detail=False, + methods=['get'], + permission_classes=[AllowAny], + name='Fetch Already existing Organization', + url_path='names' + ) def fetch_existing_orgs(self, request, pk=None, *args, **kwargs): """ - Fetch Already existing Organizations in Buildly Core, + Fetch the names of already existing Organizations in Buildly Core, Any logged in user can access this """ # all orgs in Buildly Core - queryset = Organization.objects.all() - names = list() - for record in queryset: - names.append(record.name) - - return Response(names) + return Response( + list(Organization.objects.values_list('name', flat=True)), + status=status.HTTP_200_OK + ) diff --git a/core/views/subscription.py b/core/views/subscription.py index 54cc4bf5..ea5989e2 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -77,7 +77,6 @@ def perform_create(self, serializer): serializer.save( user=self.request.user, created_by=self.request.user, - organization=self.request.user.organization ) @action( @@ -108,9 +107,9 @@ def get_stripe_details(self): """ data = self.request.data.copy() product = data.get('product') - card = data.pop('stripe_card_info', None) + card_id = data.pop('card_id', None) - if not (product and card): + if not (product and card_id): return None try: @@ -119,14 +118,15 @@ def get_stripe_details(self): email=self.request.user.email, name=str(self.request.user.organization.name).capitalize() ) - stripe.PaymentMethod.attach(card, customer=customer.id) + stripe.PaymentMethod.attach(card_id, customer=customer.id) stripe_subscription_details = dict( customer_stripe_id=customer.id, - product=product, - stripe_card_info=card if data.get('save_card_details') else None, - trial_start_date=timezone.now(), - trial_end_date=timezone.now() + relativedelta.relativedelta(months=1), - subscription_start_date=timezone.now() + relativedelta.relativedelta(months=1), + stripe_product=product, + stripe_card_id=card_id, + trial_start_date=timezone.now().date(), + trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), + subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), + organization=self.request.user.organization.id, ) data.update(stripe_subscription_details) From 00caa76a98c98227e368be0c3186ee5b5642fdda Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 18 Jan 2023 12:59:15 +0300 Subject: [PATCH 072/160] fix tests --- core/serializers.py | 71 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 8 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 93c9ce4c..d4bda81f 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -80,6 +80,7 @@ class CoreUserSerializer(serializers.ModelSerializer): is_active = serializers.BooleanField(required=False) core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) + subscriptions = serializers.SerializerMethodField() def validate_invitation_token(self, value): try: @@ -95,12 +96,33 @@ def validate_invitation_token(self, value): class Meta: model = CoreUser - fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', - 'title', 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', - 'invitation_token', 'user_type', 'survey_status') + fields = ( + 'id', + 'core_user_uuid', + 'first_name', + 'last_name', + 'email', + 'username', + 'is_active', + 'title', + 'contact_info', + 'privacy_disclaimer_accepted', + 'organization', + 'core_groups', + 'invitation_token', + 'user_type', + 'survey_status', + 'subscriptions' + ) read_only_fields = ('core_user_uuid', 'organization',) depth = 1 + def get_subscriptions(self, user): + return SubscriptionSerializer( + user.organization.organization_subscription.all(), + many=True + ).data + class CoreUserWritableSerializer(CoreUserSerializer): """ @@ -327,11 +349,28 @@ def save(self): class OrganizationSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) + subscription = serializers.SerializerMethodField() + + class Meta: + model = Organization + fields = '__all__' + + def get_subscription(self): + return SubscriptionSerializer(self.organization_subscription.all()).data + + +class OrganizationNestedSerializer(serializers.ModelSerializer): + id = serializers.UUIDField(source='organization_uuid', read_only=True) + subscription = serializers.SerializerMethodField() class Meta: model = Organization fields = '__all__' + def get_subscription(self, organization): + return SubscriptionSerializer( + organization.organization_subscription.all() + ).data class AccessTokenSerializer(serializers.ModelSerializer): user = CoreUserSerializer() @@ -366,8 +405,10 @@ def create(self, validated_data): class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): - """ Let's user update his organization_name,and email from the one time pop-up screen. - Also this assigns permissions to users """ + """ + Lets user update his organization_name,and email from the one time pop-up screen. + Also, this assigns permissions to users + """ email = serializers.CharField(required=False) organization_name = serializers.CharField(required=False) @@ -376,9 +417,23 @@ class CoreUserUpdateOrganizationSerializer(serializers.ModelSerializer): class Meta: model = CoreUser - fields = ('id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', - 'contact_info', 'privacy_disclaimer_accepted', 'organization_name', 'organization', 'core_groups', - 'user_type', 'survey_status') + fields = ( + 'id', + 'core_user_uuid', + 'first_name', + 'last_name', + 'email', + 'username', + 'is_active', + 'title', + 'contact_info', + 'privacy_disclaimer_accepted', + 'organization_name', + 'organization', + 'core_groups', + 'user_type', + 'survey_status' + ) def update(self, instance, validated_data): organization_name = str(validated_data.pop('organization_name')).lower() From 4b0764ccc4a0d1a6219225d82c16e7f0c993f992 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 24 Jan 2023 09:58:28 +0300 Subject: [PATCH 073/160] fix error --- core/views/subscription.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index ea5989e2..34eb8c0c 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -126,7 +126,7 @@ def get_stripe_details(self): trial_start_date=timezone.now().date(), trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), - organization=self.request.user.organization.id, + organization=self.request.user.organization.organization_uuid, ) data.update(stripe_subscription_details) From 2851464100225653527cd8483b5ff90d9a1bd53c Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 7 Feb 2023 17:04:00 +0300 Subject: [PATCH 074/160] fix get org --- core/migrations/0013_auto_20230207_1403.py | 23 ++++++++++++++++++++++ core/models.py | 3 ++- core/serializers.py | 4 ++-- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 core/migrations/0013_auto_20230207_1403.py diff --git a/core/migrations/0013_auto_20230207_1403.py b/core/migrations/0013_auto_20230207_1403.py new file mode 100644 index 00000000..c8e90aa6 --- /dev/null +++ b/core/migrations/0013_auto_20230207_1403.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.28 on 2023-02-07 14:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0012_auto_20230118_0651'), + ] + + operations = [ + migrations.AddField( + model_name='subscription', + name='subscription_end_date', + field=models.DateField(blank=True, null=True), + ), + migrations.AlterField( + model_name='subscription', + name='subscription_start_date', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 20fc94bb..573d9da8 100644 --- a/core/models.py +++ b/core/models.py @@ -285,7 +285,8 @@ class Subscription(models.Model): stripe_card_id = models.CharField(max_length=255, null=True, blank=True) trial_start_date = models.DateField(null=True, blank=True) trial_end_date = models.DateField(null=True, blank=True) - subscription_start_date = models.DateField() + subscription_start_date = models.DateField(null=True, blank=True) + subscription_end_date = models.DateField(null=True, blank=True) create_date = models.DateTimeField(auto_now_add=True) update_date = models.DateTimeField(auto_now=True) user = models.ForeignKey( diff --git a/core/serializers.py b/core/serializers.py index d4bda81f..cf0264de 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -355,8 +355,8 @@ class Meta: model = Organization fields = '__all__' - def get_subscription(self): - return SubscriptionSerializer(self.organization_subscription.all()).data + def get_subscription(self, organization): + return SubscriptionSerializer(organization.organization_subscription.all()).data class OrganizationNestedSerializer(serializers.ModelSerializer): From ec277e5c28dd5a2a543b25a87d25b1e768f03ace Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 8 Feb 2023 18:56:53 +0300 Subject: [PATCH 075/160] fix microwave --- core/serializers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/serializers.py b/core/serializers.py index cf0264de..5c0376ce 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -369,7 +369,8 @@ class Meta: def get_subscription(self, organization): return SubscriptionSerializer( - organization.organization_subscription.all() + organization.organization_subscription.all(), + many=True ).data class AccessTokenSerializer(serializers.ModelSerializer): From af615c5764a1743f18db19ac3abb6a8a4fbfeff4 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 13 Feb 2023 11:16:47 +0300 Subject: [PATCH 076/160] update versuion --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2f5e5a47..b4bb8d7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.4" +LABEL version="0.5.5" From 1d7b088f317eacd9525a5ff36012e69d4298b9fa Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 14 Feb 2023 16:45:48 +0300 Subject: [PATCH 077/160] fix serializer error --- Dockerfile | 2 +- core/serializers.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b4bb8d7e..cbac8762 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7-alpine3.10 +FROM --platform=linux/amd64 python:3.7-alpine3.10 # Do not buffer log messages in memory; some messages can be lost otherwise ENV PYTHONUNBUFFERED 1 diff --git a/core/serializers.py b/core/serializers.py index 5c0376ce..1459f6e7 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -356,7 +356,10 @@ class Meta: fields = '__all__' def get_subscription(self, organization): - return SubscriptionSerializer(organization.organization_subscription.all()).data + return SubscriptionSerializer( + organization.organization_subscription.all(), + many=True + ).data class OrganizationNestedSerializer(serializers.ModelSerializer): From dfd165e250e8b5e5c9e58b4c07fcca59c779cfab Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 15 Feb 2023 17:41:28 +0300 Subject: [PATCH 078/160] update stripe info --- core/models.py | 1 + core/views/subscription.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/models.py b/core/models.py index 573d9da8..97aae528 100644 --- a/core/models.py +++ b/core/models.py @@ -281,6 +281,7 @@ class Partner(models.Model): class Subscription(models.Model): subscription_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) stripe_product = models.CharField(max_length=255) + stripe_product_info = JSONField(blank=True, null=True) customer_stripe_id = models.CharField(max_length=255) stripe_card_id = models.CharField(max_length=255, null=True, blank=True) trial_start_date = models.DateField(null=True, blank=True) diff --git a/core/views/subscription.py b/core/views/subscription.py index 34eb8c0c..eb8d77eb 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -126,10 +126,22 @@ def get_stripe_details(self): trial_start_date=timezone.now().date(), trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), + subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=2), organization=self.request.user.organization.organization_uuid, ) - data.update(stripe_subscription_details) + + # get product details + stripe_product = stripe.Product.retrieve(product).data + data.update( + dict( + stripe_product_info=dict( + id=stripe_product.get('id'), + name=stripe_product.get('name') + ) + ) + ) + except stripe.error.InvalidRequestError: return None From 980243a001b77c52c82348367293fd9727b2f80a Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 15 Feb 2023 17:44:43 +0300 Subject: [PATCH 079/160] update subscription fields --- .../0014_subscription_stripe_product_info.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 core/migrations/0014_subscription_stripe_product_info.py diff --git a/core/migrations/0014_subscription_stripe_product_info.py b/core/migrations/0014_subscription_stripe_product_info.py new file mode 100644 index 00000000..67b1b73d --- /dev/null +++ b/core/migrations/0014_subscription_stripe_product_info.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.28 on 2023-02-15 14:43 + +import django.contrib.postgres.fields.jsonb +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0013_auto_20230207_1403'), + ] + + operations = [ + migrations.AddField( + model_name='subscription', + name='stripe_product_info', + field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True), + ), + ] From 4f04a3d892ef7001d5192b5a0d176453f3cd2222 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 16 Feb 2023 09:21:25 +0300 Subject: [PATCH 080/160] fix subscription endpoint --- core/views/subscription.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index eb8d77eb..7f60ee8e 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -132,12 +132,13 @@ def get_stripe_details(self): data.update(stripe_subscription_details) # get product details - stripe_product = stripe.Product.retrieve(product).data + stripe_product = stripe.Product.retrieve(product) data.update( dict( stripe_product_info=dict( id=stripe_product.get('id'), - name=stripe_product.get('name') + name=stripe_product.get('name'), + description=stripe_product.get('description', ''), ) ) ) @@ -146,3 +147,4 @@ def get_stripe_details(self): return None return data + From 9b9cbafa5546ec3384d1e9074af6738ee0f8bb4d Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 23 Feb 2023 17:35:44 +0300 Subject: [PATCH 081/160] fix data --- core/views/subscription.py | 20 ++++++++++ templates/email/coreuser/subscription.html | 46 ++++++++++++++++++++++ templates/email/coreuser/subscription.txt | 11 ++++++ 3 files changed, 77 insertions(+) create mode 100644 templates/email/coreuser/subscription.html create mode 100644 templates/email/coreuser/subscription.txt diff --git a/core/views/subscription.py b/core/views/subscription.py index 7f60ee8e..c51e86af 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -11,6 +11,7 @@ from rest_framework.decorators import action from rest_framework.permissions import (AllowAny, IsAuthenticated) +from core.email_utils import send_email from core.models import Subscription from core.serializers import SubscriptionSerializer @@ -60,6 +61,25 @@ def update(self, request, *args, **kwargs): serializer.is_valid(raise_exception=True) self.perform_create(serializer) + product_info = data.get('stripe_product_info', {}) + # send the email + frontend_link = '' + context = { + 'frontend_link': frontend_link, + 'product_name': product_info.get('name'), + 'product_description': product_info.get('description') + } + subject = 'Subscription Success' + template_name = 'email/coreuser/subscription.txt' + html_template_name = 'email/coreuser/subscription.html' + send_email( + self.request.user.email, + subject, + context, + template_name, + html_template_name + ) + return Response( serializer.data, status=status.HTTP_201_CREATED diff --git a/templates/email/coreuser/subscription.html b/templates/email/coreuser/subscription.html new file mode 100644 index 00000000..35dacb69 --- /dev/null +++ b/templates/email/coreuser/subscription.html @@ -0,0 +1,46 @@ + + + + + + + +
Buildly
+



+ + + + + + +
+

Subscription successful!

+

You have successfully subscribed to Insights on Buildly!
Click the button below to return to the app

+
+ + + + + + +
Buildly Insights
+ + + + + + + + + + + + + + + +
+

Package

+
{{ product_name }}
{{ product_description }}
+ + diff --git a/templates/email/coreuser/subscription.txt b/templates/email/coreuser/subscription.txt new file mode 100644 index 00000000..c930c8f9 --- /dev/null +++ b/templates/email/coreuser/subscription.txt @@ -0,0 +1,11 @@ +Subscription successful! + +You have successfully subscribed to Insights on Buildly. + +Go to {{ frontend_link }} to access the app. + +Package! + +{{ product_name }} + +{{ product_description }} \ No newline at end of file From cd6e540ecb36bcb94bc6561f3cd1a26505ec6b2b Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 23 Feb 2023 18:10:39 +0300 Subject: [PATCH 082/160] fix data --- core/views/subscription.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index c51e86af..333eca10 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -63,9 +63,8 @@ def update(self, request, *args, **kwargs): product_info = data.get('stripe_product_info', {}) # send the email - frontend_link = '' context = { - 'frontend_link': frontend_link, + 'frontend_link': settings.FRONTEND_URL, 'product_name': product_info.get('name'), 'product_description': product_info.get('description') } From d1ec61781a96e3d8514a9e862fac636820eb08ac Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 1 Mar 2023 07:53:40 +0100 Subject: [PATCH 083/160] add coupon field --- core/migrations/0015_coreuser_coupon.py | 18 ++++++++++++++++++ core/models.py | 1 + 2 files changed, 19 insertions(+) create mode 100644 core/migrations/0015_coreuser_coupon.py diff --git a/core/migrations/0015_coreuser_coupon.py b/core/migrations/0015_coreuser_coupon.py new file mode 100644 index 00000000..87912c7e --- /dev/null +++ b/core/migrations/0015_coreuser_coupon.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2023-03-01 06:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0014_subscription_stripe_product_info'), + ] + + operations = [ + migrations.AddField( + model_name='coreuser', + name='coupon', + field=models.CharField(blank=True, max_length=48, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 97aae528..c1d2cd02 100644 --- a/core/models.py +++ b/core/models.py @@ -187,6 +187,7 @@ class CoreUser(AbstractUser): edit_date = models.DateTimeField(null=True, blank=True) user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, default='Product Team') survey_status = models.BooleanField(default=False) + coupon = models.CharField(max_length=48, blank=True, null=True) class Meta: ordering = ('first_name',) From c35b70d6f633723d5911db56be8355a197722703 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 1 Mar 2023 14:11:07 +0100 Subject: [PATCH 084/160] update coupon code --- core/migrations/0016_auto_20230301_1310.py | 18 ++++++++++++++++++ core/models.py | 2 +- core/serializers.py | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 core/migrations/0016_auto_20230301_1310.py diff --git a/core/migrations/0016_auto_20230301_1310.py b/core/migrations/0016_auto_20230301_1310.py new file mode 100644 index 00000000..482cdf8e --- /dev/null +++ b/core/migrations/0016_auto_20230301_1310.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2023-03-01 13:10 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0015_coreuser_coupon'), + ] + + operations = [ + migrations.RenameField( + model_name='coreuser', + old_name='coupon', + new_name='coupon_code', + ), + ] diff --git a/core/models.py b/core/models.py index c1d2cd02..29cdca44 100644 --- a/core/models.py +++ b/core/models.py @@ -187,7 +187,7 @@ class CoreUser(AbstractUser): edit_date = models.DateTimeField(null=True, blank=True) user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, default='Product Team') survey_status = models.BooleanField(default=False) - coupon = models.CharField(max_length=48, blank=True, null=True) + coupon_code = models.CharField(max_length=48, blank=True, null=True) class Meta: ordering = ('first_name',) diff --git a/core/serializers.py b/core/serializers.py index 1459f6e7..75a82bd0 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -146,7 +146,7 @@ def create(self, validated_data): core_groups = validated_data.pop('core_groups', []) invitation_token = validated_data.pop('invitation_token', None) - coupon_code = validated_data.pop('coupon_code', None) + coupon_code = validated_data.get('coupon_code', None) # create core user if settings.AUTO_APPROVE_USER: # If auto-approval set to true From 57fdec47e05b20db5e50ff6aa5c32e86dd8c8669 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 9 Mar 2023 12:33:26 +0100 Subject: [PATCH 085/160] update version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cbac8762..b80f4585 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.5" +LABEL version="0.5.6" From 3e929ac005c956a7eafdd84ae7057edfff0d61eb Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sun, 19 Mar 2023 19:12:30 +0100 Subject: [PATCH 086/160] clean subscription --- ...017_subscription_stripe_subscription_id.py | 18 +++++ core/migrations/0018_auto_20230319_1707.py | 27 +++++++ core/models.py | 5 +- core/views/subscription.py | 80 +++++++++++-------- 4 files changed, 96 insertions(+), 34 deletions(-) create mode 100644 core/migrations/0017_subscription_stripe_subscription_id.py create mode 100644 core/migrations/0018_auto_20230319_1707.py diff --git a/core/migrations/0017_subscription_stripe_subscription_id.py b/core/migrations/0017_subscription_stripe_subscription_id.py new file mode 100644 index 00000000..3b605283 --- /dev/null +++ b/core/migrations/0017_subscription_stripe_subscription_id.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2023-03-19 10:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0016_auto_20230301_1310'), + ] + + operations = [ + migrations.AddField( + model_name='subscription', + name='stripe_subscription_id', + field=models.CharField(max_length=255, null=True), + ), + ] diff --git a/core/migrations/0018_auto_20230319_1707.py b/core/migrations/0018_auto_20230319_1707.py new file mode 100644 index 00000000..fbf90170 --- /dev/null +++ b/core/migrations/0018_auto_20230319_1707.py @@ -0,0 +1,27 @@ +# Generated by Django 2.2.28 on 2023-03-19 17:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0017_subscription_stripe_subscription_id'), + ] + + operations = [ + migrations.RenameField( + model_name='subscription', + old_name='stripe_card_id', + new_name='stripe_payment_method_id', + ), + migrations.RemoveField( + model_name='subscription', + name='customer_stripe_id', + ), + migrations.AddField( + model_name='subscription', + name='stripe_customer_id', + field=models.CharField(max_length=255, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 29cdca44..9cac491d 100644 --- a/core/models.py +++ b/core/models.py @@ -281,10 +281,11 @@ class Partner(models.Model): class Subscription(models.Model): subscription_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) + stripe_subscription_id = models.CharField(max_length=255, null=True) stripe_product = models.CharField(max_length=255) stripe_product_info = JSONField(blank=True, null=True) - customer_stripe_id = models.CharField(max_length=255) - stripe_card_id = models.CharField(max_length=255, null=True, blank=True) + stripe_customer_id = models.CharField(max_length=255, null=True) + stripe_payment_method_id = models.CharField(max_length=255, null=True, blank=True) trial_start_date = models.DateField(null=True, blank=True) trial_end_date = models.DateField(null=True, blank=True) subscription_start_date = models.DateField(null=True, blank=True) diff --git a/core/views/subscription.py b/core/views/subscription.py index 333eca10..97d52524 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -33,16 +33,17 @@ class SubscriptionViewSet(viewsets.ModelViewSet): def create(self, request, *args, **kwargs): if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET data = self.get_stripe_details() if data: serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) - return Response( - serializer.data, - status=status.HTTP_201_CREATED - ) + return Response( + data, + status=status.HTTP_201_CREATED + ) return Response( dict( @@ -104,7 +105,7 @@ def perform_create(self, serializer): permission_classes=[AllowAny], name='Fetch all existing products', ) - def stripe_products(self, request, pk=None, *args, **kwargs): + def stripe_products(self, request, *args, **kwargs): """ Fetch all existing Products in Stripe Platform """ @@ -112,7 +113,7 @@ def stripe_products(self, request, pk=None, *args, **kwargs): products = [] if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET - stripe_products = stripe.Product.list() + stripe_products = stripe.Customer.list() products = stripe_products.data return Response( @@ -125,45 +126,60 @@ def get_stripe_details(self): Get stripe details """ data = self.request.data.copy() - product = data.get('product') - card_id = data.pop('card_id', None) + product_id = data.get('product') + payment_method_id = data.pop('card_id', None) - if not (product and card_id): + if not (product_id and payment_method_id): return None + # get stripe product + stripe_product = stripe.Product.retrieve(product_id) + try: - stripe.api_key = settings.STRIPE_SECRET customer = stripe.Customer.create( email=self.request.user.email, name=str(self.request.user.organization.name).capitalize() ) - stripe.PaymentMethod.attach(card_id, customer=customer.id) - stripe_subscription_details = dict( - customer_stripe_id=customer.id, - stripe_product=product, - stripe_card_id=card_id, - trial_start_date=timezone.now().date(), - trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), - subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), - subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=2), - organization=self.request.user.organization.organization_uuid, + stripe.PaymentMethod.attach(payment_method_id, customer=customer.id) + + # create subscription: + stripe_subscription = stripe.Subscription.create( + customer=customer.id, + items=[ + {"price": stripe_product.default_price}, + ], + trial_start=datetime.strptime(timezone.now().date(), '%Y-%m-%d'), + trial_end_date=datetime.strptime( + timezone.now().date() + relativedelta.relativedelta(months=1), + '%Y-%m-%d' + ) ) - data.update(stripe_subscription_details) - - # get product details - stripe_product = stripe.Product.retrieve(product) - data.update( - dict( - stripe_product_info=dict( - id=stripe_product.get('id'), - name=stripe_product.get('name'), - description=stripe_product.get('description', ''), + + if stripe_subscription: + stripe_subscription_details = dict( + customer_stripe_id=customer.id, + stripe_subscription_id=stripe_subscription.id, + stripe_product=product_id, + stripe_payment_method_id=payment_method_id, + trial_start_date=timezone.now().date(), + trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), + subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), + subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=2), + organization=self.request.user.organization.organization_uuid, + ) + data.update(stripe_subscription_details) + + data.update( + dict( + stripe_product_info=dict( + id=stripe_product.get('id'), + name=stripe_product.get('name'), + description=stripe_product.get('description', ''), + ) ) ) - ) except stripe.error.InvalidRequestError: return None return data - From d64e0d1829873a620bf8d4ac69c7bb83caba3c47 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 20 Mar 2023 16:54:53 +0100 Subject: [PATCH 087/160] fix products --- core/views/subscription.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index 97d52524..7f5afa20 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -113,7 +113,7 @@ def stripe_products(self, request, *args, **kwargs): products = [] if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET - stripe_products = stripe.Customer.list() + stripe_products = stripe.Product.list() products = stripe_products.data return Response( From 3b53895881fa3d6a26567865ed81de208d7b8c55 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 20 Mar 2023 17:28:20 +0100 Subject: [PATCH 088/160] fix products --- core/views/subscription.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index 7f5afa20..aeb6c3bd 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -113,7 +113,7 @@ def stripe_products(self, request, *args, **kwargs): products = [] if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET - stripe_products = stripe.Product.list() + stripe_products = stripe.Product.search(query="active:'true'",) products = stripe_products.data return Response( From 0cad262a33746213ae5d09c5c55949a54447940e Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 20 Mar 2023 17:42:13 +0100 Subject: [PATCH 089/160] fix subscription date error --- core/views/subscription.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index aeb6c3bd..bcda9add 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -148,11 +148,10 @@ def get_stripe_details(self): items=[ {"price": stripe_product.default_price}, ], - trial_start=datetime.strptime(timezone.now().date(), '%Y-%m-%d'), - trial_end_date=datetime.strptime( - timezone.now().date() + relativedelta.relativedelta(months=1), - '%Y-%m-%d' - ) + trial_start=(timezone.now().date() - relativedelta.relativedelta(months=1)).timestamp(), + trial_end=timezone.now().date().timestamp(), + current_period_start=timezone.now().date().timestamp(), + current_period_end=(timezone.now().date() + relativedelta.relativedelta(months=1)).timestamp() ) if stripe_subscription: @@ -161,10 +160,10 @@ def get_stripe_details(self): stripe_subscription_id=stripe_subscription.id, stripe_product=product_id, stripe_payment_method_id=payment_method_id, - trial_start_date=timezone.now().date(), - trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), - subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), - subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=2), + trial_start_date=timezone.now().date() - relativedelta.relativedelta(months=1), + trial_end_date=timezone.now().date(), + subscription_start_date=timezone.now().date(), + subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), organization=self.request.user.organization.organization_uuid, ) data.update(stripe_subscription_details) From 2d431a6c74b206a41d830ddb604ab710a2c54503 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 20 Mar 2023 18:02:34 +0100 Subject: [PATCH 090/160] set stripe api version --- core/views/subscription.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/views/subscription.py b/core/views/subscription.py index bcda9add..84897bf8 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -34,6 +34,7 @@ class SubscriptionViewSet(viewsets.ModelViewSet): def create(self, request, *args, **kwargs): if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET + stripe.api_version = '2022-11-15' data = self.get_stripe_details() if data: serializer = self.get_serializer(data=data) @@ -56,6 +57,8 @@ def create(self, request, *args, **kwargs): def update(self, request, *args, **kwargs): instance = self.get_object() if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET + stripe.api_version = '2022-11-15' data = self.get_stripe_details() if data: serializer = self.get_serializer(instance, data=data, partial=True) @@ -113,6 +116,7 @@ def stripe_products(self, request, *args, **kwargs): products = [] if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET + stripe.api_version = '2022-11-15' stripe_products = stripe.Product.search(query="active:'true'",) products = stripe_products.data From aaed694d5386c47c0534d3f1dbda5eedf520a3b6 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 20 Mar 2023 18:25:49 +0100 Subject: [PATCH 091/160] fix data --- core/views/subscription.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index 84897bf8..d037a22c 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -152,10 +152,10 @@ def get_stripe_details(self): items=[ {"price": stripe_product.default_price}, ], - trial_start=(timezone.now().date() - relativedelta.relativedelta(months=1)).timestamp(), - trial_end=timezone.now().date().timestamp(), - current_period_start=timezone.now().date().timestamp(), - current_period_end=(timezone.now().date() + relativedelta.relativedelta(months=1)).timestamp() + trial_start=(timezone.now() - relativedelta.relativedelta(months=1)).timestamp(), + trial_end=timezone.now().timestamp(), + current_period_start=timezone.now().timestamp(), + current_period_end=(timezone.now() + relativedelta.relativedelta(months=1)).timestamp() ) if stripe_subscription: From aeda6e72baec7cbf79d7a233b464158e6eddc250 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 21 Mar 2023 20:55:34 +0100 Subject: [PATCH 092/160] fix data --- core/views/subscription.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index d037a22c..cf693f36 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -87,6 +87,13 @@ def update(self, request, *args, **kwargs): serializer.data, status=status.HTTP_201_CREATED ) + return Response( + dict( + code='stripe_api_error', + message='There was an error creating subscription' + ), + status=status.HTTP_400_BAD_REQUEST + ) return Response( dict( @@ -142,20 +149,25 @@ def get_stripe_details(self): try: customer = stripe.Customer.create( email=self.request.user.email, - name=str(self.request.user.organization.name).capitalize() + name=str(self.request.user.organization.name).capitalize(), + ) stripe.PaymentMethod.attach(payment_method_id, customer=customer.id) + # set default payment method + customer = stripe.Customer.modify( + customer.id, + invoice_settings={ + 'default_payment_method': payment_method_id + } + ) + # create subscription: stripe_subscription = stripe.Subscription.create( customer=customer.id, items=[ {"price": stripe_product.default_price}, ], - trial_start=(timezone.now() - relativedelta.relativedelta(months=1)).timestamp(), - trial_end=timezone.now().timestamp(), - current_period_start=timezone.now().timestamp(), - current_period_end=(timezone.now() + relativedelta.relativedelta(months=1)).timestamp() ) if stripe_subscription: From 131ad20d8b46968806d351d2e5debce28ac8fb19 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 22 Mar 2023 16:31:24 +0100 Subject: [PATCH 093/160] bump version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b80f4585..c23e3adb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.6" +LABEL version="0.5.7" From 633e6c0184072b8b48518a0720f8f6d31a71427c Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 23 Mar 2023 08:55:49 +0100 Subject: [PATCH 094/160] fix unit tests --- core/serializers.py | 4 ++-- core/tests/test_coreuserview.py | 7 +++++-- core/tests/test_serializers.py | 4 +++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 75a82bd0..27bd8325 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -349,13 +349,13 @@ def save(self): class OrganizationSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) - subscription = serializers.SerializerMethodField() + subscriptions = serializers.SerializerMethodField() class Meta: model = Organization fields = '__all__' - def get_subscription(self, organization): + def get_subscriptions(self, organization): return SubscriptionSerializer( organization.organization_subscription.all(), many=True diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index b9dda343..4202f6da 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -434,8 +434,11 @@ def test_reset_password_confirm_token_expired(self, request_factory, reset_passw @pytest.mark.django_db() class TestCoreUserRead(object): - keys = {'id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', - 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', 'user_type', 'survey_status'} + keys = { + 'id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', + 'subscriptions', 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', + 'user_type', 'survey_status' + } def test_coreuser_list(self, request_factory, org_member): factories.CoreUser.create(organization=org_member.organization, username='another_user') # 2nd user of the org diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index ca7b7ae4..f23eff00 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -21,6 +21,7 @@ def test_org_serializer(request_factory, org): 'phone', 'industries', 'unlimited_free_plan', + 'subscriptions', ] assert set(data.keys()) == set(keys) @@ -62,7 +63,8 @@ def test_core_user_serializer(request_factory, org_member): 'organization', 'core_groups', 'user_type', - 'survey_status' + 'survey_status', + 'subscriptions' ] assert set(data.keys()) == set(keys) assert isinstance(data['organization'], dict) From 9dc5db5c7524ac542ca2b90475768757eab3b93a Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 3 May 2023 21:19:56 +0200 Subject: [PATCH 095/160] bump version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c23e3adb..a60e0711 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.7" +LABEL version="0.5.8" From bca94ac3ffb043a9ec3f0a747f05743dcf6a49b0 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 22 Aug 2023 17:17:57 +0300 Subject: [PATCH 096/160] fix invite link --- buildly/settings/production.py | 1 - core/views/coreuser.py | 11 ++--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/buildly/settings/production.py b/buildly/settings/production.py index be799f2d..5e96243e 100644 --- a/buildly/settings/production.py +++ b/buildly/settings/production.py @@ -1,4 +1,3 @@ -from .base import * from .authentication import * from .email import * diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 48498fed..b8a29fa2 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -9,9 +9,6 @@ import django_filters import jwt from drf_yasg.utils import swagger_auto_schema -from django.http import Http404 -from rest_framework.views import APIView -from rest_framework.permissions import AllowAny from core.models import CoreUser, Organization from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, @@ -156,9 +153,6 @@ def invite_check(self, request, *args, **kwargs): @transaction.atomic def perform_invite(self, serializer): - reg_location = urljoin(settings.FRONTEND_URL, - settings.REGISTRATION_URL_PATH) - reg_location = reg_location + '?token={}' email_addresses = serializer.validated_data.get('emails') user = self.request.user @@ -173,9 +167,8 @@ def perform_invite(self, serializer): token = create_invitation_token(email_address, organization) # build the invitation link - invitation_link = self.request.build_absolute_uri( - reg_location.format(token) - ) + invitation_link = f'{settings.FRONTEND_URL}{settings.REGISTRATION_URL_PATH}?token={token}' + links.append(invitation_link) # create the used context for the E-mail templates From c69f4cd5d948802077d9017d489289f9942704e9 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sat, 14 Oct 2023 14:43:00 +0300 Subject: [PATCH 097/160] add users --- core/views/coreuser.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index b8a29fa2..b7797fff 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -89,6 +89,17 @@ def me(self, request, *args, **kwargs): serializer = self.get_serializer(instance=user, context={'request': request}) return Response(serializer.data) + @action(methods=['POST'], detail=False) + def assignees(self, request, *args, **kwargs): + user_uuids = request.data + users = ( + self.get_queryset() + .filter(core_user_uuid__in=user_uuids) + .values('core_user_uuid', 'first_name', 'last_name', 'email') + ) + + return Response(list(users), status=status.HTTP_200_OK) + @swagger_auto_schema(methods=['post'], request_body=CoreUserInvitationSerializer, responses=COREUSER_INVITE_RESPONSE) @@ -330,4 +341,4 @@ def verify_email(self, request, *args, **kwargs): { 'success': serializer.is_valid(), }, - status=status.HTTP_200_OK) \ No newline at end of file + status=status.HTTP_200_OK) From 17b11722f8cf072108a453160e96e611ac6bb818 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sat, 14 Oct 2023 16:23:13 +0300 Subject: [PATCH 098/160] fix data --- core/views/coreuser.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index b7797fff..371bf491 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -92,13 +92,23 @@ def me(self, request, *args, **kwargs): @action(methods=['POST'], detail=False) def assignees(self, request, *args, **kwargs): user_uuids = request.data - users = ( - self.get_queryset() - .filter(core_user_uuid__in=user_uuids) - .values('core_user_uuid', 'first_name', 'last_name', 'email') - ) + final_data= dict() + if user_uuids: + users = ( + self.get_queryset() + .in_bulk(user_uuids) + ) + + final_data = { + key: dict( + first_name=value.first_name, + last_name=value.last_name, + ) + for key, value in users.items() + } + - return Response(list(users), status=status.HTTP_200_OK) + return Response(final_data, status=status.HTTP_200_OK) @swagger_auto_schema(methods=['post'], request_body=CoreUserInvitationSerializer, From 89317d3b39a085ae501b96f4887f50520ecc5061 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sun, 15 Oct 2023 13:24:52 +0300 Subject: [PATCH 099/160] fix data --- core/views/coreuser.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 371bf491..1c3a56b4 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -96,15 +96,15 @@ def assignees(self, request, *args, **kwargs): if user_uuids: users = ( self.get_queryset() - .in_bulk(user_uuids) + .filter(core_user_uuid__in=user_uuids) ) final_data = { - key: dict( - first_name=value.first_name, - last_name=value.last_name, + item.core_user_uuid: dict( + first_name=item.first_name, + last_name=item.last_name, ) - for key, value in users.items() + for item in users.items() } From 6cf8e66227f6dc0606a1480e3f70639f05f1a0f2 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sun, 15 Oct 2023 16:03:15 +0300 Subject: [PATCH 100/160] fix data --- core/views/coreuser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 1c3a56b4..6d0d9ee4 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -104,7 +104,7 @@ def assignees(self, request, *args, **kwargs): first_name=item.first_name, last_name=item.last_name, ) - for item in users.items() + for item in users } From ba59656b87d07f5225d84a0f64639692b9aefef9 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 8 Nov 2023 17:36:13 +0300 Subject: [PATCH 101/160] fix error --- templates/email/coreuser/invitation.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index a1b5f7e8..f295cfa2 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -20,7 +20,9 @@

- My profile + + Accept invitation + From a8228d0d340ed8965f06b14454965ed545b76ab2 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 8 Nov 2023 17:37:26 +0300 Subject: [PATCH 102/160] fix error --- templates/email/coreuser/invitation.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index f295cfa2..9a5b09b9 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -21,7 +21,8 @@

- Accept invitation + Accept invitation
+ or copy link: {{ invitation_link }} From f51b9ce9e7ec1b59e06081134555fa34fe6fed4c Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 8 Nov 2023 19:51:45 +0300 Subject: [PATCH 103/160] fix error --- templates/email/coreuser/invitation.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index 9a5b09b9..be8d5d00 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -21,10 +21,13 @@

- Accept invitation
- or copy link: {{ invitation_link }} + My Profile
+ +

Or copy the link:


+

{{ invitation_link }}

+ From eb481a807f0ed50c55a7020198e02fadf153af41 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 8 Nov 2023 20:18:05 +0300 Subject: [PATCH 104/160] fix error --- templates/email/coreuser/invitation.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index be8d5d00..4168bf03 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -25,8 +25,8 @@

-

Or copy the link:


-

{{ invitation_link }}

+

Or copy the link:

+

{{ invitation_link }}

From 54976265febee472f0da9b70e2e123bbcf1fe8c2 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sat, 11 Nov 2023 11:51:05 +0300 Subject: [PATCH 105/160] bump version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a60e0711..a6af8214 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.5.8" +LABEL version="0.6.0" From b761721954fb86efab3e52e478b7f1f11b56cd24 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Sat, 11 Nov 2023 21:53:54 +0530 Subject: [PATCH 106/160] fix github actions --- .github/workflows/prod-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml index 95f8d433..a92b4ae1 100644 --- a/.github/workflows/prod-build.yml +++ b/.github/workflows/prod-build.yml @@ -19,8 +19,9 @@ jobs: # auto generate tag from label defined in Dockerfile - uses: butlerlogic/action-autotag@stable id: tag_version - with: + env: GITHUB_TOKEN: "${{ secrets.RELEASE_TOKEN }}" + with: strategy: docker tag_prefix: "v" From d046e65f6ce1a611a833f0d2861baeca1c32242a Mon Sep 17 00:00:00 2001 From: Radhika Patel <64517071+patelradhika@users.noreply.github.com> Date: Sat, 11 Nov 2023 22:03:44 +0530 Subject: [PATCH 107/160] Production release 0.6.0 --- .github/workflows/prod-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml index 95f8d433..a92b4ae1 100644 --- a/.github/workflows/prod-build.yml +++ b/.github/workflows/prod-build.yml @@ -19,8 +19,9 @@ jobs: # auto generate tag from label defined in Dockerfile - uses: butlerlogic/action-autotag@stable id: tag_version - with: + env: GITHUB_TOKEN: "${{ secrets.RELEASE_TOKEN }}" + with: strategy: docker tag_prefix: "v" From dc5fda194eb200d0367e48ce253373a4b6e6f7a7 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 23 Jan 2024 15:25:59 +0100 Subject: [PATCH 108/160] fix organization issue --- core/serializers.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 27bd8325..5d6c75ef 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -118,10 +118,13 @@ class Meta: depth = 1 def get_subscriptions(self, user): - return SubscriptionSerializer( - user.organization.organization_subscription.all(), - many=True - ).data + if user.organization: + return SubscriptionSerializer( + user.organization.organization_subscription.all(), + many=True + ).data + + return None class CoreUserWritableSerializer(CoreUserSerializer): From 3a8082e6e26e6430ed3c9ac365f0eb5df3332670 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 23 Jan 2024 15:26:39 +0100 Subject: [PATCH 109/160] patch version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a6af8214..8536aca5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.0" +LABEL version="0.6.0.1" From 9ede097f02dea4172bc0c008d6e9dcafeae3e855 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 26 Feb 2024 14:15:44 +0100 Subject: [PATCH 110/160] fix first user invite activation --- core/serializers.py | 57 ++++++++++++++++++++++++++++++++++----------- core/views/web.py | 2 +- 2 files changed, 44 insertions(+), 15 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 5d6c75ef..442041c0 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -379,6 +379,7 @@ def get_subscription(self, organization): many=True ).data + class AccessTokenSerializer(serializers.ModelSerializer): user = CoreUserSerializer() @@ -450,6 +451,7 @@ def update(self, instance, validated_data): if instance.email is not None: instance.save() + is_new_org = Organization.objects.filter(name=organization_name) # check whether org_name is "default" @@ -458,16 +460,25 @@ def update(self, instance, validated_data): instance.organization = default_org instance.save() # now attach the user role as USER to default organization - default_org_user = CoreGroup.objects.filter(organization__name=settings.DEFAULT_ORG, - is_org_level=True, - permissions=PERMISSIONS_VIEW_ONLY).first() + default_org_user = ( + CoreGroup + .objects + .filter( + organization__name=settings.DEFAULT_ORG, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY + ) + .first() + ) instance.core_groups.add(default_org_user) # remove any other group permissions he is not added for single_group in instance.core_groups.all(): - default_org_groups = CoreGroup.objects.filter(organization__name=settings.DEFAULT_ORG, - is_org_level=True, - permissions=PERMISSIONS_VIEW_ONLY) + default_org_groups = CoreGroup.objects.filter( + organization__name=settings.DEFAULT_ORG, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY + ) if single_group not in default_org_groups: instance.core_groups.remove(single_group) @@ -479,9 +490,16 @@ def update(self, instance, validated_data): instance.is_active = False instance.save() # now attach the user role as USER - org_user = CoreGroup.objects.filter(organization__name=organization_name, - is_org_level=True, - permissions=PERMISSIONS_VIEW_ONLY).first() + org_user = ( + CoreGroup + .objects + .filter( + organization__name=organization_name, + is_org_level=True, + permissions=PERMISSIONS_VIEW_ONLY + ) + .first() + ) instance.core_groups.add(org_user) @@ -498,11 +516,23 @@ def update(self, instance, validated_data): # first update the org name for that user organization = Organization.objects.create(name=organization_name) instance.organization = organization + + # activate user + instance.is_active = True + + # save the user instance.save() + # now attach the user role as ADMIN - org_admin = CoreGroup.objects.get(organization=organization, - is_org_level=True, - permissions=PERMISSIONS_ORG_ADMIN) + org_admin = ( + CoreGroup + .objects + .get( + organization=organization, + is_org_level=True, + permissions=PERMISSIONS_ORG_ADMIN + ) + ) instance.core_groups.add(org_admin) return instance @@ -530,7 +560,7 @@ class CoreUserVerifyEmailSerializer(serializers.Serializer): token = serializers.CharField() def validate(self, attrs): - # Decode the uidb64 to uid to get User object + # Decode the uuid64 to uid to get User object try: uid = force_text(urlsafe_base64_decode(attrs['token'])) user = CoreUser.objects.filter(core_user_uuid=uid).first() @@ -548,4 +578,3 @@ class SubscriptionSerializer(serializers.ModelSerializer): class Meta: model = Subscription fields = '__all__' - \ No newline at end of file diff --git a/core/views/web.py b/core/views/web.py index 3755754e..5f03fafd 100644 --- a/core/views/web.py +++ b/core/views/web.py @@ -100,7 +100,7 @@ def oauth_complete(request, backend, *args, **kwargs): def handler404(request, exception): context = RequestContext(request) - err_code = 404 + ": " + exception + err_code = f'404: {exception}' response = render_to_response('404.html', {"code": err_code}, context) response.status_code = 404 return response From 41dc7c26d69ab1aaf8e3b10eb554e795bc1c834c Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Feb 2024 11:04:14 +0100 Subject: [PATCH 111/160] patch version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8536aca5..91e35584 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.0.1" +LABEL version="0.6.0.2" From 285d06afbfe722eca5509d1d13a5c467600a143c Mon Sep 17 00:00:00 2001 From: Greg Lind Date: Mon, 25 Mar 2024 08:28:22 -0700 Subject: [PATCH 112/160] Update prod-build.yml Workaround for https://github.com/ButlerLogic/action-autotag/issues/45 --- .github/workflows/prod-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml index a92b4ae1..8b22a3ee 100644 --- a/.github/workflows/prod-build.yml +++ b/.github/workflows/prod-build.yml @@ -17,7 +17,7 @@ jobs: fetch-depth: 0 # auto generate tag from label defined in Dockerfile - - uses: butlerlogic/action-autotag@stable + - uses: butlerlogic/action-autotag@1.1.2 id: tag_version env: GITHUB_TOKEN: "${{ secrets.RELEASE_TOKEN }}" @@ -80,4 +80,4 @@ jobs: subject: Github Actions Build and Push job alert to: ${{ secrets.RECIPIENT_EMAIL }} from: ${{ secrets.SENDER_EMAIL }} - body: Production Docker Image of buildly core pushed to Google Container Registry Successfully \ No newline at end of file + body: Production Docker Image of buildly core pushed to Google Container Registry Successfully From c197d3777dd3818dd9279e8fbb3be122873cb425 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Tue, 9 Apr 2024 17:28:34 +0530 Subject: [PATCH 113/160] initial stripe changes --- core/views/coreuser.py | 34 ++++++++++++- core/views/subscription.py | 98 +++++++++++++++++++------------------- 2 files changed, 82 insertions(+), 50 deletions(-) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 6d0d9ee4..bf854291 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -1,3 +1,6 @@ +import stripe + +from datetime import datetime from urllib.parse import urljoin from django.conf import settings @@ -10,7 +13,7 @@ import jwt from drf_yasg.utils import swagger_auto_schema -from core.models import CoreUser, Organization +from core.models import CoreUser, Organization, Subscription from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer, @@ -86,9 +89,38 @@ def me(self, request, *args, **kwargs): Gives you the user information based on the user token sent within the request. """ user = request.user + + # Check existing subscription for the user and update or create new one's if needed + # existing_subscriptions = Subscription.objects.filter(user=user).first() + if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET + stripe.api_version = '2022-11-15' + + existing_subscriptions = Subscription.objects.filter(user=user).first() + if existing_subscriptions: + stripe_subscription = stripe.Subscription.retrieve(existing_subscriptions.stripe_subscription_id) + if stripe_subscription: + new_start_datetime = datetime.fromtimestamp(stripe_subscription.current_period_start).date() + new_end_datetime = datetime.fromtimestamp(stripe_subscription.current_period_end).date() + + if existing_subscriptions.subscription_end_date == new_start_datetime: + Subscription.objects.create( + stripe_customer_id=existing_subscriptions.stripe_customer_id, + stripe_subscription_id=existing_subscriptions.stripe_subscription_id, + stripe_product=existing_subscriptions.stripe_product, + stripe_payment_method_id=existing_subscriptions.stripe_payment_method_id, + subscription_start_date=new_start_datetime, + subscription_end_date=new_end_datetime, + organization=existing_subscriptions.organization, + user=existing_subscriptions.user, + created_by=existing_subscriptions.created_by, + stripe_product_info=existing_subscriptions.stripe_product_info, + ) + serializer = self.get_serializer(instance=user, context={'request': request}) return Response(serializer.data) + @action(methods=['POST'], detail=False) def assignees(self, request, *args, **kwargs): user_uuids = request.data diff --git a/core/views/subscription.py b/core/views/subscription.py index cf693f36..8b0a8037 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -54,54 +54,54 @@ def create(self, request, *args, **kwargs): status=status.HTTP_400_BAD_REQUEST ) - def update(self, request, *args, **kwargs): - instance = self.get_object() - if settings.STRIPE_SECRET: - stripe.api_key = settings.STRIPE_SECRET - stripe.api_version = '2022-11-15' - data = self.get_stripe_details() - if data: - serializer = self.get_serializer(instance, data=data, partial=True) - serializer.is_valid(raise_exception=True) - self.perform_create(serializer) - - product_info = data.get('stripe_product_info', {}) - # send the email - context = { - 'frontend_link': settings.FRONTEND_URL, - 'product_name': product_info.get('name'), - 'product_description': product_info.get('description') - } - subject = 'Subscription Success' - template_name = 'email/coreuser/subscription.txt' - html_template_name = 'email/coreuser/subscription.html' - send_email( - self.request.user.email, - subject, - context, - template_name, - html_template_name - ) - - return Response( - serializer.data, - status=status.HTTP_201_CREATED - ) - return Response( - dict( - code='stripe_api_error', - message='There was an error creating subscription' - ), - status=status.HTTP_400_BAD_REQUEST - ) - - return Response( - dict( - code='missing_stripe_details', - message='Please pass valid product/card or stripe secret' - ), - status=status.HTTP_400_BAD_REQUEST - ) + # def update(self, request, *args, **kwargs): + # instance = self.get_object() + # if settings.STRIPE_SECRET: + # stripe.api_key = settings.STRIPE_SECRET + # stripe.api_version = '2022-11-15' + # data = self.get_stripe_details() + # if data: + # serializer = self.get_serializer(instance, data=data, partial=True) + # serializer.is_valid(raise_exception=True) + # self.perform_create(serializer) + + # product_info = data.get('stripe_product_info', {}) + # # send the email + # context = { + # 'frontend_link': settings.FRONTEND_URL, + # 'product_name': product_info.get('name'), + # 'product_description': product_info.get('description') + # } + # subject = 'Subscription Success' + # template_name = 'email/coreuser/subscription.txt' + # html_template_name = 'email/coreuser/subscription.html' + # send_email( + # self.request.user.email, + # subject, + # context, + # template_name, + # html_template_name + # ) + + # return Response( + # serializer.data, + # status=status.HTTP_201_CREATED + # ) + # return Response( + # dict( + # code='stripe_api_error', + # message='There was an error creating subscription' + # ), + # status=status.HTTP_400_BAD_REQUEST + # ) + + # return Response( + # dict( + # code='missing_stripe_details', + # message='Please pass valid product/card or stripe secret' + # ), + # status=status.HTTP_400_BAD_REQUEST + # ) def perform_create(self, serializer): serializer.save( @@ -172,7 +172,7 @@ def get_stripe_details(self): if stripe_subscription: stripe_subscription_details = dict( - customer_stripe_id=customer.id, + stripe_customer_id=customer.id, stripe_subscription_id=stripe_subscription.id, stripe_product=product_id, stripe_payment_method_id=payment_method_id, From bf9df46ac1a32af5b29c8687330ee57b70416325 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Wed, 10 Apr 2024 14:06:08 +0530 Subject: [PATCH 114/160] order by descending subscription end date to get the latest entry --- core/views/coreuser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index bf854291..389c2a37 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -96,7 +96,7 @@ def me(self, request, *args, **kwargs): stripe.api_key = settings.STRIPE_SECRET stripe.api_version = '2022-11-15' - existing_subscriptions = Subscription.objects.filter(user=user).first() + existing_subscriptions = Subscription.objects.filter(user=user).order_by('-subscription_end_date').first() if existing_subscriptions: stripe_subscription = stripe.Subscription.retrieve(existing_subscriptions.stripe_subscription_id) if stripe_subscription: From c522b74e65138d45c6d72747c858e39887065e5b Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Tue, 16 Apr 2024 13:08:13 +0530 Subject: [PATCH 115/160] fix github action for artifact registry --- .github/workflows/dev-build.yml | 31 +++++++++++++++++++++--------- .github/workflows/prod-build.yml | 33 +++++++++++++++++++++----------- 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml index 51f0a569..9f0c727a 100644 --- a/.github/workflows/dev-build.yml +++ b/.github/workflows/dev-build.yml @@ -4,24 +4,37 @@ on: push: branches: - master + +env: + PROJECT_ID: dev-buildly + REGION: us + IMAGE_NAME: us-docker.pkg.dev/dev-buildly/gcr.io/dev/buildly-core + jobs: build: name: Build and Push to GCR runs-on: ubuntu-latest - env: - IMAGE_NAME: gcr.io/dev-buildly/insights/dev/buildly-core steps: - - uses: actions/checkout@v2 + - name: "Checkout" + uses: actions/checkout@v3 - - name: Docker login - uses: docker/login-action@v1 + - id: "auth" + uses: "google-github-actions/auth@v1" with: - registry: gcr.io - username: _json_key - password: ${{ secrets.GCR_JSON_KEY }} + credentials_json: "${{ secrets.GCR_JSON_KEY }}" + + - name: "Set up Cloud SDK" + uses: "google-github-actions/setup-gcloud@v1" + + - name: "Use gcloud CLI" + run: "gcloud info" + + - name: "Docker auth" + run: |- + gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet - name: Build docker image run: docker build -t $IMAGE_NAME:latest . - - name: Push to Google Container Registry + - name: Push to Google Artifact Registry run: docker push $IMAGE_NAME:latest diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml index 8b22a3ee..267dafc0 100644 --- a/.github/workflows/prod-build.yml +++ b/.github/workflows/prod-build.yml @@ -5,14 +5,18 @@ on: branches: - prod +env: + PROJECT_ID: dev-buildly + REGION: us + IMAGE_NAME: us-docker.pkg.dev/dev-buildly/gcr.io/prod/buildly-core + jobs: build: name: Build and Push image to GCR runs-on: ubuntu-latest - env: - IMAGE_NAME: gcr.io/dev-buildly/insights/prod/buildly-core steps: - - uses: actions/checkout@v2 + - name: "Checkout" + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -45,20 +49,27 @@ jobs: draft: false prerelease: false - # Login to docker - - name: Docker login - uses: docker/login-action@v1 + - id: "auth" + uses: "google-github-actions/auth@v1" with: - registry: gcr.io - username: _json_key - password: ${{ secrets.GCR_JSON_KEY }} + credentials_json: "${{ secrets.GCR_JSON_KEY }}" + + - name: "Set up Cloud SDK" + uses: "google-github-actions/setup-gcloud@v1" + + - name: "Use gcloud CLI" + run: "gcloud info" + + - name: "Docker auth" + run: |- + gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet # Build docker image - name: Build docker image run: docker build -t $IMAGE_NAME:latest . - # Push docker image to GCR - - name: Push to Google Container Registry + # Push docker image to Artifact registry + - name: Push to Google Artifact Registry run: docker push $IMAGE_NAME:latest # Send message on Slack From 4a52e4e10f0ea1c1bc87b47f4c42ead1584b79f7 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 29 Apr 2024 15:09:24 +0200 Subject: [PATCH 116/160] fix invite link --- core/email_utils.py | 4 ++-- templates/email/coreuser/invitation.html | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/email_utils.py b/core/email_utils.py index b9b7404c..f71d1f42 100644 --- a/core/email_utils.py +++ b/core/email_utils.py @@ -5,8 +5,8 @@ def send_email(email_address: str, subject: str, context: dict, template_name: str, html_template_name: str = None) -> int: - text_content = loader.render_to_string(template_name, context, using=None) - html_content = loader.render_to_string(html_template_name, context, using=None) if html_template_name else None + text_content = loader.render_to_string(template_name, context) + html_content = loader.render_to_string(html_template_name, context) if html_template_name else None return send_email_body(email_address, subject, text_content, html_content) diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index 4168bf03..923bbba1 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -21,13 +21,13 @@

- My Profile
+ My Profile
- -

Or copy the link:

-

{{ invitation_link }}

- +{# #} +{#

Or copy the link:

#} +{#

{{ invitation_link }}

#} +{# #} From d2932d7a50f6738a0414eed56cd1418bc8870f08 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 30 Apr 2024 09:59:13 +0200 Subject: [PATCH 117/160] patch release --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 91e35584..d6a482c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.0.2" +LABEL version="0.6.0.3" From 463237f73f4567ebb1cddb99c061d6a3a6975fc8 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Tue, 30 Apr 2024 13:47:36 +0530 Subject: [PATCH 118/160] fix patch version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d6a482c5..4691ee3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.0.3" +LABEL version="0.6.3" From 8a080a6db7712c163f7bf080f15a71004e5f793a Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 30 Apr 2024 10:22:24 +0200 Subject: [PATCH 119/160] Update prod (#96) * Update prod-build.yml Workaround for https://github.com/ButlerLogic/action-autotag/issues/45 * initial stripe changes * order by descending subscription end date to get the latest entry * fix github action for artifact registry * fix invite link * patch release * fix patch version --------- Co-authored-by: Greg Lind Co-authored-by: Radhika Patel --- .github/workflows/dev-build.yml | 31 +++++--- .github/workflows/prod-build.yml | 37 +++++---- Dockerfile | 2 +- core/email_utils.py | 4 +- core/views/coreuser.py | 34 +++++++- core/views/subscription.py | 98 ++++++++++++------------ templates/email/coreuser/invitation.html | 10 +-- 7 files changed, 136 insertions(+), 80 deletions(-) diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml index 51f0a569..9f0c727a 100644 --- a/.github/workflows/dev-build.yml +++ b/.github/workflows/dev-build.yml @@ -4,24 +4,37 @@ on: push: branches: - master + +env: + PROJECT_ID: dev-buildly + REGION: us + IMAGE_NAME: us-docker.pkg.dev/dev-buildly/gcr.io/dev/buildly-core + jobs: build: name: Build and Push to GCR runs-on: ubuntu-latest - env: - IMAGE_NAME: gcr.io/dev-buildly/insights/dev/buildly-core steps: - - uses: actions/checkout@v2 + - name: "Checkout" + uses: actions/checkout@v3 - - name: Docker login - uses: docker/login-action@v1 + - id: "auth" + uses: "google-github-actions/auth@v1" with: - registry: gcr.io - username: _json_key - password: ${{ secrets.GCR_JSON_KEY }} + credentials_json: "${{ secrets.GCR_JSON_KEY }}" + + - name: "Set up Cloud SDK" + uses: "google-github-actions/setup-gcloud@v1" + + - name: "Use gcloud CLI" + run: "gcloud info" + + - name: "Docker auth" + run: |- + gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet - name: Build docker image run: docker build -t $IMAGE_NAME:latest . - - name: Push to Google Container Registry + - name: Push to Google Artifact Registry run: docker push $IMAGE_NAME:latest diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml index a92b4ae1..267dafc0 100644 --- a/.github/workflows/prod-build.yml +++ b/.github/workflows/prod-build.yml @@ -5,19 +5,23 @@ on: branches: - prod +env: + PROJECT_ID: dev-buildly + REGION: us + IMAGE_NAME: us-docker.pkg.dev/dev-buildly/gcr.io/prod/buildly-core + jobs: build: name: Build and Push image to GCR runs-on: ubuntu-latest - env: - IMAGE_NAME: gcr.io/dev-buildly/insights/prod/buildly-core steps: - - uses: actions/checkout@v2 + - name: "Checkout" + uses: actions/checkout@v3 with: fetch-depth: 0 # auto generate tag from label defined in Dockerfile - - uses: butlerlogic/action-autotag@stable + - uses: butlerlogic/action-autotag@1.1.2 id: tag_version env: GITHUB_TOKEN: "${{ secrets.RELEASE_TOKEN }}" @@ -45,20 +49,27 @@ jobs: draft: false prerelease: false - # Login to docker - - name: Docker login - uses: docker/login-action@v1 + - id: "auth" + uses: "google-github-actions/auth@v1" with: - registry: gcr.io - username: _json_key - password: ${{ secrets.GCR_JSON_KEY }} + credentials_json: "${{ secrets.GCR_JSON_KEY }}" + + - name: "Set up Cloud SDK" + uses: "google-github-actions/setup-gcloud@v1" + + - name: "Use gcloud CLI" + run: "gcloud info" + + - name: "Docker auth" + run: |- + gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet # Build docker image - name: Build docker image run: docker build -t $IMAGE_NAME:latest . - # Push docker image to GCR - - name: Push to Google Container Registry + # Push docker image to Artifact registry + - name: Push to Google Artifact Registry run: docker push $IMAGE_NAME:latest # Send message on Slack @@ -80,4 +91,4 @@ jobs: subject: Github Actions Build and Push job alert to: ${{ secrets.RECIPIENT_EMAIL }} from: ${{ secrets.SENDER_EMAIL }} - body: Production Docker Image of buildly core pushed to Google Container Registry Successfully \ No newline at end of file + body: Production Docker Image of buildly core pushed to Google Container Registry Successfully diff --git a/Dockerfile b/Dockerfile index 91e35584..4691ee3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.0.2" +LABEL version="0.6.3" diff --git a/core/email_utils.py b/core/email_utils.py index b9b7404c..f71d1f42 100644 --- a/core/email_utils.py +++ b/core/email_utils.py @@ -5,8 +5,8 @@ def send_email(email_address: str, subject: str, context: dict, template_name: str, html_template_name: str = None) -> int: - text_content = loader.render_to_string(template_name, context, using=None) - html_content = loader.render_to_string(html_template_name, context, using=None) if html_template_name else None + text_content = loader.render_to_string(template_name, context) + html_content = loader.render_to_string(html_template_name, context) if html_template_name else None return send_email_body(email_address, subject, text_content, html_content) diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 6d0d9ee4..389c2a37 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -1,3 +1,6 @@ +import stripe + +from datetime import datetime from urllib.parse import urljoin from django.conf import settings @@ -10,7 +13,7 @@ import jwt from drf_yasg.utils import swagger_auto_schema -from core.models import CoreUser, Organization +from core.models import CoreUser, Organization, Subscription from core.serializers import (CoreUserSerializer, CoreUserWritableSerializer, CoreUserInvitationSerializer, CoreUserResetPasswordSerializer, CoreUserResetPasswordCheckSerializer, CoreUserResetPasswordConfirmSerializer, CoreUserUpdateOrganizationSerializer, @@ -86,9 +89,38 @@ def me(self, request, *args, **kwargs): Gives you the user information based on the user token sent within the request. """ user = request.user + + # Check existing subscription for the user and update or create new one's if needed + # existing_subscriptions = Subscription.objects.filter(user=user).first() + if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET + stripe.api_version = '2022-11-15' + + existing_subscriptions = Subscription.objects.filter(user=user).order_by('-subscription_end_date').first() + if existing_subscriptions: + stripe_subscription = stripe.Subscription.retrieve(existing_subscriptions.stripe_subscription_id) + if stripe_subscription: + new_start_datetime = datetime.fromtimestamp(stripe_subscription.current_period_start).date() + new_end_datetime = datetime.fromtimestamp(stripe_subscription.current_period_end).date() + + if existing_subscriptions.subscription_end_date == new_start_datetime: + Subscription.objects.create( + stripe_customer_id=existing_subscriptions.stripe_customer_id, + stripe_subscription_id=existing_subscriptions.stripe_subscription_id, + stripe_product=existing_subscriptions.stripe_product, + stripe_payment_method_id=existing_subscriptions.stripe_payment_method_id, + subscription_start_date=new_start_datetime, + subscription_end_date=new_end_datetime, + organization=existing_subscriptions.organization, + user=existing_subscriptions.user, + created_by=existing_subscriptions.created_by, + stripe_product_info=existing_subscriptions.stripe_product_info, + ) + serializer = self.get_serializer(instance=user, context={'request': request}) return Response(serializer.data) + @action(methods=['POST'], detail=False) def assignees(self, request, *args, **kwargs): user_uuids = request.data diff --git a/core/views/subscription.py b/core/views/subscription.py index cf693f36..8b0a8037 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -54,54 +54,54 @@ def create(self, request, *args, **kwargs): status=status.HTTP_400_BAD_REQUEST ) - def update(self, request, *args, **kwargs): - instance = self.get_object() - if settings.STRIPE_SECRET: - stripe.api_key = settings.STRIPE_SECRET - stripe.api_version = '2022-11-15' - data = self.get_stripe_details() - if data: - serializer = self.get_serializer(instance, data=data, partial=True) - serializer.is_valid(raise_exception=True) - self.perform_create(serializer) - - product_info = data.get('stripe_product_info', {}) - # send the email - context = { - 'frontend_link': settings.FRONTEND_URL, - 'product_name': product_info.get('name'), - 'product_description': product_info.get('description') - } - subject = 'Subscription Success' - template_name = 'email/coreuser/subscription.txt' - html_template_name = 'email/coreuser/subscription.html' - send_email( - self.request.user.email, - subject, - context, - template_name, - html_template_name - ) - - return Response( - serializer.data, - status=status.HTTP_201_CREATED - ) - return Response( - dict( - code='stripe_api_error', - message='There was an error creating subscription' - ), - status=status.HTTP_400_BAD_REQUEST - ) - - return Response( - dict( - code='missing_stripe_details', - message='Please pass valid product/card or stripe secret' - ), - status=status.HTTP_400_BAD_REQUEST - ) + # def update(self, request, *args, **kwargs): + # instance = self.get_object() + # if settings.STRIPE_SECRET: + # stripe.api_key = settings.STRIPE_SECRET + # stripe.api_version = '2022-11-15' + # data = self.get_stripe_details() + # if data: + # serializer = self.get_serializer(instance, data=data, partial=True) + # serializer.is_valid(raise_exception=True) + # self.perform_create(serializer) + + # product_info = data.get('stripe_product_info', {}) + # # send the email + # context = { + # 'frontend_link': settings.FRONTEND_URL, + # 'product_name': product_info.get('name'), + # 'product_description': product_info.get('description') + # } + # subject = 'Subscription Success' + # template_name = 'email/coreuser/subscription.txt' + # html_template_name = 'email/coreuser/subscription.html' + # send_email( + # self.request.user.email, + # subject, + # context, + # template_name, + # html_template_name + # ) + + # return Response( + # serializer.data, + # status=status.HTTP_201_CREATED + # ) + # return Response( + # dict( + # code='stripe_api_error', + # message='There was an error creating subscription' + # ), + # status=status.HTTP_400_BAD_REQUEST + # ) + + # return Response( + # dict( + # code='missing_stripe_details', + # message='Please pass valid product/card or stripe secret' + # ), + # status=status.HTTP_400_BAD_REQUEST + # ) def perform_create(self, serializer): serializer.save( @@ -172,7 +172,7 @@ def get_stripe_details(self): if stripe_subscription: stripe_subscription_details = dict( - customer_stripe_id=customer.id, + stripe_customer_id=customer.id, stripe_subscription_id=stripe_subscription.id, stripe_product=product_id, stripe_payment_method_id=payment_method_id, diff --git a/templates/email/coreuser/invitation.html b/templates/email/coreuser/invitation.html index 4168bf03..923bbba1 100644 --- a/templates/email/coreuser/invitation.html +++ b/templates/email/coreuser/invitation.html @@ -21,13 +21,13 @@

- -

Or copy the link:

-

{{ invitation_link }}

-
+{# #} +{#

Or copy the link:

#} +{#

{{ invitation_link }}

#} +{#
#}
- My Profile
+ My Profile
From 39971df12ae453771ab74abef06c068e77b71edf Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Wed, 29 May 2024 10:46:15 +0530 Subject: [PATCH 120/160] patch version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4691ee3f..a2991f46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.3" +LABEL version="0.8.0" From 882b8f0294083301d496ef7ef3fd8e095669d77e Mon Sep 17 00:00:00 2001 From: Radhika Patel <64517071+patelradhika@users.noreply.github.com> Date: Wed, 29 May 2024 12:39:24 +0530 Subject: [PATCH 121/160] Production v0.8.0 (#98) * Update prod-build.yml Workaround for https://github.com/ButlerLogic/action-autotag/issues/45 * initial stripe changes * order by descending subscription end date to get the latest entry * fix github action for artifact registry * fix invite link * patch release * fix patch version * patch version --------- Co-authored-by: Greg Lind Co-authored-by: Peter Odeny --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4691ee3f..a2991f46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.6.3" +LABEL version="0.8.0" From 451915c1231a6a81e1ad6684a18198d6f21f7a53 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sun, 30 Jun 2024 13:19:50 +0200 Subject: [PATCH 122/160] cancel subscriptions --- core/migrations/0019_auto_20240630_1037.py | 23 +++++ core/models.py | 2 + core/views/subscription.py | 98 +++++++++++----------- 3 files changed, 72 insertions(+), 51 deletions(-) create mode 100644 core/migrations/0019_auto_20240630_1037.py diff --git a/core/migrations/0019_auto_20240630_1037.py b/core/migrations/0019_auto_20240630_1037.py new file mode 100644 index 00000000..bdb0c114 --- /dev/null +++ b/core/migrations/0019_auto_20240630_1037.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.28 on 2024-06-30 10:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0018_auto_20230319_1707'), + ] + + operations = [ + migrations.AddField( + model_name='subscription', + name='cancelled', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='subscription', + name='cancelled_date', + field=models.DateTimeField(blank=True, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 9cac491d..658fbedd 100644 --- a/core/models.py +++ b/core/models.py @@ -311,3 +311,5 @@ class Subscription(models.Model): on_delete=models.CASCADE, related_name='organization_subscription' ) + cancelled = models.BooleanField(default=False) + cancelled_date = models.DateTimeField(null=True, blank=True) diff --git a/core/views/subscription.py b/core/views/subscription.py index 8b0a8037..9cfa6707 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -27,7 +27,7 @@ class SubscriptionViewSet(viewsets.ModelViewSet): All the subscriptions related actions """ - queryset = Subscription.objects.all() + queryset = Subscription.objects.filter(cancelled=False).order_by('-create_date') serializer_class = SubscriptionSerializer permission_classes = (AllowAny, IsAuthenticated) @@ -54,61 +54,39 @@ def create(self, request, *args, **kwargs): status=status.HTTP_400_BAD_REQUEST ) - # def update(self, request, *args, **kwargs): - # instance = self.get_object() - # if settings.STRIPE_SECRET: - # stripe.api_key = settings.STRIPE_SECRET - # stripe.api_version = '2022-11-15' - # data = self.get_stripe_details() - # if data: - # serializer = self.get_serializer(instance, data=data, partial=True) - # serializer.is_valid(raise_exception=True) - # self.perform_create(serializer) - - # product_info = data.get('stripe_product_info', {}) - # # send the email - # context = { - # 'frontend_link': settings.FRONTEND_URL, - # 'product_name': product_info.get('name'), - # 'product_description': product_info.get('description') - # } - # subject = 'Subscription Success' - # template_name = 'email/coreuser/subscription.txt' - # html_template_name = 'email/coreuser/subscription.html' - # send_email( - # self.request.user.email, - # subject, - # context, - # template_name, - # html_template_name - # ) - - # return Response( - # serializer.data, - # status=status.HTTP_201_CREATED - # ) - # return Response( - # dict( - # code='stripe_api_error', - # message='There was an error creating subscription' - # ), - # status=status.HTTP_400_BAD_REQUEST - # ) - - # return Response( - # dict( - # code='missing_stripe_details', - # message='Please pass valid product/card or stripe secret' - # ), - # status=status.HTTP_400_BAD_REQUEST - # ) - def perform_create(self, serializer): serializer.save( user=self.request.user, created_by=self.request.user, ) + def destroy(self, request, *args, **kwargs): + instance = self.get_object() + cancelled = self.perform_destroy(instance) + if not cancelled: + return Response( + dict( + code='stripe_api_error', + message='There was an error cancelling subscription', + ), + status=status.HTTP_400_BAD_REQUEST + ) + return Response( + dict(code='subscription_cancelled'), + status=status.HTTP_204_NO_CONTENT + ) + + def perform_destroy(self, instance): + # delete the subscription on stripe + cancelled = self.cancel_subscription_on_stripe(instance) + + if cancelled: + # delete the subscription + instance.cancelled = True + instance.cancelled_date = timezone.now() + instance.save() + return cancelled + @action( detail=False, methods=['get'], @@ -124,7 +102,7 @@ def stripe_products(self, request, *args, **kwargs): if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET stripe.api_version = '2022-11-15' - stripe_products = stripe.Product.search(query="active:'true'",) + stripe_products = stripe.Product.search(query="active:'true'", ) products = stripe_products.data return Response( @@ -198,3 +176,21 @@ def get_stripe_details(self): return None return data + + @staticmethod + def cancel_subscription_on_stripe(instance): + """ + Cancel a subscription + """ + if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET + # stripe.api_version = '2022-11-15' + try: + # stripe.Subscription.cancel(instance.stripe_subscription_id) + subscription = stripe.Subscription.retrieve(instance.stripe_subscription_id) + subscription.delete() + return True + + except Exception as e: + pass + return False From c44f42c065a7887bebfaa5750717da6054367303 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sun, 30 Jun 2024 16:26:20 +0200 Subject: [PATCH 123/160] implement subscription cancellation --- core/views/subscription.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index 9cfa6707..9f857447 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -27,10 +27,24 @@ class SubscriptionViewSet(viewsets.ModelViewSet): All the subscriptions related actions """ - queryset = Subscription.objects.filter(cancelled=False).order_by('-create_date') + queryset = Subscription.objects.all() serializer_class = SubscriptionSerializer permission_classes = (AllowAny, IsAuthenticated) + def get_queryset(self): + queryset = ( + super(SubscriptionViewSet, self) + .get_queryset() + .filter(organization=self.request.user.organization) + ) + + if int(self.request.query_params.get('cancelled', '0')): + queryset = queryset.filter(cancelled=True) + else: + queryset = queryset.filter(cancelled=False) + + return queryset.order_by('-create_date') + def create(self, request, *args, **kwargs): if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET From 50015c7a6f3bd2e972d6f3307905b434c32bb96b Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Tue, 20 Aug 2024 12:12:01 +0530 Subject: [PATCH 124/160] change insights to labs --- Dockerfile | 2 +- templates/email/coreuser/subscription.html | 4 ++-- templates/email/coreuser/subscription.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a2991f46..8e2ac454 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.8.0" +LABEL version="0.9.0" diff --git a/templates/email/coreuser/subscription.html b/templates/email/coreuser/subscription.html index 35dacb69..ae6bbc12 100644 --- a/templates/email/coreuser/subscription.html +++ b/templates/email/coreuser/subscription.html @@ -12,7 +12,7 @@ @@ -20,7 +20,7 @@

- +

Subscription successful!

-

You have successfully subscribed to Insights on Buildly!
Click the button below to return to the app

+

You have successfully subscribed to Labs on Buildly!
Click the button below to return to the app

Buildly InsightsBuildly Labs
diff --git a/templates/email/coreuser/subscription.txt b/templates/email/coreuser/subscription.txt index c930c8f9..a428695d 100644 --- a/templates/email/coreuser/subscription.txt +++ b/templates/email/coreuser/subscription.txt @@ -1,6 +1,6 @@ Subscription successful! -You have successfully subscribed to Insights on Buildly. +You have successfully subscribed to Labs on Buildly. Go to {{ frontend_link }} to access the app. From 96777e53e1ea142af82faaaf48c424d6cd45a41f Mon Sep 17 00:00:00 2001 From: Radhika Patel <64517071+patelradhika@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:30:35 +0530 Subject: [PATCH 125/160] Production Deployment v0.9.0 (#100) * Update prod-build.yml Workaround for https://github.com/ButlerLogic/action-autotag/issues/45 * initial stripe changes * order by descending subscription end date to get the latest entry * fix github action for artifact registry * fix invite link * patch release * fix patch version * patch version * cancel subscriptions * implement subscription cancellation * change insights to labs --------- Co-authored-by: Greg Lind Co-authored-by: Peter Odeny --- Dockerfile | 2 +- core/migrations/0019_auto_20240630_1037.py | 23 +++++ core/models.py | 2 + core/views/subscription.py | 110 +++++++++++---------- templates/email/coreuser/subscription.html | 4 +- templates/email/coreuser/subscription.txt | 2 +- 6 files changed, 89 insertions(+), 54 deletions(-) create mode 100644 core/migrations/0019_auto_20240630_1037.py diff --git a/Dockerfile b/Dockerfile index a2991f46..8e2ac454 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.8.0" +LABEL version="0.9.0" diff --git a/core/migrations/0019_auto_20240630_1037.py b/core/migrations/0019_auto_20240630_1037.py new file mode 100644 index 00000000..bdb0c114 --- /dev/null +++ b/core/migrations/0019_auto_20240630_1037.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.28 on 2024-06-30 10:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0018_auto_20230319_1707'), + ] + + operations = [ + migrations.AddField( + model_name='subscription', + name='cancelled', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='subscription', + name='cancelled_date', + field=models.DateTimeField(blank=True, null=True), + ), + ] diff --git a/core/models.py b/core/models.py index 9cac491d..658fbedd 100644 --- a/core/models.py +++ b/core/models.py @@ -311,3 +311,5 @@ class Subscription(models.Model): on_delete=models.CASCADE, related_name='organization_subscription' ) + cancelled = models.BooleanField(default=False) + cancelled_date = models.DateTimeField(null=True, blank=True) diff --git a/core/views/subscription.py b/core/views/subscription.py index 8b0a8037..9f857447 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -31,6 +31,20 @@ class SubscriptionViewSet(viewsets.ModelViewSet): serializer_class = SubscriptionSerializer permission_classes = (AllowAny, IsAuthenticated) + def get_queryset(self): + queryset = ( + super(SubscriptionViewSet, self) + .get_queryset() + .filter(organization=self.request.user.organization) + ) + + if int(self.request.query_params.get('cancelled', '0')): + queryset = queryset.filter(cancelled=True) + else: + queryset = queryset.filter(cancelled=False) + + return queryset.order_by('-create_date') + def create(self, request, *args, **kwargs): if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET @@ -54,61 +68,39 @@ def create(self, request, *args, **kwargs): status=status.HTTP_400_BAD_REQUEST ) - # def update(self, request, *args, **kwargs): - # instance = self.get_object() - # if settings.STRIPE_SECRET: - # stripe.api_key = settings.STRIPE_SECRET - # stripe.api_version = '2022-11-15' - # data = self.get_stripe_details() - # if data: - # serializer = self.get_serializer(instance, data=data, partial=True) - # serializer.is_valid(raise_exception=True) - # self.perform_create(serializer) - - # product_info = data.get('stripe_product_info', {}) - # # send the email - # context = { - # 'frontend_link': settings.FRONTEND_URL, - # 'product_name': product_info.get('name'), - # 'product_description': product_info.get('description') - # } - # subject = 'Subscription Success' - # template_name = 'email/coreuser/subscription.txt' - # html_template_name = 'email/coreuser/subscription.html' - # send_email( - # self.request.user.email, - # subject, - # context, - # template_name, - # html_template_name - # ) - - # return Response( - # serializer.data, - # status=status.HTTP_201_CREATED - # ) - # return Response( - # dict( - # code='stripe_api_error', - # message='There was an error creating subscription' - # ), - # status=status.HTTP_400_BAD_REQUEST - # ) - - # return Response( - # dict( - # code='missing_stripe_details', - # message='Please pass valid product/card or stripe secret' - # ), - # status=status.HTTP_400_BAD_REQUEST - # ) - def perform_create(self, serializer): serializer.save( user=self.request.user, created_by=self.request.user, ) + def destroy(self, request, *args, **kwargs): + instance = self.get_object() + cancelled = self.perform_destroy(instance) + if not cancelled: + return Response( + dict( + code='stripe_api_error', + message='There was an error cancelling subscription', + ), + status=status.HTTP_400_BAD_REQUEST + ) + return Response( + dict(code='subscription_cancelled'), + status=status.HTTP_204_NO_CONTENT + ) + + def perform_destroy(self, instance): + # delete the subscription on stripe + cancelled = self.cancel_subscription_on_stripe(instance) + + if cancelled: + # delete the subscription + instance.cancelled = True + instance.cancelled_date = timezone.now() + instance.save() + return cancelled + @action( detail=False, methods=['get'], @@ -124,7 +116,7 @@ def stripe_products(self, request, *args, **kwargs): if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET stripe.api_version = '2022-11-15' - stripe_products = stripe.Product.search(query="active:'true'",) + stripe_products = stripe.Product.search(query="active:'true'", ) products = stripe_products.data return Response( @@ -198,3 +190,21 @@ def get_stripe_details(self): return None return data + + @staticmethod + def cancel_subscription_on_stripe(instance): + """ + Cancel a subscription + """ + if settings.STRIPE_SECRET: + stripe.api_key = settings.STRIPE_SECRET + # stripe.api_version = '2022-11-15' + try: + # stripe.Subscription.cancel(instance.stripe_subscription_id) + subscription = stripe.Subscription.retrieve(instance.stripe_subscription_id) + subscription.delete() + return True + + except Exception as e: + pass + return False diff --git a/templates/email/coreuser/subscription.html b/templates/email/coreuser/subscription.html index 35dacb69..ae6bbc12 100644 --- a/templates/email/coreuser/subscription.html +++ b/templates/email/coreuser/subscription.html @@ -12,7 +12,7 @@

Subscription successful!

-

You have successfully subscribed to Insights on Buildly!
Click the button below to return to the app

+

You have successfully subscribed to Labs on Buildly!
Click the button below to return to the app

@@ -20,7 +20,7 @@

- Buildly Insights + Buildly Labs diff --git a/templates/email/coreuser/subscription.txt b/templates/email/coreuser/subscription.txt index c930c8f9..a428695d 100644 --- a/templates/email/coreuser/subscription.txt +++ b/templates/email/coreuser/subscription.txt @@ -1,6 +1,6 @@ Subscription successful! -You have successfully subscribed to Insights on Buildly. +You have successfully subscribed to Labs on Buildly. Go to {{ frontend_link }} to access the app. From a5fccaedd608416096763b4f8c822ee8056ada52 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 20 Aug 2024 17:39:48 +0200 Subject: [PATCH 126/160] add coupon --- core/__init__.py | 1 + core/admin.py | 9 ++- core/apps.py | 3 + core/helpers/__init__.py | 3 + core/helpers/stripe.py | 28 +++++++ core/migrations/0020_auto_20240820_1237.py | 47 +++++++++++ core/migrations/0021_auto_20240820_1525.py | 18 +++++ core/models.py | 92 +++++++++++++++++++--- core/serializers.py | 8 +- core/signals.py | 21 +++++ core/views/subscription.py | 48 ++++++++++- 11 files changed, 260 insertions(+), 18 deletions(-) create mode 100644 core/helpers/__init__.py create mode 100644 core/helpers/stripe.py create mode 100644 core/migrations/0020_auto_20240820_1237.py create mode 100644 core/migrations/0021_auto_20240820_1525.py create mode 100644 core/signals.py diff --git a/core/__init__.py b/core/__init__.py index e69de29b..17acc4cd 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -0,0 +1 @@ +default_app_config = 'core.apps.CoreConfig' diff --git a/core/admin.py b/core/admin.py index df63d89f..3024a127 100644 --- a/core/admin.py +++ b/core/admin.py @@ -2,7 +2,8 @@ from django.contrib.auth.admin import UserAdmin from django.utils.translation import ugettext_lazy as _ -from core.models import CoreUser, CoreGroup, CoreSites, EmailTemplate, Industry, LogicModule, Organization, Partner +from core.models import CoreUser, CoreGroup, CoreSites, EmailTemplate, Industry, LogicModule, Organization, Partner, \ + Coupon class LogicModuleAdmin(admin.ModelAdmin): @@ -60,6 +61,12 @@ class EmailTemplateAdmin(admin.ModelAdmin): list_display = ('organization', 'type') display = 'Email Template' +@admin.register(Coupon) +class CouponAdmin(admin.ModelAdmin): + list_display = ('name', 'code', 'percent_off', 'duration', 'max_redemptions', 'active') + list_filter = ('active', 'duration') + search_fields = ('code', 'name') + admin.site.register(LogicModule, LogicModuleAdmin) admin.site.register(Organization, OrganizationAdmin) diff --git a/core/apps.py b/core/apps.py index 1356624f..4ed9b5de 100644 --- a/core/apps.py +++ b/core/apps.py @@ -7,3 +7,6 @@ class CoreConfig(AppConfig): name = 'core' + + def ready(self): + import core.signals # noqa diff --git a/core/helpers/__init__.py b/core/helpers/__init__.py new file mode 100644 index 00000000..c02740f1 --- /dev/null +++ b/core/helpers/__init__.py @@ -0,0 +1,3 @@ +from .stripe import StripeHelper + +__all__ = ['StripeHelper',] \ No newline at end of file diff --git a/core/helpers/stripe.py b/core/helpers/stripe.py new file mode 100644 index 00000000..c5cb2727 --- /dev/null +++ b/core/helpers/stripe.py @@ -0,0 +1,28 @@ +import stripe + +from django.conf import settings + +from core.models import Coupon + + +class StripeHelper: + def __init__(self): + stripe.api_key = settings.STRIPE_SECRET + stripe.api_version = '2022-11-15' + self.stripe = stripe + + def create_coupon(self, coupon: Coupon): + """ + creates the coupon on stripe when created in insights + """ + return self.stripe.Coupon.create( + name=coupon.name, + percent_off=coupon.percent_off, + duration=coupon.duration, + id=coupon.coupon_uuid, + currency=coupon.currency, + max_redemptions=coupon.max_redemptions, + duration_in_months=coupon.duration_in_months, + ) + + diff --git a/core/migrations/0020_auto_20240820_1237.py b/core/migrations/0020_auto_20240820_1237.py new file mode 100644 index 00000000..33a6d689 --- /dev/null +++ b/core/migrations/0020_auto_20240820_1237.py @@ -0,0 +1,47 @@ +# Generated by Django 2.2.28 on 2024-08-20 12:37 + +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0019_auto_20240630_1037'), + ] + + operations = [ + migrations.CreateModel( + name='Coupon', + fields=[ + ('coupon_uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), + ('name', models.CharField(max_length=64)), + ('code', models.CharField(max_length=24, unique=True)), + ('duration', models.CharField(choices=[('forever', 'Forever'), ('once', 'Once'), ('repeating', 'Repeating')], default='once', max_length=16)), + ('duration_in_months', models.IntegerField(blank=True, null=True)), + ('active', models.BooleanField(default=True)), + ('max_redemptions', models.IntegerField(default=1)), + ('percent_off', models.FloatField(default=0)), + ('amount_off', models.FloatField(default=0)), + ('discount_amount', models.FloatField(default=0)), + ('currency', models.CharField(default='usd', max_length=3)), + ('create_date', models.DateTimeField(auto_now_add=True)), + ('edit_date', models.DateTimeField(auto_now=True)), + ('stripe_coupon_id', models.CharField(blank=True, max_length=255, null=True)), + ], + options={ + 'verbose_name': 'Coupon', + 'verbose_name_plural': 'Coupons', + }, + ), + migrations.AlterModelOptions( + name='subscription', + options={'ordering': ['-create_date'], 'verbose_name': 'Subscription', 'verbose_name_plural': 'Subscriptions'}, + ), + migrations.AddField( + model_name='subscription', + name='coupon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='coupon_subscription', to='core.Coupon'), + ), + ] diff --git a/core/migrations/0021_auto_20240820_1525.py b/core/migrations/0021_auto_20240820_1525.py new file mode 100644 index 00000000..4def1487 --- /dev/null +++ b/core/migrations/0021_auto_20240820_1525.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2024-08-20 15:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0020_auto_20240820_1237'), + ] + + operations = [ + migrations.AlterField( + model_name='coupon', + name='code', + field=models.CharField(blank=True, max_length=24, null=True, unique=True), + ), + ] diff --git a/core/models.py b/core/models.py index 658fbedd..740772f3 100644 --- a/core/models.py +++ b/core/models.py @@ -1,3 +1,5 @@ +import random +import string import uuid from django.contrib.auth.models import AbstractUser @@ -86,13 +88,18 @@ class Organization(models.Model): When organization is created two CoreGroups are created automatically: Admins group and default Users group. """ organization_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, verbose_name='Organization UUID') - name = models.CharField("Organization Name", max_length=255, blank=True, help_text="Each end user must be grouped into an organization") - description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, help_text="Description of organization") - organization_url = models.CharField(blank=True, null=True, max_length=255, help_text="Link to organizations external web site") - industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', help_text="Type of Industry the organization belongs to if any") + name = models.CharField("Organization Name", max_length=255, blank=True, + help_text="Each end user must be grouped into an organization") + description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, + help_text="Description of organization") + organization_url = models.CharField(blank=True, null=True, max_length=255, + help_text="Link to organizations external web site") + industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', + help_text="Type of Industry the organization belongs to if any") create_date = models.DateTimeField(null=True, blank=True) edit_date = models.DateTimeField(null=True, blank=True) - oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) + oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, + blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) @@ -139,11 +146,13 @@ class CoreGroup(models.Model): """ uuid = models.CharField('CoreGroup UUID', max_length=255, default=uuid.uuid4, unique=True) name = models.CharField('Name of the role', max_length=80) - organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, help_text='Related Org to associate with') + organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, + help_text='Related Org to associate with') is_global = models.BooleanField('Is global group', default=False) is_org_level = models.BooleanField('Is organization level group', default=False) is_default = models.BooleanField('Is organization default group', default=False) - permissions = models.PositiveSmallIntegerField('Permissions', default=PERMISSIONS_VIEW_ONLY, help_text='Decimal integer from 0 to 15 converted from 4-bit binary, each bit indicates permissions for CRUD') + permissions = models.PositiveSmallIntegerField('Permissions', default=PERMISSIONS_VIEW_ONLY, + help_text='Decimal integer from 0 to 15 converted from 4-bit binary, each bit indicates permissions for CRUD') create_date = models.DateTimeField(default=timezone.now) edit_date = models.DateTimeField(null=True, blank=True) @@ -180,12 +189,15 @@ class CoreUser(AbstractUser): core_user_uuid = models.CharField(max_length=255, verbose_name='CoreUser UUID', default=uuid.uuid4, unique=True) title = models.CharField(blank=True, null=True, max_length=3, choices=TITLE_CHOICES) contact_info = models.CharField(blank=True, null=True, max_length=255) - organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, help_text='Related Org to associate with') - core_groups = models.ManyToManyField(CoreGroup, verbose_name='User groups', blank=True, related_name='user_set', related_query_name='user') + organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, + help_text='Related Org to associate with') + core_groups = models.ManyToManyField(CoreGroup, verbose_name='User groups', blank=True, related_name='user_set', + related_query_name='user') privacy_disclaimer_accepted = models.BooleanField(default=False) create_date = models.DateTimeField(default=timezone.now) edit_date = models.DateTimeField(null=True, blank=True) - user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, default='Product Team') + user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, + default='Product Team') survey_status = models.BooleanField(default=False) coupon_code = models.CharField(max_length=48, blank=True, null=True) @@ -230,7 +242,8 @@ class EmailTemplate(models.Model): """ Stores e-mail templates specific to organization """ - organization = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='Organization', help_text='Related Org to associate with') + organization = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='Organization', + help_text='Related Org to associate with') subject = models.CharField('Subject', max_length=255) type = models.PositiveSmallIntegerField('Type of template', choices=TEMPLATE_TYPES) template = models.TextField("Reset password e-mail template (text)", null=True, blank=True) @@ -253,7 +266,8 @@ class LogicModule(models.Model): endpoint_name = models.CharField(blank=True, null=True, max_length=255) docs_endpoint = models.CharField(blank=True, null=True, max_length=255) api_specification = JSONField(blank=True, null=True) - core_groups = models.ManyToManyField(CoreGroup, verbose_name='Logic Module groups', blank=True, related_name='logic_module_set', related_query_name='logic_module') + core_groups = models.ManyToManyField(CoreGroup, verbose_name='Logic Module groups', blank=True, + related_name='logic_module_set', related_query_name='logic_module') create_date = models.DateTimeField(null=True, blank=True) edit_date = models.DateTimeField(null=True, blank=True) @@ -279,6 +293,45 @@ class Partner(models.Model): edit_date = models.DateTimeField(null=True, blank=True) +class Coupon(models.Model): + FOREVER = 'forever' + ONCE = 'once' + REPEATING = 'repeating' + + DurationChoices = ( + (FOREVER, 'Forever'), + (ONCE, 'Once'), + (REPEATING, 'Repeating'), + ) + + coupon_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) + name = models.CharField(max_length=64) + code = models.CharField(max_length=24, unique=True, blank=True, null=True) + duration = models.CharField(choices=DurationChoices, max_length=16, default=ONCE) + duration_in_months = models.IntegerField(null=True, blank=True) + active = models.BooleanField(default=True) # maps to valid field on stripe + max_redemptions = models.IntegerField(default=1) + percent_off = models.FloatField(default=0) + amount_off = models.FloatField(default=0) + discount_amount = models.FloatField(default=0) + currency = models.CharField(max_length=3, default='usd') + create_date = models.DateTimeField(auto_now_add=True) + edit_date = models.DateTimeField(auto_now=True) + stripe_coupon_id = models.CharField(max_length=255, null=True, blank=True) + + class Meta: + verbose_name = "Coupon" + verbose_name_plural = "Coupons" + + def __str__(self): + return f'{self.code}-{self.name}' + + def generate_code(self): + # generate code (First letters INSIGHTS + 6 random digits (letters and numbers) + self.code = f"INSIGHTS-{''.join(random.choices(string.ascii_uppercase + string.digits, k=6))}" + self.save() + + class Subscription(models.Model): subscription_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) stripe_subscription_id = models.CharField(max_length=255, null=True) @@ -313,3 +366,18 @@ class Subscription(models.Model): ) cancelled = models.BooleanField(default=False) cancelled_date = models.DateTimeField(null=True, blank=True) + coupon = models.ForeignKey( + 'core.Coupon', + on_delete=models.SET_NULL, + blank=True, + null=True, + related_name='coupon_subscription' + ) + + def __str__(self): + return self.stripe_subscription_id + + class Meta: + verbose_name = "Subscription" + verbose_name_plural = "Subscriptions" + ordering = ['-create_date'] \ No newline at end of file diff --git a/core/serializers.py b/core/serializers.py index 442041c0..57ddb1ed 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -16,7 +16,7 @@ from core.email_utils import send_email, send_email_body from core.models import CoreUser, CoreGroup, EmailTemplate, LogicModule, Organization, PERMISSIONS_ORG_ADMIN, \ - TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription + TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription, Coupon class LogicModuleSerializer(serializers.ModelSerializer): @@ -578,3 +578,9 @@ class SubscriptionSerializer(serializers.ModelSerializer): class Meta: model = Subscription fields = '__all__' + + +class CouponCodeSerializer(serializers.ModelSerializer): + class Meta: + fields = '__all__' + model = Coupon diff --git a/core/signals.py b/core/signals.py new file mode 100644 index 00000000..0eb67d34 --- /dev/null +++ b/core/signals.py @@ -0,0 +1,21 @@ +from django.dispatch import receiver +from django.db.models.signals import post_save + +from core.helpers import StripeHelper +from core.models import Coupon + + +@receiver(post_save, sender=Coupon) +def create_coupon_on_stripe(sender, instance, created, **kwargs): + # only run this if the instance is created + if created: + # generate code + instance.generate_code() + + # create the coupon on stripe + stripe_helper = StripeHelper() + coupon = stripe_helper.create_coupon(instance) + + # update the coupon to set the stripe_coupon_id (Specify the field to update to avoid updating all fields) + instance.stripe_coupon_id = coupon.id + instance.save(update_fields=['stripe_coupon_id']) diff --git a/core/views/subscription.py b/core/views/subscription.py index 9f857447..ee876cd1 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -1,5 +1,3 @@ -import logging -from datetime import datetime from dateutil import relativedelta import stripe @@ -12,8 +10,8 @@ from rest_framework.permissions import (AllowAny, IsAuthenticated) from core.email_utils import send_email -from core.models import Subscription -from core.serializers import SubscriptionSerializer +from core.models import Subscription, Coupon +from core.serializers import SubscriptionSerializer, CouponCodeSerializer class SubscriptionViewSet(viewsets.ModelViewSet): @@ -46,6 +44,16 @@ def get_queryset(self): return queryset.order_by('-create_date') def create(self, request, *args, **kwargs): + # validate coupon code + if 'coupon' in request.data and not self.is_coupon_valid(): + return Response( + dict( + code='invalid_coupon', + message='Invalid coupon code' + ), + status=status.HTTP_400_BAD_REQUEST + ) + if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET stripe.api_version = '2022-11-15' @@ -74,6 +82,18 @@ def perform_create(self, serializer): created_by=self.request.user, ) + def update(self, request, *args, **kwargs): + # validate coupon code + if 'coupon' in request.data and not self.is_coupon_valid(): + return Response( + dict( + code='invalid_coupon', + message='Invalid coupon code' + ), + status=status.HTTP_400_BAD_REQUEST + ) + return super().update(request, *args, **kwargs) + def destroy(self, request, *args, **kwargs): instance = self.get_object() cancelled = self.perform_destroy(instance) @@ -139,9 +159,18 @@ def get_stripe_details(self): stripe_product = stripe.Product.retrieve(product_id) try: + # apply the coupon code to the customer + coupon = None + if 'coupon' in data: + try: + coupon = Coupon.objects.get(code=data.pop('coupon')).stripe_coupon_id + except Coupon.DoesNotExist: + pass + customer = stripe.Customer.create( email=self.request.user.email, name=str(self.request.user.organization.name).capitalize(), + coupon=coupon, ) stripe.PaymentMethod.attach(payment_method_id, customer=customer.id) @@ -208,3 +237,14 @@ def cancel_subscription_on_stripe(instance): except Exception as e: pass return False + + def is_coupon_valid(self): + """ + Validate coupon code + """ + return Coupon.objects.filter(code=self.request.data.get('coupon')).exists() + + +class CouponCodeViewSet(viewsets.ModelViewSet): + queryset = Coupon.objects.all() + serializer_class = CouponCodeSerializer From e12df05cee53affbe4a0200337c2a8be06bcdb26 Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Thu, 22 Aug 2024 15:14:31 +0530 Subject: [PATCH 127/160] fix unit test github action --- .github/workflows/unit_test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 123434e5..6f932b39 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -8,19 +8,19 @@ jobs: unit_test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - - name: Build the docker-compose stack - run: docker-compose build + - name: Build the docker compose stack + run: docker compose build - name: Setup docker containers - run: docker-compose up -d + run: docker compose up -d - name: Check running containers run: docker ps -a - name: Run unit test case - run: docker-compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/run-tests.sh --keepdb + run: docker compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/run-tests.sh --keepdb - name: Stop docker container - run: docker-compose down + run: docker compose down From e172dff17566f433eee5e4ed5d67dd1c473e728f Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Mon, 26 Aug 2024 08:47:03 +0200 Subject: [PATCH 128/160] clean code --- core/models.py | 15 +++++---------- core/serializers.py | 14 ++++++-------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/core/models.py b/core/models.py index 740772f3..3df53ee7 100644 --- a/core/models.py +++ b/core/models.py @@ -88,18 +88,13 @@ class Organization(models.Model): When organization is created two CoreGroups are created automatically: Admins group and default Users group. """ organization_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, verbose_name='Organization UUID') - name = models.CharField("Organization Name", max_length=255, blank=True, - help_text="Each end user must be grouped into an organization") - description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, - help_text="Description of organization") - organization_url = models.CharField(blank=True, null=True, max_length=255, - help_text="Link to organizations external web site") - industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', - help_text="Type of Industry the organization belongs to if any") + name = models.CharField("Organization Name", max_length=255, blank=True, help_text="Each end user must be grouped into an organization") + description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, help_text="Description of organization") + organization_url = models.CharField(blank=True, null=True, max_length=255, help_text="Link to organizations external web site") + industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', help_text="Type of Industry the organization belongs to if any") create_date = models.DateTimeField(null=True, blank=True) edit_date = models.DateTimeField(null=True, blank=True) - oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, - blank=True) + oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) diff --git a/core/serializers.py b/core/serializers.py index 57ddb1ed..9d275a5e 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -184,18 +184,16 @@ def create(self, validated_data): # add org admin role to the user if org is new if is_new_org: - if coupon_code and coupon_code == settings.FREE_COUPON_CODE: - organization.unlimited_free_plan = True - organization.save() + organization.unlimited_free_plan = True + organization.save(update_fields=['unlimited_free_plan']) - group_org_admin = CoreGroup.objects.get(organization=organization, - is_org_level=True, - permissions=PERMISSIONS_ORG_ADMIN) + group_org_admin = CoreGroup.objects.get( + organization=organization, is_org_level=True, permissions=PERMISSIONS_ORG_ADMIN + ) coreuser.core_groups.add(group_org_admin) # add requested groups to the user - for group in core_groups: - coreuser.core_groups.add(group) + coreuser.core_groups.add(*core_groups) # create or update an invitation reg_location = urljoin(settings.FRONTEND_URL, settings.VERIFY_EMAIL_URL_PATH) From 6a83bd922a77de3939175c4e7c94b8044201a54c Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Mon, 26 Aug 2024 14:46:51 +0530 Subject: [PATCH 129/160] patch version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8e2ac454..f25e8dc5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.9.0" +LABEL version="0.9.1" From 94e06bac7c3be56410f1bccb7e09f6ddd63257e7 Mon Sep 17 00:00:00 2001 From: Radhika Patel <64517071+patelradhika@users.noreply.github.com> Date: Mon, 26 Aug 2024 14:58:48 +0530 Subject: [PATCH 130/160] Production patch release (#111) * Update prod-build.yml Workaround for https://github.com/ButlerLogic/action-autotag/issues/45 * initial stripe changes * order by descending subscription end date to get the latest entry * fix github action for artifact registry * fix invite link * patch release * fix patch version * patch version * cancel subscriptions * implement subscription cancellation * change insights to labs * fix unit test github action * patch version --------- Co-authored-by: Greg Lind Co-authored-by: Peter Odeny --- .github/workflows/unit_test.yml | 12 ++++++------ Dockerfile | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 123434e5..6f932b39 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -8,19 +8,19 @@ jobs: unit_test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - - name: Build the docker-compose stack - run: docker-compose build + - name: Build the docker compose stack + run: docker compose build - name: Setup docker containers - run: docker-compose up -d + run: docker compose up -d - name: Check running containers run: docker ps -a - name: Run unit test case - run: docker-compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/run-tests.sh --keepdb + run: docker compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/run-tests.sh --keepdb - name: Stop docker container - run: docker-compose down + run: docker compose down diff --git a/Dockerfile b/Dockerfile index 8e2ac454..f25e8dc5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.9.0" +LABEL version="0.9.1" From 9c0df6c7e40e01d3055fc70bb756510d12dd36c9 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 07:08:36 +0200 Subject: [PATCH 131/160] add referral model --- core/admin.py | 8 +++++++- core/models.py | 44 +++++++++++++++++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/core/admin.py b/core/admin.py index 3024a127..a950caa2 100644 --- a/core/admin.py +++ b/core/admin.py @@ -3,7 +3,7 @@ from django.utils.translation import ugettext_lazy as _ from core.models import CoreUser, CoreGroup, CoreSites, EmailTemplate, Industry, LogicModule, Organization, Partner, \ - Coupon + Coupon, Referral class LogicModuleAdmin(admin.ModelAdmin): @@ -67,6 +67,12 @@ class CouponAdmin(admin.ModelAdmin): list_filter = ('active', 'duration') search_fields = ('code', 'name') +@admin.register(Referral) +class ReferralAdmin(admin.ModelAdmin): + list_display = ('name', 'code', 'organization', 'coupon', 'active') + list_filter = ('active', 'organization', 'coupon') + search_fields = ('code', 'name', 'organization__name', 'coupon__name') + admin.site.register(LogicModule, LogicModuleAdmin) admin.site.register(Organization, OrganizationAdmin) diff --git a/core/models.py b/core/models.py index 3df53ee7..c8a74b0d 100644 --- a/core/models.py +++ b/core/models.py @@ -88,13 +88,18 @@ class Organization(models.Model): When organization is created two CoreGroups are created automatically: Admins group and default Users group. """ organization_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, verbose_name='Organization UUID') - name = models.CharField("Organization Name", max_length=255, blank=True, help_text="Each end user must be grouped into an organization") - description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, help_text="Description of organization") - organization_url = models.CharField(blank=True, null=True, max_length=255, help_text="Link to organizations external web site") - industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', help_text="Type of Industry the organization belongs to if any") + name = models.CharField("Organization Name", max_length=255, blank=True, + help_text="Each end user must be grouped into an organization") + description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, + help_text="Description of organization") + organization_url = models.CharField(blank=True, null=True, max_length=255, + help_text="Link to organizations external web site") + industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', + help_text="Type of Industry the organization belongs to if any") create_date = models.DateTimeField(null=True, blank=True) edit_date = models.DateTimeField(null=True, blank=True) - oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) + oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, + blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) @@ -132,6 +137,31 @@ def _create_initial_groups(self): ) +class Referral(models.Model): + referral_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) + organization = models.ForeignKey(Organization, on_delete=models.CASCADE, related_name='organization_referrals') + name = models.CharField(max_length=255) + code = models.CharField(max_length=255, unique=True) + usage_count = models.IntegerField(default=0) + max_usage = models.IntegerField(null=True, blank=True) + active = models.BooleanField(default=True) + coupon = models.ForeignKey('core.Coupon', on_delete=models.SET_NULL, blank=True, null=True) + create_date = models.DateTimeField(auto_now_add=True) + edit_date = models.DateTimeField(auto_now=True) + + class Meta: + verbose_name = "Referral" + verbose_name_plural = "Referrals" + + def save(self, *args, **kwargs): + if not self.pk: + self.code = f"INSIGHTS-{''.join(random.choices(string.ascii_uppercase + string.digits, k=8))}" + super(Referral, self).save(*args, **kwargs) + + def __str__(self): + return f'{self.code}-{self.name}' + + class CoreGroup(models.Model): """ CoreGroup model defines the groups of the users with specific permissions for the set of workflowlevel1's @@ -304,7 +334,7 @@ class Coupon(models.Model): code = models.CharField(max_length=24, unique=True, blank=True, null=True) duration = models.CharField(choices=DurationChoices, max_length=16, default=ONCE) duration_in_months = models.IntegerField(null=True, blank=True) - active = models.BooleanField(default=True) # maps to valid field on stripe + active = models.BooleanField(default=True) # maps to valid field on stripe max_redemptions = models.IntegerField(default=1) percent_off = models.FloatField(default=0) amount_off = models.FloatField(default=0) @@ -375,4 +405,4 @@ def __str__(self): class Meta: verbose_name = "Subscription" verbose_name_plural = "Subscriptions" - ordering = ['-create_date'] \ No newline at end of file + ordering = ['-create_date'] From 325fc3ed1993abec42cbb23e3c7bcc588ac04cba Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 07:42:21 +0200 Subject: [PATCH 132/160] handle referral link from registration --- core/models.py | 2 ++ core/serializers.py | 41 ++++++++++++++++++++++++++++++++++------- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/core/models.py b/core/models.py index c8a74b0d..c41b6be2 100644 --- a/core/models.py +++ b/core/models.py @@ -103,6 +103,8 @@ class Organization(models.Model): date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) + coupon = models.ForeignKey('core.Coupon', on_delete=models.SET_NULL, blank=True, null=True) + class Meta: ordering = ('name',) diff --git a/core/serializers.py b/core/serializers.py index 9d275a5e..2da29455 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -16,7 +16,7 @@ from core.email_utils import send_email, send_email_body from core.models import CoreUser, CoreGroup, EmailTemplate, LogicModule, Organization, PERMISSIONS_ORG_ADMIN, \ - TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription, Coupon + TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription, Coupon, Referral class LogicModuleSerializer(serializers.ModelSerializer): @@ -167,9 +167,11 @@ def create(self, validated_data): # check whether org_name is "default" if org_name in ['default']: - default_org_user = CoreGroup.objects.filter(organization__name=settings.DEFAULT_ORG, - is_org_level=True, - permissions=PERMISSIONS_VIEW_ONLY).first() + default_org_user = ( + CoreGroup.objects + .filter(organization__name=settings.DEFAULT_ORG, is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY) + .first() + ) coreuser.core_groups.add(default_org_user) # check whether an old organization @@ -177,9 +179,11 @@ def create(self, validated_data): coreuser.is_active = False coreuser.save() - org_user = CoreGroup.objects.filter(organization__name=organization, - is_org_level=True, - permissions=PERMISSIONS_VIEW_ONLY).first() + org_user = ( + CoreGroup.objects + .filter(organization__name=organization, is_org_level=True, permissions=PERMISSIONS_VIEW_ONLY) + .first() + ) coreuser.core_groups.add(org_user) # add org admin role to the user if org is new @@ -192,6 +196,15 @@ def create(self, validated_data): ) coreuser.core_groups.add(group_org_admin) + # check if referral link or coupon is used + coupon_code = validated_data.pop('coupon_code', None) + referral_code = validated_data.pop('referral_code', None) + if coupon_code or referral_code: + coupon = self.handle_coupon(coupon_code or referral_code, is_referral=bool(referral_code)) + if coupon: + organization.coupon = coupon + organization.save(update_fields=['coupon']) + # add requested groups to the user coreuser.core_groups.add(*core_groups) @@ -217,6 +230,20 @@ def create(self, validated_data): return coreuser + @staticmethod + def handle_coupon(code, is_referral=False): + # check if referral link was used + if is_referral: + referral: Referral = Referral.objects.filter(code=code).first() + coupon = referral.coupon + referral.usage_count += 1 + referral.save(update_fields=['usage_count']) + # check if coupon code was used + else: + coupon = Coupon.objects.filter(code=code).first() + + return coupon + class CoreUserProfileSerializer(serializers.Serializer): """ Let's user update his first_name,last_name,title,contact_info, From 3d8fb2eba7aaf0e85aa68d5f969a3a81e84bae27 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 08:08:14 +0200 Subject: [PATCH 133/160] apply coupon to a subscription --- core/serializers.py | 21 ++++++++++++++++++--- core/views/subscription.py | 35 ++++++++--------------------------- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 2da29455..ba338dd2 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -142,6 +142,15 @@ class Meta: read_only_fields = CoreUserSerializer.Meta.read_only_fields def create(self, validated_data): + # validate coupon code or referral code if used + coupon_code = validated_data.pop('coupon_code', None) + referral_code = validated_data.pop('referral_code', None) + if coupon_code or referral_code: + if not self.is_coupon_valid(coupon_code or referral_code, is_referral=bool(referral_code)): + raise serializers.ValidationError( + 'Invalid coupon code or referral code', code='invalid_code' + ) + # get or create organization organization = validated_data.pop('organization') org_name = organization['name'] @@ -196,9 +205,6 @@ def create(self, validated_data): ) coreuser.core_groups.add(group_org_admin) - # check if referral link or coupon is used - coupon_code = validated_data.pop('coupon_code', None) - referral_code = validated_data.pop('referral_code', None) if coupon_code or referral_code: coupon = self.handle_coupon(coupon_code or referral_code, is_referral=bool(referral_code)) if coupon: @@ -244,6 +250,15 @@ def handle_coupon(code, is_referral=False): return coupon + @staticmethod + def is_coupon_valid(code, is_referral=False): + """ + Validate coupon code or referral code + """ + if is_referral: + return Referral.objects.filter(code=code, active=True).exists() + + return Coupon.objects.filter(code=code, active=True).exists() class CoreUserProfileSerializer(serializers.Serializer): """ Let's user update his first_name,last_name,title,contact_info, diff --git a/core/views/subscription.py b/core/views/subscription.py index ee876cd1..d42ec8bb 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -44,20 +44,16 @@ def get_queryset(self): return queryset.order_by('-create_date') def create(self, request, *args, **kwargs): - # validate coupon code - if 'coupon' in request.data and not self.is_coupon_valid(): - return Response( - dict( - code='invalid_coupon', - message='Invalid coupon code' - ), - status=status.HTTP_400_BAD_REQUEST - ) + # check if organization has a coupon + try: + coupon = self.request.user.organization.coupon + except KeyError: + coupon = None if settings.STRIPE_SECRET: stripe.api_key = settings.STRIPE_SECRET stripe.api_version = '2022-11-15' - data = self.get_stripe_details() + data = self.get_stripe_details(coupon) if data: serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) @@ -144,7 +140,7 @@ def stripe_products(self, request, *args, **kwargs): status=status.HTTP_200_OK, ) - def get_stripe_details(self): + def get_stripe_details(self, coupon=None): """ Get stripe details """ @@ -159,19 +155,10 @@ def get_stripe_details(self): stripe_product = stripe.Product.retrieve(product_id) try: - # apply the coupon code to the customer - coupon = None - if 'coupon' in data: - try: - coupon = Coupon.objects.get(code=data.pop('coupon')).stripe_coupon_id - except Coupon.DoesNotExist: - pass - customer = stripe.Customer.create( email=self.request.user.email, name=str(self.request.user.organization.name).capitalize(), - coupon=coupon, - + coupon=coupon.stripe_coupon_id if coupon else None, ) stripe.PaymentMethod.attach(payment_method_id, customer=customer.id) @@ -238,12 +225,6 @@ def cancel_subscription_on_stripe(instance): pass return False - def is_coupon_valid(self): - """ - Validate coupon code - """ - return Coupon.objects.filter(code=self.request.data.get('coupon')).exists() - class CouponCodeViewSet(viewsets.ModelViewSet): queryset = Coupon.objects.all() From 9665111cb525d65361a40b0ae656cc91be08f4c4 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 08:31:40 +0200 Subject: [PATCH 134/160] fix error --- core/serializers.py | 26 ++++++++++++++++++++------ core/views/organization.py | 2 +- core/views/subscription.py | 1 - 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index ba338dd2..01f13ea2 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -16,7 +16,7 @@ from core.email_utils import send_email, send_email_body from core.models import CoreUser, CoreGroup, EmailTemplate, LogicModule, Organization, PERMISSIONS_ORG_ADMIN, \ - TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription, Coupon, Referral + TEMPLATE_RESET_PASSWORD, PERMISSIONS_VIEW_ONLY, Partner, Subscription, Coupon, Referral, ROLE_ORGANIZATION_ADMIN class LogicModuleSerializer(serializers.ModelSerializer): @@ -81,6 +81,7 @@ class CoreUserSerializer(serializers.ModelSerializer): core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) subscriptions = serializers.SerializerMethodField() + subscription_active = serializers.SerializerMethodField() def validate_invitation_token(self, value): try: @@ -118,7 +119,8 @@ class Meta: depth = 1 def get_subscriptions(self, user): - if user.organization: + core_groups = user.core_groups.values_list('name', flat=True) + if user.organization and ROLE_ORGANIZATION_ADMIN in core_groups: return SubscriptionSerializer( user.organization.organization_subscription.all(), many=True @@ -126,6 +128,9 @@ def get_subscriptions(self, user): return None + def get_subscription_active(self, user): + return user.organization.organization_subscription.filter(is_active=True).exists() + class CoreUserWritableSerializer(CoreUserSerializer): """ @@ -260,6 +265,7 @@ def is_coupon_valid(code, is_referral=False): return Coupon.objects.filter(code=code, active=True).exists() + class CoreUserProfileSerializer(serializers.Serializer): """ Let's user update his first_name,last_name,title,contact_info, password and organization_name """ @@ -393,16 +399,24 @@ def save(self): class OrganizationSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) subscriptions = serializers.SerializerMethodField() + subscription_active = serializers.SerializerMethodField() class Meta: model = Organization fields = '__all__' def get_subscriptions(self, organization): - return SubscriptionSerializer( - organization.organization_subscription.all(), - many=True - ).data + # check if user is OrgAdmin + user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) + if ROLE_ORGANIZATION_ADMIN in user_groups: + return SubscriptionSerializer( + organization.organization_subscription.all(), + many=True + ).data + return [] + + def get_subscription_active(self, organization): + return organization.organization_subscription.filter(is_active=True).exists() class OrganizationNestedSerializer(serializers.ModelSerializer): diff --git a/core/views/organization.py b/core/views/organization.py index 9702aa21..ff14870b 100644 --- a/core/views/organization.py +++ b/core/views/organization.py @@ -41,7 +41,7 @@ def list(self, request, *args, **kwargs): if not request.user.is_global_admin: organization_id = request.user.organization_id queryset = queryset.filter(pk=organization_id) - serializer = self.get_serializer(queryset, many=True) + serializer = self.get_serializer(queryset, many=True, context={'request': request}) return Response(serializer.data) filter_backends = (django_filters.rest_framework.DjangoFilterBackend,) diff --git a/core/views/subscription.py b/core/views/subscription.py index d42ec8bb..121a55f0 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -9,7 +9,6 @@ from rest_framework.decorators import action from rest_framework.permissions import (AllowAny, IsAuthenticated) -from core.email_utils import send_email from core.models import Subscription, Coupon from core.serializers import SubscriptionSerializer, CouponCodeSerializer From 870d441b467d332956c55e4fb6cd5c084c8b6e09 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 11:04:09 +0200 Subject: [PATCH 135/160] fix error --- core/serializers.py | 3 ++- core/tests/test_serializers.py | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 01f13ea2..a7ff7672 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -113,7 +113,8 @@ class Meta: 'invitation_token', 'user_type', 'survey_status', - 'subscriptions' + 'subscriptions', + 'subscription_active', ) read_only_fields = ('core_user_uuid', 'organization',) depth = 1 diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index f23eff00..b74c2f2f 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -22,6 +22,7 @@ def test_org_serializer(request_factory, org): 'industries', 'unlimited_free_plan', 'subscriptions', + 'subscription_active', ] assert set(data.keys()) == set(keys) @@ -64,7 +65,8 @@ def test_core_user_serializer(request_factory, org_member): 'core_groups', 'user_type', 'survey_status', - 'subscriptions' + 'subscriptions', + 'subscription_active', ] assert set(data.keys()) == set(keys) assert isinstance(data['organization'], dict) From ca5799a923e66a4da94f5e39faef2c20b2b4c5f6 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 12:08:31 +0200 Subject: [PATCH 136/160] add migrations --- core/migrations/0022_auto_20240828_1005.py | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 core/migrations/0022_auto_20240828_1005.py diff --git a/core/migrations/0022_auto_20240828_1005.py b/core/migrations/0022_auto_20240828_1005.py new file mode 100644 index 00000000..01f24683 --- /dev/null +++ b/core/migrations/0022_auto_20240828_1005.py @@ -0,0 +1,39 @@ +# Generated by Django 2.2.28 on 2024-08-28 10:05 + +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0021_auto_20240820_1525'), + ] + + operations = [ + migrations.AddField( + model_name='organization', + name='coupon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.Coupon'), + ), + migrations.CreateModel( + name='Referral', + fields=[ + ('referral_uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), + ('name', models.CharField(max_length=255)), + ('code', models.CharField(max_length=255, unique=True)), + ('usage_count', models.IntegerField(default=0)), + ('max_usage', models.IntegerField(blank=True, null=True)), + ('active', models.BooleanField(default=True)), + ('create_date', models.DateTimeField(auto_now_add=True)), + ('edit_date', models.DateTimeField(auto_now=True)), + ('coupon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.Coupon')), + ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='organization_referrals', to='core.Organization')), + ], + options={ + 'verbose_name': 'Referral', + 'verbose_name_plural': 'Referrals', + }, + ), + ] From 342b7da6635e5214678ce3786b9d0a5c584cc8a5 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 12:59:49 +0200 Subject: [PATCH 137/160] fix error --- core/serializers.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index a7ff7672..aba23bea 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -5,6 +5,7 @@ from django.contrib.auth import password_validation from django.contrib.auth.tokens import default_token_generator from django.conf import settings +from django.utils import timezone from django.utils.encoding import force_bytes, force_text from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode from django.template import Template, Context @@ -130,7 +131,9 @@ def get_subscriptions(self, user): return None def get_subscription_active(self, user): - return user.organization.organization_subscription.filter(is_active=True).exists() + return user.organization.organization_subscription.filter( + subscription_end_date__gte=timezone.now().date(), + ).exists() class CoreUserWritableSerializer(CoreUserSerializer): @@ -417,7 +420,9 @@ def get_subscriptions(self, organization): return [] def get_subscription_active(self, organization): - return organization.organization_subscription.filter(is_active=True).exists() + return organization.organization_subscription.filter( + subscription_end_date__gte=timezone.now().date() + ).exists() class OrganizationNestedSerializer(serializers.ModelSerializer): From 8bc3093756dc8a4b9e776b364b7b9bbf11716859 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 14:13:57 +0200 Subject: [PATCH 138/160] fix tests --- core/serializers.py | 19 +++++++++++++------ core/tests/test_coreuserview.py | 2 +- core/tests/test_serializers.py | 2 ++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index aba23bea..744227a5 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -411,12 +411,13 @@ class Meta: def get_subscriptions(self, organization): # check if user is OrgAdmin - user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) - if ROLE_ORGANIZATION_ADMIN in user_groups: - return SubscriptionSerializer( - organization.organization_subscription.all(), - many=True - ).data + if self.context.get('request') and hasattr(self.context.get('request'), 'user'): + user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) + if ROLE_ORGANIZATION_ADMIN in user_groups: + return SubscriptionSerializer( + organization.organization_subscription.all(), + many=True + ).data return [] def get_subscription_active(self, organization): @@ -428,6 +429,7 @@ def get_subscription_active(self, organization): class OrganizationNestedSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) subscription = serializers.SerializerMethodField() + subscription_active = serializers.SerializerMethodField() class Meta: model = Organization @@ -439,6 +441,11 @@ def get_subscription(self, organization): many=True ).data + def get_subscription_active(self, organization): + return organization.organization_subscription.filter( + subscription_end_date__gte=timezone.now().date() + ).exists() + class AccessTokenSerializer(serializers.ModelSerializer): user = CoreUserSerializer() diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index 4202f6da..dc1fc2b5 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -437,7 +437,7 @@ class TestCoreUserRead(object): keys = { 'id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', 'subscriptions', 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', - 'user_type', 'survey_status' + 'user_type', 'survey_status', 'subscription_active', } def test_coreuser_list(self, request_factory, org_member): diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index b74c2f2f..23c8ef0b 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -21,9 +21,11 @@ def test_org_serializer(request_factory, org): 'phone', 'industries', 'unlimited_free_plan', + 'coupon', 'subscriptions', 'subscription_active', ] + print(data.keys(), flush=True) assert set(data.keys()) == set(keys) From 893caf7213c2f7852a0f904d64384d401fbc0b50 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 15:34:36 +0200 Subject: [PATCH 139/160] add refferal link --- core/migrations/0023_auto_20240828_1334.py | 23 ++++++++++++++++++++++ core/models.py | 5 ++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 core/migrations/0023_auto_20240828_1334.py diff --git a/core/migrations/0023_auto_20240828_1334.py b/core/migrations/0023_auto_20240828_1334.py new file mode 100644 index 00000000..793e0e95 --- /dev/null +++ b/core/migrations/0023_auto_20240828_1334.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.28 on 2024-08-28 13:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0022_auto_20240828_1005'), + ] + + operations = [ + migrations.AddField( + model_name='referral', + name='link', + field=models.TextField(blank=True, null=True, unique=True), + ), + migrations.AlterField( + model_name='referral', + name='code', + field=models.CharField(blank=True, max_length=255, null=True, unique=True), + ), + ] diff --git a/core/models.py b/core/models.py index c41b6be2..8e85f8ed 100644 --- a/core/models.py +++ b/core/models.py @@ -2,6 +2,7 @@ import string import uuid +from django.conf import settings from django.contrib.auth.models import AbstractUser from django.contrib.postgres.fields import ArrayField, JSONField from django.contrib.sites.models import Site @@ -143,7 +144,8 @@ class Referral(models.Model): referral_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) organization = models.ForeignKey(Organization, on_delete=models.CASCADE, related_name='organization_referrals') name = models.CharField(max_length=255) - code = models.CharField(max_length=255, unique=True) + code = models.CharField(max_length=255, unique=True, null=True, blank=True) + link= models.TextField(unique=True, null=True, blank=True) usage_count = models.IntegerField(default=0) max_usage = models.IntegerField(null=True, blank=True) active = models.BooleanField(default=True) @@ -158,6 +160,7 @@ class Meta: def save(self, *args, **kwargs): if not self.pk: self.code = f"INSIGHTS-{''.join(random.choices(string.ascii_uppercase + string.digits, k=8))}" + self.link = f'{settings.FRONTEND_URL}{settings.REGISTRATION_URL_PATH}?referral_code={self.code}' super(Referral, self).save(*args, **kwargs) def __str__(self): From 60b6cb7b18987f30ab67b3415ffd43c1696e97f0 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Wed, 28 Aug 2024 15:45:49 +0200 Subject: [PATCH 140/160] fix test --- core/models.py | 4 ++-- core/tests/test_serializers.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/models.py b/core/models.py index 8e85f8ed..43da7a6d 100644 --- a/core/models.py +++ b/core/models.py @@ -158,8 +158,8 @@ class Meta: verbose_name_plural = "Referrals" def save(self, *args, **kwargs): - if not self.pk: - self.code = f"INSIGHTS-{''.join(random.choices(string.ascii_uppercase + string.digits, k=8))}" + if self._state.adding: + self.code = f"INSIGHTS-REF-{''.join(random.choices(string.ascii_uppercase + string.digits, k=8))}" self.link = f'{settings.FRONTEND_URL}{settings.REGISTRATION_URL_PATH}?referral_code={self.code}' super(Referral, self).save(*args, **kwargs) diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 23c8ef0b..4f2c7ce9 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -25,7 +25,6 @@ def test_org_serializer(request_factory, org): 'subscriptions', 'subscription_active', ] - print(data.keys(), flush=True) assert set(data.keys()) == set(keys) From 1844789cca55e1d3c5916636e7edacd39ab727c3 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 29 Aug 2024 08:17:16 +0200 Subject: [PATCH 141/160] add refferral link to org object --- core/serializers.py | 6 ++++++ core/tests/test_serializers.py | 1 + 2 files changed, 7 insertions(+) diff --git a/core/serializers.py b/core/serializers.py index 744227a5..bba0d7ce 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -404,6 +404,7 @@ class OrganizationSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) subscriptions = serializers.SerializerMethodField() subscription_active = serializers.SerializerMethodField() + referral_link = serializers.SerializerMethodField() class Meta: model = Organization @@ -425,6 +426,11 @@ def get_subscription_active(self, organization): subscription_end_date__gte=timezone.now().date() ).exists() + def get_referral_link(self, organization): + if organization.organization_referrals.exists(): + return organization.organization_referrals.first().get('link') + return None + class OrganizationNestedSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 4f2c7ce9..a1efb16d 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -24,6 +24,7 @@ def test_org_serializer(request_factory, org): 'coupon', 'subscriptions', 'subscription_active', + 'referral_link', ] assert set(data.keys()) == set(keys) From 09a395cb5cdacff0e9e093fddba8a9801cb77cfb Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Fri, 30 Aug 2024 16:45:44 +0200 Subject: [PATCH 142/160] save requests' --- core/migrations/0024_auto_20240830_1445.py | 19 +++++++++++++++++++ core/models.py | 17 ++++++----------- 2 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 core/migrations/0024_auto_20240830_1445.py diff --git a/core/migrations/0024_auto_20240830_1445.py b/core/migrations/0024_auto_20240830_1445.py new file mode 100644 index 00000000..27887614 --- /dev/null +++ b/core/migrations/0024_auto_20240830_1445.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.28 on 2024-08-30 14:45 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0023_auto_20240828_1334'), + ] + + operations = [ + migrations.AlterField( + model_name='referral', + name='organization', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='organization_referrals', to='core.Organization'), + ), + ] diff --git a/core/models.py b/core/models.py index 43da7a6d..6037b095 100644 --- a/core/models.py +++ b/core/models.py @@ -89,18 +89,13 @@ class Organization(models.Model): When organization is created two CoreGroups are created automatically: Admins group and default Users group. """ organization_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, verbose_name='Organization UUID') - name = models.CharField("Organization Name", max_length=255, blank=True, - help_text="Each end user must be grouped into an organization") - description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, - help_text="Description of organization") - organization_url = models.CharField(blank=True, null=True, max_length=255, - help_text="Link to organizations external web site") - industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', - help_text="Type of Industry the organization belongs to if any") + name = models.CharField("Organization Name", max_length=255, blank=True, help_text="Each end user must be grouped into an organization") + description = models.TextField("Description/Notes", max_length=765, null=True, blank=True, help_text="Description of organization") + organization_url = models.CharField(blank=True, null=True, max_length=255, help_text="Link to organizations external web site") + industries = models.ManyToManyField(Industry, blank=True, related_name='organizations', help_text="Type of Industry the organization belongs to if any") create_date = models.DateTimeField(null=True, blank=True) edit_date = models.DateTimeField(null=True, blank=True) - oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, - blank=True) + oauth_domains = ArrayField(models.CharField("OAuth Domains", max_length=255, null=True, blank=True), null=True, blank=True) date_format = models.CharField("Date Format", max_length=50, blank=True, default="DD.MM.YYYY") phone = models.CharField(max_length=20, blank=True, null=True) unlimited_free_plan = models.BooleanField('Free unlimited features plan', default=True) @@ -142,7 +137,7 @@ def _create_initial_groups(self): class Referral(models.Model): referral_uuid = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False) - organization = models.ForeignKey(Organization, on_delete=models.CASCADE, related_name='organization_referrals') + organization = models.ForeignKey(Organization, null=True, blank=True, on_delete=models.SET_NULL, related_name='organization_referrals') name = models.CharField(max_length=255) code = models.CharField(max_length=255, unique=True, null=True, blank=True) link= models.TextField(unique=True, null=True, blank=True) From d7c7109fe63d06a4e398cd90be5275e26dd0b8d7 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Fri, 30 Aug 2024 17:19:31 +0200 Subject: [PATCH 143/160] update serializer --- core/serializers.py | 23 +++++++++++++++-------- core/tests/test_serializers.py | 3 +-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 57ddb1ed..a843c9eb 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -72,6 +72,20 @@ class Meta: fields = ('id', 'uuid', 'name', 'is_global', 'is_org_level', 'permissions', 'organization', 'workflowlevel1s', 'workflowlevel2s') +class OrganizationSerializer(serializers.ModelSerializer): + id = serializers.UUIDField(source='organization_uuid', read_only=True) + subscriptions = serializers.SerializerMethodField() + + class Meta: + model = Organization + fields = '__all__' + + def get_subscriptions(self, organization): + return SubscriptionSerializer( + organization.organization_subscription.all(), + many=True + ).data + class CoreUserSerializer(serializers.ModelSerializer): """ @@ -81,6 +95,7 @@ class CoreUserSerializer(serializers.ModelSerializer): core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) subscriptions = serializers.SerializerMethodField() + organization = OrganizationSerializer() def validate_invitation_token(self, value): try: @@ -117,14 +132,6 @@ class Meta: read_only_fields = ('core_user_uuid', 'organization',) depth = 1 - def get_subscriptions(self, user): - if user.organization: - return SubscriptionSerializer( - user.organization.organization_subscription.all(), - many=True - ).data - - return None class CoreUserWritableSerializer(CoreUserSerializer): diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index f23eff00..2f93fe70 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -63,8 +63,7 @@ def test_core_user_serializer(request_factory, org_member): 'organization', 'core_groups', 'user_type', - 'survey_status', - 'subscriptions' + 'survey_status' ] assert set(data.keys()) == set(keys) assert isinstance(data['organization'], dict) From 0124665b1393620f20bf41f041ff3db1afa7353a Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Fri, 30 Aug 2024 17:30:57 +0200 Subject: [PATCH 144/160] fix merge error --- core/serializers.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 173f20b0..ca002a72 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -73,6 +73,7 @@ class Meta: fields = ('id', 'uuid', 'name', 'is_global', 'is_org_level', 'permissions', 'organization', 'workflowlevel1s', 'workflowlevel2s') + class OrganizationSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) subscriptions = serializers.SerializerMethodField() @@ -96,11 +97,8 @@ class CoreUserSerializer(serializers.ModelSerializer): core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) subscriptions = serializers.SerializerMethodField() -<<<<<<< HEAD organization = OrganizationSerializer() -======= subscription_active = serializers.SerializerMethodField() ->>>>>>> 1b3653b2c98c15d6368f6183aa5fc432cc66ca5d def validate_invitation_token(self, value): try: @@ -138,8 +136,6 @@ class Meta: read_only_fields = ('core_user_uuid', 'organization',) depth = 1 -<<<<<<< HEAD -======= def get_subscriptions(self, user): core_groups = user.core_groups.values_list('name', flat=True) if user.organization and ROLE_ORGANIZATION_ADMIN in core_groups: @@ -149,7 +145,6 @@ def get_subscriptions(self, user): ).data return None ->>>>>>> 1b3653b2c98c15d6368f6183aa5fc432cc66ca5d def get_subscription_active(self, user): return user.organization.organization_subscription.filter( From fda00da44ade5863bc33ec46100e9dab75edaaea Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Fri, 30 Aug 2024 17:46:21 +0200 Subject: [PATCH 145/160] fix subscription --- core/serializers.py | 27 --------------------------- core/tests/test_serializers.py | 1 - 2 files changed, 28 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index ca002a72..85da5af1 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -74,21 +74,6 @@ class Meta: 'workflowlevel2s') -class OrganizationSerializer(serializers.ModelSerializer): - id = serializers.UUIDField(source='organization_uuid', read_only=True) - subscriptions = serializers.SerializerMethodField() - - class Meta: - model = Organization - fields = '__all__' - - def get_subscriptions(self, organization): - return SubscriptionSerializer( - organization.organization_subscription.all(), - many=True - ).data - - class CoreUserSerializer(serializers.ModelSerializer): """ Default CoreUser serializer @@ -97,7 +82,6 @@ class CoreUserSerializer(serializers.ModelSerializer): core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) subscriptions = serializers.SerializerMethodField() - organization = OrganizationSerializer() subscription_active = serializers.SerializerMethodField() def validate_invitation_token(self, value): @@ -130,22 +114,11 @@ class Meta: 'invitation_token', 'user_type', 'survey_status', - 'subscriptions', 'subscription_active', ) read_only_fields = ('core_user_uuid', 'organization',) depth = 1 - def get_subscriptions(self, user): - core_groups = user.core_groups.values_list('name', flat=True) - if user.organization and ROLE_ORGANIZATION_ADMIN in core_groups: - return SubscriptionSerializer( - user.organization.organization_subscription.all(), - many=True - ).data - - return None - def get_subscription_active(self, user): return user.organization.organization_subscription.filter( subscription_end_date__gte=timezone.now().date(), diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 22cdc702..81b8e1f5 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -68,7 +68,6 @@ def test_core_user_serializer(request_factory, org_member): 'user_type', 'survey_status' 'survey_status', - 'subscriptions', 'subscription_active', ] assert set(data.keys()) == set(keys) From f8fb78bec5c73ef2293f6b2139638f453934a86a Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 5 Sep 2024 18:45:26 +0200 Subject: [PATCH 146/160] fix validation errors --- core/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/serializers.py b/core/serializers.py index 85da5af1..15a921c2 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -132,7 +132,7 @@ class CoreUserWritableSerializer(CoreUserSerializer): password = serializers.CharField(write_only=True) organization_name = serializers.CharField(source='organization.name') core_groups = serializers.PrimaryKeyRelatedField(many=True, queryset=CoreGroup.objects.all(), required=False) - coupon_code = serializers.CharField(required=False) + coupon_code = serializers.CharField(required=False, allow_blank=True, allow_null=True) class Meta: model = CoreUser From bcb4589fab63f030d033d62a76f264620dbaa91a Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 5 Sep 2024 19:03:53 +0200 Subject: [PATCH 147/160] fix error --- core/serializers.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 15a921c2..0347cab3 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -70,8 +70,16 @@ class CoreGroupSerializer(serializers.ModelSerializer): class Meta: model = CoreGroup read_only_fields = ('uuid', 'workflowlevel1s', 'workflowlevel2s') - fields = ('id', 'uuid', 'name', 'is_global', 'is_org_level', 'permissions', 'organization', 'workflowlevel1s', - 'workflowlevel2s') + fields = ( + 'id', 'uuid', + 'name', + 'is_global', + 'is_org_level', + 'permissions', + 'organization', + 'workflowlevel1s', + 'workflowlevel2s' + ) class CoreUserSerializer(serializers.ModelSerializer): @@ -81,7 +89,6 @@ class CoreUserSerializer(serializers.ModelSerializer): is_active = serializers.BooleanField(required=False) core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) - subscriptions = serializers.SerializerMethodField() subscription_active = serializers.SerializerMethodField() def validate_invitation_token(self, value): From 6bb0798b05d160d8d18614e4e45c852af34cd427 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 5 Sep 2024 19:25:16 +0200 Subject: [PATCH 148/160] fix error --- core/serializers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 0347cab3..55ddc8ff 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -163,8 +163,6 @@ def create(self, validated_data): core_groups = validated_data.pop('core_groups', []) invitation_token = validated_data.pop('invitation_token', None) - coupon_code = validated_data.get('coupon_code', None) - # create core user if settings.AUTO_APPROVE_USER: # If auto-approval set to true validated_data['is_active'] = True From e8fb806f50eab2c1eaaf9ca460d66fef0423a424 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Sat, 7 Sep 2024 15:40:35 +0200 Subject: [PATCH 149/160] fix issues --- core/views/subscription.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/views/subscription.py b/core/views/subscription.py index 121a55f0..97e6adb9 100644 --- a/core/views/subscription.py +++ b/core/views/subscription.py @@ -183,10 +183,10 @@ def get_stripe_details(self, coupon=None): stripe_subscription_id=stripe_subscription.id, stripe_product=product_id, stripe_payment_method_id=payment_method_id, - trial_start_date=timezone.now().date() - relativedelta.relativedelta(months=1), - trial_end_date=timezone.now().date(), - subscription_start_date=timezone.now().date(), - subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), + trial_start_date=timezone.now().date(), + trial_end_date=timezone.now().date() + relativedelta.relativedelta(months=1), + subscription_start_date=timezone.now().date() + relativedelta.relativedelta(months=1), + subscription_end_date=timezone.now().date() + relativedelta.relativedelta(months=2), organization=self.request.user.organization.organization_uuid, ) data.update(stripe_subscription_details) From 12fbbef044d213821e6b1bcd3e4a690ddd201d8e Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Tue, 10 Sep 2024 19:16:09 +0200 Subject: [PATCH 150/160] fix error --- core/models.py | 9 +++---- core/serializers.py | 66 ++++++++++++++++++++++----------------------- 2 files changed, 36 insertions(+), 39 deletions(-) diff --git a/core/models.py b/core/models.py index 6037b095..f82b4bd2 100644 --- a/core/models.py +++ b/core/models.py @@ -214,15 +214,12 @@ class CoreUser(AbstractUser): core_user_uuid = models.CharField(max_length=255, verbose_name='CoreUser UUID', default=uuid.uuid4, unique=True) title = models.CharField(blank=True, null=True, max_length=3, choices=TITLE_CHOICES) contact_info = models.CharField(blank=True, null=True, max_length=255) - organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, - help_text='Related Org to associate with') - core_groups = models.ManyToManyField(CoreGroup, verbose_name='User groups', blank=True, related_name='user_set', - related_query_name='user') + organization = models.ForeignKey(Organization, blank=True, null=True, on_delete=models.CASCADE, help_text='Related Org to associate with') + core_groups = models.ManyToManyField(CoreGroup, verbose_name='User groups', blank=True, related_name='user_set', related_query_name='user') privacy_disclaimer_accepted = models.BooleanField(default=False) create_date = models.DateTimeField(default=timezone.now) edit_date = models.DateTimeField(null=True, blank=True) - user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, - default='Product Team') + user_type = models.CharField(blank=True, null=True, max_length=50, choices=USER_TYPE_CHOICES, default='Product Team') survey_status = models.BooleanField(default=False) coupon_code = models.CharField(max_length=48, blank=True, null=True) diff --git a/core/serializers.py b/core/serializers.py index 55ddc8ff..d29874bf 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -61,6 +61,38 @@ def to_representation(self, value): return str(super().to_representation(value)) +class OrganizationSerializer(serializers.ModelSerializer): + id = serializers.UUIDField(source='organization_uuid', read_only=True) + subscriptions = serializers.SerializerMethodField() + subscription_active = serializers.SerializerMethodField() + referral_link = serializers.SerializerMethodField() + + class Meta: + model = Organization + fields = '__all__' + + def get_subscriptions(self, organization): + # check if user is OrgAdmin + if self.context.get('request') and hasattr(self.context.get('request'), 'user'): + user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) + if ROLE_ORGANIZATION_ADMIN in user_groups: + return SubscriptionSerializer( + organization.organization_subscription.all(), + many=True + ).data + return [] + + def get_subscription_active(self, organization): + return organization.organization_subscription.filter( + subscription_end_date__gte=timezone.now().date() + ).exists() + + def get_referral_link(self, organization): + if organization.organization_referrals.exists(): + return organization.organization_referrals.first().get('link') + return None + + class CoreGroupSerializer(serializers.ModelSerializer): permissions = PermissionsField(required=False) organization = UUIDPrimaryKeyRelatedField(required=False, @@ -89,6 +121,7 @@ class CoreUserSerializer(serializers.ModelSerializer): is_active = serializers.BooleanField(required=False) core_groups = CoreGroupSerializer(read_only=True, many=True) invitation_token = serializers.CharField(required=False) + organization = OrganizationSerializer(read_only=True) subscription_active = serializers.SerializerMethodField() def validate_invitation_token(self, value): @@ -124,7 +157,6 @@ class Meta: 'subscription_active', ) read_only_fields = ('core_user_uuid', 'organization',) - depth = 1 def get_subscription_active(self, user): return user.organization.organization_subscription.filter( @@ -394,38 +426,6 @@ def save(self): return self.user -class OrganizationSerializer(serializers.ModelSerializer): - id = serializers.UUIDField(source='organization_uuid', read_only=True) - subscriptions = serializers.SerializerMethodField() - subscription_active = serializers.SerializerMethodField() - referral_link = serializers.SerializerMethodField() - - class Meta: - model = Organization - fields = '__all__' - - def get_subscriptions(self, organization): - # check if user is OrgAdmin - if self.context.get('request') and hasattr(self.context.get('request'), 'user'): - user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) - if ROLE_ORGANIZATION_ADMIN in user_groups: - return SubscriptionSerializer( - organization.organization_subscription.all(), - many=True - ).data - return [] - - def get_subscription_active(self, organization): - return organization.organization_subscription.filter( - subscription_end_date__gte=timezone.now().date() - ).exists() - - def get_referral_link(self, organization): - if organization.organization_referrals.exists(): - return organization.organization_referrals.first().get('link') - return None - - class OrganizationNestedSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='organization_uuid', read_only=True) subscription = serializers.SerializerMethodField() From d66b38de267cf4fec2848a1045c6f1591481d83b Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 12 Sep 2024 18:26:09 +0200 Subject: [PATCH 151/160] fix subscriptions endpoint --- core/serializers.py | 10 +++++---- core/views/coreuser.py | 48 +++++++++++++++++++++--------------------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index d29874bf..ce869885 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -89,15 +89,17 @@ def get_subscription_active(self, organization): def get_referral_link(self, organization): if organization.organization_referrals.exists(): - return organization.organization_referrals.first().get('link') + return organization.organization_referrals.first().link return None class CoreGroupSerializer(serializers.ModelSerializer): permissions = PermissionsField(required=False) - organization = UUIDPrimaryKeyRelatedField(required=False, - queryset=Organization.objects.all(), - help_text="Related Org to associate with") + organization = UUIDPrimaryKeyRelatedField( + required=False, + queryset=Organization.objects.all(), + help_text="Related Org to associate with" + ) class Meta: model = CoreGroup diff --git a/core/views/coreuser.py b/core/views/coreuser.py index 389c2a37..74dc0987 100644 --- a/core/views/coreuser.py +++ b/core/views/coreuser.py @@ -92,30 +92,30 @@ def me(self, request, *args, **kwargs): # Check existing subscription for the user and update or create new one's if needed # existing_subscriptions = Subscription.objects.filter(user=user).first() - if settings.STRIPE_SECRET: - stripe.api_key = settings.STRIPE_SECRET - stripe.api_version = '2022-11-15' - - existing_subscriptions = Subscription.objects.filter(user=user).order_by('-subscription_end_date').first() - if existing_subscriptions: - stripe_subscription = stripe.Subscription.retrieve(existing_subscriptions.stripe_subscription_id) - if stripe_subscription: - new_start_datetime = datetime.fromtimestamp(stripe_subscription.current_period_start).date() - new_end_datetime = datetime.fromtimestamp(stripe_subscription.current_period_end).date() - - if existing_subscriptions.subscription_end_date == new_start_datetime: - Subscription.objects.create( - stripe_customer_id=existing_subscriptions.stripe_customer_id, - stripe_subscription_id=existing_subscriptions.stripe_subscription_id, - stripe_product=existing_subscriptions.stripe_product, - stripe_payment_method_id=existing_subscriptions.stripe_payment_method_id, - subscription_start_date=new_start_datetime, - subscription_end_date=new_end_datetime, - organization=existing_subscriptions.organization, - user=existing_subscriptions.user, - created_by=existing_subscriptions.created_by, - stripe_product_info=existing_subscriptions.stripe_product_info, - ) + # if settings.STRIPE_SECRET: + # stripe.api_key = settings.STRIPE_SECRET + # stripe.api_version = '2022-11-15' + + # existing_subscriptions = Subscription.objects.filter(user=user).order_by('-subscription_end_date').first() + # if existing_subscriptions: + # stripe_subscription = stripe.Subscription.retrieve(existing_subscriptions.stripe_subscription_id) + # if stripe_subscription: + # new_start_datetime = datetime.fromtimestamp(stripe_subscription.current_period_start).date() + # new_end_datetime = datetime.fromtimestamp(stripe_subscription.current_period_end).date() + # + # if existing_subscriptions.subscription_end_date == new_start_datetime: + # Subscription.objects.create( + # stripe_customer_id=existing_subscriptions.stripe_customer_id, + # stripe_subscription_id=existing_subscriptions.stripe_subscription_id, + # stripe_product=existing_subscriptions.stripe_product, + # stripe_payment_method_id=existing_subscriptions.stripe_payment_method_id, + # subscription_start_date=new_start_datetime, + # subscription_end_date=new_end_datetime, + # organization=existing_subscriptions.organization, + # user=existing_subscriptions.user, + # created_by=existing_subscriptions.created_by, + # stripe_product_info=existing_subscriptions.stripe_product_info, + # ) serializer = self.get_serializer(instance=user, context={'request': request}) return Response(serializer.data) From cbae16463de71ba5a70bb02a005b75cae186c316 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 12 Sep 2024 18:35:53 +0200 Subject: [PATCH 152/160] patch release --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f25e8dc5..660bcff6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.9.1" +LABEL version="0.9.2" From 03c6458cdd1c91f376121fcd5f73ad8bdaaf6d0b Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 12 Sep 2024 18:44:02 +0200 Subject: [PATCH 153/160] test errors --- core/serializers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/serializers.py b/core/serializers.py index ce869885..7f0d16ac 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -74,7 +74,10 @@ class Meta: def get_subscriptions(self, organization): # check if user is OrgAdmin if self.context.get('request') and hasattr(self.context.get('request'), 'user'): - user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) + try: + user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) + except AttributeError: + user_groups = [] if ROLE_ORGANIZATION_ADMIN in user_groups: return SubscriptionSerializer( organization.organization_subscription.all(), From 73e1a2d6e9e8cd6972d1b63606bceef23115cd25 Mon Sep 17 00:00:00 2001 From: Peter Odeny Date: Thu, 12 Sep 2024 19:29:29 +0200 Subject: [PATCH 154/160] fix errors --- core/serializers.py | 2 +- core/tests/test_coreuserview.py | 3 ++- core/tests/test_serializers.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/core/serializers.py b/core/serializers.py index 7f0d16ac..6b3ca96f 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -78,7 +78,7 @@ def get_subscriptions(self, organization): user_groups = self.context.get('request').user.core_groups.values_list('name', flat=True) except AttributeError: user_groups = [] - if ROLE_ORGANIZATION_ADMIN in user_groups: + if 'Admins' in user_groups: return SubscriptionSerializer( organization.organization_subscription.all(), many=True diff --git a/core/tests/test_coreuserview.py b/core/tests/test_coreuserview.py index dc1fc2b5..5eb3feed 100644 --- a/core/tests/test_coreuserview.py +++ b/core/tests/test_coreuserview.py @@ -436,7 +436,7 @@ class TestCoreUserRead(object): keys = { 'id', 'core_user_uuid', 'first_name', 'last_name', 'email', 'username', 'is_active', 'title', - 'subscriptions', 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', + 'contact_info', 'privacy_disclaimer_accepted', 'organization', 'core_groups', 'user_type', 'survey_status', 'subscription_active', } @@ -450,6 +450,7 @@ def test_coreuser_list(self, request_factory, org_member): assert response.status_code == 200 data = response.data assert len(data) == 2 + print('Keys: ', data[0].keys(), flush=True) assert set(data[0].keys()) == self.keys def test_coreuser_retrieve(self, request_factory, org_member): diff --git a/core/tests/test_serializers.py b/core/tests/test_serializers.py index 81b8e1f5..abee597e 100644 --- a/core/tests/test_serializers.py +++ b/core/tests/test_serializers.py @@ -66,9 +66,9 @@ def test_core_user_serializer(request_factory, org_member): 'organization', 'core_groups', 'user_type', - 'survey_status' 'survey_status', 'subscription_active', ] + assert set(data.keys()) == set(keys) assert isinstance(data['organization'], dict) From 355e25cc4b553a74e16f838155aeaa27fe30d98e Mon Sep 17 00:00:00 2001 From: Radhika Patel Date: Mon, 16 Sep 2024 21:20:12 +0530 Subject: [PATCH 155/160] MVP version 1.0.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2df7c182..c80bb1ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,5 +25,5 @@ EXPOSE 8080 ENTRYPOINT ["bash", "/code/scripts/docker-entrypoint.sh"] # Specify tag name to be created on github -LABEL version="0.9.2" +LABEL version="1.0.0" From 1b75e0ad70e0eea4eb20ef76829f90497b03faad Mon Sep 17 00:00:00 2001 From: Greg Lind Date: Tue, 17 Sep 2024 13:24:15 -0700 Subject: [PATCH 156/160] cleanup --- .gitignore | 2 ++ docs/_static/images/aggregator-pattern.png | Bin 103344 -> 0 bytes docs/_static/images/async-pattern.png | Bin 105731 -> 0 bytes docs/_static/images/buildly-logo.png | Bin 13623 -> 0 bytes docs/_static/images/flex-pattern.png | Bin 132812 -> 0 bytes docs/_static/images/proxy-pattern.png | Bin 92542 -> 0 bytes static/images/bg02.jpg | Bin 1283393 -> 0 bytes static/images/icons/favicon.ico | Bin 128310 -> 0 bytes .../bootstrap/css/bootstrap-grid.css.map | 1 - static/vendor/bootstrap/css/bootstrap.css.map | 1 - .../bootstrap/css/bootstrap.min.css.map | 1 - 11 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 docs/_static/images/aggregator-pattern.png delete mode 100644 docs/_static/images/async-pattern.png delete mode 100644 docs/_static/images/buildly-logo.png delete mode 100644 docs/_static/images/flex-pattern.png delete mode 100644 docs/_static/images/proxy-pattern.png delete mode 100644 static/images/bg02.jpg delete mode 100644 static/images/icons/favicon.ico delete mode 100755 static/vendor/bootstrap/css/bootstrap-grid.css.map delete mode 100755 static/vendor/bootstrap/css/bootstrap.css.map delete mode 100755 static/vendor/bootstrap/css/bootstrap.min.css.map diff --git a/.gitignore b/.gitignore index 996b8802..06066031 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,5 @@ dmypy.json .idea .coverage + +.DS_store \ No newline at end of file diff --git a/docs/_static/images/aggregator-pattern.png b/docs/_static/images/aggregator-pattern.png deleted file mode 100644 index 6ad0c79b33e3ff4fbef67667ba616056f18e6153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103344 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 diff --git a/docs/_static/images/async-pattern.png b/docs/_static/images/async-pattern.png deleted file mode 100644 index c3170dd425ff95c63e33906e1368229769163355..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105731 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

BCDNY+!HFfIADe2h;fu0^(iqd5o7<`pq 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 CtN0H9 diff --git a/docs/_static/images/flex-pattern.png b/docs/_static/images/flex-pattern.png deleted file mode 100644 index 823efa78e3b7cc220610c3af67b9796a2f50415f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132812 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 L$%vMI(DVIY`z?R> diff --git a/docs/_static/images/proxy-pattern.png b/docs/_static/images/proxy-pattern.png deleted file mode 100644 index 37074526f891cbc9ebae5cd16d60b22ec2b5ed02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92542 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%0DP=$emKA89R5cau=pQd#no0Q@%HaKA&<=D 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

dep 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�+G~@j39DSB>ab{{TB)wDaiDxpG zYgaupDQ_#`PaR>l++J?*xp|$SK8_u6zQ|=Fy=)4`My;Te5Eh3~al}QKl3aWR&l7LH zOAAlZ^^Jp9b|SWQ)o~Ru%NN+ST_7g9hi&aFeOX8}N(w93bGP|&yig{j*1L*8RP@AW8Y zv5amtgDiEm0~1m`mOYCawWWVtZLb};CWJ)H()=WiYj)5vx_(ng)Ag%33`H;8X|DrC znQJw@T@`#miuzQb;3tye%mH>7D2NguL-HOr?m;zbd53$+U}Ivmy7P*?fn^m1F;N}1 zEoiQ^F@k^~8JV>{!(R~`e6IM@OxCcNds#mp>6&i0i1fHiHI=Pi?XjuI@d>RH)gjOI z2Ed6Tj>wE^PlvWvF$Jpk$NlZwCxZ+s#zZ&TZt7~rGZs72C zZOYYZ#Yz>%>wAQdqHU5yhpBfTO(Y}l&*XDF{GR7)YS-ZKelw-M<5Pu|HMOyOou=cG z5YBtp`kO4p<3@O%N)62a0GM1%%>10$p@SWO4{h^-c>^f=$BVg!#pUy#M&JfV;>?vY zWy@vMrX*?C6v=S}5fkt%xty+vl6p07)8B<~c@39dxGz%c;Sm+V>|Fb6-hzSk3p=(Z zExAsKC}4vmW8xl>uIih<(yDu1QQk{e!!~PR@D)(HwQD`;Woq^;L?l*Fh&2~)O9a$G zFy1(yD7mue8nvq1CZWCK@C5-Ft#|!g8s0M4f&T#7r;M<_+@Hu4cUdldlRSF4`+S{a zGJag8=4;@bmSe^Eji#k#DVMM&0~Y{oH464xsS=VU6^6jd26;)Bu7AIQ_Ji=&b=^xJ zXEUC}Xxg4Jg4xF4+`M`#u3+LMvTP6mnTa9c3s*5e=3K=5N!GldgTi9xDdKHa*D+>> zvc_)W3lV~qoB+v1>x93pm>^_BA)Ip@!T$iq$tRC|b&TG!4m=m?J9yuA3hFyxdj3Ng zZ>Td7`F(YjaaJOEA6lUW#PjPZ;(i{>cv`KEimn53@;y+YWgg7E+>SXHTVAAr8tI-w z_{EmG!53)?(36D;anG?Wan>`ROrFv#uvHRDuQOnR zI-P^HFsKQhJ2RIIta)2xED&U)tQXL*(eaF4GK+d(@%M8XUqDt= za>8G+6iy;1w9GOi?fDGE&&f8WvF&?~?9Ibn(luM+4yl?;a$7Zq%YL1N7}?0XmU97n_S{Qcv7 z4>yp+=(<)DC6r5-V%0rDZsae?2=5&aBs$e2t!`le3ZiJMDNKe$R1pb7fF0G+Yxc z5_5#B)fxN5a}Fuzk&&5?i#p!xU*W8#pN44%I1lx3kq*UfQ-TKaS@_wQP z3dD$j=0I36@D9B5-ayvlIKLU=c68z_8xghTb|zZ2R90~WUs)-@2=oI1YK z;ykWi<~y5Ju-R<3M&35E$mjW13HEzt3%Pwqxr8KtaRZ(p0$?|v7+BALqIPd17B4ki zA$4%xKiSsICGiuFSuV@k;UOrWx~5e>Zm^k|TDZSZ*m8SEC_*42C6hnl+xy5lO4YCtr};a^8kKB)y7ONjn#pRJ0g3`m1vu?J zUriwj7DPpa$omZ7I9U{tNauUb>b~qZiu~KVZrIUmTeQmB&HRn3jc7!au{J&9WF{9A zAaarz5r{aBI13hcOPn?+b=n`NOm>bq^sWq;bFAi8mCf#z@uiN6Dasd8`WZRbvSV;Am%qqE=iLPJ@58zwAXWO=_ z_p%ueCg-!*%zUY@*J^0Nj-~7snRK%DDr;4183EE7n={@<1GhZIBt6>`}8vyO~{ zGM<)a-)m`tn$PwUtFV}=i?ZMVI6*F136bd{v4wmGO1h@$`i#WQYuRk>O6@^aT+OYK zwMP?D+{};oF0@_9Par}9EULJXktvB1nP}L*M>IglaK!+J7!PQv zj~2BMa{yBV2xDeTw6Ld{nPvTxT*qxSuWBA`%IoN5KxE@DGcLB|eKHbtYtqQslW%bU z0JmYLlmn3wJPT*%dzAb$h{Y#(-h7LT@-W#!-J^}dY^2Pnt&JJ%)34gP#(#_^wAim$ zdJvbkXScwzCp-Gq&1?6|N%AI#TVJjx6*hgN4f}1Dcl$`!ilj)H>oF2UlM#{Up3xx* z`M)!-!urIO-A@5iJ(N+l_RWa$RXv9(aDsn3c2#g|Te0d8Y>LPDgomIA!9;vOtGW2I z8w4-#$Bz7ej;-ioGM1@T+;Z(FaR8OdKA{y0j+`ZrO9mi#=Z=1LMuUj+j^mBQ;C3u} z_3QO5I^32)Y`7JYUbnsK#Ig|p*NT?4I?aNas~yNdh<*a4&(?2>WqGR_ZmE~e(6NSH zLdNAW7AB=TC{vYO+LZm6s?^FxWSX$BAtFL2hUZacygyNK{=^?PQ ztxOi9?_OR#nzJv+W@cyaEPhDTJO^VvV_(}mU4qP=iep}#YVh&N>ztSO7T+VJ2k4*BJz9DeO9i*)e7W_7{_+?hzmk_Glu%!FxfQht)*MU zYk8|R+x6i6pI@9_NDu&D%B5nj1!`#lE+y_7%YpvNXYKF;YrZ|Nx8VDD{{ZygrEE}< z0j-jqjL;VP7);e_?5o==D4wlY8IR@9cp(mQWW0l$!&k3{$7D}TzS4C&w5(*V*1%wF zqmpG4iK@fMwnMjS;O0pW2kQaq1`9XhZ`6iQ6PMZicUX1Y722qaPS>}GP{ieHNE2Ht z8}K%bf8;+_Hd46>pI5j@q_^oij3a2 z$Yau2(8yx8q|#CWk=03K*Xj!bAjpUaQ^bDXgz@rduOa96ymjre#;o5gW$yZ2ie?_l ztR6jexot09DrEZ6{Luzn#4;tlWT&Uvo3r`16}47IcgQ{w-Re`czph=4gG^ANYbb(R z=O9F39bms6CJJIsco~j90IBeok+elu#9GZ=+%Oaq0?lH!)0D&5B>Os$BI{WI*&fjn zqKc|MM~;wRI^uj?;0>|A^!H5E*QsWeQ1W|LK5^4p`PA(sq`HIT!ok=%5%#Q3Axd{w zaKQQE$C7lP*sN##ah=k!uBB*HDa83E!&Ap1#{bl$J4DTZ7*3@duqNUhn6j3)daLyvx0#WLjGjZykVBqynl|%>poCH)vG}@ zEo9n5a}zLPCo6rJ8M8!8%%qoOtW+-C$Es!{;J+^F->FP(U2j|R7nMgdtY)pKZ#9=% znO$(QCEbR)q(L2CxR%UW2!P~>dhsY!a-KH8;xU?5!{R$xZKEKWt&hrQbIZy_3u&-x z5k$)b9+@$TQea?x&GnGPFd_npnEhp5&~<$GjCcHc_Z;S4lk4l5Y*s)S^)iJ-tyWCV zS3L@5Lgi+CrE<~r{FQK%Veu2&1(TTm{o;}YOvVI zA|q7IgONK783FjKdbD9S8`|fFv_sBR#?(UPdMkWPhoUU(V_JE@L-K4XkGO?F9EH!en5i=? z4hjRmxdf@6l1?@9E}FRAe*U{p$0}0PHL@E;@yHxlA?)iw)XZ05v)X>qbJk3Qm?cbq zKqpcCJ^uiuG@6*|_x60g7PFpMW8|v{M^3=zAIe}gNrJP23feL? zIv-1z*f3~aXr?p4e%~Ik_1Sreud>?&0WIf=X#l_^+1{hEte47RAqzerz!0|xghPlTGu6jg@vf-5HZmK1e1=fIwU{O29gW51?D|SS zD^(cw0d$FyGO!~lM@B?IiHh!@xtEA(WiTw(<3Eh11B|bg*P61&;A=IVs;%xa8psxt z44lAwLM~T%nRM#|LDw+8Rq_TS8|1ZZbTqs>F^QZd936PfX2Oh|3EBGV0~J!s0t#m% zSkKlA2ru&F9XxZm_)kjF<(j6~t--x#HuDa(UZtznoe?c%kYvT7WDyiXrV2(NLO&6Y zpFa5(o*tIlOK?rXv$bInlzI~VrrQQ(lyeGE)A0ttJ$g0VZ5sCLmdQ5H0zT?t<%?Tkbal&g&Lhy8 z{{T{%Hm=`7h5!_Zud=<%h5-;>{716je3)+YPQ>Qp_53&meQg;;!k12(;JCMApW{m# z_aPFP;cZ#O%u1#=WwuxDO07r7SYygivcEuOa8o!Fs`hD(RY3P*p;+&6TVp#yfXVF=BO@4|k?=pXJY`&7=vHto zE%PT(?5kO#euiVg13g~#^`EB1+8JEPyOLqo6q&;am{Ca6tY`M`BWG=HS$i7K>{Odd z`s9YsQvqxq|WM2Y>I+n#5ehw5WcMKbZuosYMTWe3(~JnY~ar((Eb2Imd6~u%G6<=Us(CBz<_D+NSt2jwYy>@k=SQht zgmr>#f%(hIo5zo@z4!L)mX)An#=s5aP_-BHw^KaH6RRvGEGgzE`IP>%_xnt9@=%{2 zexNPmj~ky=y=PmNwd%{}vU5&_pJ(1%a~+NuRcSM03QdH?^AIH~h>lySewOIyxTj@z zjOGg5iiXP5Umt0;3`$3|Eea~|MLox_9Y~18WBlS|CfScJ78?DWMxU+cJf8a21=@x~ zWiO}6Q*10fiki|*RocG3p2%8I^ZW;rDOmyCXLR#dl64x|<}Y}R1;V_VOTbm*1#Ggc zC~3`xyV;VkQ3P*nppYW5o*+8FMSDoX*71f{rH!_(BXP`1s@TKe^_uomoe=o{m5WAO7fm7YuxYu0I9Gx^BDZb%%~iA-OXjmx7{cwjl z=^&Uu!vq-U_!u<*0McF?R=;~`%vk;77lz1}?>S0Tc(?ny{?B`CvKwvHmB$S!;zje{ zj;dtEI^K7|{w#a&7%|rGY*gGWbqqCxT*<*1%S7DE41laN$iYimnEP}64A03Xw}IEQ zV7vvNDrbdn$10+AR%fp4HQxfV>`RJY_JD>A2t(NAlrmd9mor1vG8H^aPR1F20=2Je zhACDzC-jx-(4y0lfd*KJ8)646SghHj8};iie@K}p4E-I{@1bK>tUC(>hy4}r)Mc@#y;iT!qtjbb}>-HB&rSM zsjma~}gmaEq{J!v48KUZXUdK2m>9wrJ zRjDn0!Pl0$y_n`or_?*z$cX_qq-KAqHSr{{?Y^ezhHf<46&3-+40O8Mvcr{D?2;!eF9dd|zOWo)wZSkK?KebLo%xhssAnKx3dZ5qyV z36lzNi2ndU44woBZH#_HTB)*TaBkK$yI5)#E~GG;?Ra520t&nhyK>WsCm&LYSjASIr&g-U!3}oU^waC?D#7Vxa^si~X#W6T17TCK$8uO2{O-Nt~sEm8AisTwLQ!vSneR2N)JbZ1`c72B@hp~mwJbQ}9;w-96 zr5LazIc3TBV;$+I5I^%Pn}6do(todtr<2x_+&7T4tVUaIsaE;oU6^W(XhQAumHTX5 z5h}zMSz1aEuCNVn+By55Ma{Fw`4-U6-mObmYf&qVOtK3)LeI@da@d?5K;WVz61Z^( z*u7)?fQ3WFT0Z-j&F(wa;H_g^pzM8WWm3Vb_d6*Fx@11!RY5i~5_89BQaUVTm(`RhTzs#GNwKndh^e`A) zfcCY8p)46&9tRWt@xPOs#6&7dNss$yBokL+Je6w}R(7Y^erqvg@zvF&WC#Q74El!l7V**s zVi_aHU$k|Pgm8^!=e${^iL3Q>^=vOxn0I0qZrCbYG6VM#6oQAS&uRBh+liTzVdOmv zPRt`0lh6HjW@Ocqqftz`aM{3;*A?msx1>+?9V7cWDV}G5!?4_)dqMrd*`y+lVHk#;VcbNHH=;ntWe>JVK;*~ z8EmKoWMNM~jN6ZhwvAU2M?t&g>BZx+c&l*wvmtJtGZ-Z>%Op(nN3@vHS|s6}n9?Gd zg&e>f(K58g>J{USuHE|D+J9%(wYs>{&ZQ_H;eCN^d0Q(4wNeW=HcA0TQ_MbMdKUYe zx)0ZPJT4OrUoQd{;;o6=t=bY}7QtpZvBMU!i5ZeGX!A4M`k9}~H0&88TF2>%@-{tU zq@}pbot$PVLI(jHR$#9kA?qO?sx#(dC;OS_C;I0vLnDw@uZCWlRM`t9;_-oIjY25= z!p=nyR2D-Ve}FjPiX*Ij>AHMd_QldoYf$Ck5)W>$tRqr@&-nX~Jt0sMvrpj!?F zrxFqW00!=OJ3;ddK9bzPr5?K9ev`_X7!vw$w3o5L9Te1i0AD*C2sf%I)$BM0k-RP+pm7%Q(M_TXT2Ae z`!kPyWLWixg`~Z#k%=f-aKJ-*#DvV{!*0fShHDk}@O8X%0y5dsGD9)xfaL2_8 z(FQU?0#w{~m4h8G1Bk@XrAHTI2UIaMJw1@6ol%JUjPPaOp+O9D6VHBTWTsz3J*wvM zx!j(;UoDYCC`vF{TrM=2IOsvKk#OAN1(WPMyI4fRmMUOR`|I$AiJS5-ku)q-Ekc$T zQp3@%iWwU!yEZMh@YVr+YJ?C8ToBBh*zSL3#02)4kPUl|-o1wrt?Rn#&amS%IGP#D z^sGvnQWsWJUaX9E_d!5+WXDDDLNg~bD`eSoemm4F#um8!U{TDXp~zQ-QPk5EanSk(C& zf7my=J{ZJf@!DG#O9pw0Ko)IgZFGVg6>F}2@&5qH>#n()C_3ySsUqq!B)FmAP&$>H?h9$d=T zyM|jb_cLu!KE4*^p@D|Gw;x$$3MAJRM99sSSR)~X6i)Q$)$#i#x2WsXao=4+xaITt zE0@ial~=sI6>qnRDfZY|SS|;ur9I#WvB3iNf#R%Au^6q#HMr#Nt2oBr$L31aYavS8 zn-DZ@HsYA#YP~D17Y<-#)=LnsMKH@gOgGI^rEKzdP<{JCN?j{@{bs(^=KlbVRQgW8 zEj9NZP9Q=Q!zqCR`8(J5?Q>ezYiuMcmZ=WJ?7FP1E@Ul5D4K1zHG)n?z^o&_SuWv>1 z#w#6w)SQ^E;l2SCa-j>9TZ+~auXxx002NkYC>(JNE>;SYam!bsx_KXD)VxQY8o4RQ zSI1`d2ytF+GJ%{!84j8M05=%I#X-OjRSAIgN&J1Os-r=!3(|0N^pu|%`&h)uF}Vt$ z9pSRZOc~oBSx7cx^NA&tz{q;ScZ(X;3N!mIkFsSlcsm7OJa$TkR=6VAk856)HU?&F z7+4pW5y<<*%diwiY^Fwrg|fc@C%RM7G51%O%VS-Fx5mA8IARneAjtX&m@7{KiIqSB zgvyM>XzLh8e4}R8HHOKvQy4ZH73*dZW+4rt^OK2Mn*t<7F&=~bBM5c_YobuDP>|@f!tgvth+q3bV+-y;`=*mdEQGPGFFoR}k5zVPS?6 zYDzt_vCvJyw1eel89Q|`xDHR zvKjnx(-??QO^3%`CGpmrRPlIyaraq}WLdQQ%cjx2fd@RaNIh*MDI$|7l7fQ!&-e5D zS@4gIb=9*$*6}rhy-5neX;-YE?QtS4b6H)(-OLys=OZ)B&-D@ZaxHt%w%Lv6aj5Fn z6KGbv+pWTaVpHuOc{y@0G05`~_AY1t0AB-+>!}XkLt)0wFa5w&yt+3l+zRfjY)c@L zfsS}vB1BC^%E}{x8JXrhXud(3xLQZPtLfKriYzxSpIR}`2Bl3HVHtn3bcDcgWGgOX zq0GbtamUxpVlob+7^oFV+y7w+pR!HV>2190t@QK5m;dW4DlTHh>2D4XN)(k zgHys=+V@RkGKEpDnz*}q@v?%w11gD;3k#c#6%3Dd1dJ3EtOjSFfW^0L*MXUg&bd+a zsrqX!o<`MqUQaCMn4v>n84^{NOoYijfhQ0$N?6AX_|>Z8aNaoAm50RGzi%8j3}yE! z$uiZl5cgPPTQFqjG@4~3M18-?XNclWeSSpNH&5Tnz6T+I(~tS+KREh?7p$OyVNbFR z?+UBb;bwACHi7`AU{x5O=M0u;FIn-vlWRL@kn3vA7Hu(!$FJPEYuxLrOvKDVz$!vu zhz?Lm1}Z|po?mIU@;_UWLp`IYEauJ5AV4adA_PbXOHgLbv98U%?-{jF z(ym9w zG?Jld2;Zhe70pEASOVpwUuz4Pg6I(>4cPrpanTou!RbG@>lQ5)Y;|ka>n`pJ6zRCjY75T2XCsSf)WB!2v6t=8mp~W8UFxqw$<3_=5K>V3_9j55+P-I)A&%uT^7VJ`d-_r0n(TgS2BcfcFg=T}pQKEg z`X)6;5h`4!TMU{0O9Yh!^p`P2yt|&QlFZewUjvZHRm#!3i~?=5sQiuEu7}r@JWg7L z!C11ETURGN`X+(Vp`V=O60vH zp#fJy<$nWSrEZS0s+;C7CtcWV&06Wru+<4^u!>ZhuT;#%QcEDK8o)*rnGyVAzeuKD z+ZUxaGWk~5r&k|caUpfnTp;3R0!~OkNWSG9j1=%+)X&eHHh(Sax<M9<`pfmqONZ#FchW3c$TSfpzft<^k+Q7RYAnyoCr8DllQZ&sy_tzcm?(|!9_Y|9)e9!!810VnEN6C|R30?z5= zT;G&+ZCevjTE4S~t6-Mw)%LE_vUdKIJ@rzF0YD+EWP{rJ(Ee&@R=*w4&|H6*Tr1U zu98;C;?LCIAwnT=A_u`T%YsR)3giL69n4_APx!1mHca0AsN?eaHX_Y{(W{~#d89l5 zH|hk{RY4`|6}GZuIGzZZB?coiqrR>^IXwRWi)?1GDX@6TwlAvQBK?*+SQ8OrB12r{ z##J8H3Kk>XgH|9#ko#Z5Ti!Zdw^H1z>y|7-CC81xRZtb53ru~ZgP)(-Eo)%h_H9RD z-akucdiY$oH)#=0fgMVWVYtZZbZx z)AR_mngtNvy$y{P0Hz8f`zV0bYf|w>a;=8w^!L2wx@6>Cmut9ug;-cDU{4_1<_U;b zNZ_TbXvp#gF+Xyc+L*m-SkpCj??3At@!_jmtEcQ3`OD3IP%<_?nz=9N;!BbyIv8ao z#6u=#J{8Ja@-;L@TYm9IHzpwQ{i_^|lIvDBl*}p>i69$RU*2K>7-K(v!V8XP;3p%> zf2i@inz!4m<8*-ORXJUU9;}nhA~+`FqPmywA(L0H+9bw*ON(<7QW9|aY(66ovhBOZ zue5D@6Ct|x8#Rl&dD#K3P`JN*KE44JQhlT8g1mK}pbIC&05<0L3wgsF2KAhKHwW_4 z!{sWT7YnacWOR!;R}A;IeO6wv`k&=FAymNkvGJ1^qTqi|RG+YTvvHwr{!%`#D`O-} zCg$G}6DJa~B522AkyvpGjv;NBtM83-Dr3)|e2sU#hB{3p$LJaK1 z1h0c+LuZaWQ<-hL2fukPFc=}hL-32%?Xw)ab4cd9ty#G7D-M|(j5M0bQbI(|Bd|xn z-<7w7@StQiY{sYKT~99Bz}fm-yQbpnE+m42A}AG$2NOM*z?1IN?I#1oKp!3XAI_NF zKWDj!@d~x`W_Kr&$==v=5P~?gY(B?dRnlLB zT}Xh)WYdTKdpAJ?5{S1b_BF=aB@CWOr>#TmGtXa>orBE!!|rVA!&BJoo!reE8np_z z7nQ45ZBs%<==(?t!qqk0RptUBNkr2B0OsUF-nyKn>r3+=neZDn$&t#h=y5c$`6@Nn zQi9*otwkf)42C?#j37}D5h29L$7o~KG<_Lwbaj_D zS{>u?5s-rI-F`UUcTA<+0d1I9V|ayRuDmT|RYuQAnX6W~&16d^ITL9K!X%(zr2hcG z5p`cCY=l{@FIT6zWwH9@%gD1?nzwsEraBzDweM6fQmhm_do_XCeSaB~;uiaf%#ENTu4zX)J0svf+ealG#OSds3b(=FW&tjRLG-JGBnZ@qu!K-hvg{Nl; zRg~*sC{(Nhq!H95ghI%mdi^YO6EhvT=kL$YdrNdpHnTDwQr~UUuURD(otN3JFm9O7 z3W=`_A5d{TMsvh! zM~S~nr?rv7WcEy|t84h>xFR_;UUxTLANnLOw-X$36ZX+-#$I&JA~0Fs)DBZ0QqQz* zVsK}6!d1Y4`X=j4E;x88p0el}kGw?0b@(2(57ifi3kR3P?6=1>=htZ20i#_NQl7BC zV;gPAl^mbr22lszCxPdPiEZ!H?#WJ#{B?YcCF)7V2UOWBmD_UZfJ&QXU}jce+NmgC z(@ew(`zN&Zvg=x|qo6wrgZ}`b!LwVpN^&^#VX}dc`l$}l?fPqesjLw*5=~e)?-3E$ ziUx9R)2;729t*}7Hu}okjo-OlwAu`+?S74TAWA4yv;bh%J;>msd$ZVN;ExV z$eUKi+E=$7FIv_0mQlqg6{@aZH|(Zb)iLiIfi_x#;G~I+U%UE-N}&E$a$XD8Gc;_| ze%ZBTS(tetwkJ1Iiu-}YnK>v(F@+NW!B}ewOh@k%&%>Gw_^n5>VD`N?RULx1V#Xl# z+E`J_SW4?xuU&Cj0VC+^#1@(dd=E94l59!DdOHEM<$eEiTHG_v(l}JZ8QxPH`_B>LL$QmSgyUK zdi)rzBP->t#@#!<5NdEVan$YL@${Hj%tIA7-~RU}KK}r5tW6SCkt$fb)$C&6M0f^U z+mDcZk+d`|!!da*tr0>oSRo_G(V^TL!@Fsa38h@(CRom^ZH|HqHKZlPcgET_TBboe zol6YH{_$3>Id+yyetfaYhRR^CFk}-f?<^EnScoQ2u`%`YD>*$+N7tsmjp<`Foi4i@ z`-XAFw&bncxmZR5W$CVU<&Uz+mC1+RRxRQnL}TMd%2cXQoV}gz$+YlQWLZNYjwfrB zTFEYEKBqBc$_toek6wA~Tt`0wgGW(bKOj~$Diev#W6Rl6^--HoxJ4n#Zc7>LxT)>= z!I2+srUWw`z9o4Ze#dK7viYrY2nV!uA(0Y} zAw_t9AbDbdR@8NU-p)3mvC7$YZRaqx6C^|eQi+w)Gr!6S;}2kFO;QE53j#?PI+?h6yW(<%bh8xgc<-Q)-NHq(7BpEA$?M&G5VL_~jF^lRy~>g)h@Jumj@>-*OlKsV6IOwyih| z)GRKf909B+>~qCYTHer=VmEDXYdTr1>#O7Sqh<=Et})3nU23*~WF%_}KisfpVnmt3 z$QdIto8w$Y(O<^1kH+s9Om=@GLfc!1%xnJu?DC~~t>*9o?5do%4kcKOowtEXz{setjG zov&-xatQT{F?h=L8%rJ&26y_XB4Lv=Dp60~TF{T^3VtVQeoKG-Ijo(_$r@HI)v)Qv z*vDn-65i#)hk{9>{4UhY%)|)r$Rp}v6C=qATOx4yCf(UQx#D%@_A{?8O}wM4`YYF5 zdgv{KWd5QTGc&;UA~w9f{PXY~w=6{rXN#YU$5)@AckS5BSbawUrwy&R&n)F_c;>v-J~JE;c4$WKTF!ca1bxh;Nm$r?iJjbRW^rSU z)-V-tr4weBy_}a_u2z^`Yc=%9YphOsuEd~Vhlm&$m_LD7rJ-Z6+WsS3*tgA==9a27 z#~G8Wbrnkrzo&tMaiL$DCJdA>k|BsVTi}<;mYsKB)3m(1G5c-9af)DZav{+O7nM@RqThBuk4uov*mM)!)?;!BIUZxF7BDC^AuaCX1EnsLsbwe?x2Hju$T8|`ENk| zn-PV_Vl~87ab$7ywOoo=MT}BPau+ei>hh!V#2MdiVbT1w4Fu z;!NS3os*e~nIU6(A0LvYc!*rwspmJ09jtcu;+<;dyews^fn#ivD%Sh<8x_oHNhyL* zT}n7EPGjyokHxrepLP6=YEx4cSZy359{r1FeVSK!o~ubdDtqZT;yHlsN@T?P#AYQ> z4Ou)suam_80MkwX08qdH*Rc+#n+kDSg}eQ_q@<^@)Vy-J7=khr?Jx{J@~BeXJXx+_ zb_#eT0ASH&pSWdqJTKH^)XFuc1eKbjP}ZV?aG`T)V-W%^o>c-+Oq(Z^vpR*0hQH)( z8(76A-1>lS?DKw=l&(22B%*;h0)Hv~WQg)J`A=>>Cu+V+@=lqAwdAc&##VL>J25p= zi*1dLR`k__mC~<7n_gdOOoo$TQomr8iGd>Hpn))_vTr_9$LP83<0+0_9}=64oTF-H zC}o*t@YPnR(puQ@FsP>*$i=?6n2?b^-ziz!JI+vz9TBFXCc-InfGVyRsu3@~#UROce1KS(Kc zqF~_4AgzC54Ou@jZFlvob!}Hd&o;;Ul8$RFv|+s&9AMggj^?UtaaUcIa@AKE8I+Gu z=1+o;j=Iii`h6S6uqi$}_6T0TmD=&Quiugp{{S}H^`?+<5hEYW#e~ENj7JgiV|(&v zk~a-%mIqeRwS^?|*mI`4S(}b?oUD~)i8`;+EV2IpoC4?SO%u;C3zGbPerBs|S&Y%z z@@CJ3%D$bL8m&Ct=}Lr5!KuY#lS)0dW3T6S5?-m~6V;I{0PACAujbLQtoW;D*fz{X zBV`PZ*K;#kt~EAbxMg}2)*vlpb3g7%tCqe-L|R|s;3B4Wg)9b{r6B0OwYb_~50RL^+l#h6?_&=P9j-0TwAax(%j z6(uoXqoL1USd*SV$M4U{7IPDo%4+3z#`p^Rb! z6F)PSOL*J13VN5GF5>ijCA#5Nf3?&4x;ggo`Kk8_hKi03W!;wc8k(;y|~+DcWo?!PZCpxs=D>k_r2KYpbR1-atTEcaiiR ziyE~k!xu*#X4Wj90r!>yulp>_l$YJp(~rEWCOMuPEpH=UEo3cidWa53Y^<1B>o$@g zs`aceWJ)jn#9=+U$6kKiOhiW^>pS8-lW4@&JA16|mI^`ik(dap^jAmnOX+lj0+r8F zleD)qqB_lpf++Z@vH4p5?}W(gxZsQy{$U!fv5dDqy5*O#BU;6@wrAC4a>lRMAaYSz ze#nUTPc55%TRpB4w2YUN^?iA{dW@TvY++8T=;LNMHZBVHa$^pCA?xOOCKOL9pPxDY zp!P2y<#$KobUd9~7^)R3;xDo_kJ+iGF_jaehghcD`xmOQK3L%cl-D>eB!OfAT^d%q z<=w+(!s+%c{{WiT?m>>w^Vn?lUnEH3`j<{{YhBe*Ar;J|pp0mG$eH?N3+o-Vp0+mt zc*?rp?ul#GxqP-})5b&jEgZ0|i2mYaenZxD zygg9E`KKqELD%OP8t$n?YTiB_27abdCeYVl*Ob$g!`XY1w|$S=TsaWfMEJw*No9KJhq-26|a>Nw4^<8hm1tVKJy ze0?P2=pa~SZv3ie*=F$oCEbi1wD#kfIf7hRv3@GjsN~(F>Ug3YjjH8mWX|4cS;?y! z(dqQXZQQX9v(T0+2?ePz!Uz)S%#UNidD_>KvAB(&%4JTbw}-K38;sZ2Qu|qU)P+{)=QCPY+H(~7Yigii$6;v@e6z3~## zwN2vvn|hy&@HMgx<%_Y7!C1)HvNOmGcBnO~1jGzXpVl0HF%!?)A-`Yo7O|$pSft&K zyeV)Ej9yr)9dR%Cf&mgBf`j|S_WOPL_+vS(>zHhEv-@WEoU2QzHEzAR%_o)`Tqcq>)=ZAo;}L!2|R7|ZucnU3KxAl2K5N2xomWZDm9|e61a(pTRVN> zb39K!Fyb_CG|(S-c4Paz#9vbHN=6|WXR8GpN_Wm z{c83aGTOG0y5*y~-H~P8k0(ZhR}g#%vg4ty{9+@OC7g_L{qgd7l=0o{eoHO5Y?&vb zt^*y7r)5~ImB>37_lxYkvIZU(dY}3mB(0))9@%3^^Ka9OIbblBU3VqHdIG% zE4O4YXlhC%xrBmZsdnIqVoGFYc$k^_=7#A{K&N{-tA3s@(4dv6tIAcJeG0KHC<%qz zvnhMxNT8#tTP4~cdv=KUlDj{q-8$_C>N;K{ch2K0@;te&5ld(6Ox4!e)8Ea zqxb>yF&wLF+HS#}o3?NoD{`Kwn(m{De#P`dB@$s?y%ow}{?QWmSZfQOKLL)g4|e>I zzHavIf3I(BzCXe_T@ynKhOjwH10&!0Z}x0fUl2jnX!mi`?t%n-m8*tg1WDj_|B@%AzT}ey> z=4X+DiTS@W)7o2G{Xv@5wcP!+4mhvtm<)~|C2k62m0rGFS8}b@n8f!?r>W09mJ=}$ zZUqfmg2KLS2?FaAZY=)*@`}O?801Kzy7`EbpN`f408gGT zyt`Gh)$)0jWfe6pB=fhGR?}u;dd*tRQV1r0{7K-y^~}$}`JeY2nkM5>en+Q#bJp&V z;qL9a_57wgH&JU;daN*oY*mFUW(AW~jDQu)8zM}8Q8mxjpNxNOEEdJDZ+NRqhL_Wh zy=Ca?w(xJLQ2`RMFYlGEVhDMNFOD1M>8nT9HFrB*+gqdJ@safwqce1J7?dyyP9I?J z_hQGB`~Ltutb!y63Ma46n=JW{ciOe;xQz{&t&)Zg*jBx<@e&k;(b{4UN`qc@qbuY_@9Fc&@fVmvGe*Q8D~!C_7}w84q#j z3p1X6!xQ%TI}b4ap}f6TYwF%D4Lb<+xAz>k)Kb58lKV$6;d4_`kMvP8Y;(9DvO|*i zpN#!JKP8ZFk#?+(gP0uGulCK-r56NnVd^BX@o!aHCQ}o`Wp7UtAkL;-6G`d*RLA5I zSH`z7`*oZl4H>Vt+)ir`hBb%?2)OFjnyo2_pIT+b9imPKKJW^f_BUejbqvM2qBeC0 zfDO!sr?A&ZP%<@)4ZVf6i2W1H4+vlqh^8QVL`YJxzB%%J+Oa~u69c1SEuu-kx#sg3 z%*DZ;W?KtzEeklGyf(rb(vQ4=aRu}8Hy<%$m<@NQ2pm_t8`#=B{G1yQR#fD4zqjx8RYfBT)9qKWaio}w6;!`IA zYKeuEbm<}vUO)XjRn?xfYpT&iL%Djenn^FZAzhlAF#*Kyci6Ce;9ESa-W<82*7hXU0KLFYNMfjYyX#KZ3o0+O* zG>JEE*TR8^F~?8bPPsF*^Api*`^Va6kIIKReWzrl8C2)Aj6OU>Vr(kx=2{|uZ@Eb# zy8hhr958<0^Y-{3I9l+Zm;7I_9e)jZWUr=vRwdn%23tC5}vNZdrS5&r-wfrweg-(H`L&*+=A ze-`Ogx^~S!KFZ8HmHGZVgn%TVd&o=>%h?NhiU;i@G9Q(+3}wryFC1XA`-MBNn@VQk zT&&Zy&Lp9scGHt!#HK)bfpq@>bHRUK6Ze|Zj2YtWc-O}`yuwi#8d%M4t$mLpVd4=c zf~df*;9FzZwnQnhAn7TH;&{)U*N!bF$A_?fK=Nf=rEpu2iw@UurdQ~8L*IO9B9t#5jjJ+9P6fHV5s&eLlyspP#*hR_2%WJnlDO3Gwlz@x9v_UcKNAaxZ`FNlk5v(^>n_~!%yAPFOLzQ<;q1LtW;PAQI`n6kl%bueN|j7Y zlWi@m*>)!@E0oDtXcYQqultY2B6`f!Yd2!l=>GtxwSOdJJd>~0t?Nd&q*e@N`jgB- zLY+npEME}?2y@UvF);_n0U$Oln^Fu8H-6H5b6XLU!R!@mTDh|Hqi*mGv<=lk5k2-u zIEOGL!cpp&kmh>GAIABM&sp_X%Xsq{qi^sQQxkSe6zBX^UohNnVPwR?r~w08+Y$XiFCcvL%yahSw~%x!4iep* z&QHub_mAIEvFaR67^w+hvLwZD=CaD-di9B}Dp^U)$RFF3%y*Lhq?H%^QL=ehE=gBS z-HOcC$FcmxudUpKuO8mz5CI=cUA&A(Mo$GH{Z|Fx9aAl6b3Q@au^9oRl%+U&c}mk# z0wQ2U7Q02vMDYaj0bu-j%Bt`=3D${@}FgR znCtid0N2m$14G{Stc{P^w~SATVx`cxcT&;mw6Y3`h$$;d$O`KO{iFF6kNp1tv0+Ca zI>(Oi_)8fK$CIdQ-bqFP*&z=uOIOsxcr*(8$zST^3f73w4Lf{tOOBQf@m@8GQdD`d&zs{a733qRt_O*@C^ z%Wr#bXJN3%O#c8Jg=CcB`%e?mWXEw6JwuLT<92&x(lNCGYRBL4Emqc&t&`7PyM(H8 z0%a&qCVp+C5%S}0CD#C)vw`m!+CqRjy6rtYRWdWO0#=iN<~nY(js9jYL#FY zKjcGIeJ7dw&*MJ=6Nm7Z{YBlfHgJAc&fTq+#-i&oLX2%^IclG#m|iO%35ELM)r=<5 zb03__j(C`?<1|f^z%w&$g&w&r z2gE)_*E1`q>hI3j*heBT9-)b3RJ_JoKGDp?dXQ7Z%*=ms8nRwi$nCjV#N<40dUC@O z{7yv~XvRuxhiMij&P57Ul9`bR6q~@tN=yhob$^$3yn(mJ-crEjs$a+@)R~Xe@hHxI z;vTNVqO&eyD!7Il{0vZ>@iGKa#1H0K_9Gbx@*k3;D~wWMHfZizz5Es(u84`Bd8nZ* zA|WZCsFx2vfBk$MtiB5^LdL1$&2Gi~azV3e7o}w?>{vt?6c=KxW@?3gOYa{{<(QvR zjwU8x7O|Qyhxe+vEEkmU_-p}Jc&;z(Sj(=;T7wb<+BY~?R;d(6tffM64_jbo@%VQa z;(Y@Har-8Tb%}*vCre>QPWB&<#Dv!q-0O4+KIrJh!17CEK^zac<_{$Jx{eDa z+IVUDI~f4P-pFL4li3i}TU(U0l&GXE1&}K-%H&V{$){GpV7xiy0#?UMH?4V8 z>k+*c@>c6*P^mGJ1wdb)UT5#{7OiFciI%SHcAeyEzEQ_qQ&IG)!4-(K zEg4f3cU9WB{w2)GSdX-cPZ9H;xw(F)4;o3>ykkIZ;jKnC?fhN%$y{R;q`(=X3L~)$ ztoWHB;hmx;N`7w5c*DmU(sBD7ZF-2@s2NdQ%n{eELVd|;edFAP%zfwD zEQpR3ZtU@o@<3zpdq&UWmt~fv*~8{?(g0;86j>Id*3@@_cV|TXG=3s;$H3u7 z$sQ!sZogad!uDKt3gw37=$6$~#+4$D^Jc78uf<}BY(rLFnV4G|G4@n^Z>_x0-L9SQ z2fJIr*&-&}{r=!n$6t7aLdiJzk$ALVI2&D4$ngaZ9wIX2yl3Pr^oB=Ver1_E7KPL^ z-aw;KO{Za8nh9R12Z%)R%7VIJf7R?wWGp3-{AXBZD*Y+( zGPkSPVt<%0<|HM94dtz0JezrKYX_ds6HWHAI0AQKThaWfMNmA3x? zHQUHyGdRrNMpWP36i>Zc)LvoYM4Z89jR;DM5Zh+7IoB0JC8eoE?j0oaq8zEH#Ee4l+F z6JqYZ*S`m56J`z>G}i)wh+AZc5H^isCnkW7dFhn%>~##w+P; zNKXoOGQ`2KfJgkT9E6WDJx8y?xgXT7BYD@V^wKl~e>R$qluk9MX(XTQ24<=!$>NOWGRb656j>Cf66VP97IyJ@H@aR8J+BuJ0 z{AR-CVv01oR&FX~@EloxMW zV2MdbuB?=H6pP}1vF8I0j$`i}Wb&7gHas4oi?q#e4XZl~l%N!;WbddP!v^vdmyW3u z--^O2RrFk%4|ym4b?*WXK9xtG)_Y2#l$6fzTOkF2k&QIV$= zeU3pa1P&phgaB6L4Jvf!RN~fM=Y-_<+bZ8rJaF?r z&?F8xjsWH-;_s5%v2QxbRoF2a{z2JV7SoEWuk1Hy(FVG)gnBInFRI8C@?OACbd>Q7 zR}sv9;H~+)VAiQ*_Fbb<&@~JAn*RW|T%&|-WVMf25w6HZfEt8F+pH5oWJMotW>+BL zv2MGTuvTk%TOz7h=6cqQ4x6$AGB#!v1JX(0n@x!>{0hBMBQePrGanWA9nWsaCZ-oi z@t^%Esfi-XVeM^LMun?(AR-78Qn<<@Trz4Rw_~^DGE12rest9D;q}0=p%^pYlVcrSal}mUsfp%zkpBK1*sz{OrBHI-M%y!(TJ~AW>dt0{3`l43 z^el1p>|M9d;Ups}lI!;v`|<okYVwo!LLZm6; zRMq{g#a8e zJVPglnS^EhcFI{I()LZB_P2!1CDyU)wOSQv7DKVVYpKnHL^3DbHY^okf{PO)5yVPn z$>XmQS<`N8VUylBJS94p@zv}`+h+DTIcCQJZpL2kTy)E3eP<<8AxReZo822hBG^f zyI(7Y*LA%~ZnVjU`dTgeH6hlL)v`g1b$Zo~B4!MvMt&XEyjkUcAo#aZ!eq3(GH}*! z9uv}Ur;)uu)t>XPgku0|(xhP(o+KUE;gOE*DVX3rVLw#4-}G)H_8sFA%KUV`dfh8o zJjHwV9W44+NJ7+e+>Qk6D0@T)1~C&c?^VgixU_+tPq(dB&{faZ|*ZCD-Q1y znKc+svSdpC0Ms2}F9*kxFvh#W$tHNC9QFl*`xvh+O1S+^f`}FeDU}%TLQtsZ;0eL_ z&s49nBU)dHH;uO_n=AS%*$iSRQpb0gf`9Gxo$pwFQ~cLnvzhxr&-}IHvHo1IhGTLR ztmxQ9xq)q19G)KwVnk+Ri#GkuYNBEyKNcLv+wzHyejCK^J4Fh#vD*Ith-mA2{z=d% z&iiZA##}k+(TX2%Fdk4-_}q{#Mn*ldGZHH&vab=hUexo}aQimbRQ~`fvt`>JQjwJQ ziG@-gO2tLP-esI~z;D=_ww609k@8u1=Lz)I z#}E}SYgJCf+L4b_YsH6^YRWbAe4h;JspdvH%=}c;E9!W6za!$^>&ctu&r)JTHKgO? z=&mwjmisT*taVhbqA|iEWL7XE5+ff0cCQ(Uv{w@->kr7Rso5zX<xaJhO=z z>k&RNdJgTeYqSX&{XR%;8w*2t6uk6V8O~}K|?(V`%FYZ1ahB`H66oE)$seZy~2j6ip3;zv53N@ zc#l;iEtcSZjI1$&z61@9VF@z8FQ~{iAl^KGPx$RF?q?sT;kLZ$lvz6oaVjZRGT^FI ziLutX2v4H9ttm2@QBM&CGxPUB)3yBOKSA6tYj`*xFk~$Rq>VA+@@w{mc66Ek#-X2;C~!=KV1i|-noy) z>RERzUf1hV>Nz{`QY3#_Ds>&04NG%`%7DgXD2#U<_5^p~Ols1PlQ609;3IC$!FY89lxga)uLW*xO#rs*Yndve~T-c|@og zN*2&UTO%dfVqF3tMr-H?$&0uAKjO#S-u#W4I2;e{{Yku4{*xZ*&CI|W5+C!t&4t60yi=n1!zRqnlE*z@y1q&9gQBjNq^!qlL-iGkX2aOUAUW9m^QZWF)d!Q6;RT-+6P#(!@!AHU9vae0`k7#DGno`ia*t zSu0w;otG;X^FnmN*qkN&i?UYMa1x7IJN1a&0|g(AdQBLKo}v*S5VQK{ma0^{p4l|l zP{m@5Nln@Dqmqgy1@>ki9e&h99Rut&jgVj5XVjF$aqt>*v#DhEL4WDSs6Ms|V=tJ^ zRjxs-Gyvvmjhhek*0mnMCKF+k9HwSSiX(uOeDApLc|X{7{3Z)w*c~TEwn(0LuuJPE z4k}MFMJXN!*VS`i&Q1jE6#hR5Xnq9E?iF#~OWia~kCNs2N6t?Jwe2-VY`$ViKy=g+ zigp8)jMeoFO!EeD$j8fXk@EPvT7=x+D0trmsR{b3*2q5j63iortfZ+3YV8b^u2Qb7 zj<7QmA882Y3-sOPFCv~#RPuk6Z6T|vSgKTuRx)mVF)oUNi6z$Jxqtzy(!uQ@Q}=H& zdlTXh5#h0IJVt=L^^CXw00_?8zQ(SmxtNuT>0>pmTlwzbwXIR^1{>GuB5GK09->?jsudhgG*K6Jxd#*>cix9Z#hdA@#rjS za~YadE!3?fQY56-vY9lgVcf_;yp$|pjfD|ECb&&&8H>Wa%ffo!mS383uG_M#BvcGn ztx8I1{^wvypaN1IB-ZgFWH|VlXFoMy{1=DvFX|&BhVmZ6o!_yZJFE5Yes4Es+Ot>O zA}AHs6BME{KmA={n5;#` zC<%6L{VCduHNZ{?6AXQY1WcPE7b{H@WbtwAn4Ffwmhtm-lntC(!lipwFxV_~I{k6( zx+#U)$Q(fwOP&?OsZXtI=aOLGe@}S(nKfi9Zbh`@=%}&Etzv~#)v$sxIj<2@>6lC& zq39;Lq$LnDF$QJuGe)10*qV7u8@hMAq!`<;I2@*DE03zqCQ}P_oQP8%d&x(6bNQH< z8R8-~E5jLGzLR6i9$nsRVUR<1aMiOAU*b_SWwrhMtXt|SBMsd-#V#IS?J41byqR(NGDHw)w1S2u!Or7bifWr9eF_)v3 z?s*GZX+}nyu~6m3sVN4^j7-4`k{c#sEoU)5e}ILocn4I|^40Qts`hNAD{48(V9nX* z*SAKvEpm$Pvcr{yu&)4d?uc2z%tKWw>oq#Q9?_Qg)pVTx-GxM>+q6`-em#^aN%S?j z7VDp@+{u6f66j0%gNZQ?WR7dix_6M#Z(P~@gRJ=JX$i?iT+L=LD_OzGL5W!v)q)P4 zxL>{qW<%~JF(Gx|8v^lRzU*4P&4VXX);4O{$%|}ZM5J9#F-?i}0)1?T4RVN48=Miu zu2mtwC$8jn7qW&o$xZT2(0Ru{=-fdiY=}7{{n0g0fq~{H@7SVBCyAJe_^YJ&-^n`q ztzmLm45kS>o?tQLt#dh2&C!w=VtDrjRg8M9fQtZIGa^yIzLgm1oLZZpX46j|yQLihI5y33+Q~sR306 zadObaOr{NCXdrnu{{S#93?gKP0XD~ub4|GxKW3y4oPth7P1TMGZ^yv-lLDd7_Afa1C`#b`jw|E-2QVMX{w-95K;SA0{X!T=j|fQNPq(1yB;tf+_gdF{tXh6)N6K%j)`_ zps{haHw_RNc{4g`u_CHsPF-FW=!3B5tbhnkVmX$4u6VluZf;e+Gs0~f2EmT4kBqKj zo=De(r;&(lrr60{$eBh~+)L9CDhUCB9zAga$@R49-dL}(?G>}zUOO$dXNMVf*Vp2H zr_oxaVrjNkgH2IMxpix;B!}{C7=tP9P!higc>Bt}OW9{oufA$|n)tw*cCmRZT(eh# zK_%@}y0yTIQVc#C3YHI1j>0{TMuFtKua&Y|9!Fo^AL6~YTtel^##g{)f7A8cwUHF6 z%}WzqZJ7d|Y!DLVoQ!ik%{wdleAgpdvxVJ!VN+t*L4xSm)3e9!E4?O1^+2bMV1g?K zM=%r5=Oa9f&(28Mw)}RXcNeqmyR}+)`fdHe8T97x$qVjmAu##>E;B`aXq_YdR- z4j`HM2-o#5)ke8p*qx8Y9va$l8wwh96`NFLt^$e#*F+q@rz@u+%q|R?O#tQy%uQ!C z&0)5@UfG4YwN@;4CjKOyl8lzon>LUm1S0MJWuf18w)7snB$m_ugv+~hkv4t>f6GpyJ?kW~)DN7v46h2%nnOg=LT>#$IxA_{rws~(fVKtEhN-0pB z-D9agxAr5i^wSu+kaif+1{a~}bPT3tFe{Rb7@sY9r)GT(J1d*fyrk)`^>ua7bMj$! zeSha|fM9H}94bj}hAa!KA`7sX&}#V6nuUtH2a@+&*`0pzHI=ifD9CDRQ^o-7TMJ!l z$L)18SZpRbe{Fn3)14GV84X)r+_zPgf}53}OZ_=( zACO2$M|%iEB3EQ(lBPXV2P5lYL3WrHY#yDxY1-C*6N>X1gBrw=w!9|wPPNKr(?Kna zMnPVtp#}p!qG&WA6eHDgBoQ66`h(YYt!9p?XHwF$+5BcxhDEFD+c` zBIy{E9I6yO`#4HKc|U=8);27K6R%f#SD5h@tPzC5+for^gZvE_k}FBXh{?i^L9r1t z*W|Zs+h}LD+FJ&MzbN0cSfzBb7BU$DseOxyL%XrfnaLL)ek5G!Fuf z**t<72H%{#ko`lIj{$qz!GNTKQk9q{0!ly2PWC=SD|-#E>cxPffCB#jy&p!0 zWy%YYBSs58{5BzCvk>~ZvZ^Z=S1A7AUPTO;O!8;R1a96h z!rOMYV+G_5lPi+gA?dG@wV%CaaM+VGQyN%W`0SP+ z9~m5$XAhgLmCM{^h;@1&Q*$Q^hl7Z1Ig08L>JQ`Nu#_}wJ85{Hh1`b8q3jy2X$w=W zCOi=2R;Z_{o&>Cf|j~zJtEe#Rcvu%Ik?i!D|qgsPa@FTrxy zA{Vo~4-+ysO?x@ueFq)|Lw(24kEHZm$Yn2EMV8lu%%)iP#1X7uW(Fc)IGO7a_xK+& zUe0B2RLkONdHY}1HS0#n&SL6Ur-->;y?)Zw*otnRhSD^kNDb^bVGxw@GZalP39jG~ zkla_I_@4elVHF*Q{{X5&+mRBu`gI#}3U6XpADqeY+?z4SV2Ck`SC0ITwO`y9v};(l zW8Awn4OeNEz<30GB|#FChN`enz3L$#D^^NA#E#z`!+q6tEF1N|Dz90?S$G;~?@3Qgtv{!^ z>{~#16ZI@-sR6`t41&h*G~u-Bw(ak=9g^2-W9;KycHTb9*r72Vk$M!Fu3W&tE$fkk zlOJG-PkGt<=x6eD+2fDX+2qU6VlK;TwUI@$)FZe|1affCyztPTC+{50{Ep`|eYX@r zuWVJY!LBOYWARjR*xG5SIU-khMTQ6oeKm1uOdQJuTEIl|aKC_WZt@3;F!+l4KGD46 zF}pt9e;(YX!G+BlZPmlL#0sU3f$M#dtfEp$z)--J*q)~c+eeOkv9#oI53{D?we0e& zT~uQ3J2zIX+LX{_HB~i@;Zc(UJ-S2GP|FVN9R1`DTf@FFvfA4J0FJaYZH~*)ZETlH z6{RftmPdD@>qKf&u@$P`V2Zg+7pw#XqqNYm+V;D!1>oQHpC9WD*XcUb)*6jlc_K(C zdlRAP^wwm3#MUS=?I3C*TUK8K4r3iYQLuVm_vAsxvn;qQo-uF~8IQ#+f=qCf%8@Pt zfLhrBV}mbb9Kz(jG5luW>EgJ&5Z6Uoyf;7N7fbKj6fACh>2&YWBFv}KjVRy zJa^%H0LJ*1QIWNcu?;^)5Hzj!P>U+ zu-J!Lm^Kke#4M^0V1bYBKGE_ztzSgiu};5|{X8D1He1WDU)r)|S03dTuELl&)|-_h zBPGj4Bf*d6Lp=Nqqj=jx%~JMgpdt=Q zvIL-sfHIJ=?HVF{qhDfOYNt;OJtOl8zm47$FGU!w2YaA!b}1P*r|KX zShi|V&v???TaCAhu~!zN$W+K=m)UESH6LU=>?URxJx(CF>S9oTFxv12owd}*(ZJU7 z9&WlwhOO<3YI?ECFo*ysi=fA}Ab6M%t^zUCMt|lKe4*p3`jv`a6WM&(vQhs4Qe@Gy zFCS4wHIs}$n=%cRK@&})`l^K&b;-WaPf3VA0ova87qa+Geswdagw_6*lIdmcjYG&^ zqxj0!l!co%5Q$inh%bq;0~5!lV2|v%-S<60+fi#7sL`!mw(s4$h=dJgLZ(<_7D={P zQaz?1lV7xqPe1eWU0cI@CXrS6uNl_QPAc%W*x9`~Om)gIWioAYs^9vnXkW0WnN&NO zo?(zv)r(~DuJSrA7SMTL8E*}rgjbhWyOpT3O2g_dHTDkOnPqN@fRZ0ve;~&bG4~F- zuZz4{PehFOnRe^9tk|f`#k_u3VQxN@vGFExDuxU`Ks`euML&w>3L+!!D?PVO?PjNk zyg7na4-t`ZilHLBWgOJPWvY|>R$sPoGRF`on8bufA}&-kwpUHf(4>uzA>;dRpyGrt zA6I(I{cgdLDD6^7wriVI5^ItbFv1{Y*zSuSv5&@>&Ax^F?r77I-Zq?-U|X!?_p=|R zs@6d;iLa+1l{nU-foVgHO0O^l_ZSD_jDwUjr`-MUnIg?NnG92f1 zUlS4WdUVexd0T3`s%5QS$m;sory-r7jmk!+wTzReRhCXyX*AAUctoy$)0 zp23WYS$*4W$~Mp%$}!tjJbGFMKm4E8oK!YPtjFNS7c(Du;(i4~F#iA)WU*+-`6C&x zG53+$uw>B&TwF%utulfNNr_x2grb?qs6g`%WpFlTMnEX-MviDg;j$VQ~heY%J+jD{j) zLngzK^DfPePPd$$7RF}QZjF1`Y&~lj<1%M;MbWWpEXUEv7>qbUa|bf6VVn#m=XD)w z#YJN_og-q*?#S%yu2(5U^6$%Gc;W9GYGr~;o+(XpLYG9e-`Ul@0NH_cRWc@HC7 z%H5;0V{%x_7BAV$Vg{O|FC=2SVkyB5AejOvo+4%;^Bl)nSky9pPx4h8enHnqGTIdd zlxsvry*cJbILY znwNh72P4-LAWj?O>wPAK9%?i0(1}t^#{bIR|ds%|CiZdbg2BB}HJxgMQ zoTwQdCK(Yiz{kX_NBY}e(6u~{-@5HsJaN&-U)FI`V-I99vMCrgI=$jP-D8r4K?DH6 zF#42?09NyPtbXTv6}FbaOZ_uTKZq1owPk8&MH2*WWCSK84j*nRbQHH9L`S5h~u?7Y+X|mIFDf<8$ZY2^N{TY=1z6L-iHp{ zm1|2*t$QI=80RTV6Ckj+D9YWZr>H>5iof}ZRDUGT!&LA-Y02%j_Uqd9?6n;(V_d=` zWyB5qbz}rVTv<*&53^-)TxG6X=4B)%QxOFr^hTxriO_Yo>Uu#dVw^-e_FFAk3$IdI zBu2-TsVJ_cLHFvgmXgF{fhn1p@2KkAE^}Hvw>6h;BKE_PUPV~kNfHf8ZD{nV_F^IC zDo?O3mr!Q#a-3CoeCvUx%U&vu15L)@O@!(vJ&`3|WI&yf6tzX$8dvErgm z&701#7VA-y;8KU;3ywQbqiU5Crw7SwF!@y39()mz>Itkq&!2B(!33#S;_e08*_Em7^md3`C6bWOD-@( znUD+akW)m8Ixzz+IODR%w`CT5_Vv1DqL#yr*m0WnB1hXtD6leBo@ITNS?*W5`#MbV z6{`r(KW5L#Gi>>Cu3U2I-K}Qm{^K@A?cWjP9csI|HkGujE(5hDScwu83OL#;!&?&r=PwJaI9w z-tuL-a@<;7aSh35>itFU+ytBTIa;)j*dUbfA+};v1m%f0kB9!3{S2_OAOy4Cq=1~#a^{X14|SYt4uQ% zgjE?1A{PsPVI0C$WukFs>!krU)tup*hGV(XWTIyZIv)RrQ>G(CJ%Q#H@O?jrIOKir8mmobuZS z6~u{O;jp|wd0Ja*XoE|SBkqIE!EG!^x*SJ9w%hUlClJJNrS{c?G0MMC^ zHxcG6b_Um(ZrRlsJ3C_@gR!-2Fyy$cI1b10utqAw;#k0vm=)Le7v5VW`?`4OymzG3 zr?BPp>^?1Z*H~@YJ%-G_-)SLQL~@EZT9!dJAVx|jl8?9L0avH9R?V9)%v*kd43M8Npb_Hown`&F%W)rz#0?!b#IVry2S$>m0=rjd1oPf-|WuwV$JNkCD@ zzXsV z3qFvKENM?2KjE>_pP0!{+mE!&^YJ!wnVdG!dra5xo;6NG8?o5R0V1`-<*w}NYL$XU zN+E>DEnT8pDPJ-R7BB;yuOxVXRic{sXWQF0m_lsjbJnmI@@ubh!$i)=52_Xb#z#b@ z0J33qUobtUHdmakNpIP4J{t15Hz5$fU92J$jJ>g#C0fi)izybgq9Rs71N74Y9G5`= zbE$*!l3HKtd-{dT)lzP&ShBa8E40)HXZxW&TVh1I`#!=8{v?P5PjWZsYuirNmt}f; zu-M*fH4%}RFv7*=JD{9gRMw_wSC$jZ?jbK9y>%zmf4~w zV8@Z(+?jJ0`L$NfsKa0}YRE{$ticxIk)3Mm84`W(WXOIBSFxw|%d&Y7%6@3mzh~0C zWsJw;bL4pJc3&xyzeuxp1j&Ik>&0=fDN#hVmdX+^AW$V7^CBpCXES26wr?lZ#Q6(q zQv(e{1nq*>D-TB4oXus_#?__)6}mKRgptWg;H0JqW&{y4TEB=XWa+C=&+Zw*z?L*J z89(&}`f7cy;->u_3Z+~X*KF)Xx+ozvaGF;m$i#7_FLAE zV3sw$$eEd*WMl0S6Yx$i%eku9ni;#4G>N}!5UY74Ct$s5+CPM0g5{!tdI}i^GDk5H zBwv*L1k6|I>r~cPTM?Msj^?Xk9B;_82T-n685t5APkK)CYEK+{!RsaQGEo5@!3@kM zXTv)tLa&WOTgYC(Svz?-r>w#PC|LD@I>YMNiC{7#`GPwbT3Xp2s_r8iHYYp!jq=X7 zPaCRgn%0SrsS8st=ChY3?ZiZW5`-$WeIyX`FhoM`ym1TXnM&RC4Y$Uyj71$=UfU;G zU)F}IyxoDPO-(NLAgYZeR!uj6955^qb~qL;Wa2@9UnjTR#qHQFqRvwTzFwKNPW6m) zZmZRcYG%SxaVc$jYlc-^`pKVe{4!2vPvYKt&VFRaQH|pnqU*G0BZ{d{7SYJ3Eafbj z)ikSC7(hMd#zDA*g)z0mQD65t`<{s_ES?T z#F@iZW*=6#UkfCPie+R~oVNA1KQD%~+(ws(uB%0`gK`(LnU^IB7=#s;jUWeFV~!+$ zm5WeS^n?scAj3zEye)XPD{1q7ho0NBm1Hljm-{=_Q8rX-adMjwzvOLZ6Ce^0QxGhc z0LL~f9(B^{(Trvb6`Xzg0bW0C!s=J84MlP4SOiv4R|(^Y>D(Y-rb;*-enwGa$UC0) zcmDwB=0|l+%rgdUY)MqI&SikV zmop>5SCQ;>+A-@;fk>az0ILBmc51Nv{uE^zxlk;8Y-Tm?R){29aZaw zAR#MR#dzWrGBXh~9~JU@PJb>L?;W!{fXQcd=Z$Qg=-Mnr3jD9KzLJFuXcdMKkwgMw zMF$hyqGVvgg8kch#g&{))5Gf(Yg+nH+OOA4R#TV@5TvSgC4!8ht|nkX-6NIAhjt2K zV_^|FxY2dZG*;Fc4mE!O^ z{=0MPGR~UwGXg}o7DP{O%w&{I#K{-+1c{jP7X6pbyCJOV(NAc`)GCk9Z*x}_gx2BX zF#xobz3j2l2Zb?0_I-%N7XrVFT1Gp``D?co;!9Pu>2X4{yO;X4`4-z)v}P(*_Ec{N z(S`uBW2I9tXWhK>PDh0H&mLh}V_3=H=EW8>Aa?RM2QO_PUz1Ii8I4(wY5U1`4&8X* zr-}Fqy4Q~Uu^2}y95isqY_i@-_aAn#Wz4#hnKSBMLi>yF9i;0nH~}83;67#Eyfdlc zmiv|ph5X)n30Q1?6Ii2;P|s#v!ZMX z#*9PkQ^w?$p*iW(iy+}Zwj`u@l9Q62I`PlMjMDt=tEzmBoXL3G0kmvX+>ACJEwm1@ z<+2cd+ejsd!8)+O%Da)eMov36U=*`H2-35gi#062lXef=wRM# zgKzV`vdfRiMytOb?k=UPXR--&HMJ6;@-lGaM@9{9 zuTmzt9LFT6A}^Y}WxF4VSj_A2{xZ$xE8RM3yc>nwjzzOux|r2}vVxegX||sv90ZY% z0}%s10(rOfAGPLne8v|I;{2HA^YQD))J`hYJxY>O9cd857Kh|8v6ieL%%)&V^N)c^ z*DdUuC01SBF?rF#Wn8$-f2A+fMQe%m0`d5?$M9Nv8l#4|1(7f|Bw%7#T?6X0F%9yD zUn`i`b9hXC3ty@9Smj_|D#bd>-vR7>Rk1C6Q|sN`ptyXjN&tD8{=c2`<|?E1eS5~Z zT?1CDkGFEBx0PN>`Z4HYJ%;LLs;*sjzB|dbLImN3!onoXmG!-n*3Ge0##{2eQp{Jw zTD_m4kj7*YX9sYtRwJzod(^cQ!AicSOj82^(qyDY0`*_d9z4Riy47DXP<=Y}yIOuN zM9Wmir@p>g=fCmaJ&?mj`agvaAF?;a;w*Q{2GREITUK-mIZ%vGmY zO3Qxp5^}gXIi4ne%awg6UcQ_)N_D)=;!FlQWRD|(#Qxrg7#zt0PQd{*XZx9j%$NC0 zHhvt${+_UStd+cuv9IVCuSpp)?TeY4F19X-BT*DwnPm5vDdvA4v48deK6_pAE>9({ zT=G8u0B2voU7MH)F)H|Ym|~{HE-MQGzQ1Ka87mE3#Kd+UK5NG5zo$GMmE~}0#O%4y ze`jR7o@(GdaS|h1Ql;7H2iHYJOVtx(E zc^^2NHml?OcaFn18iG;Z*mhKf9CJ*2E-bFFwiv?dqJ%DelM^ytvHXfVi1M$JcI(Gi z9pv41C^53dT*Ye=R;?0_LLp3j&=P;~l>1j)gnExjVRO*NS1r8wblsX(xu)Z85<1qi zm&WWjb9MxZA%_mK&}6bqxsq3I#9VVc#~|5>&Up(Inpr(tUcu!vJ0m4glFedoh}mdy zFmoK916F5{ciU7y)NG>MyuT-2j$-Rxz$-Hqk(0W9ss2!c^rA|5`_I~DL3V~S zMn<`ez2ThZYcY~4_U=6ga{Y`okZqHDs}v72W+(8NA?PB`3)urQGfUO6{{TylueIhp zAB@;2;w5Ku@%DdHxH}GP8hb6gdo5&B8ohtp zF_jXrQ}0VG-+hlr3Cub~l*>`jM2FP?AnD|fC8x-_N`5`xe5I#rSrVfux2=)}r0Ym9 zkeG?MQ7^K=C_uBL)q8 zNXIh(*R1S$K-bSLr|U(jw`INif}*ZIt`2^Z6$(;o&9W=m4p$IdSFVwhYdK_mW58+I z+(vx&rTDVFoSG}g8xH>fpJjurqKS`U=_N$kqEJicgA$qGNTxZThAYR^ujW7QT3wpIQQ8lK>@Tq~5gbQ6a<`fDzL!qMMy_YfJC;_`m@7O`>uXL* z#kejawAE%bWsxKhLNgppM?cgQz-r2C`)wR08hM<~8!eQy)~=og-Ak^ZrxbQ8Ev~nO znpP|spLDW$m4tpqF#+>bvltq?b|X{TF{6sYYtw|uWO171TJ3I9)yJ4ujwi_YkytRC|jeNb`Z&g~@$r3+R9CIwvOsrDEKV#-b36mxq zl>Yz}<6GZy8+2moU=h38pzVovDAe?$kh3=;exTxw2Lkx7R1y$oB?csMA9(m5QDA%_ zUZxhMO#bt+o!I7s^dcT&x zXJ|>=UDjvq)~?NBoB_GQ3T#5y=$R(hwUC(d0gIb>bwlQku$|n zSt}m6^^_9e$S1u202DH0A_vvfz$SKuuOTSsOf>y(lTJ2Y@{{V16m0-x) z$43kx>QX$Zaxv?z#s@2u}XgR~j<0w5DD*D`1DzA#*EHySOG@HQ*L5zVY z;ASU?nfcDfv69eryyX$s^GV81D*ph{Y-`D4YqKdaOudk87L!WI_9HBW7XEox%}+XpQdNWq*$@@3La;B+r9;;SfjB;;{_z4fl`lEvJTZ04=; z3lP6>?n6|u#%J1#o>vIB@W%KziHJoD$@@N`5Z4ZOEniW!f?ehAPNp4_&>7q6E$* z)7>I(K4M}fAs^I7+v2v_;msp6v12hd^SiFQ9370H>zbBe*;^iDQ|bDfHJHMexIktF zU?I(_l>S|(n30(#{{SCjvsgK=y5;km9yZ@~TgRK%j-XPLn3c*Z z^&;T-;2g$%zxsdQ&br^4_6<8E+;uJUM|&!$pO4Bu!c$8rjawvDO5w82a8;V_gNfl# zXk4xYNM(rwNBYLXV)2%8`5Y!Dv9Z5PdfnWuiZtq30EVq*!mR%QsDnSm4!5=r0%Qtc zW+Wf73CH;N6;D>z@rhOoY9~W-DX-Tph{uQLXq-!rZH0O{5OGYgWZ?FD1|@=z%KwGw=1yi z*O`@KRj%OmZ9d&~aUlgPefO1>x78*lP?=(dqg`<504NWKL&}*gT^M}_$9l~jTU%Y^ zs`crFnmIM}Iru^szsnFD2M9$1CM z$@^Rp%VvFH{BlG=CEM{HPRe6447XTx$_10Ii`zP(idMkITCdP9lFgPFaM?Kef^BXI zeG>J|^%~wI9gFc@(A77rrHwtTV(HcY08CVhl``FCeJNd#_Fr>|e-W;47IP5*CNbIp zZL8R|4MR1eW%X4P-e#wz=qM4AcyZoAlL_NWIZJ1G*i~u_A>whu ze*DfrJ4lFLyhKcqk%$tmhD`EP-K7yLhD?Uai@6&bo{fv3*;skQUo>QV+4_9buodkua@P%XQ2L>Xs4`aBS#U!L3Tla97@2kJz|3`@%6{Jfw~DZs zibG|2JcBYD2CZq>6lI?SJt_%zLaPTo5~fl#{vr7kjP@cZiTS(C8-_0pujcVJg=Mt5 zq~j`MsE4ujnP6h7n8N%*x@6l2?QsCa40V~9`5o7Mt(?#8kXq)q#NUpjQx z119+EU2P{=w6#Q$wAfvW3Sniy6Y<`GXKl@7tnF1;tVYj<#@R-%Ns|NnWpHgoRJCRz z4WsK)7)u{o``9jfL~|y`F{J4zA0FJd8z#M7&^Y4PMb}FPz;wi}$I{RHZYE+CYE5h& z-C9xq0CceIelE6qp0j(%UQo;I1(FNc_X*IiT{T!KThbp)z-okG>zr}YC+!pWnESnt zj`ggq3S*F=em$7!g9bySbRt#&vNSu_!E+dX&WBQMQJ>4=>in3KR+UA)0 zg=A)JZMHG)*=dgqmUXX6V69Iw9Dh3B%#?81=4C$cYLESz<`;4Dj$08y*;ieys{M8= z9*Z+ShLKqETjMJ4eVy`eulAgVzoSr+%0qnVqg)P3fjqtl1BV&uH*8c!* zv-F(~pe~Jz)ya$!LMbv{QUWDpq(QJ#!CcGo8xEC;+b0RL=ks|7-F_;y3>#OB0?K4q zZ3WH9OxkoP$*OB6Mj2g3Ah?2pdD*;|V+oPdvbdaX7a5FnGY?H!U6LjCDp^n+b^R?h zy@U`|(f%_t1ad#rmjSOx@!yM9=j>XgCI0yFNq?!anMLHXRwRlFZCZ0Zv0^_Uju;cv zW08UHJTdK=ZMz2;tUh*?eEmb%ap!W?0Gih&X(PI9n$4M6goPoJl{Pqlo)`9yiTf6> zwQTNQMz)El)KoIS{^OU`Q$Z_*RxW)UjK3YZs)^^8Wyl zc1oEA-9_wHp}&__mPP0{d}J3egl3|o@aKiuIW`h`FxN?y{i>pV9mnnAJYIX%1H)-SyqyQ z8*Gkd3L+$@DVf~SeN5H{r3*;TXU~;}>W&mqgeT%lW>`i)-kWyk~&c;BjwP7>XIqDG{6#c&6 zC78bzU^cvlS7B4OJgz?Odcxyr&1K(q!&6)nURzKmL{}cwnEgvYKxeP5WfKP#j0Je| z#(Z=6eBJ{3mcU{tV=boTK`~^=F2oN%QrM2A>@kIb2+GwZ`N{tP7Gp8FZ8s5rC0NSl zR=td+q`W@wi&mQWh6!;6&%5t4_L<~)jyMoW(|m2AY8emom0ed6T}`byOjXy^3vRZN zfd($kmWef_k}-%fF5agv{{Xph@{dik znBpV)__MlcM?yk|E}~bJqSj=v#-Wo~JbvPm{{YZ4lUd1e9U4>2aU6KYd0R@(Q5!WE zYb<#r&8v8v5H{_)l5$dDa=G=_AYjNyu*P7ckNtcGU6(p~h91UVt#)NBK>9J&I>beb z_6R~Nkirh$=G>M-Uygx#>AH$ zeUKwD0~0gnY+DuGo}A?E($_~=_XRaO+nUT|ax6&8?5>Scfg(yyLVqT$b78#w!-!bl zc4Rjkt6Mf;O?GS=6_MJqDX@!2(}+?jsAhq_I`xI2S6dSi-_s-71BTnb>Y5Gvc4%zX zUyjLkbhj8kP^@-M4koSgb1<-wY(u0Z`6NE%al%3;OnKMLo?Enf~NvLO~Pw1>l9C)jtbUom4z9Dci}QNFtt=?+DQl9bw|9;<^g5`~k2V7W45 z3%nv9J-z(=1K5Al#vK)X9g3Jd6!T(~o6^d=~W>ff)yjwQ~UD>=tj?3V~FYC7I*c?m-8#FUK zAMXvbC{>9e4@t#17LVj6>l{c%d`-_Q>oaQ;j?*x>1+N^oy9b1pW*Jtj9FMmhSCsz% zx8g!!U{)3fB^=f$=uG#sUVp{p+n%AL>Uw?-{gsu*?3bIBWlL@33dvNZ>lLk~3l>2< zU>(CJtP^M9eCLmEWbo0J@~4$D_LYh;eOJ{L>j*`H0bDT_YfRb`5H2_?GcysvM8`4k z25K93j?Vx)7m)n0+Za2G`d_HEo*W%GXhh3X>P#V`(3vrmHca^_{{Wf!ioVa_jO{X~ zrTC$nPD}EX-NfKdlt|1#mp0%&py#N4%wl^)@!OA+%X*KDuvr@Wegg*T`;IBS>hGG~ zJn{~7GC^cHcfLssf|(v(Z6$FN&(q9sPYLtClCZX;TFYxVYgd~+tkFBmWBo)k-LQoe zQZHWt%uTw75OXA`{A9p(dkN<}Wm=m4S;|(cV$v$(6Sr5Xl2$yK`28#Gylh;BGI|Q$ z#FW7@0Kf2=Tig6G<82^WlJc&ft7%lgXCee9CHBQyidcr#uNP$lvS%9 zE7roz$r@EQovSPL`E`**LaRN)?{PuL5SA5?f{}$B!Ss^}#vcu>@43KViZ+d}Jc*e*PgKTMvZ2_)n3Z^sQ_nVw+mF@It&!a3*Wqy0YaTCOB^jCO^MuavS0#;QgG6JVZ5b*=Sq+(qiLq|_$NGu^zEIt!{yQF{fqp+4jBTpyBaV=#oW9_h zOvhM5fzvSq12a5)Mag*IO~>cYY1wvan2}Sf*u-o5v*TcE3OVY>g@(<+Z#_tBsK^)o zMGR-zV5^SuCNs+VmP+1V&3Y=j6nUGvVL9M{C$zg z?)h&SWRQw)m#GU zS*J$atH0GXwtECAiv|-&gd{nVYUX&AdlbBUdE1*N9yR>4Z?z|K+8dP%80%6}rC+k^ z2HHIwVF^C-DenqCN;{XzrVsS(jmyP(*mF4yESa*Mfee+b!;MTL5+i0)*o92Yn8d20 ziY5o4jBx@Ux9QEh9yxgiY}IploHe@`oS5e@_AE`8i4Z)L>dq3PZ3zd%Yp7yDp(YLE zkAc?>TzaCNadmZ7F>HHnfTEV9x1Rl)U_eNtVmU5&_@}U7Je9B` zIgRq2O#Yo$CWlk9OUUEjjmss1YY4KyBvme8q@rCi;p#jb!1R`FU(b8Lj4}`Lznpc- zb~3d)wv%dR>$5p=DU-M3kEGgNXG z)z&N;7h=SNhrGdds|hv3AZA87$yW2fs2X|}GTkpR>G_3HB}aUxP+jADK^mSJ8A&CXkJ!ItWn?0D?l}KGFbeHa+Zf6eDUaf$qcc9KW~j&my<7NQHPzE!`AhRMiuNU zJ>(3PN;TF-AYQaKy@H8vJ!A5*UQ3_HzcU{LRinIZSc>egtVf$Q+bJW8TV}#Xi1vO^ zCYw`OYFH8H?d^+fjQ6O-qtYkjTSnF9_gr7EP{}q@%mS|?0ynolrTcV`R(}+F~AKN8ZgjDL`}Ear;ucl&I1PSs2*t#l8_YuK*1U6Jf##3`i6 z?Gqy(*TEV;j`a*hjP4g*)qJ0qJXT4br&!zbSjvj6Xd=qWMb=b3Moz#74`C3dTmw zk)pXSvL+E-jO)xm&p$ec=#qP0Vb{pe~tmXy3)6sMjSpgyOhZKB{oS*gZP@`dJw79%ve} zHNr0|t#zWnasm^D_eGVrP$=GhQ>xWw3#q)I68D-@8?c$l=Vk zNw-<-Ty-e+bRaNbn-p`*a4hCKNRPmUYT93rF*xb7qhH;3+8JjPF0AZY!~J6hO=krA z^~zi$J%E#C%or$$k{Ox#&&hdBr%=V?DvyQo`t7>%yv8FYczT$Dtz>@x08SY^ZM$iP zkV95bXc!@32|)>Uhux=T(Calj1|Q9t%m%@kbXxtIa!IpiBukP8sg)H`jYHQlD*BQR zMn{5{D0<2kd-W@3{z=p@eoM~cg*FLRBK0bpCS~$*9pM(HddL!Qm*C*%B&CZ#k$q{6SHyAln)Mv$pX~YhuP=MZ+vXoFTOqjl8*9d2i8j{K^{RUAJFv_c`!ks( zt*j1UXWLo?;JA?c#BwvlUKY@^n@&>!sQEcGwyjRdCBbi6s(GJF#tltzxL18fLCTsi z(T>RGKLQE({kCbJs10#B7U8`4h&mPJCvvXIhL^1z&qI>5>kXBzBecOuN8Wh;`1lg0 zcqhv`J$Ghn9wx<{!=%v}Yvl_a=tbxE`1BL4tPej40y zC9&si?K`x;-(v1ZV$PU-A&CGrZLMBaTp}i73Jod)6*9Dd&WFvzF3`akUCL@oM4ZCG`jkbZ$ZR)RAFLCncX!(6%s-b-% zU&7k;({fge3m7O{8WOe~kdqhQ4g!$h1^%BlEI0;%;G8KX=DSbLP+{XSGSCPX7q)vt zU`}FtR#C_NL5$Bo5%-VMhmJMPV&)~@L)w(>TyO-PX%J43ktK=1qbmnqdd8K;Idrn}ol1S|xh?{c}He@HdJBWx|^N_785935c0f$Fq2X70LPveQ+%0Z+&Q!DTs)f<=e^_4DLfLoomS- zsoZWyBbmGOPtx`5eQKEOeMyNnMUQQ@z!WGS*xW$EBjhGN-vV!XN-)jG?HJ7V6AtC) zF;IufoOtiZ<;9;p7ldPkN#Y31tUuD{H_G{sOM4`2GrVTsB5CSrQ8 z9|=tieDN^@>h?45_Gpmv8uee)H;}Q*v#)sT65DPln-7)gwbzkItz#zpbdhDwvoqWV zYze~VTM<2Yo>%i)*2A29U)XjXFA+|;J;tl!jm@l6Dv22?GAhJV2?8khGRV4q{F%=& zAyV<(>*a3EJx_3U&3J`PZf2vENqI_e-%{Ayv-LR#$dnK;P*Sisj-&u%@Dj9-7wHuX z1Lf(dm%md#V--UH>aWW><#4kkF33;5(~5}Z*GUZRi1e-mfUh_u%38jgQF{AGs4W@d0$TUM;xDB^yZnQMUd z2lw|ycmtkzh(|m`=L_Tgt5(cb*>yZ6y#Cjbu7XxqHGdP3%M#NZKvt+&+jVG6@?E7? z8zVFMh|J9VV7;mN>lc=}nexw*Hh&%Evi%cP%hl&KXDMBu<5l-@j`jyLBB+{`!WIM1 z5fVco*JZDf%4{X7;XGbtwPjeG$o}#R%Vy2M$t1Y(jj;y4gaZWpt%*r&Qj2j(ALR8*Yv!!gIM>89VsK&GjbTaFs=Tb}|4&qqSvwWJU;I_lcCB7U$1O z#?AvD<=lRm6u*-0J2S9i^{b`CM|(d(YZjX}qFEn{tyzxnT*vtJ`Oj;eb79_fe4Zl- z`hfB`voQ&>>ltF4f9^q9k_}C&uV`sr(wfc0d{Z)iw*xPp!vg;&G$l2^rz9xATsCbB;8!dm@qc76v9PyE=7|v>gNkD z!;XIA@P4tlX&Jm4DjjTgorY;%$!w=fTe&xxPR-`ERZAlkO#;LA3>U5$5RqpL{KjIP zx7E_M98BZmRHKr1N36x66?(!(s?lHsAbn>8-{2F|e52ybF6*&j@HMjA zC~XM_CZaHRa<_6USba69Gh)faqEl;3$^QTt#1!&8$IUvHbA7vzt*v2njnfRw6d2T- zw5r^_e;UFtQ9|rl8p=3`l$@NlWR|u{hD(VLy5&4Hyk#Am1A*6e3h2s>xXGG;>R6kK ziq^!epL-Wtwi=jFsIbA6k1!J-ZhP*RvKA;ah{@(~tFE)LOB}1OReQ@Q2yQ;EF|2bM z*YpSgvgJV-E+(``ZUE+6Yu7bhfssqbS#5)Bw1&W3%w=)5Vy{T#&fU1T>&E~Lk9Y}O z@xXw|5J$jD+dQLxU7U3+6`HBdWE~97t7Khz=G7~+uR9?qC$N1r@UV8 zvrqAr>{GG%x9!@-$$uqA9YI-4Kz$A=445S%pU@JLkmSZl#=H@-Nakml7#oq<@)+#R zI=Q`n9a@D`ZE2c$)w(VwrM0r;tu|o>*maSqPk~6h+MuouxEnr5yu}3Vs)P(Nx$ z^;9)ZA{iY>l}>%9GC;mcZ;5sp{7QehZbN19qVw5Y6+F5#si}N}BUX?_BsTOELDjg* z{hR4r#Bwfc&5als9-vZTzgNNFHC%w@=!VZ$wHqyV5t*FA@U~jG2@|%!N4iGr*eR5sc}BX5zW6V`s{ zq*8&Il9-q~5i(Q6^YJfv#O)hJQQkB8?CfGOpl*9&%wZXp$1)(SCc10&`dFT#ODDM8 zM6ihUK}5)G&tklNcYJFwp7hS=qj92%cq1Wbw~qRqFWLlbG46%Ialp zc>3!90B@!~(2rgAGu2_R9lq&{3NYjBXqkzex|R~I6J#vLPK~b|Z<(5{uV(&N8vE|f zsA4_fyqqoQLb}J`O7^%pnPjwLW`2p*v3SgQ(buR_#?->pS(0id7J;kQ#K^!cePSj* z5|R6VjQ;>}{du!n6P>S;$GOxmqS>a*B_lP-9;O!#OF*E~MI>EFNJx15On=BG_TDsmNQ?ehgu`>?AELD5s;fBUU->&kh=Lqw5=++?7mmZ;aP;EWFn^Do2IK) zG2YMPD%O@`#l|j{3e9kpy4{67kZA=M$398L_}^2;_?L1`x*lbtk}E35)1R+qYbMwjYY6A4 z`YeHj8J|^1HY5yAQOs7!r9#~qu z+^+lJledQP#w!cIYc;Dx?5oys?0Mmhb_7({8TPL02?A$mI}rrxRkdLQCn+ynH%;IENPsTWZ7-^~5aG1Lk zv+3)Wen8HB%!GlJiq+(#y(*M_LZM<@l$R$4Q#11=O~Y=nkk*~4>vySQuIv?UWHN*a z+48qsx>lR+c~x%$(SeDDkd%xnIuA&JlkW{ z^&I?Y*{E+bin_<6U%*U}HD1comCKxo#Kg&d6@q!@N+;VB6Ze_tpNp2Rjh`6V!lCn$ zM!kOjyBs_9c{&B@m*qP z04*pE0OVQE2EzG^6pMvxaLNZmgSMPX~)rePLp;%=Amz!*j?dg}hBX$g}gF zyLR8Oc^?^1UC{KkQ(n^_wId^vF^H8|S;e9m8H7Xyb-bt5Hlwr*5PkUgrJASX-xK6l zr~aY*g>J(!^_BjdsJUw_WHF%t0amhvX31Dw$g71dFu{;HnJ)YR?VHG$EyCt6N!JlO zsEL+h;zJ%yRiuO2^wo|SvT?yM3)|600yQK~B2VH5;75i@)x{rv5#I68-4F3Cmj~OwC&xm{1?_^)()$$T_#-i2}e(-L?e&v z7yWVwG<<&=y;>efz;9Hs7=jh#X>1-yO?xQF*Gglo#TAWrwBwkVdq^w^Ow4oJr^&{} zvhJglspP*R_{F(>%OPbsFRh!3qeZmDeO`~-a!IXP%A?*aHwhW2r}$mt+N$778?szvMN@=B1;WT zqJPa9S2jYiStgSptx1x((8;VzL-*KS;@Kn+788D+`!q%)hu5*(SGHkgkY^6ahJq35e!- zF8=^|o@QYK2en4+phjor#Bw@TNbkQf-K*Aa`!G*JAmNG)Jh{@GL0N`L_{{WQ! zLlGm-*rcm>ZQ}KOd7p^)Tt>3mb)1^_3=#Xbq^6{sP_1mRh~MtsLvljr*rjr4BzspJ9IGqEgvjf)?O z9D3S@Nf4sqX_D$$xg*v|POM^TnS4mc@yMs<{OS5g#jg{9#cDe~44q&Vj8LPD%5Wau!vcSK#EIVWJl4^j@zQtlBgw=5{9URniK;sHkj;kj#$w|W>69MXul9&0_YJWt26g zyjWNjj^duJY%&BrU54C2N8>*cJj3EIBkTJ;s}y{jtTKx!Br;J894*VSGJi`=$pZD- z_8R@3umS1mg5&uj2pFCEH(pMVZ+N^&4XcS;sOx2J+PGZ`#+FPgw?(#QR@aa z6hJZ9pdXE>LpC<-{y)d-*z?)uFxoP1plDw&biC?2db-lS7{kLngvs-{hON8*-Sj$J!vyjP!BoLSu08EjD`#Z=ncz0FW^A

n8{#anUHbJ2v$_8(!wE=(SJ+|1RQZBF&q%iV>^bsQnmxeRd$`THAB@~4VJ`I zfyULcq=-3_a^ynVw-g+;Yl(&l#}mke!7Ub#mb|BUvzrdjiO}j`fv#N*R|_#YD+Gjf6>1z)vR)>Lda{Q8D+0 z$~jH%$nV)K<+R4s+V(!TD9%e9O$yj`r`KAd)p4p)>&LOPXlLpO8EmJI!nw$4*Y9qb zOju()$!j;`>>7X;iP8S5hEg>%d~v{#Nt0kdag;B><+D| zY*{>tVJov^61yzu2PDxqT~&H&2qEl3QxQDJ+GaWUXHn3%oA{d9>Py4kr5)?D0k-6= zX02nb35+>N9xKvRz|0tfMSw%=C}6I6_{v)CCQx`{JgJ_f%u=S+-BRfmFCL(f>%mj0 z>uqFAl$W&+Bu_F^2On>NEAkx-ewBx-o~KL4cL4Ahyq780)L}%fgu*Z}%I%H`q6)-e;-5RGYVl5V#&#pL0z$g`!0bX$*w>=1xW< ziG!LJq2m0`?_`Ne zV?7?fReXDk35&6j*|KdLV?-cqm@bu>S-d7!41s?WGG!6O%nOEp!g#+RZz`{o-?sW! z^}4EHT*h8v6s(CHGPPyH80m0==3Z+y$jmWO9b}4OJ6$?j-lv7rFqzHS+kIQEUOl+1 zsxD$}=BJh&l;5~O@(MN-IO%pzu3{CAk&SBAHzV!W+RGI-eL^;{0Ft%D&p z9&%2!HrMJ*Dd*lq$OqRm(oSW3Ky;yq*032XYuz#V-D7L3WX!JQcE`UPkxNLVZBet5 zmKa2gca#)^K!JnF^zAJ*FKl}~Xs?0D`7H!<2|q8Y(+fz)7lX1r3VZ|x}w&Jtrr(Ou4VFVbS`8DSW-lw$K?yT*G6v6 zC(fBD9J2oaVann)P)&<>WvA(fR(k4{f-2+f_PkV{>scjpGPsc~kMR?em76*h`}$?p zK;2GsmyRpZOh9B|o`kfl1n`~#%mM57KT1Qa~G4<{=+MEA|YKnZ2#- zUdiE?VDh$$x^Ak;+TFGG;c*R7VQHI|#$U*nS&JV^uEatsDQJWT0urL)A*T_SVceg& z(BG=ZjdFRplPb8n_JCH(Y^z=sU636L!dNyd;Jm3AO!?>$HRBA@-p$H<<~IXoWkkl7Jy3sHK>ox0lPki42sb)GHD z??Wv@@$U7es{{bJ;%u_!Q+?{l18nL$TVWAAOzP9%FIpZ zYz&9kITXMY4?IcynBnbs=@`6K%$BO%Uk8!4&5M_aTNA3r94)K9a%2U`Dz#~3D9ogu zT*#|{DO$&r{{T?AvCU1EM4F!a8ulu!s`YWyth21yecLvb?PdO@TuDbOioo~@C^GFq z-z;x>Hl@%XpzDELRYM<)#%qmvShC3Vr5`Z1Kj3H2jkN8T%++-F4>5o zwmo9iUc=h~k!-8@s-VlTHnNrqTqZ_UF&@eMkF*2Otm3yXDOJ0()JRj*A(*Tg#j7V% zH=A&Eu=El0>oupU)`FS;03skJMD~E`sQ6Deuc6p{-s49-l$%qR%3jQC&3y;kv^>3l zrd(ZOToSskq9^#&p^1;T$GZB5m+GB*nO)lnLXpe5(#Psvfl5SYqy$B&fe{%00M{|Z z{{Ua#&9rb+lFn7d+e9%d2G=!}(*)TOh%`(Q%=IqPQ4ul6AN0=}2;AihK&-XuavyaW@uguWQr|ND=l6z7G33|z3A}13C9Ed>k$NqB@ z5kGhZ6GiMh8%f?vEIvCPxjRj66CNoO8T?n%smV-?pB-bFArazcV16!XdT!&Cqesb^ zz2_~Dv#_@IUWhXTL_UV2h8VwOnkTE-S!wqD;siz(KVUA!HhUGaSUl#zPi3i$#bZ|# z@XU1g8yN$4(=PJ}j%U(?dHRZCV3;gye}cKqnBFVruxEC@Cgw|7*DFA)7gnIArJ+m= zDDE}I3Rss=71JMKkq}FRnS}^XJf!WPcE)A#bo`f^wXfE%S1o3}>~$D!YOqa^6 z*XdkBTnP;Og1bs$7a{Cy@?7OKTx1$Itut%P?Ym`67GE)0xeSgo5E3C(AdbW*Y=_w^Qq-lCsuVE;+Gcx9 zPwrDSuWUA3j$QH8bt!e5^nRXTGaF-JotJ4y1ryG&pHf>K1Wb|l2*|?NAv4yiZN5fc zHw~`mGkDw;l8lZnZB@sWoPD*}lWE#oRRX3Zkv0)Zd$eGTmi;`v3Ai{N}lVP zLI9IKtd5|Q7=V!lvJ3JaDSGCXBjegN@Y-?F9BGM*_B)qtTB&8^aK$ARtr2zxaI^N9 zA1VI;36Hc3+-vyKu2)!AuZ2}vxtpy@p1rS91F;w!eOJ8N=z}#TwQ}8Ij4-TdwD`b=VfF z&|&(9)uqJy$KL{CpJA>3*)Smz(n@kX7i6uM=I6hb{%gApQ(Q}naSZx8<^PceghRGB+Mt&4^Lqr zthq5#i6kIHHL5v{A6lVjUh=jJXxH|gfrrFjEb2ZtwRWYb#M8t5G7A1pX*4w3jglCeilo6c`z#uvqDcWR zDwxR#x@YE$o+HTCuy(c_9UIm4MM83T%dX5wF33a)t0K%j);YvKlD$bA2stwnf$h)) z9CzDD)Nu88&2^s3xoo9z!|KFP+gESB5=zOc1BjbYJ)J7&q^Nrt1I|u6(aUNX97Rok z6}3*`liKLEj#_Z$yX9XJMoqXfe1g?2YrSk^iDXZ)Cn7MQ5t8Y6$J~2&UnAScWN}MH z*44sZYjx&oxaSzm+p%4c#W4>xsM!TFwF$0Z;d0Kb*=@USz+e;Qbzm@V@B@DfKl&OPjVrJEqWTKtZ zQe!3-TmJxPY$Bv1l&wxC11%It^43GXiKJk(%*9g3UJUj^?P%9CM9_uM#`sDK-uZ7z@X|H0ud2 z!%SfNf6G=o_Z^V#)XifPl6m4P-G!tgSChvPe;tHC4D}K+>`NJfO9miIk5Nb+*>ESH z*3n1m?4A1R`l@$olfJ5@`G}tU^x=X_mH`2C-9^-*WA6ZQ(Td)%D8pL7UBGQP6~wB} zKCGD6VG%&Szq9`BcEB_UPG%>hsJI~Q^IkJ}y^Ft%#O`@IwcS@9%M>l$`f`k|Ur*SI zMWOua>=4-EKJpBRfn%kg+a=C4pZMgC_wtM-nt-Ecwf_&FwvGk5BfW!~2VlxSdh=L(d#K%zpi0(&z!fY8L z)fuDb>gRJABxm!t_8e;0oqKD9$}6Ud-Ry)xwL+yq3cUbuLQvKj6K3<}+qs>y8M0$n zQ!$Xp)p!QYn`R<~l>G{4-8AvjJoQ?ItqV6N)V^f9bNK~Rd){%CG8FY%=Z~+Nur9HF zwHmB9Vo(qfEQKsggy(`!!7964?Zc z+wAKyZ*-Y^8wW8gDIR(FxvY5ea&_m|wK#?4z5SIGyJ@&}T(J(%?ANLR&Gb!wIh^MZP+t~m*kM2L_~Pu!rcM=Tf! z_#P=?e4*q~$9VM{WvtjX@9sNT4 zX=EN2EMD0%*DXI|$eI5D6?Eg_gzu*)09u6QB;}|i}x_+ti zRxCrsm1aw<9Dzd4@AU*cZrOZ~qiFV9t7y9$U$Wj>sL{gd%Wg^P_W(hgYSt3#D(X%s zWQ@;P8J-S!Uw+$~&P`@`uU^6U@~$0mMD~sAGf@!A)xfz~Rud?@{DUN9WiSOTm_B<1 zgO+YLg`xQEh(CMGWKKq&5H@DQti-^x*);L>g>hVFdXuc!HG~9nB{LBzSiFVZXAyZB z{l``|YWoGStFCF1aqG0+34ktb-hgzsL`avnmnVCo3k z{npkh-cp77Nr@g&KA&DfYfoMxYprTot~(4wjJjj+I`y5IQA0}Fv%g=hpqI03_<$=9 z`ga=MSmazJRY1buSiAZ`a0?!bZ*Q=9ySMo-Kb2-91LSR^A9;vH%a}|%D&({FNZem{ zD-{c^j#SKYX4@?>5}1h@`+VlF6V91THZ8BmBb;_w#_V++>ps?E0@TlVaZv(nHew^( z%Qj#N7Pe0SG52?=v^!b`;&7UFCWRYBmpyrXw-*)~2DU8X%q6ZSaD60aiQ)z#I>7b# zn`g`z4X}cE5Sv!>XOdv>O}cBT3nmA3`oJ02u&i4%)q?~JnJ)!o zDp0MG{{T@{jdLrJ<=EPo-`OkK$nyf6#ewcksOQN*j|8z8im-4Ja!PakGiNZlElt^M z;;}2)>=m4SHlG$P!f~_o-jZRk+&0D{Tx)`!;c0FUw`dW&cak&t>|S49!|nPd5z8%D zhDD4(OS-(wT*5-xYIp@1naMa0giOptjQom58(*uQ%~jYu$+wOfY{$Jj4QiJ0la;CT zu#9cCE|q1rYlD+D4bVixGgPW%2>pTdme;xt&AQ_1VYYNqvimtKYi-m)WG+Kmf|ddj zfHPx7m4+qK9Qm#a#-EkO-=j96nEaD{$Z^eYudap+)>T+snL)F;Lj$CO zq{ODPg4%S9W(ag|(?{v!Baq5tpey8ZmbKc7ih#m1i*C7Rn7L+4*vJLTB1pT>@x;V{ z+=gA7aa_^%e=*|ncCtKL$>KGMh2p8f$xo_Cd1A}0x>zL^3_Nl5a$l;a5YIVn~ z)I9bx4UQmm#Mw6+vL5SgBbYgslLe$xzz_BDb^idUJ9`bc;=Ci`{EdpZs*s?+V)|>) zr^CzJC@}+9Arlil#1=A9B`5X*4%we9ZyDPe42Fk_&0{VdYj$!pYuKqlbvpMs#quC=y7O}17Oaebhq!KWo3ek7)6;1`_} z%DQR~D~Eos^Dky=Qjv z?)PFPq}qy#^{8XqLe3<*B~=7JsTRwb+pL%rkKTPhM)FhZhF>RJK-cnXTP{PR5qo01 z@a9ExH?Fy5G5#^y0K>GG+JC84^LDFuX3N*s_8sd5`;}@DcR#S?(AHVS(LQB$1y8y3 z!cT~qm3l@5XT0^Er2xB=$>F@4l6G#sKGt7W!rU6z{C%93LuEXj<0DKM0^SsQ^CAHR z=oud0X%J__kMZ8sS#QslA6vuZC{{*p*j8$mBapKPQyEP)=t4*W8}2xRxZd0o3L;zA z<{uwq2V zPIqwLaN4D35$(1^Cu17ilFgwMampoEs`&{mY^t)vL1wj-3=tFcj|t>98WwRGe=6)L4R)|&a`#u7v=tH1c#7a=#USjF zOqmf@kz7wR_c)J$59#V;vDp6r4sCuwuVgXLwNGMg3oD^jbun&`I)WU_EV<-0SNRc& z)@9US{@)rrp8o(CKF5w};YT%sxr$aorYXAZM^L##wNNyITG&LkB5VFZ5MeyeFjM#V zk>Twl#QwdT4XkTBZq%0Lkc@FRXR|`2&;`nyC2S2aV%vzeQ_x*KWM}Ume~z~NA*VvM z42$kirW2d1Q1M!>Lgfb6n+mY0{{Vc~&66mDT$v0eC$}GX<|G9>&OSub(L-MHH;I<( zIXeM0b2n)+V(`R3j1@Rkwhm+MCYh0*c@g_e{3AM_mN%wXw%v2anwARUM#Vg&;OREw z7tELYREKhpv`-}0ET{73CV7aW)$y-_H740ThfCDz*t;v2Tey#?v6cnQaJe&+veSX- zJWL$S^D#gAmSiv*ezmb%x8dC@0L)!c_gSxhUksdAR6+7>sGicu2pOL4ZCeW&{Jy3* zTmig)>2t$*YB^8(i{xCUXe_L&UB}MZ82nX5uz8NOlEnz05+@ysd4c@6kGIKYwNt>` zHUfh+``=SS&02IV;wWr{g0*5gLx|1RCb(9H3nl;}Y&511h+IIiy8(~F`8k;U*4u{G zHQa3kuI(xtSXBXhtfRez(XJ@2)IxXi_YdP zEfn7vEFMmpb zF}QpSN=C8@+K?#$afj9rB-qw+ADGBT4CR#ZE|-qP>+jmIczuQL%BtL8Z4nhy3Rw3s zj=yEyj>6T|Ugn<)Ty+tz6CghUV zA|hmK`-srSK7TuAdad-Sh%i^VtHe%Nqev6 zFHjv^c2iXVY^n@0IfJ)lU06o~G_gYNV}kzx5_rtaefWtefKtc#7t6Q{)v-4}P8l3! zJcYUJ}1jHMb{7O#caD`c;cWO7#=+bpCv4I=S?5$qu;gt8{Y z2(f&`2pDn*I9>At^;fk`f{rI=ZY|72(@18L#yFz?PuHtcUrO*ln%kE@M6us4%5Sdvv1O%M{Bq1`D#D6K1meoUO^37YD zrdwuVXt-RL?e^D>rmAY$E5pF-Fd^q=Swgw24rHT;%vt+-x%Rei8WtA~gt=EUQQ7>f z&8Vl3%-&_Rw$MjElEBuHTo2@Y40TuDKK)1FOMJ28eBv-SwJevCHGHts!>uxm)1P9U zSY!&SqQ4fC>1oS4Oh`A@kdugsknB@0yJYp-dY&&OVxY$F3 z&p!j6UoGUj`qc~7EZH26{{U;ERNA-s26$EaAF7F@VeC#j5tbtl*_?tT%mjPgc` zjBRa$&-e^No^snNr>xYl>n-LZx}v}dG>%J=5JB|;2#>Hw#Cp2EjhERrFCkIhU7_2| zL{-CLG~CnfUmB`|8M$S@$@a8-u!bu^dV;(|B1pMEh|J}6jQz;gwN3jmoUv4_TFEOe z`oule_8fw5MVq7e@I&ht%#Z!F#6)lce7TLuQodkPM{F9JLM^VLu0<(x7{6Sw zy-9|5ClAUIc*|(tA7e4)Unu4B85=OiQKOWnT|-8(NXRdx6R*XY=n}?6oQK#%zSATg zsA+o6sg~Gk?|wwcQ?+X^Ozqfi-D)L09Vtj&%0&ZNOpJ%R<)k7+xq+U0j7-c=A8C-9uCK88-+atz$;fIAJL7?z zR$R4~SB!*ovbYwSZAbf~D$^78>d1(g;JF`_Od|Z9c$)hIrrC&NE2UN^CWaULlkGDz z4FTtpiQs4Y;(xD!2i<&Ma|^Y5GCI~36scgc7o9nrzC$Zx9Rm8Ev9T#~{{V&xBv!~_ z`ryymG7$_P+g>Ktv0KI}8pyiLo(}F&iLF@_L{Lu0&j$+CS|4AW+oJIu%*XW<&+dCBznzUo2ZkJa zaG3ju%r>@Svj+r{Z4xw6mP(>7a1c{eqG2M*V&k3@A@-g8-7F>^&FtMpR-y~Cb}fNP zF1ltXkRll2g)!8Cf68ZpkNAlfrn51E#XmQ(E>oV^+7>+o;`eruh^)C-Dixo&E2E%v>(g8?|9|`T+(Hj&460}EX?Zn{8 zWH+hhd#{zL`1%tCSvU=Ds%>W3$Kqr!vG0npBP0^RjydKa!~OyP0La@Wv99V7l-+M& zaF|OEP|cjB@KsB3?2d~F`!l-6CIpl+$Syj}PZRPby7>on#$#j38cwOQS;gwCU5dM= z*$u|mnvi6pP4v1!w$mwlI$DtiE_m!S5^~1;e%0e_ZSUT&Sqxqn@ssVhv0i13!(#M| zL>wK3`_!13h=>w4PUETKfe=4Y2W;-cWl`6LN)c>uH#JJ6lp5HJYl}Vu=LB;$1Z5BSPHmP^)=;+RKjPKKw3Osk;rVQEHJo21HV&`gBzX@nSIC;Khfbz4 zg=z^-ew`+=&Bu{iw#Lnfk|z58o3WIUa$h)NbWJZmQntIhUCgq+HRDeae>sw{+gQhl z_BytbZJNolD-q+B$}J>dqqlO8ikdd_tlbav&M!};`?hZL@23;4V)~;!QN~iHSTq5Z zN+DblQ&fxI?j)uqADaLM`K|abZOn#8$9iE^*Ko<4wpaGNZcQ|{w|faRYxPLNfkr;* zU4ZOtC5!-?qlOU2c#{R?n@_{1#g4*a>YP`7ErECyWS~h)m>UB$tyrwD!a^lvM&Hc4 zgmMu?)-CNp?eeyNSE~HJ(PCMzC#k1&v zbS>;2V)BRjO;sxu0L6prVp6*99_*V;S&J>MNMs7A*dUnZeTH!cAvN-Dhl!=2>>A}f zhlXj>oL!~DtLn@`&~qK^0!po_{{UL@8G(>hNeC#CVZ`zTG5#FM`1?5Q^w!)n81*FT zS9$MQojOuYXJ}R~xRJQ|h~Ozg$~YL2A|mQe*Swp6$@u#>rFe5)seoZ&Zp$p=FjgMB z$qGjSIPh9PoS5t~MP-5NmIvV2k&>u?to6NXGhvqXYqxXvS0LNlHdd{CpA#@q0bNG> z3tY_e>qTG*=06GeA3dY=-J0^&Xm@tf+pz~qVMCP0Y*liZq?&mFNwX%^ygJ0m5LjF? zJMk%5&oSlRFxfOqQ?%R4?G-m0?yp*|(VE0$$@u}5&#fx8O3Ty)Fqr=UZD}$*l!}T- zyZpQ4vL0>B<^y%sbevYNa84_~E0!xPMZSj}7izBxb)k>(6Z8uLcj?WcL zE*ixQ_PruBs*K4=HuYNK&R=2W+PIPMBLx#9&&MtE#9CgO3%45moxNFw*vHt6?dv(5 zmO7nedoH@M+;Oay71Y56oC%4&QYKu&{$S9&AE?u-X4Zv=#HQI<9G%=^RasT!ZVA1q zOf@WujIUrUBi3n=h*E@sQc}->hiKh=wX%(D>|?haZ5$Rs88CHS7Ped2>pqg`yc1r$ z%q^r*5G?}YVoC?$ac=zYQns2IjJ`%5kt5&rTUF^WdKcij7^gP5M>8`VhiI6Xndjqm zT`3zDubaSQur!;IJWCa7iZV9!tfen%Wn$8<4k~s=dHXeNT2GD!XO19V1Ik`EnpARS z}=30tsnJJuk1!oS4V+^@t*q>%^1?y^GC$LD#g(wQ$}>@V+-X zPn!6QAMDv0vdces8HuxHFolFfv5h4Vir}ZAb{HfLQ&QOcX_CE@SCFt9HCosgUf3;S z_YuVpcVuOUVz;KT8oH3R(_6g36DC4oghJ2Q-F&B<-Ye&kvW|OVu~_l+F;?;Mn{GCQ zJC>CG)$6ZX8f#R`iNwZ&K%sLJ03r8J5BVp`JK$;imJ3+eGZ`8bmp1ZZ%tG;)(QTJo z8OBgM9ev{~s4sJh#C<_X$M*sY*!Hi=oP_JD+3WLgge?#i!Bb;VQvFl zG6(T7Ys%qt6=+*VQ$_Kwk+4@Xw5?P3Qn6r|7Z_rbTg4Y#*l@9(No*c?;$k@CkV?h* z4|QzmI;Pd4`5wibJ|c_;I;YU<^&eq~`fAdPLjM4%e<3%x5h!7HiG*(YD`4?!V zj?dd8_6pkAp53AuAJp<+2JLl1t`@bu7xf8(*eK!dmP_ff zmhq=zh@vJ?NU%h?C5Q_ol;~%5OoTOY#C!&<-bceUs;c#Ix3cFmGxS)O?s)vAm?p3U zrN$PM0HmaPwoOnm)*vJDG59M{-281*%T@1Bk}!EZex0qZ7jo8BD|PIx+YYg1%!ZUe zv(SaXj7K9jVj?(*i2nUM-tq>`t432Rv|+K^P7aJ~maw<5w&9p+^?Lv*(7S~Z?Nlnk zpAse6QQBYzJ_(_F$yPKEBj;a_*D?&;b5B6DvX;>0CF!k=s-Rh+kspLFkIU~p`JQ?B z6b}(+aCh{4N-FHwr$VWX+tjFJYyCvJ(*B{d2jB9LHlHyZPvsH+01@)Mnk8cv4Z=XK zF1|@_P|L<)b27OppS+LaGZQm1Jj{Q`$v$@@PZ3GevG{LXyfq4GRTSN!Y0q@7J!w+i zT}IZktaT6>F7d|_GxwHmHoQ@c&#hbEiWjM3>O5YI1sr}g*PSLI$JNCvKE*HZGHDqV z@e$pJ9IgW2Pc46ERqZQKqMJ3=QS~`2iY3_kYLb$bC_d43pu#cWXVNnf2F_#GI5GY< zPmRj->3M9fD=0>yw-eI!OYpMpKI*dqDPIK6tE=?jA9#p}`5>ve>QGheX#O7Euo&6| zbgE=gjn6_NB4$QZs*YV~R7}i46|ezSmE@#8GKe+u7QNBQl>s~w>K9V!&H$8k)*p5R9Pi69UAGF z;v!cw6Y@#8?%27|-J@x~W!rOBt=o#_kD$G4UdJ*YVMv&KEEePdNl0}f5}qbX3$H&I z?`T>5k6>WyJHL*Tx*xK@r$fRv&V1pc)XM&BudJYFiTsWN3;Tg*NFRW~wprJ&+#PzS zkvHEe=Ij6u?4Rj{UZ!8y7G+5aHB%EK_b0G|V4?xL~4UVgUA`in*G@qfWPq-F9%hZOqDLuv8^DjGcifmK>0>y}Y-zq|RG; z{+S}@(ow`sH&@Q-{x_p@C5_Q(=(cQ-(z~DXBi&Nm@Lz;WmWC^ViRlUpAh_!gG4W3Y z`kmLdj6~%8jk;%pwdLdN#)*JlO+|l!;el$qE;2jENgq(EW+#q5-2Bb4`8IJatDddm zy}v}HWTiJ|+p&2M+^xaP{{T*SG^l{g7x=guLp;Z(Vm<{Xe6+2xKN9K%$HWcqz+1*-Dr{a$zlo|@J4>3X%3Zgar;5!c zIHcx_WYqGsgOWG04sx-k2B?MCtzA}6|ld$nqnMu=vKjFS0rDVlW*lLJ*;Gm ziwT0!GJ~0)%6`VN{tdUhVvMkUD%7xK$YOn&4c{-GeMn@)oWRt9RL|T9VjaK`#}gj_ z=a2Ru6K(p&10zL zimBDGT0SIT!4|VwYV_8ZNOLXpQ|=KH9P%X5=a`Opo<4lzdtLJWjj*-b-=A;QxSWAH z?MisHqB9Ij0NAS2?iU+bSagvyRDxu!n9rtj0Ji5?^0d*Mhb>7x$LKF4*j{ zSqVuQMX=|e>*5xe%&tQ?jaNUf>=EL2eY+~#;#E{Udd|rMMb1=kGw5meSb<00 z88A~ZtEUTAo=eU*w#|~-#$8zK@3qBpL{mP+(2t>6AKQVCS(HZu1vA=ybKHOFhU+(nk%;|2Y1p)utU49ERdEBihK! z$P4Me^64|&3O+T)4-K_ia&cN#(X?ENixsoG6NxzV^T5o9)eI}IBhT>EApD{te$hVx zPPd*sQ{HsAZr?& zX0Q1E)tnuq1~nAChx7`4=P;mRwNtNUV9x7?7?@aB`YZ@Qp93-REv6q;nK8O&^92+e#?(NyC_pwM4rnPFDhnQ zOT*f-MpRfa+D^M>C8gMph~c6V+(zlRJ7>gH@^-DeWQn)zr(AwpVNSV;RCIw6n`(k9 z?;%$Uu?=C6OpFN3kvgr2@%NXiWNZc^r;Rkq_4`HZ1V*XBDm*{ zdr#VaFl9W0i2c2W;Jlfr z<}upNxna7N7Tu3V5&I>--BLh5{i51SZ2dF;0L!5!+M$9I*d?(rKv{k)*y!Yx%a`^0 z7nuVsBG+A%x=Z3=!7jUTh04OL?3n}Sv@&7TV<(bbW%+q~4rLUe*2m*safn2~{pFP^3hb^X zC;tGp1>pc+b{8@6+Lo!PZ92Vy(5>T;gj-ATH!xL`^y;*(cxbJBET$lgNG5+UlLGq` z@DmX6{^^nl9ZzoFaTF_iKvBBwY__WcO_`92)eLQRiRvrn+Pd&F12G&(VDS?%d(BpP zYYDM!m3DgMWf&aoxUD%FLopu8O?cTOn$a*(FR>*xqx+Ay!nqGS>3B*XM{MZV*)a@e zI`$AQNmWIa#7A#$1W>txhNM6meNHA|W@m+cjy$L3N=~asRk?Mwjae*u^7Z0{31}Cv zL+E6?TO*iYcWFFiPG%4vc=#J~Sbq&}_21zz>~suxefWmQmd*N8rUzc;*1 ziqbbB*mYfr)$#XQy3MzknawVh;}L}sHsMW$F2sKkO6)8}-oLc_PGBUttNSOC^BKG6 zgl~}z6cL<5wQNjct**r4C za3_*K^o~I9yrviU`|RZb#SD-rpIoF1?ZnR?X&s;2Eo8QxQ#(fx{MKg=YUT&`{{S7l z>{x}c7{#sQU_k`9ZAJe83BBXb+m3jcU8lNO$z~5)&a#J(b6BJLDA>*{BOo~EoSkLZ zqEj6fs5oC18Dgg>D1we7kZII>L$ztSFZBnGZfpBpl_EP}_Bv$^boT-)6|I33Q8FoH zz=8oKz|TKBdYA$!${d9VTl} zhVc*#uG;HrONkzP!s~Iz*uUrCY?b_-+zP+d8+F_Gx|W98>D*{isc*agfWmy;Z9LRPV{{XY!h=A>4XOEeiu0_qkL0ia$lbh5Z zLnW=|S9Z2CyHNuA)m>GLn~E7(T_Kk->XM1-s1bpLjpVfaf_nJ3RNnC=VBx^aTQFm5 zF|jco#nQ4j8DOBk(;$*KnEXh1BQ2TfQ5T`ftyj%nD!Bg{Oklr+xz>+&zLZq zQ>}!a^MTH7XsHaZV<@}TugyC#KF_7Ke)<&eujTLYMxLg$J4n;7^z zeY(U+#mQJnOvh6AV`%gDgS>Z8F!jNB%yR?1TIjD^9o&!diwLM~Q;K7>PhnTy0)M~n z;7BO`mohqDd@lwsU$c(eEkG_Zq_fHWa@WWp?I|-${lo(}nX1@^E-~hDPN_Ld@zm2)edX z^%U1BnHWsS`vN=sec5(RTTNZtJMPE2-KUYC@1LJ2 zc|XIurr_1>QI5~yQtXu)hnUN3f3|&cuDnq!9Bv++MmAQ{TOqD7E>;{#1kVF;{uOtN zatBpsrTG%=OL6u2d)ndTtl?~`1!S9-tT^e?`^lHOQQv|uWJdzo2cI-g%#km3KYQA)Cjm5tn}9pQs+p zWh{m&?#V%|Vx`KOj5wrKRANWr^%Jq$57nO5d%Gki@UOvpj?c&EZlxA|z)vvo=m8p*^ z$up5V0A!XNNiqlSBk&7t8+P-71mu5EcQ&sdVJw_Pi?-SrsxJG)!ff8htnLXEoXjW` zKWT_2l=B}nY93FkX}?$CtWS%z`nE3vF6Jv?GFfZ43KtN`6jy+<)9PFl*(FaOehcsO z-;A}bLqN{i+dLEDOup|;uqOS}D@C<#hj@UMjr%JrSrl+F_*JdQ^x{3epkw=R!E5iZ zy`#%sTE`~NX^U<@3**WxsLY5-5Ad-dFS&f<{7jy%k--d#`6!T@@4hC}H{1CyDK_5s z`8C4GaMcFSMMnx3ze*!52wBEByYQH@SdZEZ@~ z`i9YkSBRHOs-R@ZIgwIhg5o4OtRzXz2h8<{22O0qb3x4CCnXsxpJGVPzn$*#}BySJYu;9>1Er zzvbB06@}Hax!UzDQ`xB5Eo)wxWx8=B&%yZ~zKUf9%=(laj!Oni1@)|7~ zpyl?q(xsHmvPgZu$xcdQ%LWQr>`zw=NAfhMnE3ZsWy|ao!o;$0w6ZS;4Lk-m#!B_) z^_iJI-2GEVIG<&k22uARfcftuuHtu)D)FLWACt%%KCaHgT9)0H;D|@7&89fKYdVK% z?&}SK;yO*E(ID5%~{ViE|J#7`2) zkIUc-|D9`+i!2GuBjL5+YU;@2NA^W?)+*Fa;6Ze$qTN{JJ)cgsJNJY~8JoETF1(vXMII zyd$)b4afWM+!>Mk4L5owI`Bgi6AIc6*jQbvg&Vq7JIYN12%!8vz>7b!Jb5EPqUzB` zy5BveKTg(6enA9r3yGoU_iQ#GXLHvZl)GVtkb9Go2d-Sb_R=j|_;O zIf(cQm;R#}UbTvUr%jVb!R4iEWw6@>}Nhj>+no z8lSR^Rb32~+?Yt-yd=-zyH1Mc33A{b+_j+#a?E;v9Q+Bm==err5wv*+V8&+meQk`# zHQORnW-d&K$ttR3BoLRY)aA-m$RAlbo`=X`ou4tj8*sX|b5PqWSzJ@KISNd|qE=8o z(-}>fb6PSSiC3*KBqC68#81H)D;`AGYr7xjY;AppjYWn@4Mt$G*!+HD?DO(Vl)KzwpMk_FE-I}x*Mn2j86v+*6>I^RB?Sc8(Z^7g!>o~tA z?rX!*3RF`#?44dx69@%|@moUi>WGn;^^tsk!aKaGT7QmqonsA~HrT0-$YXLC zojfV$E7NaD71?A>WGx6dkFyHbf5t|CFd_J7Wc^Tis`7F=K0n78Y+3nSuMjHCOSLCaZF7@ov|P#b3&<#VnZF%Enr)y5f@m0J~}k z*dQwto(#$ZuOsP*pMa}=sx>96U&;B6t=IN#eNv281~KfkS8NK2HZ24$I5)7OMgfw! zP!RA_CS~${K0VsMQ5Fy$TDJX?jyPe~6Q|$A8tqvRvr;i!*4R=zoJq-8HXIP~9ZQzI zOU7TP-ydGs{CAzw?&|dA6!IZ{;xd%p)yxu}Eot^#aM94OvYJlC4fTh4t8Kn8)I#gfJj} zftK#EqAyVcLKjYrj(u?eQ~4Z&{wGZFj+cqm7k=g$KCJFnC3?nE*9i*L@@<8OLy=gK zJ=J4?S8u?$iHPIizb1JLPsgg|OFlNGVc;+r!N}2EJ<$a$gRfny`iWOb`?gl43`hOZ zjyOluG=C?SM`H3OZLZSwiur7g8pcZ(n5O*k3hX(&e&v*rnrbFkF)2q@l%^s*bN2Y( zigvrK8!LFz!x@^H9g(EvY@2=#=3?20b&D>rNZ#klie`O{V&KW30St+rp*YVLduqyc z$ZXpVw~1`UI~6pGuWVz~(*{CCtz!_|P8j?_FC~J=&(?Dx%l?7mzarnO^tyYsEgGXx z#%qtr;;ZE|N@uh36)v7A zl%Hjf03#+->jb=Rj@^w$n|eX*G{)g4F_E*iMds(NrXb6eS&GViU?4az$b^_ZMrC4f zZd)gpG(AGE?E5woIgiQZtHbDPM~H9K6=cui!Bs_)1rlH6aB&eVn2%w8GmjxxZ_ZZ7 z*2P?>f!C?6Xe;{tawC0p$4Ff_IAUG)jzz0V(mYH7zqeR_)uTZ1b`dSt9V#53WF&yu zetP={QGZ99pV}ZOY=Z6ZIPoMEcRkI7_gtP#i4V_lcBM0N|ow zja>f#dG;Min~rHV_sw?*7-(cj;h7cPYE|rr5xs0;VkUZtdXP~cj|^jD?eVYvmTDNt zdvPI`)@xL%YZ1j~8CI=fOu?>w3^PK4d7dMrjCB71kGy;dep|X-{dTW9Th$UDeYHmYl*3W=nzX*)Wn@A|ybh zj3cb|=a0Yj@?TW<4|QU+yJ5Rl(rW9u46X?Zqghp3$GUGMkSqtVp9MA4{{UhI ze2jcj$@$|b*?u7P`#Z&<1{J+mM94atFi$BmBxUcpLRFwyGZWUxM9g#Rk(l@vjgM-< zYPlmDS#Ne)J27Nz4> zK#EW@5==Q;3{(X&$?L>~_cOO>p?#O}8EoF$djVK4!$^h{=nDOns_fsy&8qn-7gyj>&5^bqY3Ox$6csDZ3m( zwcT4J8(!McA7#T*V!|#vNt0l{;$Jdm{H5WYp9Wes(NOmqwJI&Ajl*HDxM?I6{ALVV z;A=7`j*OE*i9+OLetglG{Xk{39j6{xOfKJ%*KB*xn|GFz&eTaryaD1RFwk2e%^Oe+ zkQUez6P^#?RkQv(4;=3r{A#%m^otJV%!VrU*$Kpus~=#do5p_ym*z&Ij(?4e9=(;? zNTc;JjJugFXDf)v)Z5!mV6ntxRj;2s`zz0^*yT(~z{1dR#6@&M#*0b3h9sd9xc?R|l{p@|Y zZM|<)MWFh5G|#5!N+k@0vIr&{YTpwOKvG7z4}d$!n%xy`Cz9Q*YdVFT%wyIyF$jve zB7IA!F+ZiG$$1&qeTn>RkD~an6$^M?Jsb=lre0Pi7ujHu*vmP1jg?j`61==kA z4VvyM@>4%|IBJxLNAgVlz9V@yc#=?lys#~R&JKAm)Bbus8cu9rpERr^l z1o-x+@)<4&%y@&XZQtmf4@5>^NAiwR&OXnw?jD8~XVJMoUOdQOuZ|YY-M`OXs#mQq4woN&4WbC7;s5heT=yAbak|A zvWm5KyxmG`nYRIwwUe`Q;}6yB78Ad0rf++Bf`(Z*mh;d!n1+8Jc!IWzk3wCI)b(te z>)E%I&dxY8`8L=A?Dw+Gp#;MJ04aem20(xa{l5PI07ftM4}f*X(2EMv4-;q)EN{j- zrqDy(@Um6O~>!AQ!xM8qvx^A?3U6y?88ma}`t@q7y#S2Y;Iv-_DeB$JL? zEJBwKSPZk?s1(**GE7c6RQ_+d+$Mh@BdoUme=CDeyCB=wpJ|sV400=KL#R<)44EgW zC5$Pb%DNpcXKiy(xB7{$-J+!e#OYRPO*~d-D~PJh-ocI${&}c@kXAOQWs1Y0K?=fU zVkFkIfj=FW@&@mL%W6f8qp#zzgKD0^kj-Zn$g7p?GRIoEFu;B0FqmHGTRmKWqF2@) zFB+aU#N?;i`(_V zVMR>UEPKTy^vDX$suUSka7PgF<|bAoJy^LB09r1qXs%1^24DelFtX$RC*O&@(`wtxL z@wDt-7ST0@-o_5WjmVqx3S}H((UWT|cVYelK$|Nhlt~u7`74KZgR7i-8IK5of5XC47QUatkvPzi-M0S{I)NuAZxfuJEyb#>} zUD%YtZ9ZAc8_={Y`pHnj)#PPMA%gY7Ys%n)S^f5quu$_}vApaNvSE-OO35`qNX2P% zEM+m6*ZTQay|5!$kA)P8F~%ejGAaecNgQ*|UQEbpvs*^PVva1mVsZv>5Ws@udF}X2{G;z4C&%M8i@E;*Jbs|_SgLk$a`>x`1?xDrNEndT zJas~c?VPWK2pyO9!fX%g8$|?SBQYh8q=2)p&BAQcZC@Jyuaqsv^2Om1vb$ zC|acXF<&g0n3*Zr_~%m9b4sm;#9ZB&td==T%i*$aPALm$9b8n2tL2fq`W5 zH7Xe|9cJ_lO&mfs%xb8=Ff{1`Dji~CNNAOC`^ec4gPwoIBOlQ)C*VS~KNgmEGl)E% z)vwgX*6Qq5Gkn*gwR?>A7dMrS0$?0@a>kvZ))t?)3 zz9P$KiW|0V7k2*ua2pq2W5)#51`G^@qG@`NhCs}e8CGFIM8`5ekHBoo`4d;h*VVRf zAAhSc@&oj>>sqgs7KhzrSn0JYFg3>n%4`Dx<|RZ6;C=+}$l9(`2aAtAU^d0!D?N&^ z6!nrN5!s*OdSdevCaAJeAkYLrE%3G)iY25cwXELLpwz z?pIh%_8t0ZUtWx=$?PHu^(e?=;H>qp4cFcByH2T6wmdav{Vj}1+O>s#LhA}uW1)s5VcyuEWwPn z91}1l*tl4C4!JxoC&<2Hbq#YKySS`!V+nPxaj{pk9cI=+c6n41pKWPfNG_sk`fE@j z)A1v>{0*z(i!;12w@;8{JUBiJt!j)Wc7LnS2Dwi}7k zZfV{)#$)`ov{ikKjji)msgYg!nSW%n+bFK6i46&#i*tjB?J6(6325f;Z3TJVsU;j-S(U|2+FE$ zYVJGOCt8>Q;z5tyWG$tmmyo4gZ z@wbl5k!ZroU_M_Bsw+8P#~Hs79@Cx5v@T<-XEOfGl_#Mj>8VvGHmirVo}&C90wNx> zfr%a-ZB|~Tw?=REcczVs`Q=4>dmb64%q<&=4vAdWssmz}E~GVO?UyPEGRZiSpN>q` zaC?3SHCJ2PizTWir94KlQdW$(Z}he83ep&~D1A{Q)l#o}~r!yL>#?b4r- z%N=GChFi@pmFlKo9THdv6>5^X0f232AUS{t>k|XR7P*Y_7PG898JuhOE11lgmT2qU zi%+eP5C~Pe4rm3$c2p)3CKm!zD-xKAIGz?fm#OVJH|aM!;e4Z30=_P-oH^0CluI4J zt<{|bt0+(0nx3tNtW1_e5;FnqTV9{D>=<7QQ`G}dqL+?CX28ZZSen;C2M1cJ73&Cn zcd+Y`mjyjIS^fQy^3ApC_0u@&nQZP#rcFfV{e3EmQ)^g}=r$7)6ZeTPzxF1%Avo*L z&zY#;ykUpL+(!QZkH_J1R*T(>*(laiy^C7Jrf+Q5 zZ~{+tWK4DpU}QVOYJ-P~X%iMCplYX?@5IY$XP&=i1a8<&UetB11@msc>mOZ?hBOft|PhpL3cfst4kY&q%wI*cVyW@XqIP~JCM*u2eO+N*5X_?CsNmM0tg_2h|lA^M2y7{cr)0Dhxv#K6a< ze&-9>T^8QZdbYFUvZVUi43ch*e9lz%6eTp7HUL0jVOE!RSCNoZ81ShHUjx={8P6nW zD{|3uD%zGCSLp}+Ls_(%5%z_U4WU;YNqxBcaT7d$UnSQbor`vU*@f5-Q@@+Wz0t5s zR~6?Q1vM9P$8v$NObYg8XEO)vy15gG3HSu@xJ`e0&on%T1rQY6-%!^ z)rY-ITp2B$2+R7%lW`xhuTa=Dmz_UNJbeq*X^HFE1tD?kSX#(>mK^>;>m`))F#t@N z=0&qw@-ANPLl>@WnB97X0gBhL)^4{V>Nbob2^8?W; zjl$J!r8z5s{{U=kt`e%#%=;F`7|PitB|R9(m0LP?mx#ScwMC(xr3bdaa691ai1wW`Ia zvarTr*5_ff7_ykNlG$v8HtmY?QQ4;v16~1>ApoZXIS@I3TGR0~YU;1h_UCK(QpQJn zbB)9$mNOK}XW3-z{mrc+28kl92}2|!+bWRZ=f%Df)b(6018>dhn7nyis27n-9QNba zin7v&`=y9Akz0{$37r1`h>QZ~tPvU(R~?pax0}fCVOoyadFrdJ=POzvqmMiCip;F; zIrI~h)ezQX+Ac`Vsc(B!)*A!q>An>b1odZ1Uq(hEP_F$Gx$u3NxV-oJaPD! z(yDA*CRZW3w-J3pV<^K@^f9weuWpRuAZ8?@NufMP9p=RI!3_L$u|-vI_}`@mJB4wlxi-H?Glu`s-pfa<=g5S2OE) zE#~(J`H$wHvK-H7Y)5EiyX0LS)>(Or`vvgE5`x_uHt~4`l)#J($ds$l#m@!AcK-m0 z`~Lu6IBdDU8RQ!@cZ{AH`*cGaMy)G~EZPXZ@WmP%?hqb+I|`BRW+RFIz7N~;cCNT6>KLnu$30;=Jk9v9x}#meBsCDA z=GBWYn1~*WSx6L=Oi3udN^%}}(azg4bTJiUZE=Pkx%mSbV)kDlYDikoN)!xRYWn$z zB|Tw1KNyZ;ej2Ia?M!i_o8GW{j$34++j&G)#p@5nR8^J`m$E*UNt;ieCJ4=i0wpV4 z2t-K(8ZmmIZW`V*$(gx&5nS@3>${` z`{qi;P{Gl}VYL=6)#BLODQq~Tj-5o*s!U;!loREBl_mb)h~u6nS8Qo|WaeF{X+BJ& zWGU0cW3d=pLr@%WGHeHZQ_s`|V%kI6(T)gzvM7=H??ci&jdqGQotB=}kVi3c{ig=M z31ePxY;UcM8C@xu2pO3vumZVZLV#Bx*J0MSz3Ua9PmnV?W@;bl%dW+1)sQrX$SSn7 zE?HtGPuBw<#ZaDNQXSYw5;5}Sgu&zeOTp^e%IQ#Lh1x+^tO*vjRm@A)0whxtGY~~3 zGe3T2A|vE4WZS%zwI=>QRn_&KjZdd&8Iier=_{I|vjxHqNw6C;+Cz%#KffHzM0_o` z=Dd`z8RNH2_YI?FC^D8hDp94mTEtRplGioS0LnhgY&h-AHU7B#=2snNegnQwa=l+L z8efgFC9&*w?X>{9P?@bsFzEI^T+UI_{2D41sAatIHS=M!Qp6#A^ex**ZVH zI;{G!>H&$9rCjVNin0)9Kt&1Wc`2D=d6g{-Zt>;^$F(+`_mS{9dw;M>EY-?tSFQz2 z5>~)nH5|H9kTn65Bkjl3bSWv1xH2BVI(@{eSHVUf1+L_Vwz}uzWpeTbS}S!?U6L$w z*J;)354J#MYOl|J48CKvtzBNs``a7;0C(PP2-l>kVF*=yvI_^%tAQG|DXbL9Vt`1^ zjgjrw@Qu>)4qHf}u4zu+a<-GMeMRkDtSFw! z=Xwh%in{B2PD|GUPrd07mcpigA!^FJAtO9O*rg0a#K|ygY<4I!8^+&`sJkzfS-f)p z09;|}tz>6JO!*On!NXa{+FL9kg9=(#SjK1e=g?htp%MMWD z2yJw-G3;;U)QBQ%Nl!4CfppGz-^3Z`;dQL{>I*%;4aSwj2Ih^Xn(JTlEntsmq|Bj8 z2#6Vh@A-2aNLuw>p6){i&6iu#@>z_Y)Bga(?K+xRoI1iqaEi^a(1k>)3xFa>x0cEB zJkQ0PdUAMeb2V4Un|N#3%^LPbyYZOjtqfvT->a^ls(%K_F|@UZtQW^2#PcP<+%BEr z+?Up5qge7L^DbDA`~Lv-9r#%CUBW@`1xUvy69h3aJbk7<(3d(VjJ%)Z$KrJV00sq} zYZNuIRx3^)6obE#Kr*|)9c9u*Q6ma7fSL9-Vma!v69SrU+2R~MOF1R(`Yl1PU@qlK zo=h$~BXwp(WK05UiiLPw0>zUs;#ayyqzoGP`NL1j?Dc$opT=Ihipk%0Zxc;FNRn+M zV@aLP!&WQyG#M%*m=x7(=6Ga?gKKuI&i#va)1!FnS&d%{_N#N>P*Ih>FMvoPRcf5w zi8&cijQWYNB+`)q8TE4+meTb90NZSN14@mtY%Kl!g+$-W%Lg`%zCAV$158!pjTO$ zA6q51$C4)(TgZ0l;PDgmm|`tcIiIOlD)0~rfJG^EdXRJLk|O^A%q9B!LthCjZu3Ir6K+N-JS7)L;_@Fy3A4Pc=IEKDteqzyNIS2ftb7bY~{CFu$U6|B4}2y zHHO;NEN3ii%Yb|I?+g*2dBewE81d#xj_ZnL2W&XU1w7VcF=ParUBV**0oGGCRWdC4 zf=dAk_DkWALb3_<-K$v1Sq)~Eo37_`Hm!TrW{!UqgT~@=L@k(^5IF~`Vq}1#%f*2+ z*kTzYC46JI*2L?(6|I{gLs-1!D7GT4Y4s6c&SX@>$yCR@CaRknr>sf$$=wkGve)UP&NK*@-#MK6{E9JA+<`-WN`SZ2Cx@)m=kV(3n4 zphsPFM4mkN*Hy{G(?zyIt{Kxv=G1bv)bJ zE;AH5;HI)YVOpY^!$pDh_U=IpiGhMXqa2*naXK#l0GC#C2BgqUD-ji``0reWWFh>= zxsS+66vsm%B@>u1LSFcfaWXoP8&)OH zV1f`h1iWqS;QMPBe64WS^vgfE+FmC{>luuLg^ZH6mfB$&hHQwbY!2+10X4*g2g+t= z5tYfh8@6BzZPzi>0hKXhkyU(E+>N9eQ+wz@*GlC|TW(5#m{rCXGQw}%8MUpG6@hL$ z5w>NnVGCd4#-bVgOweQPdq|D;{h$dPgL|-tp-Scnogy187y&i3{{YrL?P*&k&*r>F z2k7E{o~?azA9D3Hv#)*%Qx(?c2}Dobk|87?c!QHa6n>=6aCH%0_#_ZgSu5cG*O8H|=NgNSu6zwxGL`rAAH)?0eHQR~cPum>5N7k&_sY zZH9hd0!@a{JZX}*aBTSZJ$8*0eI`3sR?~5-NJF?hhC#mK8ldLL2v2^#E z%$Q^BRI$FG5jmBvCOZ(@HtH_kpRii-F0+foqcLKuGnuSSR@kHNiLQ0BH7oT{IaeV; z42K9w#6b$Xaq^IjrvZB(M-_t16~L&~NYK@Bc5b7H{G*?z4_uFFA&H5IiS73O`Iq@a zam`f6Y>}&J*?KzEr3aV4m2d~s3|Qbyh=NnvKUh68IemQt7y*S@pwaCp|5NB98CtI zN-3K0^whq*40@Fuhf$agVtI*?kNrf&Y-KavD5q04y{}xSJ84&KEjta1c0(iT{NXh* z3Vie+Lfruh^ukN?mCDJTWiKb4sj>}hpOv=j*m_f9%ay9gSN^YM{8b?j2rY~^zGQpgcnQktt(Itv6sqk?+*D48Mq{q}j1j@`1< zUMh9Gwo57tUV6)Sy@3xbZ6zO9T7EK!l7L#dGzy^Mg)CR|(D9{3% z0}68(M#h;8^bST!0A>^bFf2YW;e2_4%J}yMyi~uKtA?C*K2+soSxLFl=^WKjQ-u=L zOd>S6yETO!qG3Jdpww;EF!;A;b-h>id~I)gZSI?9Q|WF}0~l_A-9KFIavP z5Vdm2>=~bG&zGYcKr%0{rr{#OtI^Rls}>F8(k3{%z-&qO5@);^9ZZTMO~OoHEpa|(=BPZg|L%fDmE+dElGtqbUs+4tG@GEPlKFtO+}+DC{J zn2;N|Zk?-R)1hN`ZObK`38jjqkh5nMi@9urlXB33t|o;HK@kxwe&1r`qCQ~NJWG)J zc-2{76yd38uk1Ehvbs4ei408DU{{2R0QX{3V@z~A! z%7+}UR#i5UsbSOk9FoRaJ(&y!K+MD&jcT4@O^7rXj>yIkKcu zT7hLEK#`B+GG&mF#KjVvRbritt5fl-J2+sZ|)69-_&r zxmXK0Dl-Fd|D`8$HNLXxzg_t6aWJHSXZtresvI>~iyHsu?gP+DN(i^JWO}_)IQ882qK$ zl&sI!TG#McEBgjQUiKRvRhwj4Sx)4mv=YiD2azEu;%NRmzv9|EeNDT^z9RAlUiQ0Q zz&A0J*Xx)yyX2&;IinK0 z4Uf1-UXwHZeSq)2L*27pKiFzi@%A;bjK;Z^uTsmWAew4dR+O^Xy)}To=gj_0lAf>y zGuPlz2f`SPIlC{iZTR&?Xd}r!#R0f!9@7NIHtQOqmQv5d=M=PkSB za_-ZRzVxwK%!@10yAW{$X3Eet)6Wkt2@XL38ZJ&E@U7;118ZVzGGYZiug~ zVy$D@l3~fuLbLSME_5-O>?wdLRP)0-$7Qu)HH_ull;6qtKGshrF(x@($H_ThnStkm zN~I)A4hx@B(zuBK0EmhB9kNW9~L; zj4^!A@-Snhp})v?b={)Q6D_*j&E#`9vw+oMEKUCdm>fSzbex3O|R-yZD zKQS;t$y=@rD5|3nFf4*#VZw9F2*Ar9EbN%wLau7oZ*$9Q*!)#_v-=HPW*Kt9QbXzf zh(^4HppqC!`lp%f9mG1!dTg*VyB0v`-x)k_{~oawF^~AFaou{`91}3 zho!p?$%;lGF5^pH{`A3VYVxI|{LAW?uF$Ay}$nD;HyO)gp+JHaD<@5Q!P~bn^)T zjr!Q=7;WP!tJ|)^HSze&UK)L{#P z0fq6p4Hu%0@k$HM-Vw<}!C{dLB$R+(YFicCxyK^(|WA`?6p_3#>l4Ta8b zb~eP>ZX+2?n~27HVQE0stjQ~FXMP}5#(|7a_=r_h&-WZk9kt{9k*(wL8BNy%fyPyS zS3FrOxinJ?X|Z+9h_N%lC3b{53ML|8Vr()wT9QL?`ge;RZk8IIdz&4KE2=mRe!e>& zRAbUBhGcSVt}0z|5@492wmb9x0CEY2APk-y@l{+Novb);dcF>pVzqlkdk2rKc`S|T z4&-(&*j&P($(^_XIEfAgogho#Fkrt^UIkqg-hSDyjVg$FF11?WXX%o)aK#)%ie^9} z0(uz%1i^n(6DfKZn#*TZ>oh51aW2E9III*4b@cT5cu%HwcP^=y{Du-|7XaUD%(FJzh78dD25L{C;n3*e@=S!>+qD9d58 z*U8ntI2yn=2@W4!tW|;ow8i@31mGZ-W-?qs~`EoO%dn+=q}O_FmaK|I89KNN0bF*!WGN5>_J+wyrlN;K115UNFU-Xoqls9|L9?~n*gTiK(yx_nUt_d2XxGTW;}H}Zl@urn1}sOh zb1P#%jsO7;-_+f?CPtp3|N?mc4DQ9 z=a`>R#Bw)e&+Gdh?}BCl7BejNk&PMaL5zRa$0C@)(x!6VDSJra?*dwhXrAdmWL>=&!|Ob$aA3 zh<&>D5}T(G<(%08p0i>{+O%0VfGL!P?{M$X0`9HVTH_% zTX!FD5DfcFf%hq7#~e#O$Dc3b{8c|E;d0mpRlS(Aj>>kN$|Bx6+kuqM41iWO>9C?3 z64a(5ddILze*XYH?_O2ExmZ_-^=u8I+hJx~4KS)VpRZMs6_LCoVJ8iPA3)1JMcNr9 z5HTMBW9a$EZ}OIV1%mQMD+`e-Sjo)Vp@OGkFu3wnriiiZ9)oO_+4Up@A1dR^)?MZ_pLOt z?7?eRwgIhIBB!d=>sMnRS{N6yOdnXh!IEE43ol_ogt!U-`k0H|8T^o+qY56-Cl})m#TJ|BByf@#DK>>T($Bgq4VAtR8$ikzL`L89u z+Ro+WRbAn=k%;0&OMo%069vIFkuDjD>ahDC$@6hq#@fpHKQehc zR>=~IY@l|1fp7%+7Xk$k~4VBbm#HKO09+W`g!)WC(@vUH3?;tn0#YY397G)olCopt z>V6Q`^FOiS)oQjE9gxRiDo~?`a|rvl>L=XGF9ZYHtBEzKvIHz>z71rJw(2`Kmv(G^ zfsoR5@2A(U-Pv&e0O>Nu-3me{1L(1pyrEOhy^A0RQE4zGKncqy?mMV>i^k90;-{GO z+efm~qx4klWVK5#!es3f4Tu`_D*I6|6@)#NSaNYT7)dx4iv%32Y#upH*w=6aoAM>e za&cj|vhDZcu2&A?y26^~nv%iek3wZtS<|?fl#oM!c(vF|RknO~m8aozRM`!$kjt$P zzeWxu4l7fo*0M+QDC_km!j5~Hb>>$v7rbqjvr|XeGAcqXlIs}Q+VW8g5{ZBY0J=a$ zzd>1Fy;4ITPUsPtA@wv?;DTi`rk8(QA+NCP+w5bnIcTk#x1F%kLrD7lCC_X!IQ#Io zz>3afK>C~sFaYm9HXE7_!%J}6HY~D(3zNN3GjOrWRmiI5LzcSS93R-bL7C45Gcr&` z9~v-~DR}m^ZCb`Uh9~zxOi;>W>Mo63n-A`_*abuaEzI)~%=K>^hXpd29px=w6|8Gl za(Vv%HRmyQ#-2mz(U6>MveZfmaL6}Iy{iFUl`~BzQ?hj<%ZRzx^*vZaA2Hb6W z_Z_tB^szXVt%+R9C9PtZYvZI0!U|-0n4UQJ6}q^3jD;&G%UIgw*)bm3<2DU#K+wN)1*=?IYQUUA7R;sl1hPO0aW>Wl(1_&u80{asRW3d9&%q$OVX3PFzF~WzmrlG4tLZS-#D~6*&(c)z7O_#xAl;E4O`W#GKKE zKq>W>fha{HnGjGMeN4|ketvh^Gy5Hidqxjd@twh@HQv0wGxzLhVd#fI_F0R5@r--K zxqPSupyYXCl{4-58M4~_ysczc^Q~%{?W$mQXy4D=ZeYRR^EkCt`g)$(V2nj^7Fa3Z zNh}hM$XM-LY}sqo)x4*T&qlH~@1|7rbi0eef%^_DV(E-ls8&^A6)spcfCha*0+V4q z>3Q64^NO*(`MXZsZrs;c^jWEM5(KO*kzAdNr&Vtvt0pBTnI2gSKG4%M{xKTYob~S< z?^$@>vRPZJ*quisApBjHW-*?jWnik`T8Qn6R+T}xd2Ab;Trhhdz@%b)ZKz=}$#0GF zl{D-bATB6%yK7z)7coBPdN^fi4xM>)1Qf`Tk#jThPp|na$qUrCpD?m;im8q66xp7JEBHd7i?>*0jovel^%?BSw}tGzE{dVMzc|$x`SM zX-J7oO61~ZW_wRDKNmk!82p=cf!H-F(Mw>@=J2?B^qvC?%rx#SYmJzm3;5kI z0X}5Ik@&6u0M#3(?N6|cOBJnex0%wlnixi0*;c@jo~mrtrxbwXq-U{MkNN)qh~wnz zaIxn4yY7vwYM5FcF$LSPuvepyvUve7MRvmBSg?J$37K~tQ~+Ivo+4xHA5Cet@mTF} z@z|ousaQ2FZK-JDT}D!+IQ&1#H zkZF-S2UKH^`?FlV#vLSOlQDx&@b8E;*W@kvs{a6yDrWH2lWyvEJ%;MB=@-e*x9cl1 zQuUiph-)l$G9rTjI3R$<<{hW>$E$2vh2`qtQd?|eXv?v6eumv?e0?je({y?W3Kvp) z!poui>&bS2D3p9xoAX!k*vtljt7WZ4{QP8s%!V$&DEh?Ze|^Bn`~APZv<%>Ry@Pn?p#rBC1Sqt zb5g>;58}Lzz2gl2V;6!}gRj^oU3m>;+*7`t74F0ok9LxR=(ZvzeXC({`HvwMcAv8O z4ubM4@`sXhFJzs1?WydFev%mW)>^64S5OiW5(3CUl)ytsxaJzPuNiK*HG?<^S)A!297{p%yKLcR>j;n=*D!bYu##F zGwg_qRM<1pXSmPX;4=MI==dAw;_VB3I*j!XNL*>Ur3yn3VX-M=jRnu z&F+-vH?#dsY%*%B>ex*QeVU3PnFdZrFk_3RJ!U$6EpncEln~DY@V>3%+j|xgak#xF z7lOk&3eqy$mFpWFwzgttykn2mTxMgQwjVRh%tQl6iIAA=9!T9be1;px`3&A?R>wOq zU$^Vp#ww-z=9<3e8$vMf(OmlyzrY_5J^uhU6io59hNGz5$I=fdSjuZy4#KQ{zrEzw zsn%q=N+1}D)nLo9M>3Hi+0N{%M*bMpfq7?Z zvy$??JbjI0S+Eq-gckiuUwMj=blkFE{HxTat$w(GOdB3E?djX*%+HMcS6=DoF}hy5 zyhT|RIMZEpQ&0n+SxZ+T0R_HP{DubFR}Jc`Q7l;SSF=1bFB zg<_JL(^-m%vqfOS^|0lQl1pYzP69qTV)c9;tW3*W$>#M8gC&do-qtS{mqajU@`%Vy zKd4!A#PMg>_l|!2#QgP?yP@1a+Vm_w{k=NXNuR{ zL+i)mw9?6ESsc%@TNK>Tszvyea4+MD{JHy%Z105iEC@Oa%r&sovqrlL##+SHp+>mQdt0&V0E8*aLqmA~rRAMCcZn(DJ>HIv*j>Az~SN?~h+$=Yc27eD-( zz7*zl378%jY_G{W77%ha&mfmMa z9~EXl_)FcB#Mp|o@7itz&#)nu#?dt9v&O|}iIRz2CQ2i}9|QMUyX8C}+RAvN!noXp zq^Xsck-3kjj+><=`Eh9P4WfaLC!a*b$2?5Qar0|(zI(?!tY@@a!;AIID79NP>pjsj zGZFPKC$@V}xA6%~PZ7lPJbeAf`Rhy8EL_D@#Aosv+D=N0qg=Yt$67HM3T?7Wn(~5@ z;YAMqIfzXCy;1P3uPEd4aapwX-6vN*L}o1IzP9{BA_$;X(n1z-AD2#B9RC1u%=`rW zj=&g4(Vg*c1g`;M&24c5*o97k^9a8`$V*^pja}(hKpQ#fQc`$C`gjv0eKf zi;lkQlPCjzBU;YT3UbjR7uza}Tr6j)%mJ8@k#(5}iDWcpu{b@;D2zS}K0Bkak67Nw zWwKRo)x-orPp+**b*#$-Fa_$B5H2J0Df||0_}Z2{Ic|SpuG-qRX2e;@S7SPzEQHG9 zZZ*6_`m7NMx@VCC>VJrnI0){swCUF_GR}eelE&gPSrG?ay_4E2=P%n_ep3fX)=6Jp zNP%BaP%vdN9g1d8Y!xs$pWG9)`O{6_F%M@4OJuORl^~~*81+)Jn&&adNSvt3CM3H- zeg0Or%!a9ou9o=aABYDze6j#Ka1Kgqm|DJaD)#{eSi*nH=ttSp?y99TR75 z@DgCwp?dZ>rX!h|D#~Fne=?GZWp#|l5!yKT0E;n~)NI$eK=3&g;uIxD#;LQ@c3Tr# zCIyOpHz`4Wkc>kk@|OPqbJ)s#qRFy(uT*BCKlR3)t$P`Aqzz|)D&`+60uXUxwaScf zb3ci~rhS9N$U{2AJ|%1#ZuMs{IIQ0HYZr1vTNoTh0~wvnp*%qH>rYI@P$-z>-C}>J zfr$I?me110xuV&NTWR>Ha#jgVw}Z&zY%=Coy!V2eE0(=4nd{3aAtBj+kg_0R0*^=a zSAxZ4>*_e1PD66f{Xr&KL7BaZ1 zl#usTc3diCae~Ig%jJA3&6SM6m|6t)k{){zfgEhZ_{YT8Mu>SPrb_`?@-Cy4#MH>) zm6914IVNOO*83e0xt4TdfQBK1$L0VIRlIFi^vb2}m_1`z9BoC-8G{W64j;<;*O6>iUW1Fjp2)I_ZAbCWEv7A8pVUEJg)oL=jtL;> zh%f$^*(%n%`eer2eq$TvYZzE{b+$7!JfP;;1uhH@MC@95{iCdOkH?7P?LE1g+}b=+ z%&6h;U#VTwal_h~w_2S{6E^&iF=+F_hXH5O)4$T$^SW>E zxQ%w0xtTf(qNufDwH(uuPrk?q53a}51an?WJFYqFG4YQ%py}7pPTcUe_DdFH(`Ggs zvuyoE_Bl)(#dXg-@hSzBeT$A`@AEcqKl+-*h+@`Idw&Bi}@NUfGK_`7s*`A^6N zOe+zUmkUr4$-!1gz{CtkL*za&X?`d1WRWuG3Do72gvC5(bHD)aW>Z9)S(! zBZ%gC_z=3@V9~e8uZ7z;3@%)A0OA(Z#^p9!uYedPduWhYVp+_e-3$PT>%os`;kQl5 z7BxxO>iEmcJKg|m8$GtGFA4Oj{{SeI*>!<+m38JNM9$$69D9GSh4x=4exh~^6E#c@ z2T|P+`b4%Bnpd(`>TnWbQihFicUXeqjSB9VtFfnhD#3i^rBemB zJZLuR*TW^%%81uljQyZi0b(S-?++Y69S_tFcU%Q${Ac3d9_hHNtFiR?T(-`n;vx($c$M#!R{V(EIpU32OO@k$( zY<7|{PX4lyq>O;iLj(bw63LPr$sx!V{muePC%?z+J2O~4pJCK(_^#c<$;f4q1)0WA zwP6uj!gw|hv#BUQsO>)fXYNt)hilyF;43R1w)pocZv$m26r``>p3B{2qtvy<&t;k7 zCLlxz;&|il5ikbg6PZ8t%osY30TIOUjmzR~4%t1%Cku>WvW9<^k(j0V{ zm52B7-v>S)(U)st@z;~GJ|wM{1C)k9(s-MeqIl{EaGiThh#2H+SQpHGGxv|4t!y4( zp-le((tb1Cs%sHj-xo6O#oWx}YEtjDRII1TQsFg=P2$Up?lc9I$R11Y&-w7jak$^M$jZZ;N!$L97S%TmeX&;)!} zdaWy06 zc=XlplQ4pbIj`Ln4rY3q<|Zc+^iLe;DqH^mMQQS#mBwVJBnKG$ZNwQGnt0lhLLRpB zCmCmZCxe3LxeT2zp}|(GiNCY?6IZ31Wqx&h4zH4O9mH`X2HNbqZVC!}$P$BrDUsvv zAhLU|ZyClbUp#)C;aI`1BcNrJ>njN^zg0qz*g^sa?lxW3p)oTf)?^49>!ZvW%{IPw z$i8f=j-^$_iOB28zZ&C$%6Nt;xmut`Q_M_))UcCTu0fxlGx&C~`m^C)IME;CSi1-; zhEHXp;l||#4q^(=poz9yG9*K0!)rH*Zz-2j(Ui{Y z^jmAv64GVQTbDAFcTXXC7jexo;Y9UqZ(Fs1 z$1c=y%G$=N2<3873@6(-4rBPg+LaLWpbo~)?h zfuz8jZm%;42U>xNgBUm{_zTM(YQ}7JS>fhX*!Nt<#_In7{bcI&C0(lfVU~WR?eSpI z>VjM~poGL9G7}$vle~T(UfMSczC!XnJKiAIaS>jPTxXB*x631O#D4htjKb3_J1|ZT zRbD%v+93Feg58MPH@zz@m(_e}~ zD7hkrD~Tic4tpnx{FplKYW@Ao8Q|SZHkfu-LDet*S60(b0#B#lQElXMv6gq#tv3tg5d#J}f&7km$p zd`+)4xvh&)@;>RaDb>=;nY<*vxWgd02y*$yp+r4oNSOpbjKIwOq~DUZEX8Hu_nfWl z)+-Z`+VR#d;C0P@`pWm@Ub#*|pfby16V^VNYnBS-Wi$9N0IeL(fw0hmlTD4W)ox9{-Vw?{J?b^X@H|x_=zuMsq$S*hEEbO z4Y(#yqnT#Sp=q&^$Tx+a&788|MYv(dG4-tjvtl^y_Cnz?&oLn%Z=E(8m|OO*Yd%WM z+1fH$YO){c%t9EH7#y(ui=v)gWq)~@I}DJIw>@L}0e{H(Mgs2nTNk|P7}hlSu8MFq z#9|;qADK4w2q_=557QSCQOR|Wo3+jL7I3Hk07v{Av*anqhu=6XfpjD&n|Z8Gy${gNPR74`_nT8KI4gq z{{S8)Bo4W>=KO84=W+S1ef~(zV&vLeUZh6+(oj|P@twA@h>eZbs+vGMgPvR};OAHUoO=ZwFbb^N_rwLEF# zt%D_-z<{?BcyFV29#l&KbyBvLwF0)T3OGzMK%g1KNDm;)%@+mc98xm7JnQ*o$8#XI>ABj=tfBU@p&hVLG%8OEiH=%O z$T*RLo_+)VZ^8alyOy~8Ug?L{Y%akCZuq4+?+a)kb!$gc*N-4*_3h15C?VunL@_Zk z@eh`N>8_INn~tQrx$S?*4t?90e7f%EGHYeW3*oiwLhKmI?6q)U)(Z)9JPed}a<9LB zt^CV&rJWl=*KvC7+tC-BPigIFe#O!qaL@tm{J!9hCLq7Ae*XX?x_^ee%|{WqWwpJZ zTi4AemdEAOgNK$*)+RbJ?KZVcVKGENU_&D$D`-R%%zO(T@8^f?H|*^+qL+y);+rcb zZk3xt{n28gT~L(a6e;{fmYD7N>_``=L(TdA_%4- zZu+~Dqz9nOujMWv2Q!%;Tzpx>>v*h&7N3)=9v3r^w^0mU%Q=XPYHI=wL^-Q8`BP#@ zI)YeD;&}BGeZF$B;Xf(unL4f7e`e0(vbKA%xl2}Xt@@UawCjb`DHmLuAIiX%E}G4q zz?(2($XIs0({}N;LhfT~%4<EV>jq3^oEAvSq+TqjhEJiPnMj;9z`+_IO#CM6><#+19-P{H6ieZ}fus4Pxn7lGD% zd*d8d8qAt;xef1BWBU^%3j(WHu9L7 zu$q|aEH%|?&C7|c+n{>Z&t%L>6Vau`jx@63~ zRjKk8BxzQIu{P#a>xpOD3Qf{n1QEmhtEG-LHL33!b*F3@qoq!!3sS^u?4fn@Wpf|x z>vhON$#Pti#gPL)^Zk6;M-QiBvf-Dlv|{wvWMM7NVfHOk4~)rVRXo9+O4leY2_%e9 ztx(62Dj+%TB2o{#G*r*w0>%FT80gwo5NU){&u>{eby%gshoP>OcCqW9@ZuWinc^hi zre=Ojwu&`ff~UAu@{W5eOA#YbtUoloelEFKIS5+ly^d*z)D2Dxg|Dfyc^|y|uWPtuZ>-n+s?s|#>A&k99?9LiHhRdY4b5ZiFzuDPuP1%7ZdR-chNQNhVf!B(VN|K z%C#^SSC~4u%yweu73d@k4nZ=bnYSZ8`yYzte;F@;p`_|~?Vl*@)(bD=jl?Jb*G2uB zl0Ta83^L`Fp>2j)k9j}~E&d%-{Blt}Wtwmr?y@W1b*(A+8tJZ8@%x4gb8-`p$wJJa zY5I<=$T&ZU>Zw0WO$84nB{A`r5u*5qFMz~Y+9^EeVI zF$nwop?Leu8SmMyY#RP+##x5sthUYE-OS5zDThFmsVYHDiw9j~W+4&^j(d?$V6|mUX+9&*TpkW2$Y9%sU-ncJWmW)R-0OwQU%Mi6osY_x=(f5J0e*5H8rZzY6%* zIkaV{cu!x#>U-r&DXXw$@uq3U((XNuTven=_Rb1OQoqPxq~F8{@*lgmm$5mUv9E5I zb}fqAPEhpXzMmtHR8IyWPJ#>BX2b*xNVpv;0~R0KtbEr>&xE!ucM*4K)timLnwdtH zx{V7jTvyf%f85y$V>X#GbI3_WcrU#BN+A9UrJ>-wX>|2}Bj!Afgv-1|tF=!*Zz@@3 z{{SnQKTd5n%B0{(rn?D2&u7Xf@ADDuE|v~FxBL4H9df1`?zywy_B0HpMC{pvyH&q# z1dy-7dEmX#&%l4hZJPGeh74ze?s)?_Vj@<|nsO~V)S97!7zJIk+QSA2Jz%bZ5D^5y z>(+f;v$*)mx%{f82%jC?BOcIq?01#(%jsQCLAnV66MA9pEs#rKE= z%+Kxh68TSWu*bQfz|ZF&-^C5<$Ua-e4GMd2ji@tWwNtpkdPc3Cudvw9ZnQF1Rg0HnXBqn*X01tU7$!EgNdb!tC>{ths_ULKaq$7h+}yBsvN4*>|_@c5oSFEZJ8K|pN27? zrwoS1cJkgz@?PVa*wb(|+#*?eY-6do#D^f&oUSFHg^aF9JuxL&okjqnBo{QTYs1-W z-L>lab&I(}Wm3l1#xJGC0%xLb+Db+8Z*j{T1WE*iS%{O9h%v4&Mg2nF%2mWv+-U36 zjaEgK^7z1G83Pm2Cax&cGb0_Nmt1FW=+_@^DOevIY}$S`7(EXit1k!%B&ML@nTvv$ zn395;ujoa=bJ*9$6W|hC0Kbf9)-HRJnI@6PZ+U zT+bhGfD;qpjO5`fWcO@kZy_B);cI@$7|KbKlO&!@<{k?jH>Y0jIJChbrzSN}_h#Bi^kk#@s zHDD|+&{DTDI7iB3{IjXztI*bbYgN|vKuhaX#A=xE$s;>Squ9Y$QY%px11%QWk!Uq@ z+XZ(YU@*cv5Y&39qWmwoMk&ad0vNqu>+%EMBLA6+kcnwr4VP8}*!YLW} z-I?*ng>lQjh4G$}%)A|etC80AYZhwNxTMU$K5i+&R=tsk?F8n`oJ4krD251T+wJ*V zbn%tzSj^@-O2i!+wpbJ;8B6y>tS)2N;_8~`5*!qQoI+7C-X=KtJ|7cnK040a%W1j% zJ|iQiy@isEw9KgH?irWR3sm!n7JU)RVTlRoa=8%y0H2*U<@qy9((~ITJ@+kJK(Ln9 z%2BsUu5T@XbV_8{`xX?VXK9Eg1i=_Fpul6Hy}l5?o>z*fzsfmU8lJ_N-PGrx?Ao{) zrsg2y(~kkO4lsPyaH3P$Kp#p{T{`pdHKWaUc0H=TA2C!gMWwIzE7dkzKeg3MVn2zg zZ$f>#;G-r7sbe!XRU8DaJ`&n+n^%=it-bd-mJN3-B-~B|7!!@i=EMiLxqwG6QYV4z z+YS*C;EE&cLo%^O-u;ec&CA8RUV7dF`^qd_#UFE)gN#zy}Daw(Pq{dM_; z2ndXs^FK3Q*5>6;B6%AdV+3~$?c}Erc^#(Tuk)_Fy=Q_8>B2db^snlY=uJq8Phh6I zPhR?rezjVST3R*MGUM^u+(YUM436!Xa{v~w?)SUfzQ3vLmT2l3 z^S6)5uv+XkAwiOyeb#`4oGAcagt%lE0&*Y^mGdJGJ|+0QvsualuWZ2?Oy*qIlgTpu zhwRPk_k<`hc+M%n0*V9J(g>f(i-{@ZQ#_T1+404yYr45^MxmPaan=QQajQWIh^?5M zVJ{h9h>?!hE-kS!9lLQ60a>r*JM(riI*z-P%4F8FO4?+rkAYJnCJhwDkh1Fx6I))0 z`$s)^`91Pik+K--RWklq^UXan?j0VQm9_fmx0gcLxabc`dEsoCR7kSHk8UP97{Q3F zXODcjvoV?|Zr_w_NZ(wOzZq z_4(M}ucOh7Hizytju>$hdQM?@>cb;235fL{0!P+KqYx0fS^SPyW~<~s8Tcy9aRJ|XwIlDvf*#?Ob_w=fcSH0&1_1gspGZgGc$jZsCBI)%eI>h(;6U(SPmv-$vb56$Qi7SJgjt?38YU^AveSX8b?MkXLgfR-~c0<@}oK+5N|lo#7P zpMcf|wx8pSb$sT{m&kzPusBo&l+&#wWESi|^%|-`sER-vv{^W!{dDuKvLtD;W zX6Lo$GZBYR*V)g0m4J^}82CEAxs}%_VD*fSN|vEc{{X)^mAjg< zs~JlomJ5Z}8!$D1tlE`CjEjatxDNsxeC#$ncjK1P@(!e{`(mh&O_ZXYtcz3KoxQYd z%D$SR`$|R-60|$K3_^-~NFmtH?bxk@*WwKzazDFN$*&z$HU`(hywhU4LF$`pODm~< z(kX?*P*c=+j{UxB&)qfYTL!DL*p+(j?Xwm@;O!bCV(V8AQhc0Y4u$ z%~H;H5s|Cp&FdRhg6Y||QH{X@j;s>odo8Y(xg;?pGHU=XA|fa6$G}63hLM%0drHxA zSW1`j_D_hdX-c(97MNjVf@7&m6(%ydK1iIv8T@3U8xjEl9Rn8W z_^lLBI@)CgF%2LL9L0fC8G49c9jna<;e@(r&m zUcxT9WU^Z&aLeRtU@dcpwB#@I3$#0>?ulQi@dRe$GzfA+)A_qAzGAU;m3zgv^O?N1 zw|O|+COYLwW3S0eet`n!lrx_}wMGsZkQLbKz+WNpgT+~#jg21t)aqL??+eH-{=;K2 zQkFi=4Ur=*1TinM+-ndQtv`hJLrlLplbH`SD|oLFNjO?@Yf#y$SNc{}w`I6n8PGCh z_EncHOSa#0B!U<-)QpzIz)VbZ$m(g?EmHE9BS)#1PN+_!UHHlojLO=`EIEB!G}1ss zRpdxLsb^(bGa+1x%ePM}d2X$&HW@jr4icU(Zmbk&V{=(*j%c4GX5y^0w2aXpa|8p} zS?dUnXP=4Gb*|%u>Ouu42#4KU~%nr*rbjU~r z!ZhV?TCJU<#=cP5fROsns;fCea%p9j&u|NubQ;tejwMb}NE}3voJ@1_2Z6)la5!2% za=`hA58}+;+JCxZD>D-d8>+HRKK8MwZ?4lACF$>8ure04%$yOFd=0sH^T^wba)-B^ZoT zCmgyfFKxTAa6R)5kwmOJeqk_zyM+rW%Sjh!FsCXR`lJjg#{;=FD{*;L+o}tgD)pk=F_o-9K*=Mh zgCnu5zL*NIXAMQMX2#szlOdO?CC6?XLc4U~M#(t~ zl;i27Vr1n6GB6z(xz@9#Ue>c;sH|o)V3oy2Qm-LyfXT#z*qaVFU04E2Y#588Az%`* zkRpNM;(74fF?meeycWdf^7l@0S)3jtDUmvrDu7n55XA&rNsyqLeR+vD%#lYQY@SZ? ze~_{}3Fr1b05bS}7Z{5h6}?v~g_9jBCga+;Yh#xxRt%C+L3$p*>8A|V>%OfMlV61!x*07r;)7WX?;>4dq>F^mWXZ6n`dU3up*?gCh z0j~c5-z=vT{FGzVLlg9XIRq17?2oq$krl+rOiaK51U!!I;w)@nG)xuDl~}G%r>k7n zlTOIO$_v<*#pX7s{{ZAh)RHDjOYoWPF4(O-d+Kp@nQs+@pq}4Ecza2?nq08rd45$z zB%fz2GW8LZmu_3yei_E=RlHb-SHf*LaaD$u%hWcd$xWG)o~=9MKT<{i0OL9=&kN#b z?GXVtqqXn5<$Iducf*-nd{;G<- zR-$!E{yeRO)^pjImRH&`)~ml3=rgj*6|&z*aJ4aNl@UDI0W9W97IP77yX5}>7qcZ^ zpOYCw7LR-`t@^n%-c?Ib0Rt(wRi4_6;D5;0xrpPu&lAk!WAetob9PP^rrA@-I=ZVl zcS{Jly>lgI#EAVJg`y#L73oA3lNbUNx?shg$(armyydqtZDtBJXJxF*DQc?~Fz+HR zGFWyUS$?sG9E3RS1kG_$WLXv9iVJ$YRk-N+Mq9a@)}o3kqSb*;F4f_~(=W3uC%v)v z3(Sgb7>rAQCr2G*XO_5ne(kp8b{*3nl;6%MyAgrOt5>jo(Gi)plr+|}7gv>~UdbSH z09oGbc$->zTy3g!BKTFW*^J3opQfJYRAdAzl*CLDlClx?t`KnhF2km7djsy>!(pDB zO*~dbdxPj>$6I6Uy3Ez#1_ZiM>OiQ#NC}KDzg7%~J>&HeoX+8`SEY;8=P$oi8dl+3 zWq|r@dq<+Ej6Sl>#O4#6{{U2(2>W@M7!rVI@b<4mF=rL#EOu*Xvx~d2SfPm@-yj3_ zOK9}e_KLt~-r}iH*~~$Yb;Qh1GcKM;)ahh0boAQxGcLSM42|Yn&D=0h9|X0tv%0{g zVK$GMh~;&o{{Wx)^S;64KOo{X$=UFjw&+zX*{6QFD_^qZGV+)VML1EkVAf3$k#Vdc z1>6UfvSZ=>8rBcUdnQIVe=6(yeoc>LHg;X30u{{8N9t`=ul(qRlhCk;l=l@^R1p6F zUjn%7&*{+@*^TkGqCP+c7*zD*rTH4wp+h1b`*LQPf|BNBB<3U|n2tGvc#jk3wv0M5 z*Zg;&Ym}{|1<0>W1Z)zHKOnC&VUx_yG4&}Pe$pTMACAx5MM1+`^Y*ulNpwOh*3XAU zaXn;25)~K3{{Vb{Mc#PgWAEz{uNoqhBQg4k$`x>1hv+f+l3b)`m=3Yo#VeR79?|_w za~#CXKu~pm66u&6CA8(Re_M~G%#JdiJ$Srmx3q}Q(o|4GB&Il#a~sUeedd1u00d{Z zZ8yS{^3`&h<|`3O(p@$2wQp9(tbkxWzMr_q^#dev90zV@XYq+f+chuKQCz2sDi^nW z>%<*azGEYqvJ4aZ1(!g?t!PILth^*2H z9BRNp@nQ>;m-ktXmJI!(0YV8mZ!BT3z{Ud;^gcgn#_E?0#k&}4*-v$}_7D~0s;xq5S%k@bNt%v- zrH|j)@gK=g*H6ZmpLbo&+}GVuFn9;-7$a3{m*4y=P$&$U}l6Azr`bks=kZ^Q$7q zkoGDc>dm^gw~)itvPTy(8yan5Q3D>;{{XjDp;U+U$G6^N13XMmSom`nv2I#UBu~fw zIo)$wm3S*Np3mS6ay0>>$YVyCy>>6bv)JB9R8a*Vc8@b2t?ByEF+NDQtZkMvIT;IT z*+%{s9}*KY64i`a`Z10QMkIiXf{7_EC*UuY{{S)WSge~dm+_kF5}(=WWO3Gd8u_;fAZ4wUM&QNqBYk`jc|K zbvcs3`~`i5aJ9iq_n9oOEpJ=y#dI*9Bh2pD?0ZW1U8!psj{VyDO+cmp040_s=>i56 zokB5Vm-#9^d=PCq^g3rJdNdYLqf;h!_6=r>m~@oJ}hcFL*_Xd)im6a<#-n%%Mh6%zeHq zCnvk@7_CoM)^2U~aMxzVfQ*J*aWyXuOJ;KBD!os5QwEv_89jZ>i2;J^5ib~vIbCqa zPtrVVh@+X=7M5ie?S-Rf8;B4PMJCz$V`{oqm5Z6&xbA&9Yg6zijI3^yak(by_-$l% zZ0y;d?kXae!H3ecf7=lU zNl3inAY4%({{a60Kr~GY5~_NR9`-$WFsoMlQ!5IWIg<+R@a-cJKbIsW_l89A$IN~$ zjo0^^lpV5fAM;hXj@@%DM=dy`uZI(u7AdUW!;Z>+H>@E?SD15X6?~M zhzwmFZoUm6Pu4tB11lk8`IHKeV?CW3wFm(=Vgwodi{$%yeoxnIFS~I}TQM#R zc?%3_#L|lOSZbPdx*0Kw|mGqu_*b#Ks zVM|GRtCZ7Zu@GQHa!E50gIKH3PS=yXDaUVm_Pq$BKep1vVV3o#qo87DjTF}tD;7KP z50*|}5~3S_1NkgNvJv}7BS*s_#wt?s)6= z153`@J&d+1LeQ)#TH!%H0r64z#{=+8im9|R73LZ_VQjOuZgS| zvQ&4ihaW>8E3RAaZ4ayvo&f<<8c1P56cXS=){-MB=6>@KPZy+R{CkYa<~*6@jnbt` zinEZMXDx80b{I1= z>@a~-nfBzlbOg*m{pXmUh?smf9`=`%*Suhy{>_=TKfc__BQcR>6lDJZ$YgBGB5Vjp z@k>phvRoX?W@qLI@Lsp%%^JSvoz-!4u=cE~%C2NCTFPXy4`fP{T7^I*ro4MZLM9FE zX@Nu$2Mmy5%UJSfkTlbaJGO5%gSBAk4qp*TcuFt0qM1!xT9O5J!(poCEfc{j5GnS3 zjzCw9d~M?WLnD_>%{L#oZLw0qX3i@I_0a<` zi^CCK-;=PJe1)qJ#4K_z9*-$7y=#W^?tEfVXb`fV>#f8Dph+MOd))cjmh9 z2tfxV#Hda=Sx>@;liKj-tYbV);Vo8j<5QXu}BHZ8Q_Vq#(K=i z#gawQfY+P<0H*q8Aa~y%d7oNB>em5wCXLG33fV=UaEPl$Y!9Z-LK9pfRT3fVE|JuO zl@By(gOtqqKgj#01~K)5m72G;tD};~)n({V(9jaa1 zx0>N#^7#~GCjHv=y>*fwx;|>IRuw_g(vm{TNtLUda35v`pH%bLj(^lj^1gd$J9_Fb z*tX1aaf~WT%eba2W+kTrm84`9SxGj*^i137%L+a*-t!LO`iG;G)^QbY;52hjrp?+~ zmQy{I&L^?6is~A}TDp!4?B)?1h`}skBv0VoQxD=yK3!WrZx>T9wJE|F%cWwrq>Ld* z0E|!vylupYbQ7~=8sr%f zw4B5!+v^ZMQ{1^&z)ZEwH;g=C_1Ns6iF}wi>n?$>p3BmHDi|}|7KbQGR7EA%qzz&g zN$^4J5hgd{v7Ub2u{Sp>ahnZt@)uJbh{@{9V6zOU;Xdb$nouig$uN=V`-i97Cj%?_ zs{RF8=HazZCHVtB8%|EQ(%i+(I@qdoG0-HdV?>&!!JCLizqLWH;Q^8p`W!C=y zON#sPbuBFV4?GrG!)AFAnd}gMa-JqW8ms2LFI}40Zx-m=M#->QS*3XGZx8f>=o#!X zWilhsOYbKu;vlE*9~84&-fJG#_ zWPqTYu?Z*!FERNi$$mY?H1lPo=~lsKX3lpvy*Z4gC&2<1mDWFPi4J5SCSWE#ryLML zz$~MD&|(RYU?wpT(OkkzMIt=J(zc%hMM~7_>-nrY8J>W|HFR~W6;KLL zo7|UFMTI4tCQM>wa@ZpX6a1%~xeqd)3nhCkj_{Y3D_UC?(5Zg}q%7#%t}3!7e(v9s zY8zBi6a1k+VeEYI&3VgWyOj)%v4PdLoRw7uGY5}O$8RfqA>A8p%WC6lw8d*&R}SXo zK*&gUA}Qb~wYHt`>D<-dv0yNH*sW^naN(*gSjvc4%sV17R`_*wbtr-n_C&`?04`=Z z;dE@OwT**g+q{ZY?d)~cZ)Lx83yD;!i&WL2Z#F?f`Y42@V-X9M6huc66B@K1s14s7 z-4k`#bj>RbX=%^pGT*i?=5k;i0Ek*W#wbfEgq-(Hj zYt?Ff$~X}z0w82|l*D`mZR^I`lCq!cCu_HJ7e)$iT;6<$zpuzuU_gTxTpGwrRx5#k zSO;*PoJZj?)Urv4R!F>sUn{RX&g5mWuGn@7q%bgW4ViF(Bk_^;lDmYLMnv%}`BAC6 zS{xu&=;%R zV=QJhohc<}=orA6n^LIuF`@ULceFb4Uf7O(oq-+No}q7P*y-EAc`s!wbv%7%Qb-j+ zOg3L&&EzgXASNY0i&^&>`%KJnDD-u$e|Yj8`N(1To=Oo&X2H7sMY57;!18tLPY#o4g?ciDWSDR)%Hqtt`3Ub5%Y1o2g$ zT6@8)VA`*+hJ4kQkd+BO;BBGV1a@(&v1@JqImXC%-Owv z$-8X~W@8hxWfED&)NZ+tv-FgK5=HAp>lLV`XRw=Q6sKAu0$(K(P|sC{H&3apU6j0G zn6rwhldV?=iB&PjQoDSQuvsy-DjDn}-C`n8xD#=Ij6fmU$?lqekWsHT=AnUQ%b&XD zGPe%KL~)tB(Aww(DIlqIN|^ruU2&E`vcx%rGh?X+{8xoFv&$pI+MZuKmaDAMn;DyT zGXA<);&hmx;-yGTGQ%LPJ|U9cXM$mra0KukEb*QK?x&|}dX6%pv4R<^$8~VAn(B1= zp^QJojn+kMDWA$BvnG2%t#rVY{)HYB8D z@5nKim;6Po+KetYeMVyLK5SUaW3|bCMdXzeWP`OZAWTTXOv8u*Vt&&fdHAi4*Zk3# z=QpnS<6qYEI~&g_a>mP?UB78Ic~U=Zs4VO$Oe9vuIc-rd@rmv0mu73YLRKrs*!mPz zkI!V=Y1FD#h^U-3UXEg6Bf!bI-h|12?C9mo@jE2v>*2dwn>XWd`66321 zM3-VUPiU4;-~QP0L|tHc`*I&SXSB;%d=6s;yzX|-A&Q}8*0GjoER&CAf|}`VP>Eu! zfi%Vh)~{(71Nfg|hg?>ZtobKTjh}0;X8gMcaw%i8ITzhtJfB#NY&DrpW3w|O)Bpq( z)1Y!)*#dG~ma%&vjf*$1X7V|~L9lqkkxxK^9%cCUm1lg&M_;2z~TO`&6g-Wa}Kw4 zj+W0MKYv$l2krKVU+GPv&IbcwIdoM#6^hEs6>CUiEMGfBq(Z$g(HhWP&oM0Ke~eu9Z95F~(#TGW zTNIl1mc-z&^%AI{9sd9VYZ2GkYwy7Q{V9o&4p=_Vjv0FFy^Xz%%;hi6D>02=T_>VP z>DN7?c_s`@K=v7lg5&H{GxweWZuZTwR)c5kSR5KK?03|+V$S=R9iWY+166Yo5g*ul zxcr1hCQ3d>w|^FHmoV4^%gyU!cVtyOKAVoLj8RrxE9yNOw)^2@r$GHDE+iurZiWaoS2nyiEFFMb_JJwtTf? zJ-A?UbCJX08(O9UvZeOwMnR)6E(P);$qHg^CraWa;1l?$WPmomtZR6>moDwpGFznD za@~;2=Bv8iMy5e!{G*V@wS+U&Rsa&E!3qR91CCuZoiW<3uZY?WvT(FJ%WZN-0M%rG9Z=lsqPQ0%rk`eb1lI;YS z(|XEE3PhpZMj(WjGbJlp7Qc$sFtoRVV{m(JVQtM5a)~UpU4*PS+w7+!*p%~zE+KW` zA04?hv|wl8I45^HwR1M``u)0C*pFkfdFQ^B7Kiw(VKEbC(Mf(FD_BE2z{JeVd`~QG zZJ%X5o6E9ya5~+3*XU|7ToF_EMv*Fq6_iA7e1KRXTOLpl)qVR(NVe0=7Jkl7Jb@3y zj+5*o7vkEv+|w1dUBxn$tgC|VDv_Gl zc5HQRwzyEJPe=$! zti~i@VT>a=kMV&ryflWLs_Q!CEUI=Z*lJcH`P$@YDRq`JbJr6fe!u%^jz1=l#}XoZ zck)JO2dL>Ah1`}VBIS%eKtZyOm73x~F1WAOfgo))zNh8+5P(N zK845Di#GB{eQ{odtuVA#5;=$@DSv=W%u6O1Ut@0)9z1v|zCqY_9Xf_*Q1O~&?#aElj2YNSs~Pdl7Uq~7t=_ALcxY5{{WcJ%1@0vv4^pz z0FSqM5L(S{-b&c>wY*oN9y3^OX|`J2oko3qye>TE39eVJ zMzFqOXV5&mq_hrx(!S0^<6Sccf}=UKw>eiBz^zujwK0^`3Ymq#QwWOV)<$IHmnShZ zJ*2t#x#QejEJa4`F17UQ%Q7D=$k-LgQizw<8%+NI0ckQC=akySz{dy2+u(V^R*T!!Ok!73X{TBy zO+p5%(KfHClE~-+044PC9K>)k9R0rY@W1-Xu5!()y6(PP1*&{5;wV^IQkZ})(_-X= zDE|O5Igwwnkug7v^T)`gUnuH!w_Lqy`u5xArdP#d>#mN!i!j8evD;}2Nu;Xq08L1V z*lUaWk&a?wH|)Dl>bEXs*>7taJ64a^CfZf)$NjnM@3AaTLV9YL`3|@fW-LA z1*=zAh_Lxgotjn7&8+STYGE$agfZ`aL9(io+5r8DCK&KNI{l!d4#oO#*EDJsHofm_ zznc-w(#mHxy!~X9$uO9j68qk+8CUMk+peiW{b8gS7ykYnLBphV!W+n z`quqn1RX?|Dp1UXha|4Oik0I1Z^)ic)M_bNyB;{x4cGD*+>WVPIDDP;otqLzP?!Y7 zss+F1(pwq;P$(WDzYJ5?bqrQx3FFK@yNuVKcQ1}+YBp>JNMAzK&H1)-F0^ei0`BuR ziHw1ikjDY(-YxTfYZ-GBLo1ls^yX4!W@7U>l-kI+J#*2x`u1wquT*AaK-~^%fDl1d3*7`uok35rok5 z?Xy#Hp^(aK^jF!q&8pGbVnnBbaw|vsV@GHigGfln98AGPz<}}vJa(7lJXqnKcD`$A z$Bj&KaRQ*YHfTwDeakKob&U{WQ)7jU)efWwBQgT={&DjR&|zmh4{HKd89w}`ODAQC zgseDam|9RmD~TAH2G|H0FTBjh-g&e6bs6V{-J5OQ^?V;$xsuBx8($U+K%~FpEyRb%V$Q+47y~Q0Fc0nUD zK9Z8=Wpm9qy}QWNwR&DuyE@)GEtvLI)K4fXN7JfgM$T^6;#STKfw5U~3J6W<{_~Ns*yTK^#0Kd@dV5?kDb1&%mVZo-fhSlg#-ZpO3ZUUX@;jd8~{rUtP+> zS(fr6z^|yuBFefD@%)Ha-~J_TrmOmN*!6n&ZHrLXZfCYwEX}&utaQHOO4OO7&@@Dv zmLX)ZTOgKWAQKWi%>0+*JWu1?*N*YmaJ~)Ra=A^q?Tnirlg_(WqI4vsujyP{1qv$V zSs!YI1uP!3+mDXEG5tRIR<=&=okz>Ltsbx^UPO0`Jl9HEOTf|jAP>6zp> z1}p9N=imj}bX+bO)v%sx@$Ln9n*}uW{o`Fg7mHZ8pk%I6$tnt+yeq8f_*=D&pO?1Bwk=w%FiRLBmT@F2Z+IoSv>aFIuW+M| zyGIlHmCm~3mS0ttwWeV#*|7qDpR&m>>L>H-`TM&;L=cdd-{Mx&;O{4C&^qRKV8HMA zi*gIC8LIg@&97mS$UdSM&a#}zXo!cZE7;_h5+;79fgHbt^^X;vO}U>h5zpKEkD7FiyFKCB)hp(7KOQd=eUhAB#X}@m#P{N1)!PrJCtQHw z!c@bC4E>5`B1w64Pdqoq+Fk%{YWoI9T09jJw?hq+qm+F{O<)!kcnAHGQX)lP@gb7s za}gxJfWsF2l$$?F8ds4V079v~{{T^}P#)bN_>^8KWX}`N5zjn-aTCYM{ebcgy_d1I zRo8c2cMpZKSXy}K*jbij-yyk?fX{-xL2=7BW)@< zsuJrr)LxnOS5$hIGQj3!jCqlkbH!?Zu+_b|{-v{6T^k+r(T2veV#H#Tk}zZ(To^@V zl&nrBKqr}D1h#pJTuRVP)fPBm+xYZx1?Tt+KnQftCJ6I&i&Vz7t- zn-WLdfomvYgu6Robbr%Em7xyQuMOxlausflJ@tQVsGHxoH|6z3!{BQ0rMrT9p%FWsox3^?tW5g(TL>-JZZRAUHsA$q>l6 z=5pS1(QaU_W^))X9a6B1c*W(_i>GxKr=+=ST4{=bR!(bm1Ra8cV`NlpiJ18IuN&lY zI@9WS_Z8$9>`7ws3C~*0-NjI5NJqcFtN$H} z+IFU{GQBK*M&gvCwh}d27Ptli>ccCt86`~n69k}TPr&{=x4H&z_pcdgwznOZCy>2k z{co?!h-(Fx2emeA*=5^5ahNh#M2`amOFq20c@CR@OL#hXTKOFk^#OQZZ`Lu?vktFO zqSEa5GQ+Pe_D-+yb1a`@;5~!D4nG}v%UiqRd=9*RD%y6YV(Agq&r!+K#!_ZRTEjOZ zA(3@9E%IbjCXq9VV<5Y8)K zb&{Ehj~P!td7l%ivtZ9^S8?1?=*)&m$}y4j1=|h^nDvil$NQxNSIivnKXN49 zUjvErPX7Qp^?xI4kHqUb);kd!4gHN-5VT^(*b}c(xYnt8OKO9(SO(XIPj2iWk&vTg zGWy4k+h)eip2Aq(b7)mW>UyqUVX>F0iHVfcn$+yEiCD}@F_HqmVITLv#H(c&=1jGO zXY%^nb)u>5ZVx%Qc@o~eR|v>QQE*hb7A)KU0NEXt0M9{zTF80$@ulGFX&8Hyu{H9U zOa;pZ=k0h?oDR8YiX=Vuiyn}&L?R;`tld&zVj;O#PY_7@UND!SFG>3eXCQ>U&hu&7mnL;n<}#~)g6fC5#f8$bj7HT-*$*P;GI=@_E>}3ekj*NMlAvEsarQ*1bh%== zQb&m>DF~SWQLjt&Z+izxmFOW_&E!RzxGdxqT;Pu7U{VONLJ|5h4Tk`DDQ2vaHxo zRoJF+`tC>>lEqH5f!>mvK>j>OC_s9dMl~0NSG`5(XeDZb%?|xO4thvGxetx zFy%mPwh{S2CMYNvaK3tvQD59=pS1i4U2SLe8?0rMlgN0pSAI+^$EKal&;tyn6u~lS zR4Q@%dwP#ya?H!}o<@G+FF9W{?wGrc!|h%Xxv$5q&z4x+u`^cq@!D92FxD*|NTPX> zX!Fd6^*;ve87dapZyn)}8f-Lf)KoIWmdRrWPM2cs#j3$Cgv5_tsWgjAndrG0<^*oO zJjk;nUYC)4-+OU<)%MrbSAbJd%St+!SE@_6ePVjehOkN_f`SN{_!~A)Gi(?4He{8h z=XIJ(z|_Ufyp4=J-eTEh=ObRL?k*b)5m#0e7ae(pmuUH;FZzY6<9#aT*Q|b#LK6A1f!F{p3!vwlHt#f9+(=liy~OzVb2bE@WKYu#*g zu*O0@rq@7R0@vtRCzie>puW%;>iIv&IQ$JvP8&$_J`)O%6J_>z`qO!76r8u0a@!1J zO^)I#pkSLZ-XnQdn~$pl)-h0mLL4b{{T*4BP#t+>Gl;$X6NN@UTf>$-EK}{>==!NQJdQcdRCj}ad03>8fF8J+{%`41e=_3>&l zc>Tu7HzijJmC3^mdbWvUHuglvWz1Q#PAiW*%yKC%XZkLF0nBDo#Fz{>`ildqY&gKQ zwPcr@si$O$dEyJ(Hwh-gS-}_ioc{oq^~C%h{{Svwvr@e7H&olRfi@zvhAU9Wtqoe| z@Fp8l3K=0NpRvfvelyP#5S^}gZ^t;Tr!#Ax+VP53*wdwI-OJ!H!8Vpb~<+i)yk z8h+)#EDNbbb%CUYX1OlZkgl!4UmXNFm7+ehr&*0frQZ$pSLr_#KeDJequQe zxhN#wM%7YOdWfmr?LbO2w;f?xlCEV8L>Fj|W9M_&vAW}zShtJ#_&6q4 z#_P-5@{fB9r+$MrlP#H;{s>OwqM4K`p3y_vg zL&9U1$ltTA?l@?$`kt2K^zR?g%6;HU0v~F`l>n8@498Q6iHM10@yEcWqs)J%tet9D ztOEQ*^{3Q|tl2MPF{2_pPo-7N8Fi68$cM5(rhfgVd6`KqpTS$A%Mn^Ay$Y9CvdlI% z{=1CypJ6yBEo{AL3$N$aQnH9I$|8Pdt*m)-!uk4P`#kH?!UEH)hKsXO}?O^b;r<+Un0!l@T% zo_QA^_a4A5cm?zFKY{#RS1(6q-*%jV+)Eu*8s5yMo$&hOS(HFf22 zBFXq~9pufgY@}G-Ct;me2OJ(cfo8GR8b{tgne44dVP~(J{uBYvzlFx^Nk7S8&!6og3hY=xPtT~iV3{<{AFWyH@M z{LB9UQ!y>eS*KasCU)eUoyxinmxaitj6m@#YsJ>Wyl^A`0C9sn$3OG-1xD(=M%wMD z?!RHkWat8$jkK>NWAPkAxfZb^D|6KyU}8Yvd+;zrAMl}n#0tU6hsYY%T?c8)SRD+N zOBAnIITPUCciZ$A4WlwH6$*&H^Yp zt10O`%<=FRw9Sw7S&Q5YNZB-8Udgo4IIfzO^#jO&}=;~W2 z_`beE=>Gt<$)^uio;y7&o)|CM@`wW<5Nn~ZT|qSu*F`kxrospE zo0rH=%Y?U8nOiwRy?K^E!pJpkddt#%3dD&n1Bn6th(=%)ak+8K>^U7{N7J%eDsv_| zN|_Ca?(6PTrBZ3CT%y{-PxJ{{T-q-YX4m-R*~Bw`W+gEXm`tm1$+EzY^h)Wsyy! zN%fR=XGv$`>dgp<=raYbcq7SrhHcB&cHJ{2igOAEyYW}5S7h@ND+Qg?6i;8U`Wakj zkL&u6fpaZO$ryyx#Rc3RN`(X{q#LZAVF@A_AQ-Cn2%b6SK~wjhIQx8G*>&$CJ0#tP zj;N$&oC}NB@ENb=up{;nv0mB|w}|wCfnmc2OYmrOGx9leI{gm#;yj_^Tm~{+@?A2- zmS)=7BP3tVT8)b?kF;~z7GXTZ$wYiHSA5qtEK#19;_OCfuEB;inC;sln--)bOQd7{ zM|fr?CQrITB0lpm6Wica5#-FKw#sicYflta~vvalm$mv7{%DsKibXE8Gp zjkwa;&dr+sP_3QP@s?{B?ikHSJyynCP(d=qGGBR+gvs^glN?OU%*y`UDC2GhQ#o%j z`f~9`@o`Z^ss81ZvyscVl89P_DcoJTiGzvzC6);j!B6q=$p(ts-tkG;JC#EblH%L{Y9KiBd3%U7x-U9#d@ z$#a$r{{FivviGlvnUSKSSNsVNBl0(QK=BUQM`Ede2eIcog^nVLUUMIlzmvt=WOr9( zqt}kcj4&cQdo9mA4`L|e=G%TT@bKVkw_o$6{4Fc2`l@;^H)Y5LJ97S|%qWdBCQ@I1 z7K;6bVn`+>p8?Kr-W=X@avnq6vp!thYTo?xie$ysMTNvqt(4qi22m5odp2NysSpqA z1Q`J>G!AEi8LW#!iAt3$SQ}QuOx|u@iG>FXU7GjJH7XFUNLJ>ZheIMJ zM8Y6rt_vsPEbel?C(L^nlrVW*V+A!eyzTt$o9uahaJS5pJ;x(4#8N63QVA*?_ik77@3g!eWm)QCktc9&dPWa?tOK(EPZ?Rww%UM z_3)E%6JRgQSupol6CdOWrZvJ!AN;c)kHBuJjoz_1hip}JoUZYYdkMGmjcn7f>a+Nf zy9`ZJZ3xd3)UC`HCDmL+#F@f*Ps2G1NU`IbzAtAQh4oN()|?(M6>4N*T|uh~>t{c1 zwd>h@{{T}n1qJeTo4KyzsIrHXHVua-cD>cj5cSt;}_Z@Ma+we zV0kT**7Xg|^|rmg$eRsRP(-O2n;ClorkT$zHZH~LMwspK{m5*JQ&(undO$XX)!`ai> zWr7^0CSYTqiX%Q8XYYa3fvk8Z1uymhVD#L6XyF)gka?*Sw|a4720_K!)i z#0)!B@Q$~8A44;s<1={dWvd@p{JzPuUC712B9#-ui%gA$!5sFoNa?#@#`#~z8dd^QyA8pRs=Hn?UA@2Uip^YWiX-wRC95dpjeV!ICsy7y9K$gCCyYE9 zv$tbrTODTBa~5I@CQD3a9cIZWo+mNLbgXD+F%U!dn5o*-w7p*TBV5hw``&jsj)Nhr ztG>cO!y}_rj;@eGC;WyOV7|YP^3V4pJhQ6XW^Yn%@x11B39qrxoOP>v7+cKM>`b1p za=EOJ#7D5iS%T&ur|ld9mf@W84yMD}_d>vwU#;%BuI*<1Y;)EDa}y$p%QW1v1J))< z(k3ebA&vxrts7R)zhZFNTwYUO&@mK%3k{q-T$ZHPF3{T5dRt-&C;S?#W~h>g3umlEg7K?LgjCo9k|fN_=Z;p!k0Fd@j84V;)@#9oc1$w@?{Klc{sVWZQG*p6s3_6Br{Rfh#v_mVm{DpY4p9hCq63m$0OcNr4a}Gam|T z{{X0)zD=|hyf0$z$#0?93Rrw#VzJ9#*klhQnTA7R4mg;pQN_$mz{fvn>pW?V{hD$f zSe?r)n5d=fRARr;pbCh_AE9A&7nei z`rumIwxHPWSV()iF0U#9F&KqRO%KOEWCS`BUEr|inZ(Y$-d1?1|Fjknslr7y0uBb7yGW2IOb(ve$gcHKGB#7 z%wqOo46rLZZcO`BhYMBEq?KIU7+3W&k(PZ;mPaE3sOCAYY5ppyerI9E?ejvYTZSws zW!0CGaKsry-El;)XV|8C)>|fKVhisdI_dr|(Qt?442J&zv1cETskbBAz)@GwU7^xIm{$%VZT13!z>Je7A6UWzp4_+F@s@p>Q?0Ll zt%%pcigFh)wCy>#-=>I$NyXMr)+}Z^5S3C$#E3`)%zVMR9sLdXtk!1s^Is^Y+L~y= zXAdYjDzaVOQ7NvGv?a>ni{&1$V&G)@u#4hF4YOIv83w`S&9?!frpqts*xXLSSqzqZ zmdJvv0bB@{6D>+LkGGA*Z6*K!2hT2#o0Szols=t_zE%sy6` z8UFyX$)AWDH;p%(_Agb(U|Y8M-w3Uakz(1E&79o_xfXw&(5@RSk>(Hi7IOy^Ejj*- z;eSuM6>WCH?`&JfKP`v1RoN*{Y!zOmzi`L1=|O)==_H&nFLK&uz9f!Mw@^vQX&yOF ze=)iRLDIpj!Dvdkp1R5{1b@swi741S@K_#v~BwVtm9Er5rSai%KbIoQJW6j*rIL& zIb$Ld!us|ZIF8*q4Dz1sLcZ3QX}E3saZV-n@j1Gsv0bGN7p-kgHpd!!LN7n#&sJ-)VcWFPOEK0tbxomwkMG}T8t1poJ15v7sGxy@J@|1GC1vbV)6zHC9RX9 z^_*7WZ3|^%j`d#TF@~6kUp=NqIAEMXL<|?eFIU03=F6Wo`ESS@Ci#B-Wx2JixN&&) znz@y5nxzK-9p(fH#{&>jF%vWMRef(C;L7&%S{_<4ctzVK8RJbQD>xqN3n(H0$VBlX z1QM&$#6(NyW4uz!E>jmdu~|FYn0JsQ`!)>+NJr$H^T%kH-~qIsA(9J0_2uTK#!@Xl4BN zPbVk{S%zA}tc^nvgYH1V9w8Z4F0a$zw1SG7F~u!&;4O_R)IIBFmU!MKvy4 zCH*6&3SbnPmLu&RxG{*B3buCt0ERT3BHKKDtNIrTT{=gnvD7Lt(#b+oV!}x^j(x(D}aAs~x$fUleE2Sy0K*kZWO#6o=_hdxL zM!j#wI!0H?XshIGmQxRz)@lr6>c3&hKwZe36sZWv6{2OHsWuq^8fX2`Ngz1u@`Zr$ zcZ#qKy@JAP4m?}T+^UrGSq`svVu_Pr*nyruA(Cg_B7eE!XW&Wp4-R>2dAChIQ^$th zk-oaUV5@OjH;OPREJmm091d3*jwfQVzeK!+ zHoi;;ipdePN}{E#i1#gOnC`F+OM#Lb8+?BmOtv3K*W0z_X+?VrtA)FM`Y|!Yl(O^2 z#3&a6A8uI&$>c@`1dKniz8Rd}%8PjoX*jy|eVF!SGM4P+GFLATS(Xs0!m9$RNiiz{ zH!W-?@e?YNkXpqSYYU&VnO0X%-*-PGvN88c(x4|Fl#1&pn&8=gHHNxaJQCL?R8=gQ zCd7RFg!sb?mbqH4fwR@4rQ%gwZ(!=du9de$drh~ot@=r5|Z_Z%(|GZa3BjWU584&1TzuDdNn7`=^NFwmP;_!YP0_D!OO zS$DdO^jS})#2NOP>*(Nli2F?az5@O`Bl>&JZh4Dat#aEKSV~pav}>-%QX2;Qe)W){ zHS2o%k|GYv&LfH7=ZTMpykPy5vKG8ertP1!Cks+CTHKb~8K`z3nd$@$Rl{qOYOsYw zFwq!U)+veYGx24cG7o;r(AIoMpiW5@adOdhJB$Q^mi9?~D(J(>e6}E@lCb{(9#}E` zL%i*h&1{zjv}t}m)*gq=n59Qq8aG^)1i|qNYh3{J$qY-Fo?rmhxQGTwQGZprOop#S z@L3Nxvn#ddaf(i77If?5DjpqE9_h$U7zUD=61A;y40%Il6g*79O$%kXt%Ez37GiPx zzmHcp?&ZS!Yi4uE=n{SL=~G%1RZ!fSTVA%b-R*1EWh3x1d{c&3jI%yN!fVy++S0C;AwkpDY=F(seTNjdl4C%u$PW8MY%_#|;cl zIep=iEo)RYy|$W7E@eX#02~i8$mBpS(dM{f>gwKNek&1#O<#UL1Rqar1qVM=mRQ5# z+E!3u5V-`}u?iC4jLLX`^_1M{@7XGvo^N&6u^P=6m?oz3)lsJV@*^I=!qJceg-3W6 zKFfJyKR$Z>&3KZ&+ls>@##$~KD`xFvEMZuy({li#l%-`i0cdPK!Pl;6HVG&SWs8nT z7zZskd=Gm{*F{;%$i&bm$(2;?Eun>RL3SdsQri;dNf%->8v;ag{s$8=ActeZo)p4i zmvbBBeRnIB$&{VVM$^KsBQC*QOvvLgauHFZ5k9*;8ZjmL#Qo+RwQn)&S#%Z?Q}RU} zC;cxXt5{vfIfuB)V2^r)VyKphbG7&Qa^UWN`>8+<%Ud;ZO@%W6Ebwco= zi`47oLm>Gt#sc+Vp0IN~irowCF+9vq-ex{b+;rQyKlIj-<3wrMydFd@(W#BfSf!Z5 z*@cS6<)KI&d{D$hNrB9py9jbUr>HUcFJjaiinT`}<~%m7UAX>$}>qTBm5u5XEWLM1B58SqmTOW?dlZ~a@>9W@4ooTL3gu*C!CV44n z43`sI*gQkG247vyTce83S*2b1T#X!VV&g2_##RyZ!dl^N5s)V(fV#*Lo*Bp9Vqhh? zk2v_ohOL~Sd$vOy`Z!?5RL7-Ok&wPk^(20};efoW$8%{_S3zeh@)XbOePN(X7gkPVkR@xzY`$&R7YHQkhK~*u7_?D zkB4m&kiy%qn0>jL{{T%uNWFl`32mZxUa=iksrAPt$1B?hjOuv}8y-_ogxT9se-)1$ zzAD}!P`q&~>FyncsAX#W@3h=AGd{o$B&1>iPN$tWosT6`QQR@w^?com=SXV4^^n9e zW@cfwQ&blu5)tf}Ho6!m*+V~&FJ_04O$#@&8HQxsH>i-JrDMzE7RoJ{iGN&XAUi40 zwZM;)>s zc9I}D{J-Z9FNQ%BFj=fSvAactU~oHj>`K7<5h{^Mm1^%MK|~WAFmEM&xWRLZUW#BtcV)I5#lhFaIFlq&si zA8bg&;%Qd`o|J+DRe0Fw366}lJS>{tl2Q>b7JT#I?;7fDSB-RR=C6kk02xl1YYmMn zOyB^H%%Ww}E8s+eT2tC)Is1GB{Qd7DZaFLt&5guv`kjiITDY1S{Fa`SwUykaSAqHj zD9*<+`Iv`2QOOL948+gPIg4~Mx9aP@dfmLg>!;uMD7i#%*u15$<6oyU}DhxoM_x;PB zz2jYf0ET2M_-|*}vsai(xu4IK0?0YXGHz<0YTtVE%mGKBLSkelCS*ju1n*F=`rbI# z@!mJ^$B`~b&{ST_WO8?K*rmec!Wk4*Wp->75D@m2fX`W8- z0w*C6{r>>JfdSpeTk-A8W-|rg>}?xXDy*{&t&7ICrMzfKwM;f0gR@xu zkYLrhvkqALeX>kMjk`wKu}K;usp*+v$2e>Yt}5mTX6vk2iwv{fR=A&F$rK;>K@@d} zh=_n1ENnFqlh5Tg-8I{8U8uj7t%=3n%-hBU$5mq3b=)8o(hw>lZ>&tjm|S*_B%5XJ z(vR;rUmN7=Qr5DHb*zO&VV24mQJElUER|rHAld_6r+NkbIGq!DjO?z@1AQi>jB| zq?whd)Nr{2PXH7Ae&GNf3Sgo+Wv$^YRoM)G>{$%@*LlSJPEFSnE+ry)x0ezGfh|iC zg;o)W205VK3L$0iCb*sBcJmhbK1R#<8xxtfs)d8czhZq_cz~$(!rzfp%G+h8PZa_B z;GrV+k6|7RjqH8_^Y%o))^xJ?%|A0!8pTNJ+YOu@0iq4;)ZBTck06MKj2|lX9FdGf zcjkeyYCau2OEn#%A(^I0K>(pZUcXSqqQ1#-w(Ccy(zhnKG@BFDia+gjFq4Aj3S;8t zw}`=R84}Poe-=}*pTZLV0M$13OYf~)DZxQjY7)t@U{v@d*mx4elqRK_aNg1go)Exn z`kqT9-ER}EX;~f3BV1dxT$=`_k70H;&4yHqind0QNml7@uXjWo54s+M5nKMS~z zBVS#5w?GzQFxIeI=7BG`8pMF5f5;IHNWo;$^z0hx+VZE2^b9#rWn?cMigT2CL}QQC zVCt7&5^Nib7$pk|0#uQJH5aj80&f2RD(vyGayTlzrPyZs(E8Vs2MvUtX$b{-DEFNkQcDqcIV3ssy^ln#(YQ7~&l1nEwF0nC=LH zsOP4pOJlQxUc<9z8VCEJQho4#QH2VsmL>Nho0P8N9nQS{g^m15WTW=xyX0+Fg?)Wm zN9@)$`2}OI;V6|kQHtgcZdXQ7p+RCh!%b^^b$J&9A@MYB>811^AtF}_{_^H`D zMMAo=Z$*$`W9=d5(UuqVAZ+y!3)a#wgK4S;8EoD0ZS0D19zXKcx?pQ%yH|DW?du{m zNmCslB&e{XuWKRbBI3*>!6=l>?XKt?U$l(spb2`j25z zm?sKL+Y$Hw0J@VY?En)iSNuQaJ%=Xkj>QdET>br3E-s#_i8p0lVanLEs4XdskdOv8rIi`cO9A2`?IIr0)e-C; zaZI+q$X-_Qt1K&d@zoYDn-(cq4X~5-ja+iBX{8pLkGHgBZR)|`R+NF{E!aKaY&8J;G{g3r8i@-Mm2cPkiQ^t@Zod2b+D z{9P6vKLvMN#iIT|nFPSDgs!=rp=k(|SVIUGGYu9*gvY~H^WI_KaR)~+g0rMyvkmI! zQLI}-u2(TG^FL2w5U7zTT*xWh!sm{%UvHjwj~94$mfIdY!uc)Q(lXg9xWwFb7UL0I z*CyL<$g0eV#E2BsuHj%ZSWouP3xhBrfbqwi7&`uup!qvLguj`#ytc`#+P71cUj@y! z5nT#q6(x%rv0QrC7C-^ESNV)R;QU#j;wL-ey@xmC91AWi^Jv26c9W%g*sYLuA+QnZ zw$+#mS7~Oz={$CiRENRYeFH5=WVw2V`E_NiDGg1%n=NxQgS^{MD-W)DYCeY47Xpzo zR}{&DXX0OBC&u~494r~&N`xog{oN;?yWQKc$$aCvp*8FAT zy-f?JrRzIxQf|6eYR0{HDT%jUe;%y_Wf?U}AbFVev^nSO9LEx`SI9dSwXX&PH~y+- zHkFhG#%F3jTepUA^)c;wz=U>Kn6Yn#oWj_-Z>lDFqGL8Y8RDad$z?FO{hH-ptW8zZ zm%Ac`2}5s{>oYZ0wDU6Np-v979;rAW5d~{`9Hu2J!s=TF(ilkVo%+)+rp;dLNu*xdo;^?QUtbG-=u#N>L6F*L+!F_CuFiYS` zcOMXLs>EZcKM{J2jR_ZKEFzcJ6JUFT>_rDzm$XD+mZ& zRo-#?ElUu(xI=B6elc~-I2$tfc&@vd#FH0h(qVE?xRQuDD>LyscJ9#6c>tBN>q>Ap z4_^-hjj3$Zz>lmd%x|&ax%^WfS1^1-A#?nEG3;9gu~!aH)GyGhmcpE~1Bzxd_UW+V zSP4~qM?f1ZH~`_$0zm?zY!`KpAv9Nl{88jwKFMvKKGbno93D=^>aN$Qqa~R)u0pjO zVlTJY5-l|wOaM+lm2=)Zkw;ByO1a@3iiVG}=$f8Qp-)P zE>EXOfIo!`2bkI-{sRZ@$mMoB?Zp1sYa;p=5sj(>2KH09%QW1flv^-rm;fy$K#|7i? zo;OxTYYJ7fgN~PWDWiEVK-ws0Fm=G%Oa!f=>;siY3L6&jfc?gnFBgd3a`^3<&DsNo zv0)j0hM0SywBD!@LHlJb{L?YVZl1-Dz^Uq*-5omD(rgZ~i~9D$s%%&zW-%oYP(rJL zSd^tOyH5;(g%t7I)LcPj+;Uq!iYDbPY0)0Jw_7&{gudh z?^{a()!a2KhDWWOrdI8TSIzw?M5bOTTv$RL=_pM^a^4Cjq9f9AByk%0HFwk8e1+p2 z?k`(Ps-n3ant5VsMQ}^{_X}X)MBpGQB|?awxkC%>3%KtjYlrIGscx99qcL{FYz{_% z*~r$V2NJsJ#?Y#^+jOlX3zslbEP_5*Fl00R7Bk*Rk$oLoX3ApZ{-m;*Y%^S^@e}S0 zZ7?)brw~w3#(TS;Q6Tv2 zQP<(Two@x-Uz)GRWU@IMPF6b_t&d@q*D!%lb?=)jdQbHrvtO)Jz=1QP|=;6#oEyc$oMUjE#NBByZ#`BVM41 zf;CqKX0HIlIOa-LHPy^EW+S8KB0k*2{gXCt57=hJGo_O(Y!ZXWW$fgPo)s&wpahnE zB~)+NkS>g_u^5i*Xp{oxdRy_{!-^5b;ykCm{_~lZ)x%=wXBSxlMm?DL30p}b5IxR& zPvIO#30}=T1AlIpR z2gM3Yj^1kxhRNdrbdia@acH}b01z0iz>+V#fI$falFlMJ%>DjA)11Tac#VHo*6vO2!-8_g`1R_)b4_I!1s z#a^^5bXTetap2bi(6tbaV`zwgvPKysb0ENtp4WuwWJ@6o%-NNy)Gu<$(?)MOZKwPI zv85JUWSHR)1vN3&STpR8ypWF?=6s)q@rFAIk30^ywC3!E5V5gTc{cV`@@x@`Q6&p7 zK{&^!BiE}+Vn~W)>U@*q4YPE@URe&!s1ILZ8A|$)8nL#7sc)*BJJQ0^UyYa(C^LhQZ;Z$zbyOUMO)&%TZ`^ zjBzX5dYxr1CT*M)z(}oZUlrRk25ngUFMqb&^9N_PSO@+|t_UnIHXp)H%cp694 z&rr2X8IVlOg@0Jqyi?*eMz^zh5~degx{|Qe)yS_Nfdz9GM%w|iZT|p}dxY6yV8os= z5zt0CYWaT~j*FkmYM4veaM>coCZ4T^YZpq7t)W$Kx%gF|u}h7IVmWCXNfe0uo7KqU z{HmD2_~*v?9Fi!pEF8{lE^_JQ)zy{hO6kyr1gVoG*k3^~m5;Nl3VuCf_AfD7$433K zXn5THj5U^_HMShnAZglLMP8AkUJ4Xm(*=nNKM!kpF2L`y=Z@X*CI{FeR z<#m=d)D>x^WPa9iF+4?R?#Y7YbZXg6gT~rkV-dgkAI7@m;xl<$Srd(aA$8w5Q-cU)oTwynEk!QyY^ReY-1{i_0+hP1*|c13lpTJ^0W zsfCdU41t*!Y2ZQr#v?hL)*oXtxLKp7W0&;`su)42S89wx`mssPuD>4A-Pw!sACS&jadVf~u4pR~mM50cz>{d&?WXIG|b^#aRr_3Y z2eBECsDL1gpT<5=(}eKAqakxQr)xh*6vDvd?pK?=(0ss>;lyN8e}sTU%*l{MM3>v* z6}#AM7CR}n;`PiXChMB)MO#$xHJBLdCcuPaDy$T7XCW?;D-IYnE2NBjB|Sa_%PXs3 zu4k`Cz2#jco3#rJRUG9cjsE~emCD}7y3Lo^WY-cJ_0?Dh*ie>r5bRBt%ogF|4Vw`b z&ne`s!)wXog2rnJD99DGJSWyGcvKWutzBeiAtYj<9_JkMGbQI_)qGQ}s|)_Mud88c zdll%feFwAVEf_&qw*n+VO|N9j7;Ta`>{BINhmVqr8U1T_+Vc3XAJWU`F}WW3YZWn7 z?b*h;@hcmYE#$3wg46wyr_H7^Lb2LDpk&D}f#Yex;rxV}+ny6k{i9UID$_EVnwV9Z zZ1iCRsj=4>rrxOpqBgo@YK%b&#oREyZ2dQ8Gdi}>uw-v|>miSwg7Rq7Mn^gl+;s*} zs>&4}LIzRX2xUe=KEZ-t0!j6JJ-lZ3UEf^)07p{RwJkSCRT#-FF4}!_cl$tH8Hvl5x)KAvmC}gu&Q+eqO1c;}M8a zl$ziR7GnX0)F|8k09#@FQLj|K)=Mw$n2`GWg~WRc=|S^p^VWIm)iNN?R~hUPlXy$4CJ5TeBJQ)9DBlR|D!`r(T+8`xj%0vZ7|e!a6l{1L z3;|?@3Vx2aNQi}#51z#$M03~Y(6;r@+$6Ye9X03J;vsTaX5o7G|UrgU& zdn2hfz>sn*Q4Ghyr?}$uLRXG$)T@@s)_WOC5s8B7D>GH9$Uc) z4^V*@jQow`dsNr3>)I1Bmk96GR8-4lF?jmIfEL)wNZeCdNnOec7@|_hmjl>m_~<%* zw){RZ7`*S=}3oV$Q#w}_}50T&m{SGPtRsH3&4`9b}ZG) zSo$#to<5wcn`?ti#fuMIL;$Cr#S&6`CFdNK=?rI%Ja3qxO8kMVGqz%Fka;;{+k)lQom>W01s`CL;vHuAgMY1iP_z0xydmeDY;IVR#E3QrmCja@j3~ z8G^4zS$;Nh6{`?W)6+Zrm#QVu96*SD&5VO0nfS4?;!(T0#AAO?D?O(5WacwD&E0;Q z*w7ZU=!qa6#>7p6A`$Nnw__cd0(+Dfoi^8yau<`4ZmEjdzNE>Pn@O={iJ4gtGU^z`(yk-Kbf{Sg zkSIjHXMP@BZAdx94 z?KNEQ>5pB^vc25a(Yb8(sT%|_`K-b+*x(iR;!#DaS|VhJo}FTP#{)4l_6Tt9_?>rS zB-`@-XB~^lV?|aq{AIzRZBbOcf)(yas;Gc2%Vt#$A>n5Wbbcc*elU$@hTUrShV*Ew zYdwde@XXk)Z!wZKq1FP^X55lM3Ivk|Cw5>bh~g*h@#`~y%IcW>2E(ab)0C=tYSoX8 zMln#DmU*P#eAj$HstVHPdn$jS^Qtezp7?#VlpRg&I>%uMO%pi zs!JQ8Co8GZS|~dc;{ts-bi@i$=ST{P^m*UV=^Ynn9pE( zt%8AEHHZG-720H-JhbkaEwjgZwMv-$#awXRvs)d5*R{MdYyRVMIp(}I(%upPENfZn zjsav-5%%Uey#AnZ*?e}*u4eK1?U&z(vN@WyDA&m?Yf43*P`suv*Iof^HOM^C*hzhe zK%=CgPoKQUYL-_!x$9d#2XMpdZN^h)`goe0Jr*f^$t?=(u!En0 zNb%O6sA+mm95>6W%4@kBh|Fy{oQ6hf<4ZjCi$;SKMw;PD1%O;izmM>)Uy08haP;hC zG8>NNp=pKwmaUs(E@Q=ivSPA-O;WPv;~3!*i54%ig=k>6kT*n3sK*wGhw;YYE5Oj) zJZno6T1JgJ8E3OGl+5t2ytnrTp@Ue8B)AleG^Py0q>p9|5HmZDar$lD!)40Sv!BV_ z#NV6nr7)Liffg+NC@k9LeJM?4duQrpX2XuC=0mm-x&4wX?mKUguHdaB8DsZUp>s(( zy;1EAizi||-?%hXC-mV8FZ+F_6g;I7e2#R=8^+;am+Z{y6H>N$@b}7-+-P-R#(k z!?55rfiifsYGU7!Ja}`=1Tlo5KEkNF9j1$TWdan6V{B^Ujo5TmWk zEl{@+nKH!B0uo-R3GMJQFCDAm&pG4`=gFDSTQ0W^UMBwl(kkUzQN^EHC<2YX%S6$D z2sx2R{pMzVXu|m3-d{gkIU24HPsUL(c0H#+ZD&AcA|m4jxQAO=K2 zbH=_sz&6cnrXWVHBMNnXhSp*T@;O0;@E5GPpOCDlmLjxpBP9m0NcW>JQp2H4v zV48o36vy6Rf4CU?a5oE$#7@n$Vlp`D)+uIaRLm_sJ69n=oi_x3a3vC|geM==$d@rO z6Y%hZu@778SK?SUngW0qij0X+n0Fd3nKi@ zFvg{Thy}e~=y43k3m>Sgks_Ylo1g#gPDr4V9n>cYItwlk&0w%|13<(Le`w>h4 zbYsJ-f5fH-$2eN}3>9~FZVK}P)_bG0~IC;XPBBQ`Bvm6u0JT) zKA%bsV9Q-tS|tsYB;kb+nJ&KBAVY=Mw~ExSVRIQxk(KBF0Ey>qw3^ydQxG)kfh-eN z!3jYetsqJP?L0D9%WdpsjKEKg@CiuNqg{0JcIw2SDb)MQ>a3)>_c>)V+m1mTvxp*8 z$R=vIJg1VgnU!r>qPwbVIom47;_+3EwJTSdWNeE}lwRjnNj!iCTL8imI1Zo@E?zZW ztQ0aQi^No=TK;b4R~(8ky6QTWq$$>5%)rND1i^n$Tr{M)=jS}eZ1l^!Y~nF>>QFsW zt(-d1Bk20d-Ki{8JWny)sRTsKL{A*Y{<7t=_@5JNm^06P1vg^_cx-h^aP_}wNri+g zPGU%lueL}(#y>MIztDBxZDaIpZ!ws4@JO!>YAJvOwYJ_WA^->pf+v*6ca)whSH8+0q`s!^=8Qm<|bofRzrxnfxyNLikrm6+h-OQ=Xkt zGW!l`)$rwI^}lY$)30vLaD8gOQv&C92%l?3Bu71Ykz5MnPW_+HhH2W>za`^!)s>U6 zlKs9$9aT(-Vt{U3kdJdGv@RE32~h^`=t2k(cbfI~dK7S*o>nq?1M*}K&E$Kb==2=6 z(LI3^5|s=>4$|OzIlv5v5NWcGk1A!UIr-3`cY4PCF(DbORS5R31iQ>xV9M(_XTLD? z5fnhl5~4Xd1*L1=Ez0IHH?`bmXKJsksaRZHy7X@5dYZx+W9iu8n&1-FDN!O~Tp<4d zDQRMh-LRWHVB?iL76derA>ij&9~#WGr^GjVhF1ETLYq%F9S>x749(hT{mQ+4JI>Bi3R!4jxt|Rv+(iRH}nh7)^OB7xgat`V$cjjyVV4K5vikCXtV(YSt6(NF zr__$FZ!cnT^sGdeWxgUnthgj&v=FC)5A3+)zAkLJY?eC;8jepdklJ=@YkKf{{u!f> z$G48L^$#T!y|u%VllEAVDByYzGa?=~pC{4P_f3mU(kY(By0-0Vc)S)p0^+DuG1Q`M zJQo}aR(4P9QUX)Valn-P9{F#LFi+g}oZWqD#q(|KmQN=UcQ2W^T!}1Dxr(WdXYf>; z;Cl>|b2IQSj5a-2#YeJYF$tlx?-%wPk(9Sap|2fW#j#y0YhZX+1fm62NHOjxP)UlpH z*=*x=ZBJ&bo89%5QOmaMI6JD%`3VFArz&_x8P(;MKy` zs!YtiRIWiC%PM-kj;!j^H_WA61VJOZib^IebbOIl2dY)luzD^>QK5;aQ3a3Ob5(G` zUZUV)N+Yvc)s#nBU<8RDXyyyFd;waPrHb6D*v{ZBU@NYiO?$}I@ydtRVL=~9U9>H> zwny8yQBM&tQ8OQTHMwfq)y*GgMz4+q=Jpf@9~pI)So_BNB&4OsV9cK$m$(}<2OWJp z$J%4!R>!Vl_w0!57<_V5k~_l{Z}|6Ad|Dm=;uKj|oodcpjLZpV!zw(J)B zt+!pFx@=jTdohc#kgsz!u(LUg$r2z!wP~eZ6bm+4vsG{nv(|a&EN5S^T6JyfSq%04 zqc@qv>$Ndxj74mHn<@z#Dwt)IjcG4r^|Jw9C2{wfQ8N?A!X8QT4mP6IyJ9uW^D>yG z4e)f;{j#l^^9HLZ_gpIA(IrTbKzEsH)iV?Qd`R)vhWv};yp~%^UdN2RHdX$iiuh(0 zuEVlsX}CW6>U&-5e1UN;Sn+HpfryWkYHHT->^iTb&Z>OcBl zHD1;HtGqhJ9L{1W)v-~vZq+uaMI!DXppi*ta5MP!=Jdq5|xs-_c*G5;FGLkvi|_K z#zes(c5Q2V)o@I1%V2NpnF|%yRJI(9Dy>slOvJ5sZF;JLe%$)2#KiH>MojbaCwnoA z)_g&Tov!!PX_c{SO#aJ9>Mr8MlCbozC6NHE%Fa2EG=iB5iHI2`40^)duz+iOBeNK> zMGZqsg;>9jmjzUoLEunDPq$T~(rX-Yko*j-%*RH@avidHC4OAX>)Nl5*PhK`mdiOD zmO`D<$K$O9QuM_DeTajThdqAtNJ*@fDj0(8EBTj7^2SHS!8*v}tL${0Xb?V0$F14c zVy(JIy;a_@Xr!rZ&kJnZh(P_wnlcj>U3)|GmVaT{_Pt#+HBh7J!4@9gT14*3LQK=@ z#>#*j?X$W!s@1tOhpK1uZV$E*uJ@B%tu(5 zN&;dcA|@yLhUaw;(bf+yIm)`07Y8^du~ z=`mWl`gpVQB6aJDt1OWuuclF7Q0tpc1$|MAg9y!C}2#{e0ia1 z9z4j?W|ymCF+*mpibDEy7d9Att|CsrkGbXkT$zy>Ph$H_%zO`()tAj>Sjs*-@t2Tr z84E%Rs2}P~k`r<5bSw!h$(lW?GGNCdmPilW`td(BYd@y%GweIQU&p(T>Ju?ahA;mB zt_!rPS$);qzhx{OiXnsa&_9i(wS(BW9D>7{`SeEbIPAkOZQD3qtBBD)shIl+WDSO9 zmjE!W<gxXWM{cXOsF1+s33eGiR=2lF3sZ4Z#@dh-P zFmVK`!ORr#)}e^eHva$*=(rCe;+3W2axBEvn=DloOR|L(M1@WXgfyG%F5cC$7`WzS z!$5 z-#z&*-XF&a)Vek8vzR=5DV8Y}L@o+04WN4&lu%l7AW>X;LqKH7f-@1<9f_TJ`xbLO zrQxq)uz5=L8;8rT?Ok%J(MrGjisIS^s*V|P5VehOc`}n8PFW3l#!qkZUdOlXKlHAy zUd@&&fM#-gIM>AC)ks)igj=i(YYh#1hFMa3L9ED)b22{%Xc>)~mAlz|-MmMTeL0)Y z{lgWE$Y!eJ+N1hV?Nw)9n)!r5MY%FKiR^GO%RUCoca{8Ow}UEc{xHVt*-9kAxo!Ds zI7cJ~I?G17ZdG;BA~+ZzAVkUjEHCOZ&Yg?awko>@p|klD7+PK}`74jfnsYex*}i5y zQl$M@QJ7G=W9fo_?k}(~zQo0`(eqc7mr(F~einq$Y!GJ$8Wxp|lHf_vagJgnia3Kp znPf;t1)?9{$-WOv@QzmPZLiPU+ICE(>o2!MI=sCq6d_&YE3om@#s-^Z39T^0gM#h$ zXqj|?KJU~f!*_IOFLul8m-XBQ`v+e$u#fJ{Xh8Icgkz` zX5Jeclibly83$rZ>XQf?K-c6JuSK{R^`xds7Y#X|#2YgHX4CQzI`5QxgOSc<)A!fx zYk7=q#T~(dAO=yyzAT-Nyu`2hAG2f|O626@az~FYBX0x2ywy;{puWdO) zdS*$gecwH~jVpOy72!3FhPto|%!Zm6`Awh}l|ZuTveFnX z(64+6K};vv`ST_XI)?YPY?|&X1EOjQ#nfLUtRglFI`2T>yPMzbc1Vc2^D+pkQ#|&c z?tU|3{B7k7Rxl{VEpJ}NWty{P9A--06#L9Lf^~#d`j;1DkI1b@Z@)j^*;G7s%=LvL zG+nQ23oR%!yS(Hu`2NzlkS$d}FGD8xiE_wSzN5DUU-7$VD(5`3b`7g#AmQycw@YNsN0xY@q zaxEIZ=RWVTpfMebk&+M+h~{D8ta0RY<87JldSm+^rE@a^5k!{!u)wWYsdF$G;Olav6`eXpVjWOpb}< z{hS$3Z`Susrw-U8dhBKEo>@Ic4p$Lo$D#azl*uldkAdO^haYpA59!0l*`*G5SMg?t zU(hg@-DZC+k;&9>6ilg$^)J@Jm>=Sp35k#Kj(CCf{PE>YX7E*5_&Xph2!My}Rw>_k zM8|OYI)#yG{{Vmbj-S;1zTZ1+nV;33)p|D^7wP{11*u+yimGO-XUg79Oz#q4@G2EFUo7J8&0J@mNmA8<)O7WF1QiNOB1D+!mNV@oJx+OvccpOh7Si35=dI^YHeYPc@EuZR7G=j`0x3*bao#Z>4&(As>=j`(s~Ib+h#&d0R;w$Fmoxqm6ZuR*&-d{? z*dGsgt9z%h?HfjCEo*97g6}&EX1-u@pfUI^&P*F&D{yh%R^)=n1dE`Ya0K%I0IE$d zR>THl#~vZi(Z=4Wik7r{sm>HQVkBVvAHjgLdKz0u& zXxH&>t6tRVc%+`d%I%qh8xE^i*G-Ndi|Q|Rfrt;h5yxntmHz+?Q?dTN+xM+W`BPa1 zCgn4~To~m+#In71Tw%J)B4hJ(2$96_5CA+&txWYFC8=u0w^y%<=d4@Il{=Rl&S3jg zqD3GD6Fs4pCz$^IKW;t*f5}=d)Ct1v8AC$nEGoz1otH&cf^sX8b~T8{SNg@wl>3li zrHshDNAZr+F8a=eD?8*Lh!i=gDxz7B(x*sCzOA*=$G%lD#7GQA*^1A; zmT$!RN0l$q+p5+BC1r9r3`HFL53UL>-e~(E#b$yfCET$pAH27ZflN>7=fN1;xth68 z9ni{TGBky6vzxbTF?#1vI1rl_*yeHvBQX&pE18KNIEkNE@mOt4DpuaotW>E|iW&MZ zjBSbFCT6_8xhz7!k7FgtLf$d#0p=LE0bg74{$Xg@vi@Pcu2Wr-GR5K;85Xbc^++B3 zooSKayM5JMdH&$0Cz#wHr`%1*gyr`5gK8&zqn)Kqcp=BWh6O@r&Im9K`n1S!eOn0BZAg^clre(rw zMl(RozuQbHT~yr3WYOLUl|}89CWXAhk>|e;|n{C5~*I`A2)j-=T`pH6&DX;qct8yX!krB_dqo zjZEz@U7|jqf+l2nT*Q6Awlhib#?4Lp-u0EUwqwCk=(D+B=N}6)o*gv~7f}-j1~5K| zAebSa$|vF0Y}pN+)i6Ff*BARvG~mLRngl}lQlqe}i$Xrx0{*kPb;(jo%k6M2MjU1T%Y zshb7i!9;c$B_DqJe%z%a%HDm!Yy`)Mvk_X_u=q$hjy+{wS@jm=diCbZj7x$3IOMpX z>aNnUI8;~Eww-lVX)0CHrMib%FjM(QRTlveKoc<$#6fcr_V^L)bbP6tdFh^D$==1L zppm;3t_VK;x?$IwRq{;!1`L%*Z&}j&w)Usrv3JzvEHf5V-%j$km!bTx{#s5#-Y;Qp4+p}Vb0L$vRIj5Xo}w{kvc(K5F|SEJ00EnMgueV0k`~1ToC2|F&)c{SiByyiPSD*c7H8zx%RT0(Oo=#!+N5dQWmyV zx}_n6(F3f?(oA!N1CtUc>pwiPHjy8K1YseS5xH!oslwN;h;b#rs4K`%3h;Br{z3+4mtyZOtB8VUT0B!Mir@`)ZNv~`hquLF5& z$c+nj^9a?cn%8vlCqQmxEPBiHCS=`N84Ctc(g^w)9Gy96ywC)+Sfh3SrG#kB_$IWov7Ct)DAp8f6X5*{x$ST%>#O zp?IW+uOkHkP*#}cVoZMgO+&`n8vD6o{Bc7%>v_7})r<_KRNxbGr{@c?K}@o!7)wrJ zc5D-P0{kX8AAsRkP{wQ-H0;`@wXg5nDq?H@0IgY{c1i+BNDNBlnkP@yB4ygLVUs+} zOhIsPx0}=MU~~8JyH<&&r(n4%dN7)mi5xyn(LJGWU!ZKH=6IQgS*o()I>VqyXLpf5 z>wk>v{chdlybcb|LI9tN@%et+b0l5HLS0$HO=0zkSvH!hoQ(4)_JR1OzaVP&!yl*Q z{C7jdl`s9=&m?_DY1WEjVotql5fvb~>V2$49K>@0JWs%F&F?yHj+9W{b-i1}SlFt# zkkx#Gv0Lm2Ll}^HjbTx+U89Ihu=tV&O#c8_^LW1@@Aco6{XBl3e2s;(l}x(kdvMwU z11DH#kr}0W+`8h-$FMctxB-|rh>4LSTC%iH8eBb-#u!UpQ?XivIP)0>j5idx4v{Ff z!4!>Yh>7%q)N}V0wbQ^xGQ_)oBUU$QEZS|@mX@!Iqig*nGaqvXWBq|?#S_|2Y_^&^ zh|j6KNRS{=!euh}=VmarH{Fjpu5zX1b_|{;FN4EmJ+KYoc3?3y+!7HTYlGd^W2bKM zBnN!ae22B{SZsfh7o5nyBZ_M)*uiLN#Qy*=ISiL87=u;YW(C-x?0P~3`v^zn2W`1u zFQKxw?c~cT((#d9bwtuhXttQBh9etfQWfewL*53uE2ZpANQ;Hmuvt+0k>Du$tE! zwrbgHw-aV0WyA`5n~zWkl#ohbnG0gfZJK6fcw{B5 zFJz&=Otyh=Q^Ki0ETTe6KG0I{mDqemTH7|PQf~RTA91mc$s-w67qOLXz(VWWgW-6} z#{_bd?0(o=LP)=gVtSqv%8N@Yp2B`9$HE4^s>|6X#Y)j1*)}J*0ZahLTJEP46EWI< z8Gua9`S)?Po4qk*MYd)e*ONk3E0pzEZi2djDaq_KQ zr)9!^{{XDx^m@9!C6_C^6|rFpHCn^sE2(vxVbv2-L>FW633N=%&riQU9;;IFO-fcV zdfJhl)^8UgSQs5U^791IZ*%(QBrN4Mlg=JH-5@{LV&Z?L|*P>hxQ%1wdD zv+7#mF7-~7{ zx?ZoU>$?U{sTxBAtzv7{&(l;$62$D*0ZA{cM9AbJLdYHovph^IX7L_5%pE@;`5uK2 z9A+aajzR0F?RPJg8E*tjV}Zn(36f+kv_Janx3FSn0=q*$Si{*S2h!!?7c#9x6cm*p z6M;!}pR#UQCCPQ*6A(l4If?P62OW*Si}1dkTXE)FR^8pxRmQryWP3J2`6Lo-K>q+C z@fI7%lte)B`20rNG@LkOj;7n=9Ta=230VIC65-9Sx}yAK2Q3M6LLwqNz<^ACMF$^f z_#aHQBb}t_IBOjyE z#-vhtye`aJHpFtd?G^0AUP4n65&130V2hai1c#6=9vks)ubah}ku<&X&RV_lF|nVs zoIHMEtykeROiYtf_`)U@1rRd>>h4fNzzo8BCfjWBIvuRHkZ`vc$6CT+v4M-##(9Q+ zvt_Qp*@7@0iqj!I%cuaLYG zgA8zGa(bq-b<7p-j{s=cEX+;G?zvuF46cI#y`H1)iSE6}S$oE|Qos0$>V5*g&*KOm;I{=g~*bNuc zcr9sY43J5Uj-}j4CRRi74@#lsElY9oLUH=aw_8iQPT4-jZ7#~!OKVMuB-(1#0Uw;q z#H4$1AD8^e8`?*fbs|rYblvZC#l{-7k+ELxla8T|n$h_&ZC$H@T@lE^gouPeeY*r1 z&&bseEqF_Je>X)S|w#KCWZ=ymUg{aYXzH`?UI!=iW12m_U#!lk&Z(5 zUrmFbwDdN`@weVR4a9%wFo7ZLGmKe=duT^!IuCx9sdAU zyR%lgTLZV`AM-%6K{tm`N zX54kec3G+vfaE-|^UKqjO z42p*u`s-m%Lek`z0{F2As-=t*4T1_-!lk@K^ARB7Lo4NrAe6=0T6P;bN-tz~m8`Ox zG2@O|HQR8+h%t8*_3k*mCVt z7ePccL`1@4fcfswd4Vh}R>$RwR5RIXy)xQ<7emB`Quy|kO_Qw_)nqJj%>7Mz;yer- z6!8-QXV~{Fr8+uxS=&wzF^Ri=jl|Abi^g960OYoLgR&p(+QF4b6cPZSqDE)$9|vu| zL{3*5LnE%}*-E#4au&bTY>XZkBU7;uRr;$3D`5$VF-EwbxlaQE)A{q3yNmOltG?p3 zyuOK;#pLYfmPyUm%2>5&_CAi(8&dXKQr33jTwa;69a^S@0rMd)Te(`qW4~mtPi3hAs!Mk}daru>G?OfOL{Vue+ zHwTJN0~k;t1(C9|xX$lj8A{d>{LPN>#PR#LYM4JGsRE|4jJr-;F z+_-5!>Ltn;AcdHKoPKP!Jhz3@(TR(<{5P{!$ytXTJJjsrD>dwoVcNHI=$5-{36Y+F zm{5qUAPAsK;A+Y2Slkw+{{TZgCAR9NRd*M7A8yKif$6B>u)C1ues;*LB}#O)ZQ;`) z4P+R^T)c7T4;AYA(QG-}H|g8jYghftHJZadZDnne$iua?E^9GU!$eeubW9Hru$i7= zS#LUI-=5lXc}>d$TVcnhx-t1pKPc?0ro@asS?~HeDs^TJAu1~BU#Ubs!#>7Bao?%$ z88q(UGMLS8XehsNNT8jv<%&iYPuR5E$TpcBl+BhjL@WB&BOk~GKLXoN&NzIf{i`9Y zYCAsrII6gTBd<`g_`0?i7Dv5{cZEt=3<9}e3krWRfu4R!H?7lruz2ml_7ZB&IHfk1 z^mS2>r9h@&57l+Otq>muqjFAWJ;V#+kBeB1*C(~@IeQo?H?WGaj;y*=u@-A4o;Zcp zyBH?o1yqN$pIM|WurVfJ<;=+ZqwBj4&8sd;Veqy@Xz@10^$m`jLCZGJvMt=S*~+pC z3MHLoVfmMME@plK9dRzkNhSJXgp0r+;o5i>D8KKw$TiafK8 z!{PE;hNt3-(5!W)-lbbu+HkoObw+yye(|kfmnNZuOtGaCFe~rLOia6Gc5gr2yo|=N z;Ou=j`jGpUuWnfKw5D=!n1n8UVlMv6xL0Wi^&x zUAdA9GaqSUE0e;qVq@(vq^f$%bKCDTGV&fbLYzIJtG}}QRFi$GTBf?22|y>9=;e{V zu*sKL7+}QqF#B`Nd@p|Im#d|p^*6*7@B6s+D`oONJ!t|6>Fix3AvKOV#1t8U7vufR z{1)xw$or0O39Vv0TS9S|_NO-5)Tt5U(6BigfMUxP645IFPJ>*R+O&Q%AAf+8OTeC4 z)-VT+!ta*w^)etgGFS|@K{jUH#?NDvf=Cyx4 z@K@bt0KLXrlCn$_UXS^}LLd1P&wa{#du#9J}o>1aLZT z&E$(3-kFE1<18k*YS9|7_yMnznwa`zEjXIB`c;S~O>|6KWuD&RnE?F0Q*)jm)&qCM z~Ro6+Tfm5&olo39rt}}%$9ZhmCN2A%;}h#>{72@ zv9q@!z^;2GlS1wCrlMH@4{vav*rF%#j=}ckOAAKay3EW(#Bt2b7e6E0x9UqqRlJrf4V6yGuw*MKO|Oe!2f8FAeQjaD{{UZ%_fQ`{ zetN|G`7)N{;ZUlbhh@{UenQFHL`&=LSTV$6q3RKr0NnbKs%iokNdEv6qwV${B0f>D zo>3h3O$@25VX%7eunB1Kwi6w0(FsHdOkBx&WMh(uf<<5Wj-~J^1LaKcVM9Hb^3IFn z>>$;Mx$M|!+O!CszRnh=Ow9Ad^b$<}0K`W#@=cXr>D+SmavFBKo!B-DZIk`Vl>^1q zv1N-gI2y@Zy6G`&WROgmltfIjA|gk&3(TGy)6Dj555xB|TQvs8J=V5NeorZF511yX zn#o9487LCrLg`^dM1aTKqo>#T>&^K)S&Wu5%0;TWt3)ho)bX|7WFe*wrl!TV1zM5{ z;H4zuWc|$9KjI5`@ZL7)&C*YhGT3h(Qol*rBGNE7FJZ9_tx7%WY`9PA+#iRqVXQ)p zaU?95h$cKwk~~l2O(C{CEr-VL`3$Yp)Ty6Fzmp85%$vwXR-19He7)VeoQj8;D3K8# z>*KbNtOmV_%Y9#na=BXd^5I7u{g#cro#6|qSvAy}kqWI0{A59E5b7fl{REfHIf34< z?Qyj}=KFxzaa5wVGQPW`CWUIbTS+hnSV_f&+G43imoWH_1|Sq*Gcv%EoJnd@24 z3~$(69SRv5`qmPR;{699 z?whZi=EMxoF(udR_FMG3i6}3$gCM47i2MEL8)m^#{wmm0cgNmD*{bVQSxSyn{;Y5; zlUb#!x7mUL?C&zs<=st!e3Zu#hgS0IwtO9JCt1<++onJ0RLssV1A-h~9F;x>DgAY$ z=xv7?{{S?E#1x>%)=kCS;c62?d%m103!N;v3K6KI%dDUaOf07O#c8= zJV(sB)&n)J;D^S#Rc*5w;~dKPrCTGU*Oq2061}Zcm<&aTUr6r~=KGqid5{$saL(Oh z%DKII%JUiE9eHE)*@PB8!P3d(jHPO(s>rnr$=NCD5;qwr0^%AB{D4T{KTf%QHyjvR z+pad2PbXn-y^P3WYyQt#N=VH~=q3dhPAT#x9N7Le_T*sa7?OS4*03 z2?ZT;^v~iyW^JfrJjQt*)t!pndia6O>@CM950S_`$q@B68D+JhEu>P=9+JT!1D|L_yzW1zJjR)& zqdT_wDvi3BTXd%fldJXTZf-zA>_CVCBxYGZk7**D7_?-3v6NOrEvoD_ z^RW9F?Dec(ASWc0IrCPHaQcS|qOYk;C6Ei0L;%8*GVSoS?Cu7pPa%TyeuuSRxmK;J z7@dad6=<{B0|P)?BumLPro5P>mXY<%gA(p101yX!edEn}8>X2Clh>#B!88hpW>O@696*i1bZ9`!?tntnLGXaoAl;bFBc_gq~naCn! zDZ#@8I?7PjKq{n|Lzn?GB&qpl!ucOPvg=CAKTOK%lpBqLenRpp+ItoYgLJJ-v?@d{ zN#B#Z%=9VsNB8hok1=$zC9v;#Z4+n6J8erIISZ|(x8pG+#eE#jn-&Mw-$++)0n^rg zkr;tgata8ql+!Zjl+EoMZYLPtt+BOv6IFgmp!o%ahuk7mGcf=UYlH9@QLnHGvGZNX zVG|Y|YkJUj{fpK~RqV!g);l1e>-U8L6PI2jjt|z5546bfKWX`|QS!~5kyiC6)3}QcR9kG-(rV!)@J&FtI!hpn|X{$lAQ86PQ zgFzimW+YB$pNm^pmNea$0D4w8W~-LY`3mC>_CFl*uv9VC;JL?|nIZxJAB4dW!5G`0 z?4#nQTgD!4@+Qpeu1>Wqv1>Lfx%N+BMs1M!8Di@RnY=(#UBT^ z`TqcN&9g1GVOf!je*9J;)XfR0LZXbnl_>;T4`F@9N+}sO3uHTpG9WFt>SngFc8!(B zW3}yX1|?=QnTzLTpSB@A{)dWl5jIw?g!YA={;3I$rp9#Tj>B(Qy7u#4O~_r%W4c$W z7`&!tF&F7$0Y-JyRhKDE#lRf0RV)_63`Sv+F&`tjJO;KMG}7@dZx=$UCAJ^_q{$f* z8SIL~>iTNY$s0Y)*J#F@uVm}mS~_eQ6}Uj8{@|dXtznUF*s@PU+nIxNl%f^rUoy`&l5;DI^N(e`fiyAGjBY8FR zvSIe^2G!hlIn;3X@L3CMYa0_QWs6XNa@+^UKoej6s3~7bbkD*Y_V?y(cMTLgi{p$2 zDl#s$oCY_us|ji$fSn%Gg-n5 zK`gj0V^$~EsFa4RX0e>HhND3qMa^ONsx(6gwbRGYts!&PX4gEWCpPioVPVtlnf#Vv z!q`$j8(pjFdOZ~2_j?)fMI||9lC`m9rxSSuGUgXP&>Hp*V4DhTen-znH~tc^IK1dy z9LCAzs`R^3b-EZ!vRZrJ(`@u?55m@y2go!`pwGu6ebULp^wFX8!V!-th9^5(TMw$ z&}jO?Wl+l?5F}m0=v{V}YiPt>&^AidwDQRfmfm|MPrIJDWh{BrWJK4jQxYUAXR+%5 z7=Q>4{{RMfx5!$Cw-2ouinsQ4U4&-G9Bs*D@|DlDg^4tana?F8U~>WtQ^X=a8Tp4P zfvg{BiJTn0L{H@IlL|U_@5N%dHgQTmt)zF zUPTqF;zl`Vvi0gRX5K(VrVU9`SVA!{aV0U!$JKT$UO}4fX4P$P9jyfGm9I@0%2UZ& zu^sNd&8vg}78(SVkhuagAs`bm5I-074fnwGbi2Mmt-EL(E{g zjtU57e$hVwu7}~hDlsFmZF;?ombH|>akaASuu6rz^VTLxtXBM51E><#c)&Ia~~4(xa_94nGJ7c z@tq10Y2J$3{{Z^p`YYq>_28@(3$R0@B-XM7jDw=An3JfDCP8uaMRKvN z-p5m9dsM-M%z@W|g{+_^WC!HDg|KNJK(9+@*mL*i!pya?vq8hLsWyfrQoj)nD;b$VjwEdD1pH3qua@Cn-ixr~2Micl!aqN(J zfTR{6U5JP$yAO;5FTblt$!tfU=4;vx@A_KdhE?EPlB`p-rmP~zwc;H@T?A49P{Io47xgRP zH`A-Gmy&giZb{V^feZG5Q6tO+R` zDPfp=8DkW8W|HjK0mx)nN<(;H4=PlMM9heB$GUzN+q^@Ep^2=$H$2O=?@;%?%zoF2 zyNbuxWPL@%WNFq2V$Y6&ESa9fOos5X_@#`}v~9yHf<~gf;C7O?Zsb>9*>CItt4W>cI+$t8%`7Q zK_JEVQ9&)C1Te_|0O%$Vv7TAlGT54$>wIID*mG{iu8tQakG55vjHT;a-*j2WHS9Rp z_Q?B8r@A6wgkWT+kvubYmQz{Nb}uxqB~LYIZ`{Xhb>{U{&`^_7mfB^6T(j(I;WD`} zf)aP(_`u11Eg3z2p26f)_)AO6>F!)qrI4px8vY)ELpzDi~~HZ04w1Q2N#`2iUB~62>}A*Q}DB(*_bHJf&c_ z+!ndFZ3@tQseeI!V-^EvDT=F)UJlWw$*;0$wT_lMk5H3^u-e5f2_r7C@!xLprp4sN zVoy7z=k?4h6%qT@eO#j-Ff1O?UiA-swk*A3Ur>frhD3xcgicH1?mtNJviCi2G2l-! zR8Cz-kyV_Yd26waTY(VIr&?JeMnwu_Ni>-%j*~1lfRDf*ner}b<)@ar`gq?c>=TGz z)n*^EW2qlrxWZ%kLGxE~y$5YE=UE_VTMxAcPM%Y=)U&q=!wJ_)<1jS^P zBOk?$4O8}6KN49 zwDKK5)=mHiM_b+Z$+>^VJ|OXKy@p%m8AoHY)=^tBwMP+MPRG-NNskbwJWIDpB@`DD zYjwfmJiU;oV_(B(G1{2o7#R4+);!i+@y_bFLWMUS3XTSUkJd1KSMe5iBSrf+oVPDNCc%f%ol2KTY0|1Jh>?pJ?__9A4{?#{zz-Y~seYPp zmKa#nO1bN}_8m#1q*|k>DjU0qa51{9TjUvNw+dk(&$gdq1c+1$poI_PFh!NQO>b<(=QSE$F4oSKEuSomzEd@ACpQ>ZTExQSkWsH~Ij+F^>;Giv>FkS5uBSh3Em+FRjBT!$^D-oqwYq(Pp-jENFfEnH{9wRrJE!UY z0A06`eyxdRRp&N4SsIo0M1WIwyMtoN(5Kjd7*YsHvRo`BQYJ#83_BjJ=dj%Ll}DAa zb+Z=Y+UXN7KR(=TaIauo@CT(pr3B2ci6*t?xE|#LFd7d)+%=r-{qr;AyiUr@9z+>7 za#aH#ZuVNxbzfUH=H*~GtUl<7SOP(-{{RsWw*dV_VN;8xw`-dI)0aTxPTj4SC$F@X zc1o3s#7kQE7IW4?O7|&h?y&4eL{rO1&tdQjcI&_I{y#=$t*6w80RMBm-UI?B4jSmb$+l?N+io6=1uW&MP!;$NtbPXo^*jBdzr- zGXd)?LgBp}*gkmc?*8|y>s1)dgI&es{D*+a#Nn*a*Vw66N(GZl%O14C5T^jix>VP) z1L`>_>NE1ct5C*dlV>%X)wf-xxxjZzc^?lKRYYk+H`x{{Vn16`0EH6e{_P zz_lpk66!2w;YIlXwR14eW9lB-Rmw?M0g~AKm=ZuD5F^$ib=AFycGpL7*|w~{XIyft z*~z^!%C*~_CCJhVRap9lPtuqtudwId%7Z+}&mW#w)5$_!Nb)rd9r?_*y((5{>i~HO z%F3W|^Gf3z_B#>-Sf&O7e}K+9!zK~(Kc=j&i!s(M=XPC}J*?%uwlcMGS=Ui+y=|le z`;A{muA8P9J&sHiBNDI@={=+=sn*q7$c2lwfyZDlcdFsGhT$CK*QVO_=21UVQxFAl zjZJT~kqE9`#F6$n--z;-p|Rx!)b=H0u=H&ke{I79vL%%va||uWA!iVkl+3Mj95BC> zV5p>{WW_jiVj%FkNcm|xF>2m87I=_r| zjE!8A2q1F5O+hnUe&1tziI8&>6WSO36#c&c0C2h8t8vn6MpI&Lm7vr0lI+;cnl~lG?85SlaOHW!p5>uhGcTIhmE>3y(+nURpjd{6hC5ovpE%+U<4&K=HCf?DKpF_wN)i@)d?Tlug1Kt+MT`l zza={nTGpzR{@Ze|)`FF0o6G&FS@cUD=$iy9`gE*Q9`2;ZM9&AGLaqc=t?yn&#MRH{ z>mEYRF4dLd@tEmh6ttX`x8C)tL=vTU>d#uj0su}xJeITL4Ie1|Z&IUMJG0uLnaO1j z8W%E@D=efJ(y)iqCFLMcq3VPOVr0O?L^sco_Mh1?n4QKk)pcsRttLKd5k^-bZiESi zy5OJ2yg1NIcVahkKqkV0j$?kk<*yugUka^HRJdB$e2r!|9iz%yTC}}qOxbeQvmsu#X3$L+Q{Etg_`nQtWy?&F}8Ce6FCutB93En&xMgiG86j32SxM@tI98 zKwg2VWboFdcCt4d?5ME>Q0nD#BPU%9g~UpF&(tzXzxWJuKNoR039*ZI(YEgUN08{{ zFWk*#@ip*@{jVKh?!H-iq&z045@FclWY2@_1TqB%4O^Z=#}=^RZ^cQYjm%)U%PVK0 zLe5FVvF2rLTKhKGF?>N4qfq|%0@1?2J-{9u~r6_;IEmf@^yHnYxhWR5F|P^`-I zfC@OWMs1YDC0v&cju)q2)v5^P9k|!TW--9(6N%PkbCJ4fL;W?aV^I#S#Yy%X47SG_9}R;OBZZfEDV|DZU;txvEz1jAGh%G&S|&>yU+OcK z@22*DCh&RB4nu636zR0a3=e5BhHxK`NROIzodaL}qa@9{&U;4FkZMzJH(v_^bSvC} z>j)-R2|&W(U=U4k!13GrE@W1382CH(pBS)4-<*qAm5_yuiYnBsw$~2gKueU0f@Jo!@6K|xm}E6T4qOZ z#xHQaN+`Z);@N(-4v>CA7HrsL%*2rPf`p0KFpsb(B3D1$F*o#|^)A7I%5B-}`BHgi z7da**-H~F~35v+BC|!(!vC#oW230FKlNc!xXe_$}h4D)KlbXh7F>c7)2V?VDt%08L zfLI#)h2lB2?mI4UCbY}Q{R<*4vDk=s_iolJYZ0;e6DOS=pJ1}Qx=1QNAcW*Bu1BA( zRDC|lKeZ%+tTNS4?RZ~4+eY-Rgp*0xEx)BtIvnPzM%vxwd za4|eU3SxrJJyH3~dyC_PftiWxGx66;+B0~aOZE+yO^tqr67uR~*?^#Jrq@IPeM3^Q z_g7m(*7%Q6gbN^Lyu|zo=Ifz(4{oiN(@SH^<9~Bg3L@RrGTow;OA--R9}WYv#i|l)?(0c@wwvVYYEHv=~J)@2w=6?SG zE?U)v>=a+MV!35VLYqp}Wira!EBv5)u1Y%>UZvaaJn_U&^%(MQ-)gqGOT;>r_Ep&^ zY%FDrqSyj@<^sM&W~;L-h>0&t*0c$6*^wpvD7X&$##>(UJ5#UaP;Jt5e5?W3#E^~5 z_R2HVYt@Mv849J>xX0jc^{nI6heXZy)@H2VqqgjJ6J&BZylyiso270QOJNzf1iEs4 zBvO&+OM)-rv~7op00%;U*C^vH<7i{BlxWw{@T<3n*XcRs{{X}h0CLAmW;+rY6EJO= z?!h7$o-8_K#>~WIvzqRghQ{G-WwT+C$zP>n1+`O9XiajvWpUJgk{f5F2>$@yYzoF8 z21o#|Y_UFK*ki@Csp57jc2ul}R_1DgtfvW&XArcQwmT}}%$Q2VgvKIg@tK1Kojdg5 zqZf`b=)r5*3_X{*w;JlFSzRh( zzO}Y2-^kumuddC2k5%^<9Nr6XvP%cFu{IGfs4;TZ1@M+Pi~c6mm8GFH{{VK!VzGE! zqs@Un*C-^NO1PZ0q!3Scy~d%4ME?L8N88{mVy)&h+F5*#(Q*E`a`E_lwH>1F81Cb% zw37_1m$CGm)3Gfx0buo+SwKjz3RGRT-(?#+yzLtfp^|N?*047=yiG?j)nY+-`f7+s zjHt)yiL(0x$1-rKA%pp5+Pr0g9Y7O?oXRdQ=&)M$e<5UT*{5l&gh5vk{xv92Og1bQ zv0%d>qGo>FaZ3H`YN@InW@AT8QX^0=#Rf zWw11B(8k`^a{1xMm;V42zm2}zIXeC3PR)C%uuFsyF@!>}2~jp-tBIcG1fQ_%`_+uy ztvZ%ZN5FkPUp@5u0|htlFbNdzNWB3Piplp$i5!apQrYAZ9nV?RG|wSsZdjv+3|hx|FG!l~eLt(G;J)nklOX$bl|&lkyJFX}JFbI>pxv`{$4mCx6Pa1;c$fra zy~&7D()v)c8zEg)*2=z?!ErJjhp>oKFKs(6879l#J=@h>A6@UaR%&04{e*uwON^TZ zFf$*AGDF&9`sA%`+h1feBaztl94WC-CpnE~@~bUEMo=VDkq8*!vn(U#Cz<<9&&jr} zHXe#4EQ8(=V54C`!=TG%bupjnrxCB#Is}V37cwGrm^g@9oU!!EqB>)x%u?hhj*NxJQJ?wd zWF35cu3@lwz2jNNyhIkgcxZ zq9Y|0Nu^}KOz`16ht&{3{(Yi40{H$(jwkU0nEBsM!g`|o*NiLU!vmehYuj)&b=OlZkT6bKWh6yn(&Lw$ zf13)>1hf1`VUS|EAE9}Iv#Ayz$Cyo*BKmzTTep;?eazUtrDelh7)%C8@eGLsln+oK zfZ#}Jek0iQV?Bozqj>KXb1w=zBCG@GkR~{U*7~5APk+u#+)*%XBm0u!ar0j7Z)U#y zW;Yw->gBVgcIx84X4qhC!SEzR!MR;=^qq%>iODR6Mn)vaA^}6lw!EXTZGJzgn8joi z84RWRm2h-yqYf7Sol$rG;!fp&THR8!4W>aKZaTq8!8K`GHd|htj?-f&iNfb{qZ4}m z9}w%eS6X5{DXnVjm|_tUL{ls8B{F3Z_7Iw9Jc7Jl`)&R}#9ytt;n#{1RSFBgQqayq zEZBraCb@`0>PpCK@$8P|WhKnAU-s`UX}ZWZ^}HrS6=`c_Ra@Fcn)DI+#bYT4DqO-o z(F67#(nG<=-{5cZjv1A%X*jm*d5qP}zG1$anLN8_r2$^E*)|##0=x=VW}-8IBc8w! zFiaSoIUGil`h3wZ?N)I(YDJEy*S8=w(zo1yUde-bM421eFfs!?jC2LW^%#jp19g7S zXYgFS|}kKv@$54DazFCuhU#8)fW8 zd&W)KEo8A^{F`yK>XM{k7qVU9YL~HI$4Vs55L4O&U<3*t;aZl1Qj;rWa=5Vps+86k zqMYVH#G7JrITw(n2xB3wVo<^;T+gtJk4$aWwp^`@ZCqZnVNE95Cs<}D88^PN!9c+m z)Y4m>oQNml;nK>8It?PmZN7YQg*=P1( zp@s~4R5A9LmUdqn6#CP>`@AkeRlVugy2;EIj=@Ix?D1@QyPb*bfWczq>a zDzjg0%RDJ-xvbrnkjeJ!>v+nO0xD3h0mi1SJWoiFaB(wU+Gydmk0NOp`_nhJD9tg| z?pVk+_DEE!Hlu{pQpC`*HVFR!3V>&slK#2)uUfvzcp2}-%%WD-&a(TFLL<|!J^k$}P7r?KLpxr->PXKl6{ylS-h(>jSikO;M+e|7=i`Md1Zdtc! zKSn&XtemB6B|vwGnBsa&6bRltuaWVVp*Oa@ww{rUzULhQwQ)7_R}LroB9bN5Ttvj2 zuiU|s0ptk4eh1}$C^N#j^?0Jr8ur;|D`IYF_^QJvWnpZLVx!_pJxH$AztqE#h)6&W z+6I0F{{T#EXa1zvHcZ7US2C6Yo?7NEd($Qq@|=(-) z&AUx5dr87bkNc9IBjjgD-geDvRl(r(-y32unRnu98<~p5e(9BZUj_n$|}NZ93ksTO{Yq z&SuWEIgEvdax)`0@|LU|ANN1v9Cnz2h~hqM!fJ$mC)Vkf)wTN}xO{SxR?_KLX%0y% zU_e(&jAN~7j?i;Ie&73_fzg{*`L@{l7HWGgT7+3-F0MwC@z}UIY_=q-E7T1Sz~`;2 z>>1`}c<1EHY%BR}zCRI^&EPSZtaeox`*de5j>cCTQ9+)nt3^+$WD5I?vLTTKW-Fdx znbyg;>-w%%{yLU3RQkN7)yZ11m9TkpqLxUE*_g7{jFeCDs7vf_=1cKe@H=Irso(=n z*L1xv4@dt1j#HzGMP)9l7_h5oC8W`g-BkoFahK)yh#tm49{>&qC$;U_DqCW_-IUui zBQ`PVp^e1RRcb3~K!6rNjSPz&W1+o9a}ZqyddU+USFG=-ReM=41nZX&!XlgYbFSO0 zq`R0w0xl9c9yplc#W5uj`9ws?oYrDC5gL^C{08c!E&)RC8)Pp)%oI#68C;||o}&{p zACF(Z_whSv%sWxjEo`;FPuRvbqSUIVMK?9mi!MH^;t#B!2Qf1dJn_%hF`|sIZh(Yv}$!1 zk*V0~U#k=K%eOy&a&F9%qGRxgFJ$q|^8`JHWSD&~$y&dRsOlx+ZRgc$n`!I_Uy^a} zOwF$IYQ(MH(3q2xpXxY*pYD12ImGPu@QFfhY-`lEgv%=CUysAK^Tx^u;f31`6_>$4 z2}iO>CKx=I-|inxCo`YcEy6czUte0aVHRg=u3+mx@dNdX2%l7a;%3MUu72{sPaMMD zN}4>C<+;Kr(99)#MQFA^#?WHWA5#knjzGlh+NsF>;Qo;R0QDar6u(p6R2+>Oelqes zU7#-8S9az+ZEBlT#zQ@w?2F||k|HUIv_sMdneF|2LGjMr`hX>d*W=$LU}Gn}HpSLp zH2lUM^|KMO=m1_kl(R%nV`(rSBljN5o(_Ho*_&>=lJTufN0IdjX=}R6iMKG99|WXh ztSlDdr)j1m5FDYtmb2F$kHDALtgYvNQ{E-l(A!sRWV7L9gB4RBi=`~GHvZ&r({!l{ zpTz$1=m>?$$w*8T{OWrD0FOMOl%rcSjPl0Mm`Ih9%XwE}CnwfMN?}sO(6ljeaWF#$ zl8XHBKFOKm3kp{HcFRcFn$NtldfTB1C6!I|HtNA}%qU*X=F7{(HOQBxH z#v>Pc{3e?weTeL(5Kp4S5RU~B3T=4ji2DSG8{&Qb)>#=UJExE@UE(Umlh&1C#WG^R z_T+DU9fBB$kcfi&Ovf`b{i^u)QO{>BYk15LgYh|R#sdo(yoP@*ni(q3DPpONuFP3b zI%Hnet_!bmLl5wXgZc+$@@*K92BaGO5LG=1dX*4q!EP`xob(94JPq4qE2?oKDoVg6^*ydWf8SJ@F@lJO4 ziL~q%zlrmHuaeS1bCyh|n7<*YHPa+(Ik5R{oLCV!W%4G}a6RCa5=*x4?D8JXkD;r^ z#j2{l&yuba6mXVY!AkqRrQOyB3;3#>aqHrHas3xCv*d3X=JF?75RJbrp8o()MU0-! zgiQ=>a8@`@CdHa^YALMuOp^Zq?nE|N!jltRpTH$c#+ydpX4jZ;K1k1<{F>EI6?z7( zYWML`X-_C%WAx$d<}CObqJ5Y41;H1T%K?dOAFHrJ&Tc0H!d7Cz^#$1QXd z!6uLu%b|n#F>2x_ONfcR?Ke)-aF#Zo3kJiq_};)1a&?1n%i^%O_5rt-)Oy?l_9>Wk zKuInLCOKCUFrA0OXt`a4cdb__&Br@V2lg4UrBZzwiL4&$HeSM%DK**2j4_RSWneBz zlNlU?)?;P;KGU^{!+6+qY=$RV3i(U9{Hh|wUfeZRh)H0_TWr7F=0J4=HH3RVDT(~p zEm7Pu7A|Hry|*K)=yjWI@nc<_TCdn(NLE5?Gt!)Lgg-HH5!;cnGA5t2&kcKP@~bmB z8~duLf2l>$vE;EB8!&e870Geve{1TBY5=StKKJ){%&ciJ>;R=ue@?ZslN zV{B&WSh|tyZdkf%i{&f{NIBrqmzj_)ez2Kb{Y!Zt#TeXvm42s^_55QnnL3zEis~^Z zVzv$LS}zGxh?YdG{+QH0vM4b!5s-rT!?ribiC(#(c+*PC;q*M47Ull-gB#Ro(=ltJ zjxa@!`bag^8C{t74|x@;M506tlbGC$?V+u(m3;IX!KY+cVPc{4bQ7gJ_`(sZ^9f_4JSnsQD}Pg@&2G>6ue zilSqW<=|!uj#GT3uUqdnI6C%dd!Q49X&Zg(6U2XfiK=ndJ?0Mbz=) zj~Mvd6^qPYNaHcMeT4$=sVfp=?V*l=v39cp3SA`tpqN?9LT7>#IIOP2lEt2oi#E0E z2vjCDYP6GEBq^Bc5j3ith*pr`V%zT>a){Tm&0-$?mh&5x;@UW;^ui3lyxtL-QtfU<#JS6vu}7!Ha?*3s^+g%_Hsl~ z1WY-~+$eLWq!&Gc6(TVZ1rRX-GOgk*cgNQ;yFN~FPN|mNY_hK?ql*&-I7CJjC-rf+{K-1Wfp{q9?^(W z4h&E6lKV`cc=Jib>euv=+ZAk%-VWAU#$WeV)U9By8U!ZO6Va9Az4jtKtR*!601-Hu z=oeZZ8PKwrTW5^dhZV3ctEn?9kEEfsFnq1R*eEG_&Le_LdynH25;MWTC>Vz4Wjj76 zXxQD91RX!E@z%b?5kyBb4a#4MO^}J=de2aa;(EmW{$_Oy<|`MLqqz8QT2)MicG17F z<+5jR+KUkaL3UU5Ppt$UqGl{g2e19WnSqSBkJKiYrs8oLN0>IGRL|B)QWaGuuV#Pt@XT_ zf679CxSoCj{-#^jBD~|bPbJ!BFA|!{9KJ4sCR1Gh04kOpYRp+JynA~SdpnZN0INV$zwVjUGY^c%-pbm`-umn8Bm+Nf1L@Iz&usqy5JU=! zIGLY|`=)`oX}E#i^V{~lt&uIp%oAntj>%MELD*DKNmY+vPxC+oyV)XeLdiLaOQ!m1 zvyQD(2eC6w9Ia}&+KspvEJ9kh%kS8xRM4ZjRskJ4%1MX?Fra!D;1%MvSH-o_{+reH zy&D^i1qyC#cIwi*U^w-e4NBa(hF#5tCe;-7pRn`C%{x}%f<`%6UC(gb^Y!JEZc$Ye zu3{`MA|gdZ45?>ro`#oH@U%uGKoZ@shpra$e9e;>R|#6)}m zFWv1^!&9k*@fL}N$KO8nV?ADBS0K2UFsKLz+GIqJz6RWowA~pA|B+EX+uZ_oZPH23(KkU`u4dPv^(NJ0F#_O+(w3+jk5`B1U^(QMMfL z2pJGDTKV8R7afnU9Dnv>cx6EEdwHH$A5>ke(k4eE*>X#Q;(b5!@FE(Xe)@NGzS%IY&$Cv zN{ZYaOO$<0TF*^(4@Sc4tNI}mBbb?k8Lb=jDWA7aHjQ^!$33y>W+z9+V$kA<9>>N` z;n;Y`;8ENVsq9=t{iB+8TWcMEeW9>yHE-Z<*+|gKV)AVEdnyk<%$or+yHJK32;>jh z33KGuJtO0_N-erJE8k9uOuq53eo z_mlpzGAE4;-awizfjRoON4OaUJn*s^`+xMle^JbMSs9&|0laIw#;;p5W^EFi9(kFMxUV9waDl~cx3V*>;xHDFcE=TTn``#VQZ?-pZp?H65%j)Rh0j?}FyFjP z1ltkj-_xJ^HM6q*p>1Mw$v<1Mvopjsd6jYWR$MN#4vasq9idh_?Hj5!uLJt za*bEaS*kdTR!6&+nZ)Mu4CnIc&{E`835esrvFF5(;uAdlFP_#l?H3@Om6YXp?39K# zXRg9KEMkbFQ+CX>h@I(a^)g{kDzM3!{xRqIek9R0N)z=yFVc@ASCs>gUZ~cQM8L6z ze!kNjkLA)PV59uMsrVT#_;SW7E`zsigC}P$15VA{rVfSsEw3{iEbMyL$omgrfglj; z%nVNx@Kz)Kp;OtbYk4mtVJzZRB}*Tev95FmIOZW}xYXNRL&`_+I2Z;*@gK|fF?#~P zPr8eyhA$6hWrGM^ZC^Ke5jFyOk@r@z3Lnd?!sD^eZ~K34J}G4M4f89BeVo6RcF!7W zxv45=S1q%KNw${QfM@aKR>|xGBtsJ^nC3VFkspCj*>)Vaj!sj(ZQeVpk3=1RqO*&< zvU*(y*h09y#$gad5IjiC$wYsAd`Z`K@6P4I>2*at!#Ji}Ak0BCdFFx*HulMYt%8uy3@h0>Fr;#C~pSQ zj?-AS?F%d9FKW;?V$aFni&Q6v5bzh@^g5W-=+!XA@%#=)~0%Np&xQ~D_kKT1lxjg>c;=Ly) zdj=|ALoIV?I~`hokXl1;H?q*ryoanqgM$t`E@BH~yz!ZPAgOpmJFyfz5$&Q+Wm@Vb z_j4hoT2^8A=4A%SlYxktFD{i}Gs#px3A7Rn%WG*R@hdg3$E@%4%j}a5c#r?<2 zE7|c@7v(y59bXLZYz-JJeYe>3MD_)@EhrKxo_@%vL^B`fGanRdZ5o~fDfON=(sqo+ z@~W(&pSn~W-|+G4g9#U%s*L1g@-`tQ)+AtynD`FkyZ8?`MvW{Vi`wcQxi*fVe`I-=mPYCaUZfkTmO7NG!cXqb^u1md_M<7Ogxb zpY*=xTLyDu=(a4atVTNRyEg_&Y^`;?tLdCa*u}T4$S`6haWGJ^IdeDQk0IE%k@5Wr z-t!%pGra6MA;<~_CP2=*?JyL?$drMkewhaxepB|5o7cOA+^bd1MNKCy6Dw0#N-Qs_lc8%jw4~mmF=s=7rs$RY$&lH$6lpBfFWzz0%A;%9vDO=9 zMP_Ao8B}Y#)=MT=Y{Kggq=~~M&OYBTc>`bA_MH7va1%@vZ*=)GdP#yH%38hTK?AreTPhz?I z%mx+#^mnYoB3b-W!Qehqakx*@hC>^J6ymilQiZmbKN(L`p^&qe1+FB{v|j~%NHRI# zlT~m+a8WFu>O(fM=DT}l8m135rR^CeS@aR>-aMkEV!E;*mtn?iLz>5;{7il0JYyNWaaGwqGRw0rbSM-GZ0hiCbnnq_L=*o-Cn(?_qoxMx?% zdHWgbwyO#itLyUG>j{}Tgf&7^Z!RW2&v5hh;XiM>#{U4Y@8_=Tx!lG>5#nuk2Wq{F z)p5}uyE#2&PxK^2U=9-J{s01hj~q`C@;^s7-5(tM&XuWoM?}>t(*@nznizTx=1xv~ zxt7&Ia}94jVqYXt5GjweeDjY#)i02%4r|1^YkV42n%J+`uZc%^A(#tg16U?zdiBPv+4rCKlRU@790!R!->~Kx zV?CJEH++plAbtYQMhVcFX z-UbI^mO}1dDPns_^i`|PO_-mw#06P{DIc+YqCNt1yh)<#ISQ7j?ptotlD>ab7!56U zTJ$nV$J~_@ms@ve8IqH; zF&}O?nCFE)ZtS~HQ~g0w@&@rvAh5{Pj*Y8$#ja)wKAvh4Ypbz;+q1+8Pu^l<>7QE?X;j=$RkM$q(hGHr~apNRVq^Qe$$l2 z>vn;bE@VG?t8Ud}`x42^?7Fn2V;n=GUY}=fO?<%opZQ1h)#JYxQOM>pxP9v>Ztgaf zbrN#;i}yZ^u2+Nlx+*xAB!FgS*swY80&o!!&w=z^zdEkI8hm-N>NPbOa)%z(-h#Zc z_s6H{(_X(tqFEeu3x`z3XOB^TPy-FP*1%b|enQza>Kg_S{{Z|mz3eH-UMk&Z>EBX~ zLWHfND}iJvp^(6mo?xP8eTngJkugzcOULUQH63YK>AObO3mvUzpOK;N>s`Kxkzg?~ z_>_fD0qKIK{xdS8o)=w=E@k z4MR}EcxW{jYg-<{bn%qv(kps}!J}5?ra(B?SgS6mm=lcqlpA;txz7{wRj_`bv)kss zfxu%tX}#;1y`su%R@wKw*2Y+puRU1NSgD{lAchZtBLX2A80KT2h3(*Uz1KB|*fZM4 zmAv%JQEv6B!LDR6`q!{V7LJH?k{Fm{8dCBrXUbwDw-X-$$1~-R6l5#pw2ugB-b2~0 zW1woU34^GMxESg%0;iSIeI@?@&)}#MfsgSSnV3S%WIs|`9jfiwvG^Q5A8a_5>C?DQ zG|M0r`bvk?_ue=#O5zr)Dp8OK5~H+C(r_L-#=jkHJDq)B#hRpZZZSH)k8ZG#xCnxo zzmTK=xSnLDQ&=OOe=qr;+WMF2a<;1>sOb2s_Da0Ib}arm)sTrf?k=rj#coZ!bvXKT zm*gV^QSc}Fcb#bGYGgFL3iWMj#aWvbu(q>p$FE?1?8|E#MrR(&7as&uFRX_Y)uQR*N)8R+ zWJBx#FVEmS?O1IfG6~wYx_(V@;+VJ`&6Z^`OpqgxkQ*Y}@z}dez|71^OmIAZNx7Y8 zHDa9`n$L)LUB?RcK0V$>?^adNC#1}>^f{q310(IPF)_@`KJoCLyS{h|jha~vSIkT~tLVoKxF0uE4nB(9?GkP;L``EpcW$+$HJC9rg?ql;c@b93a=2``w7%`O;caO`vl1ZTwN5_eo1Wrh!zG-9AbkG-vmf^HDP)T{nK1$~rdxK&Y-;MhM)B^&t5B;xnt05P z6B^7?*2wJxU4K+K?)|uqY%}34`tSmCa9R+yl+e-dT3W*cUMDMGU?ojy~mD4Gfg2mMVpt z2&R=imOXIsDL=R{{?BPkuGd!9qDt2GeJ5$nW3o%03u4OSu3yDai5NM@R|gO`*arzv zf_=fm2~u#cSoqCt-b2~EhorYo@y%+uoVE*K*Qz5ok*vB_X*g;#s%zJiU?;s#Sc7F# z`N;4w&j5Qli`_O%EwuS>d(P|n<7U$GRc!eBz0m}4WMuolPU@=={L7I7h~xg`N8jY9 z#0t^#TIM@p!FjuC$nFiR73tT=f@v3HfOSWT*vp4!b+GG?g>1Stxo($UuLxqoqE4obX9Pc8^=*EUZuY>&@s+V6`n z_UaCGx1h5*8XTB(w&`}Xy+)Pccsb}42^RcnG)hVGnrw=YrY8BHTes77mlXoos56*t5uTS*ziq{zZw)QZfERb=%}l2G# z$5hvG8xF(zkd2X;OuI_89ELWwPg}-aDr^elZz*Wk1p-q7V0H*bWrPdmV;>`E-+bSQ z+wmI}JNE2Wd?^5|J|#(i?iV3w{lQAICc$-unFB4&V+DO;_=z__$X<2CexAHZuRhHU ze+QAzWh$bwu^Bpx%-+6gmcr{n`kdyiKmumu3k3O@h>4I;h{|SMk{6GM00GPx3{rgJiQ{tf^Wa z(1YB;qPYkAZnnDeL+eQ^&j}3;{uWA{qY^XZ+Hqu>eQ!)>< zSC0YOz0;K~iy<~4v+kbrW(G<@@5f#`^S;Z6$K&X3Hm`}5t9hE)j<+zuX2F9Q>_t;k za(5I*0Y6c0!153+1x!cG+a{|0W5^gBzSFMYyq~eC4+UinSu)6k%s13DVJxkT5`-{R zNi}p~jL8u9tNt7D?$L$6OI*!iZIYI|xcq*!YpYVr)iU4!DY0RU5|tSDSp?5%{{Y{>5LwK{ z&D3^mKDn@Hcyho?&6`CvY$-%4{H)Sdg{~_7J4(n&>*{elL<|oiGP{R}c0oE>OzxHC zwnB>XC|6y4GzCuNQa?uV3P&*^F$BvpUyS{y{vH$Ie-r6D*0sE9{wKs_@R{9W)z;Ow zQ}+uDuMMEsvahO^ODrH?Gxmrkq)21)SVX$+Pw`$SU92^0>eat>sSTu2QmaPMnfB!i z6-hWtlHwH;$c%qc{e&CH`QH#{ryrGmovG^gu)SW(Z(TOqxmSXh0>>B!NrUSlaD%K* zEK1@=IiH&G)O>NWrv5D%&11>5DiFWdqG8iQ*aVCOwP~YV#?%x?d5E%+j`R4G{Cdh^ zaT;Doa#Zz9R*gdOikF(n8};>*e#CyN)Qxtm`yfhTM+%4{$Oa$kX>nb zVvL>!zF!`kyd5Ks4yfahwz54(2DmGh%2u`}Oegz*V|G*Yp{WDQ394GNuxqNBCB~nS zRrDa@2$XKI3gg!^9E8}Jh(3AdJ}1UYW%3Rd*3X3Tj>V*FJ7Yb8n+Dl_S>O``T9!2q zwx4ABQeDmldlSl6GBYO%+hu%S%{Y%2Yq%!mzuR~EdzP-yw-q3T%@M~S?#%?ShyYTW zNH+=0@U;&tbHQtWtNd;}votj~S*B@i2)DJ@PHFV&i2eaqy>?f(T~a+tMB+<`2xoo< zBoFKU2*btt7xTU?*z=Ku{{U%+t)AbM%ZF8y>i)s(3V{H7S8ehj4>nmq-Dj1LIJ_0^lbn?HE@y*BU6qT*v@^qRP@-EG1 za`%%$A_>hpseIRfGbmRtwz-dCOoVhPgnf@n$}?NLi^T6oW2HS79fz1iHt? za~#Y>{0Lu(JVWH773-N_FyGQYVi1;K^%d7zN0LNTVVm! z@U)_v86s7nS<%m2%+;_)FjFxccYhz@wmTLK}5Pfo~p$m zA|u6z8-{xS0JmG`u?GF?Q`)?nhr7CBBG#RXuEEI#wNUP?{jX;zn>6G2Ec<&xzYb&h z5j{lcB`Hgr_dL1n3@<%%@PR+fnTU#&Nw;dZGgl95p@`ug4TANhild`9z0eewdTO# zr(?7=vUf?4azcz+S?xF>h-Yg}uK+P5an?DJ0j2oTzSUD9<@?z0CT{h?ud9rGnx#h^ zshR8nQG~j+*E|m{v@*tYTy`)r8(s^1-~Rw{t(eOxW*ADB_54g5NptJT zdYKJjEiu`uaCVMIy4S=`ZGRi)ZzANZWv%Zz=Gk$-QXjD3@W`@N&B#$Kf=gG*V>@0zZ>&Br~Iq7<=tWvO*41=}yO_uGT~l?VYDghHUb zgU@bw_+KHuex31p-X9r=uZ!5@96fQCXq9TE$o?$$H9|Jei71n3!FHd#luYyR2W;B6 zkg;0z?3VX`KVsc_=8QUOV(DZK!#=d#0a1&Wq?Yt`eZ9=Ccxh6OGom{KHPi4rF%n!~(yf<&m4o?r~ZF>x{ z8&q(3hU|5+_X$%SEi~bV+ZDj(2m!@ua|@F7sEx1^H8;F+yln&6v$+2NDQ@n;(QQh! z5tVbOAE|Cta-sC^tVxbNZ1+Ew49{tZjszZPc~^Jb@(H<#ROYYM58Ts=Ua$)UAy!GY!mV7(2`3nuM;I+3(G9i!Fg2mBlWm8dp^LY&Q ztmPTNGI)X&l*}-~6f!-x8YGn%AdYVvfiOy z{!wD&MMungN;ds@^@AI?KV#OiP~TPjo+jREkJO?~qWghHm2e^;Yo=KYXJ`qN>oEr* zRn@c&UWwSNli2V%-O`(VSv3~6{MF>x5&T>RH(?4E4?gD`rb`< zb)2pz8G%|F4#Q3gFJ8x`pLTr}Wm}Z5nHVXlE;xabm57maAh{gJlPHEGBdKF)-lB|u zSfj6KSqjd%OyXtY6K)+@hPnPla6&%GA&HS;{P(zd>&N=GtgD-bTg@1%`6eLLv#Um= zSt8)$??bOn^D_d+5OEVc{{V!{1|6G0X6PE~_dK>YdA+pSCDCn-H5R1TTuIIv;uaQ~ z(cBcaNvvQ2hbDjANNuWxj~-drx7?qfXyLY8GFgJbV=Cj~$}O=1CuX%ucJ4Qd-%%nm zeIR=#4rFJnM9R02aeG$Pn%nh#XEB%09M_~6I=6=STx;C9Aq%%2Qlpm*MU#}Hmzv5* zpk#ebd3yUUui`5D?yaF>bZOXgG<9nZ_hRtRn?f^U!QZszz0k>Bce-cRGd+OfNMvK+ zW?jwvd|O8Pyp^feW=QIz2W9%T#$>70s-a4)s^xZ)DgYr~;)TPxCd`-I;slPlmGZ7L zS*?cg{*|5B5sLO&UQ*tsg`P$Xi?U|@yJ-A2Ja<#cDA*W)+y}zzMG0(ZMgpc^mclCw^5JcYaTwi zi3l0uU^{sNak***e_;J!WG-x&^)^w0*KpP96Vcsb%8;s^?1&!%3mIooWG;WHpPaR= zV$D1xWiVKuB4l5XX*%tkuAOBR!azzPWS$N06mm-`m2unZCQ4xbalu;hMh9=l>ApeP zYw4A-HwbtPXVqacxd|8~BytedAG`qK#MZoG&tR?qnIkds$@^EEbQ*Rtm-g&M{bx4N zTkhcT^|7B#Wzp#uLhp-|0@;CEf0kp}Dn4VgC*VzRdS>6NW1g%=GiDrhTMn^eHN8(? zp=N@EiGo2}Cs<-2fTn$L2Dym!^%&?nbV_^H4-tn(fSrQYX8hf$LnQTUw!QwVCaG*$ zIeYyp?5Q&524uhnVoYWjH!c4FTGvkIb1UU-vs^q-x?~v`k{OvGf>MhfrpL6*Ktq}0 zN(6to`%Umybvrq{mM;aq?D@Q&S1o$R!-2qNtUap2nFClg08sg1<&A@O%ElF6{A!wl{p+85E^J0D zBtxN;$@Ulkkcj?j6q)SV;($7u)I!o+N$*(+!)w<9sYE zHtV|u4v}LZ+CEojxs7BDSe1ZQ?&UxXK!HrSU;+f2_`rtpKa{+4vrt7G4&=<9a%+`P zW;4h+Jel0as88Qm;Z^wdpV>)?AG4&(m>&NCFBdT$KEmU}W6A4`y;ivy-m=(sNP@VE z<(7tdADz+Te3d)a_ADZ&U)eH(hS;QW-hov*d+^)g4fpkJGsBh5koA#~l9?IeKK*Bo zmNfTlDzS50{W9*U!9p2d5Qq6iHN9lXAhhCGWSI?uf`zO|x{`aBB@Ky+rpK_hsZRs2XPfZ_&yKk@eA18dVZ493>&b92Y)uh~&uC-nI(PbrDY0$Ry)CSx01WyE5& z*N7itQwixF6vRP0=G7!{&*g+<+%&lWFz)ZNzx|s|o zl9>1_!QMO5^S(c;<)+cJor`M79$v$jmtkb7rJa#k1AG|`f>KlhK)#_Ymwpoy)8KrI zR~t%(a{j$f#kz)@W$R8+Ge8>Llqy;h0E*cYGzck>5fDp~2w;hb_2PEun^EMlcXNln z;b>;C_g5I4vEVRX%kYnUO|mz(yf8h6}%cZuV{1aSPNk z_>ZWI^-9!0MkTe9a}Fyaea=%K-~%R=%&6nGK9-ML#?>2(embqqUmTyLY&I>`wT>l1 zV3*3|A5z3eACC<7%m)JH$G~64`8#RYEI&#dHp^!H{`PY0)b3JJ*NBb)>>?^v`}YZj zgndUVV`sGf5haqQd&OG*PW^o9{Hd!h^?LU4xeN62<}hduucp9LNmdgf^zDVPdj3t0 zMtCT8!FVUd+x1+Y$D8qO41UpdhIhE5O1;f`;6QO#v@BwMN|5e!Yr~CDr#A*it&%CkR{w=ElrkJu9#2Q{{ZeWY-9&g?5Qwa!1-&!+K`rz zqR{g+vSdH8i>?b(Nl`LJB)dm8tD$oq*{;Ev>(|mwkz{sdGM->BTT?76DduUKO+v@=i& zslVt5 zU5#uID*+=Su?S*qEN)k1)o@!jD=u3|99=Wa3N6uaRbL>=LNEzG=Y2?#^+Uo2Wa4;< znI;cg&t@##yNIK@V`{3&QpII(`@Ng!sWlrWWFc%^((7Q^*n5P;M^fwBehs_4=P%l^ zuUO9Hn{rcE3v!OZUc3z#_xig=Z6Y>62?_~C3l_2mh4h)3fcmJnEY3SOS6ag3Y~^#A zMzNTrzxbD5)e;eDtnDT>^G(KJcZSeWbYf z1ob<)T@By$6HwQie?y}WsaFS*I}CLiCIWM6i_DuK4J8ScRtq2%355_0Fg_FBbC?~% zQL>F+&;*nBOpZhLKITD`kpyOG>$T&|P>J&H`I z8n+QdBx5k0Il-yMEP*uEv%E5?J!Yf#c!C7(jE*O;a{4hMkPrw7L z-mSlGHEQHB_VwM{Vafe&TU)f+c>O;+VK5(0UZfKV7YbKn>KpcRO{|_(B7Mezb9Bh% za=9q;T`Y#RhSKo$TVlQfr&6N3PL~rUk1};m-%6odseug1gnNc!W9JO6h6 zQm!i_o}*l0>yceS#99|U^X9Glw&b>EoPVKWn?%37A!IF z%2!-O5HQ7iRnQmf6_iIeU-Z|LcN+NP*}QY0VK9LOc&cHkpt32m1VT10rFG6lfCt}yBdYGrCve3jIxEbU5PFaoszj7PAJ8D$_7_(UAD z&gbNPKVsJP%%(5EncRXgc{&OD=Ps5Z4qKTuL27)y8dEcDL_I)497L4Fef|~Mbu8{n zTyAnUeJfRZan`2{6c{?c9#dnMfsOkZ7le%tv`a5Nf&L4=HY;l&?bWqlh)rVlwAY z8JG4sq_`>(X2>YviU*EdJEShXTebhEfkH^qyx3x@xVY1k}6@V6m z4cot562+4ElsdxJQd2Tr3xc%knzrp@3Yr-oDQj3vVN&{>c0XU&=pB{8#Kc6t(306Q zBq!Dp`Ao?a%=7VIGvlpCM!8$bneQpxxW$wz(Ck*Rhd1G4>s%w*!rH$T9@1nhAowFxLHDqVm<-?06${9ahtt~)plSeBKONg@>*v?j|9Y7>R}Yzj<^w8@N55c5x%F!#~p)@LkYap+xIwX+)@ zFsNfGEZ6QCepbaKO*;U%SEy#I0JtCI82-j5!kWe#V#aD(2A17JBZMauza;m8^+2Gtw+#*u~0; zq)9-)m#AQQ{ymAyc-*{z&E=LbG;o^DZ>dg4Bbysu=And8@N=a9028pHA%*?AQdB_o zbaN8ebe%&5i?EFs#hLq9uW!=a#N~06x>L6A$LbYQh%Y0@K$eVpmH8@ogM)zi(@WHU zPjz!RyvBOwBUaDT_AeP2SB4-jTbTTqH*TPy%%^u!{GW}?mdbU+K!U)Nb}Gi=Ozo711<>M{7Nc#7qJQCK~}89X%#565fn z&fL94S$Hg3*uY8xy^D{rFi^Fz#K5j9C^iaVl5l+>q+HGGnV8Ba$hyvD;anCM_Iy2R zcUCdUIH}4=T*;Nd^7~&*L?S%@02xU96XS0=;x!!Z-{-CBmAg46k5}lX0?iHW6DjCxNJ;w_dcU0A+saopCf0tsyfD%jKk`j%vTxfq)v|0j+?~?7oV}>HdV0)Hgq^Cb8bBt~ zWD4L5?J{M|{B-edOUqcSOLP18f%lw-#jwogZJ z@gf2us~%}>tGjJYn*~E&!dlp`Sz;(=R4zl|y9Pe92Dl1;J#CMD zhe~b=x#~ov_TnJRnC2HT^R<5=?)7O@!)mzgqa|Ig8Wm{Lvy07FgMo+@L!O~mL0m^O zHedx~GE))HIBV%xDp?zh@(v?l&TpA@kmK;#jhi84>;%tc4MSh8BC62HmrRKIP3-JH z_T`Mb28F9@Se5Nf(zWfMFMUg_fy$-U7Y{eAQi{Q1OxBK1lKcA%0N7K&K!`{~HRTH# zHfo!a{55Gh#S*7Zre|YxO*L9rrOBqW3l!GXRft@ipJ|H;`^+pvcxLy1B<=-1AeO;MY^I}jvDao_9tA^HXUzPRcd0Nq@{qs{^NfsZGaw%^J=k*s+soh)@*Vl!-ld}A~Fuw zbKYo+3-RK%y(>`LGBVtG+O4Zas@S??%(-f|%aKSzB%l{gs+dyKh-~{{kK>N1<4Rs8 zE2o$JMOmGW!+P9x%AZq^a~&}!>rySnge-`=lGg$}l+47>^tY6$C-fT%mrj%@$+YtE(&50aS<|I<~tO`1;*_=?iwu6@b2Bd(!{>qlprzQ zFkMAtnbW*YHrO?laflLOyqGZo1b&Df)9^R>a|fto8;aF3czixu)>5?HMsqoDS+R4|?%|A)PbC$^MkY_Ji}AJ-aT?UuJ6vy&Gu|oIQfND;rH&#=nqWYq zvzgHl$#HWBJT8r^<2;VLHZU7@;hFKaxVs;|(MG$5{mnA67+WXm>9LVqN$cihNrfct zWa3DQL-%RZb6zZVODBoi@^QFcw1$Pf&l!cz=kF6+16SI>uhk0fa04u~kRH+3`r=l# z%~Q)esoAu8fE|FZbyqf}EWC9|=flAae zF)Nse_z%X~-o><1)@$uK$6|5Xy(&uCtK*~g^u|qT5*0eq%}^3yBb0 zR|V<|D&R!I1M>m~K*V+s44Vh(qNW!cUpJ21w~f!~l(yz@N3z+ftko3+C4Wwu?O#Ws zKlVk&P+%mYi5UqK>(qR8pleu-uf!CW7`=)K0b3c9$O6csJ4NqWnGNktV8gJkKQ)J5 zVS+GptNLbUrn;Q)`8l6N#InK@pQS#^0YX%P^_aomrY;CYx=&uLU~Sr=_h^y0QewQGB9Y?eQ4$5m>X zF^?v>+&=k`c8LO*gE*4@34n6m4>!G7*+}tqtYCGyx}mH(#zwA5m^Qnxwx~Mit_AI6 z3Yfu9`$J@)W=N!dGP5h=90l4lfYkH)^hmZHlyyt?GI?8yc@wHpynfOWDTDUghV>2# zV4%A(LB_?6CpmzwuN`>XD{)q`tf7<6UAK0l+kBz{)xvBSy3Rz2a|Xakg?Iy*FTy$r zsrq`yJ(?zSr9sL`uyVzG+BzQ|R=)lVuJU9x1_bC}X&Nw7*LO=2E6n4gYV?2ZDy zPyJ`7?AnHM*dQz0*XdqaDwS2tbX@_GTMg?TJD(lwh{(^{5)rBh03ux zgUHqv8oy+y<3$C3j1hfBsIhDBGZG7)(Gxs;0J@)ywOw}wn9mNEKvk7>`+IIWlE!UT zQ1j{ZlMj+$FV-zovVF2LWBk0sbk)%OQ9H^if2OsW$8307nMANcKt>kBOQK7(_aX}v z;3w_cW+bEg`ANniECDSvy`Tf{wzEH9CMu2qMC0!Pz#nLie&NqQZ;Cn0BK5rPvA3@p z%UF9CSywTMRyVsUeN}QFt4RLGbPn zFbG)!atHUGKO+2i8J;8U_nG(uH{-nr1Cyh$)zh{0rt53svjo+T{t@z#Le3-T@%gk_`kI9VZLq5%#mpGP1&g1wb)Huo$1yQI{{Z_rti~$Q zy&DB~PA4&ppRNYEU?!rOSwxw{bW{lx$xOt@SSaI&I|t@)nD9bFrKDC)3aN{bsgU`yYPkqOPXx8hs3+ZJlA`&n)vZZdy**O{hDB;jv52c@J!I(9O?D46ZISr3$y+On z2)~34hYL|No*)Q)XM`!?17TL9qTkQu6Ik7kW-h&CV-(N5ad@~ukQ~f$1p_VOIQ&LP zbm|@&!(_70$Krf{s#tq))$ZkXOx^)18&+-GE`>&vfU&C;)aZ~uLi+YT4i0``@Rqyd zO!gZIx$LKNZO>W6p>*;fcJAac#I(QzQ8hvatBgV-1SDlD5LrnSw2AXw$ay#YL7%y= z>KAqt145u4dm&2|kyzHJA8>lR3yxV~gUb-IkG#ufV4?vx$bKU6-VAiwl51AeX}E3Rx>!!p=>aitBA1Zc2^w@NDJ8t zdle{@!GuSkdq9cLzXBN(KBYC%W9jJ<95PB{ zMnhZi-;{DV%q2YCm+TvPSj}6ptK&|?ahm$TMF}XMb;p&UTDeo%3t!Z@Eod#LPCZ?`+{KR3MO5H#M2KEft2Uqywgykhbc>2h`z z?2(N~lV{U^8KAKqrSX%zv30mq)fieP#Z`hje zc*|4BYjKEohP-2o%wud8Hm)H$#ANcQ$dcimqUG`ARzMMAT`FYCWSKMCAbwhMSoy-$ zx>*cbG59)k1Z|pyQ(XvO{lPVl1M1+plI#6*1qII&4My2R$GKtO0MtM$zv6FZrlkp> zSZs5TCy~NoKh9MmuVk36XWU$r8e$5(djpABFya3IN`5TGYxwE`OEqINacc{fGc`YO zp=wzYPM@N&-D(fVh=Gup2mu}=`uBfI!|6urj`7}$uwt>751 zpV>8LlO1NN@zaZI-d;qStYBa2mpL`nAE$ zy#(C7)y-RVjujT{NCMi`Sp4`SkxcgclR{yyZSj_yb2#ixHstK(?9f~CC6csQy0m&n zA5mo#%Drz?M8{RijNLKE_(KdpR@alm(6L`!!q(H#lCvhY;;Clxnp1cqHQh)%6AGCeJ?%%499#GJB zY+XwE%GrB0W{x`63b|x!o!5*4tDx5c!{nU>3nYng&-eG>1!}$s)Uuv4eY~d6W~K*Y zZQC{R*c*2-bV_;RyBbpVv|&KH#mN}(F+X{Tn3b;|Y1m!3v3^XylG-u2%&la`Gjy|^ z$di!fCz>5{{VCAZH8I1ZR{!UF!cvn zm=lhAaS;Oujq#qNwC47l$Bu67I1N(~lAK-4{q2(GI<=3cSRbV|MXC3Q++)p>WTEb= z;xK%e{GXP4%h)P+wq0jsz~tx*8Slxccb+}kag-C5ay{QUUFo1}OV`fQWwsklU zl|5_0n=O1U4b?LHu3;_$X=SpxM1siKJ=pLSI^n7f-sT@bQGLn_@{fRP595D%D%P{N z`Exguu%tM4jLvo|p=sx-`t9DT(ioP?=6;zI+6#jt;wR?P()PT6yZuS}!Ofe>?A*r*nR*Q|=5Mq1d2Ia+@pDQQIW zBwa+z`pA5>Z%VB;_HQHYKdLRaXxQ?(P}kR67;LF?Gm-SxXYHp}ji7w47=0liaJXDc z0)FsQ`A@@o=ZLZ;uz4fIK03+oIe~`jm`fBM$`T|+%TD#XX8{l}J<7!PTnv&y@>0V; zg4gn%NXk~-vRcl*8wNr7E46cRii<^25pkZ{^(izxAgCjWb6!qbc;oYVz(os0@Gpt5 z$USp)!(^`R64xp-H!^pkzG4iNY>I8|9=?fKab5x%JV8fzk7NeTD=ocZZZ~MxbiH#u znD(^4bgPQFiN@n8dxm9HL-`m;o{`y#M3bd)EjS(k7xs(?l4|Q)9W2f4OYdvAn-}p| zN>{JYr2I2Qr8Q55%bV+B-~ia}f=aGkI+XJ7l-4&*A-1!at;2iB)w1za#IYALH3#k@ zxF?{GAQQ}&9pS?ueETAJ`NPUsO#1vt?c-bWT}_M$Q59^rTqZ@zPcW@v5Ov=JJPboU zeyAvF7x;;D9{~1Q z!|NuVX5B>BvgqJ0L@@^oTj7GUnJFIRrWC{*CQlZ@ee;pW-|?nuM$wrB(X)@qIFFfJ z7p__j>&G)3hyGvG{0v96=c%fKGTt|OPO?R?tY*cG5h0$kJ>kZ%E_nONL{C5Q{{S+F zXL!qNn7jr){+YDoK|8g&)lhB5$=PBoWLm1I>ux8s5QGs($aI4_n1T4!xp{v|)G)Q| z@Aj=~B5RtnZ(_z+#fixDfF8yq9cDR#m?{4NpSRoX2C3(d7-qM7+01y`xl0?F&SWd& zkw#NpG}%cp^$czHR#$rl*^mGuAYVc2%L}kt2XwDP6MrF|)pkbYGLK6y*r$pJEA|Qr zb?8$NdpSUebO@OL0L09=?8EpQ8NQ=k%i{Ju>sQ)J{##_IR&0(6;}o@m>v$V{3* zh-9WB2$=-akG})63ykuP*KxUw?M-W38%b&6(UW`gHYlb-1eGyP6J2(h#6g@q<{@yQ z`#}-s%;^t0xU}XsOs-PAXYs9AEsMn@g|>ZXz*QLU)W%{++EE5N3S#ZpFe1y`RC+QfAeRMGJ8%rdCmLAHRx)tRz|{g zc)64*x7ht_FId??uq1{83SdS}u_hxC)q=frU2WSt-CFnJg30+jCbh5K#wwXW#Hd{n zhbsps1=0x4V5Vb&_;14a&4XRWuW-b8wxMLQWa~?9su`|R`E^l2o;bf5pJ@+5h> z0GN+}w7r(^k?@zc7wH~p+|yl4C~fLTc{V@BND*Bvs)(2gj>K;vpS-}A+nl<+JX`kJ z!6#DJF%g_sBVT9CQyWRUQUnTOtP0SwV!eDps>eQ)=4N|L+VAf^O)sl%U&c)(t$kpl zAD8uj^`6BhRY!&Y0FT)C=@ZOEM{kPT=a4+Z`~bde;%2J$6t5#0n5plEu$Nt9zQLar+V&eBMGn4{o?jO-;lE)m6|FjDbolO zVN4u{sCvgTJp5+D_**%d)$p3W(XnDts^E~C%GWU3^-0I23z-En$y)l4sxbBUl8A+O z{{X?9LHv{AwSU~ai>P9?4;Ch<;^>~&kjPSHns+iq=p|71Id)aVb8MJD(1~?{5sBmF zBNJoK0J5W|F_jb@R#dZ!js1?N`VSIe-!Di1qyf(;ReykMD{6V55lV+LP!(+%jLY+>aMnSt~!T|H2l3=N;=kUQYpOt~NZSb+iX0^;VLa|H_QHipOi8C33f)glYkk9u#OnjJb z{wVS{jmdA-Jb8iGGE`pMh{am z_;u|%K6}QP?3P{THg!kd`g+H3StV)2vV5HbPe&691VThPAR?IMi&66job3iq&N~r+ zwXwJk=24EWOBfYNfU+#MLa|a`QtEZh!~RD+nU^2~Sjgb>d3w6uy}VIgO}47+8M42# z=5SV@5ej7`Hl{&u1(O}n)&tl@6^sH(CT3mqdcIG^=|hsqPJi~=7cvYc7DEAgyrp+6 zPX<<#Q23ec9Lr)j7@x=Fdt9sff!gilFjR6{5-nZ?W+^`%L9Vfcq-QWx4&{JlNm_dh z6+cU)eyC@p6vT+UZ-6%1!Hpf$DXI+%S1i`6lu|90GHsSYuuQOtl1ffZU=i(K(-cfV z^(i2bdoMa|Rx)nfJa?`)ccH7}-3I#lHcXL56hVT zrGLnKMY~&nmoj?g7hDxvZXtn?q^x+QQwXgwk)TyhRwh#>=xlpUrX6GY4R1T<8n-KI znLj=0?wrvc#N1uIL@ng9pq6^EXs=443tlFwV&Vl?>L3FpF%05=vRJ>@7m)DO!+LA9 zoGF|G5s#%#-G-(j2%B{Zu@0DyWW5pE2lAE_%<%!^c=CR^cVVYb#`sG)eUmp~`0M#c z>=?Y$n6OYoE#twKeRb?8I>1{crnC{P58DtB3;Fu^oI|PL^qL!H3m>p#TU$4#)WF}r zn2PlvVdVBEJ2_;1VYHG!A`By{(U~Z71`k?EqV7k@zp1Qt1hVRgj1`?KrY6opoG_-S zy1lddyDVg~3+zV*O#zvi7>Gg5YdC#6(za|KYG~%RVv3sfCZ~_FSh>t&&~qU%QDZiU zB>OTf4S5iP4#zPaWGT+_*N^pw3_LiMY&UULM!krOfZ4{?Gdo8s`gI?KipEwda5n!6mp&tc_dJs9a>WLKTj@_u`&6idGGS2sunsK=4Om!MZ;DNCd=uh3tBVkThiDbvvGU@}^G39K}i{ht{$XOwYm_{{V`&cs#b!y;v|T z0t1->2p}N1`1{Rz3-TH5gC^|p+RE4~#)?=Qd01T<MZG0|X}Ml^uHr6nN1HbWL9Q#?ml^`C!*H@#Y(y{>p? zJF(HoW@u5b^?B$jiAg*haSC2R){Gdnut37UBv4b#ela0S$LgMR+jdOI;DZOL*T-V9 zmNI5Yg&aoVfb&h`G^8P3t2JHuJyN=hqV45W}uk0C?V(E4n zBABC2yrm6@{01t#SOpzLY!9>&c0a?OBE3g7obq1Lx@y?9Wv|vsF}C(xMmcD&BTt() ztP@1wWe`GBE9)iKkLY71tq1h-S*AvUuODtX8o(9HBeaND5&OhIPDJdb>q8puGkps{*l(A(KRFh@8Xts_>$_R+U%0=M?)OqzhyT=m%OpZ!Gi*|fXTnGA-#nd$Ya^_0lQK6j9 zUtP?@Y%)5`n&HxF^$aH&XV*Mwvu_yO_N_)OfyS2OS>ZBO*OoZ54_T_*>iWG4u*$I_fe108a`nG)vB zo2&e5$|Qkk0%KIb^tM36Pw$wc6})Z8!D*fj)HPiFEL7UY$YN?fm767CNaa?HQCO2J zLl$r(=JY216V^-MRX^9-kBD)34TC}Q9xrRujp?%OWV7{bWHCh@W?PPQmn{g1bOIZ$sL4bSR^X3%Opy;dm)_hDiYwN3;zK1PrqQf^txUinKBjx%Xt%d ziihnb0zv`?GtV>YW2OLOo@edxOgDOa{edF###3XhW4gw1RISm%D1nm%lYgVzXre-R z1tLrFj#wOa`1^>}@X_>}50kNYPa)wNQpVfFV3S&|Hp(Z7n^@RivBm}4v!+=gBRtkj zk3SskhPmbJL_bW&;#aD)1x1pfO<>H?M19nz404*W9K@VVH2L5l2l)&lcYywG4*Xs$JKNH0ME8t3;R!EE><-xFO|GuN`&FH+L=W`_KODN zLdov!`91Dss55Cq$w?f^_WQ|k5%PfCHWLev{k=N&H7ZJ#O>NXHOU{{Z6sxQO@@wfX-5NH#?* zlPx8@Oo2Nqhpe`ge~)>Lhd*iJB0k?~`$ymB?0KsLnM(1Mu{JA$*)od}u;69^vH2|K zLg`QU$3JdAYf+Y$wb)F}*NVT&C$o>QUKq>710H}QjXF=%o zb)0U?OEf|@fb-a!RH{H1u4V2MH4IFFE<^HXUef{g_>rRSUO>i(>iIo`8Ir|edU(jw3ii)s$UHwAop3h5_^rU?;o@#7(aEou=6|lOB8RUW~%Y{46|h=$#AF? z*MW(VkNkO`#yE)hqvek)&KF}#aabL>*$TbvV`+ZQ>AjZ%fg2TqsSvz`mI^U0lMv)6 zr;ZEYV8MB-5HugJ4!5i8rD4T!df{8it%K_7Bt>0VsrL_IiI$A83++9oW8qDU$yor` zFId_t>R63k$bEY(XlGkrhQvpxq_OK5i5Qp|`|;0M=k4(iaPsey{GOUMJaOSXjzz^) zE{ErHH47y{hY>Mm6I#K>IOKVVW8AZtiT*$8K66)(zfdf+t+#X913!%?tSc&>$Vtok z+4#VgLMina6_n4asns)ynU^woS;OFU@dH~OyVskDXVM-SyZWV9oJeH zHg1!vup2Q675@M)1jv~C0>)=N^Rg!XpP!7_RmPG(Z&m##BkOH5<`Bl$TMk@YES1@@ zVkL?qn1U$go1}%z7Uf~|b9x4`S2aPgX^o?OmMY|G#7quAtho=Dvbi5)u`%8%#Kh0v zp4nW!+iJy4$5Pp{I~VO{$YksKnpCNvOyly2{`AfiG1jeFtYZbt z*eXB(QUt%qQ!_Ap#Pj$0`JM5 zCFJcp9aOeWzsdN0Myow06k`o$<}85XA#Ag3R!vcUMeP)KQ2zjDD~K`4Uw!cw!*S2?@3y^R_F0LZEZaP2e9%yaPG+2ZP|K+?wk ziuA2JT}bo(q203hjILm;G>FI+CvDLVBJDlRtTHM4E+!&=TxhD+uB(r&jmPNtQ;`Sk zdnm)QE?LZfYilIAf|-@YhD^j9#3PO(G~vFY)_EC?TLos`L@C6#ZQEt!$qD8=)=9$5 z7c&#Y0Mu0Vo(Q6T2hPm!b^DYXtF2OI~kd+k*sAQ080Qp&)lUegz#K^{<(p z1Fsz7(!Woc?50_HjRV8DBxU7o=VQOQzav4yOztaHdsxp^n2uzk6rP+2kF$@z&!XsK zartYLlh^SUyo;KvZLhDCwABU=A7)FxD<}`Af*9rt>6Kx;#6ch1pPY7W*Iaoo9pp{r z+a6);I98piQ*GggPvlVKRx)7>_T#m-0;VP+Rx><&2xec$esU}KDC{+KFEAc9L)T9i zu48_m7S+L#zR*fnQ`yYK3dxLb^&+_Y{8h>Lt7*5f*2d*?ek%RjE8SHwdbSn#Y{hFe zy{$;Hs%RCq0isGsI7&(?j1xY=KR%hrZ#nwvuYsLwGpNyLBaYYU$|_y65PhX%GX-D+ z?=i(XQ4#k3dE=joyUvxlUeqt+GdMjn$8|1{SjF74@5$#Kk`_tV?`_foFCq~L5r?pZ ziY6nO83)0CBEm##Yv`B1?uO>68iKLq$&HLTH4YI&ea zcD*{`VeB%2SFKP{BR@-ObKO3curwk9K9yr0@A^QD_8__WM&w9d>9VIi^ z3t+aQ?X9Fk1j^D~eg^E$jpa&OkMB3XQd)MgjVU(0*wD0uUFjcyGWBbbWaLM`VOtx= z*kIx&W><8({&};Qv#@w;#U3)Ji(;27@(#(a<#DyI7*7yO3r}s=j|4x=!vxP9%+JS< z8~9&S+U{J~c3&D`c6|LC2E3kQXvM;@HCS;IHW7~~n-&3yfoL+p40JJpFzQ1LwlMw? z%i8p7R`Xs}w?XS0v~|p#p~Td1pCbb*uo&v(G257HP25Pt%=P2oP4GIN@0Z@yx!vQ* z`(-I3$7eFpIq&;39DhS z?W*DIGuY4&Iu3~>URL}Rz z{{ZLUD(c&|{Z}oY)9@Kh%B~eH9GGHodL}a|WWkV0a0_a7p;Wu8ybPO8WwSF8J-&Fu z=IvFtV?C(uySMKVEsGguYKY5Zl)fTOZoJHJ)T%M~{{R}==ou~rb3Dh#4X;JoXC;K) zJcqezIZO&=*ns`Z82nBih&Vf>x&?y*7_n4W+0w|Fe0{n2Sp2=^Yc&;y@z07W?KR3I z6_lx#ZYKl-#~j1$R#&)r<^*cPpk@b|jyU)etGaHrvgcyol7CQncCPQc)NFoM# zWK1%mqnVN7XVkIc3+){9@sYV71IE0KGXvz;?p53E^-#p*Fmq0{$w@<4=2ryQh~U2c z<&*vODf!QC&G|a!LUDd;yMGjige4e#ZzD?DNih&nFt=G-trUJA_YnSm{6tU0%>MwM zyfLd53T$}WX3J(tmClu1?jBhScd)rtb&$AgoRZ*(YgLH>>;C{B*fQz*Z5*AKTh+X` zzS*YMHoW4zd9|D92XKLcJMERzgNZNxWECP&{{WXCbiXHf(=Fi-9$vSC^GmdvRueX> z>zN#r?!NW0YK&bcQY%O{JrW#(tVc7+cAvcIv9RqPVX)cRalSe6J!qNqvd$1`d zA;)NfcdkFLSpDPRNV7IJ&G$1)6{2|0aejK8n;BxQoY-&LJdB?{>!Y#DT!Dc%BG& zAEz_ASBA07yR2g|7i>9i`r7y{a`s8rtGFgQzCxqmD;XE~yyQ9Ne?Py;u=w9}*E94g zXR^EgI~8{A+xUaW>`%Y4V=V+h*sT*WC~z3dY!m>shZ6DO-F^h#&XwX#CwatUXJDn} zTqW8s%2A!KJ!2`8MnJ!Wl#%X9hfGDQ3RlyKOvCv<#C{sqJT;_k+YWCZ<84x|fsn^c zDz-N=+f^J%s*lZy#-_keX|Tq@v2FE!6Uv!0KRcd@r=c5O$FuHPyyiHq$=2Q4nz;{U zswo2jy*6vH)l6)A*CPZ9n2wX`=cKh^d_+s}twY%Sv7glyO#OMpxp?(?TDg*YKp>x8N&gac?yjG8JuB`eh;*V-X`^ zBF^7v?ZkYe;&r<}KxxVN8v$_CxgwkiQ?P%Z^w>qvM8r%;@gheYK}3D$pOd=Suhar4 z+{AdVJBQox*5i=Lc>`RWXj%IoRi@o$#hUndw**Z`^|roGsFvYhZsgG_- zKv+cv6U3lX6aN6wf5fb-&bG159ZzUSjy3e!;Q>P>dm)a;*zL;Zv=y4bD(o}Y)YYuH ziHL*epNe@(?a+xjuE(Nl>CV!N#`*#?S zzXpr1*G0WkAF6BRi?dcT7O}3U3{{&eWDl|KA(CTwkvU=ZI3XXrOmi4>xT_k*yv&Po zn2gS`_o(bP-(_;O49xTuU1-nc9PiuCJ>T@gG%&$Y~t{A5Oc{{TGE&Ut0AQ*+J!o^0K)2qAXSvTb%sDkE1orcqob%L7{%RNWm0U z2wdQ(S}I_5oOgoPUsRg_NE3r#Gz~9Bh}fs+&%gRzWwO4hF@mB9ZJfEI6LA{g1_B zu-d`q;d#gDj)jZy*73G~a9vf9O5pQVl_@|($3B$8qqp8I6!AX*NeJ3>Xg)L3b3KvHk|l!`@o+;jbKb?Gk6`qz6A==7P5nN2xfxtayuqO+jf*XX)5cs% zmx-|Hk}xl*TrGJiJ|~60q`@5UnfpxsV}DVeJ=CgE@uGG6SMfO&#hNs>JSEIyvEb-u z{{Seib(qYWsi)3T}L61uG~Y{uG7bZD;oZe0m-6BhvCqc`l zM+JEGE4B0Z4=ZXb#II<*S(sgCAQ%c$S>_cC*0#1BkUKT29LlbY0P`@S{>iSNle`?g z?;bdYYJNZ2Fs24{GPyNEHj9v5lU%Qve=OI77K2$bVCIBC5UhZMCXwO|A(#sLH;w#d zlfz{1LA6=0-O8O1sxoW}s|S;s^{xoJbwF~-cLW`}!atcjQJmKHeRDHZX?u#5pceNs@rVN0N`C^Y6f(6F0nS85-DYDobNvq}MOd>te{C zrMiU_f4LxRKsgfzbL*bZ1BjVM=jKgkFO_B#Y31|V?s|rHvv3;nMzWup*wD66~;lj}<+Rm=B zU@ew%jjYzanaA0rrtfLOafHu#20T$*KIAJg;%Dd2A!hVL$j&QK*{x?XnR|;{ zEao#A48!kcYsdR0qZ>htm$GDHxkH@AN4^E!8y11eSh_mS{F~;k6 zMN`7zjc}+-ne2Re{$$nlY}RjL!|40|t(DDexvcHW*-Tf^1}dE#eTuTzsWWa;O%e30 zf9-<1z9v^B0ms#t{Ev{bb*G#jw~U)N8i~1T?X00mOL*z)t|?T^{{W8=*&bwOIOZeZ zNc67?cmpYSIj-**+j$MYU!hEF<#Jh@jCmO;|L1T7H`WK0?>ff2D?oW~LpO!vHZ zYyEw0_P^x}_54=6m8!K|&U+$t>)Eps(}Y;8YieK+3I6~;ZxHE@ynGSl+%s`wir*XL z8&2G{z+eV15lIwnX#%+AnOI&SI`NKfGPps^gk!qoV6Me5x`TiqOTd#Oc?I z4acpkT)>T+VtwEkeyHF@-$n2S-?)yqXUbkn%;zdubJ?xna(Q>;uqx@y4LdTYc5TS$ zBn9p0AOs=FsHR-E-zjT8C!%?g@R|t~48)cl*Xw$Hthe7Hix2@bgoCZw}Ud68xb9U53@eUdl*GqO~&gULfJC8E@Hc~ z7=j3?L<&BktF2-y*I7?!TGwm?{y4zv_yfp!3kBl6Yblhy7H&(i4J#^VK!w%@Luw5AKtOnjn3IBM9LanP z8E@0>I+ey{vsi7zBVcQ-19u6x%y$EINMdO*Ojhe%pt2}Sh*`rXcVXdYv%S0 zVXyY>edFx<)J92UlCtt9naYLh70*7&=a7(T+;!g=c%D~hb^5B5Or^&$hz| zWOX%wkc@I=5!xN_J`K(IcOE$#i_x~L)@&JB9J*MX_C_Hw0+wtBE$h?;l0+&(*99EA z@7%R&-fz(~49Qi$axPSDy>y=Kw{G9nTsU@+IqyX`FmpWFOq5FvH3p~=P4%t z0BBx1wm!QXZD9ipdvbO?wnn@|W0S2&Ig;rODUpH&o$$|$G#WU(-pjLPuv<1R+wwT+ zO?dy%dAlobllZW{L;$p}Q$uI56PXQ9} z_mA{uP`~6aB7X0j3rMwqpa|Nj(6I0eO)Jex&?vOvn^7SUB_+Z>{{W2qd$~_uwNB56 z{Ac=gxr)kUD*A5aG8oF2M-YK*ff=D!4Toj@pg|;RA?++KIG>n2b5CHIF%?LZdjZ!%@-K&Qxbnbdwo})4OH77Z z!Q^H5oR&F}%tbWUG51)A8877?;>H`CMKeDD?z^vK@bJ8NX*=dlZC3VJtBl6c!lm{X z!r_hjdq7TFxdnpFk^&R}hy#ezX8TwNbw zFpNe521;jwFY0*RsPEBHlXp+2lE}Ke$=I7Y5roxDam?5e_Dyk)vQTyzUznNue|*XO zWvY2E%pN}1GIcZi5A75vEU|QOp&0r~0iKaU zv)PwJpODRW7WL#Yb>B-ag~6p%BkKLe3jyS221&0=CS$dU7(mPU6!(l{vbyK# z?>U*z>#whCA$H_a!L2sXxnraE7_l~eOs^*pJz=seg6qso{56@@JRzo{_75YmB(wKK zqSXy`MQ0$Z03yU4mr1_cj2-<=i#fz6Mxw1dWVoxdSxB39T-H{D$Yg7kVHJa$A_-X(`c)!FF+5|t<2Fx(z9#Yn-_|o(?ZYjQ z!|X9=b9*8zNCnxWVL-YJ35bsKHPnT~jC3b==`jp}_&dUWHD1$<*!PW>30{_OY0Mr# z-G&pVW{6i6F11l&ObCTyOpf1|V^a=dd7pp;wLc(xb0x6`xtPh}t}160wB%iuaI(v1 z)%0Oby?W*?GX<@lqx+OYIuMYS%06>19p2yairR5LOteTt>`uRPB}G>Xxg7dSA}&;+g$#(00BJC0xtW|y zG+=b>n-7rn{1yKI8|SoSRLN)m0Qhb)=DhIfbxw);r`N4ymf&KQ?`)^sW)TrHCLEju z{{Uaub2zWrw=0`we*rrsoS7TXPgOOF-jIDsQ;l{Lz^ansKawH{iefqBr}b7X;%?TX ztZiAG#VpAan&cuoT(iGYGr zL`(5!_r)tx#Aa}`8LA%fn8ampj;^Z~2HBl^bqSLQwduDnSa+BxC;<@$Ln3A(L%$1{ zZzE^2Pts`Su(^7)Sh~51y^nnsuu2HxkG%{oWvb`cVy;C}Kl13{6FfQPN_9<{eTtY_ z)3v1*O9hj`P>U;NbsVjityUTOg_=TrLj<-*^2_;|a2zuD?-_>O2YzPPhsR}`pJfci zc6#gGiYl723#SbG{{Sk1QY9lXB1}2rIgg88Mb~p1CVHk*1Ekl|bDEPCY59z6E8nD7 zS;x}Ww_M7+n01M1NUVxNYed0JgbKw^Gx*10-g8?H>9N-F-q<*qakJ|S9Qn0T)>mj) zWd@di8&wi6_JK!P6XrU=8Qrv7x<+?de~mU=zAo-=zFxDbCjS7Sg%e#CEL;`YlSsT3 zUN|m-B*{RRS(s=S$Lu=_w3c}jSyV#9OA&$)I)q^XVubryAI&)8f?3G!YY)~5(sSYdzk#Q^%f&qbmdBu*| zt7>?k8n;Txt2=O=Htk^S*1lEby8UI6SrVKiwU_{Kvg~A^%ZZqh)i%u!T*}V0thC}N zRTN`sV{R;t9QZD^Sc%T6c!jG|&B1PkX+A?EkJTNF7WJtGx&Gm{FG8D}?o!fZUngg(U$ zWs5)r42eB-+b+V2~e-&pw5*Z$H0MHY2qD z6Y!q*wPW;jt3RBweG$+5MwI*Q*$FZl=unKC+R|d=Kw@S{xchzPBe*>qKaZzGwSw36 z>S6xHIa-*D6tg!QEGQ;|({2T9Ch}ADG0gr0DVUL%&5h7^bKZ+)N0v7$_i=~x^s^aC z7`xYO*aDQ;X!fooC|~kd9)>)ezDMoHz@xJVn!Ao;HXJD6u3d8ScCwFO7txTF%EW1? zCPuJAplgJ_PDo&&kWkh{i_q%Nhc*;zd-`oUoz^;@BXYf3WNlYSK?MutGut+)r5ga35c8CVF#XIgyx&jwU_^@0Fs|03A2_>XW%HeAc6&1 zL;|k&B`}Cqz87jnddYj3Bf%Vejo0!whP11=EKZj?&f9MZfA^h-8Ln5OkoUMl_}`DP zKWI&tT1l#*l)%cxK?)$A&-LzZ8|EVJ>xaW`Da_HiEM6xAua!n&RH>6ZaoxEpl@zJ2 z_L9&Y+Q2a>1&085_n#40+jV?Z&GyOHq_*r4C05ff<#P{{Qf!J+qGZX;S$E;vuT^m{ zFfkJYw{Kwb1GUW$O3P|hb-cUnSG|7#`K@in<(Q$gCKc}lu=)|p5XpwslbMu{%5IUc zZ5D99U!i!3>&W>8zPlNBEt!Vc8m(0QBc90miw#<7f*Ua`kIkKU<)a1fVAMB{9BUYy z#XNQq7qQn|s&pyUvu7c6pbjh~O^rxQwQ|EYNbw9%u%;qDz@**2U!TPW-{Vb}F}_L$ zr}}d>YK>fWZ9ku{_V9*6OVz#jBkzeneIyn3Y*t( zSj>Gqa>?+gJ0`0PV+OxrYylJlmVAU4rYG0?qha=pb!6Vn=k4os!UW0ju|$c%I1U_Q>d)AxEuQ>zD91~F68o-ZrTw<-H4PX zyhNvXj)CHsYFgAs-GZi zRPeHaiC+LSbksa;g~k5qk=m{2a|+1)Em+m*+5Sv}KLwy~9ivfxQ~5+eNW#qeOmoV$ zf6@+HXJO?iS+}G;c8e#R%;$37x!JPguO!lnq5>3>U*EU1m@WoL52qg-wVd`x0k@Wa zIi>7*XvHy=@Ou@j6(cS51VoUw@|z|1k5pHdr-ZeWCNPdkB#>_LnWFRginsG?XR)=Wmk>6<-W!p28lG-2@i4irAA*qp*CCXM`q1{y`# zG@v8YxLn71pUk7NNA&aLKQ835m3`#Wpce=CcM5%)vDGyNUqIl^=XC4gWyIR z$`w4o`v_-`lkFD9>!?_azmv0?C01R@SafBxKkskWa7ioi!&b5guMpy~BW5I|V4_M_ z9cDu=OMUZpBH8A2wCx$M-R{c}jEy3FOV>L4JJqg*lMnG3Y0NYh!C4$1eq@leor6)G zqI0g!9^aA*_L;3tHrdy@^pCb5Dk^03)3*;`%DwT{QbM!jNAPpEdmXjxvKuFpvpbZ( z>Po#me@knUG+IO5_3J3QGwVzZAZ#W?S5phLcOG50oIj9uOQ(bJ-oKH?-?A%dVs=Qu zW9w0LB;huStyI_*FycLMqA)kEWJ&~JSRtDy`kdSG)EAK&G%Q`SS>ug_-W9!~$UBf-3MofwfJg_q7i&?6|Ac>Dm?Kad~Gb?%J#|E?3ajfp`Gku~Z;sf^bx< zNis@%Kv8wgOT}JNqjMa;7Hc_L7&^488nPJ}$KkN`(zy!rUSfUjV*q)ZFTWEA0Gaouvf9wrW#ruZLRR{rGYT|dU*pYEC>zL4O8WR76JdaDu&8VpLUmJ7dJ^ z{xdq?wWHUOj~#8Jip1j(QZv;-bOvm-sO(AfxuC(3C^48f`T zrH|Zk_4pOM2??&3v%E|Z95Dn^0>SLaiTF;ph_wp%`_+7_vFE&Q@ijFCm(@iBMA#fA zx#gEDJCZy^NtJ>3F@#bP_{f>i_wDOPXli~sxvcq5TMVftj8w8z8eqX<-2-{$BlSFh z@mb_@MG*>V&-55PdhgU%l(bA*^)Do6mtz=|WAapR+MOyHs?JnG4NSWCh^|H#Bf-oZ zjP{04VTm=U`2PS3{Js3P8^YLJzH1)HJca$YVYyQ(n(@JQVL8^xYa)Z0FkFF06VLS% z#}l&Uw+yCM;`LmXudq$U$r}%x%hbPJfbX`__t5PW)C3SfKiQzao&IfJU#7vsxYN9#qz} zZ6GoEB_`Ha7p~^4*=;(KG3hvcOk{O7PiDDhLPs_gFd|}5Txo5;sR-S&SLQA9yQ6Ufm9!~nnY?Cp;Op=L*m?CXZ=$)FnT&re_M>o(<=8cj9>(? zNeBFnO_MLg*9Ri<851F3kOYptqnE~EbFbC&JM7lYXNs*YW`zt$;j+z2{Y_nguIE{X z9EE~=v24j)#L=+&&Spa;b+AyCuEhG0jZd^dh$_Ilpih5T#Ds!I*_qP(<>fNf zaYtlu+S2Y#y}MvmRi%osQ7ewARuWQ){ zFva@)YbXJLWKY6a3mazN#a*`#AjaWoN~WMb5CDlBP|tdXv~dzdlIlMpcx z5im_>sb0Y5F}rrxho_ITu2go;?(}QZ3haCpWGvQV32ZflX@nHVtP%ne225nm6H~+4 zJ=bT!=QH|N7dFYJoR{sG_20ySIS~8y7O_)NXP$^c)guiLSxL-5k&syO`cC5!YK=wg z`ufNvdlUSBWdny5wjlnI6kpM@^W|{QU))q*@N6Cd>$?hcckOz09b+3&S&fJG=9N0< zgvu`r6looq1Y~3i1eF2<*4c7Sj-&S;L+dku#=4d-LGZhLov7C4X2fbmj!`qsLP=<2w-xypx${{Z4P>SJ>j=&0Wwqf(#w%8-=I``*$XBZ{CRM&5<< zH>1jXrR}ZcJ*RTY zC7@Xxy$m8P)}rtU>SLBQr8LAj34sd+T)`3cA}-Rqf2!{$Z23xy$Lt!zixLd2Lo17= zcFQj09ty0>O;rfA-e3w8GQXu;n8u2and$~_cy4?*lP$Yr@!hS{W3u)mSjs{LGF|5tnw?i3|%bE0Hn4N+=p+JbU z@RlJfA50ft$DiudH!Kd~OJ1#n)s<@~HWNUxH}Z8cHb7QT7cTm&9hY=jwi2iHhAE{Y zJc}XE8?WW^uFr0GA1iDbO?s7b#m)F$KO>q=TJBlcJ4IY%laDeFSgBL)0Ik@jVopYr z{-4k1v0t=!*KUSl(3LX2VHkRqvADxF_d}G*^ZxCNHHnB<0tx9NO&`A@GRNr}6+77% zY`>@#XG;zL0L5{cS3ezHsK@=(`t{k63ofV#A((+#4Ep7AQd8PRdr$p7Yu-b`7Gao- zg`5L&wy?Fb8=aeXs^hWqV4{`k^v$u^u`XD$P866$m>#9WXXD;eOx`?^jDG#K?>Nlb zw7i2_q0iu}7B;?lGH~k10<+O|hDf8{Q7vf@7kPznO8A|8ZDO;VUe4iCQ)e=oN=<@= zoEcTG2~hpo0WtuH0%SzY!89Ax+i36Jcg;|vWuvWYdy6bRVQ;x*m4yzBu((mgg;h72 z>1VzTk0$hD!7C7CIDB=qc?~GfQQ33Z?AE%Jh7%!WRwNBwpwpGJV&h45&B9Rvly`&@ zi29p^pkB0nx6hkJyv+q~+C`1RtVTGn>D0x~O$y9lGQnJ12DM=~FuR!~&+tjCS|qN) z^o1Ha#-hCa*S@wTgqe(%YW1b@WlQZb547Wf5#y+=V}*xaqX82G5IxH~Dt04e@NNpu zI_k3Fi2e1|#-0ZCoPf&bqAbY8v4)BoZc@S)3S_~uI2bpO@t2fYu&gushmUuRg(iU^ zcXPQ0&2vA$35#`@4RrC(VvvCQ5G{OsUfcE`E^Ld-Jx8zx!3#T*#Ne)u-#*1svb{mvhMEZsV~HJOF2L6^kSF9or1Zy|ZO(bul|d z>hDs&NtGWZ%*jm;P4OpqiFF)RCh zmbDKeWd}&bRK;Vpd_yLh{U?&YlA>#RPn%xWI*4Iho$|-}l)~;4$9on<6oGeP8r_%{D6x+mrCT4kp~EsmWNh0~YFD0-(mI1iV90smXX9Mm-LlkP>Nt!;@wb+? z)^js<*bJx1AE*cD`4~UQCI_i=F%$E)OJLkJTrNvHvC!43VsUgQC2HGq7a$TfrbA<#8MXm=(l=n4$zkW@2Vxwj++*PKrP3T(Hy1>lEx`urE2r z#=kqEj5bj*CZ3lmxNA{b<|No$16Lu}_*ekIKd`{-*HePR>(0&i_hGQg^>Fms5Y3DD z`m&WmpUMSGkGsZTY^hSQDQbn!e9|yBGL{qjp3Oql`*`S#1>sp8J2=sg!j)5>Sq!E+ zOA0?Hi318g#0i}iV|~aAvCP;!W4hSMr|I$)#4?OyVK(EDL9m zts?Hc=U@G%&Fd6L9;V8LiLUDqD+U_QWMot%O#8?9sORm(@i4}C^Gm>Eu5I+O5sky# zG&b!@1j-D@z^(xi{@j*K>s(e=Vm{!o_juRce?CM6x7G>KwTaI(?wy>@odBd_&sy zNW^LRn)-i~G20!=C{AP-S6Dl33pLIxcZXw{3SS0+2;?~8Vn3mufM{ygd~c9OTK#<% zo)6hGTP>2;UywXqiIIo{d#`Y`v;P2_VNXyd3i*L0@Y3zK%=weAS6SL{mXm3MvB_E2 zilqTbOhl5EAmH|cb_oO$!R!kYR0>-E)W~0cC||xax^(J0gE0|e;LGsv{D`x)ns$+2)R=>B^&+pDF7|J$sI12v&w`x&MhPPSk?Ii&vNn2pZ zB>w;;@?0o&6QC<76xCQOzz%euQ0 zq9ja20FCOp7N>6!xow%NuG+m7vCPC@Yp_&t^n}_-a*~v;DbD8$pSXuioMj^{!_T^yCWZFiI{;Vq!=wtlsp^16&+7&9!6j=T~FQV`Z{#I&Y9Z;CmTk-VwUK)O-l9Bjn6NNk%(HvW<+dUhkeiTiHIruihuh7zslY@ z+jhD%HI1sZ0C?o-U2}3m+{KFj0Q^p>6e=HGdbOd?WI+;B6CjpBFuwft^A@d`ud7za zV7GjZ%bc@iclGuek$VGWLIVh2^ZM@7+V6ntT@(Z5H4xVa6d8ZYTvb;g*dxf=ZG&QZ@& zHg%Oe9^V(88j;1PCvuB1bCEciB4$I_zjxD{PqZ`>GU8yvA!9S`FkXCJ4U*lx zGi9-7+bDi>6RGO&&s;*GeP-It&?^^60)>I}@dOYh9LnMh#<-sq(6wQky$oCC8j*`+ zYRO^BN7n{&R7ENdMhAg<7bU>|0G~55>9eOZs-`tR8m7)O9Pm43hN6f>;wj0AGVV5h zzz%8l1=cU)mPr!iJ!T{l%${>@@+o6;*l*M4lJ^Wn5_c`$whDOKmaK~-sLfMxC8!AG zrUg+3*&cWl&naZz~Vkexy{rTq4!jUVb}$KsI7F#gircl4#4}v;t-BVpfZDj9+coS>Sgf@d z@;#F3_DocXnDzw7%#?!XsZ4eEk-u9HhsjnS9px)wj^)!rqZJA%b!)`J2 z1rrMvd)T<-d5QTw$6fLc6J*U~GyDFxhTS62BV)VtfjIa{gc4S#+bK`hFkt#h(E}`& z&4`tPW8iS!d|_V?x9GZ#AIaWEzmdr0tklU(?S;Y==KTu=4zU!$Fa+BGrov)*Y){@m z1ZU$d4;J_bPdixsixGgx*>!R67#RV+(9!lS z5|Xrvo2J;xdjLP#v*g-@MY*o_8l7CG3GOq2f+4O@QTG;f;J$0dXDi&VSN#W<1=P5p zH!D)dhBa#l;K6G+<)4bqCTuyPuG9FbT6j7rmb;> zp(Jl|U|^VbOqbloMSWtCTMMu0n(OfPF{`70AmWT}u~y>+IhL0s$7HfoKT&XEC)nm6 zRfzq)M<%$EnlrTD9p?5WsO`#t3mJqc#dXoTRIhY@g#hcA!ELU!`t-Vy) z%EsPy+~QVWb(geMKFdYNNf;?o;$WwVj(Pbs+QVV7oxhpP?M#d=0~N4RQn4!C_7|2_iMr&lpXc6H3t=ZSM8}0GtGBCMJfVnwZJF&A}tCX2kOp+4lmc_n0e=vxN zPcY8>L5m-cwX7xr&R+H^h61%Z$46FzN~7Fij}DF|GAFc&+hf8^i=Gr8f49OLhQ^!) z1!6KnOh#-vs}#x~TlFXy7-fM{Uee$Y=A|dX?JTXhdPtCw1ju-330&73wCt7(U4r!9a4p&6y@l z-sgw4s%xG(((pC2nB0a+zC1>|KAR8}YQ$JHeM169Bc)(hM8jj2as8A;r0V%iQumPd zjrYp6GM399kH=zhSxt_**^WpothUQUsf^G_ONK-Y`pklW$iFVrlgYkT);2Aoh+#81 z`r7=^u%NL;;M|T;c8OBor!zlYM3QR_czX$dYktV}0L;j3xxHsCVzRzY+ctmN@pPs! zD7%JfSEj1{p@b@Q@cWl+m_*9J(x6&UPL2oEL-k!B9js8uY&l$9(}!2Jm&R)b_NvR+ zBMdv)I}#qiNd2N?tTBW!1^EzFP|a5<8OC*786Q3Vn!6Ud*_ ze~`}vG^6Z%M?Yxz8uC6%*L0gM#_YSYGZ^KuR~4DAp}l(^3;XeSDulD7ea*40Fq)+V!=Fsgp|dd~DJktBfv;Qh4$V0~8~*^Ju{xUR)>{{i&691u zF;-dlsbVuLu$8clBv82+8BmlA%tyu~=$U+#lGl8b<*nafIw^)xI$1B;Q)e6a3>?CS z8fK$`1`N!1f>F=?$(Y~d4Y$Qv+PJNs8?wIcQ&hT(LlmCoWvW+*G~QT+cqb*|xE6X$ zVhHMt91u*wDfuVORR}TKnk^f4Ikq=&dzDm;F{v_KO}hy)m)Bvzl4K=biyqna!1X1- zGhzH~;>=!Bny{WW*YS1mc2rr+kyDEdy!98fl6LG#H`JI3H%T*&@Cu%KIzDK^v^O9k%f`DK965MViAf$*`K0zi>G-pYvTdN|s|X9Q#OQh(J+s_k4xqd_5g|Q}Lxr zde$h)i<6meuq;_j9KB6z4zUQXW+di7!pRU!{vExWF*=u$Zuze+jQ;?VlZwAnT*3v@ zrx3VW8Dk_XjsR=Vc_=uZ86`9S05cqL6|A?9^h}y-yECBawN}q*HIa!;cK4Bj9?b|3 zycaz6o*=mGBOf7~%Y1EEMK~`ZWbxSSW_FESpVDl%TrFqR2}N3<1kgDMF_U*a2cJ;( zIWq^Hug5wTJ}(yI1n6Vhj=5`CKpbDR{4LYa6G@fx0%mWHm1s`c)ghIX3#}=Rm z;%^Kxwicc2S+6mX#?1=Gh2BEKYNp(csR)pdyg+@Vxq|1Pfn4)G7N3wZdgg9w zY(Um(KzNSUKAc8J{__ranZB2~Z99I;Z+Xh5bu4x31&Ob-U9L<-35b9ypfn@t$`Cd9 zZN3A&n-CuPpO;K7xmQxh->HHk8x}1O)ZV=k=h%=4pKIP+lh3a)9R4u{5Itjo_z4Gg zmiWkC%Rf<-LgxKl7}Uz?uGuIsm#NS!$VkAH`(%EYWJA_G$7y-5imEgU@UR}J8C6bZ zViYqlM-l%3k?}Hppuebyk>m1@nD#6N7jeaXHeRD|Ang;YvEnk|jwT{fK@dwQ9@7K_ zGZJ&h{Cu1F7b9m_81eqGx3g`?Y)?)&upG_2!V=%TxLw7>`uZjxBlU5_eZQ6>IQSXA zPxLYQ9RBBX)P+VmD(JZEZ8vh4oe*2X_Y4X zELrId00|C$@_cj8;#~c{(a+nDkbOsS&Dh#7TLvw4G;4cHZl$Qr3_kf&y<%C8b$ZJo zuGNRBNErvZBkE_cM;uKyo{z6&vX{qgvyM}%q4h2Av;w$?GIF9{bq9$Xs48$pE`nQz#I~Hx`X%#8C%BHQ0%&fY!n-X4;)=7z`CPeM1f8E7*;T5ktybmTJ7(1HCE8hCSoJTc9qn9-4{kHJ#8# z9K!b>rh5p&*O5GZq-L`k*0;B0V;^qxw$gEW&D+a5`1paF5%lZs_chW>ug9fIAU5)u z>G7Azsnj+7IILRU7iAidMnPCSApYM$OO9d4mD1&^hNPMkHXkuEW6bkE5OhyBX-0XB z*NmNn*A;ZqbnRKLSz9Z|rDQ5};qh`z>c%y$gSzxg%a$<=AM6`8U9-#HJ;mbllVTTx z*X)~d*-ZW(rFQ)xiHj+f9A{U-HDx^v1_Dh=BU*a%GMv|y_TTho#YZ2IPG;k*WssV> z_C%}LY+1a;)*ssz9_W{yf#{o7o@E_-En;xUbbg=Z{hrb@ba6Sjq;+O3Y@4RdI2%R> zJdy()jR|!Mu?5VoSfeQWe-{!`iQ|oLbT|W=-O-dR|8ze+g?LnYTE2eeBi{GH%6S@k?Ato2-2qjOAhqIO|`PoXi2jWV-x( z)4xpmHc213?V8O&+m_YaZQNZY*8PyqI9*CgUu7s3zJkc${e%Z5N6#=44T7hX_PTAu zRoC;nW*1<&G);Bz$i>^qM^j~kC)*)3st~u78%oLZ)?x>+l(hc<(VzNZh{$AoOQvhS zJIIo%V=6NXl)ZN$dgBfPxH*$4Rfv``e8at=&$X~bh~8JS33Pj*_THn>2^}} z#=|RDStf;#ryc{}BP4wU*pAc8!2AyWRq*cR@726Zsrjz{LnD)^6;yX920NxMw^v-T zVYuj7np)@;jI>CFwuy_M#O6{fZ929$W4fOM_)eXS)EVP8EJig**|ByI5^)v~YLT#Q z>Ln7{fJ-KNG`)~ZlQ>&7GuzI0b^So(GJ9n_de@Dz8s(YD;VQ|*w9v#>6-AL!CZPUH zHA5lA0AzjPy62s|YBX?|y+aeQ%cw1twfi`|c5z8V4na}@IT)){>(BJXM6x=>^BtfL z0%4Q6h23+S{wqwBIuA44&nv@|g}Mpj{{>bAOlNEgc7sNw#|I9&AsA&?2yYaQf``^>g3 zSMkDV=k>izZC}P!em?MKQ*zvQAbqA9%#10dMZ3 z#n81)G%nbt`D+3Q%3=UW)RUPytS;Qld|=Pj+w*&_9}Bc?WlDx7vo<5ItExbd#`mjH zOt|jNlaOWED42-<0EipBujY(C;i}{)KU~R<3Wb_1zqKPFP^r|nVzpuV>#Kkp ztAlh(ZYI1ezm_C~$cU*}oL7>wcC$Mtl`{F(ep!)&d_)L=}WpzYcr8$4ROU@ z#T@ml&5E}27Dl>GY^jy0)MxNWeiHr!iaL};#D!bNzo#!A(DA+xIhfKa-ORRyT&4APT#4&^S;&|pK;&wa4v@Tv=7jjlDgOlxzqn6Iue#o0$IqI3MV51*S#4I8`L0y2z zj_N6xkO~I1;lCB);~#CFI>zNPb&yq-`_xlqlzPnb700A4Tt_9sfFtew@iEAJ=dfjT ze3m-4R~@qH*9!r47u<#8u-U5wD>0XYZlx7#E<`1zA}_HsGcm-+5%ZpVLB1OE@G-jA z$UiA{sAVBAWKC=>0@~NENaOFvwf01!FDOkujsl{3ZP5sWqb0Qe$j0rjXg4qk0 z2C5Y%V*)bSS*E<6D#JHz?>mgd?D*U8gTz=q*n96JfvVS`e97LhvMKtS<0KOXu?9dK zm`$zi9zod~XET_=c>pl3D${QnjMOOPE9QC(Og7_c-MRqqiHHbjz)z?~$A7{Q*H?A% zMr3k3W;f6K*147hhu37=i5y=M6A%G%w9x@G80s@Fm|(&FEEpl5j+kl`yqA0ZKF<>B zy53l8LoAlnfv(%~p)%pL>Hv(nT#(1S*c>1EBunu4m7Va%g3*;bxW!Jzy3%<_QwtVu zKH@!nAv0c|<3NRQFt)%h0!ASF2XBGm-;i`{qS3GHnX9$roAhbeHZ9*NM-cAC)JSWS zRb~u}kr806MZ`eaXEDoe3&OrDvsIaE)iHa~`dK13ZH=l`;zNm*)Alud%yAJc_Lm>| z{mLaiuC8}!##>O^ch4PS>lqEEW%t&#l-&R$FzjJV(Hubmz_GCf69vHx#LDIG0KU$> zH?_^CuEUB-VBX!^RmWlVQfF~Fup>ZfTjC^3k6&a-9F)Y*_7`$*h&6CUF~V!Xnqpw9 zW9Z-#>)|mx%Eqm9lY~D10My43Jj|C_kAW}wKWER_eyii%R_&{R5*DsmdbmJyGBD*< zDP3-{6ZpO9IO1od{{T_*#=EEO)0ew|#(2L?zMP_MxGB@vvie>s^1YMT6d?vVc>c~< zO`c+Y@VJ*cUCiVv(TRzk|AE94-7?O_kzc#rA= zf=J(dsJBqe`4>B$ZNiiuH&3$|tY|c6@*6p59_Ina+$#~6+n>BoKNxXd52uFJE!HbE zb*hdg4XV1@%Ns^m1O8X;5lyR;B@!fVXpHh*f_aaMn7!+KwpOxf@&-d*poBhHt2it+ zZsL@+{im9;kWdKq>N2)ONY82h{x96~M~=a&%hldd<(#VQLSioH*^AR&(Qq*nFzCls zo(5;MLWX+G$J!=f9QBRE0fx6aCW%40syQ`9{532Mbk)b#v`iVjR9!L^dcn*%I++v; znmvDxJ~-2(xotSrRJW1E;3&mmT~tw`Su2emvO@sph@?8qM*=Bl2NN(~Xy!;emy|bE zmQx8HB)}aDips9#?euOofeDcVB{i2SR7}Z%E9wjdCdlT0uY~pcTMw4;KU06lzDM#6 zXbCy3Pidowz$V|bqg69lt4p9KymQT%k%%bfN zEw#i9L3a>DPapQ;VmaPg#SAt>3$A5+YnRpatePc*g4H$lV<=z92U${Ww;pV@dOZVV z<_v{LEBt~=Abxq(JfWcIy0%9`({blQb)3D7dRI#f>`f&qMi{cWY?LTRDsQTL$uy-T zLMOz`0uGV3`2%Kcjc+66`nt{oFKL$OQ`Yb~8;@)gy0(lGSJgz0(K53qNP&cPjwgod z*x%EZBP@2PVHvt-sZ65NuF<&gqC@!+HIGnMsmPZSJt3U^pbBH>k0@^5DcNhQChs)s z<-C4hwqvwQQ*G?LAuvg_Nhx*3bTU!<{V4^sxCr}C&eZ(Jx7xsBQ*T$yVQ~hAvmH-Q zTE@$l1Yc7RM4K$s1$5$0vJHOE{(L{U1ChP>^din1XYw`*m|SX{8m_f=XfjmgOqa2; zA!v$X3V!ib9CP2Fh7rD^&MOswZsVwF)E2=`9}TM9t#>7OkF>z9Q3fh0>oFr$Y&n^p z8b9C9IP1PZ#%t4No=;ZsRwq92nz4@}+O`aYKz+zNbz2-oJ-LClaoTyG{bIG^+~2BW^&+!4DUyf2x*f+7m??tzM*-n)5#q?zpm=K)O~R*MX3?KjgR{-81kvfB(sJ>QJMCRk0Y(mKp_uA40mXY=Mu zkX7-<&ycg2p*k;*V_~Oh#~2N_YReG*-U&?ms8>=F$%ZZjh*XG7bOHirD*V0KqnOmr_`F)U-6J-Z6VVn#gfUNOq;7qV5T`8O@L z<}Gv#hBA#hjl{jHk@OA6hzE8fq!Qlen?`u;T)=%_IAJpTrIWLxY#TNY8?kG>@%OZC ze*0d*S17OW?YDv^_E8MVO*JY>%|3HciV|En2GtT z9y^7qjAlbX*s;pADzS1bVj5LseVq2P2(sJv{{R^|lf307Mh1O9*uXQE?3y&L7maXK z@NKNgJic+PRm_MO^Vyf~F_TWDjKuynELeBn{{WN3#QevB#$@+Ak=UlZwtCyc)o&=5 zT&Yx{k^VE3F#79Z#{~gNb!!xJA8t90IE~lE73ULbt)%XUNVu(#*%>&kc7x!c0#H^G zx{2u@_*6?9_Ks#|IU)O3oV8rfuUFQy*&jA-wj`i69R-j$SdQIDuUqzaVqm6Vjjol< z@gAuA$H4W0R%f;2;{+VPJ1o@k9X^6Z(9%tms z%RWQ2UO;|lSI;Q3wkauUqpet#;?SD%5bSo7rOJK}Mb1eQ&@wbpN z`rZ#SZ7p`bYQ^OOYi*dBZb9^~ z)(Hn4S2-}0!PJHKO&a%BVO+&UyUD!@9*|tMDdHq#U}9t9JovxNUOLEx_|jLTq$%y-To zo`|ZGY4tdYtFRH&CyC%{Q!<(V0LZwHf-;^=-!r);W8-hc>+E`>1L)} zgBBD0u~XXopRx;a9v<=9Fc{>ILcNdxI8@Ky?N+aAlH zm9nnQ#_Ay$TrFiZK)PPb8TNsWcp)1N;$mm*_m7Sk9|%~<{T06@Y`1rNXb?Ksp(zTX zBN4+?v4zK2k>`c2Q85t(6VJxYTV>XC9Y-UpWHMDSSWGTl@swlKrPqqika9Ubdd&Sj zk&Zd-KC=G+DW9-U^&b>%x5B$O?Dn^*V{$fSZP&C|k(Nmb5Dl!8Vi{t8sQ#pR=Yo!7 z?V(Kx$%Q7{XF?aj~Or2(D-68ygB@%EEF*DbWei6N~ZMnsf={oPy zVgCRF46b<-T`t&6HL^$z@J`zT1v@xvw~<~+BFm6!@yEx#!3lGSvCm3)F!yn38m zOhV|YC1t@#PcD}fL4TLPA&&Abc7>Gq;~aZ(MTUr)qzR&)Bdo#X3;2ug5j_+xWJL4F z-hM6lBSo>W=sT7F%o;mq#TN5y}9jKf{UnL$14Dh}rsj z!hsT0g;0Pok>E%GW9=i?`sOEynBsW*qwl+pt#1LG!r*GNJ(YGlAd3pc1T*PW!6YOH1Da(1ne@g~Hbn<2BAmRHqT&(9*2nh=ROk9ID> zEi1<~4eN=j&sciT@MrPF#a|ni!D`-F$UkGxVsO|hco*lf%(p*Ik+W^ftnloAhk0Eg zC>Z?8Y_fQceh15B_6?+w9yalHoX}GP2WGRxSZpg*(4m0Exn*+LNXYgT*XmI-{E-n8 z@Evu0{_B#+JvH|&ZPt>uD%EVBvu34*TJ`}7UIBJxZGoQ9T{@Wck(rOn;)eI-27BWX zoW^+jZ4t52nCiJ_jc0y8kd=qmGzkGm*=sUqB|T%e98DYT>hc)34_F}Wyz$}U@!b=plDDJ1U@GN8u&!7*qPbbH3>;UFCpPW3I zw(g!)#oNVV^p#|=Cw99*woYi{s9l=~{KUw8uVfF~yCp(DfA*z6cn6AJdBu3mb5mZ2 z;i=?peJZWxwMIJ)ak4%6R!ba}I?+fBf07L3rUc3+WTPfa%s9MjD`dRion9`@RYpd> zI~(1(piC43&aM*DK&p%cNAvM+%yT?7Tzun?@wVgR43lxbN8YV7Tx};vt6Oq0w<5GT zlIo1S_zO1CT#Z~-Ln`vN1cI9}BM+LMN5A!M5fZ#3K^8vo7^Q zS=YDtJ!U+9a9`AdW;gXIu4HXk*1TrjTgFSuM49Hd%*-Prk(r)l!B@Ku!IW??R$N6r zc#)61d~Q#GHEYoA=VZR!qhPISwT0cHDyP_hq9S6&GM5Aou!n`Ue9ZmEV58yX?pq*I zJZ{_L9B#c>VJdCx<%r4SRzH+-Q&A)BFbtc#besg8; z7bTG*Tp!iJ_TqbUKM?TQ{{SI){{TNq$BuHit@{dAE8EE6F|E7xO8jJ4RV)ZPx}Dej z*830*j(adleV-HZn)ioj;%()0Tt%IfF}E!p3%gD|qgGup3??ftb@adbV=}3HjDLvC z%tVC0Quy7i7XELl3p?)N|tpy*&r4?h6K(AsE_zS_AWX22G{zD z#b-1ZXcV>FhO@FT4zky^9lG`g)uOX&>XBBW?GsQS=zKO#1(2>sw8U~}6TY1I(ynVK zgZv}s>h-)8+gKfE$(}9C<(8bt*32^>i$*Y^Ppb2l zKv{&UvZVcFHlEZkp>ma+49r&Xn(vUUU0%O|@)|W;_`woZuFNPQIFDG2OW!ta8qg8I zlGwJr@e@5gT=fz=?l(1z3_XM1{57_03(aHuG?ph4z|YL&-Yk0f>cn;m8k z<>w>%VAeAlrOF!)`9$$yPI7qf*=m+A5sa8qK9SVQY&~cYXI>hzgP*j^IiIxa59O@3 zJ8s*s`rnB*Dmll7GX3pljawJ7VD|)9YoA?|qPpszpc@YYu4FSEV7QTmoY$3Y>eg|2 zY%h<`AGW&T*rBQFTQ(Z@uFJ5yslaAwsauN+Gk>l(da+u1h#$vH0V`6@* zv(0Dg8SK_`EoSyQEg+g}D($ffm9@U;t8UPW;$h^)O2^n$s{R1+b_ZO;>-lTeajDC^ z^BIRDKEx)jAq`ulK=zz6d)R6MT_*;~CKnqAK&%zqnyob8buP<{{T=vWZm@SUa+-e(}J~)u!~$UfJ9|= zCnm^e0~0Wi54Ze(e;`M&ZTSacYVMv~-?sD?a`LkjF?C&};45AFdo8@1Spq>_iGpc~ zkwRudN&q_X5#Pj`w}GP-mB#FsursjY?0pOEYR`;fvXmMyNPV4$AtPbJz#v&dSgDd+ z{{SBa1t4!}^3FFCfjwWt+g?_>wo_W6nVG`jme8>+Tb|VtBH;uCJ|y0>{ll1&nB(H6 zzqM_8<%b22G-s8qWUc$A#+9$0D;6DD3F2~gQw(@7xK}u-0r(ONxpgm;j6aXOMR#_^ zKU~ac+DYMY2HK^lmHk|2ZQ z@-8st?q{}9Rh!#2>}DqIdes?_)nn=`WZ1br)p3q=5m{`?`pdvnp^sq?vLZ+UAIzHm zW5;zh^kDX{8sqm2Zep%ht&Co$e#OK&RqU}r4R!W8ta9X*HKa_P2gE>!V~skt3(P)3 z&wl5g$k)GTBZ{1o)t03+75iIaL_UtSVPhCE3?H};uIQSFm{{W>OzPj$*Rs43yyWw1?7gKA@Vj^rL!=$Bx zZ4))|ClPd>J*S>S@5T)o8#HX0-C3F+iLGSxlqHLxtZD0)TIMkYYTU$CVo2BPLJfl= zzQlYo1))DG)8;(FDqgTUwnQ>Gs-krU-bAsrFaH4ZP*vfPHi%f$KuWzmfSJ}$sR@@Y zlf&DNUsSEB=Jwl1e;8+#t9xES)HLOoMCZP2w9dmjFrC;|N)rj`KW@AN&y#Z#V5n?6 zjt5%SujA|f=SIeRVY`R2-&8@insQ64>u|9W=;02TiC|3g0TJ^*jkbR>ZFVbc_+4>( zB@K;L+JC&|-9eRTaXz36=Sgz*C{9S=68_C5_A&c>7he%a2f0)Yy1Q~8v)Qj}V7Op5 z^Iy0yWwg++WR&F8QvqUS0}PeIM3W`nK7RiIthG9Ym}iSK+4NzhtjbaPId##Ca$>tR zBN`Lxs&dl?3_Z0NA!>OUfZ{`LZ*KDitm^RF#t##zVDJ_fX6mu|@I?kp%rc_qF3P63 zh7!H<1{L_>G5ySP*NyTXKM92Y09|T+Fvh>zR2t2{BeloTEs#?`$&s{zafHl3&(p&O zOM#EdW8{{G*SKogS~~bq!*Ba;QXQ9w#9oZ8%Iqi*V}6;EIEpHRfk@alH;#*egDyfk zr&HITlV-uY?ZZQNi>k;!SE#wOcOLK#LQ0LbCmH~+Kv2KA>&zY3Amjf4ATS;V1N(E_ z_unYx@YsFd32nN2tuG;!*YH`&G!bT^4tq`OhGX>T_Z?V;otbfWAs|G@u3IvmY0qKa zy&K2=Cpv>pqXP|z)$P=|^mU}<7IN1Ts#B~?;yr+uL`3l&<{~}LUtAw^1tI4jEW=T(MiC<)+9hM}h7D^;;`SAKT3mv<`arEe1Y zB3aAUAj6N&&wpE*eEKACVA< z$$Sab4=-yv=BJX@+o@!73&q|6N|wA%L=}uDi!1a{SYgCK%aPA851DZz7?ofx&kd+J;<$a4yiWKk-}hv3~7v*moe8*kuv&T4(7M8 zmPy!bu1_sEN{QDo;Zc5uj2(8bs^D@~z{P|nAmM{(isB=JKRK+|>Q`*jvYQ5{qha-J zZ!bmRi?@6f&4IXDnBq_vRVje3wJIFak?3-6Sb(hA5%4!+wv0W|POXzqmn;?sRZiyw`Hbzl?{JwD|8U z7%_l`Thn}%YQpu(eha6tW9eM1nYEXvPY}`k7T~QkFtH=h3(u+Qefq zNzRZ#&_#Ry?ZEe zoh+3sWy(ulPSA>>kjAja3Pe3*1|(A>0CU9r1%udjeGdYF#`u>hUs|VN52im(sZ~+h zL{$$Aen8?&u?%$dOqX&00H2r{=4+IEmW}Iq@b-ILrFCDnm3s$OHL=Y!`fI$F_E+WZ zT(J&eeju+(#%F_*pi*a=s8pwy-!=ViVx4ewQ)GyI8oBa@yPKU3`9tf$N0=~0WQ@%{{X7$ z+eMvcF|O=Y>*TQ#ibnFsfHEr=3Yc(QA(=|;LMBN0l~zF%ME?LynSHIEL(Wmwa60}% z@z=#3FvlH`#ygcii#NK;?a%j8wQBzW-}i2L`|-|gtH<^>4;wP}!L?*|9j8OPH+>hF ziemDvGH;RkbgaZIW6ksZ%!xOc=2iAl!}x!~nY}*$0Fv3`Eq5hYX zs5FbO_`K9((Uru$57#{HtZ!Pr8(hWd*-F_*CUQGPYIo`~IIz=q(j*YlA_g0YB{KkE zuH!HyL-0Pw;k_@%*!vg{7}v?+@39Hi@v5b<*@fitIUaz-)3 zzisdzk`k%_!Mqj68%;e4VjxpCZ7Za~bI03=5rO;lnE9J;*!I2u03^Ivc$VH`#vvlY zsdH<_*Junz@IS&B@n+?%p3Lswave7@ZH>QFDrGKq}<13m1PN}g$kC%@FOw; zgb997Ji!d}!F&Mw?#=p#%jvc}VVlymYE||;b-+BsHjuQ{Q<9ZJUkgH#rZP-W1=beQ znd704QabDg`FYsu`gR`=t605^uWhlYU0x~@EMFpAOuZ~Hl7ZmTUv7Dcjyd6o{Z8mA z468RxvXNswWi&Fi`%$&@b)d=-NtH&#w9H4@BoGq>$GS*ok&l@*Z#7|bEdvL5D(+d` zUW~UNOpjE{6KX2E7_}&zRl!YJj4mU)A*8rW5{_NrHdI>It8nB zbt~AX&7z59dOGvoLV84Sb4Buda%st5r(0gVk;+YGI?es37z?RcW!Y%23ww>K5NXFf zXSqqA-?+qnU>W3a+uh_iMzvF4!rCfU#u0lgl6-)nxp)=&0OcQg21Cya7BXjm;y_-D zOHFl1$BqZZ_V$|mdm7`h^{=$UGjYv#N42Ad>fzkFX4^SWA*zM|D6Z zN@=(ZKzP}7_ewbJg9(}`kjP%QPJMG>oJ$EdD+6k!B`{I+Z4j^2NAXEVx&TIB7v`(B zr!nF>cJNQBUMn)uX_=ZUz1AdzB8}@Ts+D&zU^JmDRGCPJ5`2vD-pl4G$>w)9_~R?G zWEV+PD&%a{r)MFLtm6Bb*7}#gL#8Ew%J3;-)g49(N8px=4x0kH|qE;hbm^@q_e3vA9ohC$MQ96x%AO3 zB9B_(U|pFoQd|LbsnOQ*IwrM`$L*eT%j0Qe6hMftui|m`VT%#!HP!TvYp3%V;CqyR zfAP$Y*DL3Ikyl}_*T8Lo>{kE z=^9&SXwC&$p8aF8C{Rk9BL(;VX-C?BspftJ#eSaji}|y)wzEC4{{W`!20br-s8q~^ z9L2V%R)P1x3aJ7>6K;ra+>8e{EhS z(eikVZT|or?HeY)mDyITEo+gpWag?dgYRRe&3i8~a?q7qgIUZ^` zpOn{jEn)Vnvi;}S!?r4|ww!JeCsbROrLAP487{Ce0~~So`7g_PTS8|2d6-M(w(8jL zO7n59faC=783uu_0OCbmEqbYgVP2CI!T>337b;=|l&G!W@Jye|PCH1zQ^Us5n*BRdZb+XNILA|=n5SN$Pa>gN zNIV8V$jp=2&L^1|fDvEv8eM)ZZ2m;c=(^rp5n$JA1nk6Qt_C{6Oub-`^#L>^*Js)? zXY53E=>ReF`Bt$w`%Yd~p6BJN;Z3;;rI5$iwsoW;BbOS6J2SFQ*}sXvq_#e=!4v4=4FICy>=uN5=ZL zJ0q~rXr3Cn^3^U34^o>8BvlsG1xOpYDzcwr7Si^vA+r*xl^SM8)~8=_j76QF%QtLl6|G+kWAjOBrKN6zPP#gr9niQ z%H$U-fh7$5NYeJCc#|u8P})3Gu3W$Sb$frmysk4wWRTfyv+tuGYKOJ={yLX z!^zY&mAgW_hRWlx*>t+aOBu@*X|Ql3%9~thPT)|A%pHGRqgtLK zx_^>Q2qk+JK;k4yC66w}B`x5jiY!`3kMOw^=5afw1a@qdM|R8}b0Ikbw`qc|Zc3ZV zJuDFtf)$90{{W6S^>G0xZmQ6B7U+q+Z(+pe8P{H~iGIBblqbQroR4jA(CwYrC>1~F|u@GMNTE6kSn`vw3Asf>1_L7*rs7+!nRO$9m79c zWy{sCrd3Vr4qj&c#k$Q*ZYm}AOVBeFEa4UsBD8@pX0X7Fx+St-JYMonODfc8o-fynUdY}DPDz=YQDXkT zSfF8<8>p^D?66Wp3Nx|U#MP9{E+S)|ThCrMz^=x#Tpmj!oT*gEraRb#jeb~eJ2pEJ ziJKP_GwT_E8|1BjAL3is42Cy9e(SbtDyeT3XT4gPyVa6WRmEPYiBGMP3+7~lg{VuF z$Ku6^wTs7RuQSG4#ViIsn9Z**>3)S#`rW}!xpiGyOFwco5bhxY<>1*{X;Lv zIew%Ey(wg}L?_nuElUsWQcW73e(LqAgRc2*rgpwOm31%IbgOxDwGc!tVY}SX?B2%G z?Z*aXKi~8lJYafX`iCnNF%QLT4y@|aUp6A_vfQBpE-bQJ^$;M*-IB4Wh5Zf#e8`scAmKbm{hhOGyY6Jx4_~50MyQs&F3!AoxZjk0?IjHNabwUw~1RT zkQ3_-gClwZYM&|g10n~7lO_RwBJ<=8&&QOk*T#9T7qIF(L&Z7#i(wS=l>LUo40>Al6KYo0{FvE$;5t>Fh|yP|f3gxhpsD%E!YIQs-sBqRp2%HG5f} z&9=!V0?Za4n4H=1{uKQ<>B39#W@5%iHDS|Q!DHgiVL25!t%9v-IN=2XB#KL_cBTN_kjQ*Bl}(_7lv@5_R^~vn+ZJ&ZE!kRD2D(hQ%Nbii!Kja+xTOz?oBP+n2jjwPza+&r+YTwGyE<%VGjQp;CjBE1 zsbu>XBHv_y&jC=%ZeB^VS=KjSA@0FQ#GKrQrKI7ak;I6f@!r1EnVILeA~6vlMa)F~ zlSog&!sIa>|6kgX&|ZJ|vyDG06(REheuvI<>3$mjwmV(zDu z+0{!|&TLui)!Sm4*i7t2{h7Bo7kx)eirp4zpgA##Vu9qf{{Sq62Q+QR$R1AA{C|+e z>iMij1NNHep<4}|#x^!*F}7D(DrI`jguytRBn^RV8wij80Hfd`y8VoPzmSaX#jWe7 zK}`$PGithnOW9dwx~YAX4Vz1m1-9EcvLz(+Ou>;sl~YLZl?&5+E78d8c|5S;^A_?| z>jom5Ej%o;7_0XE_jp?uJTj!u;<$*Ij(O#*_+KB3r;XEhUl(F`J(BI<9G*d0D%mD0 zA6UZOgetwIA{M9>Rzwn}J%(gcGd)H;=PQqlH@uad8ph*+RqSy;O4T*TIz3stM^;w+28W7ZKcGwL&f4(kbp21RJT zPaU^j*d4LA$QtvmWR+TmR`C<=lIRki_uNo{Us(FhDi#M`kj@s!WJy=w=DjAKExAn5 zPOzL=e%`!uiWZgFQ1ZGJ{b9h_E{01%0v}64p-i#~GRc@o95vEX*!UEhm-lVw$eAprM_;o`_9*?bz8r2yrx`Yc4Xd|t zFi^7rF%m^HCpCuPCM`lE9CNt+M+QNJ#B1lc`4{O!1%kO? zOCxara&TXNiCXe%)u0+zjy7zLOBsxtZnqy zY|4&u%C81TSwfnUKW$uZq^;Ct6Mt*9WjLxeJiUVQKbCcD)h%l#`xCB4R@~;=S*e9KEU+rcc4Go8H6pYKg9OZblK}oV z=X_xAF6Xb<)$oy0>VBnpYZYJgm~n$lrI`0QF#~zQ41jxmDstKD4@^_l449uibi4sr;@j`*jIZwPjUYM zOg_vb8x^uS2~J+sYj!3Lu%-lkBvxRZnd~IrU$dW7m&$Hm#<&~?yNj{nN{-jEc!Va! z5T#xe$J7qdJ*4I#wgMo8NwYCx4AjZs;MX=EBgXdC*Vr^l^lsq|SZdUFVEQ`YlVZ}# z;JV#TUa?G9fQU8Et?uS|FNVBn;bd3$>w9LyoWoegpcM_Lntlp{DmnS09(d4!n&0#ceqoqYB5R4P#qdTv*^Gm zj|jzX7xqw`K8sruiqdI9SsB;&u)9vKFc38m*@E;`IDi&BCT7gZa#P32vvWAjK=1iG zM&7Zvv1H~EW08cLGBk!``3;!CQpPSdYd1*;uwZLCIbzuc{fY9n{Ea&sUhjwUc|C&7 zgG0etOma^CUdj7jkzIoqdj@7CXQ>CNU}93f3PXJwm>MOpj@gyUW@%#HyqfEiO<23` z$j9>5T?)NHte2|fj2Rq#;s~N3rWdk!Ak2Q-TBe(<-p)3|G5FdSF|^rV1q~=waS~W{ zWu|l^l8BK~mcovs9iNP{`+m8+;q%#TgIU7t8LExM{@5?AK-cbDeU>E&VG-40 z$ohI#>3crpL*^u2X^Qct2vsK10{9K7`<>`SOQ4m2y1ifksn*4 zI3A+_Ln-2YU&nf8zk&B>aTULJ!`7SQuv@OS2-+4tT^`vEOxA9f6imsVGe2&AV%l4% z=d4)B(eh4TW6M%UY-1|X4E?I{AJ?MIO5o*09G^4o7>MgL6Z3AzW5AU&T6RANYXgw8 zTQzORabrX{A0bpQo`VwmC0as%NY95#gyB_wwf0( zQO82CY5xEzFR*`ozX*=pd0wQYCM|ITD}z7lkhsmieDgMKdWKUSg~#jK(muB%gmZcD!=<(I_aFxkCRQ?vCjc{NbVMf*>`b%g}{rP2{o5SSzObSV-E6?55=3J~j- z$>yzbSdfV%giIO47)i;P5H(ZKcfCeR&OgdZ*mCZF)mdeX zEqa*-bQmNdH|%{x3WKqTi-vmCmk6KcH!jhrxlg4N^G|svF6i=VUPqs zlGcb??17v|1cPLK$|s2__ze)dJ08BQ#;0n90T+< z7pDIJtuFq?ySV(7+ZFzqfi1CN63eV`y|e02eS$$ zC*Tc+_m@0+`)J5{yBC7RV&#_KkgaLQuuAsbm5eT;$wx1VVb2n>k~y36 z?~xl>ALz|mwmq);b_M!QMq+WRVS0t~RwlJSyaD?E0GYm$BQa})`gRMD#E}>NXL*uW8i;l9zXIW+@@YGW8*!a z%zZuUi_AJ{8fn}Tbkb2;MW=Qq1Knl90J!RB2gIf(r;^p3tz+c;y1lnOdinuBMUu*{ zFqKf5gfQ(<|N) z>=HeQpvpPoASPPgL&6#&aka1*ycTN;Di<=<%mWrxED;jsPR-RR0JACLB3acl5yvR& z3wYUlot3V|?HXPq3y!gcQ`45KfMMtCMP|s&pJMS#^`)vct^6H<`z+vRlaiM)@%|ah zv1ekZYSvw(0aaQ1P05mr*)k##V2VF33%^(nu|M2(`{PE5r0N#alFDE)OVn>U3q+x1 zUU1DOaS1t8ft_iY>jrbmrh1%u;SE++fr{XAK(cE(aWfDD_=HUA)ahy8SCriyTAm|Z z$6AO=vGssuuCSr6Rdv)HdkQKj4i^K=&P|aK$Hi|bd3$uxuo$a0yf=}?S+o0y;wSei z>5H$ijf%qwK|r|VN#ans7%BVlFfdc|ew(hp2UdzapSWao_Ty_o{@k5uxb)Dp*%_E! z>q>Yq_@0vf7E&u%1d9Iv5(oP_C4G+_XFI$;&H^Zu&fxkyQ7{R zGx3{h);wdl)5hX3E~~WUv&REw&76qlnyTw>vg3{ktPq)4KnVZ@^6og}pNx69JPzlM z$e1Sb;h-6pU?I)G?UV{cVIxVhY4HD;`o!{G5St2TI=6 z@;{tIMssJ}FI6kKLBQ$LEM>o|%yV|q24Z_SmZAiyU_HM6=E(h`MklODNc@MQU^QB0 zv{|dZPv&vjAx~tC8#q)<4@JzBg!YyBqP~N_WOh9_HJqiSD-vRy#>Yb1=|dU$MA1tB z0PVKX@|iOg$t)m7WSGE#1|rXS*U6b0Gf;I*P7hmSjGu(bF@g0R!Di()-F6}y>zNe9 zEQLa3$tfl#BbHLe7sJ&sxvYg44Wk_bH?~Qjr?_LINBNSqsVNGEbH#rU3@l1Ggt>XYh;YvM1!w& zZ!pxGsW4WOj-({UPXxt~1HPr=-IF$n+V`F3Fgcs*>e~25DHZYcVrFKzJ$~2mGJV=W z(OVcianwhFIu5F);qh4vLY08Cn44J^S(?idd0T9_A&nuHkd0^sbIEZ%r=PTPv#=vX zv8d;hlG1f74%2y2g2cHLBOhAVv4dOds#uR#Zn0uag@x=?Om~?c7+bb&v%-3A5xJ~x z(X&&>Vq{bdz~?enDip*>Cb$tptBJ_ZPQBn@W+HzWnSiQpweErAwaiArdl_>fT*;0} zj2;$*7%h*HMornO-PI7tk0YfW|Z znV4aVOgNrP@7wP@{8iC5FEDNR+1dPHt+h9^FH0>#&lr&5M8zB-{aL1-&Jl!V)LQJFQ7 z9GnpmOiU0}F}pqIVlny#je~AQSoE%~yOpUb-I=gcKIU~PiuEMgPiL~>%VU_Btvo?| z{KnkFX|(OHYTd9}jmxbfxHW99=5F%WB`{WU7I|+GBhOVJA$&}U2*iBBgwD=?9IDl@ zpY=IzuUW{)Vs;#xE2T_Wln13%ha9f5Q5{H!i2F>(9DG;X_8p60r0pwP@NPF)z^P4c z%(@roS+j9bU=&#KRVFXmr#>RA#5N_2_O2#DN7yjaRy$6XPnDxIL0d0EJqqZ zcGOc0Rm)axwMOEw&TOtGSpiv!Wrk*b-@@w+=`wx%J z$rOUbj1nerzU&rA3g!w9CNkvwj*U9E?Ve%Sw%WO@ufHRE8H%jDav5fLmjN=IShBQN z5mLL8dW!3a$71{mFAu-?^B1^fxBmd$S%UunY8dL7n5OJ|u2z(ZJaP7NlClAD$u4aB zPTM}7A!4y8fehFTpZ){@fTs)K^QC5mnT-AY8wbmg?llq7$lXOD`e&#y;s8#ZY zhl`ek zl$MBhu*j9wh`SI?t{lNuo+FM+?a#xR?-@HH^R=|)Xhh|vW#e|})zCqQIkIH1o11w^W-n!M%CW_L8Dhh17tiW}c`%gU2 z0l+-tqU140jK|X~jf$nx&(y;4Z9xpon2*-E4Ck00C)YoW%>DlJ^OCn6t2zyS4^vIQ zysRwx@)ygg$xq$T6>7{(^(c?2DCQ&b;yyc5@SlzIHRjv(Y)wpzsdHJ#S`^B{Jo^kt zL`pdlne7E99eCzApM%|}TcVG3P4_mWR;0V_R$Y^ms}Kb-9mVAh2@@EIfOzxA+Bp7! zO**fY^NJxnvv5U80RFR)ua6UO2Or^8Hd#D~7vJjQe<_ZB@$)8c!v&S{RtF!p?$>fe zSnQTbr4j5PV3kzyCwQ%wu42Iq6m;wMpSM3b(elNeeubPf>*F`po8(10n%$JVwh2T_ z7?1-I{^Cf!q@XySVrTF1DPO63*)Jx_F#4hsewHEliAKX^a``E?vivDhmQOJWl8849 z5YK7*#QX|Q$Kwq*S`f=o!H!!vx1yFhUupMIm!8BbqT200N&a)!?Exx?CJ6w6jH+lm z9<_(NnDB1G`r77Rqs3bVY<=IWJNVOF{XRN{bcwm?NSW3m^>$L#9mX8;FiOenzG(6_ z@KF`V-wO7An;%(YTBatOhq1cEA%hjHSW$4b+~k(9nUNtP5I)sCl;YW1iS!#yJd)sA=8xdU7y!w7kCHy~KLeh{x6|-OMY}d92%J{66%LE_?UN)p z+vQap`Z zYSO24U4}^^4nGlSLR8bU!Ga}nW z$z7=+C{)2h9?oVZQ3M|bP}0B9UPGulk)02$%j^~Lt$o32Z4w5YGL6xaf^iqqIf^it zV1O_pAXFqUl z=bxE8xQ+NUfDFHpa;(3R$Cdb;qp?N0P$YYU-wy0rN zp;B_yX2tsx_TXOBLYEN|#sztij*KP<8=a9JGR5O{obLYswrfRY411|;Sa8j%`&%Z< zM5wO~vFk2dJxRmQJ$}>noLZ*Wgc{eLDr&aa~SJu@S2oByFI7VV;9& zK|IXLxgLIS)_lX`;i8IqAC|SMm$Iyu*~99Z4V!t0vjk%UVIt?Y8xk`GE*Oa}NJ?Yp z9k*59e2*B$RMaw7nUD{t`t6d&D-6Z``2kqbrDG)mGx)?2B)K?=FMw+opVe($$Kkx) zo6g`Jl3Od(*LEe26CC%93<|52a{7CV>m0-#mX}$M!aQ*sH(jR%ue&W*Qn5%bV6jn( z!qCE0hAFu$kE~6KuU-rB1+t_;K=M-Kh?$?XOLl!VTKyZ?&oF+gc2`+S+OgEJY`dGA zsuf9>YLdoSI1YPB9~~rPw2Vi{o+tGEmdC#vtYWoHMd#%$Mn@@$r<}Z76^KYpgY8y> z3YB;lF)9(b`7U_;>%{$o>Yq4n+I<~VJZrU{w}7j688orA_Dq6m++c`^Cdx6uX8HBX zlzq(W2>SUcANh)hoNC*|<1*HKtFq@8VdQ0@YSU^x&mI8ke(H((q5Q<46%BIdh#z4@ z%t8HkR@SvdSjB$O-B%rmL0HJt@&=%*uuM7U>IpbblF>F43^Luj5OE^|$rm%T#@Qpx zXEO-@07_2xNrbGS?$gBJ|j0YB++aZ!C5H0I8M=F^OGSdjWIoV{ZF78C>u&{G1g305Ew&B-KVM$+?_P zK>8DMb5mHuz=0Q0Ryvzj`>=D*NoB}cNX(JMM-uIp&3K^+ud3~N>RJ0V+;RScv4mwL z2?+LBuM)_KWSn*=ZK7nv2WT;$#y4Z}epcD?5`HSnFHYA&yw+Xp)XsG=(13s_%=T4d z<~a5&>{eVy;wC{O@DVr99cZ3E3b?J0OUvbRdoe1mKE8Kqqf)&pllfS&Qy!NwO9hM+ zdsz)+w9^sonSuD-<4h-&X6@}#r;fEeJ$wlM8u7lxv+uhio{Xs3oI~=))6E^mse}z_=0EK$nCO+QPAc73S#T@r zQ4rI+?fzBR{a!}F;g7~R%u&TlS$vqL{#}@BL@?VCL?#nlR=``J+{PRLxTRc7!2lm2 z(Ae-f3PGLP@q5P9)SPSD_xf%2M%9OL3N=!jLteT>qwiwC$iVvwTN50_!$`yAvP#-A zTTcC-*fN^F%YKS58pa`3U3~)gSjaBZVJF!yWye5?8q?hfiS`QP<(C8E-72n6C7aqT z-`Fua%vd&-X4kZDUq~0$J&FhgztpvzXd{FCipa$9F&{s4P3K?nca6gnv@|bg*^|lL zMzusF?v_H;_c!T=s-k6lweXOWfDsXykNBT}3EF03%XwUOFA<%|;qV&eTA8I^eq;*5 zJBbw$t6qSi2rjY~Bw?gH4RK&dmtUFo{cjKA+)isZ_A0qZC)Cn` z6cdTRPIX38`1XU;G9~7XYyuFY%VRa#uZc?Hdssv`evMFbGE-vHB&U*)uOrmH z4Dn`@w@}4qHq9!wCr{H?lx}RXfJ1f7d?rFz7Z^Ue%&%M_a3(e@{Y<`N*U%0ayw6NE zY*1)eUBafOjrrD-Wiw(CLNV!xW=h&f#(!^P1|>jg69RR$%%r9ygw9)VrQ|F&E5+J3 zkFDX0FsiuHqm^9aMOf&AZGs7yC)q(IPY7xk07PTUJ50m@FB0Ij9L}hl?Hie$!qJ`E zqp`7;ZDVZQ<%$BX&%qEQ&_#(@fx^E6nCIba*3qs`%aqscGS*4!1sd@*(>JWD1bBG0 zVaOyV3;KMhC-2PtzUx`+9k=7E4tZzVw6UTy{YvgWQhZN! z{{T@6+kWe@c=uO517yW(8WJ-rEPAq#B2DRJ_+d90OynxGP|FPO-N~5`w2a5D08SIc zkKeMnO_H_;8>TYqvH4Zl!bC=9jeFKFdI>~{3iX*3;Q{%5M1NyE!Oy^(9+^Waowrw3 z-1E85As1vS($I|j<>5;y?Om>bO&bvr1oRWeC)N@(6YFqLu{!0=uRpVxVl7{eCL@gau5OhnAdPZJXFn(?)5#-P>RGdVn#HnQRMv9*i#x`=A$ zm6dc=C?Fw`Ap$1rKh=sUBr>t_-vbnDmRSz9`qg~3c8?Pq5GZ(Y%)sH@!)jekv$(1QJlu;51A%>X| z13;tsMq)trGhb!{$~N?RmddMj%P7B!xkzi&9HVG-mnuPn`GZBI2WaaaF!B?j z+h%VMx(_&fpgr{c{Cf z74Ml>6xFDCHu~z?_N*W$`WOKbpZ#+@u;#pOjTu2-Bx&5dd)hvhaukOllhh1W+iv$-u&)Q?{ zKNd3{X+Ib~o-4?>eV)EH0&J$-A$eO10ODnCiiS*JM99cpU@jykMcfp_4Wf=C&N~Hj zD%(aQ8Cv5+g&90(4q^QwMo61f*;b!Ck5d$|;y<|={{S3#c+To)Zo2$cW+LevTV^LB zyx82Bo@Q*Zvb&D#5gd00a}&&czTW^oXJE>2)vMt(eYY8nxsh`5wNrq}Dfv|~%b7bD zEDZBs(6yUoXdZYTp6G&@mcJQm_$^-c!Q;JW9GY0Ydf?=%A!RBy#k2zsWd8uNnP6M) z!t7FIJkQ#GNfoj9-zSp0e__T@$!h5a;&7PE>P=U1ax(>D)i|=TYpIi036+5p5EY}< z%FCcK?3qm$QrYng@y^$=UOdJX^+OA-w01Ky4z_8;S9CZO1Pr+`GQ^J`crlJ<0^^s% zRLbOry98EX%Jo8EeR4mP_9>s}=06yZzu$?DIG%n=@IFzetZ2HE?k3(>Vc2S(UWNl6 zk~{eeHmowsN&#?kv_QChj+p2oTtxPf37l=7LH$wC#pdc#$78RRb>=KlcdeiL1mQJ|xxmdR}P=QFY^7c(T%l~*Z?0GWYc0K6O0UNE-`o%}I;I**&TZg5qpMjVEC`?KND!fkpZn7j&%piLvA#FYP^7)bcDuN$(*?Mt zqTz!kOnRK-=;K68rXc2KW*H(qgv;+S^NpR4ZP9T^PHkAdKTTt1uxu};le{Aza0lZl z%q0iJoO?n}KEo|SeoA$T-Bpvfi11Fm8h|>hZq9n$BFMitMhKu)Y?{^6BCbu4`iEO< zePo#EUy%GQsYOkLEjWv^?B3nPqnBB3%FAKaApHzS(c=ID3V8!z_5T3Pas5afyY!hI zm@r*?Ed?se=MZ^YR#W+UlQb)Es*9e$OKXaxs$_^n!cAs-50t5w%d_|VtyOH8 zs|1?}*vfVs{RjPvmEvd&RjyMU5Vc;;z(P_*%=}$`i(?0mZ5w-bzpm3ur{AjVdDKm2 zx3G~KC{vpB>K`yhBi71{%4LBCB*`g5{+R4Iwzo{f?ODB-3Wb5ty@HfbN{VJiy}Cj* zvGZKySWt1>jy;QEPv78r&D_@fgzH#~x^{obtXapoTMNOo6v5lprfe>wXaoNM5)4f%0%J<4s=#c&gSJSkLtCTRCYYa6@M|Z@D|w#E@7P48)L>!5nf?JahJrJ}+SI zThf1YrQ@xBH@sbL)xEmqI@s$qIGFY-)vy3Xq7(dJRsQBCIh8VJ;0t!EQ*E_ZD}z1X z$#)Xb8gJY+Dp#rmj6@$qt;V29~L z>=OjY65M&%^bMH>K{nQF$S8*3uiTTODW2D7rbu%JSs7BMXenIpgJIUI&C zf6>{y(}cf|KTbwyCh1nUh3bL`uJQ(ir-?f zKsLgF$^*TFhM>kIP2U)5_?uYPFz4hS8R0NqG}d!9fy-t}^w+&?TLN(keRG+nMp*>&Ne^irg)<`Sl)UuTkbfL7%+a2s{( z75Qz0+wj`%FZGAw(($ zjEg6T2()p?&taZt<2G9@zGhCoJ&$HYnlglrNSp<*~aeh~_zvdrOF) zvL~O2`+n=HSc^F0+NBj(^!k}@IV#aZ{rEWgopJH{ImE?qf5}(3BSGD7u z>Zm_(!C~!;K~to7suV2aZ1FKZni&9E>Ly_0>?unu$K%zL)+>#LR@5j2*R@H5!spMtkP9PgC$#B8~ZYaON3z_IpMZTUPX zP^!r&lBr^oTDruC5Uhx;zT05nP9bJ7@Z}#Dc?eCnaSaa)VJ@y+cP5;^LiTRV0-zV~ z`nUQ$1xf#+27x^{I^%y{R+TlRlq2xK!algE3P=odnp^zS1Uy=#)>lUvfT z10G}Y5|R5Ck&~6Iyq?#wyE}C6m3noTuG%U!9KH@i*xLU9Km`#I_>F6}Bc28dW9*^j zJdSm_79WOf1=xG^vS?vKiDz;ru6(e6dQk zcjL6$U-L@IU2`vDl2|sbCHf)Y@QQ$*Oj#6GWXK=4=KC+^NBb@~ z_#Si5@op~Kar!=~xMnlU_RwZSCAV3t9b4>%rbWK?EK9lawN(P+h=Afc{LQCfKT!ML z9heQ9ZOvp~TEyb+QvI^F9-O2AAuF?FpmNWKC)VF$*IH-UG5-L+g_)E6G2pA$t>f$l zpRXa^;4i-GH7tCGQjfyK%3p7r4=9bEy=j~i@%bWHZ91I~^j(Y=L?y`DDZZVAF421`3DZn=Z$n|E9Qz4b2!VHzKd}pA zwSJ)JwlLYx+-WW2F_DXPl}?+4zm3bQScn?}Q9prA$RHybV0M}KCXR!)Vdq%#E&|4@ zb1C&PujZ)U$J?%-b7DPfZ>^0|L@W|X7KBNI7U8l+3?V0c&dpzaOF;Y|s&09zE{b-k z(Yh|TQNzSBSD9vUGUrEwqpEtV>W zFr%y`2EhE5Nq@82B5Nh}ALIGf-t}|EwnszB zEmoB%20xyxRy7vks5uy1Ht4i_P{kfYQLlQ_tq{PAzP}w|Ph(;xd33Ogf|(L1nD_^O)LZGQ zux+>)&?!_OY-ZsFnUX;hL}Zqz=~N_m;NJ}x{=eg&nlU&n4+Fd-YsA<+nlgCaLoQF8 zt$?{rktHf@N3Bsctw|6j0Dpt*JdDK4UF6)ifHGL+W}>z1KWp{|vCzz6Yz!-PTuxg1Byo;PLjyxyA`zailKiIIi~ zrp=74d}dyWb1^Wib;4a?;G^#~(}<)$Og9COFOGmh3-b6xg%4>x;bO>vNBGPnB-NgU5G9)*{(*CiA7dkklu zcpshbsQct-Bo(PLbBHgC^%UUQCP=Mm zTP0197;^x4kH`9|n!LpS0A=ts((_iGh^4AyaEZ!om(hi$L0b!3-d@?R0wPT*6-xfm zGFH?y>IP(%h?pZE9qH`u)7IPJ$Tm%;e_ zsxJ+Qt&f7*ay9XY35ji|%IOTU@j-{vN8Kx*#$dYrqCu+{#X` zOhTezjXp)85M3r>2brJ!{FPVBINTgx5AzzF4*Ew3!DJANL8dajK4HO+xTdb^MxLWPWbc{1IPH$;R!4 z)piNU*fqcFWH6Y*gwG=klVRPpCHTzy8d6cu<16AL;oL5!&-Hyi)HaG_WJ@cSV>6V-%!JRd zaJ1zLZ#|=uDRW{Vc{2MC%5LYeQQUktb0w_oo9^e1I&gUB(fTH<@JB2c>PcN56{MPFrsj=fni5;7IMpNg}! z=-Ak`PZ(+VY_2xgWbu~r**4^D4WOC+2DTN~qd?e`ld&7uGwfo<^w;=kMzL(3ycsPjMUa_4F_A>)@wQ<-;i#b@8x!qyRv_MeFmsoR2&Y6z?0Fe~&)_=I>B>~xtmK|;{ z2W!~-__Qj@tya8XjeTzkmPgSt4tltFk|12gS)O~9d5J%Oh)7S5vLEW-CiwpV7Tb&z zfAzz%?6H!^d&o>gBkAh2z^ACsS3ytoAk&!V=T9^2-cZkIR`B+-8m67#ue80j6jyxvWU!F&1cqim5Cx4GE(a( zWup_;CKFg^-2)%W_%7cT+u%*24_fjL(UYyJ?76LmE`37PU(t>fSFvUmiZWkCj)g^N zf^eDJB4ebS5K=M?ne3+Tg{wzj(zhJ8r-id&a*9~pe;&NvTwH#o1xig*W~eim8M%;T zPaK!4k%oL%$9|FYj9ol_Q)H~%Y-X;n8?zoaX2`>@GUUXewl0CDY%MnesE93K98Y;7 z=4MIi{%g}Ijs3m&jCHMh1n5#S*dRL?H{>Q|7BAh(S|C`qWW6BAIlL}faB~eFIPD&5 z@<-|du2);|#d_J1l{F1LPLSmnUGfk?F3w+y*vg~?OZ!$;*GE#3=3*v8_b=lOcg6UG zuVAO8*wX4c6Hv4I-AlKz-GXDO*g+-l<-^apUF?ZW5ep-e_=~yu-^i5pG-S23GBoGUiU!k$&r!`^L z1*2u8rLTn2YXxT_*h10PN?1G$kOEfk`i#@=WwmUFjj{QgS#+(~^kXih@HMR+f`%@; zDuW662y<%3d1aSLOCaQzB?UAr4}|=g9@+LjAC$OTL`>XI7r^8uV%lp z(-37PB=xeixZ|M|din-z{oSX`*qp}cTgG(@{XP+Q1&_>3R;#Y#7saCW(67+nX3Er1 zZ&`Jf!~)1;x5u0R0Hy2As*L@uir&-il+~`lI@o_ek-?nTsa}4H!kG}h;d&Tn0x(Y! z;$S29JXhh}OKZzvJOiKDa+{82RhN!EDS&ipeW zTK+ob&GfmAJ;8-;sh`1%FA3zUloRU(5eBgk2&5ojqvC9o6we=b$~%{nv$^a082Glv zCZsudO7>$X7mBTVjAyfoDKuCqJ2Kz2kpBSkb;QK~0FS_zWpKVbYCM0s=ozf$v2yN8 z<)vgZc;BeRAFhSIz-du86dV%eUF(94am>W=%n_t{HuwENW=C9v?-}%C({lAqemhog8B8Kp1X90?K1R~~ZR7omUfK2UA}vA%~3b|MW8B=!>HxSXc;Ql z`t#&XXJ)@{?SWn|TES(JdaGjZpz;~Yk1Y|3La=J@+OyrqOV z>Fky<$;6a^gKDmgGi1AnCH8CKUg3Z!>Kz6cbkfMVnN4=}9djv~x}mM~xQIP>A&*bD zpIt0aW@X46u{;_l8=Ck!yL84tbxq&E7)u zhGy4}vbddpP^(yM;@I>*Cufqi706o*tc6J%;9v%Sgxeo^lK8c^`1g9=_05Yf*Y`cc$Q%Ss+#GX%JvMt&<>-~8PSZko;W6R&I#l+~?-p@gNL z&Sc%p2oj301zdbUk1Sa+(wOXB_<<=asA{?vP5&C_+d>nv$8%89RA z_Imw^U?__4&g~eJ8JH=F_#->yOw~+XV!Ni|u~@}A+I9KY_-;)SES~u^;VZHsQ}*=> zj@+nLwn@PQ&OQe!z5v}Zx63q~-8=c@x$L=PZlpJE<(gsGq3T7Et_dP2F6}n@$!h0_ z?ab#pnQxVL)METuw6As8b*iI!&R8`joq87{BvoE<%4Fl3OH{B3-5`~dd4`m%c_{6v z-a&2L$DF*Rs(AXc5m#BWlwL8r6^jHb23&w3`b4jgGp!5l0UpR z{tMGGJ668BAx8E$RM*)Ra!375)xOLn9`Q0F8SYSEey(JNG9ZVm;=I*YO|M?|TU67v zovovLC9%S-;0te#@wfguh67d;rAIIA^KAt`K zdyUNI?%kn9P@;xgYCe){t&R`-ay&7kJ*2w!Db9_H%^QYsx+aZ)#%a_uTII~1Paz*)hFxpBShtCX+p_AS z#U`!fLfIWHP3-+sO@F_++a-`%ART74r7W3yew69hscJkE9a`^D@5 zoW^f)@`~Y-?9=F6a8_geQQekqlZ66t#6dyY>MOp^z}k+ZIr=%NLWK z+_70i*mS^41n|bhkdVZ5Sb&6xej^-lGJgyDlCe(!$f4jp)!3fK18)HJUQePbJlsMbpII68IL3t@6FU%i?}J(0){H5Fi| z{{W+pzswfAX`RSyR&j0J*|TNp%)aWgvtq?uGUYMC8F0_*O{2`1rWw=ol4uCX#De3$ zQrCC8R&@L{j&`y9Y-hP`*hx?!t*;* ztHsKA_kh5YV%=d93m&-OK!Gb%ec2E&D=fBAh}E$NZ^!;y##XJIw!u*6Gu7@e)$3zz zTRVv;v`hsqMkM9mn?OQ85#SS*u3{`RVASW&lr?TU zra@FQnJW0Kgy8mHqPICxnzSm-s`e``!Hbz>iY1lE88Bl9{0@={;${JpX;6BL{3`=2B$x+2p)SBtAq$e3m=c)5hTZU*4L3VZ@*)oAOjda; zep?%m6fJE-1OmeTgf)iG&VM6(W@p2p)UtA8@a z606qZ>K_pwd1OM>BN4=tBj&88H_2FR)yc?g7))X+Qf07hd@0#dkv*Z#lYOG-0TK6P zgv7x8{{Xn3fP+uUx-PwXqlapvt)uDNX3isFxeGY|L{CF#!Ch_`s*x z^WTd6tK)65$>wkF6f4xJv1D>IFqRHf`l8!!HC(VAxHt4J6$3H=G25{)r=vbIAD!LL zA$N1~hT%|ZzAR#~@Wf(1x8EpfSK#s2mb)2KiqK(nZG7@YahB>*tK6g>6l#BLIy96HsEB1?EA?5MN0BZ zctk`;Y3k3vBEg=15yq@MMK#yBc&{BwtIc;RZW^{N5TImr5>>io*|kihMn3~`r;+MW zKZnPATPWn}SiOYGBRHhmfV#9Ctb^~%0rf~=(9VCZ&@uS&$KECb=8rG=_YF%I^;pCO zoStwMtBsnD1!FBm<29k(?J;hsOCqro4v7z4qv55*Ol9%r@m~v97*yA;)4^lX&03AC zyIoYSyQ_~5zQ{;AV6G`hVMxS@8UkRZUQ;x!w#F;U-cr@|k6t_%gvDI5lb>4BLG{7( zvm8Lr=k#Avv5Au4@*Vl%Tzs76e1A&j@b3y?>rkhO$jDR9AnGbH*TS4b)hmU^wxN9h zEE-CI8M2WX1DRmRd+~NdE1S=2o3;GrrLW%1Tghh~MUFd;$J7PPhq#W)Rz^o+u*^r^ z2D)R87DG1Tto!z;;_vxkZb(;|dU0sM))Rt=hQ!M~(s3{=<~wsEF%uIp$I0%eV6r>T zM**{9C}DQ2U1~UMlrE(|OK_bhXwJDp;94zPD;zKE(UD|8a2$NKR9-tJmRj#?xLP&X z@<9wxODlay#D^WFazIle1rS3V&)PoUe}Ns#;qZFSGdGN(x81jq#^adXKF!_E(5oX= zzO_a<;)jfNOWL2#c$kSpqn@o2{>1CvAj;)&*o-b8QKeg0T4yCW0;JZ>gnl*YG>nV+ zAc2oL66!Lo_IChfjOjTOl+udpSu%EVj&ppveL6B?}R1tfERHdJ!+T9Lz~}?HqG6_x}Lgi%8ZybG2+)eYta~;;RmEgM=Dc z72_N0vsrKY{`JXoFjCeEW@nKSFSN^Jt0nw?rMue$#_PKEom#7v8Jh~kRyng0a=@oE z3Lc-|FBp!?T*8aq!5EEzR^CDkjRTtxH7 zA~QVl6MffM9br{)+9vUC*=C7pudmz4)5%I)GX(o-i@@P7qaCFkfn?8A2ST0?-TiyU z8m@>tl`Q`Njqc&GH5P>xiUp6h@#az$mQ-xPOUbe#U6m8;nd~w7K<>n@wsOW#bFZRn zTK+D_KeyyExT?O$!!3m*b!l`NGGR=-*z#P6LZU#r@$*FZ;+~zAx#o;!8y!1c*&3KC z*}7_2Ttm5;`o0t^q~cgZ43q*XN~8`7WcUdtpKm;SB;o62zhzAmD4~$8z5{y7(hsMN zr%xdD1cgCqG(Mt7w6s|ua+wjMZCTGB>zPar%synw<1*O%#U`^Svg5JY7N)t+Nrl+1 z1eGLvpWw0(h$)^XW1og}H*5PAvRXd1fyif3QU2##O(5?QWx|;j$Q%Fs!xvIHk7C(k*AAq_49epoG#U<-r>WVtE3OmPS?5wajxg zzaMxW&H8VJ(*d!q!c_~E`o>gmj*&gp$z^;NG8Kekh`Osq0LkG;E*->3@M!;_ea zTG(Ib5I+OrE9aewv4N+sUh>ro3=puo*Rq(UTq_2~v4mh>L&+SM_a{8W#79sbpg(r= z$Bz_M_Fczt#nfy#j+N|gRO?-@Xuv{5sNGd}q=+UZm5@RgbF z%Da#^+F2r&KOtzXK1f*yS|LQz9>E=ye3%gwOqj^9^JX;0;Wh!WF!Q!CI%Q1s( zO`APQ0*IIkC1ck&SKI`BZClxP&a4Wx;o>A_9D6_p z1Y?*H<4=zC%@1bCe({m28pdwjZ(bexhRj&>(WDR{H3FI%Rffz!cXDJVIqE^kFM-pX z(>6V0GmH0mChPHd3YWG^3(Dn+nbi>$(m|B5c9Lu;vfzRAjF(A>`^-2tJ}Pz;Y!{? z*q*bwl&zkqpcOfgQ(%zOy5yT=WI&D(5eq`s5!8Pm>fbzryk#+Yfyv~<605HaA!e|( z?BZ)vtI+P+v3`g|HLW>SQ6+=`rL7L}>?4{>cSr7dSg)`77fV0C<5=*KQj zA(0IV&ai@xc%E&#LS}!&W0{as@y=#-Ohw%nS@36&2JK)tt^StSG1lnVsvQI-(*ez_ zO&@42fV42ANEkvgMISTkH~gQRta`1@&kJ)Ut%%T!epfKOG0ifFD)8qkrK=r7h0OYe zeUi>s_TpZ%nZMLlbvWucO&3Sf;H-UBOAgMCR^=A0P_YytV2XkS2O?`HltS7=)_TPJ zkNFyyWn!@JSN6P?#0ng4%Nqk~TF2lq{?Sp{iu9Tz5G^59c#(;8Tr(N!BtjZ5d4Foe zW{&5KJa?={ZM0g7*qkfSl1^^VJAcUIcQT!vYZ`k0HXuPb~*xR8}0a1hZ@5PINX(1(n);2F~J8wZTBGPS<$ z$CIg-!dGdrf8mPnOhGVPJARf*%G(GG5NH9{{CYe{S3}xGOq-X9r@48uNDZwQzQ=yz10y$~{&e zd6@?=>^(#zF;PVdE+pW1_+!c6r|h*{PDjXNxux5lk6Lyr+5E=5O|X}#ZEGs~A8CQ< zYGsg0+=9({lbMYgx9PZxxNWR`d6brNXZe6?Uo(td$uvlVb~>rBvb!S@2z* z=9Qa!-e$ko-?*xdvsKly7pX8z{Xeu>dUpxyzhDKylG0eci-m8Z5hJPzdGpOo1 zRSDB8r8={=45=#1@VA)uO?!!|w}C^Z4PMe>juFeP`$hEo3_nXqRQSgBazvi zVc9BP*<&%5XfS~;u%RO*LLvyF0%1qXdT!q1P;ZSgyA@n5ebY^fGhi~ezjDM@sRJeH zYTI?rM7A0tFtn~_BxHKT&)9>jYLsY(2F}HI3XI7iMp>(pt(L<``#>ooD4%pRM2DBN z*DwZ9JaZF`yGhslKe6Js?e`Lk^6O05M=g+JGIi$IFRH@ezl9Z-*ffJ49XOQtM-Xlw zfjp(MeO_-9re!s(UbwA#E8<@D;p=2#&54n>@3LN!c@sU$CH1Yrl-8CMn6PHsr{KI< zyDqMecO{te20IukZ|%!ND$vOc{o=KH?}abZ9E6+7PEY(+G52H&&@-4CnEDguOSEuf zzl&S7W35<)v@w z&g%aFs6DH3I~F{@hfZRRR9rDmu2rkCtddwxLf^e)aD;a1{-EFGTm($az=4eQd%DJ* zx@#6Zobk?H`fYt`l+eeb&5`R2yJOm>GEw!H+aesvHe;_5(8xJQj&V9}8w;}PRrXES zABRL;-C69LCj&FlG#mOPQ7W_3z7e{WLo?$tF`=1sI=kmV}l zMLkf)%&niupK5=CCOLx!Y_*%Z6s}x;m$BqM&EoC@XUGF?g@XL0^)aGnEo8w=uoF&2 zp%BoX;!whqsrhdwwARU5-0<2KH$PV+eu3jL;gFXUL@~6T-Q$BqB8xjReVhol)coiGtCADUqlBtqHfY`x@NdVZZ+9qXQwXsA%La~^R;oq1Z{wb^$<`*6`tav5D#1v-m!qSV+6Z6j78iAy-n)Be@=?3n{_NP z9>~6H5g%5?D$YFMSSOp@H>>>2}ZKIZ0%CYH{4X1#9GcXPkb#RgsTt~84=>eC#Cc%Z% z>SQR@%eQLTu7j`IjeKI|ljHza{{Z4C6ea>-RR&RY^t0Q0;1Qt<{R705fE)1MZCN%kjo(SS+G(3f#@#cFZUO}x!##a$b9f=%^ zxaP|*TL>uaU!+z!a1S47L5kTBa^aT4?5L-6Xu{@ko<61pIR;|Qlan{BFmaa-0B=1%@GdoDt69s2bpRX=R1*#Q|d zisKzrD>1TRz)IH~hRugp!1+sl#!~U+3pXF7SB$PlYE_ZP9z!{3MCwT#u32w^mRgcp zic8qO3`eicJH}VZ8wJan*Oqo1p2Mu;Ty(8x^%Mm)vcQDLp~3!dSQ8K2V!=_*WpGeV zADXnS8)2`b+5Z4e+xm&iU4BEzSopFy`s&PCFJrOP-vipMm2fr8W_@Y^8Rcv^F>z)_ zrp}Bmo31jJBNWsSH9_x zR(Vf5VWx`=F|^oES&$0K2q-So@Xr4La$*e1@ zUcE7a^bFJ=Xfa|Y�fo<_=&PbRDbAcD#X+YE6k}HVuYXMTbjHulq znX3|J)t}+auaGWIhncj!dvMw7V)8jG4&HbSc;#bftlC*58f{qV3^$)P9PfIe3Q77) zydNO3;Ee0p>DqK3^d^&}qiM=qPro~p%hn~*qiVwm@0j|9k+R4!htMHB1Qaml21Hp2 z@|`IR)h#Ot*g%gW!NQ{;`UdSdp6!+MK87j(J8vij)#sd>9EHO!;o|;)3f@D?PD~2{|RRex?uR|B{c{*@72ePFRSG8jYg@BM8^cHH$%OGaOiX`+@ou71t@YW2sB zNedu&wtZ(>$gjx6J}U?W!1U?tmJ|mXel_x(J6hSW8RNy`5s-aMJrKm!xsdh^Cz~wM zL@jHnT&MX35FW;u%f9Ce?(d>TGas_fZ${8DyVTU|gU+KZc!JJB!VG=KUcNQ}+NGbT zfFfWUEJOhD0};KWWo9|JN_Z@8QzcH$Mb+tP7D{X45q-3d7BrleSet1Nx%4*@!Q+g!YSn7MNWsvjTJ9y*VBvKXWVW*1vi6eudthP<@9BsGLLEx2Z8Na_?MES$B5BB@zV1Og;7J-%VYH_bj{%)cv+%HW+-2HC#L z6m;pTy14>D`qJAOYXd&jCB*OJtj>f=FT6x>CuvUkvE}jfb}uFD`vW4wKX2FdoQiPJ z&^3?y+xCG1b*sp-WMlwaDn7uuCWL$rdo767tJv~in)fWO7S2+jCXRa-ZoSbGfsV7NOCt8ILl6pV?nECb{J04_L*1bly) zGdZ+3Sz6Or@$}~tLtDb;tKos5xB!aj0usLPSkK&)LcRhc?;QMG@|M&!_2=){4;ke( z44$}{T7PZRvKB18q{Ka7%S<(kBie;>9RIJD(<{n2{S`eOXHa)QU?6l8bIFEpi&7~hvR-V_jFkI469=zr1hhJ~Vrg4;$y%lZ*ef%YJt6@f;#77?sh+U0 zF)_hRvuj>U@s@AHmAp^pjDAN|$KbK5MKalvbN#Sb=?L^D zvxlUQ@d(PMWR7NAD0sucw5{WV2jb0Ss8>Zg*xO0QDy@p)00sE6zemBdyiacPGbJ-K z#QciuS>Ge*xvP6Wk8d-1#QW`0ph&5IAdHAEPHep|XtDwDHI)qN@|V}HEC7;%i9cJ+ zo92zB>#>~iOR4}2;Rez!qb>ws!hi)0Vp|M;m{LM~z;XAJfaJafLtwVd2H&mT$9W5J zsY-<8kLd5!oQE!vs*ysMX=LX~m4W~PY>`Yv#0)_cBa8OU!=1~>Y1QrN_;Yp0`uv3A zRbpE+1Tw=XgXBsk48Xdai77ME4BV|t$-0M;cPklf^UMa!b^~2iOR2!)tkj~gw&r%m z*JWf_f3bqJi=Pe_G@=%mfg|JdH@E3nyA*O-HX|R7+VYE^^y2f^s@04_z(5N9yBD4B z_pBWrsDbLaH7GkWNW=_S^FyiRx-0kSj5zzS1GWa{@T`3>ymJ;6izgu zam=Vi(;b;H3wQB;_kOOuG(XfDigOjLg-q4l=2C2BuA1YbS~S0g0aBLSxrUUDS~Q7)kv_b9RPi5=-*+ja4{1x#Mbz=R=U zYZlfLQUyPsX#ADih~hp5=Xl@E*?hKBBjg`BSJukiPyS1(;AbA5@;pdQ$C=nDDG`C` z1H??v+xmr8c&AYD($vf@FD%;@62|8#Stcr8iBv@8J0W7`g5duElx2i=AiZM}!H9+w zWJd@=kJL77erDLEimO@o=IsowJy8PN-sPDy90{2pdcsTvl06k7I|sI@Ph4^MS_N4q!P(gtUI%>Z_nUOt>Z9WKgieDD8(bzcC;?Q zX5U-tvby~jOGD8lK_U#l0AWdx&-S2AiJrX==g@vA)(;hj9QJmdTz+D;Z%kGfGOZ0~ z1z)r(ig}J=02VA^%ywfw^AHOG`4sUcJ6zE3T*++pD(=h3Fx!!wUN`p)VscD~AEXAC zO6QIq>KJFRdsz_)h+2jrmtV;3*LI|M!)Gd3Tt)1I;}>%>lgTqUNRTS*$=t z!S@tA1_nEtY{Z2dZ=-K*tAg3{8EZ?&Vl$N+ub@~$`jy_}t2f%F@+Rhm$dOwkpdug& zAezC9_rt}Qs(D-=ku^;x2e48umf|sMtz?Q!y;f=Z_-O;ZaRb&0M1+L@0LPNuoWN7s zaCyyZJ-6iT*_tm!dZE`DRdzTsSb8gnJCZ((7;_jrM1Eh_!gV#xYb~wN+O%3Y{03&$ zEHe0$tyO9w1|(Q%d5ps>DbvI-PD*3&WK0kTzzK{}%L+LyH%#&!K?NI)gPgNMiAcyq z#~B8hlyVW+g1PqQe%x~t;gtNhRIOCb`H?u<8K5>otZIqLoXC_3_IpOCoXCiT#HWUL zo+I&|Up36=ZFr1^W|kbP9zK0`v8NytNX%o{F(ExjW*H<0_J;{`5fRTEE?vv#>{iz? zFoLiND|rir9*^7V!pJ}(N0?oQfE)zz_$-N^*s3HxJ@YLaI^OZB<#H95&5jn`@T7?m#vYaO{$CzW{fWT zh$Yr+NHP)C1Y{*Ho?%eIkG$~(GV;mbzt#2hp&UbT_13C2>szz*)#PUpZYx7(Vqn%5 zEVuEVOp3DLAkKJ#{wT^`#6^8~1FRNQHaZyd*S0LtwvA6kh6I*4;qZ1PHEfry9>-Niu%p z15}SWc<&!*Kh-<_FAVjm)~wO9^)ziixx^%js{~si5<%Cf{{WFk_3L`SYF1!7u~?N6Cex%vi|-HSA|iPB@v`Ufo+Q<>_I3LdaB?ut z7DWq-){aCg3>nX{(#9VX69+tY=lY+3t4)=>zvLXAX9cKh`3!vmMjD;G+Uq&cRmxpy zgH0taGh>M%9h#`&6FkS?;JuT=gS3A0q*~gxui1rSyu}KcCQ-)QvSLQ6DyAl55g{;c z?oIyy=0;OgHS3K-%DC;}M8vSWOp`~$armoKW|yj_e!aQSL@#o2vKwIO2x zVG~G@S7Am%2iK%ngK(%$A`U>t?rZJAow9BsVkrMBBn#p+n%tBGSGL)sCLOxm$w zE9437L4-_~s0a+?z=w*pKOJk;DpT>T++IQSYQ=W#^IEE;KAxG#*Rd*4k3u@?v&5G@ibenh z`u4qs%@Pr`cuO&~UamjGc1n)IGZDuEsk3N_VFGe700AFw@&5pc0hjV#H~MQjrcWzb z`0IS+o)K&>-(}c{fwX?1YZ~s{$L08t4_Sx~2jVnsSu@W%wJm>RU8KR=zmlYqti_@W zfU#z6K~2hY)_*pok4GICXTYDvmFGMYryIxWGY@wl7d$8AJhjZmJ_(dE*}53)JsOEA5o~+zO-3{?c50fU`wn0qS7WiSPMAhw^Orxeb-LP$ne3uD~5aDep=A_%&i z4aSX)@ffVnm9OoYOEj+H$TfZhvemd%nx;WTV!)CTv<-%|AXuWAkpdW*RUM1YJ1!#T zt*v44p<2aurMiBp87E3%s$n|QZnZw3hMfB*PSUH`_IH_v5lpV^9y!>zoktP7=5*`S zB7<>+#@0$#U(nE6+e+b8i)93G=#my8J$V@@Xz?->Jj1oEzjURkV700lJlW3Gc{X-+9@)Hxs!no{(Qrc6pc@mB{WU?(K>$yFrFuHZ@F>xTv zQA!HMxUn6jYg~vd*9OFZdmsT{Sz&D31-(t1J~sXmty-9ir-%lw-Zq%Qx#^5koG_=8 zo9ZQ|vpPZ^Qn8pG-$-EePZ8PH0|`>y+`cC8tbKE4XwZ&6;jxlF9Ymr?e;NBo z#QXsnJ&!b$23G#>lg8G)6LDvO!G<|2BI0{}eq@4M69e`&$j|pbZhlL#cW&%HYQ3=I zHOhI}*YM>skeQ1B5h*C`9cP;@S{m1bZZ_T8m_*{K`&${* zQtfE~A>J2u$6oOz9l&k#!O!C86X4hvS;=f6oPH*V_Szqfrn^H=hgkIS7jXyr@mMa64PGZhM&5Eziu)7wlUeBn%%;{SPo-lkkQxh^lL?tC z4RO5L3+z?RuASStVz%dX-bjROA}#AyCd62D9#^Fbv1n5%z)nqwO&fA159u%U#@U zUCm&;U$$&uUdklx%Vb_EkGQQ^w`l&6Wi62-u!$i0aUNIq;(7T@!f0Cw>lS5M+!nJ^ zAY63xtUXHa_7CJncJ0GiJtOV-rE@>jPaOOJSs&Om+ygS$*ZER(q#;Lg!ZO!sClLYy zJ&??c#V@H6F~ayGPctLz55y1;$+mMFesY(KcS~Crs}okGGRIY~v#b_vbC@RN)lG5{ zm8NDU)bZLsA{hHxSK?0(CiOkO=9yP*%pq%IZteEjpK4hVGb|QbV<9CRL~x)V{9+^E zi(4IS4>!7I@VN@rt6I#oRfKtxqT?!3LJjngA=s=-iSkQ<^s}t@^ptx(0-WPNReLTT zY+^PX9=S)Yas^q&R<7lg@h0LbtaFA8V4?ydA|^ib_V_m$;B2M*jr{)Fdfw&~+D$7t zOpUXefy{c^P01$RRm2GwCbX~Z{c*(4%FZKiwYXzOzPpTGKN(r(kiVQnveG0>XVVz< zbs%)}11qxCln?&^HzW3+-E%~t(;WTL@6Ox_Kcu;Q#>$XW9l%vuI@eTBKZ!!;?ZEf^ zW8hEmHR|8NS)5mc@_WEyqQmQ5v9eXQgCX`r`oQi;49pKR{?@-vKjtQ4Ax}KbgK6LH zYOmF^xk|M0)GOcCD`4wJFl0T?iqEWz3_CT|?*A_gRx3%GAPK2uN_*RgB| z?E4?P_T+LdA6zU+*BnRB3Q+SMih9BH<_aQ5=3f+QdF^%kD-LSg8rf>dv2MY&Jt8r6 zOiEci@VFv1(BMupBz%KrWxLC`r%Sk`of|PcGiEX)R{U=@nkbx6ddEf{8A`<)8 zn)HoU-HMZw#b>imQAR$dCgSWW8wL4x^~^0P32+gSPdpb99lHGWg7V^N{{RlNo5!ao zY7qOku4O*1ZJfk}cB77qUX=_Ch$x!47?18sNXQnvOXP1F>mBs{hsfAU?^Mkax1Gq< z<26~u!W?G=%EnNz`dJupL`80}J!E6&tmZs$emmB)@pi4PI?ih(^e8MWau~9(83v)) z<`F=*p$b?EE>0zJ>XM1{{9D=lp@p0Pi$HY0{S5Wp=P90cEn!zTUsKcVBtC{uyJ78W zTFB}`43cYC#Cs!{?e|Ej<2`R{)U@{KAEzofsAY;He{i*Gjymo`**=nDg-mNnGUk|_ zgPwR8^}zO)2vl}|BhQy`*u5`J!en!q`{fTj-%S0!)le$jbC=K$%HG`kyi~LUAG?O4xQCZ%@5rGo_-2t%J28 zS@)B}U5>hQ0|eSsN>XTi0@QWxJ##G}YzoR)e>UJB+&ql!v zm)JC?!y4uWo+nVbV%}2T({xJwTek~Ssa21tdi@oFD3zH)lhD9`VZ2Dk_wl4RtW6E$ zH(MWuR358?MQEi!*G{%D+WD~dTxkqfs3H~W_8F3A9CcaD@$=@|->HDfZ8>d+CVOU2 zTcb>{Q*9Xg&^2Ly%;CshLVcFFo`6J|M`1vF7|`s`gmnJ^A^5{?fXi+ERM2((QzL55 zLXHzG0u_By!AdW)84|k0BD$5yQ2Q46DfW~}z`zAvN}n@a{ljwCpSOl7q}(1C0M^o@ zh3ncq*RoPWCg~D66!!iR>&J8A9?#^Awli{0zmZjUQ_`wHt096z^BrTp4~!m7|HE1-Sw-OR^oVx z6)8sI=u!BLlOe9AKTxEoP27`qi}~DBYpHarq0N0}e;e0Us*ll1r`%#phy(KeR+&dX z0S8X;uGzc>R}+NH)6{e+$}Fc@wQP1nd&*>(85FdC7fCKAP*xcMJ!IjNJU~seLd%Lz z1*%a--IRTy#SQuym*H_WFZzxH*+p>7V~J4`!%Bq8Aye#;o+sgK9jhKh^jq1e=JFZE zqILT-sR)AF>g2_UGYw*mw129^KZ+YB&vIl;LRG)u?+R zO(9u2Pud0aT|yR*Vr!b;HzzBux=bh7@7uwR1M+vQ7 zI<7~8?GrY99+j!lww<3*g%#U}Emmi-WU>}fEBu`|879LSftiScf&9M1$J%GPOZr~Y z%#PQ48LZ7pq-LpoL4D^{{Sq6gz~2Qg~n+~@n4ho zn{_E-uF=)3D+GT}QuaCmZAm|f{m`1)kmax#D_K5W_n*HMe;R7p9iL~;r5J0vW}S=K za;ILV7F4@gE38~WwXa0XEow_7BhX}W#=H3jS0nO2o$$1_l zATKPHvxK=c?JVtjtAb7Br9wZ9oB4AxMZZq)uK7zHv{Ui)X2^(4 z_Q2U2F!^MW8$FD#>?n>%Vq!!t+xFYzyr9D${*DP#$=D%q<8{Am_x0lbmsHcWE3C}mYGA5X%r7N;%cAO?+Q8ar8ulKz9>Q`bWn9b^eq;>j^fEa8 zlK%jdGuVn6-KjKds?2X0L%nW?sEFLE@GO|0T*{Tey>LxaiWd-kL2Q;9hm*H!56IKm zcN)6(IA*QPi|1XTO6|@~tUvP@4N)yHtSft-fQ=WGOWf6Wl`7_5Rnv_y?a ztQ`Hn?U(iUkAR}|ZaTIhdj9~Cv#(aNAQna1u0QsQX$hX9H^oCXV0r5@`u?R)+q%`y zKN)bE_O*)Iag4)bsMR`HW6xNyfQkB>HszJ78yoo>qth2B@-pT~e)AlBFH0eioYJnu zlT@)KR+9Vh*fCsjGsoYVIFI-qr9AP>!j8G6c=v}W|&ZTlm zEM%&g!rsYZ;#6M#NpmyW0Dc!0Zw-;$>S#>?$D?PN9es+FReY+Y5tFRg9x6{h*oB-L zW@aOzSWNXSeelzdNCPuqYVJlOG@ zQuA2bacYK5S^SlpmL|&KcB?>Sn6Q|UnHDHvaS-LnE_maf+>8?PFYOdOZEIl3v?^q^ znsRvDt!Mo;iq{-a2~fNL0H9+HVqjf_xtJg>J_0X|v6|*{$h-Zg&(~}F=0eWCwcCks zFt7rO!wWI|ryC*(%{terZdg=$(_YJ1O5u|9>FuMi3fbNZ^WR{|CzNLejBm9bnCG9zTNGtuj zeWrT+s)IaftL@kEIcsIMWh~MfmL-dvwoU6k@Ixs;6jxI@jz9rRD43Gt`;biWw~@1X zH7~_k43hQw*qCLEMn@@(C10^cP46`qOy*ZowY6?04Lgq_}U)?pGCtsU+T&I+Ed_fGE-Pg6dDaFuWA3nfZ#N_QheQ^g}^9X!# z1hq0j!oPt1Px#iRVDs5rZTj?5rr@=^7_EM3;qE1JC3?jHyhs3PNUbJ;hB1DL;!Zg^ z3LS3~-`jP{n%|K2%$?j7P*yIMvyHbjaVKB=7A-Ui+h!+@A~+cPene6IqHg{*)-)Pd zb6y_CRo1obLn4fZ$8%m_<5g4F0+x+3QG(AS71+RFG9@45+@Z73i8shUsJ}5_eO@5( zT}>NXf=teLX1v$f$KhPwNKes17|%N;?$NlA&<3+ zgozLO5yTXh%rx`r`Ty9%lsgb#4a%V|)PQ>JGPeC%4 z(`T&U3J0IKus+lD7O~?m7%vG~RW%=V+;c{~>bVNb7UJF`EFLPTMKDA$5CpZzuy`OT zAHTqXW3A%6mr+|MkT%Vt#wwMDDy9?1`YB>4L5y(_&4+>sUs8ylP3Q>xc|Z90^W!fI z)AO-b?&b4sRQD~x_V@MfHuo;rWJ$SmPA#LobTo`3tK{{Vk6YkDrx;!UBc#$vU6 ztZX(VWs#Oz$6o!wN10#Lx9W)f;4)AoU>?<<&5AJf%?-^@8QJj8zJ+fNbpILs~c3o11RH{T@)q3k0 zM_4hQ;PHGA#|1OQN6gtAUWgWFD}TgUoE})DY%ed1re4V&1{*B9iD5QkCT3^65Bz`k zlJQnCxlHAphw1am&)9P}I|fG^ZMCgpE%Olyo6etAgE``6O%m74eTpPwkAX$aS+R?C zG;AYN6_LdpCl|HjDhyDWA|6#~b3g5Xphg&zDN)P}si4sqAKXsyiO(h4-YZfZp3_AI zS1DSpu^eS+B9MkoK%#x?Bkvq2SlE(~Vt}GXCY1Lrrsj7eT;xs}93i2cX4L7sT%&-n$aZB)0wv4N1W zkiCXBEVTU`4vsJYU}4bvjFrd_Js^`ZlL8*3wv36fp~_7-UXPZ_%9%|N$k6mLHHj&Z zQUhw-ddwn6?3d&Uytd_GA9EvMpxFT`h`UB5OyjLSeZV|5h&%C z>O)#yKMk442Az+#*qVB_tTSUW;Op0~a1O&WG1$#282bp?l1(COxh z))8G{`=)Ou!7fTYL+u$N{AaoSVZ?Di$1^_xYblgwse#3L0|k}CXnM`LHQ)Lh3AvNV z)R%i9{lXXwVh&`d*A|-tHaRgVn1-xwKGvA!?3HQN(rH;!2lt(bzN0OA88I>Iuii+` ze<=~L$(W!1VkS8FqmjYk@nLUnJHg^%w%J|Xqd#Oa86AKIB1uj`kymic^Z1dIe$X(m zkF=+1{%5b_ag|%Z-j~x+vlYBvtoy%Lih_^pc~eZg%yy#-br%uXi0cOt~( zT?_$Z&{f_^9DPp0y8{PSwVD1-2)URja?a}>38Ap9yWY~jC3zJE3!HhhZZe5~Qnteg z;(kYPkm->NzLdo0F$yPVV+m-4Q$-B`R#A_5)V)`g)^b+W8 zAS(fw%-DSPI2D-*)k9~FAZsnh&lB1vIh3uVH{yIYYWAb3c;^|H*_g9#W^z;~C9p6V z_G9dgd7CxVLDEa>8i;`y>Y|A2@?%><%jPy4c`U81)6I6%GEQqV7O}W0Q{R(a*hmAf zio#(16xRSz9DO+q!A-wb*EC8x@6l{KHY-0FMlE!;Jx>M{FsNzB_7KA+O^i6=V3~ik z#E8!du8vy5d@@IL5?xDk_Nypdi76BuaZSI5l>T zs-K5(y0@JlfxUkpYg*H>2LOd@SsaJ&*H_S{NJ8m}BOY8&Fdn5@Uyi+g>>+RRyqg6IpF)+|%3^U~semuAI)iyoTdO#+W1(e=IgZ_p%>?{kG zfNG#hCzxVuEu4M*r85)pDf`QJOqIPeBc$Uq+XgfI?BsAswUDz!SundrR!By>BbbK$ zOY3zajuj$dA2O@J8xFr~6PCwP*q2V5=ECqA_DP~hiGqV|Ge2D_jF0@0Ub4bw20`#s zGGNzZdDC&Z3a`}lJeFfLOp#Trlih9ZZ}c#xIvsV(h&bSop-(dt>=^!lXS@%%`At_D zwqmv1enzQ&;g7C(ik|kpLk6Oe2_-~Buf6YEddjUgn)csfB%n$e2IwI#w>*5sl=H5`u=1=XJ43y3L=3Bx3%M9VHSIH4^9GfMzlN)Viq`C2UVi0wSH(Yt+pXAIAc$Nz z&Okk2GhRjp2blOl4%sd?)n6CoHyp}V`CW{)yq#v^MI=OWP}_AH>pV=z%vKge!13NW z<`OY^Tv@+i);Dhz`AcMLURQDIv98UP3hfLHxvg1D6sShQIHjJh@ed!oPut^8spd*5N|9~o08PPgp&kM$KB13!(gRZ9zVSzKAzK+CCsFkx^|xcJYh<-D5hV;i<=cufSd7|QysPQjv7UJ}J_uqY$L}jS=ZSBdif=KJm}U-e*6E(KZ{}X5spVyO6|e^&gg_fYY!tnr+Goz-&~AFtFoM zjH!xLu!3M7GCYV6z_H`J)a;f<0=JEGxm!ylhC?5UyGHx*j!!bgS_5iExkQmJVbc@O z^#n3A^B$?4-G1^~GjiHtXVQMP#-6IFXQ zU&oX$8wu6%RcK}QER}0YpX3(PH>~-BiBn4;$#z2Gb+M#bg~-^%$Di}!68J%N)BD;A`pV5DHCyhOD_OBuAA|AUc$?NHEKk8TZ_SeTKB3QzOn|*cy7z00(IN;}o zS6jiA`uNQE=+hESG_rBk_8j&vUixouGJc#!3@uycdrWsYGvn>vIpS&7e^0vZS2M8V zGxu@`Jc4oe@yORM*uzm+woDj4g}zCk53kxp+XNEnA(fGKk2MH98F3n3VS5h#WUL`{+e1b&@=SXs=CjGvGEn?66IP{zhShD%}0 z1+Y-56i~Lb@g*ZM z-2UUw3+8@IHf`%6t?aptZsxm-@|M{~lUZdElYh4wK9Uk+MAXU@I0zE!__AVn;HGEb zPjp`cVDUO0HJW#eHVo}%V{2LZoSts8ux=Sxn;1iAX%nCz{_?dL{kZSXz$a$|l-2HH z^=y6)&25`BIG0Ii7I0eqMU{y`6YZ(YW4j`uGuQ5w@I^nA%ty)&GsipPw7J+fj81h} zj6NkfCF}amN}a88VHF|7%Qb9RQynGNAmLu1>`?D z#AIO=E3Jb(b1}(?_K))kpS-p^A-rn)wWQ=V3@uRDFmQut=Rrskpi?kG?W&O(gj<0w zy<$CF{o+0)-1APKl$@S%0Ps;>D-fJs1|yUSXDx=%7HUAZ2d%+JN$qe0Lz zAy+j|chBtCuo-2OaoVrY`-tY8gUM?tT|1a(wI&%mK&e^8q8X)h8w z7Td7oQ(bTRU4H#cnk^dt0L5L_@QLhPec~j4u4jq(owH~Bm6ySWySY`h;><`{AEl4k zPhreiZ*gMVNk}4CGzdmS#27+h9fo3O~5N%XSApzURA7xfgU&( z-T+7a!s{J{5<|rPb3b@Hip6C-cbUCtG;9^CSCa>7-5leGCuwEK%p0#S*v<+jc#9Dc zJpTY+*T9nNHTCCZtXtW&Yx$k88FZ-RHZLVn$yu7V4u6i#IwGG{WjJ|gK!si+WP2Y% zpO0QZ$auGE@wUdD+sWAdhWfDC6RwNbRZ^14Xms&jfWR()#AXSw(;k1zpM-V|-yw&| zQ_l{qxnpM-(5IRuVvfq6j)|5WOQ`$8X1N^M4ojICupjyS6XdVd7l){L(_p!O%$n2H z7z~n-CJu@dUt#mT@B{F+B4h0k<=k(02-#Dt&Ihl*QK+Hm!R1D>(-< zz#MfJaIqL6@tq=E#V|m$zr0t1ox7dZHo|plt2i~ zMEr(q8B|}4#)+okwC$%dEedupnpG#JjaG5oV*XuZt2dp@NfMIQgmW=7F)=>_=&Wy; zG`;Us#%?)%hZmG|+G?-iiu}>U(!DbxXvo-jLv6p=&sw6sW(YW~F)(tCzWJT`i|0o_ z^;n!?FbM;Ys1#pqBgl;7aLn&vYZ2li&9pf9=2VnNUM2(jH}VcgDUaN9cW{~xM)0bu z@)*E1*%wa(TeWl$Dze!l6~Ccpe^eQta^{DO@rQ=|SB8CmE8_C_{f{Wcg-e$ONX$Td06BfDWZQ1n$M`Qj^y*raYd$pDH|>JWGEp_-UmK6c4f`|NJ58Eo*(bdC1gS=Sc%Q{_ z+81hgzb{j3$mRUg=Nga7DGRfCtHU8Qmtpq^BCRrp1&HD(46N(0EKf7c#LPqk1{=aY zCf6N-%k9dsSLuvu(7m?bZdYbNo{{YNPe0<8#W(Nmq-;S_N z@y$voXS*$zy%cCXNV8 zv29t9228RV`k`)LVMEW}#e)|8qD&4sKbbE1k6qWZF`3Baw9hAJ>#zw{t7fd*KIg;- z(?nM~waBEPL{dHGVj??F9{^5sXxVl9naUd`DTCyh zPqB`4ObJR-GT+VjYV*I4HpFf@FC4cCM;5=@o(s*ctLP&lg{76E#j5f{Xq?La=dQOX zM8E+=oRqRx@xIKzZpBYYxu<09)Vbd!uCp7Hwq$k5ez(6NYGLEV1V{xiC>V$W2#si}Y4x!$ovD`Dqs4Fo-QiwM!n_&gd60boh#(Cx@J4B;a@+J=ft=-dn zpT9ZT4Mf?96lzIqRLVk51VEcyTWTygR=yH#R7@Y@N5sr@)LQ!*rXuH){BOGKSkz!^ z-%d_wTFlp3f)w}`P#3Zl1SJCkg|tXZ?;+1$gi*L@S$&ln);KMm}4F> zEtxgA*1$9T+Ymr!-zVgKKU=q~>nq%kJ*=JK$h{XKKQ;dVDE^;6>D3*3b@JY`Sheicsx&R9IE7nWq>d@st{tU@!LDi^APNcu#gQY} zeg^EeFUI){mIn%rd?;q$op2ot-2-MxfXsEiN@Cx*-m)l>l3NXPGZW1Goo?Pf)M{*4 zO(N9{)+@U2WwlpfGY?(UA|F6d0PP_%m~FG3;wzM@B+G=Ee8af@pmnXY9f8-;s$w?0 zpk|cXHhrWOGDIV2CemRr$*=1ciMVBoHB7{Zc#)rpczlM%wCA!|%`+Fd`HLZ%w9H)> z&4I;Kpsaipfh#JKaD6)LwZ$uY-Ry!~nHw3_K(5PsX4k1>cMbmlY{2F>w*j>kXkq~2 z&51hq>R+o|r9e%OVwrvQSgGVBO$7k5?XLM-$UYyZS7P#Rze#j9pjhL!XXSpj!qeIf zHP?z;Cj09TVCu0WXwPYMl>Y#R?-bYFDO%d_I|lc!_-AW_8`(TAD;Zrjn5$g>01Zam zg9)z2J|f(Ne1H4!hG0h84{pnrx~Csmi)sskD!LrcSAal$ zIrn_XhhJoY8(vP<{I9Q9sZPZl<`rpY)7{^%*TLb;B4mu};$mXWpUPv2beG&C`~JQx z<}uzF(ov7MbIkYI?6O01UDk1=>T6WXd3tDcaPX$g%=)1->Sc}!CyDvu?y=x>C7UaJ zm#Sd$&ElS01&>{9VcPaY!+DbWx3Q%%u30iku{?9cOtuf>w+&}gv14BG*N8XUcWhJ( z7Tv1h?_xbm0fP|8V{MUfFdbvRsp&Cb!0{6w0B%OVlQdm_Xwftu4l@Rf);}TpeqDK> zz)P3(gu<%KW7%pPYfO}@xhSP!BNM`=XAbe?4gG4tVZ6h-Vdis0yB2U>t2lywK16JA z#Y+)R#4*3bUfYlo1kS(I#9_Ie^7da+cBQuLT8;-0>I7J(&SM=)^D8b%bqDul6HKk7 z+v@eEkg{S_6VG{{fc#UM+j5vY_k4fgx|9^0RTIkPZdtov{(vh){Y$Mo*KrGU{Y8$5 zTP!&~p%PRqr{EEzqdj(RvwtLv>HGv3Pslb)hR$MR{)bC$1r(mP3NK7I?U`7ID;#f-l zGSSBux1LL6^3^RvF}hTRzMi*)RwBhIuLEMPI%{O0(JPgGM`()E1ks*kj%3KUkbD-; zA5$w6yyoAqX77DA88)(#oQmBo_A#iggdKAQfRTS4RK(8$EROLK40sI(#6CsMWy4pWvffcI#!D0saUN>f*ud*C#=ClPE4-T6QGotZVlx zi|Yfn9H{2Ktd1a;QO6)ly0~DI5JhEa`;bJ$h(hgZw@MkR)Y68wIt5gtBfZ$Sj%kcZ zgH=un#j0(v22%!R`tl}bArN16Ii}x(ar7OgZ}>8GvU-tMR-=au5(LO$iz)O-rVH?i z7P|X5k%Ebd{=!w3+WcFr;<9+_nS8d)t!m?PYp;vETMj;kK~hg;lT{HI1zY}QKk5-3 zNwCN%?0h*~^I2uDV=s8uUOWb|ipKpn?icZ>YpXW@07guzyfrDCFpBGdOv?%d$J}F{ zhQnJohOMmOZp#^(p;;}ljt3kH>e*uyG{(V+ee8lwAVo6L0+5De@eYCG zjR$2kRMstH)wkNnYiyuWIcpiA;;vj(d@5nezo+q|nRnFB%aHE9J zI_>&3tasohh;WqFf>|(B4hD!w40{4O`9r&w+psPM+|A;1SPHQhfB4r-WuRE|AC<&G zCPoB@?!>E@<|Mh};-*t<#%*~OuXmxI)HSDxRV-Fou~9s*ID1So$nt=%$4G?xVU3uH zY(URR4A?Bz;pAJ^wY*1_t>D1Pg^?xUXw8V%gA#hLrLWZ!0WkWODyGjHYw)-gFt*=9x%{j#! zIN4oN4aP}8{V5@%BPg)&h!w~jdV{ggAH*b60j%e=O;E9Qag&|F((WHcQ>t&%36U-a zW<)LwcPab&pZ1ylQYqvH*YUrP&=u`e)iExMGS<=?Fm{-N=cn7=Z0{sd1trW$PZKlD z&p9#L=Z=p4N64D)0;Vq`lwe|Y#$kBFTYYh4j5OMgvm)nv-crFa6ju}L#81t^nyr?p z`$nmB(EDy2L^c&Fu~s;fv1Nh4m^D>QzQiJa^Hj)`Oi#=sYM$I}Ja{6$FF!G=YH1SU zDq~1ExoAtQdZg)AbSS6q3tUWb?wFAA<6JiHgT<#SOJSq2+}W*;$9S?O^f@Lq;}DW3 zj1o(P1$kJKm)1Ir7vu3a&AAOvd0#RLnnltsc`?j!9DI2c-BqCVh9{wtA@`CN7y z)=yB^(7b&rsLtaS6>9`fphR41f`ggjBoiNrbIDI7+F-d2V0$jJU@~|d?H!L_%B$<5 z{!E7)@)s@`Qx>a?)^}l%p3FkxAipL=e?jqEz7uA>S7P0nV*!R_gyYekNQGRpRAV9j z^k!?4L7d7^M+9Ud(iwjzIPrtyxg2xcyhQFq|ay#ifpW*qbEZ3_h|WXDK?fUq+K#{(SkAlYzh zvmZN6x`SgLF?8is$XK_mjJp`g@!X`KN_hVM{{Vh|Bx4B}lL+%9e-CyBK!pg}_FVrVD&uVBpw5-KU49KXEJ;r{@Sz@X&q zRdD0$wX3li1aP1wj4DUBSd!*tWE06m^Dre5#Kd#Q#9fC)#o~3Q?Us5T3k;_gPNT1t zYdACn6u9YM0|H0@$3IHedSqjOC4GiVYB>!fD9aQ9^>Eo+)!5*~WfpYoI!a)ri%Vd8 z$#t3TuF=eK{ZGli>Qfet9}Gyn(80SnQ_DrZ)cSj4g7^nGrAHZ;-fh&SnX8tz%U5ecWXCau zHkwr)spb#Vs@1HbW+#}IL`-`=8i3DhQaKGHDy*`*ro>|JSSO4nV=^;J;dVKh1D=5X z@gp%XYK}fiJX?m}{Bw+{pkVU&yjATk!sy5Dw_la7dWB08AjnLDrE;+~#KNAi>eQ4j zd;R<7c73bGn5AQP4S_fqwru^6JAlNXsnJJZD`La247LlXEG8{b6Uxb8ESMROfc>M+ zC&@ln*)o+bWPRGbTH57YC8ek>eQ^6HA#I5Q=^!5QK$sDTkh&zfk@?HWyX9{gD;u9? zXAy|XV-PgrC3T)fZmYG)%9AY2=(2TZX4x?1ob} zpR+!@c6lLP3dwSyZ8BdAmORrlJe+}#Z-snyss8}e8_3%5K0Z&7ayIJ(yEMF7vDPTh z{{S`>u1bI`)?D|1`b7bp!wzAj&ICV~CvVzL&Qj=6SbW@O_srOLt# zjA9AydlwAt4waNFyMAZvI;WB<>h^FMi<=gE0?^9Z$Yd+dSg6;yzEx2a{-ucq!^tu# zN`e&)DdeNK#=2}xYGeMZ-g(s~A89MVt(6r;%7!`kn;yaXxoq}1N=i}48&%Wr2qevG z0IgSd$LUzTZMgb5G00fTT*g5RuBp^P#tp3)?sh9JN&{~sWQHucm zMLl0x)59Vytv0JWDR(7tCNK^agH)ebG7Ew-;f6fQu-Qk`lTZi95hSj%bK@?^mC`ACn14! zEeb^p+O9>c-3G^CmjSViH5+=#9}(7Iq6}nvN5FW=`64rzTxMg$6!Tfe-+I@tUS(ph zjXP{Xv5z<2>QJ?U%-IVTNWz#i9P!3)5$k)MeG3zfW^%3~t`_cEqSubbuGPx~yoG^n zhT3@gyReJ7lvj!EJjBO8B>pV&RYt}#{&x$Iv5(Est%$|j$KtNKvD*NFW%UV&q+4vz zKGjM80P|H?GQe}>X=&JY9G+8T@m{^-?UG-Y&gEZ_W31At6!Fgbc09^q>>+CZ+HQcR>82w(>VTW#NS|T&IDTa1hV(TQ0CIB%Ivlx;3 zkoj6czaNvWe<6K&FsU|C)L1Nq#I6qf{cfjEH*w0FZhT*Tns!g<#n{sG}m=a$5GTG-Lt!EaoP?VZB+5 zVI}K9S+M3XiVu+dWC&Qe`@qk@vF2(ek1VD?wUi}7ZkNFbsZlWoZjZb~hzAk>03p(6 z`uqHhxbgcP{FjpQIgD1Dipw!I7@eP@@tJm4Sq*Tsrc6T(a75`b@9it~JLH*@&14pNzr!SMgpH zQ+H&=QOLAk^%hxW%z;W&5>qOdHI4*`%*1tQbIi{ZF+75Al{}-P)>&#U(y>_z=T0mL zZ0BCBiUK0hBF5Wfjr@`(1j$nigAx(p;!z8P4PhCNChqK~b8Wj;jfaLhjf%Bz-(6Tt z9778q086iV=mu(*F7;I(!BpVn+%^A+tgwh^IRJ} zU|yi?#u0&6BZ-i44-(`yjke}#v^P!lSbwL((5=1V=ms=NG7`aEK(kB%e$!fHWi62O z4D;F}It1p?%<@7LZ#QQ86VwNW>L3FDH5D5lxugDH{!B*Y?;| zy`NhPSiD6gx?t=>ipk{Oi4S0`jZqAdo*=rE!c`nA>f3LT{K4dnfX`=n4twdY)}wxC z3W_B{SF6`>*+`R0S4~86rV_;Y0EnyLv=1uoIZK*;Z)ev5O)<&rwkSTsOCZ@ks|UBJ zG@QmJW+7}$3Q-^<09<^fVl=xnbG0nwwh^mk_t{=@6|k$c@~|Mt_6>{7xbArA_MSN} z{X}!{CK@J3!ahPAeoG6kmy$P1f;Eoauy#SMaB(YYpO$Dq#f5cu@rlTbKJmvNC^>t( z#t&G^Wh?4hwx2ZNh#;JFOCV7_m~97KDET;+dMa?Y!`LxM~`)!-U7X&ES>Cz zYbRpmAyp}bhp!uun={wyTV6ONBqU(Ro<8sx@LETPHBFUxuPRyAGh)itZvkeqRhYEA z;EO1h)aN@b{0m4F0W%DQ$c%w{Gq>l1a>wOd-!| zYpr7nYspYj2I+-|171O$yvdHol*Kf<<*aJ!)vPg56vbYfJVY^0DO{X&l8^Y9 z;16W9EdJM)r@m0Nv1>F{d3bz}t7J_pmA&RNF!zcbYr3q$V8wzQ3z@)iJ>_?3@t2Ui zWoq`xs`-2No5NX?eGbPB)Pe>8S9>95#4oa-_>%0hYkg))6JT*C^EtmFd21b%$>VW5 zejaV5xV(;c8%DI$sIH~L&CuJ8zr+}HfI_7u%=ZHsU(EVu)v99dHQRnySJifvW&WDY zo7k(_JdRfK;soDb&Q!pC%pnsLLScX`Un2{S{{RC%Hjj|@WaPGC^KEV3#X8FR%4e$` zN;L*P-h|t%;ZPx^0!t(?<>M=mgP4ejcGaToyLQXv0Rf3g;^JS zyGR^740-R*z>{mu&e6$N@$So_c^5T8@);Ov_c7RL1OO^In7UkQO&am*j8SuA5FIG`adFhn<$u~xK$HX z1Y-g7Sz{!tPXK#rJskF6Ne5_=fEi(u#Fm+R#5nCIC!L($pS=oT%VD^=n18iLN znaeA%`*I{pmM{DQk(<|c3)5j+UOyp#!RmM{UK^;&U6VFMEaU0qcvUu(uByP7Ek4f< z2xd!-`YsPC;p#aWnPpkGWv~y(YzsF$pY4I{n}AS6)SyI^EngwP!IFjwPvRB>#XcwA zGr26jkF5C<4~s0_zoRWhxy)Fb(%DL-Q7sDLHP>8be;#1oL;nEH@g=W#`^%a=YK+u; zujZw))1`GP>^W>bhFY+(AqA!&+TvvJUyrE1{fxN*DS)Hy8jp)IxEopU#8kxkoTp;5 z_<)MG>)0ueLsC@;CdA8#Kmd6riAaw;{8^zxGvs`0Gn=ksDO~Yh>ancn$yr3>E(E{> zSk6^otb+aS0ED9EL9DXMg2lrI zCQ?lgSLG%6kHDn)r*_+Pvd7Zga#+lTTBv=)*znelj$*bv!-=hJPCr|L@*@Uf$RSq; z)LcqoscL)b^$dUd&poH?G_16TEbpqK zGFNEh9Vy0ET3jy_1fhi1{wpJ7lO#;~%m9o4i;8dPJ~zw`D&E1X;C0-MwjNHc8?~yZ z8*mCI-RT*QQf6Pu9Y@kd-ai69K6c9GG#q|2Y1MXr5MV0WZYs)cCn-hw42A{*xpZhq zqQ#cccK|~JGxX&=NpzSnc5jgGXm(StYGIqusah4-E7!7b$789|c!zgDWpRfFawQEU)s$laR8vV=hgsE~6~9BTo%(!meMgvT4|oLS<~PUPpnMo<5>^p1zUh zZDm;<%OR-!r?PHMyGF8@i6zg_R`lFpK}p<(*qCHQ4A)Z#N+vrjS=D+@- z*C|t!>^KO|t02sL0^kbd+pf2iFjhn^Q&`5B{zQL-MCHJ0o=g2iy8En#vxCangjdO4 z$ymAT#ZeQIsfvtP92JgHBGW5n5fb^8`p$n1`CaR7*{@>!O|K@l4wEYeS2I%+kEIh+ zA6$lDJ$7v_80R=*Aw-yyfMIbWB@%U*ZEMHBK|^lCd2b)8wC1L>mwr;ED|H_JOuQDKmFco=d5 zQ7jo4A|ZnTg7}BzOlFoF<$Ytq87-%5&QL{k=Id)dwz}2~BpB+>Wp#){MnNPd!zco= z$wZ05je9w@+05+?tsXjVGaj)wD(vux9sf!Zm5}5#s*6? zfXU>xygHqXEOre|##LNBO2=19%$HqXi@>H7t1Vx%h9zXa(%FzKja#)mf2`}+owEg* zTx17d*0aA&ft+Py7Fj}`RmFBY8N!mtV<42rDpwMv`sv#>uOxX7e#TJ7*V6+B8s*gD zD%G^?g>&q6J?=jA#Sog1;TY(zxsw#W8y|pee~v>tq}bMcndU3|NBV=U?4{*j3R>+r z`;iw^%KoLZAp)Rt3`7zv=pwiS7f;6?G)~;w-XhRxW-+z#*w$91Zn=dzvJJiL`Yf~L zY}PMl2L)PQ9Fg$9?qhDV`fb|vjG}g(4<)ImJgHT++suXRi!wIb0ln?uI#sD+Z{Nez#n_6|X6w$G&5&MA>-rmH0Rp&*Qd=bU{re1*=*)P_ z#c0Ib+cjH_(X;xdICdPnZA(763`aicdTo)C3$#ZMuhI%gA`HSHJ{;I_8H^PjGf=Iw z)y!AA%WE3dwG`Z(uuT^kw1n*v+b1m|mXve|IU^{Ju`=EBPufwL)%2UY+~l)>^371g zbWza8)(6k4)nKRIhCzw5+Q^iQqw!1(&tTPa$Uan**u~t(W-aFOE%$8MEMNs&n+!tz zt*&&L%uQ7;R+ePz{z*)zK9~iBA1l5!*)-g4B~8`u7DIl_kf`x@4l3U#7kBnz7(`=C ze&sd*ju{Y4gJTS1G8s#jDpIb8hCZ%VEOsU=F?lGh=&h^uVaj5|fY)gx& zb%_t5sN*YZxNC&a$>c4t)n_wR_1Xtyq~nG_40TvQ&p=d95WXTLi?o)llVR7j8VsAc zY&9yiNKC^gd<0~|2*P1xP)zOwF(V&u#CiV!*Uz3P2A{cRf74pc?8Z-KTM|Wt$ra6# zg^H_z{{V4D&4w&nSF{Ynfz!tyl0dseHZq>atNjhz9wNbM)tC|Wc{HlFKr5Wg#F2#r zL)9?>GZ4lI$7qQ@V5i_a;P>CVaC8`XTUV&#o^zkeX3;HPg zedpp`CD+vTds|kiip%0znzb2w*qnwA#Y|H9U;?Y6)qzyjg(4IaAtt$)DfLf3HkB-f z!A}{h50vtEwYuRu`0*;_@BYZLBfQ&ZOHWa`d;6|ri0ZI=FSy$y#sb7m^k zQrk*4rq2-KHZ3b3rv)q!Js|@yF*ErJ*YI9asj*e^Jv(^n80~PL?L)$Rm<{uX^L^V3xA! zJtzL;t|O0(n*N7^*>7ZgRh!Lbo}b&SKOcb2-8ysWar7yQ)w(7{4lt1=`xWc7JWTrM zgiSu3Og0^vtWGMm47Jt{Dlg)RbstupS&l5^`Bx67W?Z{}RNyiZHLQwGAfyZ2TFsO+ z+41htw;=3w#QxK@vs zi7)52*OCoxBY+qC3<0w+Z}tAi26sh0n8+YkOu1#=5pS!hyW5u z!}$p*LD7R3n7M0Ey@j3d?d=R@?1lF)_S#~jn!#9H?$y0+3Zkm*NVMXxwNt?e^Km~M zBQQ?cc6V6U(+42zc8@Q^)|Qk=$T{k4HPZrfA8%0o`#_IbnFVV{;T(2j>AaUuB#n-W zJ=2N`rCkwj5B;+%hCQ)Lyo~<7uZOiQYW+@MDiXCKQ8DVdMTCOLr9 zreJbZlI`~sveC6?BTyQvdAv&tBrPcAh&xJndZZk-gu>SY%ohU@F%VZ_&2L!ch3k5C zJ2i3)9C)&ZPQ(C{7&F>_s=Q1=02J{K;v!;ZXRO4{s_cGXz-6uLdCv_Ufwu#f3*`y9 zbP?=;wjoNjsZkKw^%(%zR7~1FSIlwoi!r-sC5%PQ{{YK*Iw(zRRw(PXRNY<7C<8B0 z*Pf3lGKH*qIivmm0A0QSeal{8o;dlB zNY}91g^Kx1ekBi_P%5L>jH~RkYb|~v&GjjRGwdJ{s}T$?pa(NE5GOIWXUGL6e&&qT zZ>h=GaM`s-w@UP)Vm_D@97(8|0uX&YmRtF8)K(%1Ib3d`)Ct;KGqvqY9D&Ds{y&ToA*{Q8^=ks z`8X%cOp1rF1aJ;BY`3V@)LmO=)v=WF8%|y2?8V`&U!XY%P(=E~D>ZTvR7jT^s1HDE!jVu`s71<#va4F~}KU43T!9Y?HnxT%)dG(~-pa z3u(JHrB_>*eVSKh`Ii&*Z2F}ft_T1GSKIIi5s8ka@dse?b_Xv_n!W?b^*1{r=FBf2 ziS}CyAkX7s?bf#dwgib74^ols_X!!1kZ|$;0F`lM74)ws-KB!tX~$aum{DW@0Ci8Z zmF23hv+I)Bcqk20pGYT)&jV&C3@=sggyEdP*4+#dZ2h zynY1`QeAk6kH62^M0w+EwNB=ht>dse4!#Y$R@N)oMxCX!VQpa}Cc5=TtGJP9sd7-! zo@A$_m<8;Z0LW*yA0>ES6{_4eQ?qkpwUKUG);7v}RAk9glrp@OfOH?jnK^-y<~{}Y zVe%eaGdO#mFVxqx=B%n|)tbp=8X1Lvn_7zxXo8%C%#%Us?<*JpeM!L`kFo6*fkizNc0AW;-dluy}UzS#C1HtAOkh8KC(H&tGmX-f({1hzs#I)po{4-qBsACb50_G`!Auz3FfQrh+nfmv(VEN(?uajQt%WZBUj z>>5nF)wTWrvf@^m<~Wa@^1Gjiykp}$RfE^{%nn^tF?krsqyS4bO5g;E&B{MS-E0N}8 zz5{QMqsmy^l?_C8{5HR=H&emTz~7}{SJXROis@~HD48!I0}&uJ_mGe&hH(aaVAJVU z+H12Rwc3nWgkND*U}baIK&0N%XK~;T480E>(^2$Z8y3p7^7&?*L@gavB@~UE z&oCawtUDZ zt3u0HW<_qTiyGuIv|B_z5CkBuYJF;Ft&f6_}Stdskmwp z2@GxOwDAiFh=P_kO;&u zr`AgQmr|dEvK|ZHcN2AOqse=oQh~WHxb1=GTd^4*5UfgAOaA~Fl8CTkK@&1T$wW;u z?wd@tCfTQu!ecE>P|DNJi`a1u5sy`?H=Fq}Y#BBBjQI61y7N4I1!v1u3tC0S*uiQT z`$(|snQfez^+RcWVc}kh$hEEpjEJz{7Q&vwEP@gE3ws}pyg}lfdbLdU3f9djxD_$~ z09F$-ZzgM!RW;SBAzCIPOv*t7Y60wA&oeEWMv0KiYcx5+V>N3zi{#v!*HWzJ?^!Tl z{{Y*VCDKmS=ZkjcbJKuW2fHn-x<4M9;@ix7%Xxm21 zTQ8f}E8?yNY|Gl47s9D6bleRyTBKSgCCrSZQ`k-xG9^W^Yw7LOv9WoZ15H%Z6AHxJ z#?v*Vh+-s}X_ihTi=Iocb2C5J&zx}CPZ{KO7v?dUDtpz>Wb5^4R~x$_k{xxmCnA-q z7?8c{>(F8Zin^da#ACoPc;hXEoCYS&cgyq_dv=M~cHDLRUN+KPzT%j3E-lCuZx$zQ2XAg zk4CAy7R_;WX|))vp1+RAR90%R$c#u^zSju4B0yRz9%q#h%*!BPJb6zm`jgXj3}s!T zF{$OTx%*$T+kQXUlCZ`Yli+<{O;n5yx`+;7nmtU$KzaK_@P0?~7DBdg-;d617>wpt z&|9OZWDstPDMWxQYcKiPRVl7eHI3f21R1g!5=t6%JqOF)THmVXJe5M8BNd6Hw66!V zWbNmlT5eCZLfYm42(>D&EOe|Oy08~80oY8giQ`PB+ojC}%dIGJy5uT@C01-Y zVnxMTS``?$V_FM3W=U(f723(>^O(Z1XCawU1Rh4k zx?y~n(5-d~S?qy`Zydm+I`w~^_b)kTs%ToDlyv=UrurDC9!9^kUk*7pHm#PKvCD-M zk{pC6;Y@5x7==LXf}Z&oF?!C8v*xp&KEq|0SuDP#iL9A>F7^gKwJwBZCgEYgESRUX zeW0~K@OK?U#l9}`CcRqf=I+y_pR*gT{bqUW0SGy6LdcN7Nj2_??d<+R`fl?PCo%9n zQ~f;ZBc`BlX0o{)b|3^rF3p$iwN$d^AnPhh7&5sdA|}aCCo??Ba^K?s);v*$cHe&s ztm)yKU}OjxWi){}r4J}n$Kqbu4$mkknGyJo^56mjbmbeFSpx>Z*KjxW2ue@ z7jD)9uezz#X6vaV1&Mo;>N}_K4W5EY^jGBUHo`ul|A~)+NM!=0D&G>=~PD z+AL)7d#tCb@`?dU6xPE1cf0;?L^q>`Hz) zRg-HUVzx4c$#EF{DpHsmtapFRMB}Q@^8C0HfpN?E4=stG_YMW%@O~_}ft!Kj42P0_vt_?tit`6|EnB#|)<5p@Erha0D@zH3-W0fJ zXy9Tcn-#eDl95@-XRl#u?COfqk8)g#L ziW`PamNtBjMHbX&hy_`th^Xric~*G((0W=C_(YG%$gPp@HA)se{9d(ds*MJqz9KrPNL zKEM_}@5lfL2CqGu^6W{#+wUBstd`qfuWwg?!=+a?gI7cmhdO$5fD{{T8ae@spG-J5sW zG(3NeD`9il?2wHoI4jp~6Bz7Odk7e}dna?HhYJJMT0I~GCM}T`NECdmY`!@0$BZ-# zXeksr8SSC%zww$T9cVCyoL>b#~xMHqNb`D{1=WY3;w0*){|oG z>y9tNT>CZ_v`Zp-#7HB75rGMa2#<;0Me!b;sbp^B+mgxWEM&hR&fm|mmoQEyfmvtq zzy!sklNBuDR!;`O3B=5NyzP4kYi|+Gg{*cN~4XJ{Q@mY?4+iWU=-yXYT~c*=U575NVI{1uO@uR}t(VTu(4^Qy~;bj=Z-S z8|uR9nC~0w#)-XSTezzE?2#zqJ+^8of>rCJd59%LS!F$@2$r&f_;RO*{0EBEGMg4# zT509*B8-JR#mtqH#|_{SlnYXmQs^!50-ofd7D4hBUDQr)I#yQ`w4)*7+uu?9uC7bS zRtB||GE{3wl+?5Nhjp<-1zubC1NDURVAAFtzipH@&m-%)uBVQ6&uY_MU_a8UOfO}G zGqf7m+4@?Ei%|`Ib{ST*b)@1x@MIK9xLZo_mEGnyy`KZD>p1p0YFx=7<7+GsOq(wY z3NZ@dZ24Hhb!f;p?zmTM8Os~TjI}rA@jhC_>YCzesbfcDqctpSF9U&=R0JG4nKB^b z-YJGQPqe5@hfK3!zq0=MjM=gqMhh2K&c=z#(!th!eP)H4V-1I1b3c-%Rb^Zj)umuU zqXG%$B7S`brC_za2V$FEM8q!}xZZS%GS=oDLM4&ZBBj!kA#w2&+R1%Ebf3thh>%1< zc>{UFD-EIeqd?b@gkV=?y_$j6%0k*LY^hkQRoN+Q{fJv>&@Aj_)sxt#UZvp=7U3rR z?7ydLTMj@Pz`W;UFxQhX;^IzgR$zCNDW1|xIg#dKM~*&Ici6yIWqi(eJveNQM4GV| z7a%tpeP&1jTokxHgFTfZz&VmBfhdBB$$5tD7dH<4L`GVeG)m*l#*+l1N+Z%I-7W4j zKTUb{rXnH$nG^5;<`?2!XC-dkJu4%Qc7GPQ#S3xyj8eaKtYRX7^z;#fuGAF3l*A1~ zDf z$X-OUS$j7uVztc>qbdx^2tizQ)`%r0gbY+iT4d3Kxi*WnwL}cWbMf<3)_hS~f~e>k zBm9eG4<>B&P1>iI_jEsJvMZ&A zsLJ_FFLeyDw=UnkQEIpNdnBf+P9*&UB*_seHA}|Zmy1_J6SaP%<4emS3&!FsGh3mQ zv6N5{EGr`+&@8fIAO;c&uP{>{v6+cEeAWChiSkZP=Id({jl8`U2yL zapXin^A-*axlk*Ws=UO+OhokZcA<{cbnKop#hKjw9fN8Tr6#mP4{F!7G1=N!>ycWrUn9gKEn?nfP0BeZJP!y%NWFeqaoO0;&MT@^aa zxq$+{ONo|G!`fyK&YKOvH=IYhN&&Lbl{z|3+W&yU?a@r}cY zV7xM(1qp9RJ)iq`^?lo$wt(2j)zJOsAa6Fi*!O7aGwaob)c$o(+pF}eLB zy0fjxU@|owl)G4aEmh5`T>Hqld%L%}lWU1Yk3VmrHN3Zx3nOcI+Wb$FtA8Y=PpXz$ zi$89o0#J&EHW-N+{Mg1v_v~-?!o!69PtLwGVdge$)%=PxTUFnwt5G;t-ap&aJt-)e zN*@Elmk#8lVh+Uf{rm{ek#c#9SdzJt@%HV0bEK?RFE>XW`<1I9Xi5q}O&_Z472(Vh zMZy_?pTvKtGyecsauqH8Mi*qUoK`u9T{T{mIBQ76380f{vRG_IhEU26Zp@^9fsYko@INJ zDBv)MVRJOHws!I>%#ZOwE9e%4E=?j^# z<-%v4IPVOY=1cGQ`%3cpe=cv?>{h*m!`0gHwG!OT+}&MDz8V}#Z>%_*(%HGx*fTza zCz(vdM>7!zHNOCO!^n9{SwAK1c`fG6TPw439*Tjg)uTNA17?*#MS|-fJxw!s+*qB4uegsdI z@i{$@S{LM%xCR>_?DKY~DYwd5u1ZRH8UDUxrQ`nqGUPwjdu|g=$7D79 zU1zCQ_WR66Me$0zpxC;D*trWNe`h)bp?pO15y)2cZBsq4_`3^hXV-S@t`WF#Wwc~- zG_V*SMUXFVU{j6G2?tEXx=dzxnUBh2;?|?F?;7^8PPdEKqF`#2GNbVK&gkPGcE9kn z>ZM|f1Y~O?;<^sG_KEByGE*+S;?Ev<;ud@IypdNugJpb`+;bOF&J5u|3slN+h=9lS zXI_jokn=pUP9{ir_|wSP{jWcf)IUyH%*{)AE6d70x-6Vu#zLly}$FX3}-JKFI ziJ6K1g0YvYYj##VbGaSYC15i6n%8jI71P!+wc>1pO@~B9_Zqnc9K%>mU*b>)GAHs& zrepP%n@e3E_0~S^TUO^4uTzWo>`=DBz4-fAu1hM4BiZidd|IwfVSo_9Dogoy!2U%} zE|x>ieph6&g&dAfscaTX#8*1B$h~Q-w|Xbq=PEsZ$B{$?NX!peIkf41U)FUTW-lq4 z9F8Xt`gQfp&UYCV@uPJr>Xfen6`+>{5Wy#(MaUCK&0{k#9&PM+O;25m7>%x;4ySmp z89XABn#t?khqTSy#lV`WQq$Pf;iSc-Rb?jXIc(2>z+nR#smsF$qK!uO{iT= z!enHU0AJXQfKCwA(CY52rPT!VAefMtpIis=!pbLzkbxPPjz1rfneuM?u4by)rQ*Dm zy{(-lH-5gTOtC>^QU@ttQ{{FTaUnDQMzSTyhxr@GmaOJ~(Ow|j^*mraqalDC zQm?e_&jxT2&!UBcgOi2;y$$EI$3M#e)L9z(caZ^kJjE<-HkG`le3_AW)%I1hQ6U7r z^8$bFEMF0j`^@q`-17`~a~WON>2{3^6K5B3LNt@HW)j?WGDOc}uEdu%?kwVY=^&^X zp1{yQ%jAN;lRRvXGb=PY-u}F&5|=GS9|bf#^M=KLgdRQuzs$(cj{{Rhiz%4yT zuO6Y|A|^km35cF&iT?nPl9qXE^y|7&q?%rL(f+th@8fTd%TX6;zIiD%cQ`2PJV5~r zfe6SLOi#^vU!Q60*>cvfw(y%K#>X*9y+<)$_FIey>`famOpstlJ*uc&)%E5kL-T-r zZD&K)tYX3}LdcZ#GG#_mGd)dmJVeNGB3wuO%+KC=4V&8&zH8U@-Deohkeptl$k2bH zoeL4r;j?Z=M4q-p91U@MAi#OzJ_I@~*&f)kyF2}&dButtwUs?-1SS6f&$OiesKlZt zf-5EWkM`mAh!~dK*`V-FliTc5WY%^Y9?8b*R4c5w?CV9()%B0G0LunB;%kIQ*f3yr z7x@MD>FjAe<2O$8ak&g09%7ceR^U$r*SdKZ0SrR~T5c(WiHhP;#1hEUujIGZp_;=| z@(JUQ>0=3pO4ER-0l@)Tx^c@0WlCC{U}16Vn2=j0N4(Z|a_dEI zRx(eWYc*o#b-1PdDe8KH=9LO+faX_f*%HUESRO@YUcfp>?ZyY40h zEL0VS)s?u%sTj(gTDrO9WTs=7^Q`$JGk~{S#aUk>Qqyzpgu12zuC)xckS>$#mD~}o zRZd_?*tUVRAV{Lif_;(eG|lz7yHtE%O7@?VypBg)(eQ1xcOw%sFwCv%l5=ee=||lEnKg% zZ2G5(FW&%UqcX5zxDN+_92*ewu`!dww67cDzCtl;mXE#ca_4U9eYoEFFAzoUJ|3Bh%m z>7aj7K?Eh<8Y=sC>_tBTj<&g+*mLaJG%pYA@n*8&O566z^83QLj>GiUGDHcgzCWm@ zp;U1lSswu1$kVx!Q}s`x+&3J3vSmvmPtSdCX!W%Xm=Hkn0|F)1)WZd3*kEJl@6l=d zjZ>)oAARy2e5+xSS_|weQB|cdMi1#_N~}xd=d>|b2%txaE+Rg8x8{77yY!kAjzc`~ zAyt1KuME9K%_9<#2Kt=0dio5HvFJ(*j@@P_ufY7u>)Te(h`)Cav}JOc2SDa4>!Dx~ zh;O5#);6(N`2a&1)Cvt zD!^PZ^XW{)6uKhB4E>cnJ-yD&gUWc@!PzW3Eyae{kMx!zE@c})`CyIQrN@{8_%UBq z3kp3&1VJ22Fr0LXjggLWd^-X%I&Q~C^=6#n1M7Nnw_YAb^qdkfwT@%N} ztlpuDuau>kLmQTUu5E3te^XdoZ90#RS@jme6-t?`h8yWnB1`!Mp}xr}H-r5)`CA>U zxhLe})9|HW@-{H=;H!>kNOXXBR){bO;wDX&+Y|o)l4d85oHfmV#g|c2O~`7w-JLgx zQ$<^rz{Kl~whZDvjjDjBX>$e4F1=|v;$}uazkqdl3kgjcv9ea9G@zl_9U#5!1hP2^ zW=p6kK|Q|kucwI~e>tClEbiVc{qdOHO6EUZVE-K^e>o@ueziYCpam(dXQn4kAd zw=yLkgqJ@XH4g*n_}tCS7h~5jSt7+MayWclJSysAEMrZPF04T?PH|UxK*zO&FbzcX zj!Gq?FTCk`<0@Ogg?gB*MK&$LMaaj~#MlFY^*YlDbt}L`{fDufa8c_hn2&)vS~hEj zw|OfCx$bo8a>0JPg2)`MV2q>Mr=d$2>OEp{$`X>}`iY77-;MH?8we3sL-CXB(RDd9 z$K$Nf8!aB=62_@+d&YQ~6Pqx;q%7=1GxuMQCS-h)*S`;zc228eN*#cukc!P1nGu+> zlzmmMW(FtFx=Ww84WG39(mpK4XV#ppFB$AJm75;MS(ebiRqQd}hEeYMwmkk&S5;)W z=6mz^_#J0>^N!n4?)d)z0juK*?3dM89GT=LC&%Iucn~zipkRAKV&RW6KaU;0XubM= z*s_mA?mk1L!N~xtBAk8@iIxsOKCZoT!>u>+7!eteSj0^FqmO}eK6%@+p(wP%%FmJ2hVc6(q$L}iAt7PXbdaTEBG zS7=NQCJ1?$hiz-Zp!`TztK*GgiUE`EW^Xr;*a@uX?8YbYSxoZ<6YMGD{%4+LbAHya zc+B8W`iA~m&LLg0SPeHCj9W&yef^92cqde9WW9jqSX4|)7AGFakqtC;9UI5Q?YG6= zG`%^o5@pMe){Ql?0vt>x<;(Dhk%^KOyb1^+Vmg>au77U+q$m`68gwyM()560?PhFb z?g&KiD_vYgdmiv2n1CQ;_K1#Wu#iH{Y8hYsOBkoRHYBj~lh%YP{igJylDADy;6Tb7mq7iT>tk&d>OxLwpCD zuj1%ru2*VTlgu@jTb%A44K<0~>><5MV5+Ejo)xy$JQ|0k8n7lf{sW=V7VW#cfx*?G)J*n-HRUDx2Ytm5_P|BBm%q~ z!v<|sg*292b3Fw=X_@2uheusziyA5oOOF@=J97`)*csWvD(wkNi%M5fZ zn;{_QOdPIy%tS}Z_Fu#~O^V9h3z${-L~?O4U5m zHS!#C!B>E(TEY#LHcYDA6GIsE#Ck zpWnb+$9V(Co<7Le+;#19BdcrqBz+FWUHaw90}>3Cg~N2F0uH%<6T6&DD5gq(f<8MZ z%X*g4l6^f6&-%*Os5z~!TdieP3L}{Mn|{bb=ZOjb04XVn{{RX5OsZtOeX!18_G|fg z+8KBmIgMlk(T>W5bskqr2t=%`KHu(5zR?(26mSL!Hup~h>p_mx_xsp8l_dUc< zoQ6jyK#Eor7fDDvQ)LAnqgcSQ1J*^v$#4$aYPWoz(W~aN_J7mpEQ_$O#^A)Ef}2s? zMYq`yQd4HSAZ03C$G3<-yid(LCV#}fF{F(Wa0imjZ53B&HSBdlzn;uU%+Iuf3SLkp z%>7H)wSe9uhuyGUq-JH)PWd{&q8@8Mmvq8hs-WgjBOCkG4El=6+F5`V|C6gsM z>aY|RLZz9+m$>+jB!2u$R`1ei-0o+y7g(_uA5_R?mvL5v2j2z33LsY5 zWO6;?B;cZEIGJzARQ*J3*6UxxD>13!@#ZA5(OBpyA`@}_lM0o-G*8NtNa~-Z_e^905 zyuz4bSlm{zVW?{cNPSf*$rA#=lNhJjf zAX2Oo7bGlU%=7ReIzQ>bw>6ADbIdyC{{UkM%xzq#SE;dAsYR}ep(~alHq;3?55RkO zdBBNDE_ol8jDE?2)^OEd;|A_$k4>{(HRSZSPAwxd%(SnqNRP|dLoJ3nOYg^Tzs>$8 zezmc9&ri%Bk2X!4Esn-luaLd4zAM$IU{))4u5S{B2JV z^&M+9wan4d$q5|)07@*1nKRaXaxkTXAmSuuCL`h&A7s@wOp0?`o)a&MD#CcRA!%k; zJDAAHj9R`AsM{AR10Yq>5D;QA*oFib&p90KTg&5!pyusaoUU~mt5+#h9m0i zqa8_KPgoe$+aEd_L=$lmGKshs${V>b^ibx=VGwJ6P%oO2|Dr7#eGCAR-(b# z8;00?dIoGbh8E{GM~eRdU;~Qt1-!UIiYBA?MkubJ6 zLEe@R~)nU*F= z13zw`*TZeXQt|GwR}eZCO&1ykDEcd2Mk+NH&@m|KOd;#ydXz*&7ZDtN;(7TcUV&>M ztp53=Y;VSjGWjcl`Z&9e#?~}Amkfu*&VcpDyT#=$5E9Tmm}Abp1%T?ud?d7bX)P(7M3ltre6O5O=9Sw zKe5y1Yd0n-f`xwK$m}bxF)K6g#C8Um#w_Ij09D7B$7C`-OA)mqH}IH!lUGfQ&3=#~ zckI@x5VovBNWP&2<3RBQzjHbZhBsI9PA?n&pz>FjtLL!!du+PQj=$tk)>D#$g@nX} zQ0>p-&=fZ#qyYp#@x%wv;fvMw9USpm@6i?#_A2c`xhgR9`#Z}X<7Wr%hD4dn{(jgw zKBfIG>t1;AMn4^nEccQ1gV+?wPEMU`197onKZ)@Ih&T=i8zVnxDC;FNAAgaJvm2|f z{e7;t=^u65P}a;?ub;-2dZs{xJI$oA_AJtotG$S-`-UbJ0A(;jMdU%xiW0 zqf=WJm1~oLz-q3+JvL;1p3PZN)r*k9Fs^b7`gs2Ub0zqUPrxszdGkxf>)NJ0RTN)Y zimi)=*_GET29=6N5Tu2RCoph5WKs5xWADUI#B9!YddqG}@|Llw<+W>h9EjDN<~I^m z#n{FN)1Zl$OeWIG!o~9^PCxJe0Gvq23|hyMa9G_IHLn@3150DN+=dM=`oO!Fa?1O{ zT4_svj8u_f_P1;Ym3@MK-1^F4M>C||##&}mHIBvO3{bo+V9G2ZDxXv_feOT+)=;V7 zzOA2Vm_C0000CPWzIhJz#gp5-g_H6g;a46?!&OeXo2!9D!opbau!=@zQ7<_N71=T< z;ypYJ$Iryh^qtxJZ;3p8;_VrmC1|&hwViQXQ&nB2hqA+%g_;Z`luUDmCP?5qSd$To z2A!2=jjn2Rr!lVJ_Y9spmDfVgEwBy3VNKREy2>deY|EgMisut0>t8eXk2_|Yios^J zJ<}hcWpW$k>!(u2-?-(69d^*QCMvlgFylpJwiN=lscVQaQ~{au@FKfjnWCl>du6qf z@)p?4ts5&_by}1vK}%S*LYT=qzfa2+uzFJUoRZ`2Y#{kV!}uEqq%x+X=6@$y!sPp_ z(7j@+@j;qkEFjd9QU<^fmvf5MlpfAyiz1Ua4m<2*GC6H>w!^sJ@`JKFE;B82E2vOi z3zfc|t6T!iWWqW)tAfEd0wCG>B#KDo?w0VpWh+`^warrzViF91P@rAvocw1}9-mq3HzH{3yTC;L0O>wjx8rubt zh6JI^L_jV(9FP8G#!ZLD+OEEsy`uS9*}T=os`ejR*H%xq*80TjLLb)E<%q!-C1wI5 z8pxAe49~}%he_Oivma;6yN-Bp%g)eprFjrn*9+_l4HunIRHWM!u>R{A7Jfo5g5*9| zDrlOIhU-|tU~u&@nr33qOGQZlPA@4vV2PtV525_=>}>uHjwWUw9Yg26KLMNHFV{}B zlh`yIvaA~M>da-wh0rr)DOG3C4Ta;S$Q zzDHlg)W=i0rcWdL%e#F|WkClL*FGV!BuOD>1Mv29$QoW=_1YTN8QFb5X=1CMLWU|V z*0G&Xan~E~flC3haLRerngua`~-1{UjN&ri8*GM25ovo0UD2TGTe+wG{CiLNMizjGNqIw-zz)uybhy zuW2^bp<}`!a03JDKa3h)W6PF2ZKSKlzA(h?xE)6ejkA@vUakCFZ`AKBT_@Fan=HB< zA5uo2VM{B>an`{^md+23wJo0}2*ki;a0{x8W~H0F%UQgJYRC%+@YfbbYh*{$zzRxH z66XDp!B5Vf5ZyK{UW0Ue{(ljJ#AmY^1mtrWT7)-4I?HYrqSX*SwGHqED{C9*B3#4> zlLRCf_A0x_lQev;<#%e-v)H;WR#LL?x#voI-1+0HDfD88VC?tCP*vN=qAOU4h3h z9HIPV5??`mZg@mTSr!2S{pMH9$ovKSo#aiOd&j;J-*lRZBgWjhs0C}(1>ErEjxmNQ zCvzhQFs@Y`_L*neDa+1c_SM*{jN&HPCr|rb;>{HTVobi5R z$A9X&dIyp7_>NsyWy03V%QEyF@o%cat0u`y(`)Kj9a#>aXj|yPAm@QTHmjJjt$?zg z55hNTt7Sv52AtWh`tU?vk8Uls-lo?e_H;1^EXp2T`%KTku`9%y=DNAF<12X_Qt^z1 zT0BLSyXxHOk~TWA!PYa9p6AtJ_9%#$h~wcW7W%Sx{{ULQ>a2D}68OD^U(wi=PZB_M z>=&&0F^Py>kL-AX82e1sIsG#igTI#9G;JF*h^WT_-m{3IO7ed3924lnl?Tr=Ak@|S zM05Sjd_dT|#rk`xuH3_G_$4PNk#dt2>Q-vbu^7ag5X#dCo0&{c<}dcTC-FM!{J* zD_FXthR4{&Q|OBqp0RKHijgG6EmW4Vm!=FBwj9WWPhW%ao-f4I(6YN8#o_CU#zixA z%NKTkpvU7WDIKB|BWa}yt{nk$3jYA+`$WW?@E=I@qfDH zvu9Ck7$pN3*CfTH0D&&1T#AGuCyDqLogR%E^i`3JqHo{WYgv8!mChQRn~0`4tLd2& zQp6wxVqySBBZ!`PN6qW(@;mhR-UT~bv7Upymar0YntCy|NR*;q5%hpz(qxKZ@-i_U zAjyc=G+oPLvz4>|08~7Oio)fPZ{wuUw1uBRE1U>Yl!N=b(s@6m?cAII~;1k z>ss3jO-9?d+O~#d@@gEeLd_iBD2^!*0wkWEmCu%dLToKkFkB3m9LQKUEtg%@cPt)n zA++miRHn`f)dISos8XLRDyJw3lP!M8LW8T##+VPPC1e&ER`r%s@3u@SzfBL zf+8Xwcn}`3_n(39bN12JTSLm2ZLe>|k%*0KEm5a~Fkj~| zGxBTVZyo7--I06HpB75 zW-MEFxnS*5WeQyxB{V08gd2X8e;90X)BDWF9}Vpr7N?)YQpO(3hIS_AQlfG+?lL6) zlD9V+vsuTmWd45o!*9;3Z1aLV*|J*2QJax`@b)65Pj#q)RZAFE{{XeBN<+HA zv}C)<6n&?FVY!~q;CERM8sc-AdkU&d1-V6YB!fvpZ6y_Bsj+RS%H3ym&%(6Fk)GBwpFXoguUa@Ofd{wp9btZ3-)-tV%`{)XhsCd)xv z5j9t0-a$nNFxyTFh$O>c$iYHMnDj^&9I|+I*!b6aWjb6lLQ^$ zinELc;q)Vcm90ON{{W2eJk1Bn)ix}nG8epv7Sod<{o!T24Ln!Ziu#L}G%9~M62y>j zY?2xDOM!fIE|2m~4@A}#o7Hpv8>Z`R3K&d2F_KQmS$xN#ZZSIWArRZn83VIbhjh+tsE`6X`H+7DC_-K2kKF9aJiI z@VWm0FzGq>WbzhrnHPTDLeW{WNB3}xtuxlS5r9`fiBi_F82oGtL_p z>wb<+FTaW__1$UIP5!8&EU8rO1e+#haAhL`Esi>z@(unv)pI*CuI^Z!=B_7WzKE@2 zFj#eRHAV=jncT599&un;Helq+WKB?C_Q+xGbsKnmPu6B{Zh6OE5um!|u-UKmr|p4N zY5I6jOc_sEA?z@+BA#F;%%)A3I9`kw9+0vv`N5 zjKg5V*$!W@Y8=n8azaG|9COw26zN>w_N-A~p@vgxYlVXb9w#+wBht7{>m^~p$25^u zaVD9L)(lAChJo>?cHHT>xx_)GDYzKqGOA-Xd#*D%g!QXKK}roKhu00 z;7ulyt!sG8Tb{jEEaoyeoE&6wmh705EijrPB(P%`ez;=;@rCik&>n$>f@c7q8?g z;j>w$6Pb^IobF}>RqI;OR=GmOYFLOt8L@uSd7MO?$G}JW>X}~{-o)p%Hez*Z)$(;R zeCoGy1Xa;-+zhtR)vl&M6bKN@CJV0|PZ1OCL&$VAZO3H6`DazycM;e=h4k{-T-89V zN&00W741Mb>Fv6#s#h*boh&l!KqPb7zaM2Amid;(o3q(E+RnnRF&L|Yl-*v^cvur=QBKrNOC;Pkj%%# z?Ta6d@Xgn3HMi}1BjhY(wTrYgE#~w2N%fq%fmwB?5+LAvz>1c&%Av45MC0cux0^gj zGTsX}up8Bd@gTq$L~iLLxZ(Ty>#1Qe z_#^;Gn5EA=_V^P!T4n9MknK;znii*roXYWb@;NMdUd?5%w7Wcj2o^>)>%+^N4C(AC znCwfA95enez+K(&g_X%=vzb?$av2}qo(Zj3DT@77)l#elU{P3V1Mysu0Gt_5-e86+ z$=)`NixrH~Y-ILKHVYqa$NvBUz+cD(TQ(pnCO)Up5dQF2WQdFW=bnGQ0_SE;@ws5|w!AxjF1vR<&Rw6v-bV87+it$idA7F zxraevpT z5OPu4c?>>#%{AM}%PrZ8Ukl9bB$j)%dIT;FCA|ukjPufNG!jACGUYI zOu@kYqwUz{dJORg@&1Q{(KafZ?q65NJX~e`p#6a>N@gF^E zxkYPGjT2se=T}s*T48mlVlM@Zoy4!b#LRjEE2hU*ygKmK5I>nvv-6=^#MImA>DO+$ zKW)oiRm%8!7i24iIy_i5yoBT3W7wob^8yJbNCXi?u!(sd#43%9GctCsXRX;2#RNPB z-r<;XuEET3wN_xMhT@5c36Yp0I1&V`hC59g>C0+98QwA3%!}1VfMBar!dN&JL47zc z>edC;0%VAmKq1VR5fL()3G!&?t>rhIMx%PJa;=N+UeA>!D;RX4a_^@)RlR-LR7blB zFxE{|;zOtmRJDADLDn6zi&Wj2wYbZ>@Pwk}V<9>f#AbRT9l*py$uLeBa&kj3o8}CJ z`4z13wydieOpYLjHI>HHM|%-z1a2C(Cy0vPz+@W)7me!bShY_N+9iI7MPdc zOII;rRzN~dY%ISbIETv?a~}X6KLNjIChmJ9<&B=BFjmVAg}_aPGUKnx$Lf~LSm>%L z2@!!OEDU8ydBY35NqJX=<5I5M4VX`84E%^kTc4s z_safcz(ss^v2k>&h(JlJ5W`=0qUbLE7l`|O;c{sBKG8bY5paG5-{f2mu>&G(@A=|hP*;KrDu9?%*^M<3TiKRwv z*uzr#V9hQw8VW$Q+8}!AL;KSVfcW5TG zdv{~f{-CbXz_2SYkB->QdXD6X+xI=G+a6gcip<3%T}K^_uyG81c%wh=eO$`qio*-t z_nxpF0w?+J9Blc-=5{^G-h-=|*<80djMk-@TEKviPdAzEa>fJ7M5Y_OpHgk>K+ z;y+HAeY&NJoBsfiyo}uWP-s@Cb7X=Wv`K>#Ew9#8Nf`l;+ga>|7e2z6IQSGjkI7y? z#hUR}x2zwJ^rV9yIVrx1O|b(5>|QRg$dEylK>bgyXPKBx6qGV2nBC7r%4@&sjBkv0 ztE z%MPJcbn>|XDH!)Qvl7Kcd5NAICbO`T>e7{n$qe>?$r&Bumyb^oj=zw_L~ObHm2Wbm zDHO22mM7|vVm2r9a>7nxC23^w1000kU%~HtZeGWWcTF!+#AT`sPD?3eg>KeqzR4BS zO_hv~C$S{q~=qn4c(P zty-^<%I(>Wdrp&u)5+zrtVUz$jgtUGmoL;y{zLx&baKax#CsL?_dqReo-?PaeLWoZ zUWRWlwvu(VVVc|yUG1|H9*U`^1yzE>gHuK8isUk0!hrmR1I4?Y?-Ap1I+pLGma&xC zYA*FF*j1{;+hhV&D?FNtY}KZ|U}Xs(a;NbZv)Tm~?ONWIPQ$#9tPo`_x_Qj6zUQcM$JS^PNBD1m%-FEC|XW5Pm!%9SJroycCk(S)B zxDXgA^wB@^n3*R1&hC$_Q7ikVtFL9z^zXfZ%H(kMM6xP@BWqm$09-`1F(WKweb~5y zi1x{@K6lgn<4;@Ka(VaSzt(j(41HR-*1}tDR8+$M0Bb>A$cpg=aYRj3A7Oh~BEuOO zj(2c*pC#|Nr2X?EKmhn;ruHmO4kt_#53ekjI6R^*q)oc}o@wN~8dW7*G-L&Z*)Y*4>w|JKvVA?iuZR zCC<5&5WR&@P!)+|shpx2bPfbxWaFCVaS%PtWHkKKcEMe>QNrQY+(@fg!+zVFw@IqK zcc9%RrpS<-sU#6U&mBomnVFI)_!3VAct?4qujMTlm}=wk!(I7x(92ArOI(Ker5<#xjlkMk7(RgxNLbMoJY@?aVaYT?$Bvu+WpFPVSOQ*IlC}0&v-x zh~ta2yt(57?)um4SA1ce{{T#l zU)wdjZTdCw)$3v6LOsnZG7b0GU;&XWJi^qK!A#2tly=_>Z`kd>RNS?UJsfStWA8ky z>$73|3h4pUYZnY$R}74S9JEr=CQmI6#!@rzDz^NR#a|1H)3ypHb;$HCm(p1o84{V5 z%53v76T#0>k)P~m@A756c~eNS*RHSd*9PSxS~G zpK+7gAtM~J5btlpMwMI+8}$KiBd>dzQx$6UuyqGyo7_b;kz5gHf;NoEyOFC9K>=W5 z2wk!wSAmUnX@hx~+mK*P!Jx&6;p%WlS8FfyLVHE!Ub;61-Kz~;4B;{PGy~lW_^S|oJ0O6OT&4D<2khLHn$8C?N}@msxq=s zX6oz|vhVvY8j#_I>w|2;%#$a#Dvy9knznN+ajMuwcOVBxIsJ*wW{;#460LJ98jW zGtZTNobb9DRC*_lwQT(iYf*N_GX4<^dd_;QxH#9`h@eVhR$)Jc%%!FGlgP{X!#9$D z($cqv$Wpovitfl;Q8TEF8bs4z1j+a~Xjxs}0$OKIV;iL0Hf z9s7>Ag7P5fcvGA|4|VKh6vm%^xwT;aA#*OL*9v9->fGJiWUCF#`o4OSDcCh>qW5 z{)%V&>l5-5^5!Kwl(NiFIZS?nMz#dx9S+WtqwYp<&X;)l4sZJ z>{^}Z@%0pAa~SP0vysZCqmzukcP49-L*2~%Es{!wZYk!p36*$(h*WVL!?Vr499}P8 zv5%vU%{8M-6JE_4&Y`)u+Y4BYkZP4;(Q+Qhd{?>9OvQ~3!v{6I*4dutPstvy8GLzI zxq7AQx2rp3Z)OukLQF1E2OP8UDof$(v@Yhr*i>Sp&a~#Z`4VtB^Ll z*K9J3tjXqUB`9&CVo7Ge7EJz2h_PpNOkQUlI;{#U#X0L$Dx_@h^sP+9C4&>sf2J=f~udZmCURyV3+ET^ma{-Y}3dA4$w3{TGDO@rmpj#jo4|44R9LOE==1qI1 zje^oq7_{fX&a-VfEWA@juk@~wxnQhJ!xEO1l~6c1mPMhE`wWmFWqhG`LV(L@R<7nT zdrm&J4329jh~nft%%X%YoD%0CVaH>&D& ze2!+eKPO~Q?=)@uhGLC&v_&L*_rgsM8uWNGhJ|9%i<9gP$e;TP?UAYxAv9Y)A2#kqG-=x=-!kD;$ zi0dB}c51jSZ!ei$4CX7yI`$T=)-xa$>*Q|Mf1$FUU1l_b1!T{ta_UD(l0gc>dn|zF z2lv+a{{S12PQ7!;*EUlIU;0&jGajpLmrgRn52ihyp+Dkc+y<8RI0A!bG>;zn2S2l9 z%L!v+z~XMHHY6?Okj#!j$Lt?fsukiOwT+=JWu%i8M;>0ve^mG;c!`S&KP~zwO1c!H9*{SgxNR z;9qqRM1Nhr^YdVk;W6}{n+clgP>U<}C6KH`w8DW?1NZ1dJj73Fjv`0zGJSh;@<`Qf z9Dc8m+9sAgw^kWT^znBtr|e6xfn2mqKEd5mw91HvJ%l6@Ox5;Xk7Ky(VPo*PJ2ato z?qXSpy>B5{l>;Pf3nqv#A?Y1~OkWfI&mRD%kZmg&TBiR1i>?)KYwji*!`5snT)usiV_YcW({=`w-oy0i3l>2lZcLIi23r) zrI_&eLd!E{c`Ml)+*z%68vK)S8s%tPtGLaQ#lu*LmAJ^@huBLVlPr=4R$;WAI=N(Q z?fTv)CuR!Wid9ImsK&0z$sKr_k~TtMJqT+Q(dUm?2S|x66T9vj)mWj1)qI7A+vJY! z2CB_=@%0q~P|Nn$kQ25NgptHV0YZoD1tsm7)Lu+GM}KlwuDX~SGEbpdjakb|M0(hD z8YDobNwx$MY=~De$dUcPUb(J$J8ynVX5BQZw?z?IS(DnX7C#%0su2fY87Nt$Lk0LT z&_F~X&`a*pm=3-;-g9(yxy|d_7L}aF;A%Pbs@AWN%iKfUa|MyKROAvCEI|6y4In5J znCl+H8K76we^8Td=Ebol?k6xSSv7jiymhNo07#A&DVPZkVtHZ18zz0e+yKNWX9GLr z(neD!wrZ)Tjj+o2h}W>lrxlkG%-f8e)*=7|O`f4q9KcC31A`vCs%dvKczFB3bqpgKl}}QFNw%uV zWfKzx!r=Qz{{X~C-8WLiex0?(s?&TabD%Vy_fMU8&lq+|X03doQV5Bu`zV&Y|U0~75IjQd2hfaQ|N`JZ`m zBUjP3>^1yhSQ>`Pm1w{*!vn+LeCEl6Lx?4fFrV-tp5im|IhEITt*>XPKy5}0a~Pn8f?5`i`Z{f;I8j)&rFHT7W1>7HBJ^{h3}CAhE{%G6c_E*{fi zQw?c6Ka<$uaI!?^d(7}(Cw@V}_-8JSslG+1-L};PP6HE|xs<=QBkJP7Ezju298x(q zKo7J8KilvoQ#}06>=%%OK+1Yxt~&3ie9fidGRpi3n7}EiHJzVK7R115+gf*nxu_`yz2y)Hh8- zV8-X;$-9lLu73Tz5ZA$3gZhQNa>m($y*4@~avt zxhx_Z4a@KwIaq!~)%;cJ1|3E`N!n_PSjB^)Q4Qr8!?p>5ipJz| z)+`9P?B%J#Fe=Rpx8?<4>!Del1q1G1D^S#0?6u@!rIf4WET7#6a?mAyn#iUk6|1d{ zajkxs9th?j_iNrZ$z?VWcJs6C*$tl)F>6q-VWm-6`mSk{avr6`bc*aFNUVBKKTRDL zN5a8&{{WPH%jH&%2QT5=u4huCW8IdjR4ifFvL9h34WhBf6+w+#9Z^8O(#65>6ASp~ zk^MkYik5MkcZ__cvu0IUp+^^n!&GLzK%pWCWaHl1Wn~P- zJLdHy*d-rzB@HP2prvv5`RS_iM$?IAFUWf5)ML(4VS~!uD5e5I5G-|MgY4b=K*v^+ z*D_HMnEwEbSwGXBiM3fQhId)lC|dwKk9MoA1{JCp>(5KUEU>@MVtUN3W0;wUh~wa6 zUxV}YbARbyBYA5lvp*i$wSrr5KS7QNVM$m(R~8CG)Yh(hoEeJTxPpj@h*MTO$8QaS6z?SgBlzxkXH^c_U>SvC$&WU2*QnlQ|0?Xi~~?c{9V_GTEZmC&#;X z^RVWy>ur`UzFO|ZSzyBB_TV>3ttRLxhDo>~OP;r zu4I(VeZ-+~P!SUm_lOmr()A2u>rvY>`d%IGwlZ~b+ULE2z_WpnE7O!tobLW7wZ z#V>fGNx>c6ZY{aUX!NS7>XILh6uD%q={=I`RQn+qe$5hp_S;bMSip^|!Puq3s z@Sjnt=`A5P94sK2Wx*lp3*tkO`@~Fa@vh+Y=r!oo&~o_`G&arLjvptA$`#Ck&vv}U zR$#dzh!}|;M15jEVU8yW^EHv(e1nYDb=!!_&R%IdH<88I{ksWRfp(h95V0{kUh4!f znVupM26NZ#A=h}FW5b?X%+4EIrLkJfP^Fr$O_Epb)UhOB`|Yys#I#4D1pXu-Vr7HG zdq`O8_`fgYy9MPf?=e>9MG-8(w4zTAXE6f|IR2)wi2Bp`{h^;y9JAEPK&Rv{2jaJk zJ_}RwEN5pWS0_to%Z0^RyPmL1U4W|`cacwevkV#P0}S-@GEI?a*f-6aQPiJ`p^2-D z)*B~^$6e25P?cdV+mT2Kjd*F20!~<&F0ws+b3I{v0IQkJoBoen%F?@T#eMpoUm;fO zOX@QE+Jmh^H@CFQ0Z9tA;hez>SU%3eB+s5)Hax4pt4q?_n!Yr}S9Tz5(J1;nn-+gf zW6=RTryL-du51paWwTR?8B1$B^U@_`k zKnzC#@_P2{`%$^*K0arTV;G-Z+c$C*t2*s!%7GSHSwm3`1Vjup>%MsV5q+S6%R<}y zbGFyXQ`T_qyN|a6{{Vl%YFZ{o z4UC~y)*(4;>++ThAY{6Q3MI7_gd!o<1O_5(eZg(!KGQz|KgHM#{2ciM$N@0>cB@6a zvT%&ZER{fJ&vVIHe11Y$9=nlZF&Mkaf-hoTHAq}Q zEQy#eaTs?Z544aRj>VrCW;MOzH{;4Pjo7joiuD^)T*sZ#G{vOU39|U&t(7sMWuoIa zBQ{LK0Q*3Ns`czXFIPMlkM&KRs7;Y1x}^l+X@j8Sss8}E5F&`?BdXTl@|pYd@Knz8 zn*csEMp@5^VNBYry#e<@zh#gX3ZDuuSn;Bb|bNo|N(63K6w zu+sr3WOf!uKYlrg&~fe5p82`N9Pl_QB?bA#*5 zO!3d(te$qqg{4aEJrBsa=%E)P$J1kIPIDfBh6Jt*$$Tm!i07Lj_=(JvL~-$>VAVWd zLdLI{%u>eL@01LcoThT=TqLa(t+r&WS~KbSMR?*m^Y)MZe4OoGZBFH7TE~gCtcKl> z$-AXorKCnb1CzF>{{RMCd~}*fl8)a_ro-GyRKyQHz{*yHd?X3Mw&;I}nz~Nxp{sdRT z=BqDS{JIB8;UZ-*!9>W%!zt4C0KtQ|z4owKCzCKVPR^aY9X*35 zmB-#rJ#M6%#%BuR3>eXwT9!u=Opn4lLdjQQ4lHKXJ4_9}Za%DH`iNY^JM!J`$# z%bMt~XWWslG86sBGGQep?BYZM;yi7Iz-1i$hY-|UWm?L`{@a|pUbZO7a|2SSgQM*| zVhUyi-PiJg9u_Um)`tV7p1|)Q?^P_)?xj^;U@|i2!wM7%7pa15DH#z6o&ZYQV@Z+%vUYtCX0ym=U{Xw9EvN7zj2IJ0=k_$tMz%{{X%%P!iwuZio>w^>fxiK{5Hu0V`vaTLA1zE8J>&d|u_bqiH;c*}{% z`|y?((Iru$a%>w+0Q-ACu$YMF{G;O54?T~)vtTh(ldp{0FXpan84BfSs@bUUpye*0 zq5V!lV(>&11i?y*Vm~jlzDEy}+xDAS9APDT_C4Us@Y6qDMCdGlB%~5U#PjpkyOTzhs%yKh z<*-IG3z);N7m~kms**yIxC(DEWJh8HU6t|^%>6?D0Isp~nC(<9c*kMRqV`uMmd#>r zTe>)$Rf|ig6Iaz)Ct@NitX7o(7xHu8xqr;^6R$01==mh^XSpuM!&eH+b?W9(BskoZ z1gtI7#8*$MW?~{Fj?u~`=vs=&gfLEtrs*37$%D;pdn7Y)(X+1wxGH2*8H@BN6vb;c zY%Wx*D~1zTwbYu>AA|%tCL`y(&yv@w>lx4bZ=^uq^rss8`FZv-!^q(^&5;Gt6A){N zRfnVkKEjw06b)O<2^i7QBgo z3{JO?VLua>#$+M8Uam5^^&UahmLfnM`Y>xq5rN3K;y)<{6T~zeCi)=gUpo%6GxQ>t;#2AW3>BnI*TIPeaP<+xR>w4SXSK5&hB(;~GOms+? z*d*CpItE06lM^QmzqU^2yy5guF>E=TNR%%jW}IaK7`(lbgZfpg>5_@|at?IYXAKWX zb@q?)d=A(z9Oe9ZPal}xY2-IM3TtiO$>apD*u~#2g<*h`;Y_a+GcsbosS#X#+%PgC zvEE42rlY)bJM|%T*3Kf8%6AuN(}4*3khTPZGoSX&1TF{d?&~EH)8Xvbi1o}?)eYA$ zl=Ar3Ru;Oh&i7vFFwUbD?!H{w{D<`fEglDt;~3}Sp0kjm?NqA-c)coqE+@ zpoi70xqU|@lM^E^T;DQ!39-XcEm?K#0c#EW4{S!RrKoK-(=aO+s|?yzYN7yUCRuW8 zhXD$XAZA7&f4}(oE*smv#kk?~*uNf)RON0XE&l+;a-asRMHwHYhAyhzFvi-rs|CSK z%m5GGRx|POn+`W}vHpPii!})A3--#F&IQ#dD5Y|vk)FTq&S65uOsteP2ugbK@V+il zdu-YB7yVW1)%rXPK6rprD#2T_eEpz8U2q4I;v?z#FSL9QS*&l7b{t{T{{UFvDV2gB zN^yGQUO-V1)_Yj7G4|;{{M1ax_x7GXNU+{H!ufA&+ly|^?K>8qUtpTIDY?N-cRh70 zmqh&%)yzXdmKb0_QYxks+mnfO+%xbt?4wB4v!9x$5xq9^L&B^C_H#Q4sO@g)-ZWl{3bUQKxy=)eC2sRXT`B%ev zLYC8pt&H(DxsiBPv;43LoHc5bJiwsgp$?7&moOt-qGBRqN+X|<>)TBX50~G$X&yVs z=Wk*wuUN?0&tzqG*864-3w9joV=AqEt0$`kQzK>FWAK>xPs+MZ*}Lj)&F@=*Rn7%< z;wU3c?~F>>XyIwD`;3FRbYfZzkl`twyvpZ@U*ur95HRDfQ)V>jcUSWjJI#C zi*P~Lk|Jo&12D1sd?AP(2gBJq7(A9I8)lv+yfT(U3rwu#5T(Zo_S1=Fg{&4VXSpRQ z=3tCf9|I5S05yu4+)f87v}1U7YXe^nb@F)&RSHY3L4RVVl2wR>#01)83z9G+G4M9i z)*^%RIR@_!@%3VV?0AJ?^4Sa4i8RJxfmR-Vr%%+n$imlAkrKXs+G{tM0-TDm241=B{l>GhFSGZBCI1OJ26>_Vu0hqU4 zzgL%g%aXAcu0OQa5@8!XM-?U{r?1+6`u2|z?4Rge%VgWPYjmws!CF2rwk9n)PO(D4 z`36Z@WJyo`u{jQTj^6@nW5_w52;eYQCoh5Ca`<``n@YCjLd6}GNQ&zaPCl(tYr1!W zj%KAreaEw=e<{~*Bj+6ciE~ZO(@sAq+NDAG%!XjGx2}z*fU)bwKtb8|zQZPE_svt> zq=WAvHmue&#oj8&;Jja@YxQg0yOK@I*z6?_sL5QfN+IIcfbx7c*V8UrVBmO}p3w#K z7m%^r4(*JiuWdDHVKG*7c)Ep8xZlZ-`?4rFbaI-9)ka;B4KVB2SsZX6t!r8FMwn=y zBkCJ=Uehhl?R2whr*@zeutbig8y46=PcuA{>M^`=By-Qj?<(UwYvdgEu-(Hzucpu< zei@k@?zr0dg?r#g9aa{RU32!J09Z~rk9)^_E#c0WFVTK@U$6 z_v45CIcRqF`@TTY@bq#fi-$`UTPjk8Tr@I9&7?(90mrnOG7B^-)=^k{E_?S7TE+Qy zTk(Ep6Jt!#c8xDq$(*8V?O6GttX9bcLj8-()Eg^YT3=}8KE*MLl8_m6uwF5^#d(aK zy!hwIIQx52m@}8x_3NvxQ0tfEV8)^5*TZBYA<*zkxsG5N`GbBp4~5#R<#9o_Z`#Xb zVYljE*-R}`Uof;-QCpV@@gW8eQA*^*cs^sSOg0=JjW$uYXLa&stvk*&?8o1|TN^#rjS_t(e>!z;SCf5x-=OnVW`GGnCs6jDYK zGuR8~9KJ8gy2a4k^=~Cz%H%QhUMc~xFerIpWYS{8R6S!~`$s9o4n>N?gs zPm0W2i3xgcfQ?}iMA&TmW+Wj65M#Q>o$#JZ(N5m=ylPpGr=k@vVqdG|BLPNKe@?TO z!=^5rvI<1_F%yxG_T(`?1L!3tmfvBR+xYrkRRuB_%3>i~SEd0I6YO(Ek!05+F+GaO zeZRp|6TmBeG4a2UYdh<_eW~rx(VG(5c&fO)Zi@$=@^<}l+a|tdV8GiEJkLbTe3xQ2 zou_8UgDLG9jq_N=E(X3!F=HEm#MF?Jld}2>RjanEt^zn~2k{vD&-uC!9wfKaO0pZa zN69ykL1>>@S8U=bk4}Lp2sufwr1pZE{W+d~pk_V>`u;D|s}N#xemuhL_}dGNZZ9=X ztn0e53nE~VU=spXUCcxSL)eE*@e+o9GlKp{!0xGc8vWMJ%Vj>b6>L`Tdmpc2fg#6L z*RN^P$rA~g5erlH;$S0)jTo;AQQa8ZtOuu5(aiSa#McTgW_`iUDvz9JdYC)yyr zb79uE+!d@QrMrHne5B{JmfU`!UcxX+Xa^Bdwz8?=t0%oGa+P~)-!Tuh9Mm&|>@A|v8X!Q?Hg$V7~Hjx=K1@>=rQ>cvp& zj=|7Z5H>14E3m!LVm*2?$VYHj2>W%AL?04)w`9AHsjztpzV^&>mj|fOxyBzJV=}W_ zYtpC`mpqhDLMT3Y{23F+!fng>6HwYC#~S9*<72*oXSYl7CK6`#7MCzzS7m;=SNTay zcS#rZF){LyhSZsyt&6GWk1e^_{H-vzh0*j%Ws9t9XAvrd*N>_=n30L^A`vAqCH?U9 zt#YrAaJBWFV^-IEQLHbLsg9*h4#`_#M8H6)VriEbS>|AEvU%cUW@df|&vStNVNl1? zujCBwH^y46n*Bc~KEa>wx>QVNR<~q^wUHwlTku9T5$|GI4 zy0=dwwJ3Z1vAT!c=kC%Vk_55Qk-Nt^;rw7tO@xT-a!gl=H)wk%@`^9zNd@)#e`tWOn2)QGQp=8}gMlLHNp!w^E|Wc!L{DSJ77< zCy11fJ-LZL>V5>`zmcs|AlICIw z0@=6cKT(@kFY;w2c>4iyM=QlAVj8xxK>@)N0*hN=kvz|6h7j>Q&sh6>SH<{SZ1Tkk z#A*7Dw~5xSR{~>mb=v9~GF%w1rX4X^cBBl7M#JQYOhlox*Q|qvYt8#DhhJ9vj>+q8 z#}uJBJufdyCt^|@K}lr|%aQ`*xk?7R7tBP={yhHE*?h^e;h(N}hxFZ$(RF-~{X}PT zn98?WM=ktHKK}ryXJW{(ZQ-&tkzGTT zg^vQ9dC;!5(Y6xKU{we+86xInSuy>X*EHl@O=e|t55nWwA5D`^cOkTAvB>S*qSZR? zu}DMMCH~@J#}O-rCOb($a?1GU^vj0BI~C*{&eF|~Bx*3uU9PW5&90L+(OqpqQMq+Ek$No?mu4VGLTnOx$ z{c~ZayjiwN#mtqcw7&l|Yeoorfyq49rCig~+)*D*|%I%aC zgeZ`Agag=Y}e92fw%^56~SmeInd#a08N=A9; zGdxEl5y!y!Un{&|Z)>4bA>?hM@+qNi9B$lptYR!fOOvZq@yzH8G|8l<{gYfltfea$ z`&K+_ws;-6S~-m$RM9ErixoCiXL8wbVP>^65rQh}r43S75K-7rN|=#2IEjysnG|KR zX&cz@7j6DH0R>6t>j`~8pRRjI4e#XegQInVE@?w5Md+d}ntc@$ud}W7zk2?6%v} zR#I!?Vk6&l1nUq_Gs@Wxh>8CI7?}8hXU3nWj3v66zdZpcEc<4@KQ)Am9wB7|+D%nz z4A#0LF*82r*(e!_j(F$gI}4$B*2OB!@wbNY&B8$Yhb3VD0B6R`Onxi{Czcp?8K3(h zAB=unec%VVKdDQY`t0B7qNWwXAoS}=BERd8u+569V3YXdhGM;$h=_=qvlGM`#o;^& zjmA?|ob4>i(q=W)kRd-^uER1b#efRM+{jGCR+j$&aWgab__1e3)3cTW-XklR+77je zV=HP|3z*D8Tr(3A%!%4AIGC9sTV$ppKZpK4a@PC-t>ktqn+?o{Pg}?}ZtZtb*s>KY zy<~8FKO}7@+=%`^#Fn9n5&TQ~fFqgmZLKq4oK7_l)ggj$oGnK8N~>wu7(Yy=%Igi*K_5sVRE$W+9=Ms~ z;5cA5j8-11HCVQJ9JaY)anVkKiv7Z_sEMNg0H+SZBHFC3!ea;mOYht5@qy9gEaWuN z6*XE4WVHkQc?_wMf0t5^_I0KNrXo0eM>ccg6iy+^v&Y1lQB0j zn4CLRZA%tFq#Igc?1fE^!bz{~lotoviJBfaKa0s=t=HIpSabBWS#1`Sh2nMP)36a8 zs$Ek=Z7i4fBLX!PiA2nCF+Tv#)k{I~ruT%|ZDnAy7R2y&o0PK5hF;9FVU;9Q9h|s_ zK_~cxLO!qU97i8L2IrjDGWk856|W}&t!C_`vbi0qz|yOX$dt$hxvZj=bg{sJ!woa; z>HT|IKO?#Q^HhGRmB9FG%2;Xo^ukXyYXMgmi1&4d3jxcnc5-YI5n#=5V97*s@SbK< z+2o8adZk>x(d3=e$Xf&AQ)gDz{ATsmt0x2uT9GVCDR59r_Y;7Nn35@uMgrZmXY$*A zz^!4K?4_x2nT2-a9awlViRPvXq{XQT7@ixFc&0h#1*1O&Ynw;IvimL=0WhPfX1`aoYRX{z@`z>9k+rv$~BL_=ee=indIp2KpEYdz+i4Xm7liI?5=<0U+E5|`HX zv0=oNO489ExBmc7hz8gBKgN-S#(4>oRnHR_Q`&r!m{vJ8oR-M3O03w13l_mOkXEdi z?75Er0Q2xBr@G>Hins9i%qNljo|<_l5-Q>`pRsFmS>{$1BbSSXb~!2O4h;*l=1A7G(TXPfWEbk?im-5U~- z3pA+Wl-%X2>mr4LBxmU=MdcG*vi- zpV}(Y3iba0%1(N*W%iN#%umVQPdmF%$otDaix7h)y2bpyWmbsdWQBi8O8)?_|shrHXtOozChzw+!;6UV@& z`Ey|KRt;OWyLSG!i@$}}>*F!h>N2wJ3t2ZACN2Wg)<0oGr(nZiE~hQJ zFsj$gr1ku8)~8^G2yvDByu+?If_X%7--w8r`1x&sReOk%dKgX%q~~`Qm;CM`OH?n#NMdZ5xl0@w)i|%}i)jor2~`M6oe| z3(8dpfgU7eRcZt8B;F!s5$xxkfy@}-Y2$Lal(g4|cEZ`n?AaR91tiLf#kSiJ9p*-2 zl{%||8IPz5nU9^Y{{W_MGBSbfHmKt_N)`$Y*d3PcNn>QhjHR`4Q@{)lQI#s!x1JbZ zPE*IrSBmpnE@Uq+z?$}j)$tXwxgd4W^f(8!D&b0??7Qs1gr|j!cHqN^i3t@9*XjcW znYV8f;tD#=`}C>WMXa7#ZOmCRmRB|7>p<5vOF?lmDiVD0`Lw%7#{jZGO}}hDi@D|X z^2K?dD*ZrDELWj#Lq>h?e28Ex>=rv_2?E*5N!&q@B;49W)+NyTz7|Dn&?olhGr(cKvc+= z1s!He8+4D;*<eRDw8a`YF8x|}n@=21kbYGTdHb~(9Mk{Clin!J=O)hA$mU1H(mD&8*9 zwC3FKCx>g)q#`X0z84&){#r< zvY6{@w@xmLk~gh^3#Mu=!$*kVre8C}PyYV^6@80U@^f>R^z7YV9KRwM`F=}aMo%Gx zoQ4~M6vev+FH;GvQP(+eH?XA2c=n9^3Qi|0yXDifc~d!i3$Kl}SA9Hs>sZQOO#+en zYRCdA>-O1e37>xaorQ$)EBh0}c#4y$IbKZJbGeH-()Z<3oPo~BrfAu^0|PuUq?Nu=3~>Jdw);a& z<`vmd9}2I`TP{fM+Q@HO4uG0uh2?Sf=w&hX>e=V10b9vc1cyIv4iU+H`j->TgSMYX zL-E~04CXgn#97s{P^&q6(OC?+M9j*)!m@E5$(2C^Ib=_@M?cpe5cQ4H{$p67wOZD) zxjKMBXBS@0XrW&tlCbu;UglYWCRihU#dWM1$JxjEaq6D!nLM`bip=?QO~PvXB`sea zlPgwTk-KQ`)<8*(->A6+P^#_;u(Tm14d_!MB1012Pk7pDWU;if+m0GCw6SWbjMB9_ z87sMJVJQ%sEhPaqyP7K)nf?z@elUESWP*dW>v8N>!R8MkV{utrtAgEnIALO&Q42Vg z*T>yBC(MaVa@vVew3tR+hD1eN@z*?X+1|05v|<}(636bD^~%1c2>$>t+$%e^$Co{0 z>Z^(mlY*F7MDi0Iy7_3m`29av(zRTH5h~nOi(4kj@sSt_DNMKNkGD~nu;_uA`*okc z&ouQ-^B=K9`3GgxTbKeRqI1QP$mRw}V~<`V9cYRb5kGh;$(ZgxE2Sz+f)6 zVi-UCBAeLJks*VFCC4Sqn2|?l=FMBkRCU`}`up-LYj}$6wU*LVf-H0DP%7lNzP+EV zle(AzF%p*#*^oZbIDmj#!1(7v&o@0|C#hD!W3?>SL)kl~Z}z}WRm}Q;g<`2l*M@~= zghyBo(QCIS5*&Kl{A)`qk<~Qa6D^h5Gk4kb<66cc8ulJ&*WrZbwzyWd%JA7rVtc#U z-eNf@>^=M|h}>~emd|OKoqgU=MoFs6R=||0NsgWi} z#*A*+l)~kl-E(F<*5>~JrNSnatx1i_I@oaQb}htPkETjU(3v73Q2jh9Q}>CGM$`0v zEBKcFLrc`Hrj_iA)tPO5cR18G=e7xKYuk}amlc5Pv3&LK$@K}6C_jb#ldf0AzZS zZFfr*d}-_8+{-JowAX?aIOJ9>t|?Ge3H3u~hZLNYx8iZ$LBZphXGynLP#P84dn0Qv zuc2pPAZ4b{rUo0DP$LE2!5@`&Diei-~=VCd4r;aX@Mu%BR{3VA@lH<6xc8AW0+*@D!p_>=d0^wQt1{{ThiS9>f*+2Vb#F|NTG zn4aHK-UxVuf{Eg1)Oj|? z5stAR4(Bx;e@?bKzmL4Rwc#V`%_htMRI5cqQeMGL8nt9^zqs)twL-+FhO!De5G-ug ze5tNsGTIHjcVW4!=c!%A)5BfC##cTn^)tCriZ7aNSjeQ}8o>2->?SAGQVS2{PZsYe z$Fs>h_-__&DHiD9_8h}1qYP#cCONNilnN;9KD&O189&4VUDd36*R?My=5`#7{{R+w zQ)a+pvLfHE*mk@w8u8e-5<>~9iuJ(S09|51jT-7Nv@TDP6#Ad1CS>t0#b+sIbGJ3? z_VE@kr)*lr&#mNOZldbw2_i`#VSwm#2LcBJ5Hb#W*2{?At>y4__M1LK-7u9+5wT-z zs%t3&At+^b8#*RZ)kHhh?Q zfhgoEI-ZkRX>Of=4S<|hHgW@QSp?){@@E8AZJA6=yXnm4qK$?`GA;YW#7qPK0HoGD zm#gdx*K%b#mJ2_VA#K}IFMV>c?v+uy>o%f@!wAkSi`4lZ1VleFRoH8IzHf~!f5=`? ztEtT}1S0mwWvI%BAJBg4#ShW(Ck4rJ?_*{n7ZEHOTOth4=XCrYYgV|7wm~;w zAZi<)V4#^NQp%3iIVcg6yHyfE;u+#c>B(&_W+8Aqn9cN`CwPN9Udd?Q6Y=Mba*2B} z`3t)q4DP!XV2UMZTf&*CjcTW`5j&($U;CfoHeG)|h{me+9}VUo9c$HVJ!NPSju^Kx z!sU&htGC&QKa`V5CT4&45fC5)P4jP!G8+!vm)34w&16cQTxG15M(r$RgLf^k?#r_9 zVwDEf0@NztVKWiWB_zW`%%gT~V-=Uxt18D=Fk1WBcd^~%NSdm(gX~c=F%aIo%tt@h z8uXtQGjYS76?->0`!Jp(mcA`r#@08tzeNSF-#peq64t2n5Q4^r2!l_`fVu_7#4rhce` zTUTrO7sp6B?*lSj%Zcaie^WhsT?~dEx~gNTIWd{T1q1@2bly=m6A~~y%B-KWr2hbj zTR{E#&jB9Ne5v5<-Fkml;B5XsW}|G-g4eZE`oXo&W!mj3RcwA7yY@8#UI}<(~flt2y?N zGJxErPOMDIi>n&7eh^YIKFOYxJNphR$Qx4W>TRNpM^nYl4%LrXE&|n#2+<#96;6X;^*B<6o9 zndBtc+|Qq|ZN}Qn<}@u?Rg{P|QpUEGTI4@vjcYC&H2S~@48vThj*}4)%=4=;uWb7s z?S{>6n+A3+6&#&_%42blwic1vlDb3i_d76RPG_qkLOI}uf8w%@qin_d2WizGQmbj4 z9n1+b@?nH>MeIb6)hKuZ<{%g&{rBR2EmhHV-Mh$jvlLg(xdMgO!S9shNhy;kh^}@R(yY!8?{fHjD8!(?xpkyL>KHX=C{{ZN|L%g${@%FWT&Tkxx*<-bjdT8Xoe!XY{(yk2k zi*2zL&Hx+Q7O7;B$N>yVeb=h^hi$&}>>dGL@vvY8Y6~{DlE;46am$E_npEts{lJ`l z9?L0N49J+ie*XX!usOZIH{?ujmG@1rTiI!9cwDM+?E2ux_(!v`2vF7N8 z6DDGTuIj!4@vSQvpBwn$d!}a-MjILGn6bFqFFt`%xm`E}sAReff{r=o{7QcR02Q<^ zB6z-Ym^xbqKOLCQ&Vij9Ali66H-$FQpluM2Dx`!7)DGsQO~yzo_^Jbj&xBwThVRO+%-y(?XG0 zo|TqL%U#FhQ$3Sf2-^%PFXj8pedq7<4i^K0Wv!EJ-Zo5zZkn>!y@#L3#MGL!Yf7Yw zpg`7{hAPbe0NdgOqCWF8^AYHF2pTT0M^wiR)wQP!1AAc*)-+UzmP+1gG9 zVq$-;C*n3sJLLVFMZs&d{8J%fgj02@`!>dfGb3%rZe3NTkXVsx9|YnOA^sHiG5{&~ z1+iLfTA@q!Dt7f9k3J`RAsC_suNR8zA`<%WKT6pJFvFulNtPPIpTH-m&2Tq83sT7_ zGaCDB>bXL~V#;!;$6ANtfUB&ZE-y=_$iB?5yQqq6nM_Ra5bB+4%J?(OgTqw6!94W;2PVwo~z99eQ&M==u68l9q8A8+%I zfbV{Xif!v9vH9Ntn>q-tt4X)8R#rn8LmbG;n@&G&C^Gy&S|cSV5yZ^%@D}%r@Xm#; zYh%7r@%AEi9gh)`%B>MjIfAef6~ICW+O^kME+k@m%H+QCb2BE!S;J(u)5q!>Fl^ZB z5R2BS=y>Zc$7CJrk4b$^sAaXX7Q=CpmTEcrcqo#BWD>^Zb^BQB8BYu9nx~HPG_rJ2 zm`1*+Rr-Fb5iA_1e(GFy6Z_d%$#msqKi9w|x@A0MITT>Dt!rDvVYVmwr!?AsPB=G5 z0_$LkqE1?#G6Di}o-DK`Kh8!cm+@W&W;l=OCX(>&R$8!?kmjUO_@A3e5}^JkF2%HN>1E+$_`aB z!vuX8!z8$#1~}`d+QaBNYO&PxE7%VwWU>m)RE>ietaC5qUcnkNR&O>MYEtGAY85BU zCFS>qjQjh><=B+P;9#9}h+Mz)blNK@VNE!(9?4X| z{{Vjt;x+t^O8fL(LbZHu%Itxuc-_Bt%HPb{vc}JMGMuFq9Hoepq=;V&6%b4W%tz0r zd}15D-C~MysMheWzWV`_v6f}5h4RS@4sH{Nit7XRNska@Jap?aGZXPoXwvnq{{RC! zUz;}8Ue|(JjZIHlv8!U>z@puAQs&sT?pPAxEcVKwa}zzw;40()08aVLeQl3k*!-QE ziZ#lPTn^J7%GR3jKK4vKh^-|vT>k(QNpTY#{lBH!`5i|`*>Nxb0I#_Zqsd|N6`5Nb zui}no)L5oKks8z;*oa7{uM*xv{vv0RJ01&W!0s75?jH|;{k@o)maDJIHf7ndTJ1Ps z@z$-$K=3Y@0KEirKE8Muk&*eYF5#EE>VN5dcVm9scHd4c?VMGBmSfo;ot8@LsSz@n zfk*<`!~l;a697NT3EuNpa@jpEYVxx1SQ@Bi(0e1XG#`+nxcY_Dt3fGUk8;7WGwl&6 z2KrzMS{!oHe@|P!%UHKnUczjuwP3Q><@7&yyO)D&8D=Rx>_Qb-V5_cR1XFC1V;l!! zZ3wVg-zi#uj48gRy{chBS994+TjwQnHF{oVisa`Cl+iXN&UvkK*wzaPA(Ee)a=P}v zx6+f2?j{?mo==DJm77As`7 zwb+|yjt2Uxh{9|){nSYbSOR1mlb0n0{C!?>_)U*@ziPIdjmGJCtOyHpb(tw><<2@b zy%wc#byCGD6zO=)f)C(XfsB&lHp_2X$LsO6VB;`;K*6c^7Fojf*j1Im5sjvl$flDJ zQUt_wQ(&Xj63(#zt&!gR)cYF^roOJjVUKcYt}Wzsy5n0PGLdJfeYeRGY3^U<<-wfv z88ZI>7C##JFK6+Fu{AE>^_=y!z28-K&Sl_>xdEAiYXj)IoJq{e#nRZA=ZT5tXQzuW zjbaU;~DjyjKM z>JbEMI_>?|zDFrW(y+SgZBap}kJQ`UeKrWl2bqP(DjA55W^DcW_|U+lcv7p7GI63# z$x1<;<|KK8f|>rJCMF~8+6I2#XpexcvRuezFh^54<5NUgQxRs7=dte=lFkSivnPzM zLPxN~NRa;kkjxho@_dcQX4O@dJim-KEY_5&_U~t@SS)qB6(h8hY=XkaSMeM&N(5$j zmJoY+Yb$K3%W0y`&n0=lP#sj|v(^(l0WFa{#E{JY0CWAp#}gAge2-+jk*jTcE?XWx zN5oOZYdtFDFWD)`EtaZ#Bcf8i#b{9{5zLRMSsl(<=@2ki&F=da--^U*I|=D*de zWxZ~>*{x>oJ6>DGm#;(BVUp=$m*|0HMV0myE?h#;nm!)oOEs?S*enLyYcuXa;_rW^ z4K=CSsW5fvBn6B*Yd8->RA0zl%3CEf_D%7g6DeC~%5L5&@uo!bmusP!96nf6QFq&D z`~9q1U=r`j7M9DQW)5S`Y!1ClI#%)yZ^-s6zr|EBwKlFR)6P|WhBerw1Nw29RC>@5 zJvdxLn*P%srh4F~;51b7?!SfdMXQ+2V`jaI%Hh(=smfsPB@}WQCqoX+t`jn(Hdj~< zLMBP$!oq!rFnv3ggHQcIS(P^JuQ^~Vru-vW$))f!$5>%XVN~mf=OD9Wb%7tT5fL1_ z#5%p5f-<^alXt6C*}d6*ZFsGGD`V^It8-*tfV~~w&s;)SDCH8cumjhi_xViLv`u1# zJ2)Mow6EFK63dG$!`*JZj97yvZvqLvh;Yb?-_U3I7X|(<4nlRE^5(xsWU*T#<{T~= zn=CGcoMjTWCsOJogAibDk@kD^OQ zRo7>ED~~pi^(53>&jTMl=l0JcY#7?rwhIc@E?mej3z-^$^*Jl-XEr&mzLJ3Yn!`S& zfWNW4N0^u*_!7K-lJT037aON%vidGA#wRq*h6>JoZ-$E{mX4^Rya+JD;{kH1Z}g#( zm;sW4+IHD*a>+Ay$$2AMER$&+EPS%X3{E{5*=%$g#Qy+&rwNk%#!!*%Fs=>&0zPUi zPFBZ}a+_|(c35?mc#Po{__%oNC4p4jOuYG(xzDjpL~H6IDz+=&1Cp=@y{)lFT*R*a zY;3dZ+hVK@d|bFE))r-RByA$#g$v-IBuYs^!H^^7v>zPom1lb1yuVi=e+Cb;M6GUL zNlLpI$cIx1tm!Tv9b=g$eqAO2xb={IH)5|jm+d+|T}xM`iA{_pT&6)4sP+hVHdB+w zQ<(a5n(JM|H4fz;0hgVfVwE0))zVcKniu{H7;3~CtHT4;jS2#!5!Nw}g2 zRRTRjvGyn___4TRb!}YjRMIv48J4e&PBUk`%q?R`S3nyY@kvZeask+z75?!eMlGNF zK_D-7!s}j0!v6r%tfg7qwy~Ghxl?3vU~m}l85>p&3*|^AK|+$s;%sEMy4XTK$VtUv zou=*CtSYuF#j5KkV=|R5*Bj}{Qi!cWs~1ww;Do7*xQEKzwN{3IaUDAw9~I!WOryCvmEi<<4+P-%oj?yaS?_f47jvH=mnoPxI zaZ>_A@2l?-5^2Gb)+5<-{DfVE3MCf_hSFWAS;c3(XNt+>G3xp;MoD8WvmVJ>Yq(-! zI}b)Fd&@Kty%aao@y2QSq zaRLl*vPhT|ZLe-08S3_G?KEiPGnjll(W{PiVy|B2IF42P zMKhSrzhKj4HXZ_P1T6m{V4elt82bH`x0YRuNQOpCL4jMdwF0$h^HU%y<7F+^A; z1Z2603dxE4$D~0g*RaX)&&lS&-nwoamTk^@QSiD zE2KVyBYx(EAdqX(yJ+mDepP3LC)L~IuCkmH7O z*oxKOKm=_a9tILdJcPP#?!R&8NrL$5+=f_;p{-8J(=oG;$7%)u)Qe zaO^s%7Ht#HR&P`p}s;G8iJQSz#hd?d)3S zM8+m24}y?f%XtHLPPkb8d-VO5*R#6%ky8zgc6S&yajYnSto7HA<+EMH(m@Yd6N6xs zjP{XV{{UQPFhR_X$ngWY8CVZHQt{Y%VW452qi?12F^z1HWj| z^SOU1VLW%ZdBb^dS5mIvGcu}FNsnw2DlS->>yfuB`qn|qBy2zr;o2l82Dzc%*JM15 z&Bq;wvu@3XVzcqBQyRyNBW7#tB2qzq#>4-e*Yd2-I|c}>i4 z7?li&WNf?!#es`g8|hf35dxvAJbk0@F+BW8{i9&=R>l6W!FXQ~nw67qt=70p>iVK7 z<)}q9oOexgReHtGV||OI$8M4Z^10jFj-!yo?Aa=(grJ9Q8)9=hs)?0yC2eJ22vWwx zpK^q)!yo+8I(^}s!>+gDE81Qk8Mb9|^)Z>u^MT-uMz;F4ZZ!Rp6_XWistJ%qEs>4{ z4XrN10oX%!Gh9?sUd>y|L9F5qx46@-OKZ>y>y=8sE2m_7Oib_~wG>Eoh#8(f0?GL6 zEwyY~`Q-P3&S9*-D(au==U7e5l9Vctn*mwt1O)Y835vqTKz}T7Qm>iwo;>n~sec)q z$$2aG+Lkg7vNYosc?uf-S-g-Lotp;-EjD!~5yU04%7z5ZpAK)gJgKZz!she4o~5u{ zRlAh&bz7!89rf1VOnoR3UHO7G%3>lv7!mdvej`5t3t_06S=H(J9~jj7RW;b`eH~xu z+Phgp4|B0>TZIDjEo~!EOiZR7YpWLu0)^ZL?s`9z(0+H#vc3^Gz{kCVJ$)HRbfLGSxEGGIhLu?Dj^nvgSh)+l#l0mYUcvtS>dJ zEFGTa4TFgy_A+={mJlC3v~L-`n+M{DY4q{gjD|M;4>4OCh`Qj$(+5*zzPMJf`6=`S znn+`qBZK^;Vk9WoO4j_2^zC&rc`G=V2d!)|%JGUO#hwc3n~ zHbnahgf0siKZKX`*yFUv988oeyGYx1s|^gzeSbe*l475_J(x?LsE@!0uhb!-$;^nd zJ$-_IAHP2_JIa1U$DQh~&v=tK`Sm8E>g6&N4U#{PS%C{8CBq~9MnB{2!13`W-|7c= z%4eC2Zn;|pKtN*FPZ^NAWmLG6f?8fQ;N|}SW{jV%VN)ge$&mE|^|rq$YPVUg(bo1{ zwh(Ntu1e!*j!to+F+Elfu67PAK*;^b8l?9bHK%|djQ%y-{CDI$!YKIrV#W=PF0uNk zF@PBb+ps>%tu&h??C}7klOkATPqEm!o<1UEzgZeDjdkjl=Tf%JeF}|bYVsE7_E^k} z0?O@Gu%z5#Jj6-N{mNvfN@Lqcl(N21*VUWMY>8br$xkA)i? z@4L-#VJ5H;D43WSAo@SZx3te7=5jcV!f@0y4MmB@=G~ByO)EB;0yitEha8iEUbXu~ zpq2da1q_goiFq?&c9p7I$6#xRZV+4wqqKKw3}cBwGt;QmD{F46A}5Q zPx(r7J|^>yj4R3G@ilW)@byM$=aSs5(?bu|Bx5(JE}D5VC;LH5;N_A}o(d(JtoirJ znVgkO9gH>GcnMpw*0NUXQpgW<%9aq=H@(e>h97C4Q2Q4!GF>7AzIP40Q`e6XC9v{T#rCHx+kx|IMqVjBKX=E&+FYIz>?&1L6?s+RuZnK5bG|k5qMuuX`*<)1J z&}+*wBw*ed2DoCx8Jm_YV4x;OSv|OpVJCdmeA(czI~hM5VO@a8F_TR;a#eO3=IJ@L zV9i#*iE#lk!@1Fr0I`=zOo_raiLcn5YNK(!YPo~*X;p;Vs~JjE0}~b9D@_qpE^V$y zj>v^fOFJ-%ASPx*=&gGZuCZGbuLYIfHvHZ*)0WHHpvFx)WhDTAQIUnqCxIvd6B0kd zA^{;BbjNAi^^Ho-udSWkM$JbgvN;T{TpdI%nW>7%onKKvlRBZXHQJH;v?6*39}{pR zu;McK>^9-zuO{a|eYSQ&&VPAwD%o(r_GK$hvr!jBr-=l)3b8RU5hNiTZ`neo9_eJT z-=^(uiQ(2t$XD936s}#bLRkh5Wg;JF!e@f-E-;Wc#2H8408Yc_{H~#G*=>)=`j!^{ zMYbz9AFbS}cq1uZ2}@M=dz`N7hA5h7h0Gx(1Yb85pA==ZiKiJ|&&iLwVKo=&pM}RZ%JGA1UOY8aR@laRRJI02 z&%i&9x3id@<01B+yz8?eXC|-|S+3TAF@)-<8eTjKq?yQR>=sZ%a`izFc;9$v1 znBYse&lB(!GJ5ZhF?p=c&#riLABTM`!^kV-C{?ZX6#y-Y>-2I{5V1WlGr{dkv5rbi9N}jONx#nADhTNXWEgSN+Q;pRr}W zd48NR_$kZcROr1>DaX*oM;eaPDc7+rL2+#`LpBH?qGn5po*4@Rxon?LzGL+*n>^$<&sC$iP1?3wJQ!+w}GMb(L2 zvn44;3hmpJm)oT9LR?Tw$aq>6^R)a?rtEYRDQ-I>gU3|GS;3{O8HbI!%eM)mJw$&c zvO5puBG{k2+VfTk8r2JfNHPtB)E&^6 zxa1dd{wMM-X0|?#Q_A@~rWNg4BOd%NHvssi3L-n~ZFvQ$p0F~HsVRlS6%06Ga09fx zS6j*M>B;#204Hhq(Y0F*hsFk>ji^m*e=6-6i2^-v`BH*m=5aD7JWLFHcgJ3%yCXY8&OHbxe&Gj3l14uv><4zWc92NN5JCk45I<;$o;TsPA2Y*T zHZ=0V*7`^~i^dfU*%f#)7y%-)U0g(%^VJ4Fc$xmb{{Xu$k+*i<5U1enq>4dqSz8=+ zC7P#(OiH5LT{Hd9_(Vr;IpdCazdz(kxgwa?ui*l+jidA${X0xeMlX_KzRpLi1Po6d zllF+2<~W%69rBo5domR5ZQAdYGqx|+k+V4}a%uFkcqo)(o9Ti3$wWY$PxM@U<|UgW zylsiWRK;qQulVY|VBxg#_3*awF1-H$NcL;13VxlH6bz9w=`64l>0ecp8JF2I7~H-t z(dM!KRJEzTnjbZ7HGa&vF#T|6RTdW>uFVyyw2YgkMrVcaEPK!!kkl;YGI+la>{!gk zR=TTMin{G^ngYJiv?#^>n=#r7SsXzyr2hcNsE8+Mo_N=McUudAj8b!qrDAJ6xa?E$ zPhh?~O_Do66r2YG2EXM`;Q|m5)2Ox|oi(l74{t}sWwjhkT&eq8@ta=AfVQ)27)ko; z!9n(xOhkjoKJotm*o;0_@{Roxf_LoA9oGYrr_!C$%46$SMsWsl{?tZoOtJDjnxF)T z3`>}RGoOkD<&4LcFxLkc<2~Z`m0?z_G5IZcRF~FCOc_1zWPT(`X?l?>Igyw<0X&2T zEM~^tmhL+U-Gv!yl`*TyY_;)CtwO#ND`kI9E`7F5hah=fmo!!|*kPu~h|hBQiCCR~ zQS$wKPJ1j~T^wTVZQ`livuQ|MVjRe;P`$*#Ya&R+vj;o_pcEU&o;BJLi^$n` zj4js3(#aWu~{h!wisd{(}P&Th~$7~LZ+Qz+pVfuo&IomOh$7e{L87; zq7_t}Rxm$;4&ww4M4ZL4Wk9Zd#~q3|;TsO$AL0CKo6TsN)@}w-k;8j+su$*zsx7{{ z(_nd(TeW9|kJFUNzrI;%$)X5K}%z`cyd4`xk- z$xGED$bfy7sVnFtr%bccv!i0R(4({9vsiWO+Z*mL5sVwwCmOXUe(Y1fbwQH)>(y?tM_S!fbvNWa-r26AaKu4J ztfhe^@&5pL&3R8o*~@40O~YgAwJj;qF9@7sK`_SF6*Ud89XZC3AOZ`ZO`ZCGP{;aY4H7b`HaAohQWn+&6{i9; zv8(?8sr<0~rgbc_khzW;6{5y1-Bvq+)g9GUyTSE(nFdkH8~#&Ie_2Z9BHN zmd9#%t8!E`7OfUi&HGC;9?ZTCvI3QJ5fN5krK8WY`1qG~`3FT6P{#P{9uIycb6%Zh zHCU=I5;!Iy^K_QRAj&zGfHZ}iG-hTbO*cmI!gOc0pN|ved?s%dWthUbjl$us8>+xd zDU(67J@^i=WM%d=oJ%8)zc%eVe({F5bv%`v*jr@fQV@F17b3TC$^Pgr#M!Jd_L<;K zQ`m}U{{TT$)@$#3TIuaf%3-zG{z~Our4zMslM^xBRvBPnLQ9#B3(!#`FiV+&5-r*6 z2DbJ~-Z8Rl7LrP)%=70Wx+19lTgr58{8R`8my} z&+f$5Zc|*dx4pt|3aGSt+GGYenGmSv%zcPrMBOtmU*F&0`xJL-8rdru`cJoo%vZj< zHSgkWFC%dlRAj+pnh?hjOCW|zo_ZON+IXLU>RV1C-6dx=h{^0(J!18XNd20FewgWz zhq|*a%nBh*NDx62I9Vte9P!7^`nFqY-fhtG79$Nu7l*j0ZUS>Ta~a1`iI*GNilIKY zIM*iFHxEHj1jz7nFnyc#iH>;|D{8^6jTDj#I3frT znV4kH%{l##&-=aOKmMlNm5m=go?C0+a{2saTDS6jd$GAX>#;0)*g|9!y?~>1Nidr& zg@`#<)iPdl%$uoXDdV(zX7)d3#A>Lkb3RL+%nU`A`)sKne&1i%VB#mxGxuyJXkI+= zrA$4YTgLb;j>baOy19lk3uyAH!&S6}JKEX2O{A-3Jb)8S8ORZwkgf)Kd23|ftfJmG z$oF#Pwq)4cEetqT!u~ zZo^*`0{3)c{r;<271v)Nn1PT`tVMld1|#5R+BSW~7>kUgTU_~$Jx zHLUv>4YybQs?3)xk}p#}-K5TW<|O+rxL#M^6XQK|!5Z#Vs$E`7FK%+nt$%20<>*~R zK36S53Siq~s|GzNm;w%eIyUX)J^RQQr(y%cn?9qX+4SOEG)Engy^?Lv>0YH!UBs$L z;KaWPIFWF${{V}KV$X{0Zo@|Q!+S&Wi}xL}e`i&!6?z!D6%M3A?Jl_2bUGJaM%UU~ zFl}A)BQ7T^k`%C^`TH0)t%M2?7>%X*n&0#f7q8(f|=|*$2`n@(sS0;?%0{ zjgq7#b}1}G7N)NsV3i;OANRY#u1lY|b_ql9oxdn-6!t8w?Da+4yOeV>I4pKbaW>VC zX_IRj*mZ0(>Af~(gD~Nlmz)<{EjdEJ>=DqWDG1)tKvRwqSBK1}z z79b})F24{kFhqQDJWtGdor5=$&1dM**sLZFg0mRwckk0}itL{Cn8mhe11E?|21l6* zjyv~)o}oh66<1QkPSpPZ72ds-#*LeF?l&P%GWOgx7o>T%(R^^y7>Njo(_NXXH&`HwyZWs4UxoSY1_4cvia&3>p`%69@VrPAZ(P(%pAuv_kbvq$Lb?wyOz}S zTl74Cusinvct2a&;;7$UWA7_-90yr0hedwMHVF*>0E`rU$5)a(!{j{X$Bfe{UDok+ z>t<65EC%C^w!#%I%K{yekb|uF=v=D3VmOHZ0J#!FKLW9T&VCx!uR=F%mWH*P5rbk* z^|dnOcAmB>DWMh`1tL+@LQQfr6U<1ND~0^dTPuvY<59wR&)ySt*?i7op`KP2B`{-v zhxP3}j$y50o5b@m{{SBqs^$E3ie%1nZ`N>@?N}QOyZ)=OhrG*BQZVVuT&(M_G5n$k z?ezS(>(+YCq~tY?!NKDi`WJ(4WO8UDW?qg@8*;1E(it;?DyC(SHAf;OMIV7MdjP=v z43{x_k$DcfyuGr&V6CrWEHg2%Wkj<0@|Lwgnpm`i0%R8HSqQ_@#(khxDvWp^@NftretOTDpzTfA6Q9|9B@52foa|t@rKL2WiI19@Fh?_U<$A<|jtl@_6d_{{Rm8CkL%+;eJZ3 zR&Exu*u1$xhY|F)D^Jta5&{sFdcmbV`WpE51#b~X#>;x0%T;1^+F(VB#`~cYc)LV} z_ABuq>%pSukqIe-dPifwO4J2!T;05hOhO3Sa^V zreq>pPo4aQt!@p`cP}7m+V0hM7<5ZHVy<5oZ4u8`Ce1V<#AOg*HCVMZgj`2x88|nA z%=v>ELd_br^t|<(k5#v1?yB|{ELk3)E^97Yf<8yA0E&7H40HkGi3cs`T*T4V?+!0C zc?_<0<|dXxUa3#D&bF1ouwo=qkrOBcgz*qlJdsJ9&@fp_7O|mwGkqmkOvft2kbqxT zOvxP2Jyr!g&pbyQ#Lw8iM7F#Be0s1Ll~eH*8;;A+Cf&#FHt(?P0Jg{GE*k5Zfkc#k zL^ID=h~hpf`}f_tW%~wEd2A#pc3~;ARw?A z2A7DGWb!qrVVeu7B?5G7iP?oi>wyo{NXIg<1$yL{_y^__Yr^>YmCc^Qu-fxeRW_Id zq~u_&kxYOLx-2t;VZ;nif67@MrY3m#(mazGZDQTbhn&1_+`}>|w`Q{C>3zG_L^`BN zx5KYqt4MMY0;=#+F%Vw>=KY@AH?7ZJ*J{9Z!ypyMDm@5S@E1M1)Cn|qWGA-#qFH3}klu%ydi5XlBgiJ(y1>9GSA2<=z6H8ah zCmc5mHGeIRG-MSJ08#QQEhyl0xtWLJ;3 ziOFPe?On`VSOhj4L1(a>E@%0m6qfL|2ldSGhvLiz$&|6MY}tIHvss*$TJ5VdvSKRZ zsMVQovbxH%-#tzO#7y+6W$a<_Wz5X>-`V9%RqVwl`9le5`)ynGQ(F~^s^L|-)JjFn zb(TzsO)z52g;0E|ut4@9pMgLfdse@<<1pF>iLjL_VJSB(`&sN~(k!LIRjU#})^@A} zb8UqXDh|pL65@WuwmKPIzgDr6!{$HL&eqMh(R$DO4OXGn1DQ(dAiH1oE)7N!#(={Q zmH|Wzgu-n)Zq|0TUn}gm-E_9BfZe04D{{T(<)j?uv%fes82}}sZb+fF;h5YQ*1C$t-hf z0T|=f)8TgjzQfhB4VZ%dM$B>XO9ACy7;AezOAtH8xnmi&12SxcY1J*d6}7+?f(D~#C!;^ zl(kJA6)yP?Or>irj>Ui@V#Z_U#ay-mv=KYoSB|z570ykIuQ4P8EcJnjzyZBmIh@8} zs1KGgiruxH(xpt5oUL+8EcUP;z^iGFsCva|K!vKZ9gJo@YhgqepECIy!!eiEle6vW z!&xW&Tk{17b&iiI{yI44YL6fBrIHt-4ZeKLr2Q_%@+OC>OMTn?D|H3Aj=i) zGg!z`#5K|Hp&?FWkp!jGa@zFP~yOWEm7LI z!vob4$x#5A1k4u^@)fLB&2M#^zvkPwT)||N6cjq%118J(3}^uwYr%wcu&9R12`wvd zFvav1j7LNDHRWV7v=3g?Hm$c0T#=Z+d0O!uW|R;66x_r?CZ(YWk9WSPgXRSh(}E}< z+lJUSY^_@xmKz~1WEo`}31sH>99>Zk%dVTM{{UpQg>C?qdCUW6w3#s{#24|^?9N8M zFA2Y3F$vl%6LQ4u($j3gShmA+4S2DTt5uzdrazWOW9+sZfk23{`is@8X<3gI0>ak73JfPu;@;4%Ew zaD|0KEj#I}5}{(z8obSxK*HJ7iY5v^9Km7Vudj8vaK}{DsAWRkj2^gRhq+;grpa6H zC_wuZ^oUv@A`Ip|tci|gejD?Btu~u=-xc`3$Uaua;u&J@V=AQ8TdL#@VoZt2vA&#? z%Xonn6x#@xi8k@q;Hw@^@(-8tuf^Q1+zN9S5tzNMYx^x~nMb7+Y6{fLU=6+AU-a?C zTI!GDYiZ>et5jX97u3>S=`|M1_l*x?GF$05A^5gI1 zeAkwCy_vIx`igF|Y4K^Xi=#f4wz#shRHzGH=Ya~wcm_w`wEP3QSBll0rreR<%WVU2 zqbS=()?qMgZ|5>hVZqzEBlnnKg#Q4X#4< zl*iNveZ^U*2Q9isB9V`&cVlF${94%*K)YkG^a+FgBnPu6SRqb#A9 zt943zO@y_7MNA$}s2qeriIT=djv+8#e}Ml0iP&`7yB5c1Nz`+pi>B0K05MvwS+QQ)QKAmr<&Z9@jbpQ{{Yo5^-kli*3o=npUM&Eg5S#F+4}X`gX6j=P>j!0GB{$zdlCXb;oB;x#cb6HcTy_r;99;v1Q0u-->UA zlL}<#*uWT%WQQDlCAUV~vuzj)dHwHL)wO10vVMy%#Xh0rk^xyW&>M6~RVUvtGA0dV zNlZYjxgh6%{NFgU1yn@_%e3P)4qa^19!k@ zK>;WfYo0i}Z2+KO5TR=Al0;*e5&Ym{KjuDnxPEiIagD`=Oj?dt@0^_)Rk$8vWXWo? zXt;sme(*CtX#4*Fz(jRjOL4_*TMoD5&m?R({F5^G>0zodb%v=UA!-4vL4pa@V!UE5 z83Y-?OelIp91PX&>zWoD9Zy}{DC}5s2u(VO$n00|V%-rwrOK=+(5aCbh!Ak3<|FPi z$3G$-5~1aM?ri+RUQEZJG62mzHfZYTY$hZbl#2l`X-5pRYQkj5C$ued*Mf=pS1m67 z*+$L_TJo07h>)iP`;23JDMEc%~^3UTyR~w@La^qd`QaqfttN^?Y=V8ZSGhsT3e5~v0(8> zj>ER6d62PnhYJpCGD)8L!qpHm&u>Q&#yb8dELIlIU&q_h?AIukTV+je6O7R-wh97V zYc)^RNW^sICS%M=PePBj4VP@chpCM(EO|37m4A(Fm9$h=vtZ|$L8BQp3iY0&9Y7eV zRFF)AqGme-1q}B4x8vj+io97Y^9AF#VW84AdXAb5(J6rM1MJFHymbf2b$V;e>?73OtvPY ztwsEk*F}hts}liN8$ky!vo1Mo*jO19M`MWT@Hl8U^n8Z9UuDbTmOetLxy$D;`{lb9 zXjqE`PEDG4@FFV z>Z?{*!Ws4=Pyp}#bJ$T63pq^BmaArPdENEbwXEpXJb(J1Y|PqSTPj<<>Tu#~)KtR6 zTJVMpt*Mh3KU~biL8kADwr%q5Rc(9aUE!DtXJyUug#li=Re_QpT}hQnv+NZ1>D}so zUeF|bNXrA|t{#}HnGDy0@%dg{r{1ru<|P{Kj(91zR}LRbbteX-{{S&1iaG7eqqnek zWxQ#d-Z2Z@e3|-_-YKettiO8La#gUkab|Et4x?Oqxw6QSfOmBZmOXzz$Y7Qa$LZeN zh}Jc1Zs(gSscVt8ZW|Uy35UtZ%uL>=jj0K3#t&{xO<@5YcyW(bNPEY5FH-UjTlN^; z^K`7#V(i#=l(w?hsn8}2%D$Hgavs}oBR^?zamdVzzx9`J&Ogc5Du%hc?tW}tA{0=t zTH`C}ZfKMVn|^>6cMp*ufQCLM2bklD_{ov|H~5!gT-eCwv))k7;{ev|p}7@s*n@)a z11x7XWI5nS46Qa}iTp@lz9ZL9gE5(=>Sg6EsX6qVRjr8e4#SeWh<~;w3L9XYU@eZN z5|*`Ixu4?}O!kmBa{;~J=EgGqpZ@?-uyr}K-yLC6dbS@6_aY{e5c>wy#{&|Jf-*4@ zOIb%%e57m}KbLFP$JeKd(lz~M)YoqpuW5O*$mLkGAIOs)s-U&@o&|{|L`2M!ho7{9 z-nsgN)G-+BRekqAui%E%hC38j?NiCMKu|#=Ce*_SqnIE?W1s4Mlg!7!85|DNq^_jp z{8O@N#d$}PwNo{=b_uCsy@i>5 z*=5o-D0O5fO@ql8T>Y%Ivn+N82&`^bDQ%J3BZ_#{%^F;BKYv>o z9R2M?{HJTX9`BW>k=A@c;|$Isg)$*vs#R4CXK0BR=4`?KaXqF+y=x5_h#zQ7{j%$x zBGh)Q1nU^xW!pv#D4M6Q;PZJ3nxKhK@=c4ZZ~N9kL~|+=kH&daO!oL=3Hnv>t;k+q zV5*vTqOr|t7#o>N7||0MD2Da74{-i5&uLgp@gf|@z{`r&vKalL!)mq*HMZ0!vg-9~ z+RmMJaU4s1rClI!GxlxUEI9uF!>{=Kcg6VQ$~zsE5)lO?u$aod)e2nQoDW5>i&+&r(V1n9$WFPy>G zV`@`fP_K72Rb0;%UywQdwJ(mb)Evh&`o~$8@Ur}0k94d!+OL-K?~O${2qV3SsQY;Q zYZyZS!>~27rprFbBA6>OaUbv_{{SA@v}hSz0yP~|#klS76#DF}kMyoXILtVwo{|#C ztX1Y9ho4f6*~rAeeY<=DI(Ln72sZ9owtT1^<~2DCI@@GjVSsW?t!pB{i?uAA$ejH; ztB>{BY>rFgmaDaR>XrvB<11Q=V=rk^jIN7!R^>I*eVSV(*By|rU>4B0 z_W;(XWnfBVL_=adPU<7x1Lb0$jdqRdaXGzq?k6c`vY1P|UnP{ZVq}FW`7fbo<0SV_m(NuzKPd$yq09#5_RL~%?h|>12gM_8M5#hftWQSS3Jij`1A2I zcBkZ>s|`7gqsW-w9pf*t3a=Dq3jCFFpHo4SMnX$$OiU_diX?_sF*EbNEA;o1MiU`l zE#w@A2r?F>@3p7nS%+(;N@Ipxy4w$V%< zF%U5v%zO`+@a1M^YPQ}E?kif@T&g)T%WPQ;u1Ob&eJHYVHi-x)$u7K+osYbyn1~tp z=dXU1JO`{F)z|Uz9e$j3W&2j`I{OE#$Q(SI6C4+4fCvt;6A>Ild<(vo{>GG3S_>5qvJha0Q0Xw88wYqf^zC-vWoYpx{}xs z7Gv)niX>RWu% zXo2VaBSw~93?{ZDcS^M`w4}J~nz!qvt&hlKqP@~YKrzhyX%}y z0QD;uvo^c51|#w{R4|F{9pt|M005Pb)K=4TB+=peFwSko@^y zE%ZWoi+H_8?k^jV5;^WHuGv(w=$Lh4C#iCu*J_{-f+WD;TnR zzjwg49Ev) zCqt}b?0t1mK35@P*o1omXYa`jHl?s+a@lh;iCaSX zjgh$)1M>-3sucwV1TC1D_y%@evcBJq+VI{k@t&sao+j`5ifmjc%qJG!MqgUaLeVOM zkK4=`3EVy|NJ5HxOnxKuyRdnFrYp#MhD!^d*kx$7jm}e|Sj-v`AtaT6`jB?SM5092 zmJcx6EQQ7Ah&U#ye9SK4Wr9=U)kFW!)B|TVpVB857j8_ zN7iJyHA{N>lDg+UvY%Y_4}tX;k#-cR*t@2||nET7N7g*3wU!9A^ zTQ=Rg>B=s-=3*?P5rhGRj4g~msjp&MQ3u*h(d_z18RN~}IW<$*ytlGpDZ*qCO9blQOaTxh z5f&R)uzk6h^dS*5#|6a1e4TF^o}Hs++h1SX_w3&7MkST2jr!NG+ZQB$roEdlu0(_y z#+iz>a@uc>b6cH>L^6)WxaQh4#av9oDz+A*MMbJ( z?aY6F75ASYDm1*dtAe^&rd9-=MwY2rSWR+@y@4O^Zj8%j3O~3Oub7rc5i$0a>bV`G zJL6^NLvr4BEn3She*J^OU#nXgQMLa7f^FN)F(Q@`$N{pIX)+@@WJhk$#vdZ;yQah8 zaK`F+Yxk=?^znGWteVAwk+*)mbuj={l!x){85<)PnZ(I=9%tZc(0qMwIe$-UtJcX^ zsgAp`+XiD>TLoE`j09N=i5oddiF^Aw#tSHd{z8bKm5i44;tw2Vaj4C0qng`HCbc-F zQ1clyb>L+<{B-~*tR+21g#g4yGR74B{!DT{J=?s4o!l?we9f@s@YNGT4>^@tpsX%G z)S`QRU}zY-F)vT`3Q+bgS7yEr~!;r6zriO$>oJYIpex}mI zNO~zD>j|Dcku%yuRRZ$wk*V0qR`JD+V+OF2nmcAyL21k4Vm`HWNsf?+kG)S~7aVY8 z$mTvJ?cOS0@eSGV-bvWATOkk7gEh3(*Y#@Z82o!w56a!Y z3hX&(##P@u&6~`x)+#D9fyFBm?d{6qDtbx`VN!e%8c8xG~bO`hCfoPXfX3PD}lvVEwNu7$>hG~ z?`Qu2bTS^WJFu32P<|}5!P@rR!O5 zTI^S^9Lat}kRCbv&-V;i_j#KojVn35uT;Wd@wAy(?B($0#|?7=m9>giL+O^jMj}0~ zE?{ORB7O(GODVe0!fcssqbEyLr+~}mA8_eV{m&%T&8Iz|%GesqB9}xD2|i?^Bm0 zrpAvZ;x)|ejFqgzF}}TAu6;VCVpptWE8@jVi6@i{HIQDe1o-*Vmy-O&<(gmWQ}b?z zr`pJ(ohtNodMdQ)^gi;mj!P!>BDpk+w9RVmKF|?7N`yo&RC7N|R#<-E#l=-L)X$TTtHGCLkh)v24V z5-AW}nTd5;iZAjIioo_q5>TQ3SvCtn#^1~PC}y?%oh-$lr?Z=WD>=1Zw`v(az)hAf z)+>3Ct*lby3EV6op@v^9IfU%Hm8y6=*0F19#U{Yf%Fag_lvQ|O2Vw~?3FEdFF-Ve z%%_PCUc6W0y=3lXyg81qmDDVbP_o$UZc{Y+km_xMj_SkHAfack<`Xj41od2$6qg?< zJ9cZ&z}yBMJ}<)tI>u>IH0^A$NpThGw%muUF!@l2pm`s>e^C+l`*GSR`Et%2^IJEG zd~_3!V;sC}?0E~~`i7V$(HWe2_+$tJz=nInP&`N8c?JUUHqg8^ZGS7|{DtgliD(RE zoHbG5k?*?dtrdcqb#89dHcAgan?0RvTSsusX8bM_M^u7BW$ zBaf4=5gV)G3V&QVXxwmR?HMk$%aPFbEzTEY3ywhkGx286CVTU1#OvR zSF*g{j<#?hk%F2HseEE)Nakda_-qvY_~m@Z_r&~?d56qiFseAcS7Q35W-{3+zF6Co zpNz^^g&(k3vv`N0W`9nmwh9J78P9%tO6U5!$r+@YUAgVyUgKhE;xvt^c^r-ALi;f- zu&h|tPa*jnBm5#JVbLE1_{T}5htK4*Rew#JM#He|wp(8tZz;NrLxQ-JK2}yO9jHWE zgYM=8_8DByW-vqGVWqp|tN8~zahW>}J)(^q>h}B_RgbtqSX*ApZ`^@DO(oV^W`|^{ew{fPZ2QEXQr2Eon%?LY!8Q=ZkFU6} zhvG++HH>z&+qk`lzoDETd;#rgd% z_PgSR&BSKve&mdf2Muc4+h97q78_s`Uf34^6p@_FM9=rfKM{7n)W(%(L8)UOiOt^( z;a8~2;((^2QA{$@66;0+*FweV{AH6po{c8?}?&FfOxPGBljt%YJdxy$=WfS&8T%%)dk=uiVdE}1tQJCIAM{WN zHQl=kD3LDof>BmNXNVFq=0<6@b>A^9-yfLZhn#@P?WAfV^rp8fo0!y2pOp<@2 zseVVM$O1?)MGR$pTINV)(bRAp$x2DOlj`z)J zD+~cSh$s@JA<**0{^^6F@1|x{zW+Hxge~t6X&utWJ`Im56 zUmR|9mxFFU5*A6SD&_eqv9dUt5j=_W9i#6*^1+JoHk*+e)=<5Q{c%}X79(7~{{XiW z6BFo3#E%doAJlMD{ZGYxk9^hf+m&lrsv9K=&)2O}k-M#BkgzKDt2~TlmEs^|Sor2Y zukL#N`2l0#FB4@P++Ns?gJd~1Ui!TDb`nDNY$#_<- zA#XGHI!z!FeWc-Q>bO`BFcHLb>;C}L_z7CikE>~zJe92*VZMZGG=wgpx7RCWbSv1a zwCp)=k6WwEI0fLr{D=XA*Wm3lKfCR_KFx*5=jfyTMf+|;C5PB+o-*cO8BxexR63cG z-AQXo`IRnx#4IiaM?T3eQ^-Cu)I5WEnjQNYPZOcgS2Y$>zw~y}yAtH4zwkh%RoU#g zHRSzoM9jbpbL_KYzfc}1&)L}|?7uCJ$lxh1^71t(s04!5u#;-+*a42c*Ac`NM^b<( zn2C_4=kM+M);#|J)mk^GmL^kU8)BwLt0W>MVA9`1xSpl|0EhS#j}ylq5VY;r36i+2 z8zZncUBFdIS;yMUDfp{7Tx_TZ=+O6w2(3milduFvU~1{dd1u9(rqml&La@@aN!pW! z7gt=`_q=4T*mZ*#dBuj=s*YkhS15FH5$zr)*9^N~mooWGhAX`dLtfY`TUxN|&2A#} zU0KfuSRAFoOkB7%^fMEV>nRA855OZ|M!-_X6yq9L+WM&;9ky_Qn+Cig05>0EIf7M% zEiHw)EE8K*T#jN*0Y4VDzut8^XQ^$kt%|*!N9=ejEfc@0W(LuUfDp$KKM!OD-Tt52 zN#JHz?hmvd#o-a3+;!d3xB3Shjgua9Ce0js(_`w9?0sTys_G6704^-%WWj=V%q%{XrwRL=F-HQkeG z$Ez|?M+@}1>t_|P@eoq^O^J6gXu#PM#C`;c;z}ldNq0XUd0)k}Q>xh8^1Dv2l~u|% zlo^A@TF1~#M6yIdEeHt_BterRycLyq6vRs<%B~Mv3~_&?bx$SgkxXPP;%_@8na8Bs zJ&A3nQqi#^BO?oPePh-+2r=W}8XpA zR6?>YB6MTF=|xu(HZ40+s`$FKzQZMUYc=bLB}6s+I=M+qiG50y1so4^`_IDroAFrn zKVHOQF&JbGi91ilQ4h}XK(KzC07uyskpXG|W_vv7s(F$xfRm^B$yv0pexb0)5x$!1V3Y!abiB6FL2vbe|U{yEBB@>Vl1WN;yn!Y(SDiv*ozhkdZRS6s!7 zi1#gvGAM#LDEJt)Ezd=zg2n8(+$L95&)jRS!L?Me9aCiF>w*5@;EPLy`lI?R**z-T(FZVD{padn%N%-~pkKvL#i1g4@`!JfQUU@3$n4E3;jvtIo@_%{h!&c)=+ zZ9JQh-&^y0ZG||F%I0JS0zgJsQO{88Gt}k=C;Ipb?(+uJ?5+Ab&ZVs6FM}bWHXW9- zw3_4BKD8#Y-eMv>zwHP2Gu{W8__?;}o=n+1i*I7uw%VF;mIO%hGgtOwU%uOy0nK}? zv1tDQjG$Kck3D8Re8&=R596!YJZ0R!jqvW&wWKyl(VNa&!l(I!PG=oh9GF+yCSYv( z(o+%C07#~I`002YkB~BV^$pv}8%B1H4-hr&*{e$-YNU%Ui+DST6eT^N3$=E_%e0qv z4-@b-QSpbDldnG+sOXX`kvx%REbZ-#& zYQAV{6-|wsmFlHd+jbnCy7^0J;z5v+QK?OXSAOz|Af9-VDIbg#XnEr&UDvUh%|9QE z$TWth?(|!3@mXx}CUHu_E6fPb++fRylAdF?%o}bWD??MaYs+-LXP8h+}GK1zg1xuiiJ6a&B&2I zYhP(?Qq>YCJ(}X4VKc^U^Gd}=`=M((hKD%{s(stltL1P?*Lqd0SSBGk1u0EbdjSNv znv*92$n8Ir&rcKT8_$e0fuF_bSFza-AgJ$I$1!NgQy0_b5miq`h`Io(wj=z#lO~rJ ztfanl+92g)F?o$ba+yU`$K~>Pn_-S!BFEjQSk-<|Dd`M*u9Q30$P*aqQZq0D z{;PYrh;exv6gIIN9izzoZ7e8e?^dXT^i_ee5$Yw9m+bB|(%6%dfj(wsx5Zj!q2x>r zz4uk!F73cfl~$>q$u~PttJYzH#Ku~)M`IThkJbc2sm`e6NQr;n%*Q6GZP$f_X;v}xiJI375h#gW zbtEP`dwGx+_2(}u?f9%_e^SO{^^FfNV&%4OhB*ce^dv&DT1F^g!U_74lUcQc4T*y> z^^`;Fyh)DTB(|?I?7Ox=vNF@M-4e}O7-v^9kcJ#$)j0-)%HluV5sXaF6B9phGv&V^ zYg&%El-CvJ485G5TGV5|ZGxqiWGc_CRtTrk2PNxcf62o!*N!9mnU3-249J# zZG0-q6!ohhB2}zOMEaLC{lz}RoKxt1_ z5B~r%Y?uya7x#ksT+y`Tw^gXmB<06DZwcQMG%AS=PHB{c3llt@p&$j2%UD4W!QcWX z=T>C!^fyFoIVUcrpI{>iP0S&!Rx?XbpsgxcARr>Bni5gO!vc7ZyidTIXylssGVzYV z=VbjI+=H^!=xNuhU@BXO92Mj+%6_k)vEb3<)da5Vi2g3H*T48P#oKM2Us6uDXC*@g zn#QyD*fO@{i+?oZ(ANsr>gYi+xf$S5#&{{U%% zs_W%56^3760Wz2AaD0~+XuwaT!U1y|3`~!OxZQmcUYhE}`a;z@phUGfg>bjWI*0dR|1_ZS7W`BzJ`YR2Wa?1{r$v9t=BZ^J1q#Xb`c<%vE``DcZCc0# z4Z{=9#ocek+c%QpoXYr3=9wjDm?7nu=H|m>C(@ZbwpbXk@(|U}g*Ih~Eo>35ZooOJ5PhEH(xi4KX?CDP5`Rz!dYx$={W;b++KUvR9>$$lS){=uTetEygp4L76Hrwemt~tx0tPwzxA5Za?f|LudEXPGwL=5n`iR}(a&VJXW zTEZ_+!sRJ!-s-sa>Pd#FwxM15a!;E=YL&6&DJ3+=>M$?*8BC`837FjZ6lUb3uA9AV% zGSjixB395P@xi1|-;%s#*AMGv)_>{@wo;w}xrbK}Q!2BY3`B{Xb)>W{;T7b%#7v)P zY|AAVF{|h8WKp^KKRJ?q)R%otZJwS$u{gT}9IaJll|U^}tWgINEn%og{j%AZm6~KG{c-g==%_)B2R))$-nIz?#GP>($saF^K!X% z#agqLLMW)4>tO+~9Pea`L|($>Q~v;JBbgH7Kd|{NI5f?B$2%c24Y1AD}Y==VTKQF$nI&7qIWs5`g< z#wL0(6_!B-9?19(I-Wmu#?rGx9Y!f5!q1K2FR=jw9CE#oZh2|@^)Vrudfk!HQ8#No6P0kV)jQXT+{4YA(jo3 zMjEJ&(Gd-V#GLwjtGh+5mlj!=)qHJ+tC-iZ_rler;zeVLTOoa`(_{ICDQf_SF%j6H z6T*IS+ZJ!dn(~j(nV~o_kY{&B3-S$u4gVL7g%3BEChHJZO?1Q z;BYs*Q=;Unkr{m<#S?Irbq(P0Vmc3R$xa?RsD+sSlT%% zc5+)Oo_56=i87;&tm%c;i(laDZ6&U_4RbJD#|&!Ve&xr?9zNH#4Fx+MnpCx|haWG+ zg|oT|2AzT$;#M0G(8^@HOvv%nW;zcT#HyS{F7my z{G1?$IFmo9KEOPGTzn{6)~Rb`)^3As{_qDm*XFVlH?JnTYyCP58}}6f*|akvumOo* z^#nfw3nR3q<{=dusdt=fg1vhe;OOFRQcXYyQvhT#z&w#4X$TIiG^Eh>M;vAHP9I~> zK+(wT@87XH-2Gy4$)8-?xNHEajE*Fqk*vWg{^4W2!X%l9X$c6wc@;TalIh%A=&xzK zR%_5Zv?0{()*0?=zC3hwARf&jA?_@Y70em+lrI^R^s6^@8!5{xUGb}8LbaOcJf#;} zQL%3xoDNA9)^-)dOh360j2Vn90*B*R)obVxx{Zu7F*KiRAod146C;`ToV_xEh>ps1 zF1V^=zaF@WnSq%Hl(2;EtMfL`Ll0LQuWQr$;$kPhF0GkkCEdmdzO4yFn+hUi6J?4H zXOc0cuHDVpspecha%iZ6wAm^3+N_`%n)ULxlO+Pn1KEJyvMoX;C%hWUBxX--yS?Ju zq`k<(WW0rz8~*@L2t|}Wt2(NxRC66(0Y;J9H84cr;V?nfy`&6kxO}T{`wc9nDIDzN0nz+;4ad;K;IX(+t8*4nLnJU=ftTw~ z0$rwilNz#@%O{yW<1;14#heZ`I)$8;fcv(WjKjDtS+waGCQ>0jwwYk!WsFlu)Z>}p zrAjaSqCRHY@|D9cZzI2F(X8qDRWi$K++fwQl4T`zQN2ghtJiHlcud3-Vz1}Y3)Vnh zB>bnfo<60U6?NPkMcY?v(v_PpSOQq4izAqhik6wYW?~8J^u&~VKqb7!FJ^8-Le=b2 zr>yI@6>~F@U2fpC!1hHNy`n+Rm#^5yNRW&!J)Xj3kHso}Z`7~RwPK{~nOu9=R_@Ti z<4tyM*lfa=Q0}%;x^>nETDbmj=8FE%wf&Dfe5}2D2CpCBw?7f<*__wD?na%w?QDzC z$uG=)nyVF7x`Uu3VCGZO(Ke!E7CJmLQ^U+1Cu26 zp28y~@_FWb{s!i-DDp>`H%-$ck+Ptxg~01~XyGlBA0J`i0=wVyJz`=GSX_rc-@7}V zJ3AA6NsREeV>3$&WLAc3sud^;3ye}Ko<^`BgQMJ3(Im9oB>*$mZSCbif?sF?kB{39^W)mrEpEO`$7Vc%k9y{H zoohPOq;hh_{tr$mUD{s%0B1yr*8Eb)l9(bW5lZpzoqV@fSC@{ZrUhXk&9Z^JUsuXi$@} zOeKQ?%+^nPAc-FQSdNm&2>1(-GgJ0xdljAc!;_1s4|%W_6J-B%X%{E z+;aLJt*-1ADgt%gHJI1m$*C;?C0Zn{YwhfUX@NDRD;V|2`&YoWV>|=5Z)7+3&F1c< zQI%pxUeYZu8(3O%GAyjUt%wcx#`hDOd~7ro?ZXN>JYY?f+K zE5yQNjFpLENZ6K~aKx7aLb0Fo;G=aKn+=)L}kyO`U>kT>#7&`BWi!i@n9EcA* zOtiTJSnnC@K2g{+NlWwDj0$Z(17|aLIgo2IA5Ke*ixn(62(We|?%3oJ6zhn7aUQh& zheOhDZazQJGuqz2j(A>Z>@WIpt^-j5n>CsS(&0g1YlVp@=48E#C@;K7SMZ3@@HmuX zb~`%lC1gD}lS(ov#v+&uNYzRVm@^+vq5*~h4Dk~@{!`Ajd3Q?Hb5!;HkIC2@_@s*( zI~_YiW7G`$$JP=cfoC6=^8|X2o)6Mf`66SF#M-s%8KKH+l-YJWBR8xjsv4hM$j{c& zrnVrYg=~p@q}4Oh3KPfOn|j{%kknVL>iG=5&rduPj6>_;ZsJo0?8GAlw!d`RoVDJg@33IWRbB^>xeRB zkc~lu!V%cK|mY}ibQ{%;N4qA zZkdNP;IKY= z$!vN1)~3lX5X8B1QyezSSB*&x-JPzcRx9r#vtqdki{u~$L&SYIt_P`)TC)6=S4+igc`V-PuEy|DR~XQzmxe06 zvWbd=SwclD$EqDH7~%_nbh1145gBjGT23b;t5wo9y`M8vR;QL4SrpP`G+CG$z1ue~ z5*65?3}YlrzayERIiG+RXUA+i-TgduuMFWahc=GQT!u$%{o9BA16ZbdP%j9X0Ga6~ zK*5QEiHVu`J8tmz`s1i=L*ktyHK*Ac^xuZnRn=hFk`@DBz`Ch(GY~}+1tv4WjP?n0 z${tk2Y&y*iR|$s0RLSNnHx*%dGrZZg6)pFy4_#vy^DJqoYNE$kB3v>$hs}rL?eEIF z5Biq=`+FFiOCS-O`V)PtW@RGU%d~EDkyn_3V<3Vj@6ixpJwk1m-04@w-tnnzyPi@O z<6WGFqm{6ljg<)rCciC}j6p%mT!hH1Kwy?7JjE|r@TZY)-MRzG7F(6Gg%0%jnhPGHNKnc{xM@`0-Oi$Jqn0$7KOeQc7xig)#)ehd4QrWV5sUPOrDyRu@*Nc!P^fUPeoxE-@UbQ$L_gT^*2&nqi z`a;GQr#V-Dj0Bj&F@o)I-!^S?7gJZ(a`?f%g<3R@60IoqrpCP2*$4jT&sohO>_U06#@q>y8PA!GfP){{Xmb3mQVD zEJ!5w_G}J1*be)GR#PQa)h*{XTSFPzn7X1-=&lU*I4v#Bj%GQo$CY9;0s;v6VZmZ_ z_26?j-7503+9o?Hc^da|%NrRiD(zQAmROZcK)STJ=jsyi{3L(v`r<)FG(8t5oW|XX zo*}{G@9dUh{zCTS>axNn1VJp2p<%RyAVNvZPhx{8fr*HOJ)88stmQVWo%;5yqbTip zM01XpVyIS%?j?|qsLg;7KT9Jp#sm=*lK45`7`95@KG!oBHP0c!v9>O;RU1cJYgbb$ zhH)hkjz@7@2u)KcVvG!?Wo$U@)E4KWd0$ryejmp8%$92pep_E3gYsjmzafopLtxmZ z>WmwUQq(LtONf6Fg^%2zWgkk)X__^qc%LpW;Z2y_9#XAq<&wiiL#=5!frM5jFirs-E!9juAlgIExMcaCxUIB2kK{VD zxouj;#kgAfLyLJ`CA5)*yNw16y0KEeimtf}A(jf*O(8W534u>Ai?HP}SlyrZoL7w# zsji4(RZ_mmHu9AFA_~eGM&B^XB*=OL(e)+3SYZgCNH`Ctb3RksHVl>%E2a>PGUc2& z^UL5RBU?6 zdsxKNP~)G-%*W zFtyCY89*y;n|bW}1+0F-g+JA6=-)(jR7IB*cln%N(soYdxT1H zSj=Thy8EpdT>k)0MP9SgE5e(lV&ho zV)$(I(s60zHb_+!;o`qtXwW4ff~afC)Yf`i}Ggcb1lE@I^L%GYfe8GdlcBYPhS;5oxF** zB3;_}4_bzo4)U#wP`4vPjU?$#|* z)}#a=y~#gdIBLE;)_i@tI~ls+ak)Et5+^em$09Ah-Gvk);zh6Sz!>a+ zZVA=)JZ)iQtFe*5iWX!;KnfMzr*)Z{~KtJ_H4b(B`CRp9N;t_czG50jyXGw2K zFS4z2MKCe#j$`6(J9@@$*-FU`PdRubkm|bgF!PRm;TIIH<)vEnER-h(YeLw?$0ALh zdVqSvS;9trnXNZcO{=vUHW7}+)mxR1Aeb4mk;nwfroesVSKYpzKf#TOk>%xmb0?n6 zQPuX$hBbb^mTlv)0MoncDVbe$*)S_Fw`2v27^(=7P_+3Nftd~WwjF~zo>kn9TuwHc zo>p);77dKf0G;9V8Dm+&F%jHV6ePStGi#r)@we7?dw-i zwByb=5)bx#46rBcN&2fDV1JO4*N=hj`LimE1{EB8|R`H#ut*U~u z`30j3w%J{+rnRd=D58Y1ZEe2hQy!Nvke2iPO9`_R!)M`JIXpeb-Yu8RxMbdF430NS zKrY0@%)}3}V%3Nd5TCFD=bj7gGxB|dPAbmbvE{U%8SFc*Qfw-YA^GIYRaGUFjIzax z>?;eGIhKEcVFbmfIS>+p5GS*FI~#%WWz41~wnu7>g1QQod<7=@-*&T&XX}@G*3#8>ZcV3yH+m$>gq5pcM};SoaUC9e5%MAa+$=q5(%8;9TK_ z!0^WW6}$NxX7JtocF(d-3oPsttW^wy+Wd(fa1toPu%c9MWZL@=&F}tP3GcnMyqUwFA~h{xJQqc54eQ4qyz zw`Qe?mjQqCxW7`8qUInfRd|+nd010|N+*>9 z7s#A6eiO`G)^*GFhg8AY)H8&~Fdm$}Y%?1Wwebayk9k-qFS(0p%>Gl>Vj>6NVQ#$^ zts^nC)^&(3e0Elu9f9*x$Nt5M`tJlKhi~&aj{fm zhj0dd*kF$mAVNUrWBmmD=kDy;QLg1JrSOV1V6E6R7cnfgP(b@yvN87LR>h_ve#kRF znlfHW&-k^4o4=^p$7*-1faP-6f^m3Ox&&ZuFdh?TuRnw|2_@V{3|K@n3^Re$yrcAX zb;}+>En=vdr15&iDwQrt5g&PDV!Xn>e!B#D0Tf(t zm$ZwLp6aGU_Kqe$znHg0Y>md#$7ZmbUg4F?IG2UMUe3lP7p@F&WJ!mcPP&3b++Mok z3lfszWMXw@Z8J~5mB#6}6^{3sY+L9oUJn4q&;I}_$=8_muCwE_SL=mYgXgTmOW3lW zKCM$uyJvp#WkaWw$)-{{ERAv+jK`l+P{GgVjFvJXo~Dc_Mid0XF)|=f@&5pba{fHX zP`s^^Ri#TeB)olmMlLN?#bw|+$%8FSgREHqY!l|cJgyY6P_jgu^53V=6t4p8hQWrv zl^enIgB5O_7ub6bl?8hBWflGM-ko_5u?$Si08Gsi^-4QVoXWPdWs0o|ZbXg3p#86w zdlh6^6V#*%1(0z(a=7AW`ks15Tz1f%$H)m@9@ZqSq_M4#s5rhAC1T-=pk-}rz?i{* z+pf?V{FvF0m+2Z^oGwm=DVfXo4VNCrS1N&mm>DeUg&%m`v6VFu0TM%9g0ND4DSMryiM?!AlMDD6UZg@5QZ%RCI3L&uM&r~Z8H6|&jdy6u#>GqW7zXs1foFrf>)~8*EcLy$&09~ zIcs>U1FY4#YF=!*%SbY}Y}YU@YY|}F_H)&1k5F}iF5&A_doX#&?OT?YpQ(-0Ve)~) z-bPJT?!p1C0$`YvTD8o}9V?kP*z3;~!;yX=*mbvJ?z?o}YFBM*jY1chTWCIO--yUq zupa*aTo|3J41p-?*>w}gF(u1(>#Sm}Xm}qHr?t5X)A@kX<=iZj_8i-`Y$60O+HJy{+0F zqo~sy-qo+_G-w%)D3M+-80d-=hc|)?))QiV=29TAm}P$Kf>S0o&ZIBcDC9i3w^+-;FDiy(&bec7Re@fsD;cbo zOu1Yw{i4%dACEnGkDG7W&*UrD$zwKLR@0QHUFcWS;Vq#*M+$&tS20k^kyw)v6DDKp zkcLFZS&34|?%SrW&0GbTiHJB8u>}_*L`r#v^*Qcp`j$$-QC3rS@;G9x=UCjO z+Qoz{A+67tWc%#h2FXM$#eA+}dW?O)^7vybgx2itdd;kID{r?yY|VWEWbzg>3L}G| z0^uf;5~ZbXnPGK^k(uMMNC5$S_muVgZbpv3tL)!ho4(e<>eWGH-%&-(m5U0m4C)a) zz$CaP6u`uccOX>R^xPirO+GTlcyW1p_PsW?3wvEkG>DYO8JU^z+W}(4#PcGhkSL~C z13s<_QmvTrPP!P~dlOqfIk!NbGDH;Pv%?Bbs#p09HL5#JUO$a-{3YC>WKR(oEW0Y> zaJlg;QGG>>=ER1`e&k+~bJDV(vfgnq-;cdzz$|7N$E+Zl*NxqJrlCEuj9l~DAj=PK7+qU1Y(Rb6dYcy?R zabwgaVrW__gxE3rijSE4_c;)V64|5JenUyXX?o>U(N-r{rC%{*SNKv@n3HWaSCJ() z$5P{|!7W|6XJVLH84ZU~@a<~2E17|#sF4!Q_pQg*W2Q!VHk)}n)lPURGVaxs%uJX> zl7Lnl#gl;7Y->1eE5=!D6@<-eNj+HT6@fB{YZ)pF0?x)=OYIT&p0NYhg?QI0YgG*u>sPjnW>qx+iXf894ux4r2}BCrBGvQ2FhYNnt8u;4u@%Ex*R$Ip-}TKa zxcq3=scCRsrVaLu3o+x43?#>ii5d8txb2&J^42s(GaHD?Ur4(#kEjmVax6d)HO!WfVE75wMh^YTB8;LVG=VE#y-T5NF2n^e~g(=6l;Dr zq|KPL9CrTrvXljVscN&6I}$*Yr8d~Eku4+ZAkpST&-tPvBj9Ca?Qc1gjE9aqKO24@ z1ypRE>bQ!S%wXh8pGi9HC&btMu&P6A#+{fwwXCZ)Dn1 zWl@#X$cao5$(ePKmHJWzG2ehv&VTSWvle!$pz%TpCk)Ddc?%KxU{A_$J^N) zcKc8D@FseH>A%F5V{4`9u^d*U@PK%xtQbp{lfLRoiA3XMB2)e|{7xydM zPlfzrV`j%t@!yMZSgRMSCgw>v+F?e$x=v_#>t0G#Au%0!{{Wcd*N-#X1|q$U*4~O1i!wE= zF}RI|1a;}DQZ-ZSvq=V{73~EhVA!g*B7ev4 z779pY2^=2%m(Lo_JwGq3>}<7x&$|&~tYUIv>QMJO3Kb}qq&=vUIpNa-)JA)7U`v42 ztJ~8x$}ZJt`By_ttS`3`YQL{zZV@5|3a39!Dq%#R*Bt&++*t%aY51X=+O@quWXE5p zmciib;p^PWxUl$~rY5^waTS!)tm@CGQfp(2mDu1l+bk%A#Pl%#02A7GiggOxj@6mRV&f}rz1sNd*-M}A zZ!^${J3S0$6RM>eH?uEu_V% zC95ML>@YR)>`?WQiHQy-Vlrbqlo@ah0sOj@^8?JvQ#w`B$l&8m1ahBtLg?5%=TccEyAbC@Q~?7v-V3jm)LDvL}eGjY!a< z3|Tb6oV~z7k2|sB(T}f=q!2=&G`G5lg)+y?vDM;O z=EMUdi1-c}eJ-9CADZ8Do5t6x@3@OK>s^{Qn3}s&=4L7@_WGi)c-s5SLLeRo-UWjz zF7r6pbj=?;omXYoQLJs&rI{?27b1pi86Az**)YpEn&d4CY%U;RZiE!Ts9vCv_rNTE zjgQJ^OMKX~H!$`vM&#D987FGEtJYa07U?f8CBvXZJ!)MkQoV*z%m-qcR=MFlTV&TN z>;5hr)=yl_l;2K4#;kS}*kDk$r8a9=w~;ZDndQ>o?1ov^WPSv{WISHew$;7jp9iN8 zIMK0*c5?ZHGi}P>aQzrN>6r^vpeoWLw>h%0vIprA7>|xh@$Op{xVn#)c8!De8k{;0 zV$M^*`x+GTP_If+Zk#e{*Z~zuhumMnl@naxx%jnT#GBU7UoEpg$atsWV#}%PlbOUa zroV6Y`6}TIitd7|F$s~a50@kE?@RS_Cr>v`0p{WqKl>t3wyDSpM zYMAh`l>!o6#KaUAGxBMu>00(rH{>5B(VSKQBR@`@ z&iQM2#Ot{P>e}OTlS;qUEt>#_FC;JP)iMeQ7|JM|$dPb`a4)d?45nfjyjQF18Ehqe zV#6r@3&tbzK50WF~Px|>U&-oR8Y1wf&Y##Bb;w{y@ z$IeCk*0GHA#5Cudt@^1ZIh6;aDyR%ciJ9U!px*H^_F}7x^TyAxZ*`w;M-h~!^2K4r zQV_XH#~TVN%r0O$Im}xpi4&6kF$OCBMb&i7u1ilVGkF-|b?OVNVI>u@fJN^^Ejf#= zUTd5TM`pyr8D0c=iTEEy-0kM@$Yb{zq5G*nGh(irkA7n5GV2M%v%Cm30f@C>BCv^w z2;skIpNXDP*7bc42SZ!I^r6qn{D*v=wi z!L512$NoWL^4h~TJ%P1WxtbL4cOuPR@?+KDK(SXGNb?gB*k|uC6UZxO@mDbDPT8UO zXDqyyA*W{kOEHm3a#?E9sT(M1dn{ZjCGf$5h~U(|20jMz)>CJGud3lQd#1IB!0h`z zIg31QJ^4pjMObD)dpYC~!8od=2!bShsOA=NbPWoT4& z*Gxp0qy>+V=^Z4@phaON-ec{|Q&zzF3iq0EIJ=iL>T|DNuv*dxE#xZFsM?m^;jh{& zLA4N7E1CZQln0_B0B5X)2_7GvlBc7}_clDP7_9rLYgg|rDmO!g-&JZU0;B4AkuX#d z0C(WX<tA4GxyCvgl#u~>@_lv!F?m|Gu^ksh}n5>_Yuu|y4ngNW_?)6X9p zD(m~kRx$qoy7>z-b{k;U@x@WAj#_~6PZ8!1w zERN!e82orxZeL=u7>d0P>72gP844&LXir5goJaf*X_yM74<_rjhz8!pLml+0Ycdg< zwlq&1)8OPDiv$v)!$OVOkHp}YbU_H+t;^W&28S7WL z$c+8L{aG3X;#{4)cBOXhO1V-zQ}dQ8>w0iaTVA?@!`e)}9cmGL0oBWTUI94Q!3|3j5T=FIdNW?!wr)W1>PbjviSLnU;RO0G5L!$ykD*C zmh(%=o;wkhyoFlK>7G=voWgYUou z%y{!!#Hyyj;(rm&r?M&Rv5njJAqsXgEP^j(bYWx|>jLO$kL6i1GQngIVS@R`$TasI zi%uPrf4!0s$s#J@^R*W$$bmf8lS;9RCRwOa*?_@8n&Lx-)|loau1=QSppiewetpL1 z`HYDiRilK$7DsN&A~})>2y3kMDd1q1Z2|t`LS`l>SG9fV`J`-iHFW4&_RXH9UAr#x zho}4FZzvAXoPBF8l~Ho*jQYuLlWc$6f@dEBk%97ui~Lrh&K}vMVQS`>$xiEesLAXZ z1#>LubP`NuQ<#DYD1%(gL>+Yzb@)5Vn@-P{#}4tN=-Vc{Lko8wnXBY&^3{5F*ZF|S z(XC~{&A~6=D_S_2TXljMDiTW z8~|FFJ;3(-dvxsqS&t&rWt+5it(x0kuidCbENgMgG$ANlOH0^_DsLU6=4LusgZV9w zXY(Cd#qZu#wK*J9J-Ho!4%}`l7fpbDe!OzF{fn@&FYs#qprRzgL1rd1zeUA(Q_fnn z<8~ZwQ*+(us0Q{bthSSNyUU4D*>pU}Qfgo}BGcOb{{Wl_lt~1Ux3B5g8n~@n^&gVP zX;vu&KTgeQSa70wmx%NxS7mj5NMr_C)s#@Bt+70WF=k6xc`6S; zO*~#M^_=4J1JX_b+>=ZmA~7E`XwD;Os zNpK>6OZ2sXCO@@@NVtFLVySh<2vjj!o=&mU_C1#C7uI7v=M>XRZ-ZZXO) z_RJX&GI5l-B_d|Ej|`Vg4hO~FBFfOn`5!dRg6_(E;Wk{u{<_v-)7E`yNI}He7?_b1 z0gGZ_*TF$A;3DAmzair>xjm1?o*>`<0MeHs^J_bjtccmBxI{;0Te8z-n*7gYlELm6 zAMAg~PO-QRQy2C5Oe!x9WiezXc4~`8NJs80FiF{M<;hG(Hy*%<{{SA5`23!5-f#*F3ygJk@i;;H_(UIx3iI_9QZLR|VgZHoiF%Hf{1z zz&n*Ek(h)2;CSVHTb=S*uQPmpn;?*yqkCr+T0c*&N>F%&OjSj0Ncff;Y%WWffhgzT zFXi^nGvIJluhiadXR#RZ8V8p}3{^a1R8u1>OU}BiNx%;xx|Quj$c#aDjy?g5j>WWd zuWtEm;`h}W>l$z89g3)h2UYL)%8cZuaPUffZq@iA!Uz92Jjj#Ke9>^IlVE-7I3=5UgI2h^N*kGqv3hZE*Wf5m_vNT*&_b zUdsVIfAfECK1VTDzfl_I7Tz-%fW`RJ4{YMV-)^V%x6UFtk9Dknu|Uov*)FqCC-NRf zXP<|(J#R*B=-aZo##?^N*L*I<*EzNA%|RC>2VN5}%3KdT3Mr?Fi0A(RQW^G}iP&nK z>)JlU<&0f7htV=>+IbTyj1xeO3@JpCd5=$NnM=|v zYAMcT^lcMH#qR?~Uul}n>J&0SR?ur>~I#!zsSszus?{{9JET8db#yi-LA$ccO!eur6GKLRl z#a3OqEV-M6+NW$eU7D+1RTwQVCADOdY^&@9LHI;`4_eNzuWuIz*V|vGFA~XOHTT`c zGM$NmD5+_%VAGS466%$tCS&}JPoI=52ZeB&ZU@<`Y`abyqUH9YwpZGV1>yc^}SkM)ob*Qsj50-I0##YZR1%)monW_|?& zcfYO{6Df_i=Vat@j;krmATX5jb5sgsWlbt82uwiF*ocRzL=;am6Y(3z{{X2kDQ^T= zEjvgLAmnjgy7?TlC_4>O!i0!bXX-wo^D@OmA0D6)XL#rB_HkF~_HyaP-0~)QId+l3 zS5?ZVmrY@jiIT5X!mMp+>CXf>{?R{aIr*E&I_9;g6+Od!$~NXZ4#7p+dqwdYZN{=@ z6zE4Qt=_cEHUJepmlh&9?-B4PS?r&kww$W5o=o3#D%FHIX0xGMb<3l~%tBx6Q40u$ z7xrWjb3FAJf#m)-PotDxJ(*w9_Uo|y7ji&7UEwa!7V!o=D8TGKz*@>7n5TYfYZ@8F548#xe#78hQY0K>@$)S6z zO1m;*BsiyJBOJSjF~s%8V}7pfuHzHWvAqgLc@gF#;1O4mu$Y8o_3L{sZvyH|moo{Z zc=p2VBzf)pjx|^n#1T*AP?(Oh_lS>zZBg;3k?L4h-J8>@wxamjcMrKtE>%@OtN6xcj$(rV$U8vjj?-}c@b3U0BHPoH*nK>hh)gaptam;c@)?@7? zxZ~ozuOIB*RjF0`nCwW`>6~0<$K*Q`aGGP-rL}0TS3xpS$3v9FL_~EiXW(Sne6Qp0 z8x>0!y`dgU$l7sM#l_r+*va+*?<)l(L z_Rg)X;pY>Xu$iC9wlX;>SwuuY#LZ}#`wu)%&3ewe`d-y5k~Gb0UfJ@N9Se1Z4l%1! zUofQHk72#x9H=02dEG-CXJTJN8KGK!UnyDW`$VqQa~kyw zW0;eL48+8Kb3cE9RM&Oi`d_KD9j)q~Jn^Qk`75_=I{WesveS{}w%k5}d&(z?CRsTy zVtFn;CT+tP>s#8tcG$MfTOr-q>6$gLI2ueSfQ!FS<;#6yJz>O|Y{0}eCS^wkm5`?0 zS7fi3#cumo?l}TgjAcxdvU@Jg3hN`*l)j^?2XDvhK*)*vlcGPawzoRjJFwvoTv$(>VK&MkMM?(xhmM=u$D4>R4R;KzCT?> zHM)I)xqR=vCIc}g2T?##F&y&|@@a|Gwk27|e#f?c`*#U#+NMIz5zadl;sj?GXZQQ_ zVJRaCh=Q!T+?Aq_JU;hAC&1QvGhb@YeN}fQesv%vb zyu0cf)l&r=2NTyJ<8LZl$TFVcqU#yA>~$54$G;`JS#1h=Wy35}a90d$AUX&%N2;0m z0>UODe&7#T*nFL7U%jXKT_8DEfZ1*qLQ9s!O6i{42Pv4T2eBb09iryl`Xt-BB ziG?>Efx20%bU2t3OI9za6<`huC)wAC8IQjld=um?^5ZJgpVSMr%^6KuCcItJ9hJ`; z3OWf_ZELO?(-FZzE?LJM%#Xlh@wU6GU}5u%Xm7gyt8?i|mam3V?k_^2kXT|AWG@@aZ22bPZKO}Ua$tJ=RC~3 z@M(Cw*6CLdjz!5%y`^Q`@XGxw4oo-vtE6?tCuQrG-zsrdHw1OVLIvs9H? z*IUh~vNa@yI_= z8qOZBO?36`pE>mIN?H4LN>>;ih6p8*^>YE2c zSF>AK#ZwUGMCp*US?huCKJ|l|LBvZs@GuARcf9+&)256jrCUS8S*Z|(@mTCP)=i7}0>>^1Pz~iMWy5JnNQ^`<69pyDKYy~0<(IJH&cX%s|6egbDYFH4Tr=mjs|FCR{d4x6ZTi2Lx6I>wh)vUV zjNZ1xz~Nnm7de?Miwaa}aal=4#Kg(hC}4~X1+s~Oj^6{enc3=xU@<`Hub0XvoOm^Z z&wN@8U?zC{z0ZQ+N=a*;{pE0dHy7km@~!U_?t7XrIsBq4+Ga|=O6uxoZXwnM!Hz1& zRt208383Z~S!)#sY34?gv}#yg5~U4tv-AqNyTWwvbOT3+yV|k-R!BYeY|2+1W?^GJ ziLe7QM-%W4YGD2P>MQ&*qRA^so974|g3ysdd%! zIRsFCosaR()se_x%w=U16-aH=VVolD#kQ@YPLLyP^qKbqW@qmbS@AgUAzH=Sqp$6o zRT|e>^_TDF*N(=uwhBJwH4#~sXZ%7SSZNVhg5#)+d=<$YsikZd%S; zTghmwF!fYWf@FQo`!(Yq@iWKITP8=#2bPsy+L5Z<85XA>h}Ns*^HU^K9>`l7`t^r` z>+N$$BcJ&Gz6jGiRfXC&J8P`Gh8J5_xmPKS#bUFUnPrQ+V!@ZP%p65>k*dDHf%{2B zdwGd3jkvvIz}U-K3^tkLOeTLI!7!RQ+(Pos7r{tLT(HTN17oPqXTA%9|gAeg(^(o&8AW?F$^i^ndG2GXXmY-P0Uo)*|+1cT85lD>i+jHZDnZCf&E~KLsAd3rar}WGx8xg|jcBpsS7+a}<(nAFSV6?zv9BPUU_P3j#Y=iB zNE-Ljh*9wz#K5V44r}?Vx@}|^lyRO%8YMO8S;$~;?xBfgP#GHP3p4Au6~}|0QgR0VX!UwJ7YVa%Cx8?u`* zM#UIhMlfC;R#s{ zn5txL*BOS_Oq$T|qKT|k&#=$AlinlI)Va@&(=j;g-aE@?qW3^uA$IoXI@p2eoeKZudie1 z;wIG<6?wH1!IreeLlG$wf*|c<3Ab%I#cBE`x1wPz;2zrLmalU0s|{hH5i+@jCLLy5 zGX{Y!vk@@)CTVcm(08ktm#8(ezLVPs4U5Vd5qoPJ!14sd=w`BdJ~q{rI9R)ROr7VS3XafFUg-Of_b$^seWo~= z=6*}}j}Q3FnTFjHPa{)PJcWTKjq4WfW#!daV)dfoyaf$qU=SXWHb{qvg>mhDr?4N9 zEo1OIjdI1(wor8p?YuYv^_N$ z)FSZb=F8XokFn#MxMrzgvwElEIJ`2vpCgdY9wgenoNl#52fizvLX1oHp01 zHHuLN2D0BqYY4)SVjdQFI6!3+7aUrlRT{mM?Gnb~hGnUvE?K-bEb zi&t z7=rEjMDg~XJ`a9_t8b}p z^@_o1TO?$Y4}D8iP|BIqNlc-{;|V3d*9!H&@67%!8Hf^EiuLRkrGT@rU@d2>VR80| zY}Wn$?OWJ4b>*t)*YtRVPu(XT;pPcs@F5?7BYW`v3t7cF#)p8TLlKs^84NvJcv?@O zjM7;TQXymzi3>atAjQpI$tO=g)%1c0yF zAiCxfGu9*EQ@nYiX&W7V$02{mI>*-3RO2z~#p6Knf_4U9y;-A#@@<^{ zKOXsVs8+*Z?Bek*2!fd#R4IX4T#SnZ{p@o28GR2^6tbAtBXM5Ydu>`8n5o6_(p>Q;!|)`5glhgmFd{*h}{- z*Fp%->hmr{T4KbkwIns+ZVuwIY=^F3p~qqJh6Bjk3bDVZs+9*NwJh*hqX$!`iyU+a z$i>S2p{5S%b{b-+aDdmX5yKr2!HC!Mo*~q(QNO(6w48ndS8ndRk!sA!v`4J1)yUn5 zLp`7a0x*wHVHF5hk?R1Lk?^J~O2${;bF{L%5n?he$j*B*%lR}|Tf`#7OOU{2Q-I>n zC0mFj3=5~UkH=i5?}W!>>t%CWPR*Ie;p_X4Bd%_*%d*R_Om!6lKn!LOqaR#$F0URU zW@0{i);29i$pd8Y6t8CvvBJ?iMO=<<%0Rgu!HZbMb&){+E_bPOBRxTb9Q+;PEn#>Z zenNFk6Fo~|oS)TWa=EO98j5Bn-vN#%Q{dMVHI$_hr3yKf7c7FFWC`ugUhg)m;fHC} z7%6Q!d2b}-?PBesy9e%6>xw0Z1qCAub%X(P)PTP6^YaPf?ekmODVArkIl)Du?+JevY}qtn>@xmfEnX8!8H8wTiV@4=j8aD<}+TF2wX| zqIr@s8IS5G?IFKO(=~KvTa-rScE(Pnmc`3E20Dv!)gDDN?0j6UE?hv&eo$~FJn&p` zKLuK`tM6Nmdb|9vyz8q*DzcqRTSi&+rFGbG2rO{PD7klD;9>SDj(*=4Xy{r)F_tN0 za5;#|BTD7gw%Dv=8dc?e!L(6KM>Mi^5Z#LN^=z;K~k%^0SErK zF@=Px&(%YU2ZHPFK@`W>m^1hIiATy?r;@koRCAjigG6xVQoJ>61>BXJmLSX2L-f`? zHlWRJ{8q{SD&-|H79wO$)#R*B@;9*CU7f*}RHJ@d7Zu;IAC9I99B9m8SBSKu7z;{fLi2hwnP;l z-2MIn50f{aB%T%av74oQovdBJv0b>lU}28Dh%#`!g3+!Aw9>|pwh<=t?6Tr{o!1HF;yhTEXk?O{Esh!I6-Y|KyMB*}s1 zc$K{yZ^>-i1G72~mv3ptkeyQ6EMnTcb*t_XUB|5r^aBA)>s>HzSb$5SOuq6!3qizZ z@K`*~OGIW;jtc=mF>Si7^1Hw!R#q&VqT)l$mBE{Ttyg!J} zKR;;YY<KxD8hqw%Y z2-iU_o752`L+tfTlO(6KoXiA3uLcJ_n4i=ykFi@mUW$E3dHGOS!Twhq=~Y%Vg^l`( z+U}9aG7kDz}PGnO5!(15YoMv#@7yZ3R)dblUbZjV0BA?BO-27*Ha?m7#&pR!72_ zZQB8^O*^;8YFlL{V{{T;TdK7fbwh={k z>k&nF>*I1mu!5LfmQhP06K+adF+I@6e<1ej987%gklwtTvut>uB+7A`6-6yI@o|~7 zCzL!>CJ}k58tFQ1hD!ycVAnULG|VhNxn<7yt=o%LuV%B@>vNl98I`=8DBZfc73M_W z_1D>Dt7(_;r=$qMIEY91${+-3erC$~hHd1Lv?CR367TA^USb7n5N^$Mge1ZGFr(qBDS6Z5X!<$a&Y zIeMDLqiaUi=`|H{ckgWZ>N3L-VK%LDsD`{m&4VOdoX=1ZAc#5TBS-VzjiXk(Qslxcoik70*skzw8xtTk8YFfr_ zA@*1k$EnrTVPv2fTGs=_!qhV({l~!KzZ=b*pZdifVbm3wx)8?Mwv^?f*|2ypuofNa z4n|~s)#|L`CP$MW!c&2kU*zikE4jRFYRQEla+|4_XJcXSUE4_0_Flgkj6$h zAp1{_^t^|T?r9m%()P_)J}isR&(Oh9{yV)!dW(}_-vA>%vY8*`fisyhGM|9?vUVu2X;GpUr6&rn#glQ6NFfEl-+z;+7wy-&n-%@3 zq!pz5);B`kEH6t1NES&K1QYO`JwF+?Tbm{1NZYN*!|i1sQkF${^)6)okt8CkRm2E_ zVqn%}U5vVsK#1QE_;YH*c>5K8=GMZwlB5xG^#jcJrvNZ5tPcIbQ2-K!k1#)YLiGf~`X( ztZy2=T9^;oU@0AzQO#v4 zRY#!%B*^-t)Hni&h?s^i^5!@{y!@Q$^*?#IH(9>#*uPaJ;ZEjvW=$*$%0g^p1}!eR z3#006kcbHfXjc-*?JywT?>1|j4nA>P5I0)6nKxsuo|B=mCq^##a)@gwV_!JJHtamgG@@V+n8 zx6I^YH?7AtpQW9{mNy4>_B1Z!F5#3z3QZavNvm&h_l37i$J4@kc9okU$0y*OyG+$@ z+trIqI@MO|4gUbBy1q9nlodqqQT3`4^>i3N{!+_KnE?`!7>JP5kJ<75HKP5K^+|HR zZoWLH3>HT=lci0kG3ds!kxVueU&d>)*?5@DGQo2l<-b+(&IqlZTgUru18B_TMpKx` z(>X>J4H5n-^^PFiN>I;XT9GhwB+g)teo1xR4;`&!$9~RhPS&&7u#c=n>lPwuP-MUr zzg9ZZ{*~Ps?TLgf9=Ifo$w_i|W~IBum8--)Wu=h9+6E=tE-@{&Zwpx?+QVwuQ+ax8W^!t)qGerXG6GIj zyV%;VDHVyt6n#M$Ow5rN5%%aYJj8SGMW$@6*!GOw&2tfruY_n-D^_-1#g0lqtl9h5 ztaCk?W_t`w#FC_c|s)uE@2YS}B!LWE%w%&uI+0C$Ok_;tC)rTMeHj zYxo-(&9auEhso#CG%Fr<#lR|*$e_}uk%~ZPm?zlexZyowBh)eSSM1DMwSnA`keY-*u-jfa+a~{v_j9^EQ~ak*=3FnQq!3jCY12O9)mExLen=*#XCvT$+?t|oJw`w zQl@5YGqAy5wPwwmBt4B#DTA1fVj0KeGBl5`%=tGMtX2Ih%ND525Lx}}36;rM5Hlzt zgsbUs;r5O?{{TM`JjXnI1dZEm@0EMGsC%o`8>sDXpYB$@rZdhV9is-6`Kb~TE`vcHo?_uWeB#x1in@kRJ1q>W^@eTsi~FT^qii#w^_(G=CNk=`xxOA0MI}$ze0YM1&FB?T>fEbS+&G6JobZ$OJ#Bl zd**@WKznxGn;DSL;c=Egv6y|EeYu~@5}NT5QBtMR7F@_LK z?c-C^u91#9Y_}eG@}wd%K!UMgr0DlPS?*E`>LNk~!`2oi@LF!Yt=i3Oc>e$_>S)+9 z_KKDfxYR1=?%5zQd&zk$FVSfFmM=iZs=Rwuhr@} zFmnJ_jL1)!C<>Fob0;zJAH&qOy*oLR@y0vJE~B1F74_Mno5qpltGr~|#oAh7j)1Wb zi32Y29eXT)&*hhA*7WTlG8gw9y6{#M#r8iTv)zz`0+VXgF z=3N11-8WVo=1RtEYS{^w4=#pRuA1~K$uh%7@^j!hh~d^75^@8`_WOQkGaf$HF?hcb zVs@-X8ESHg_o!s6d$Ed}CShd^iI4ZLXpt=BVtJM{zwr|S zag}lH%%+=eUs}`!Di=(Jb=PxR-rvZ^pHi7Mz|r$Is`&Rxh11kF8Yw3YyLmgfy0~?| z*|tPwpvD6xOlPbh7c(#bAU$F@58OYTv@LT(oktqhT)mH`imS!p=-6tngJaWN>WY+J zv47&Z>`~FOL)w1CQ=Q8%NGk`A^=xk0nDTtZJdiGp1>;tm@KEa3?%1+X6y+{BgqtD^ zli4!1B;-e4-&@N*LAg!%I@9BN8kK`PSMoUzernCuS0P<_lqx=zB7^o6a!+5jxqk_) zWDjF7`79=-e;b9$D_Nnb!P(75wSh?5#@c@oG?eQNdmod0nv86IXCg>+kxNzZBzRmF z-{+ZK{PrHO?1y-%=4su!n)rNWlthUOD6ibhO9?Mj+OS^FX)OqW2xQ06b#i-_y`x5* zmDV*adX<#R2A)>s%Zs&G`jnk^O6w}bedL;{k!(Z}5dK`sUC#{A#f5JoVKNzs0WL`JgXgv8rG)IGb=wb)1b- zhf*a+do8dIDQXzL2uqWKQ9S>Re7!&6xa+5+kctaJYcTU8?hv713vR z*dpyDDnn)pNTvak%t4ZmkyE{8YfZgBVe(bI%FzzCoVrn88BVpxHXLHmELC$fsUU27 zW+Y-$+EvV?VA@OJ zuJ67!#`zB7@w-~`x;6r*?E3Yrb$8@Wxf;@LmK}co0LR`@Q7`R0bg;He%=REXt?GE^ z>DFmm@#Pxyb!0BJ%G+l3khlA46cNPDbi)9EgWADoX!h_$_AX*1xjh=zyS{7wK{}W$ zLWy?oTuwJ$TmF`t);~|~8%BQNtaU`DdI^jbg5qW-BDdsho?B@wPLZtWdBkUOX8UYr zO-shsJZu~>)SNAB6A;IGhlw7;{G<`u2xL8-gLl|=R^FAmYbmtM}>0RbjO-W?eDBh!}z? zK4NG7BZ-baMzESbi>~J~+x`n&!!sL!VsL?l$f9ns*VsyRlBWeND)xP)StG!b$lxyrXJGBKrW6rrre*QV-J$EhSGd~vGbF_-CmFYQ+A zEo-|O41=b%DP@=$Gnf#!am$Dxl~V}m0zw}*YkQ_6OnO6j%tFFaq4Vk_ttQp(>@ zn*j_s4|E|RBOO~EWWrJKJI-#NQx%Hxn(;cGz5KRuX}5#5dagi$OM$obM8HF+`wybj zMqZ*ck-?+TYpHBC_HQuYpO2}p(ARL48)4;{&NQo9w`v2{z^Pue$^9>3F*#!ZUnA=w zHNip8{M)i)v;NN>Z~4sb*^xohxOcH9>aQ+gdaKcjRp3!t-ID$ii)=NTq~uGMio^xc z%HZ=mC5=;M-}ao|r=^1~U~(9Q*F&3^Sa1V2>#u}GB?XBN@1K9L3Shla-yX|?wOcQ# z?%qeEQ(nfNP!)xKTw9m4Nh-F&VfE}V>!RzX1`I-8x!_hDNRSf7y{kU6=Mj{PTBb6q z=P_#urI5YtzaP!}rF25ZvT@+mv(i$dC3?FHWB_6x@)UQiUmu9Mw=WZD<07KAG+iIO z=cu-oh(ki_N$KITa-&M1L`88?ZYITrFmGg&bC?vC?4K$y#^^C{`l4 ziqa}c%!>>wLfvKxN@7cve1@x=-nKnAXxJkyk)>I;*q7dAd-kD&RQ~`NsR1=9NJyAW zbbCTpaVN}A!ahB{toWl^uTk_LQQ4Kc?qnls!|uU@ z)UoS<#$@xZZJfm3n7x&dp?B1E>@%~?3m}fi--0L=ssu=ks`}n$s&H3v*>bOe%HW!; zeo~EP3M&dhQ3CXbc!*O{3or@bW1m>ZWtYLv!7AoMOs;lm*?P1807jM4L_rTsWxj&A z80xi&a4|f@M@WhL55?~-Z5kG(k#^^MK2w#$q*Ic{(0ODmo-_m&_4Y6*vSltW?#K&k46cl*n1b|~OPMIN7+aDTd3*e&dOWU|1(g!F;xB_x$(_b(;wcQ3D3+B2H1+<3CiFDrE# z?QEVpvpBleQb8S#81=5WsjFcQ^aIDU1cbHYN`o=5Ub2gfb zlIYq(ujQptt&(vneQYr$2v4LvO<>A-3vk71*xicFMO(pS{four?YKhNdZHF#a~(_V z5F7xLgoCdU>_DGbBbyHEds5UX-gl6+eNwqVTg1`V@UbOqMP)tE%Up~gL%AEGoQRB1 z_c9<*otww`E$2MgWj&i<*|JTFabt7H6aO`3xNK07tW9-m5ffWv<;?^+jFA@hZ!sh+Z^rpwSJ$l3 z@u!ZoJjI&$>kP@dkYkuXxVB0Tp_&w?SYa8A*)n7V6scc$8Q^?s{yx!sZHKY`nze6T zvy4jr0Cd-AP@HXcz^VZYdutTib8H;Kg4*m5xTGY7oJb8b#!JIug2oQD8#?CVYO`x2 zNiYFfrxPT@QT^iDN10SMJ4gz{u#EE`01h`P=liwAc&gaFBCI!<{mxZgsF{Ht4QeZl zkH&uSB$JQ7ZnHlY^B<=>`JIOgW6FE|yxn}0a#a49DH7A&)uzxCuET7{Svtov1~W4; z{{R#6y*Arp2CMdEH|k;|vXFfeV4{MS4?lmr$LBnK{{Ru0`+Uo`TepbA<2DD}NMrF? zOmQ~zWQ_?@-ROyAkc_~P+If`3{h+_NkAN#b<9$$Y^gLLMd+k%dGZj;I>jJe3sq6Jm z3TpM&f{8F%NL3%m;3)fy$HgG=>pUvk8*hl>b$x2Voh$gxgX+hw2l973mulaMjKg^} z#B&Y>48S(vytS_7pOD*^aB?@YM8Bd=J0D{p`k3*O^`N0ZU^6hrF`S>+pC5k9jy3DM ze#v(eR;IP54Fm(7X3I0#F-VcNOSJtmMaD!yB^@WEPch8I`~=qSaaUt*D)mqFPSIcu zxdF0gIQ-B^e;X_uOv=yvN9uxRKKx5wJTK;t8SGe#8qU?@eBKRJ!g97V)bTke_JPqv zuBC+x9D3Z9wJ`!i$inQbdW@{1GHsqe+p)B3+S>BKtwK&giKmH$7Qgrj$tAW4))!h- zEbS}x`uUC`6*B=I%6OkL9zVhBn)C9xyV&&xXsP5HY+ekVGi(J?!jyw-377~7EC2HOeK@z~Ah^!0||)nHEh1es?sE{DU92dS+$dDQU&z%ZCQiLSC!AZxyeshkOAsv+ydjg(}U8J zjdcpv^~#tFL5bLH`n@nXYYkXkp~MFXyq8Qoj$mM6Zs`E#LgL$?YgmWs*r~<+MjJPY zru-uBR9K%>P_pFKLj#!`H6{W%6YO7Z@M3e?0%L{NJc(7*C}eS3Mmp-Nlj`DXS3Evc z;#dSTQu`)p-B;jW-v=Mr&mYqJa+=;xA8vLB`GTEfd$M_o7V?%aS$!qU1sca)M#M0L zAz~b;l`pn4+p1e1E8cJNE&~&(&yRP3qle9I?>tx3@VhlEOn{4S09a&7TBL-CCDHa_ zDg@aalti|SzLAYq8&!$TZ5aC(O3C4uQuWJq{`lxgJ}Xkc*p^V{ys`+l~sHiahMG4blOFG91?-|-3nyXhez>)7(@Q# z(91Kxgooxw^?RAe;u60e;cfD$b4~7jmkhDfYzoj$cm6c;#*9y4gfvY+j>P9xP~NY&8}bU+Yr&ai+1UouBBOJ(t&j1_@jkPm9Du3EcX zYuLQJ&1{A^!N0}?RjgE3%9l{oiiV9b`Be<-AAD z8xlPK0JvDHpY%@KtZKHA4X0cEWZcnY=k7+^L0oRM2bh9|Eqy15?8%?RK*npxJD#0K zA+PweCY+$zT5-7BH6#_1U^q@z+M^&fWg)>bEZ7x9%8%Ahor$>V^FHS z1PsUmV#x^m4hC!ztg?6yKn;&o^A1~U+cFcTX_;GhF*Mb$6B3V2X1(qDvVUR{m{U-y zumD|T1`K9rr2JjisO5Ch#$B!BO;#dZ`eZ29a-(>f$V`Qi z{CxaZ#Q9pCj}+@D#_RiLUoq%2*{Wk@ch2Qvv`|zmN}5Ml+SQ>;mO{unob$oVNIld4 z0IA+h+cG=S=-_Y|&17z2@YkzPKUDTCBK!F3Y9Knw>#e*DbeGRD2Ry26J|fz84Bq3E zUg2jr{bN!V-^DmdfskUEY=VF_(!|QvCESnI5eC3l5GK+1+cQr_^6I}-qGBPao z$QLm`Z|knzX9TNxoaQ?%f*pFyz~vQivm@NU5| zOB`{wqR6XL;G$thX@>&cG0NPe{ra%tPp?!?E|xmbI5OVX8|}HP^_9CH-_#sT%ts?I z5V8LNwg9mSm>K6z>WNmZk({<(w!ca0E613Z@m8#)fwhg&!jT_aWqrAxW+$w3{YVbg z$xl`#x)-l^{wcA?e4}FowC`V-s|($gd+kWz2~X3u-q1054-d)-f@+vnB?jjJ~%C4@ys*NLM{D3-ZsRN({5cp#x;^kWvP67 z3?VC?eS{*_V&-36$yC-~Xq{I3L0G$PBeOO-02JbxGcaD*0sb~jl(Yl$l3-7MSuYjg zGF52f>dmY7G3d18&$OXe&6C8-3hK#h>_kLn6C@GO5fdClNB7?+RKikbk+JzpUC3gN zpeHsNOCHNhLkbxQrFxR2=F5l%WX`#@GXpTlGhF-!fAlq6{X^NX7V2tR?lH}{DxtVicO_Q{LDYWok3ve?E9Fm>8HNhe#z*-dtI{mR=QSZfsU zp_EFO1Na!nb}UoJcGUMg_m3=C@*kEkXN}t=S6>~3#ZI!;3$kH+FNIn0}GWU@zNVWW!@`rO6KHrPgtow}94*iZU@NTMWq*H{nU z3+%M_ZtTE$0*+2E;dJddahY+{tmZ?#q{r4$D^QA6SuG-$rhc3ylg(h`sX+1YezD{H zzC|^BbE;;pX!#Z7?PIUfu;NrX0a#@65sj$|O&gMD?_AA@-kv(*oSzkoP-VXlr@wz9~3| z9wO#@43wf%Xy8ytqh!%l5`Rl!y`C>Fu3sQhA0GD#yM_xttL5;+hr#D^*IkCQn8;+^ znaQGq=@C4DRtQ1>Jt*l3V4@n;#C^&lN%*yo+-v5xTNE0Lw=#BMsvse&t5TeeF-$BmWkHz|>0- z6bMAf_7KydU~~6;YpCez*)~d$oOKl)dIet}Mw2}~flzhA9>d_`eBo4_R?O8FFW62_CC#){ zasL2i#WISZWTrAASNQ%wv2oAk>yiR_iqYg8rXE?A7wdS}!qVAy@aAD`F3gCTDEd{( z<^^2HyttX=a2~}k)aIFz*mRt(PY;ce+Ao5!wTZ2f9OyiWo~Cv#E6=HJh?1E5ejLXU zAooi*n#^QhR|(_$73(Quj>bPIX~oy5z?lgID7}piun-{knzK!j~1k6pdI;V|vefhbcBHPsH=2@>roRcS|6;ub` z833u!mg4mSnGi!h#>q(+5<()St$5!ft>LgDUOl6s{N( zb*tule!sHoJ}zdhi>+H8Si3MwYYnz-%4-Ngt)EOe0{WlL;3e0*OZ%5jul6&8bnSTK zNU;32OBC3P_i%}u?^{X2MI~su*9(XF5wzO^n33iPx-4<+3Egb3T+-KT6{k{Oe;$#e zj^g$~5Q3XSGbRv~7yEwPb$pq9$jWD*fs%mE7Xxmd&aIBNBLFJKI~_+ePNiIY0UU}O zTuzmOK1ipun|-j)U=hJ~`Kt-!txHwukalQ+^UGay24j_+h^(I3wrfw?_k0bEZhe)nVlZ{_ z*?c1@UAd5AqtlO=TV^4!+f&$OF#;lGB?0+PZElXs;`BQG%`(0~?IdXIck$V3*4OPb zIH>iDAto@Z4|>b(BO`2@Q}~YoO}D3Oc;;ZJ*&Dx4R7p7I!=X2oFuuga+FZj{(=(PC z^8(2tl7gN_e`?st;__?8>^3TH7=k%IQ6B7|0WfAwm4~1_BiAt|s9PpF%q0H+xyX(C zS6HC4d5fCh)|I)zlfl}kBV<5Di#M2h=3+u-dY4F_>*F20*AT1@ODm7fs{LGE4*jHL zYuQ68%2tzMiw#ruk(r2*D2SMdn4V&I3C@x=wvQfb_-r;}o3L5x*E5;*V?_Gatq+&Y zXF)+q&8%Rjp>-$;f7|i+&U;Q$uu<0NTeQ2miicsD7gz5X`tV=PY&aO1DVEBV5AiJ`vQ5*=ILlrVa!Zpd1KxNl4*wpVf_5F8N zlEr_g=#@kX2@s(-@5C%3N@hBf*APYiQ_Pp&`{TP;);0_c{l_R5@fhuK7H~LgqHr$@ z(xOF&&oe#5+1jWtsS6|OCyDMe@J{=&S;6eM)75e|ZD#i^dcv`+#=-_-V*O^jBkdXV zf>#b{dk%U_3?O?<@$l^GStG=)nOgKEn0hvqK+r~2Ftxs%pjBCH=47M#ZKiQ26EoNX zVSfXMkTTeP*Hpc(T*)gPXA;Ea@zk?Qc0T>96`3uVR3Aw>=qym0N@gZvVt={#OGeA= zI@YPLSRyb(A%`qYp`@sJIMKQ8I%#aW_w0BgRuplS zEm6v1tuS~fSz=}WyI;a`EKn`18B*k-WzRtW07CD1D_Ov**X_&YCrw^ccDwyM;m)TrDUjnz(WG3MmCym4mb%Z z9?<5PwSW0@69zBZMcNrAjY~dJ(eYWfSFVt5Z0X^cg$eTusgq=1h!FweVM{?wD5eOx z5|BTHrQ;o+H%Ak*Z3Ve+H!dBVzE>i*+aID!6v!-oCa-&q8$!j$ESM6Hs1IcHFO~d( z`6j_sW-mb59#>dYFp;%m=~qolUcU0m_^4{@)mRGH**3#l05i;XpMbG?N0~5`Bg(pk z>~223ZHqjh)YHs#VT6OK*q{0dc_3!s>ysB ztPu)?rWPY)z~sglQY15e4%a7NZq4NVA8@6sV`@6>gR8uL=3)`gV`Z1$Sd2^&K`Om) zn3#wbmmd{F1LNk@z+t?9`fs&a8x}|1W(!UB~;V(d^NT|lFCTh5YFxXb2fUl&;O9b=fio-eM*uL>?D! z{XJ`09g`PF$9sj-t9Y{1a(dH0a1&M9Ugjkdh z-Yj3gS+!UMGIA?YNM-|oAL>Zisp6YBnz_|q)St0zw?BW$;~AD#IHu9F*aVxPOLc3C zSE*ug_!%s{gA*RnQO4ykp`F||G4n!PILO3}T;@nBHr;2!T|c(pWpfFZb^?Jm1CZH) z>(q=S!H&KQZ_Q@&dq!4<{j*cUiZC>?^z%5XSz4sNrC{9^VUul8=fupVluPQEk8f-UM$MuVdm~%=G)T;~oL3R(cLxwMZ);65K?*1RY zlgj38t}WP2JUgQuknRJ+9=E~w48_ zb1Q54e6#G~-)0CPVJ$UFBtd0APQeohcTtnz7aQ_8ZMMeMM;(gu9bKFKPYt(>usY>< zULPYd5X&)a85S!0MMgrPm}4BP1H{Qp!1nnOTaEkSPfuP0$Qhd!GGTV+P8)KyP$2|` z1ml+HWH_vmDOqx$p3>nC&;$y_A2#GLSr7Vb+(f1dFXS`FU0~+fhI<12(mNAg#l=V~ zhOCtM>(rAg5MRKjr^X(1)0;a>JfxlG#f6ivwYZA7Op+=nMrA;7r=Zp+1ahz9p3}^c zoJmY2{#mBXh7&1KIi0gTgMMpb&eg{5vsP=>vIjOQ*>P8@HBKRl4nXE)s{q9DG4YmcP^5{v;!_o(rK)E59O^B@Bfei$#LfeZ;0i=S_zb z;;7zmIK*kRa~Vu^e1(icX=?EMG@UjoN>3Yzs8DqHke^+P&s>KDMKUqgKn`nWrMga2 zBWqa7+r}G7b}}}Vm(Oe6VQb}!gxG2>wBl!{VzJ(4V};M-^F9qe8`W~z9oH|V;op*0 zLMc?rc|x>dhaRA-RAzDb4@}Q8#_>|YAS;!`u;+=L9zLn83w8&dS0GvI8H|f9P_)R*ZRqqi724Zu z&(h6SqDZl2X7BZGr6RfJU!LmeKaWwk|jJL zO_(me$r+!&=a6*${{UOXRKe^!ZeLRzk;OV#Ont!0?Rf>Rqt{+pX=?ydy^Il&0WgU< z{MSEtV%Kf>+sIpHYQ`%98KvWW)F&USV-=RUWWA79Y+cV;k3!nU0+q+QSp!-nY~a2o z=k%<`M}5_B+I9~MtAD%tyBOUID|Y3@ilt=*eDDn#=mvgtg+g*`*HmY-aBOUqzmwwBRJ!%bZY+b^A=yoqvPFh>`;N(_jB)lYrh3mMF+BVX*$ww&)-1n9z-y7OF|Oh4#z$qbCHDimpK4c zi7{=<;5D3QjWK!00)1T)TW$mq?R)MM zD_p=?KcA#cFyart{je&E8J;Kq0ACmOy}QNg+))|5`x(4sXkplOD%1LRR#n&Jm(Wu| zWeQPqRJis@wr7vZNPYtrp>2C~+Vv&=L)tM9k-eJ9S^&e;BIZK%N$EA=ZUF5OTDzD( zm=k#pei+^D>YDvn4?1sCcOjcxR>o`C@NgCLo@1hEs#$j-)1Ul^gNfvpAD0PRCTqz1 z0Y>Ef#v{g<%zaX+cB(E`v!A<!aDKwGuK-=3-!z{{SBscI|gu@l~CIr;=As$aJ!3?{8sy zA$wJI_wIwWWPb``1W_t)`($z>$u55qBK_Ahxo+5_p_-c&bNJU#ckGq2gN|cRb7c^` zl9BZ{gjD;5#W+9^#ECbKelk(b=-R$Z=x~@_i)`6(D=C^7y)N?NyUe4jQj%ELtWnHz z*PPgxDdoix}*<&T_$vbebCPu_{SQVNUqnR$1fNRXeuvSnqDOlXw zbI2Hsj=zS`vN;?B%wr*^(}gD%#}{vBt2JqhMGHTXnGF%1IG_BASqd0i+1)bETSVJy z{Z_fc{<8^_%}~YJRE$9-cXGjGue3w*Xjz`hm;xc;VVXQH0Gj1+q;Qw9Op zE@C~1nPWb}zyp$k7|%F)2L*^urMqw1-b)n@YASsOa>hyZYbs-)=0_Nyuzh=a;q0+h zbJK^Yd6SU(2Q!KBW)R(~WAOHmWTq1T0Cu$}XFPx?{{T1HIU-QcJqj)})=@D8Gau64 zFUh-uES4_qwU0p+#mzM;v<`DV(u;XF%u&WRWJF10-;$X1I!Z-<5pern7iytr2tG>i z`WHoWcBLgX`S7l&p5DX5W92m0KiNT317 zF+9kS8K$nE>I!hxDZh5u>S2>%WEgE{QOO;O6wC1tQ(sQGTdY5iDwZsuVqkkj3S_pg zhSuATjWhj6<{ZWW=FFD57)%l{16IHk&45Cx)ArL=QISi%Y%VdC|gZX_;n3{B^dq+P^g5$3+$o~Fn#O1tkfypx|ubte^SmeQ% zu!_B&xbPW?2yK;%B>w;yFTmRa&oL1ke1|7D;k`d#ZV!0VH(ifmo??~D`yn;fq+m92itlEw&>!b<)|=(M6@C+}Xm z;y&{XE+gPpGM-Vli^&C9(r@FeygJsYlgX;H9GISEYpYsp+BlewWTis`&l52b@f%_+ zuJN6%lic%ODbv+WlA~cUSM~vk;$l9a?5ryP0O}0Alg!5sKX?U73X8 zaD-FD3>4I*Tv-z{JWThFr5twqd<~fmAN2a{oq8Kb>MVAA$yRVD9k%SX_89bwVnRl; zr7j34i2nevL))xO!Ax`UPbItPT3%Q7tv5{B)0xT(EIjo3muntG2mVHuUa=Djf8tdw z4zWCxd~wn&dDk?fuZZx@CrrRSg0-C;l5kZV$%%lTm1&+y!!yLm`%)$S$1(kCsoHNIYaV0Dc}(@>or^2O>$m7l zOmIF(&36wP`7o<42f)b)%DRfkxRIZi8u~<1uJ`TPO#!$%t%`|m$yWXPfd}j*aI070 z5yw4X7O0-nJVZ|%fxV{gwX;}h@mrCqBVd+c{{VQ#>&LF+9^;9!mVF7?XVm?dV0#s4 z1NQ#_moqc)J9w*c#A?}#I@g3e1UP&q-t|p?etQ>-HDpC)Ee8P0ZqIe98y@8m`vu>A z41R0cSLK|3X6B=y2aRh@v1)DV$@=Y-E*Zyj7N#qvt~AO-rh8AOdrZhoj8Da1D)^gk z!(s7d)$XS}QHjWnn0Yg}|^S7kN{{0hh;@%x3`7*1!oC;N^!+Y_>+U`<%2wR6Fil15<{Mi@ zhu9eynN#vvN3>L7%yOmAVd8mAME%t6;Akj=5EkQzr7G zQEaY*Uug(siAPz9f-(EYz`K8twtN;+&dG_u`3njO=S z=3)V?b$7teWv;|Tb_(9Vir;8s?`qyl^WJ+Aj=~5|K8_e^Au*1FqIviNW5wF064P_uO~_M> zm9knG?EXg9b1?QUI9JowD;|{?Nf+lIR#1G&OmV~z!}#MzW_8(O)3p|u)K9x9;QrANL0qHqj(-0DIBNQ4M;3WDc=z=4uj`nz9*39QacYMJR!3=wtHUgm zN%K6toWyb3BcF}9zXxlpwO1qLoPp(RHbc;#+m()`Nz((=Rw$3e2up|{A)mM2Igfyy zpWMGsb?rJX?ONvK+SbKIQxz3xV$|7@;Xb;t>}<^Uh#qYh<1xp>Q{>%~FGMS2wj5@e zt|gEKOC3tpc&icpPp+!w*X0v2_9}nZ_4l8aO2c*?ifs6+ar>-cK&|Ff2*sGs)sVf5JZ34Lir(CK*SSDAUNli zd<2{=ZD60?`E7a1cRwqOtE^<}RJq8+%OyalH$;D2-LUzdW_X{sBz9eoK*4KN>tysy z)ocRZQngywqZ$h$9%d8mB$yl&1c@df`H7hS0N2b2+w(g^mrGx$ZY0Eso+hq`2E zXzM=#D`nhwMd`6)7ocZynzQCmH+RgXJ$h-36dK!3!z_JEWKW^4Uaw@5`+MSekBOJJ z-IvG|ZtDB)y_PK0(3@3DWXe?4@YmY63DU5diuT#N1Yi(wGhuK{A&wx!dma0Q z{R>u2yv;x`$!%K^9Q_YG^|v1W4RWBR%o zosNTwf{H>4RbGS$If^)rq{c;car}U$5D9z{$vTEM z9V+!+O+_N9TeR_PE+tAKo>w2b7YSidIWDm+|VX~L=c{>ptg_ZWV^$#T%Llztm3m#Gp%WM|xf%@FF)+2JMf@}%QJ>CBR@#I9fkBm4hCi}P7a&>KYH;J#A zBmKthjEG^b+FubJ)*&}C7DTxy_u71q_0a_!a2~GTt^S{Kc|RXBchU7~+b9Ngc-&4t z?!%h3Y(y0BVxWS>hB6^dhA}cFGTu0WpMa}V^u4oXCT}YgM)p0nLE8vp=-gb$j6@BU zRy#I$1oa@aHPJE5dg5Xy=jJQKnoc(``@7AbBTm71p)*-Imus~%^(072pbaAd_rx5S zfxY0<0s%Po%E8k!ym@~oO1R?jJ0`D)Yx(RzauGN$5@kco^9krKu#0zhmIGe<$TGnVe=H6->luX zOyO0@xJsT(eNYsUghOWqmNFf;ynhXyTcXA^&Bd0 zW}FHR#>NXxq`4xLb%cNv&uQx)ZmrmF5ad1fa`~)}jdlR8*iHOpY}2e{aFRtZXJ&rVD<|%(boTn2cxvwK43V4k1_K5d` zqmEn=@J89;ZxZdd%E{r22b2o%+Lkc60!;d&v`7lbSzU{g;9)YNkL&IC_y9Do9bLgG zIBU9ZkY8r1y^-|01{4;#`*Stx)jEqzOm!jj2z|MT{{R^H+U!=0x%X}UE8CxD49M)| zHS2kg;(?E3$-^xdZ?_{n{{V6L$H}p4{#NjIE!mtNZ1Xx&3?wV!nA)w@{{Wz19TyFn zjj0`ErfaPvo@c7zb21JXUn=gl@uzOiK8^fpMEV2sK8j<3~%rbNHH3#$Bp+Fp6m^E zqZ_rp7{(BI@{)I~kXAoca zJwf;H@>{RNGrIs(@ZEjGAFXSo+&(`ltfQ)9D$K4WuSeGd#m#SWP_YOoQsJjRn?fL5 zX?`W#cG8V|Tf*JRXN2mzKJ~5c#9{ep<+L#5zuklTRiR@#?v4lRxGG=6mz5>Sk_$sItw<7_@3534c5UfrCfh_&s8Ot4WJ{QEIX1ghu_M6DjCx!4_75}c`Lk1$`7i5LOGeP0 znxOGUPa9}%;xl+#1qIn}^oy7iKa{PI!czbyRA&*)hFmVQfj=Q^<+$Z8<*}LT71vQ# zU+JY^B&uTOB&i_19bGnDYZgIIu}m46CXCI|KeD2(KE^F{)kd=V)JhrAP?#tdA6S?W zAN|aK$61~tXXFQ3#Q6gwgw1-W=95P+lf7usUva5^6BB*4z>ygm-qpBeB1<@E{$UgN z%yIK1`2);(wc6IUT_Cd5a8{=Wn+#2=^{rv1QSDvY&7Ry}&QD!&M^e({Mw+hi0#tYSMFdwwfldj-d3^k34kIGs0S$|rNRjBT4( z%UK%thCNvNRRFlRQoOcf*Iu=m7WSU9aPH;)F#;DC=1IcmEL+>WQM}aLav0Ygd}_6( z+zR;OG5#ews~Qj;#bnzo=u9c?$5n!b8+qR}k0#^OinrxmYbml-wyN0dBTcmtQN2vB za=R-7WSvN`se6J4yMk5-b*Zfc8MmH6WMSGUkCxNeB<7VDNEMy|Nh$8Ifw3xYLm|R40 z+=e0x;LE;S(Dv)J>S`N?wUfx?7OS=DTgf3cu{FE$1#^aW6X-s_NW`{eXY9CwI5U4+ zrdIH3qmypKn6qTEIa{k0@nWSe7&X!>nFJ~=y0=t>@z_X=jJY`lYueUEoaigq2_O6$ zJ&aC26I_NZ&w+j(O`d{@9s6eqlk(%m>i5%x1-x@(oI+7AawJX{C%oi6&n*tJLx8u1 z?MEd86)s+V8-|w<6!J)~2({FgKlkRh1rng2bAOUB+UEMFZWOTVtB%&JvdxU$67*fo zRqrEeusS38Dgp`RFwbCED)Gch;z^2Go7*3T>W+;b3gR>Cj{g9k z)Fuf~BQqkIh>4o!u-k=9NZe*knM@w5gm&IId$)vcP2w+YOY-9F78@sC)r8h*OeO_A zTic)mh6_8aY#ST5jq59h!(lbtkyWFOvTLnl8FCV1ZzEHt8Pj%Y_o}I zK?hH&savWkpJ*N;VTqY9`;kA41yf<(bo@{jA}yxv_z6_erlPrYn*_P_8c-&|8IoW` z%n$b;em>KmYTCC8uGF&{-;A!-1ZAOPZ(+4woIS6nWpMmttk z>C@1DP+Ff z#5&FX&mfKqqiZdOu6Y?Dl3A#2elpfGFJ@n5-u$<^<|?o2AqmFYrn~jZW9nI3HbS!s?G1oc&0Hpg)$&+}l>N6P}J-c=?bX+m?*JQ3TIqmjaV56_H zWWK^<9|3P-^0Q7hEuR&+zZ0~cEZ1ujj_FJrW@ddsY1YhaST0xs52lb|2U!_7k6*wk z+@GZRLs-A3>I1J>*RW5;WvW-j*~nbGSFDOG`>%Z{STu!utXm=u1T30}VoC&SK0q9x zH&wB#c+WAb=Be#VigH7Xq=r#Y&DJ673quT4u>ivv{{R^gk(em_mNtExGr9QhJ(=3I zI-0&uDSdlA9FA{ltyrqCpko;7FW`^vy6FKh7-aTf5JZs-gG6I?vcS3ddOx|=$w9dX zo!e!B)AEqwhB0GYgrlJZ6AC5>VkUmmGruI{Hys=3wH-HZ)wP;?GSpeIrGN_6aec@_ zEj-$6DF+gU8mL?oW)v|4?_t7w{QbM@8qzU3?yQZ1j%vGY>XsjC*<`Am4_slXHO9So zLAGb!*#HG_MzMv&O%F`a{H>@hSsVC2A6(qGXA&}7PIlqsG8sFr85w1I$W);et0YcV zv1pI3xkU3PGawri;Jh~Ho4VTHzgMW-lu&MeW^)eaTIaKi?{+X@Xza(&t|G(;h$!L) zf2d=j`g-xNj;z+&cKtY(6)Vc>Zo1vC+A>twW5gIF2w(wgKF~%o4CZIs!-g}*+nk~;>zL@F zeI+kWUpjpbdJAdFTmxobA@lqld>p=A9!kai&? z<5wS9Kg_}(G<3CQq}Em9$41en+vsX8EJKI1!+tPD$TY)22ek~TV0az z89r3Vh$sd$Ti>(gYQ?=HYu#WL*iE(U!LL-9<`0NNkygV##U%zp(ct6qn4V|N{bLiX zUyP1#8JqD%yr){~Zjr5ab%XX4i9X8a-`7NYB)OWg#K`_b5L5A6#(G;eOf_p-&ij(f zF95aFb_XA@Wa^VB%H|=+wARIn-%z%LC#pd`p@K5F87O?jYW^P8{glRc_z-cYSRK%wG|Zv}3K!EGAWV*W;wEZMO8tgIs8s9YMO)zhhW5nXpWAi0V7 z7Ay;VMSC$A-IG6qxoZP#?KRk5RVdB1eJj_d+R@!L>Q@+uh0JziLS{RGeCypu$L4d#$>m*N$QoXyjegC(Wvo)a zc<4Tr4E|WM!G2ras*FHA2(*3Ja@hePF<`USVKFjC0j%$P=0$o&ndQBk1%<<+a(NWH z35uh7<>_apv^tG7RywB!3}F33jEXA+%D*TtfEOj?G;3Nbb)6$$@@59rWU7sfmAAhi zRoN?N`Mhag_OXNPYaJf6u1*K2mk~24URmD!l~Y`~UmKW8F&hRMSoZ>`Q>4KPvj&9{ zk!H)4E2I{C6OxWeD~Me4^51K~)swrH7XAxX+_D%9S>&TJn4FYl<@X8}k_&A+ZBYaz z#2~2vQZHxZy6d{MS6dhV0BvPI zQo|o)fJ}hI>ieFnX*(vL`g-z)FKEj9DPtX!%VP2isy}u~MO(6Fq8L*gb5gRPe~od> zM<)Had1uO+pNn!hd^z~8nk!VA3vNqb%GAk%-Xe)Ors}JP*!DC|Wo>~Yl9=LW?(3m> zV@2{tLjLKQcGNU#;+ItF8*Lk2 zr;Et!)N+_*+hyEd0BkhvTq@NVF!s`9M2P!Ib6i*=Bnu`K$KmS*^dFN?BVRq_y{?9j zkX9{t{B1|;ji-;QspFu<{{ZAyEf61JeL&9(5Rb5OUA&Qk#OvCYM`F(T2NSYfJWaW+ zj*8avHm+G91y_XwvJO#l=BNbZIsr%dM0{YQsba_*v|^c$@x611v`N=8e@~FP3oaxa zKv79O;7)yOQ;H@(?hNx2Dcx{hD%ZE%V>SN(AnN$caOTlw_EPoKh0FKRUAF>TeuEQY z%&ruc%rIPD_a}}>CO!oNR`FKVds?Z0&g~1qV%Py^DMK58#g*F@M!2X+O$3tY%D?~u z0G!E%K}mrW{N+Yd#gQV38sR4_So@+x zN7PdxuKCBvIOjhhuIDM+p`bFBA+%+}k|B_Lw5)kDhg(AZv@h z8!wx5t-m3e%ep0hU4goEan*)qYp5u>71WuCX);;Sr^||apID!OQ*_xpQGZ)zCu7(4 zt9X{F$+!Ei)pWJ#s|i}=i^wg7UB?{tSga+ILjw^KKL+T24cPOT8v8!mHnZ8AaN3zY zcO#azhSYUJ^o3})#~W=7Otp{}3RNcao6{6b( zQ8G17O$4HuBK*JO;BoQ-d~=WS&8&W@;+yv07{;Y*QAQdb&PNCKm)S#RN+x1DT*^ zZ21Sq`mP7adQ9n?Z5@0E1ya(o4Yzgm(d))gu);>l#?fD+_S_XJ5#1imNjWQ2L-XXh4a*bK$Q(eU1DYtwVrz-;6$ zVsfT*QC#~P-s-IOqQ|vm{A(c+nEa+dAgAW6cE_{P!P3C^(_qyv+{AI#&3qlxWk4s9 zI?g~_X>ztOq>NTW2FFhW#6c7Sr?2c-Cfo6Nc^(z5=2ZN}{DllXW?6KQm$^RDGwWrs z%LHOS8j{f%7zOYfw2W_)u@+I4zKUC>wT^wl$7E>P{iiEq>SwKtp{De*vzplK0zqL@ z(Byyy9S|)UzbJUcWA%CMs_rj2S!P3x%z)Ck)PQ!8Og01_!ZDtrlV>tf#Pj!#%A#tvya{kKS&l0yi)Oe^C4o1kLS+((tNy0*KRqjMCrVlcChTVjPG1;gJ+ zo6vb@PN4n04({^*03X+~EsHb*WPVp0gvY#L29c_5WKFvQ zQlgaudwB-i|Xyx@sOdLjwJ~xt$_oGWc~&nr?1{SaWWSp zqpYXmW0X21WZUzNa2$cA12x!?~=cf%y|by z@r|u(B%Fv?$Lzb6deW-mb&^wA_0<*V)fg^FN8Y;&?HqH-2{Kf><(+6TGqbS(G}4N=>sv;5>skFvVe(}d;$Ca0Fi6IT1A@I56PIUwbTkSPt+V5$@Rr-c$aGn8GO8w zm{oTDguf{$=18VyXnJRg^m_W`i}~C|t1s9?>VX%oIj3Ao4r*FO_BZOd25Y&NcF{zpX7*G4f`qh5bs ztjB~%mNux@66(drJT#^Rd6cZXF@~T_9k0qis8;0Y;{2)O{CYL_21_Gut&gX-j**XH zf(E-L;v_muwZUQrAk0LFpt>zichz^?x#KyS6Tw*tKs3e>xbtvyvqOmT+|zpsMd=eSy`#F4GN_%=eFYR(_u; z;zu1x-$waYOB$BJWsC+;);hP@)fLuDtZ+;FZMCrZQocBM3R?&7c${Tr#hr?S z8BY}IN|O<*Yxa^-7c&g&1`Kbg#$(yky;2Sv{;Pq;j~wOj*kNgB zv5&AO;()A`)&r7-xvL_Dk6+}8h1{l>q3p?}h%XL5DP%dVgUQ*(F5Wi74h!nCBxhc~ zN`R?0fyHjEX{?CJaso@*Cyw`@BY6VGMy{)&XfT>(kg|IHvSruPwcRRQKEVnsqD?j! zRtj3D8Ax(qJxTuMT$WC9-c8-JUPjI0ten%Q*Cvc4MNh^?CUDaOYw8#T$XTdJf*00j z?Z7Z#-ERd;6H5W)In!~?$Ev*=7!1X{^P0KoBOy(YRpf*sf5N%P-Xrb(!ta##>pI3w zXOP-mv@0YuGwEI>y3{g_DHYR11 z+Tm(CRQi`)YzlqQQhgwVc$WP70~?0bJawi_OGBpv92WsI6ZW5h5!ti5 zWh>a+t~YMf17mFu+EaTSarqO^CCxsFeMp6J#SzP41U$$KWjuX=T=Y$QcgfVpV&{Em z)6|y%fX30OT-_aEa?G|Vwqd_qm6*Uvy9-7R*nOdbqC4cBgIwK_OUJC#@>>e)qAS&l z7s5Yh3 zF<94XsuhHTkF1)_Vlcz^E@B9lvj$6AewE~XR*uiI3pN^$%tjkELiL6kP`{{Hxp1(R z40>&qW(i0M2y#**B@rF%=>9p@@m01I_`_DqYZ~@P=&9AEt>f91v6wQI$q0I<>(mA8 zQsyV$EQYY*(5Pq0kCiX^6UR61H$UY}Wgy#drAsv0+UK=O#&vkA&G`nZ64+rXvhG5o z@d7`$rV~1JdLBpeo3W4cEN3y;y>Tc)^=*GLyj!6n2um$JWSW!ea##}`PDoVI0`kEzn6;8B{@By!lVS7ohLx^(XBCIUW$Noq z)t_$0TOfhYVQpH*u}!jYfMlGpOqonpfv~ni2k$+Lp1%xW_ZiP^XxDWz#TIg@o<$hi z`88O_T)e?9jS{ON6I!yH?f#+O$EbQiPj7+m4OXRk^zi;XpCn(+*-D>(B)gZZR;Mp# z^4t-;7^|o!=?5+Kb+&F&=s={C5S0K=@g}T{e;fzgPx$`;p&z_;h@QN2@FiHk9c=q@>g032cxhsC z_4rL%m?{<&H@?CJg6N3q(tyG+DUmZ+VNIV&?ec&-4k;q9CxR{dS zYz*@!JcQ>juVVC_LdI8Bt)&&^%5nI_-qav%w;*=KYpiW6Qp)TLCOyJpdc+ZaLlZv@ z=~^E3sOvVcdd}6W-zv*A1?d&^8pJ& zq*z7R3z7)nj0%yJ&v^aVTbSFmf7MUdD>op_egzQO#t;dx;w?mqYY=_Jq}&owJzzMF zvjE!iURcmHYZ@+JZ>3KOTLV>AGfPBdFW~FgsRdq*#t4OVSaTOJivlcw?6y0s024!B zlDF)R$+p(Q)zndq!|7QoS#8K~Y&Dun1w2id)f>bT=f#Lspi?Bkn^ zEaRzUtmM>s^Rt%<$z-umX0DLu!yhun!(1#>NkLhH{{Rv(CG0NcpWUt&tD#~ajQ#U6 z&5ss2F)w|3q(ZvY8&F8N8a}bR5aIy!!XRQrgCrT_Be&$U_A>jG4V4z^MdA?G)|%_7 zlD#uZ!%DzfA~2^;t<@}`)f4o`JP)((cCO!t9BVb74tS$uMz?jAars72!dOz4QTRG|S;gg>y5GaxoMk5|mCaas_4=>s1yD0xRt*YJ zB!x!U_gON7;6$mzm&sPv>@O*c*sEZwN^YkMg`{}Opi?j)xVdqPxoL#L0pLUhgx-1= zX`g_rl-RKPzoQAQX71+huq)Ls9#F#M@%5>9E{v8uz*wXvU`){FF1*3O2qsKsL}M@L zdwrVPHO>26z-jvXV$R8iT}D#1Zy{)ywN$+06~Hit9@`#~Tm(V|Mo?m6coCUrUYR>OkxC62z>Xjff- zr|m4P>5_W@VkSXg)d(^PKN&MxHq=%tUGjB38&p8B3ckmdscUBvQ3-njTaj;~qqJwQ_HE-R@4?uAdd zz=~oQ5Nrn3`NK%w(OUtF#b)w&+RK&L$I)`l`36Lk%~))g14<$n9mP>E;9z0`XRw`v z1?C-tYuB#$=fvvqz3i@Bn6QIrCi$H^1KQO8%sN_=Xn5qvMsc-X#u!PQj(c9Lekd>I1-}?yzHIF5~Es54Vjkj61TNiQUyc_P$ zFsRmDYXm6u52l;IRx{DeVG9GWM8v4ZUX!Hw9~`vj{E;fxDp4h~1&ZEEG3$5SWUk7% zU2|t99-v&a)*Ypsn>Y{6uf#NWDtL{%ZQ1VNH2RskwiMhpOCZ-9#=VY~Ygn}AvQh?+ z5rv>Wpx|Ugf&bUjT_q=T!89-7wl`NJ* z9orlTIXiR9>R8hZM~~Tt)vXh6Yc%q-hXs#|@^W%ktC-8pBR%a_t?Gdo2T7F3tXHQE zu3yzD(2bKfl6G??T@}-X#X2#jwW(Y!4zxl~SVAQ1J-xyKj(JQG7{tss9aHz6_P>m@ zJ04FQZC8HuOPQ*bGa&ehp~Y*}z*Fmmwd`Q4m|TEJ%&~A<@OA$HQoFWd($6=ov&;te5>dX1U4BKs}`o_DQg0ITnKkJ6cYuwAjmQxSEc^<}Iq`M<-sW z$kHk0h_k~ENa*&NVrw+#`3f(-BnUvN71yb2`HNR9*OBwrcYC3)DrD`#%zc_m-vtsjRdQvk7GRH>Q?F%B9>k|tu1_ERc zY&o0;?{6MD+V-rv^@}XByzUDWW^t5a$LXuZm-MYD0U>#+OQ&WcVmXdPsNCH)N?7d+ zY}YV&=0Aqjen&LdCfimM9?CyS!71wyG9>*>Ha{s3V0J0bV{_T`{G#<8gJ|*7?gF1~ z)URccWZ~+tefGlEo80Sr$(<5%WsjtE}_8OOq+y27Y(W^5&`sQ1b zt5k+UVtOzPOgap~^Bl;2OmCRGG;zC@{G5%b||=p!-tK-l(2d6ANVE=;+%N%E!}A$x7L zuk2V{&ScYTCtDGK$IV8u`~V_mEj_@+sw5)7gdZkkz+{&{0<%J!PaM}HDmO92(JCN9 zOInp+okwKT=!fi^ZQNcBtVgxun73ZLL`X!SgjjvbWMTq3 z$Mwv|-abRH8*hx2s$n&4;&)`{*NU(2!|ce(T9=TF*EOoOUdw2E5W?&$`$t$fjwE2L zd0SS{Gc@aX>&E$PR#z;eQVS=Cehn!C`|LO;lHU&Zt~DumG-vW=jqy@+pt}V2UTh8_u&+C4tiL%BO|Lj7C#2 zm&+ha4<|9lw5r2K4B|Th9GBBct&_s#AU<;Yd^(+62mNNiVzL>1lB4r^m`Zr53JI~^ z&8&e)gD24fn&JW?Fdd_y@jbC#K=3XD5h=uF^<9eYGU23hxviSDsOAO1Vwzv z{IpIImPZg*b06xQ_M?$peK6y(r;o$oEG(pvJ+3$<)kU(Y5^G2nGC?5=Aoa&Qf#!!= z*ow{@T&G5!zh0sjh^cNaNADFTsK9dq!3P(M7bzv z6A7kfRmhjf!SY=|!|1)!XYnColm4hG8A|yXG^Y__$MUx*B2Y<`*dStDFn@C~0$9Y9 z{xK6Wo4!ld@sw5Q%~JAFDFhX#B^H}o0V+OW7~GHG#+a8;DI1WE3V5pcdwBlE4PxE9oAb2X4YzETZ=o`! z?S<>i>RD7MBGpQUCQ2(Jn#pZN~Zjd zY0DVtZIT?PkqLle#h#^1jE@T-;5uVGL1u&=?t7-!Z!p|TR*cbG9JG4)f`wC?kj5

YWYui&I|Lyq+{(~L?Y%3W8Ynp!{LPI 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

vZny7;4#yHEESybq<@Ov&v-bKk7vSY=DOojS4lx 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 s_Qh_!3e`4 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

(oViFa#>=!zO>I>py6poU(fp0>A8- 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Ês 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 UzM1hQ20_F5;(3vo=iq<;*#yWzKmY&$ diff --git a/static/images/icons/favicon.ico b/static/images/icons/favicon.ico deleted file mode 100644 index 69ba194ee3db8061012b987b1661b769d2157ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128310 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 T;mf7%eAmEtCVksoCiVXSe&m)% diff --git a/static/vendor/bootstrap/css/bootstrap-grid.css.map b/static/vendor/bootstrap/css/bootstrap-grid.css.map deleted file mode 100755 index a5145bdb..00000000 --- a/static/vendor/bootstrap/css/bootstrap-grid.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","file":"bootstrap-grid.css","sourcesContent":["// Bootstrap Grid only\n//\n// Includes relevant variables and mixins for the flexbox grid\n// system, as well as the generated predefined classes (e.g., `.col-sm-4`).\n\n//\n// Box sizing, responsive, and more\n//\n\n@at-root {\n @-ms-viewport { width: device-width; }\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n//\n// Grid mixins\n//\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/flex\";\n","@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-right: 15px;\n padding-left: 15px;\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 15px;\n padding-left: 15px;\n width: 100%;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n width: 100%;\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n margin-right: auto;\n margin-left: auto;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n width: 100%;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.1.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name)\n } @else if $min == null {\n @include media-breakpoint-down($name)\n }\n}\n","// Variables\n//\n// Copy settings from this file into the provided `_custom.scss` to override\n// the Bootstrap defaults without modifying key, versioned files.\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Table of Contents\n//\n// Color system\n// Options\n// Spacing\n// Body\n// Links\n// Grid breakpoints\n// Grid containers\n// Grid columns\n// Fonts\n// Components\n// Tables\n// Buttons\n// Forms\n// Dropdowns\n// Z-index master list\n// Navs\n// Navbar\n// Pagination\n// Jumbotron\n// Form states and alerts\n// Cards\n// Tooltips\n// Popovers\n// Badges\n// Modals\n// Alerts\n// Progress bars\n// List group\n// Image thumbnails\n// Figures\n// Breadcrumbs\n// Carousel\n// Close\n// Code\n\n\n//\n// Color system\n//\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #868e96 !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: (\n 100: $gray-100,\n 200: $gray-200,\n 300: $gray-300,\n 400: $gray-400,\n 500: $gray-500,\n 600: $gray-600,\n 700: $gray-700,\n 800: $gray-800,\n 900: $gray-900\n) !default;\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: (\n blue: $blue,\n indigo: $indigo,\n purple: $purple,\n pink: $pink,\n red: $red,\n orange: $orange,\n yellow: $yellow,\n green: $green,\n teal: $teal,\n cyan: $cyan,\n white: $white,\n gray: $gray-600,\n gray-dark: $gray-800\n) !default;\n\n$theme-colors: (\n primary: $blue,\n secondary: $gray-600,\n success: $green,\n info: $cyan,\n warning: $yellow,\n danger: $red,\n light: $gray-100,\n dark: $gray-800\n) !default;\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default;\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n) !default;\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n) !default;\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !default;\n$font-family-monospace: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: 1.25rem !default;\n$font-size-sm: .875rem !default;\n\n$font-weight-normal: normal !default;\n$font-weight-bold: bold !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: 2.5rem !default;\n$h2-font-size: 2rem !default;\n$h3-font-size: 1.75rem !default;\n$h4-font-size: 1.5rem !default;\n$h5-font-size: 1.25rem !default;\n$h6-font-size: 1rem !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.1 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: 1.25rem !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black,.1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black,.25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: 5px !default;\n\n$mark-bg: #fcf8e3 !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black,.05) !default;\n$table-hover-bg: rgba($black,.075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-200 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-inverse-bg: $gray-900 !default;\n$table-inverse-accent-bg: rgba($white, .05) !default;\n$table-inverse-hover-bg: rgba($white, .075) !default;\n$table-inverse-border-color: lighten($gray-900, 7.5%) !default;\n$table-inverse-color: $body-bg !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background and border color.\n\n$input-btn-padding-y: .5rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: 1.25 !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: 1.5 !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: 1.5 !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white,.15), 0 1px 1px rgba($black,.075) !default;\n$btn-focus-box-shadow: 0 0 0 3px rgba(theme-color(\"primary\"), .25) !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black,.125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: all .15s ease-in-out !default;\n\n\n// Forms\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: rgba($black,.15) !default;\n$input-btn-border-width: $border-width !default; // For form controls and buttons\n$input-box-shadow: inset 0 1px 1px rgba($black,.075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten(theme-color(\"primary\"), 25%) !default;\n$input-focus-box-shadow: $input-box-shadow, $btn-focus-box-shadow !default;\n$input-focus-color: $input-color !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-btn-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-sm * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-margin-bottom: .5rem !default;\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .25rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-y: .25rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: #ddd !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black,.1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-description-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $white !default;\n$custom-control-indicator-checked-bg: theme-color(\"primary\") !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, 0 0 0 3px theme-color(\"primary\") !default;\n\n$custom-control-indicator-active-color: $white !default;\n$custom-control-indicator-active-bg: lighten(theme-color(\"primary\"), 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: theme-color(\"primary\") !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: #333 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: lighten(theme-color(\"primary\"), 25%) !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-file-height: 2.5rem !default;\n$custom-file-width: 14rem !default;\n$custom-file-focus-box-shadow: 0 0 0 .075rem $white, 0 0 0 .2rem theme-color(\"primary\") !default;\n\n$custom-file-padding-y: 1rem !default;\n$custom-file-padding-x: .5rem !default;\n$custom-file-line-height: 1.5 !default;\n$custom-file-color: $gray-700 !default;\n$custom-file-bg: $white !default;\n$custom-file-border-width: $border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $border-radius !default;\n$custom-file-box-shadow: inset 0 .2rem .4rem rgba($black,.05) !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $gray-200 !default;\n$custom-file-text: (\n placeholder: (\n en: \"Choose file...\"\n ),\n button-label: (\n en: \"Browse\"\n )\n) !default;\n\n\n// Form validation\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black,.15) !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black,.175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: #ddd !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: #ddd !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-padding-y: ($navbar-brand-height - $nav-link-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white,.5) !default;\n$navbar-dark-hover-color: rgba($white,.75) !default;\n$navbar-dark-active-color: rgba($white,1) !default;\n$navbar-dark-disabled-color: rgba($white,.25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white,.1) !default;\n\n$navbar-light-color: rgba($black,.5) !default;\n$navbar-light-hover-color: rgba($black,.7) !default;\n$navbar-light-active-color: rgba($black,.9) !default;\n$navbar-light-disabled-color: rgba($black,.3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black,.1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: #ddd !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: #ddd !default;\n\n$pagination-active-color: $white !default;\n$pagination-active-bg: theme-color(\"primary\") !default;\n$pagination-active-border-color: theme-color(\"primary\") !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: #ddd !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: 1px !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black,.125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-deck-margin: ($grid-gutter-width / 2) !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: 3px !default;\n$tooltip-padding-x: 8px !default;\n$tooltip-margin: 0 !default;\n\n\n$tooltip-arrow-width: 5px !default;\n$tooltip-arrow-height: 5px !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-inner-padding: 1px !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black,.2) !default;\n$popover-box-shadow: 0 5px 10px rgba($black,.2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: 8px !default;\n$popover-header-padding-x: 14px !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: 9px !default;\n$popover-body-padding-x: 14px !default;\n\n$popover-arrow-width: 10px !default;\n$popover-arrow-height: 5px !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-width: ($popover-arrow-width + 1px) !default;\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-color: $white !default;\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 15px !default;\n\n$modal-dialog-margin: 10px !default;\n$modal-dialog-margin-y-sm-up: 30px !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black,.2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 3px 9px rgba($black,.5) !default;\n$modal-content-box-shadow-sm-up: 0 5px 15px rgba($black,.5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 15px !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: .75rem !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black,.1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black,.125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: #ddd !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black,.075) !default;\n$thumbnail-transition: all .2s ease-in-out !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 90% !default;\n$code-padding-y: .2rem !default;\n$code-padding-x: .4rem !default;\n$code-color: #bd4147 !default;\n$code-bg: $gray-100 !default;\n\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n @for $i from 1 through $columns {\n .order#{$infix}-#{$i} {\n order: $i;\n }\n }\n }\n }\n}\n","// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]} \ No newline at end of file diff --git a/static/vendor/bootstrap/css/bootstrap.css.map b/static/vendor/bootstrap/css/bootstrap.css.map deleted file mode 100755 index 14530357..00000000 --- a/static/vendor/bootstrap/css/bootstrap.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_print.scss","bootstrap.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/mixins/_clearfix.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/mixins/_gradients.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss"],"names":[],"mappings":"AAAA;;;;;GAKG;ACMD;EACE;;;IAME,6BAA4B;IAE5B,4BAA2B;GAC5B;EAED;;IAEE,2BAA0B;GAC3B;EAOD;IACE,8BAA6B;GAC9B;EAaD;IACE,iCAAgC;GACjC;EACD;;IAEE,uBAAgC;IAChC,yBAAwB;GACzB;EAOD;IACE,4BAA2B;GAC5B;EAED;;IAEE,yBAAwB;GACzB;EAED;;;IAGE,WAAU;IACV,UAAS;GACV;EAED;;IAEE,wBAAuB;GACxB;EAKD;IACE,cAAa;GACd;EACD;IACE,uBAAgC;GACjC;EAED;IACE,qCAAoC;GAMrC;EAPD;;IAKI,kCAAiC;GAClC;EAEH;;IAGI,kCAAiC;GAClC;CC3CN;;AC1CD;EACE,uBAAsB;EACtB,wBAAuB;EACvB,kBAAiB;EACjB,+BAA8B;EAC9B,2BAA0B;EAC1B,8BAA6B;EAC7B,yCAA0C;CAC3C;;AAED;;;EAGE,oBAAmB;CACpB;;AAIC;EAAgB,oBAAmB;CD4CpC;;ACxCD;EACE,eAAc;CACf;;AAOD;EACE,UAAS;EACT,wGCoLiH;EDnLjH,gBCuLmB;EDtLnB,oBC0LyB;EDzLzB,iBC6LoB;ED5LpB,eCEgB;EDDhB,uBCRW;CDSZ;;ADuCD;EC/BE,yBAAwB;CACzB;;AAQD;EACE,wBAAuB;EACvB,UAAS;EACT,kBAAiB;CAClB;;AAWD;EACE,cAAa;EACb,qBAAoB;CACrB;;AAMD;EACE,cAAa;EACb,oBAAmB;CACpB;;AASD;;EAEE,2BAA0B;EAC1B,0CAAiC;UAAjC,kCAAiC;EACjC,aAAY;EACZ,iBAAgB;CACjB;;AAED;EACE,oBAAmB;EACnB,mBAAkB;EAClB,qBAAoB;CACrB;;AAED;;;EAGE,cAAa;EACb,oBAAmB;CACpB;;AAED;;;;EAIE,iBAAgB;CACjB;;AAED;EACE,kBCqGqB;CDpGtB;;AAED;EACE,qBAAoB;EACpB,eAAc;CACf;;AAED;EACE,iBAAgB;CACjB;;AAED;EACE,mBAAkB;CACnB;;AAED;;EAEE,oBAAmB;CACpB;;AAED;EACE,eAAc;CACf;;AAOD;;EAEE,mBAAkB;EAClB,eAAc;EACd,eAAc;EACd,yBAAwB;CACzB;;AAED;EAAM,eAAc;CAAK;;AACzB;EAAM,WAAU;CAAK;;AAOrB;EACE,eClHe;EDmHf,sBCxB0B;EDyB1B,8BAA6B;EAC7B,sCAAqC;CAMtC;;AE1LG;EFuLA,eC5B4C;ED6B5C,2BC5B6B;CC5JR;;AFkMzB;EACE,eAAc;EACd,sBAAqB;CAUtB;;AEnMG;EF4LA,eAAc;EACd,sBAAqB;CE1LpB;;AFoLL;EAUI,WAAU;CACX;;AAQH;;;;EAIE,kCAAiC;EACjC,eAAc;CACf;;AAED;EAEE,cAAa;EAEb,oBAAmB;EAEnB,eAAc;CACf;;AAOD;EAEE,iBAAgB;CACjB;;AAOD;EACE,uBAAsB;EACtB,mBAAkB;CACnB;;AAED;EACE,iBAAgB;CACjB;;AAaD;;;;;;;;;EASE,+BAA0B;MAA1B,2BAA0B;CAC3B;;AAOD;EACE,0BAAyB;CAC1B;;AAED;EACE,qBCEoC;EDDpC,wBCCoC;EDApC,eCpPgB;EDqPhB,iBAAgB;EAChB,qBAAoB;CACrB;;AAED;EAEE,iBAAgB;CACjB;;AAOD;EAEE,sBAAqB;EACrB,qBAAoB;CACrB;;AAMD;EACE,oBAAmB;EACnB,2CAA0C;CAC3C;;AAED;;;;;EAKE,UAAS;EACT,qBAAoB;EACpB,mBAAkB;EAClB,qBAAoB;CACrB;;AAED;;EAEE,kBAAiB;CAClB;;AAED;;EAEE,qBAAoB;CACrB;;AAKD;;;;EAIE,2BAA0B;CAC3B;;AAGD;;;;EAIE,WAAU;EACV,mBAAkB;CACnB;;AAED;;EAEE,uBAAsB;EACtB,WAAU;CACX;;AAGD;;;;EASE,4BAA2B;CAC5B;;AAED;EACE,eAAc;EAEd,iBAAgB;CACjB;;AAED;EAME,aAAY;EAEZ,WAAU;EACV,UAAS;EACT,UAAS;CACV;;AAID;EACE,eAAc;EACd,YAAW;EACX,gBAAe;EACf,WAAU;EACV,qBAAoB;EACpB,kBAAiB;EACjB,qBAAoB;EACpB,eAAc;EACd,oBAAmB;CACpB;;AAED;EACE,yBAAwB;CACzB;;ADpED;;ECyEE,aAAY;CACb;;ADrED;EC4EE,qBAAoB;EACpB,yBAAwB;CACzB;;ADzED;;ECiFE,yBAAwB;CACzB;;AAOD;EACE,cAAa;EACb,2BAA0B;CAC3B;;AAMD;EACE,sBAAqB;CACtB;;AAED;EACE,mBAAkB;CACnB;;AAED;EACE,cAAa;CACd;;ADtFD;EC2FE,yBAAwB;CACzB;;AG5dD;;EAEE,sBFwPoC;EEvPpC,qBFwP8B;EEvP9B,iBFwP0B;EEvP1B,iBFwP0B;EEvP1B,eFwP8B;CEvP/B;;AAED;EAAU,kBF0OW;CE1OiB;;AACtC;EAAU,gBF0OS;CE1OmB;;AACtC;EAAU,mBF0OY;CE1OgB;;AACtC;EAAU,kBF0OW;CE1OiB;;AACtC;EAAU,mBF0OY;CE1OgB;;AACtC;EAAU,gBF0OS;CE1OmB;;AAEtC;EACE,mBF0PwB;EEzPxB,iBF0PoB;CEzPrB;;AAGD;EACE,gBFyOkB;EExOlB,iBF6OuB;EE5OvB,iBFoO0B;CEnO3B;;AACD;EACE,kBFqOoB;EEpOpB,iBFyOuB;EExOvB,iBF+N0B;CE9N3B;;AACD;EACE,kBFiOoB;EEhOpB,iBFqOuB;EEpOvB,iBF0N0B;CEzN3B;;AACD;EACE,kBF6NoB;EE5NpB,iBFiOuB;EEhOvB,iBFqN0B;CEpN3B;;AAOD;EACE,iBAAgB;EAChB,oBAAmB;EACnB,UAAS;EACT,yCFIW;CEHZ;;AAOD;;EAEE,eFgNmB;EE/MnB,oBF8KyB;CE7K1B;;AAED;;EAEE,eFoNiB;EEnNjB,0BF4Ne;CE3NhB;;AAOD;EC7EE,gBAAe;EACf,iBAAgB;CD8EjB;;AAGD;EClFE,gBAAe;EACf,iBAAgB;CDmFjB;;AACD;EACE,sBAAqB;CAKtB;;AAND;EAII,kBFsMqB;CErMtB;;AASH;EACE,eAAc;EACd,0BAAyB;CAC1B;;AAGD;EACE,oBFyBW;EExBX,mBFwKgD;CEvKjD;;AAED;EACE,eAAc;EACd,eAAc;EACd,eF7DgB;CEkEjB;;AARD;EAMI,uBAAsB;CACvB;;AElHH;ECIE,gBAAe;EAGf,aAAY;CDLb;;AAID;EACE,iBJkvBkC;EIjvBlC,uBJmCW;EIlCX,uBJmvBgC;EM/vB9B,uBNmN2B;EOlNzB,iCPiwB2C;EK3vB/C,gBAAe;EAGf,aAAY;CDSb;;AAMD;EAEE,sBAAqB;CACtB;;AAED;EACE,sBAA4B;EAC5B,eAAc;CACf;;AAED;EACE,eJmuB4B;EIluB5B,eJegB;CIdjB;;AIzCD;;;;EAIE,kFRqO2F;CQpO5F;;AAGD;EACE,uBRkzBiC;EQjzBjC,eR+yB+B;EQ9yB/B,eRizBmC;EQhzBnC,0BRsCgB;EM/Cd,uBNmN2B;CQjM9B;;AALC;EACE,WAAU;EACV,eAAc;EACd,0BAAyB;CAC1B;;AAIH;EACE,uBRkyBiC;EQjyBjC,eR+xB+B;EQ9xB/B,YRsBW;EQrBX,0BR8BgB;EMvDd,sBNqN0B;CQlL7B;;AAdD;EASI,WAAU;EACV,gBAAe;EACf,kBR8MmB;CQ5MpB;;AAIH;EACE,eAAc;EACd,cAAa;EACb,oBAAmB;EACnB,eR4wB+B;EQ3wB/B,eRYgB;CQFjB;;AAfD;EASI,WAAU;EACV,mBAAkB;EAClB,eAAc;EACd,8BAA6B;EAC7B,iBAAgB;CACjB;;AAIH;EACE,kBRuwBiC;EQtwBjC,mBAAkB;CACnB;;AC1DC;ECAA,mBAAkB;EAClB,kBAAiB;EACjB,oBAAuC;EACvC,mBAAuC;EACvC,YAAW;CDDV;;AEgDC;EFnDF;ICYI,iBV8KK;GSvLR;CXwlBF;;AaxiBG;EFnDF;ICYI,iBV+KK;GSxLR;CX8lBF;;Aa9iBG;EFnDF;ICYI,iBVgLK;GSzLR;CXomBF;;AapjBG;EFnDF;ICYI,kBViLM;GS1LT;CX0mBF;;AWjmBC;EACE,YAAW;ECbb,mBAAkB;EAClB,kBAAiB;EACjB,oBAAuC;EACvC,mBAAuC;EACvC,YAAW;CDWV;;AAQD;ECLA,qBAAa;EAAb,cAAa;EACb,oBAAe;MAAf,gBAAe;EACf,oBAAuC;EACvC,mBAAuC;CDItC;;AAID;EACE,gBAAe;EACf,eAAc;CAOf;;AATD;;EAMI,iBAAgB;EAChB,gBAAe;CAChB;;AGnCH;;;;;;EACE,mBAAkB;EAClB,YAAW;EACX,gBAAe;EACf,oBAA4B;EAC5B,mBAA4B;CAC7B;;AAkBG;EACE,2BAAa;MAAb,cAAa;EACb,qBAAY;MAAZ,aAAY;EACZ,gBAAe;CAChB;;AACD;EACE,mBAAc;MAAd,eAAc;EACd,YAAW;EACX,gBAAe;CAChB;;AAGC;EFFN,wBAAsC;MAAtC,oBAAsC;EAItC,qBAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,kBAAsC;MAAtC,cAAsC;EAItC,eAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,kBAAsC;MAAtC,cAAsC;EAItC,eAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,kBAAsC;MAAtC,cAAsC;EAItC,eAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,yBAAsC;MAAtC,qBAAsC;EAItC,sBAAuC;CEAhC;;AAFD;EFFN,mBAAsC;MAAtC,eAAsC;EAItC,gBAAuC;CEAhC;;AAID;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,kBAFU;MAEV,SAFU;CAGX;;AAFD;EACE,mBAFU;MAEV,UAFU;CAGX;;AAFD;EACE,mBAFU;MAEV,UAFU;CAGX;;AAFD;EACE,mBAFU;MAEV,UAFU;CAGX;;ADKL;ECzBE;IACE,2BAAa;QAAb,cAAa;IACb,qBAAY;QAAZ,aAAY;IACZ,gBAAe;GAChB;EACD;IACE,mBAAc;QAAd,eAAc;IACd,YAAW;IACX,gBAAe;GAChB;EAGC;IFFN,wBAAsC;QAAtC,oBAAsC;IAItC,qBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,mBAAsC;QAAtC,eAAsC;IAItC,gBAAuC;GEAhC;EAID;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;Cdg0BR;;Aa3zBG;ECzBE;IACE,2BAAa;QAAb,cAAa;IACb,qBAAY;QAAZ,aAAY;IACZ,gBAAe;GAChB;EACD;IACE,mBAAc;QAAd,eAAc;IACd,YAAW;IACX,gBAAe;GAChB;EAGC;IFFN,wBAAsC;QAAtC,oBAAsC;IAItC,qBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,mBAAsC;QAAtC,eAAsC;IAItC,gBAAuC;GEAhC;EAID;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;Cdi6BR;;Aa55BG;ECzBE;IACE,2BAAa;QAAb,cAAa;IACb,qBAAY;QAAZ,aAAY;IACZ,gBAAe;GAChB;EACD;IACE,mBAAc;QAAd,eAAc;IACd,YAAW;IACX,gBAAe;GAChB;EAGC;IFFN,wBAAsC;QAAtC,oBAAsC;IAItC,qBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,mBAAsC;QAAtC,eAAsC;IAItC,gBAAuC;GEAhC;EAID;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;CdkgCR;;Aa7/BG;ECzBE;IACE,2BAAa;QAAb,cAAa;IACb,qBAAY;QAAZ,aAAY;IACZ,gBAAe;GAChB;EACD;IACE,mBAAc;QAAd,eAAc;IACd,YAAW;IACX,gBAAe;GAChB;EAGC;IFFN,wBAAsC;QAAtC,oBAAsC;IAItC,qBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,kBAAsC;QAAtC,cAAsC;IAItC,eAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,yBAAsC;QAAtC,qBAAsC;IAItC,sBAAuC;GEAhC;EAFD;IFFN,mBAAsC;QAAtC,eAAsC;IAItC,gBAAuC;GEAhC;EAID;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,kBAFU;QAEV,SAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;EAFD;IACE,mBAFU;QAEV,UAFU;GAGX;CdmmCR;;AelpCD;EACE,YAAW;EACX,gBAAe;EACf,oBbgIW;Ea/HX,8BbuSyC;CalR1C;;AAzBD;;EAQI,iBbgSkC;Ea/RlC,oBAAmB;EACnB,8BbsCc;CarCf;;AAXH;EAcI,uBAAsB;EACtB,iCbiCc;CahCf;;AAhBH;EAmBI,8Bb6Bc;Ca5Bf;;AApBH;EAuBI,uBbuBS;CatBV;;AAQH;;EAGI,gBbsQiC;CarQlC;;AAQH;EACE,0BbGgB;CaUjB;;AAdD;;EAKI,0BbDc;CaEf;;AANH;;EAWM,yBAA8C;CAC/C;;AASL;EAEI,sCbXS;CaYV;;AAQH;EAGM,uCbvBO;CCjDY;;AaNvB;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,0BC4EmE;CD3EpE;;AAKH;EAKM,0BAJsC;CbLrB;;AaIvB;;EASQ,0BARoC;CASrC;;AApBP;;;EAII,uCdmDO;CclDR;;AAKH;EAKM,uCAJsC;CbLrB;;AaIvB;;EASQ,uCARoC;CASrC;;ADgFT;EAEI,YbzDS;Ea0DT,0BbjDc;CakDf;;AAGH;EAEI,ebzDc;Ea0Dd,0Bb/Dc;CagEf;;AAGH;EACE,YbtEW;EauEX,0Bb9DgB;CauFjB;;AA3BD;;;EAOI,sBb+LoD;Ca9LrD;;AARH;EAWI,UAAS;CACV;;AAZH;EAgBM,4CbrFO;CasFR;;AAjBL;EAuBQ,6Cb5FK;CCvCY;;AU0DrB;EEsFJ;IAEI,eAAc;IACd,YAAW;IACX,iBAAgB;IAChB,6CAA4C;GAO/C;EAZD;IASM,UAAS;GACV;Cf2tCJ;;AkB13CD;EACE,eAAc;EACd,YAAW;EAGX,wBhB2TgC;EgB1ThC,gBhBiOmB;EgBhOnB,kBhB0T8B;EgBzT9B,ehB2CgB;EgB1ChB,uBhBmCW;EgBjCX,uBAAsB;EACtB,6BAA4B;EAC5B,sChByCW;EgBpCT,uBhB+L2B;EOlNzB,yEP6XqF;CgBtU1F;;AAtDD;EA6BI,8BAA6B;EAC7B,UAAS;CACV;;ACxBD;EACE,ejB2Cc;EiB1Cd,uBjBmCS;EiBlCT,sBjBiWiE;EiBhWjE,cAAa;CAEd;;ADbH;EAsCI,ehBYc;EgBVd,WAAU;CACX;;AAzCH;EAsCI,ehBYc;EgBVd,WAAU;CACX;;AAzCH;EAsCI,ehBYc;EgBVd,WAAU;CACX;;AAzCH;EAkDI,0BhBJc;EgBMd,WAAU;CACX;;AAGH;EAEI,4BhB0TkF;CgBzTnF;;AAHH;EAWI,ehBhBc;EgBiBd,uBhBxBS;CgByBV;;AAIH;;EAEE,eAAc;CACf;;AASD;EACE,oCAA2E;EAC3E,uCAA8E;EAC9E,iBAAgB;CACjB;;AAED;EACE,oCAA8E;EAC9E,uCAAiF;EACjF,mBhB0IsB;CgBzIvB;;AAED;EACE,qCAA8E;EAC9E,wCAAiF;EACjF,oBhBqIsB;CgBpIvB;;AASD;EACE,oBhBgN+B;EgB/M/B,uBhB+M+B;EgB9M/B,iBAAgB;EAChB,gBhBqHmB;CgBpHpB;;AAQD;EACE,oBhBmM+B;EgBlM/B,uBhBkM+B;EgBjM/B,iBAAgB;EAChB,kBhBkM8B;EgBjM9B,0BAAyB;EACzB,oBAAuC;CAOxC;;AAbD;;;;;EAUI,iBAAgB;EAChB,gBAAe;CAChB;;AAYH;;;EACE,wBhBgL+B;EgB/K/B,oBhBoFsB;EgBnFtB,iBhB+K6B;EMvU3B,sBNqN0B;CgB3D7B;;AAED;;;EAEI,8BhB2NqF;CgB1NtF;;AAGH;;;EACE,qBhBuK8B;EgBtK9B,mBhBsEsB;EgBrEtB,iBhBsK6B;EM3U3B,sBNoN0B;CgB7C7B;;AAED;;;EAEI,8BhBiNqF;CgBhNtF;;AASH;EACE,oBhBmNmC;CgBlNpC;;AAED;EACE,eAAc;EACd,oBhBqM+B;CgBpMhC;;AAOD;EACE,qBAAa;EAAb,cAAa;EACb,oBAAe;MAAf,gBAAe;EACf,mBAAkB;EAClB,kBAAiB;CAOlB;;AAXD;;EAQI,mBAAkB;EAClB,kBAAiB;CAClB;;AAQH;EACE,mBAAkB;EAClB,eAAc;EACd,sBhB0K+B;CgBnKhC;;AAVD;EAOM,ehBxKY;CgByKb;;AAIL;EACE,sBhBiKiC;EgBhKjC,iBAAgB;CACjB;;AAED;EACE,mBAAkB;EAClB,oBhB4JgC;EgB3JhC,sBhB0JiC;CgBrJlC;;AARD;EAMI,iBAAgB;CACjB;;AAIH;EACE,sBAAqB;CAStB;;AAVD;EAII,uBAAsB;CACvB;;AALH;EAQI,qBhB8I+B;CgB7IhC;;AAWH;EACE,cAAa;EACb,mBAAkB;EAClB,mBAAkB;EAClB,ehB/Le;CgBgMhB;;AAED;EACE,mBAAkB;EAClB,UAAS;EACT,WAAU;EACV,cAAa;EACb,aAAY;EACZ,eAAc;EACd,kBAAiB;EACjB,mBAAkB;EAClB,eAAc;EACd,YAAW;EACX,yChB7Me;EgB8Mf,qBAAoB;CACrB;;AClQG;;;EAEE,sBjBoDW;CiB1CZ;;AAZD;;;EAKI,iDjBiDS;CiBhDV;;AANH;;;;;;;;EAUI,eAAc;CACf;;AAOH;EAGI,ejBiCS;CiBhCV;;AAMH;EAGI,0CjBuBS;CiBtBV;;AAJH;EAMI,ejBoBS;CiBnBV;;AAMH;EAGI,sBjBUS;CiBPV;;AANH;EAKgB,sBAAqB;CAAK;;AAL1C;EAQI,iDjBKS;CiBJV;;AAlDH;;;EAEE,sBjBiDW;CiBvCZ;;AAZD;;;EAKI,iDjB8CS;CiB7CV;;AANH;;;;;;;;EAUI,eAAc;CACf;;AAOH;EAGI,ejB8BS;CiB7BV;;AAMH;EAGI,0CjBoBS;CiBnBV;;AAJH;EAMI,ejBiBS;CiBhBV;;AAMH;EAGI,sBjBOS;CiBJV;;AANH;EAKgB,sBAAqB;CAAK;;AAL1C;EAQI,iDjBES;CiBDV;;AD8NP;EACE,qBAAa;EAAb,cAAa;EACb,wBAAmB;MAAnB,oBAAmB;EACnB,uBAAmB;MAAnB,oBAAmB;CAuFpB;;AA1FD;EASI,YAAW;CACZ;;AL7PC;EKmPJ;IAeM,qBAAa;IAAb,cAAa;IACb,uBAAmB;QAAnB,oBAAmB;IACnB,sBAAuB;QAAvB,wBAAuB;IACvB,iBAAgB;GACjB;EAnBL;IAuBM,qBAAa;IAAb,cAAa;IACb,mBAAc;QAAd,eAAc;IACd,wBAAmB;QAAnB,oBAAmB;IACnB,uBAAmB;QAAnB,oBAAmB;IACnB,iBAAgB;GACjB;EA5BL;IAgCM,sBAAqB;IACrB,YAAW;IACX,uBAAsB;GACvB;EAnCL;IAuCM,sBAAqB;GACtB;EAxCL;IA2CM,YAAW;GACZ;EA5CL;IA+CM,iBAAgB;IAChB,uBAAsB;GACvB;EAjDL;IAsDM,qBAAa;IAAb,cAAa;IACb,uBAAmB;QAAnB,oBAAmB;IACnB,sBAAuB;QAAvB,wBAAuB;IACvB,YAAW;IACX,cAAa;IACb,iBAAgB;GACjB;EA5DL;IA8DM,gBAAe;GAChB;EA/DL;IAiEM,mBAAkB;IAClB,cAAa;IACb,sBhB2B4B;IgB1B5B,eAAc;GACf;EArEL;IAyEM,qBAAa;IAAb,cAAa;IACb,uBAAmB;QAAnB,oBAAmB;IACnB,sBAAuB;QAAvB,wBAAuB;IACvB,gBAAe;GAChB;EA7EL;IA+EM,iBAAgB;IAChB,sBAAqB;IACrB,sBhBa4B;IgBZ5B,4BAA2B;GAC5B;EAnFL;IAuFM,OAAM;GACP;ClBi3CJ;;AoB9uDD;EACE,sBAAqB;EACrB,oBlByOyB;EkBxOzB,mBAAkB;EAClB,oBAAmB;EACnB,uBAAsB;EACtB,0BAAiB;KAAjB,uBAAiB;MAAjB,sBAAiB;UAAjB,kBAAiB;EACjB,8BAAiD;ECiEjD,wBnBwPgC;EmBvPhC,gBnB8JmB;EmB7JnB,kBnBuP8B;EMnU5B,uBNmN2B;EOlNzB,kCP0V+C;CkBxTpD;;AjBjBG;EiBHA,sBAAqB;CjBMpB;;AiBnBL;EAiBI,WAAU;EACV,8ClBkDa;CkBjDd;;AAnBH;EAwBI,aAAY;CAEb;;AA1BH;EA8BI,uBAAsB;CAEvB;;AAIH;;EAEE,qBAAoB;CACrB;;AAQC;EHQE,YAAW;EItDb,0BnBmEe;EmBlEf,sBnBkEe;CkBnBd;;AC5CD;EJkDE,YAAW;EIhDX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,6CnBmDW;CmBjDd;;AAGD;EAEE,0BnB4Ca;EmB3Cb,sBnB2Ca;CmB1Cd;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHQE,YAAW;EItDb,0BnBiDgB;EmBhDhB,sBnBgDgB;CkBDf;;AC5CD;EJkDE,YAAW;EIhDX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,+CnBiCY;CmB/Bf;;AAGD;EAEE,0BnB0Bc;EmBzBd,sBnByBc;CmBxBf;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHQE,YAAW;EItDb,0BnB0Ee;EmBzEf,sBnByEe;CkB1Bd;;AC5CD;EJkDE,YAAW;EIhDX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,6CnB0DW;CmBxDd;;AAGD;EAEE,0BnBmDa;EmBlDb,sBnBkDa;CmBjDd;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHQE,YAAW;EItDb,0BnB4Ee;EmB3Ef,sBnB2Ee;CkB5Bd;;AC5CD;EJkDE,YAAW;EIhDX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,8CnB4DW;CmB1Dd;;AAGD;EAEE,0BnBqDa;EmBpDb,sBnBoDa;CmBnDd;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHME,YAAW;EIpDb,0BnByEe;EmBxEf,sBnBwEe;CkBzBd;;AC5CD;EJgDE,YAAW;EI9CX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,6CnByDW;CmBvDd;;AAGD;EAEE,0BnBkDa;EmBjDb,sBnBiDa;CmBhDd;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHQE,YAAW;EItDb,0BnBuEe;EmBtEf,sBnBsEe;CkBvBd;;AC5CD;EJkDE,YAAW;EIhDX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,6CnBuDW;CmBrDd;;AAGD;EAEE,0BnBgDa;EmB/Cb,sBnB+Ca;CmB9Cd;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHME,YAAW;EIpDb,0BnB4CgB;EmB3ChB,sBnB2CgB;CkBIf;;AC5CD;EJgDE,YAAW;EI9CX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,+CnB4BY;CmB1Bf;;AAGD;EAEE,0BnBqBc;EmBpBd,sBnBoBc;CmBnBf;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADYD;EHQE,YAAW;EItDb,0BnBmDgB;EmBlDhB,sBnBkDgB;CkBHf;;AC5CD;EJkDE,YAAW;EIhDX,0BARqF;EASrF,sBAT2H;CAU5H;;AAED;EAMI,4CnBmCY;CmBjCf;;AAGD;EAEE,0BnB4Bc;EmB3Bd,sBnB2Bc;CmB1Bf;;AAED;;EAGE,0BAhCqF;EAiCrF,uBAAsB;EACtB,sBAlC2H;CAoC5H;;ADkBD;ECdA,enB6Be;EmB5Bf,8BAA6B;EAC7B,uBAAsB;EACtB,sBnB0Be;CkBbd;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnBsBa;EmBrBb,sBnBqBa;CC/DQ;;AkB6CvB;EAEE,6CnBgBa;CmBfd;;AAED;EAEE,enBWa;EmBVb,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBGa;EmBFb,sBnBEa;CmBDd;;ADdD;ECdA,enBWgB;EmBVhB,8BAA6B;EAC7B,uBAAsB;EACtB,sBnBQgB;CkBKf;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnBIc;EmBHd,sBnBGc;CC7CO;;AkB6CvB;EAEE,+CnBFc;CmBGf;;AAED;EAEE,enBPc;EmBQd,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBfc;EmBgBd,sBnBhBc;CmBiBf;;ADdD;ECdA,enBoCe;EmBnCf,8BAA6B;EAC7B,uBAAsB;EACtB,sBnBiCe;CkBpBd;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnB6Ba;EmB5Bb,sBnB4Ba;CCtEQ;;AkB6CvB;EAEE,6CnBuBa;CmBtBd;;AAED;EAEE,enBkBa;EmBjBb,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBUa;EmBTb,sBnBSa;CmBRd;;ADdD;ECdA,enBsCe;EmBrCf,8BAA6B;EAC7B,uBAAsB;EACtB,sBnBmCe;CkBtBd;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnB+Ba;EmB9Bb,sBnB8Ba;CCxEQ;;AkB6CvB;EAEE,8CnByBa;CmBxBd;;AAED;EAEE,enBoBa;EmBnBb,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBYa;EmBXb,sBnBWa;CmBVd;;ADdD;ECdA,enBmCe;EmBlCf,8BAA6B;EAC7B,uBAAsB;EACtB,sBnBgCe;CkBnBd;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnB4Ba;EmB3Bb,sBnB2Ba;CCrEQ;;AkB6CvB;EAEE,6CnBsBa;CmBrBd;;AAED;EAEE,enBiBa;EmBhBb,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBSa;EmBRb,sBnBQa;CmBPd;;ADdD;ECdA,enBiCe;EmBhCf,8BAA6B;EAC7B,uBAAsB;EACtB,sBnB8Be;CkBjBd;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnB0Ba;EmBzBb,sBnByBa;CCnEQ;;AkB6CvB;EAEE,6CnBoBa;CmBnBd;;AAED;EAEE,enBea;EmBdb,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBOa;EmBNb,sBnBMa;CmBLd;;ADdD;ECdA,enBMgB;EmBLhB,8BAA6B;EAC7B,uBAAsB;EACtB,sBnBGgB;CkBUf;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnBDc;EmBEd,sBnBFc;CCxCO;;AkB6CvB;EAEE,+CnBPc;CmBQf;;AAED;EAEE,enBZc;EmBad,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBpBc;EmBqBd,sBnBrBc;CmBsBf;;ADdD;ECdA,enBagB;EmBZhB,8BAA6B;EAC7B,uBAAsB;EACtB,sBnBUgB;CkBGf;;AjBlDC;EkBwCA,YDS4C;ECR5C,0BnBMc;EmBLd,sBnBKc;CC/CO;;AkB6CvB;EAEE,4CnBAc;CmBCf;;AAED;EAEE,enBLc;EmBMd,8BAA6B;CAC9B;;AAED;;EAGE,YDV4C;ECW5C,0BnBbc;EmBcd,sBnBdc;CmBef;;ADHH;EACE,oBlB0KyB;EkBzKzB,elBEe;EkBDf,iBAAgB;CA8BjB;;AAjCD;EASI,8BAA6B;CAE9B;;AAXH;EAeI,0BAAyB;EACzB,iBAAgB;CACjB;;AjB5EC;EiB8EA,0BAAyB;CjB9EJ;;AAWrB;EiBsEA,elB0E4C;EkBzE5C,2BlB0E6B;EkBzE7B,8BAA6B;CjBrE5B;;AiB6CL;EA2BI,elBzCc;CkB8Cf;;AjBhFC;EiB8EE,sBAAqB;CjB3EtB;;AiBqFL;EChCE,qBnBgQ8B;EmB/P9B,mBnB+JsB;EmB9JtB,iBnBkI0B;EM9MxB,sBNoN0B;CkBxG7B;;AAED;ECpCE,wBnB4P+B;EmB3P/B,oBnBgKsB;EmB/JtB,iBnBmI0B;EM/MxB,sBNqN0B;CkBrG7B;;AAOD;EACE,eAAc;EACd,YAAW;CACZ;;AAGD;EACE,mBlBsNoC;CkBrNrC;;AAGD;;;EAII,YAAW;CACZ;;AE3IH;EACE,WAAU;EbIN,iCP4NsC;CoB1N3C;;AAPD;EAKI,WAAU;CACX;;AAGH;EACE,cAAa;CAId;;AALD;EAGI,eAAc;CACf;;AAGH;EAEI,mBAAkB;CACnB;;AAGH;EAEI,yBAAwB;CACzB;;AAGH;EACE,mBAAkB;EAClB,UAAS;EACT,iBAAgB;Eb1BZ,8BP6NmC;CoBjMxC;;AChCD;;EAEE,mBAAkB;CACnB;;AAED;EAGI,sBAAqB;EACrB,SAAQ;EACR,UAAS;EACT,qBAA+B;EAC/B,wBAAkC;EAClC,YAAW;EACX,wBAA8B;EAC9B,sCAA4C;EAC5C,qCAA2C;CAC5C;;AAZH;EAeI,eAAc;CACf;;AAKH;EAEI,cAAa;EACb,wBrB+coC;CqB9crC;;AAJH;EAQM,cAAa;EACb,2BAAiC;CAClC;;AAKL;EACE,mBAAkB;EAClB,UAAS;EACT,QAAO;EACP,crB0d8B;EqBzd9B,cAAa;EACb,YAAW;EACX,iBrB0boC;EqBzbpC,kBAA8B;EAC9B,qBAA4B;EAC5B,gBrByLmB;EqBxLnB,erBMgB;EqBLhB,iBAAgB;EAChB,iBAAgB;EAChB,uBrBNW;EqBOX,6BAA4B;EAC5B,sCrBEW;EMxDT,uBNmN2B;CqB1J9B;;AAGD;EC3DE,UAAS;EACT,iBAAuB;EACvB,iBAAgB;EAChB,8BtB4CgB;CqBcjB;;AAKD;EACE,eAAc;EACd,YAAW;EACX,wBrBobqC;EqBnbrC,YAAW;EACX,oBrBqKyB;EqBpKzB,erBlBgB;EqBmBhB,oBAAmB;EACnB,oBAAmB;EACnB,iBAAgB;EAChB,UAAS;CAwBV;;ApBnFG;EoB8DA,erBiakD;EqBhalD,sBAAqB;EACrB,0BrBnCc;CC1Bb;;AoB8CL;EAoBI,YrBzCS;EqB0CT,sBAAqB;EACrB,0BrBnBa;CqBoBd;;AAvBH;EA2BI,erB1Cc;EqB2Cd,8BAA6B;CAK9B;;AAIH;EAGI,WAAU;CACX;;AAGH;EACE,eAAc;CACf;;AAGD;EACE,eAAc;EACd,uBrBoYqC;EqBnYrC,iBAAgB;EAChB,oBrBmHsB;EqBlHtB,erBrEgB;EqBsEhB,oBAAmB;CACpB;;AE5HD;;EAEE,mBAAkB;EAClB,4BAAoB;EAApB,qBAAoB;EACpB,uBAAsB;CA0BvB;;AA9BD;;EAOI,mBAAkB;EAClB,mBAAc;MAAd,eAAc;EACd,iBAAgB;CAYjB;;AArBH;;EAcM,WAAU;CtBNS;;AsBRzB;;;;EAmBM,WAAU;CACX;;AApBL;;;;;;;;EA4BI,kBvBsLc;CuBrLf;;AAIH;EACE,qBAAa;EAAb,cAAa;EACb,oBAAe;MAAf,gBAAe;EACf,qBAA2B;MAA3B,4BAA2B;CAK5B;;AARD;EAMI,YAAW;CACZ;;AAGH;EACE,iBAAgB;CACjB;;AAGD;EACE,eAAc;CAKf;;AAND;EjBlCI,2BiBsC8B;EjBrC9B,8BiBqC8B;CAC/B;;AAGH;;EjB5BI,0BiB8B2B;EjB7B3B,6BiB6B2B;CAC9B;;AAGD;EACE,YAAW;CACZ;;AACD;EACE,iBAAgB;CACjB;;AACD;;EjBtDI,2BiByD8B;EjBxD9B,8BiBwD8B;CAC/B;;AAEH;EjB9CI,0BiB+C2B;EjB9C3B,6BiB8C2B;CAC9B;;AAeD;EACE,yBAAyC;EACzC,wBAAwC;CAKzC;;AAPD;EAKI,eAAc;CACf;;AAGH;EACE,wBAA4C;EAC5C,uBAA2C;CAC5C;;AAED;EACE,uBAA4C;EAC5C,sBAA2C;CAC5C;;AAmBD;EACE,4BAAoB;EAApB,qBAAoB;EACpB,2BAAsB;MAAtB,uBAAsB;EACtB,sBAAuB;MAAvB,wBAAuB;EACvB,sBAAuB;MAAvB,wBAAuB;CAcxB;;AAlBD;;EAQI,YAAW;CACZ;;AATH;;;;EAeI,iBvBoEc;EuBnEd,eAAc;CACf;;AAGH;EAEI,iBAAgB;CACjB;;AAHH;EjB9HI,8BiBmI+B;EjBlI/B,6BiBkI+B;CAChC;;AANH;EjB5II,0BiBoJ4B;EjBnJ5B,2BiBmJ4B;CAC7B;;AAEH;EACE,iBAAgB;CACjB;;AACD;;EjB5II,8BiB+I+B;EjB9I/B,6BiB8I+B;CAChC;;AAEH;EjBhKI,0BiBiK0B;EjBhK1B,2BiBgK0B;CAC7B;;AzBu5ED;;;;EyBn4EM,mBAAkB;EAClB,uBAAmB;EACnB,qBAAoB;CACrB;;AC/LL;EACE,mBAAkB;EAClB,qBAAa;EAAb,cAAa;EACb,YAAW;CAkBZ;;AArBD;EAQI,mBAAkB;EAClB,WAAU;EACV,mBAAc;MAAd,eAAc;EAGd,UAAS;EACT,iBAAgB;CAMjB;;AApBH;EAkBM,WAAU;CvBmCX;;AuB9BL;;;EAIE,qBAAa;EAAb,cAAa;EACb,uBAAmB;MAAnB,oBAAmB;CAKpB;;AAVD;;;ElBvBI,iBkB+BwB;CACzB;;AAGH;;EAEE,oBAAmB;EACnB,uBAAsB;CACvB;;AAwBD;EACE,wBxBkQgC;EwBjQhC,iBAAgB;EAChB,gBxBuKmB;EwBtKnB,oBxB0KyB;EwBzKzB,kBxB+P8B;EwB9P9B,exBhBgB;EwBiBhB,mBAAkB;EAClB,0BxBvBgB;EwBwBhB,sCxBhBW;EMxDT,uBNmN2B;CwBpH9B;;AAhCD;;;EAcI,wBxByP6B;EwBxP7B,oBxB6JoB;EM3OpB,sBNqN0B;CwBrI3B;;AAjBH;;;EAoBI,qBxBuP4B;EwBtP5B,mBxBsJoB;EM1OpB,sBNoN0B;CwB9H3B;;AAvBH;;EA6BI,cAAa;CACd;;AASH;;;;;;;ElBzFI,2BkBgG4B;ElB/F5B,8BkB+F4B;CAC/B;;AACD;EACE,gBAAe;CAChB;;AACD;;;;;;;ElBvFI,0BkB8F2B;ElB7F3B,6BkB6F2B;CAC9B;;AACD;EACE,eAAc;CACf;;AAMD;EACE,mBAAkB;EAGlB,aAAY;EACZ,oBAAmB;CAmCpB;;AAxCD;EAUI,mBAAkB;CAUnB;;AApBH;EAaM,kBxBiEY;CwBhEb;;AAdL;EAkBM,WAAU;CvBhGX;;AuB8EL;;EA0BM,mBxBoDY;CwBnDb;;AA3BL;;EAgCM,WAAU;EACV,kBxB6CY;CwBxCb;;AAtCL;;;;EAoCQ,WAAU;CvBlHb;;AwB9CL;EACE,mBAAkB;EAClB,4BAAoB;EAApB,qBAAoB;EACpB,mBAAsC;EACtC,qBzBmY8B;EyBlY9B,mBzBoY4B;CyBnY7B;;AAED;EACE,mBAAkB;EAClB,YAAW;EACX,WAAU;CA4BX;;AA/BD;EAMI,YzByBS;EyBxBT,0BzBgDa;CyB9Cd;;AATH;EAaI,8CzB0Ca;CyBzCd;;AAdH;EAiBI,YzBcS;EyBbT,0BzBgY6E;CyB9X9E;;AApBH;EAwBM,0BzBSY;CyBRb;;AAzBL;EA4BM,ezBSY;CyBRb;;AAQL;EACE,mBAAkB;EAClB,aAA+D;EAC/D,QAAO;EACP,eAAc;EACd,YzByVwC;EyBxVxC,azBwVwC;EyBvVxC,qBAAoB;EACpB,0BAAiB;KAAjB,uBAAiB;MAAjB,sBAAiB;UAAjB,kBAAiB;EACjB,uBzBsVwC;EyBrVxC,6BAA4B;EAC5B,mCAAkC;EAClC,yBzBoV2C;CyBlV5C;;AAMD;EnBxEI,uBNmN2B;CyBxI5B;;AAHH;EAMI,2NVtCuI;CUuCxI;;AAPH;EAUI,0BzBZa;EyBab,wKV3CuI;CU6CxI;;AAOH;EAEI,mBzB8UsC;CyB7UvC;;AAHH;EAMI,qKV1DuI;CU2DxI;;AASH;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;MAAtB,uBAAsB;CASvB;;AAXD;EAKI,uBzB8R4B;CyBzR7B;;AAVH;EAQM,eAAc;CACf;;AAWL;EACE,sBAAqB;EACrB,gBAAe;EACf,4BzBmPoF;EyBlPpF,2CzB4SuC;EyB3SvC,kBzB8L8B;EyB7L9B,ezBjFgB;EyBkFhB,uBAAsB;EACtB,oNAAsG;EACtG,0BzB+SoC;EyB9SpC,sCzBlFW;EyBoFT,uBzBuE2B;EyBnE7B,yBAAgB;KAAhB,sBAAgB;UAAhB,iBAAgB;CA2BjB;;AA3CD;EAmBI,sBzB4SmE;EyB3SnE,cAAa;CAYd;;AAhCH;EA6BM,ezBxGY;EyByGZ,uBzBhHO;CyBiHR;;AA/BL;EAmCI,ezB/Gc;EyBgHd,0BzBpHc;CyBqHf;;AArCH;EAyCI,WAAU;CACX;;AAGH;EACE,8BzB2MuF;EyB1MvF,sBzBgQwC;EyB/PxC,yBzB+PwC;EyB9PxC,ezBiR+B;CyBhRhC;;AAOD;EACE,mBAAkB;EAClB,sBAAqB;EACrB,gBAAe;EACf,ezBwQmC;EyBvQnC,iBAAgB;CACjB;;AAED;EACE,iBzBoQkC;EyBnQlC,gBAAe;EACf,ezBiQmC;EyBhQnC,UAAS;EACT,WAAU;CAKX;;AAED;EACE,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,QAAO;EACP,WAAU;EACV,ezBkPmC;EyBjPnC,qBzBqP8B;EyBpP9B,iBzBsP6B;EyBrP7B,ezBjKgB;EyBkKhB,qBAAoB;EACpB,0BAAiB;KAAjB,uBAAiB;MAAjB,sBAAiB;UAAjB,kBAAiB;EACjB,uBzB3KW;EyB4KX,sCzBlKW;EMxDT,uBNmN2B;CyBsC9B;;AA5CD;EAmBM,0BzBsPkB;CyBrPnB;;AApBL;EAwBI,mBAAkB;EAClB,UzBrBc;EyBsBd,YzBtBc;EyBuBd,azBvBc;EyBwBd,WAAU;EACV,eAAc;EACd,ezB0NiC;EyBzNjC,qBzB6N4B;EyB5N5B,iBzB8N2B;EyB7N3B,ezBzLc;EyB0Ld,0BzB/Lc;EyBgMd,sCzBxLS;EMxDT,mCmBiPgF;CACjF;;AArCH;EAyCM,kBzBmOU;CyBlOX;;ACtPL;EACE,qBAAa;EAAb,cAAa;EACb,oBAAe;MAAf,gBAAe;EACf,gBAAe;EACf,iBAAgB;EAChB,iBAAgB;CACjB;;AAED;EACE,eAAc;EACd,qB1BogBkC;C0B1fnC;;AzBHG;EyBJA,sBAAqB;CzBOpB;;AyBZL;EAUI,e1BiCc;C0BhCf;;AAOH;EACE,8B1BsfgD;C0BpdjD;;AAnCD;EAII,oB1BkLc;C0BjLf;;AALH;EAQI,8BAAgD;EpB7BhD,gCN6M2B;EM5M3B,iCN4M2B;C0BpK5B;;AApBH;EAYM,mC1B2e4C;CC7f7C;;AyBML;EAgBM,e1BSY;E0BRZ,8BAA6B;EAC7B,0BAAyB;CAC1B;;AAnBL;;EAwBI,e1BEc;E0BDd,uB1BNS;E0BOT,6B1BPS;C0BQV;;AA3BH;EA+BI,iB1BuJc;EM3Md,0BoBsD4B;EpBrD5B,2BoBqD4B;CAC7B;;AAQH;EpBrEI,uBNmN2B;C0BrI5B;;AATH;;EAMM,Y1B7BO;E0B8BP,0B1BNW;C0BOZ;;AASL;EAEI,mBAAc;MAAd,eAAc;EACd,mBAAkB;CACnB;;AAGH;EAEI,2BAAa;MAAb,cAAa;EACb,qBAAY;MAAZ,aAAY;EACZ,mBAAkB;CACnB;;AAQH;EAEI,cAAa;CACd;;AAHH;EAKI,eAAc;CACf;;ACnGH;EACE,mBAAkB;EAClB,qBAAa;EAAb,cAAa;EACb,oBAAe;MAAf,gBAAe;EACf,uBAAmB;MAAnB,oBAAmB;EACnB,uBAA8B;MAA9B,+BAA8B;EAC9B,qB3BgHW;C2BrGZ;;AAjBD;;EAYI,qBAAa;EAAb,cAAa;EACb,oBAAe;MAAf,gBAAe;EACf,uBAAmB;MAAnB,oBAAmB;EACnB,uBAA8B;MAA9B,+BAA8B;CAC/B;;AAQH;EACE,sBAAqB;EACrB,uB3BggB+E;E2B/f/E,0B3B+f+E;E2B9f/E,mB3B0FW;E2BzFX,mB3BgMsB;E2B/LtB,qBAAoB;EACpB,oBAAmB;CAKpB;;A1B/BG;E0B6BA,sBAAqB;C1B1BpB;;A0BmCL;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;MAAtB,uBAAsB;EACtB,gBAAe;EACf,iBAAgB;EAChB,iBAAgB;CAWjB;;AAhBD;EAQI,iBAAgB;EAChB,gBAAe;CAChB;;AAVH;EAaI,iBAAgB;EAChB,YAAW;CACZ;;AAQH;EACE,sBAAqB;EACrB,oB3B6bmC;E2B5bnC,uB3B4bmC;C2B3bpC;;AAWD;EACE,8BAAgB;MAAhB,iBAAgB;EAGhB,uBAAmB;MAAnB,oBAAmB;CACpB;;AAGD;EACE,yB3BmcyC;E2BlczC,mB3BkIsB;E2BjItB,eAAc;EACd,wBAAuB;EACvB,8BAAuC;ErB3GrC,uBNmN2B;C2BlG9B;;A1B/FG;E0B6FA,sBAAqB;C1B1FpB;;A0BgGL;EACE,sBAAqB;EACrB,aAAY;EACZ,cAAa;EACb,uBAAsB;EACtB,YAAW;EACX,oCAAmC;EACnC,2BAA0B;CAC3B;;AhB5DG;EgBqEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7B46FR;;AapgGG;EgBkFA;IAUI,wBAAmB;QAAnB,oBAAmB;IACnB,sBAAiB;QAAjB,kBAAiB;IACjB,qBAA2B;QAA3B,4BAA2B;GAoC9B;EAhDD;IAeM,wBAAmB;QAAnB,oBAAmB;GAepB;EA9BL;IAkBQ,mBAAkB;GACnB;EAnBP;IAsBQ,SAAQ;IACR,WAAU;GACX;EAxBP;IA2BQ,qBAAoB;IACpB,oBAAmB;GACpB;EA7BP;;IAmCM,sBAAiB;QAAjB,kBAAiB;GAClB;EApCL;IAwCM,gCAAwB;IAAxB,yBAAwB;GACzB;EAzCL;IA6CM,cAAa;GACd;C7Bo6FR;;AavhGG;EgBqEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7Bo9FR;;Aa5iGG;EgBkFA;IAUI,wBAAmB;QAAnB,oBAAmB;IACnB,sBAAiB;QAAjB,kBAAiB;IACjB,qBAA2B;QAA3B,4BAA2B;GAoC9B;EAhDD;IAeM,wBAAmB;QAAnB,oBAAmB;GAepB;EA9BL;IAkBQ,mBAAkB;GACnB;EAnBP;IAsBQ,SAAQ;IACR,WAAU;GACX;EAxBP;IA2BQ,qBAAoB;IACpB,oBAAmB;GACpB;EA7BP;;IAmCM,sBAAiB;QAAjB,kBAAiB;GAClB;EApCL;IAwCM,gCAAwB;IAAxB,yBAAwB;GACzB;EAzCL;IA6CM,cAAa;GACd;C7B48FR;;Aa/jGG;EgBqEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7B4/FR;;AaplGG;EgBkFA;IAUI,wBAAmB;QAAnB,oBAAmB;IACnB,sBAAiB;QAAjB,kBAAiB;IACjB,qBAA2B;QAA3B,4BAA2B;GAoC9B;EAhDD;IAeM,wBAAmB;QAAnB,oBAAmB;GAepB;EA9BL;IAkBQ,mBAAkB;GACnB;EAnBP;IAsBQ,SAAQ;IACR,WAAU;GACX;EAxBP;IA2BQ,qBAAoB;IACpB,oBAAmB;GACpB;EA7BP;;IAmCM,sBAAiB;QAAjB,kBAAiB;GAClB;EApCL;IAwCM,gCAAwB;IAAxB,yBAAwB;GACzB;EAzCL;IA6CM,cAAa;GACd;C7Bo/FR;;AavmGG;EgBqEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7BoiGR;;Aa5nGG;EgBkFA;IAUI,wBAAmB;QAAnB,oBAAmB;IACnB,sBAAiB;QAAjB,kBAAiB;IACjB,qBAA2B;QAA3B,4BAA2B;GAoC9B;EAhDD;IAeM,wBAAmB;QAAnB,oBAAmB;GAepB;EA9BL;IAkBQ,mBAAkB;GACnB;EAnBP;IAsBQ,SAAQ;IACR,WAAU;GACX;EAxBP;IA2BQ,qBAAoB;IACpB,oBAAmB;GACpB;EA7BP;;IAmCM,sBAAiB;QAAjB,kBAAiB;GAClB;EApCL;IAwCM,gCAAwB;IAAxB,yBAAwB;GACzB;EAzCL;IA6CM,cAAa;GACd;C7B4hGR;;A6B/kGD;EAeQ,wBAAmB;MAAnB,oBAAmB;EACnB,sBAAiB;MAAjB,kBAAiB;EACjB,qBAA2B;MAA3B,4BAA2B;CAoC9B;;AArDL;;EASU,iBAAgB;EAChB,gBAAe;CAChB;;AAXT;EAoBU,wBAAmB;MAAnB,oBAAmB;CAepB;;AAnCT;EAuBY,mBAAkB;CACnB;;AAxBX;EA2BY,SAAQ;EACR,WAAU;CACX;;AA7BX;EAgCY,qBAAoB;EACpB,oBAAmB;CACpB;;AAlCX;;EAwCU,sBAAiB;MAAjB,kBAAiB;CAClB;;AAzCT;EA6CU,gCAAwB;EAAxB,yBAAwB;CACzB;;AA9CT;EAkDU,cAAa;CACd;;AAYT;EAEI,0B3B1IS;C2B+IV;;AAPH;EAKM,0B3B7IO;CCnCR;;A0B2KL;EAWM,0B3BnJO;C2B4JR;;AApBL;EAcQ,0B3BtJK;CCnCR;;A0B2KL;EAkBQ,0B3B1JK;C2B2JN;;AAnBP;;;;EA0BM,0B3BlKO;C2BmKR;;AA3BL;EA+BI,0B3BvKS;E2BwKT,iC3BxKS;C2ByKV;;AAjCH;EAoCI,sQ3BqV8R;C2BpV/R;;AArCH;EAwCI,0B3BhLS;C2BiLV;;AAIH;EAEI,a3BjMS;C2BsMV;;AAPH;EAKM,a3BpMO;CCzBR;;A0BwNL;EAWM,gC3B1MO;C2BmNR;;AApBL;EAcQ,iC3B7MK;CCzBR;;A0BwNL;EAkBQ,iC3BjNK;C2BkNN;;AAnBP;;;;EA0BM,a3BzNO;C2B0NR;;AA3BL;EA+BI,gC3B9NS;E2B+NT,uC3B/NS;C2BgOV;;AAjCH;EAoCI,4Q3BiS4R;C2BhS7R;;AArCH;EAwCI,gC3BvOS;C2BwOV;;ACtRH;EACE,mBAAkB;EAClB,qBAAa;EAAb,cAAa;EACb,2BAAsB;MAAtB,uBAAsB;EACtB,aAAY;EACZ,sBAAqB;EACrB,uB5BwCW;E4BvCX,4BAA2B;EAC3B,uC5BgDW;EMxDT,uBNmN2B;C4BzM9B;;AAED;EAGE,mBAAc;MAAd,eAAc;EACd,iB5BilBgC;C4BhlBjC;;AAED;EACE,uB5B4kB+B;C4B3kBhC;;AAED;EACE,sBAAgC;EAChC,iBAAgB;CACjB;;AAED;EACE,iBAAgB;CACjB;;A3BvBG;E2B2BA,sBAAqB;C3B3BA;;A2ByBzB;EAMI,qB5B2jB8B;C4B1jB/B;;AAGH;EtBpCI,gCN6M2B;EM5M3B,iCN4M2B;C4BrK1B;;AAJL;EtBtBI,oCN+L2B;EM9L3B,mCN8L2B;C4B/J1B;;AASL;EACE,yB5BmiBgC;E4BliBhC,iBAAgB;EAChB,sC5BRW;E4BSX,8C5BTW;C4BcZ;;AATD;EtB7DI,2DsBoE8E;CAC/E;;AAGH;EACE,yB5BwhBgC;E4BvhBhC,sC5BlBW;E4BmBX,2C5BnBW;C4BwBZ;;AARD;EtBxEI,2DNqmB2E;C4BthB5E;;AAQH;EACE,wBAAkC;EAClC,wB5BugB+B;E4BtgB/B,uBAAiC;EACjC,iBAAgB;CACjB;;AAED;EACE,wBAAkC;EAClC,uBAAiC;CAClC;;AAGD;EACE,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,UAAS;EACT,QAAO;EACP,iB5B+fgC;C4B9fjC;;AAED;EACE,YAAW;EtB9GT,mCNqmB2E;C4Brf9E;;AAGD;EACE,YAAW;EtB9GT,4CN+lB2E;EM9lB3E,6CN8lB2E;C4B/e9E;;AAED;EACE,YAAW;EtBrGT,gDNilB2E;EMhlB3E,+CNglB2E;C4B1e9E;;AjBvEG;EiB6EF;IACE,qBAAa;IAAb,cAAa;IACb,wBAAmB;QAAnB,oBAAmB;IACnB,oB5BuegD;I4BtehD,mB5BsegD;G4B7djD;EAbD;IAOI,qBAAa;IAAb,cAAa;IACb,iBAAY;QAAZ,aAAY;IACZ,2BAAsB;QAAtB,uBAAsB;IACtB,mB5Bge8C;I4B/d9C,kB5B+d8C;G4B9d/C;C9ByzGJ;;Aal5GG;EiBmGF;IACE,qBAAa;IAAb,cAAa;IACb,wBAAmB;QAAnB,oBAAmB;GA2CpB;EA7CD;IAKI,iBAAY;QAAZ,aAAY;GAuCb;EA5CH;IAQM,eAAc;IACd,eAAc;GACf;EAVL;ItB1IE,2BsByJoC;ItBxJpC,8BsBwJoC;GAQ/B;EAvBP;IAkBU,2BAA0B;GAC3B;EAnBT;IAqBU,8BAA6B;GAC9B;EAtBT;ItB5HE,0BsBqJmC;ItBpJnC,6BsBoJmC;GAQ9B;EAjCP;IA4BU,0BAAyB;GAC1B;EA7BT;IA+BU,6BAA4B;GAC7B;EAhCT;IAoCQ,iBAAgB;GAMjB;EA1CP;;IAwCU,iBAAgB;GACjB;C9B+yGV;;A8BnyGD;EAEI,uB5BkZ6B;C4BjZ9B;;AjB3JC;EiBwJJ;IAMI,wB5B2ZyB;Y4B3ZzB,gB5B2ZyB;I4B1ZzB,4B5B2Z+B;Y4B3Z/B,oB5B2Z+B;G4BpZlC;EAdD;IAUM,sBAAqB;IACrB,YAAW;GACZ;C9BsyGJ;;A+BlgHD;EACE,sB7BixBkC;E6BhxBlC,oBAAmB;EACnB,iBAAgB;EAChB,0B7BgDgB;EMhDd,uBNmN2B;C6BhN9B;;ACNC;EACE,eAAc;EACd,YAAW;EACX,YAAW;CACZ;;ADIH;EACE,YAAW;CA2BZ;;AA5BD;EAKI,sBAAqB;EACrB,sB7BowBiC;E6BnwBjC,qB7BmwBiC;E6BlwBjC,e7BuCc;E6BtCd,aAAiC;CAClC;;AAVH;EAmBI,2BAA0B;CAC3B;;AApBH;EAsBI,sBAAqB;CACtB;;AAvBH;EA0BI,e7BqBc;C6BpBf;;AEpCH;EACE,qBAAa;EAAb,cAAa;EAEb,gBAAe;EACf,iBAAgB;EzBAd,uBNmN2B;C+BjN9B;;AAED;EAGM,eAAc;EzBoBhB,gCNwL2B;EMvL3B,mCNuL2B;C+B1M1B;;AALL;EzBSI,iCNsM2B;EMrM3B,oCNqM2B;C+BrM1B;;AAVL;EAcI,WAAU;EACV,Y/B2BS;E+B1BT,0B/BkDa;E+BjDb,sB/BiDa;C+BhDd;;AAlBH;EAqBI,e/B2Bc;E+B1Bd,qBAAoB;EACpB,uB/BmBS;E+BlBT,mB/ByjBuC;C+BxjBxC;;AAGH;EACE,mBAAkB;EAClB,eAAc;EACd,wB/B4hB0C;E+B3hB1C,kBAAiB;EACjB,kB/B+hBwC;E+B9hBxC,e/BgCe;E+B/Bf,uB/BOW;E+BNX,uB/BiiByC;C+BzhB1C;;A9B9BG;E8ByBA,e/BuH4C;E+BtH5C,sBAAqB;EACrB,0B/BGc;E+BFd,mB/B+hBuC;CCxjBtC;;A+BtBH;EACE,wBhCmkBwC;EgClkBxC,mBhCyOoB;EgCxOpB,iBhC4MwB;CgC3MzB;;AAIG;E1BoBF,+BNyL0B;EMxL1B,kCNwL0B;CgC3MvB;;AAGD;E1BCF,gCNuM0B;EMtM1B,mCNsM0B;CgCtMvB;;AAfL;EACE,wBhCikBuC;EgChkBvC,oBhC0OoB;EgCzOpB,iBhC6MwB;CgC5MzB;;AAIG;E1BoBF,+BN0L0B;EMzL1B,kCNyL0B;CgC5MvB;;AAGD;E1BCF,gCNwM0B;EMvM1B,mCNuM0B;CgCvMvB;;ACbP;EACE,sBAAqB;EACrB,sBjC+pBgC;EiC9pBhC,ejC2pB+B;EiC1pB/B,kBjCyOqB;EiCxOrB,eAAc;EACd,YjCuCW;EiCtCX,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;E3BVtB,uBNmN2B;CiClM9B;;AAhBD;EAcI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qBjCsoBgC;EiCroBhC,oBjCqoBgC;EMpqB9B,qBNuqB+B;CiCtoBlC;;AAOC;ElBiBE,YAAW;EmB3Db,0BlCwEe;CiC5Bd;;AhCxBC;EcuCA,YAAW;EmBtDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBiBE,YAAW;EmB3Db,0BlCsDgB;CiCVf;;AhCxBC;EcuCA,YAAW;EmBtDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBiBE,YAAW;EmB3Db,0BlC+Ee;CiCnCd;;AhCxBC;EcuCA,YAAW;EmBtDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBiBE,YAAW;EmB3Db,0BlCiFe;CiCrCd;;AhCxBC;EcuCA,YAAW;EmBtDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBeE,YAAW;EmBzDb,0BlC8Ee;CiClCd;;AhCxBC;EcqCA,YAAW;EmBpDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBiBE,YAAW;EmB3Db,0BlC4Ee;CiChCd;;AhCxBC;EcuCA,YAAW;EmBtDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBeE,YAAW;EmBzDb,0BlCiDgB;CiCLf;;AhCxBC;EcqCA,YAAW;EmBpDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AgCmBH;ElBiBE,YAAW;EmB3Db,0BlCwDgB;CiCZf;;AhCxBC;EcuCA,YAAW;EmBtDT,sBAAqB;EACrB,0BAAkC;CjCiBnC;;AkCzBL;EACE,mBAAoD;EACpD,oBnC4lBmC;EmC3lBnC,0BnCiDgB;EMhDd,sBNoN0B;CmC/M7B;;AxB+CG;EwBxDJ;IAOI,mBnCulBiC;GmCrlBpC;CrCkvHA;;AqChvHD;EACE,iBAAgB;EAChB,gBAAe;E7BTb,iB6BUsB;CACzB;;ACXD;EACE,yBpC6sBmC;EoC5sBnC,oBpC6sBgC;EoC5sBhC,8BAA6C;E9BH3C,uBNmN2B;CoC9M9B;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,kBpC+NqB;CoC9NtB;;AAOD;EAGI,mBAAkB;EAClB,cpCkrBgC;EoCjrBhC,gBpCkrBiC;EoCjrBjC,yBpCirBiC;EoChrBjC,eAAc;CACf;;AASD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADiCD;EC3CA,etBsFkE;EsBrFlE,0BtBmFuE;EsBlFvE,sBtBkFuE;CqBvCtE;;ACzCD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ACXH;EACE;IAAO,4BAAuC;GxC44H7C;EwC34HD;IAAK,yBAAwB;GxC84H5B;CACF;;AwCj5HD;EACE;IAAO,4BAAuC;GxC44H7C;EwC34HD;IAAK,yBAAwB;GxC84H5B;CACF;;AwC54HD;EACE,qBAAa;EAAb,cAAa;EACb,iBAAgB;EAChB,mBtCotBoC;EsCntBpC,kBtCktBkC;EsCjtBlC,mBAAkB;EAClB,0BtCyCgB;EMhDd,uBNmN2B;CsCzM9B;;AAED;EACE,atC0sBkC;EsCzsBlC,kBtCysBkC;EsCxsBlC,YtC+BW;EsC9BX,0BtCsDe;EOrEX,4BP8tBwC;CsC7sB7C;;AAED;ECWE,sMAA6I;EDT7I,2BtCisBkC;CsChsBnC;;AAED;EACE,2DtCosBgD;UsCpsBhD,mDtCosBgD;CsCnsBjD;;AE/BD;EACE,qBAAa;EAAb,cAAa;EACb,sBAAuB;MAAvB,wBAAuB;CACxB;;AAED;EACE,YAAO;MAAP,QAAO;CACR;;ACHD;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;MAAtB,uBAAsB;EAGtB,gBAAe;EACf,iBAAgB;CACjB;;AAQD;EACE,YAAW;EACX,ezCoCgB;EyCnChB,oBAAmB;CAapB;;AxCbG;EwCIA,ezC+Bc;EyC9Bd,sBAAqB;EACrB,0BzCuBc;CC1Bb;;AwCNL;EAaI,ezC2Bc;EyC1Bd,0BzCmBc;CyClBf;;AAQH;EACE,mBAAkB;EAClB,eAAc;EACd,yBzCgsBsC;EyC9rBtC,oBzCsKgB;EyCrKhB,uBzCEW;EyCDX,uCzCWW;CyCiBZ;;AAnCD;EnChCI,gCN6M2B;EM5M3B,iCN4M2B;CyClK5B;;AAXH;EAcI,iBAAgB;EnChChB,oCN+L2B;EM9L3B,mCN8L2B;CyC7J5B;;AxCpCC;EwCuCA,sBAAqB;CxCpCpB;;AwCiBL;EAwBI,ezCVc;EyCWd,uBzCjBS;CyCkBV;;AA1BH;EA8BI,WAAU;EACV,YzCvBS;EyCwBT,0BzCAa;EyCCb,sBzCDa;CyCEd;;AASH;EAEI,gBAAe;EACf,eAAc;EACd,iBAAgB;CACjB;;AALH;EASM,cAAa;CACd;;AAVL;EAeM,iBAAgB;CACjB;;AClGH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC;;;EyCRE,e3ByE8D;E2BxE9D,0BAAyC;CzCU1C;;AyChBH;;EAUI,YAAW;EACX,0B3BmE8D;E2BlE9D,sB3BkE8D;C2BjE/D;;AAnBH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC;;;EyCRE,e3ByE8D;E2BxE9D,0BAAyC;CzCU1C;;AyChBH;;EAUI,YAAW;EACX,0B3BmE8D;E2BlE9D,sB3BkE8D;C2BjE/D;;AAnBH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC;;;EyCRE,e3ByE8D;E2BxE9D,0BAAyC;CzCU1C;;AyChBH;;EAUI,YAAW;EACX,0B3BmE8D;E2BlE9D,sB3BkE8D;C2BjE/D;;AAnBH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC;;;EyCRE,e3ByE8D;E2BxE9D,0BAAyC;CzCU1C;;AyChBH;;EAUI,YAAW;EACX,0B3BmE8D;E2BlE9D,sB3BkE8D;C2BjE/D;;AAnBH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC;;;EyCRE,e3ByE8D;E2BxE9D,0BAAyC;CzCU1C;;AyChBH;;EAUI,YAAW;EACX,0B3BmE8D;E2BlE9D,sB3BkE8D;C2BjE/D;;AAnBH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC;;;EyCRE,e3ByE8D;E2BxE9D,0BAAyC;CzCU1C;;AyChBH;;EAUI,YAAW;EACX,0B3BmE8D;E2BlE9D,sB3BkE8D;C2BjE/D;;AAnBH;EACE,e3BmFgE;E2BlFhE,0B3BgFqE;C2B/EtE;;AAGD;;EAEE,e3B4EgE;C2BhEjE;;AzCDC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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.0.0-beta (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"print\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n","// scss-lint:disable QualifyingElement\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// http://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: #000 !important; // Black prints faster:\n // http://www.sanbeiji.com/archives/953\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid #999; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n }\n}\n","/*!\n * Bootstrap v4.0.0-beta (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n\nhtml {\n box-sizing: border-box;\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: .5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: bold;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #868e96;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: left;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.1;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.1;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.1;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.1;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: normal;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 5px;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #868e96;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 0.25rem;\n transition: all 0.2s ease-in-out;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #868e96;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n padding: 0.2rem 0.4rem;\n font-size: 90%;\n color: #bd4147;\n background-color: #f8f9fa;\n border-radius: 0.25rem;\n}\n\na > code {\n padding: 0;\n color: inherit;\n background-color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 90%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n font-size: 90%;\n color: #212529;\n}\n\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n background-color: transparent;\n border-radius: 0;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-right: 15px;\n padding-left: 15px;\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 15px;\n padding-left: 15px;\n width: 100%;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #e9ecef;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #e9ecef;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #e9ecef;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #e9ecef;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #e9ecef;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #dddfe2;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #cfd2d6;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #cfd2d6;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.thead-inverse th {\n color: #fff;\n background-color: #212529;\n}\n\n.thead-default th {\n color: #495057;\n background-color: #e9ecef;\n}\n\n.table-inverse {\n color: #fff;\n background-color: #212529;\n}\n\n.table-inverse th,\n.table-inverse td,\n.table-inverse thead th {\n border-color: #32383e;\n}\n\n.table-inverse.table-bordered {\n border: 0;\n}\n\n.table-inverse.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-inverse.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 991px) {\n .table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive.table-bordered {\n border: 0;\n }\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n line-height: 1.25;\n color: #495057;\n background-color: #fff;\n background-image: none;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: none;\n}\n\n.form-control::placeholder {\n color: #868e96;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n}\n\n.col-form-label {\n padding-top: calc(0.5rem - 1px * 2);\n padding-bottom: calc(0.5rem - 1px * 2);\n margin-bottom: 0;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem - 1px * 2);\n padding-bottom: calc(0.5rem - 1px * 2);\n font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem - 1px * 2);\n padding-bottom: calc(0.25rem - 1px * 2);\n font-size: 0.875rem;\n}\n\n.col-form-legend {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n font-size: 1rem;\n}\n\n.form-control-plaintext {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n line-height: 1.25;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .form-control-plaintext.input-group-addon,\n.input-group-sm > .input-group-btn > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .form-control-plaintext.input-group-addon,\n.input-group-lg > .input-group-btn > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > select.input-group-addon:not([size]):not([multiple]),\n.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > select.input-group-addon:not([size]):not([multiple]),\n.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {\n height: calc(2.3125rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n margin-bottom: 0.5rem;\n}\n\n.form-check.disabled .form-check-label {\n color: #868e96;\n}\n\n.form-check-label {\n padding-left: 1.25rem;\n margin-bottom: 0;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.25rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:only-child {\n position: static;\n}\n\n.form-check-inline {\n display: inline-block;\n}\n\n.form-check-inline .form-check-label {\n vertical-align: middle;\n}\n\n.form-check-inline + .form-check-inline {\n margin-left: 0.75rem;\n}\n\n.invalid-feedback {\n display: none;\n margin-top: .25rem;\n font-size: .875rem;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n width: 250px;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .invalid-feedback,\n.was-validated .form-control:valid ~ .invalid-tooltip, .form-control.is-valid ~ .invalid-feedback,\n.form-control.is-valid ~ .invalid-tooltip, .was-validated\n.custom-select:valid ~ .invalid-feedback,\n.was-validated\n.custom-select:valid ~ .invalid-tooltip,\n.custom-select.is-valid ~ .invalid-feedback,\n.custom-select.is-valid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid + .form-check-label, .form-check-input.is-valid + .form-check-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-indicator, .custom-control-input.is-valid ~ .custom-control-indicator {\n background-color: rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-description, .custom-control-input.is-valid ~ .custom-control-description {\n color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-control, .custom-file-input.is-valid ~ .custom-file-control {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-control::before, .custom-file-input.is-valid ~ .custom-file-control::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid:focus, .custom-file-input.is-valid:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid + .form-check-label, .form-check-input.is-invalid + .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-indicator, .custom-control-input.is-invalid ~ .custom-control-indicator {\n background-color: rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-description, .custom-control-input.is-invalid ~ .custom-control-description {\n color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-control, .custom-file-input.is-invalid ~ .custom-file-control {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-control::before, .custom-file-input.is-invalid ~ .custom-file-control::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid:focus, .custom-file-input.is-invalid:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group {\n width: auto;\n }\n .form-inline .form-control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n margin-top: 0;\n margin-bottom: 0;\n }\n .form-inline .form-check-label {\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: 0;\n }\n .form-inline .custom-control-indicator {\n position: static;\n display: inline-block;\n margin-right: 0.25rem;\n vertical-align: text-bottom;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: normal;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n line-height: 1.25;\n border-radius: 0.25rem;\n transition: all 0.15s ease-in-out;\n}\n\n.btn:focus, .btn:hover {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: .65;\n}\n\n.btn:active, .btn.active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:active, .btn-primary.active,\n.show > .btn-primary.dropdown-toggle {\n background-color: #0069d9;\n background-image: none;\n border-color: #0062cc;\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #868e96;\n border-color: #868e96;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #727b84;\n border-color: #6c757d;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 3px rgba(134, 142, 150, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n background-color: #868e96;\n border-color: #868e96;\n}\n\n.btn-secondary:active, .btn-secondary.active,\n.show > .btn-secondary.dropdown-toggle {\n background-color: #727b84;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:active, .btn-success.active,\n.show > .btn-success.dropdown-toggle {\n background-color: #218838;\n background-image: none;\n border-color: #1e7e34;\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:active, .btn-info.active,\n.show > .btn-info.dropdown-toggle {\n background-color: #138496;\n background-image: none;\n border-color: #117a8b;\n}\n\n.btn-warning {\n color: #111;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #111;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:active, .btn-warning.active,\n.show > .btn-warning.dropdown-toggle {\n background-color: #e0a800;\n background-image: none;\n border-color: #d39e00;\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:active, .btn-danger.active,\n.show > .btn-danger.dropdown-toggle {\n background-color: #c82333;\n background-image: none;\n border-color: #bd2130;\n}\n\n.btn-light {\n color: #111;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #111;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 3px rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:active, .btn-light.active,\n.show > .btn-light.dropdown-toggle {\n background-color: #e2e6ea;\n background-image: none;\n border-color: #dae0e5;\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 3px rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:active, .btn-dark.active,\n.show > .btn-dark.dropdown-toggle {\n background-color: #23272b;\n background-image: none;\n border-color: #1d2124;\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:active, .btn-outline-primary.active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-secondary {\n color: #868e96;\n background-color: transparent;\n background-image: none;\n border-color: #868e96;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #868e96;\n border-color: #868e96;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 3px rgba(134, 142, 150, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #868e96;\n background-color: transparent;\n}\n\n.btn-outline-secondary:active, .btn-outline-secondary.active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #868e96;\n border-color: #868e96;\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:active, .btn-outline-success.active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:active, .btn-outline-info.active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #fff;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:active, .btn-outline-warning.active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:active, .btn-outline-danger.active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #fff;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 3px rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:active, .btn-outline-light.active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #fff;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 3px rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:active, .btn-outline-dark.active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-link {\n font-weight: normal;\n color: #007bff;\n border-radius: 0;\n}\n\n.btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled {\n background-color: transparent;\n}\n\n.btn-link, .btn-link:focus, .btn-link:active {\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:hover {\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n}\n\n.btn-link:disabled {\n color: #868e96;\n}\n\n.btn-link:disabled:focus, .btn-link:disabled:hover {\n text-decoration: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n opacity: 0;\n transition: opacity 0.15s linear;\n}\n\n.fade.show {\n opacity: 1;\n}\n\n.collapse {\n display: none;\n}\n\n.collapse.show {\n display: block;\n}\n\ntr.collapse.show {\n display: table-row;\n}\n\ntbody.collapse.show {\n display: table-row-group;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropup .dropdown-menu {\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n border-top: 0;\n border-bottom: 0.3em solid;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: normal;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background: none;\n border: 0;\n}\n\n.dropdown-item:focus, .dropdown-item:hover {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #868e96;\n background-color: transparent;\n}\n\n.show > a {\n outline: 0;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #868e96;\n white-space: nowrap;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 0 1 auto;\n margin-bottom: 0;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 2;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group > .btn-group {\n float: left;\n}\n\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn + .dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.btn + .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n width: 100%;\n}\n\n.input-group .form-control {\n position: relative;\n z-index: 2;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {\n z-index: 3;\n}\n\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: flex;\n align-items: center;\n}\n\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n\n.input-group-addon,\n.input-group-btn {\n white-space: nowrap;\n vertical-align: middle;\n}\n\n.input-group-addon {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.25;\n color: #495057;\n text-align: center;\n background-color: #e9ecef;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.input-group-addon.form-control-sm,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .input-group-addon.btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem;\n}\n\n.input-group-addon.form-control-lg,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .input-group-addon.btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem;\n}\n\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group .form-control:not(:last-child),\n.input-group-addon:not(:last-child),\n.input-group-btn:not(:last-child) > .btn,\n.input-group-btn:not(:last-child) > .btn-group > .btn,\n.input-group-btn:not(:last-child) > .dropdown-toggle,\n.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group-addon:not(:last-child) {\n border-right: 0;\n}\n\n.input-group .form-control:not(:first-child),\n.input-group-addon:not(:first-child),\n.input-group-btn:not(:first-child) > .btn,\n.input-group-btn:not(:first-child) > .btn-group > .btn,\n.input-group-btn:not(:first-child) > .dropdown-toggle,\n.input-group-btn:not(:last-child) > .btn:not(:first-child),\n.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.form-control + .input-group-addon:not(:first-child) {\n border-left: 0;\n}\n\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n\n.input-group-btn > .btn {\n position: relative;\n}\n\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n\n.input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {\n z-index: 3;\n}\n\n.input-group-btn:not(:last-child) > .btn,\n.input-group-btn:not(:last-child) > .btn-group {\n margin-right: -1px;\n}\n\n.input-group-btn:not(:first-child) > .btn,\n.input-group-btn:not(:first-child) > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n\n.input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover,\n.input-group-btn:not(:first-child) > .btn-group:focus,\n.input-group-btn:not(:first-child) > .btn-group:active,\n.input-group-btn:not(:first-child) > .btn-group:hover {\n z-index: 3;\n}\n\n.custom-control {\n position: relative;\n display: inline-flex;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-indicator {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-indicator {\n box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007bff;\n}\n\n.custom-control-input:active ~ .custom-control-indicator {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-indicator {\n background-color: #e9ecef;\n}\n\n.custom-control-input:disabled ~ .custom-control-description {\n color: #868e96;\n}\n\n.custom-control-indicator {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n user-select: none;\n background-color: #ddd;\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-indicator {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {\n background-color: #007bff;\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-indicator {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-indicator {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-controls-stacked {\n display: flex;\n flex-direction: column;\n}\n\n.custom-controls-stacked .custom-control {\n margin-bottom: 0.25rem;\n}\n\n.custom-controls-stacked .custom-control + .custom-control {\n margin-left: 0;\n}\n\n.custom-select {\n display: inline-block;\n max-width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.25;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: none;\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select:disabled {\n color: #868e96;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n max-width: 100%;\n height: 2.5rem;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n min-width: 14rem;\n max-width: 100%;\n height: 2.5rem;\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-control {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 5;\n height: 2.5rem;\n padding: 0.5rem 1rem;\n line-height: 1.5;\n color: #495057;\n pointer-events: none;\n user-select: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.custom-file-control:lang(en):empty::after {\n content: \"Choose file...\";\n}\n\n.custom-file-control::before {\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n z-index: 6;\n display: block;\n height: 2.5rem;\n padding: 0.5rem 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #e9ecef;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-file-control:lang(en)::before {\n content: \"Browse\";\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:focus, .nav-link:hover {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #868e96;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {\n border-color: #e9ecef #e9ecef #ddd;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #868e96;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #ddd #ddd #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.show > .nav-pills .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:focus, .navbar-brand:hover {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:focus, .navbar-toggler:hover {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-dark .navbar-brand {\n color: white;\n}\n\n.navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover {\n color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: white;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group .card {\n flex: 1 0 0%;\n }\n .card-group .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group .card:first-child .card-img-top {\n border-top-right-radius: 0;\n }\n .card-group .card:first-child .card-img-bottom {\n border-bottom-right-radius: 0;\n }\n .card-group .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group .card:last-child .card-img-top {\n border-top-left-radius: 0;\n }\n .card-group .card:last-child .card-img-bottom {\n border-bottom-left-radius: 0;\n }\n .card-group .card:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n .card-group .card:not(:first-child):not(:last-child) .card-img-top,\n .card-group .card:not(:first-child):not(:last-child) .card-img-bottom {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.breadcrumb {\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.breadcrumb-item {\n float: left;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: #868e96;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #868e96;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #868e96;\n pointer-events: none;\n background-color: #fff;\n border-color: #ddd;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n\n.page-link:focus, .page-link:hover {\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #ddd;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:focus, .badge-primary[href]:hover {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #868e96;\n}\n\n.badge-secondary[href]:focus, .badge-secondary[href]:hover {\n color: #fff;\n text-decoration: none;\n background-color: #6c757d;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:focus, .badge-success[href]:hover {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:focus, .badge-info[href]:hover {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #111;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:focus, .badge-warning[href]:hover {\n color: #111;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:focus, .badge-danger[href]:hover {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #111;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:focus, .badge-light[href]:hover {\n color: #111;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:focus, .badge-dark[href]:hover {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: bold;\n}\n\n.alert-dismissible .close {\n position: relative;\n top: -0.75rem;\n right: -1.25rem;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #464a4e;\n background-color: #e7e8ea;\n border-color: #dddfe2;\n}\n\n.alert-secondary hr {\n border-top-color: #cfd2d6;\n}\n\n.alert-secondary .alert-link {\n color: #2e3133;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n overflow: hidden;\n font-size: 0.75rem;\n line-height: 1rem;\n text-align: center;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n height: 1rem;\n line-height: 1rem;\n color: #fff;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:focus, .list-group-item-action:hover {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:focus, .list-group-item:hover {\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #868e96;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\na.list-group-item-primary,\nbutton.list-group-item-primary {\n color: #004085;\n}\n\na.list-group-item-primary:focus, a.list-group-item-primary:hover,\nbutton.list-group-item-primary:focus,\nbutton.list-group-item-primary:hover {\n color: #004085;\n background-color: #9fcdff;\n}\n\na.list-group-item-primary.active,\nbutton.list-group-item-primary.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #464a4e;\n background-color: #dddfe2;\n}\n\na.list-group-item-secondary,\nbutton.list-group-item-secondary {\n color: #464a4e;\n}\n\na.list-group-item-secondary:focus, a.list-group-item-secondary:hover,\nbutton.list-group-item-secondary:focus,\nbutton.list-group-item-secondary:hover {\n color: #464a4e;\n background-color: #cfd2d6;\n}\n\na.list-group-item-secondary.active,\nbutton.list-group-item-secondary.active {\n color: #fff;\n background-color: #464a4e;\n border-color: #464a4e;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #155724;\n}\n\na.list-group-item-success:focus, a.list-group-item-success:hover,\nbutton.list-group-item-success:focus,\nbutton.list-group-item-success:hover {\n color: #155724;\n background-color: #b1dfbb;\n}\n\na.list-group-item-success.active,\nbutton.list-group-item-success.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #0c5460;\n}\n\na.list-group-item-info:focus, a.list-group-item-info:hover,\nbutton.list-group-item-info:focus,\nbutton.list-group-item-info:hover {\n color: #0c5460;\n background-color: #abdde5;\n}\n\na.list-group-item-info.active,\nbutton.list-group-item-info.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #856404;\n}\n\na.list-group-item-warning:focus, a.list-group-item-warning:hover,\nbutton.list-group-item-warning:focus,\nbutton.list-group-item-warning:hover {\n color: #856404;\n background-color: #ffe8a1;\n}\n\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #721c24;\n}\n\na.list-group-item-danger:focus, a.list-group-item-danger:hover,\nbutton.list-group-item-danger:focus,\nbutton.list-group-item-danger:hover {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\na.list-group-item-light,\nbutton.list-group-item-light {\n color: #818182;\n}\n\na.list-group-item-light:focus, a.list-group-item-light:hover,\nbutton.list-group-item-light:focus,\nbutton.list-group-item-light:hover {\n color: #818182;\n background-color: #ececf6;\n}\n\na.list-group-item-light.active,\nbutton.list-group-item-light.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\na.list-group-item-dark,\nbutton.list-group-item-dark {\n color: #1b1e21;\n}\n\na.list-group-item-dark:focus, a.list-group-item-dark:hover,\nbutton.list-group-item-dark:focus,\nbutton.list-group-item-dark:hover {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\na.list-group-item-dark.active,\nbutton.list-group-item-dark.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:focus, .close:hover {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -25%);\n}\n\n.modal.show .modal-dialog {\n transform: translate(0, 0);\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px;\n border-bottom: 1px solid #e9ecef;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 15px;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 15px;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 30px auto;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 5px;\n height: 5px;\n}\n\n.tooltip.bs-tooltip-top, .tooltip.bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 5px 0;\n}\n\n.tooltip.bs-tooltip-top .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.tooltip.bs-tooltip-top .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n margin-left: -3px;\n content: \"\";\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n\n.tooltip.bs-tooltip-right, .tooltip.bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 5px;\n}\n\n.tooltip.bs-tooltip-right .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n}\n\n.tooltip.bs-tooltip-right .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n margin-top: -3px;\n content: \"\";\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n\n.tooltip.bs-tooltip-bottom, .tooltip.bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 5px 0;\n}\n\n.tooltip.bs-tooltip-bottom .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.tooltip.bs-tooltip-bottom .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n margin-left: -3px;\n content: \"\";\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n\n.tooltip.bs-tooltip-left, .tooltip.bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 5px;\n}\n\n.tooltip.bs-tooltip-left .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n}\n\n.tooltip.bs-tooltip-left .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n margin-top: -3px;\n content: \"\";\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n border-color: transparent;\n border-style: solid;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n padding: 1px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 10px;\n height: 5px;\n}\n\n.popover .arrow::before,\n.popover .arrow::after {\n position: absolute;\n display: block;\n border-color: transparent;\n border-style: solid;\n}\n\n.popover .arrow::before {\n content: \"\";\n border-width: 11px;\n}\n\n.popover .arrow::after {\n content: \"\";\n border-width: 11px;\n}\n\n.popover.bs-popover-top, .popover.bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 10px;\n}\n\n.popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-bottom-width: 0;\n}\n\n.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: -11px;\n margin-left: -6px;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: -10px;\n margin-left: -6px;\n border-top-color: #fff;\n}\n\n.popover.bs-popover-right, .popover.bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 10px;\n}\n\n.popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n}\n\n.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n margin-top: -8px;\n border-left-width: 0;\n}\n\n.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: -11px;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: -10px;\n border-right-color: #fff;\n}\n\n.popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 10px;\n}\n\n.popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n margin-left: -7px;\n border-top-width: 0;\n}\n\n.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: -11px;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: -10px;\n border-bottom-color: #fff;\n}\n\n.popover.bs-popover-bottom .popover-header::before, .popover.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 20px;\n margin-left: -10px;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.popover.bs-popover-left, .popover.bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 10px;\n}\n\n.popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n}\n\n.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n margin-top: -8px;\n border-right-width: 0;\n}\n\n.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: -11px;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: -10px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 8px 14px;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 9px 14px;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n transition: transform 0.6s ease;\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next,\n .active.carousel-item-right {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-prev,\n .active.carousel-item-left {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:focus, .carousel-control-prev:hover,\n.carousel-control-next:focus,\n.carousel-control-next:hover {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:focus, a.bg-primary:hover {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #868e96 !important;\n}\n\na.bg-secondary:focus, a.bg-secondary:hover {\n background-color: #6c757d !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:focus, a.bg-success:hover {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:focus, a.bg-info:hover {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:focus, a.bg-warning:hover {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:focus, a.bg-danger:hover {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:focus, a.bg-light:hover {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:focus, a.bg-dark:hover {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #e9ecef !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #868e96 !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50%;\n}\n\n.rounded-0 {\n border-radius: 0;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.d-print-block {\n display: none !important;\n}\n\n@media print {\n .d-print-block {\n display: block !important;\n }\n}\n\n.d-print-inline {\n display: none !important;\n}\n\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n}\n\n.d-print-inline-block {\n display: none !important;\n}\n\n@media print {\n .d-print-inline-block {\n display: inline-block !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n clip-path: inset(50%);\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n clip-path: none;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mr-0 {\n margin-right: 0 !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0 {\n margin-left: 0 !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1 {\n margin-left: 0.25rem !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2 {\n margin-left: 0.5rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3 {\n margin-left: 1rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4 {\n margin-left: 1.5rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5 {\n margin-left: 3rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pr-0 {\n padding-right: 0 !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0 {\n padding-left: 0 !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1 {\n padding-left: 0.25rem !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2 {\n padding-left: 0.5rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3 {\n padding-left: 1rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4 {\n padding-left: 1.5rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5 {\n padding-left: 3rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.mr-auto {\n margin-right: auto !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto {\n margin-left: auto !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0 {\n margin-left: 0 !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1 {\n margin-left: 0.25rem !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2 {\n margin-left: 0.5rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3 {\n margin-left: 1rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4 {\n margin-left: 1.5rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5 {\n margin-left: 3rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0 {\n padding-left: 0 !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1 {\n padding-left: 0.25rem !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2 {\n padding-left: 0.5rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3 {\n padding-left: 1rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4 {\n padding-left: 1.5rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5 {\n padding-left: 3rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto {\n margin-left: auto !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0 {\n margin-left: 0 !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1 {\n margin-left: 0.25rem !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2 {\n margin-left: 0.5rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3 {\n margin-left: 1rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4 {\n margin-left: 1.5rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5 {\n margin-left: 3rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0 {\n padding-left: 0 !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1 {\n padding-left: 0.25rem !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2 {\n padding-left: 0.5rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3 {\n padding-left: 1rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4 {\n padding-left: 1.5rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5 {\n padding-left: 3rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto {\n margin-left: auto !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0 {\n margin-left: 0 !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1 {\n margin-left: 0.25rem !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2 {\n margin-left: 0.5rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3 {\n margin-left: 1rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4 {\n margin-left: 1.5rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5 {\n margin-left: 3rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0 {\n padding-left: 0 !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1 {\n padding-left: 0.25rem !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2 {\n padding-left: 0.5rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3 {\n padding-left: 1rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4 {\n padding-left: 1.5rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5 {\n padding-left: 3rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto {\n margin-left: auto !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0 {\n margin-left: 0 !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1 {\n margin-left: 0.25rem !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2 {\n margin-left: 0.5rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3 {\n margin-left: 1rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4 {\n margin-left: 1.5rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5 {\n margin-left: 3rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0 {\n padding-left: 0 !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1 {\n padding-left: 0.25rem !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2 {\n padding-left: 0.5rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3 {\n padding-left: 1rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4 {\n padding-left: 1.5rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5 {\n padding-left: 3rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto {\n margin-left: auto !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-normal {\n font-weight: normal;\n}\n\n.font-weight-bold {\n font-weight: bold;\n}\n\n.font-italic {\n font-style: italic;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:focus, a.text-primary:hover {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #868e96 !important;\n}\n\na.text-secondary:focus, a.text-secondary:hover {\n color: #6c757d !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:focus, a.text-success:hover {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:focus, a.text-info:hover {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:focus, a.text-warning:hover {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:focus, a.text-danger:hover {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:focus, a.text-light:hover {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:focus, a.text-dark:hover {\n color: #1d2124 !important;\n}\n\n.text-muted {\n color: #868e96 !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// scss-lint:disable QualifyingElement, DuplicateProperty, VendorPrefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\nhtml {\n box-sizing: border-box; // 1\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0,0,0,0); // 6\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit; // 1\n}\n\n// IE10+ doesn't honor `` in some cases.\n@at-root {\n @-ms-viewport { width: device-width; }\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: .5rem;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `` is present.\n// However, they DO support removing the click delay via `touch-action: manipulation`.\n// See:\n// * https://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment\n text-align: left;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Copy settings from this file into the provided `_custom.scss` to override\n// the Bootstrap defaults without modifying key, versioned files.\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Table of Contents\n//\n// Color system\n// Options\n// Spacing\n// Body\n// Links\n// Grid breakpoints\n// Grid containers\n// Grid columns\n// Fonts\n// Components\n// Tables\n// Buttons\n// Forms\n// Dropdowns\n// Z-index master list\n// Navs\n// Navbar\n// Pagination\n// Jumbotron\n// Form states and alerts\n// Cards\n// Tooltips\n// Popovers\n// Badges\n// Modals\n// Alerts\n// Progress bars\n// List group\n// Image thumbnails\n// Figures\n// Breadcrumbs\n// Carousel\n// Close\n// Code\n\n\n//\n// Color system\n//\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #868e96 !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: (\n 100: $gray-100,\n 200: $gray-200,\n 300: $gray-300,\n 400: $gray-400,\n 500: $gray-500,\n 600: $gray-600,\n 700: $gray-700,\n 800: $gray-800,\n 900: $gray-900\n) !default;\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: (\n blue: $blue,\n indigo: $indigo,\n purple: $purple,\n pink: $pink,\n red: $red,\n orange: $orange,\n yellow: $yellow,\n green: $green,\n teal: $teal,\n cyan: $cyan,\n white: $white,\n gray: $gray-600,\n gray-dark: $gray-800\n) !default;\n\n$theme-colors: (\n primary: $blue,\n secondary: $gray-600,\n success: $green,\n info: $cyan,\n warning: $yellow,\n danger: $red,\n light: $gray-100,\n dark: $gray-800\n) !default;\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default;\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n) !default;\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n) !default;\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !default;\n$font-family-monospace: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: 1.25rem !default;\n$font-size-sm: .875rem !default;\n\n$font-weight-normal: normal !default;\n$font-weight-bold: bold !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: 2.5rem !default;\n$h2-font-size: 2rem !default;\n$h3-font-size: 1.75rem !default;\n$h4-font-size: 1.5rem !default;\n$h5-font-size: 1.25rem !default;\n$h6-font-size: 1rem !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.1 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: 1.25rem !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black,.1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black,.25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: 5px !default;\n\n$mark-bg: #fcf8e3 !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black,.05) !default;\n$table-hover-bg: rgba($black,.075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-200 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-inverse-bg: $gray-900 !default;\n$table-inverse-accent-bg: rgba($white, .05) !default;\n$table-inverse-hover-bg: rgba($white, .075) !default;\n$table-inverse-border-color: lighten($gray-900, 7.5%) !default;\n$table-inverse-color: $body-bg !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background and border color.\n\n$input-btn-padding-y: .5rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: 1.25 !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: 1.5 !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: 1.5 !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white,.15), 0 1px 1px rgba($black,.075) !default;\n$btn-focus-box-shadow: 0 0 0 3px rgba(theme-color(\"primary\"), .25) !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black,.125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: all .15s ease-in-out !default;\n\n\n// Forms\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: rgba($black,.15) !default;\n$input-btn-border-width: $border-width !default; // For form controls and buttons\n$input-box-shadow: inset 0 1px 1px rgba($black,.075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten(theme-color(\"primary\"), 25%) !default;\n$input-focus-box-shadow: $input-box-shadow, $btn-focus-box-shadow !default;\n$input-focus-color: $input-color !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-btn-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-sm * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-margin-bottom: .5rem !default;\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .25rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-y: .25rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: #ddd !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black,.1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-description-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $white !default;\n$custom-control-indicator-checked-bg: theme-color(\"primary\") !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, 0 0 0 3px theme-color(\"primary\") !default;\n\n$custom-control-indicator-active-color: $white !default;\n$custom-control-indicator-active-bg: lighten(theme-color(\"primary\"), 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: theme-color(\"primary\") !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: #333 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: lighten(theme-color(\"primary\"), 25%) !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-file-height: 2.5rem !default;\n$custom-file-width: 14rem !default;\n$custom-file-focus-box-shadow: 0 0 0 .075rem $white, 0 0 0 .2rem theme-color(\"primary\") !default;\n\n$custom-file-padding-y: 1rem !default;\n$custom-file-padding-x: .5rem !default;\n$custom-file-line-height: 1.5 !default;\n$custom-file-color: $gray-700 !default;\n$custom-file-bg: $white !default;\n$custom-file-border-width: $border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $border-radius !default;\n$custom-file-box-shadow: inset 0 .2rem .4rem rgba($black,.05) !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $gray-200 !default;\n$custom-file-text: (\n placeholder: (\n en: \"Choose file...\"\n ),\n button-label: (\n en: \"Browse\"\n )\n) !default;\n\n\n// Form validation\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black,.15) !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black,.175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: #ddd !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: #ddd !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-padding-y: ($navbar-brand-height - $nav-link-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white,.5) !default;\n$navbar-dark-hover-color: rgba($white,.75) !default;\n$navbar-dark-active-color: rgba($white,1) !default;\n$navbar-dark-disabled-color: rgba($white,.25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white,.1) !default;\n\n$navbar-light-color: rgba($black,.5) !default;\n$navbar-light-hover-color: rgba($black,.7) !default;\n$navbar-light-active-color: rgba($black,.9) !default;\n$navbar-light-disabled-color: rgba($black,.3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black,.1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: #ddd !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: #ddd !default;\n\n$pagination-active-color: $white !default;\n$pagination-active-bg: theme-color(\"primary\") !default;\n$pagination-active-border-color: theme-color(\"primary\") !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: #ddd !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: 1px !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black,.125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-deck-margin: ($grid-gutter-width / 2) !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: 3px !default;\n$tooltip-padding-x: 8px !default;\n$tooltip-margin: 0 !default;\n\n\n$tooltip-arrow-width: 5px !default;\n$tooltip-arrow-height: 5px !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-inner-padding: 1px !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black,.2) !default;\n$popover-box-shadow: 0 5px 10px rgba($black,.2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: 8px !default;\n$popover-header-padding-x: 14px !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: 9px !default;\n$popover-body-padding-x: 14px !default;\n\n$popover-arrow-width: 10px !default;\n$popover-arrow-height: 5px !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-width: ($popover-arrow-width + 1px) !default;\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-color: $white !default;\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 15px !default;\n\n$modal-dialog-margin: 10px !default;\n$modal-dialog-margin-y-sm-up: 30px !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black,.2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 3px 9px rgba($black,.5) !default;\n$modal-content-box-shadow-sm-up: 0 5px 15px rgba($black,.5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 15px !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: .75rem !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black,.1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black,.125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: #ddd !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black,.075) !default;\n$thumbnail-transition: all .2s ease-in-out !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 90% !default;\n$code-padding-y: .2rem !default;\n$code-padding-x: .4rem !default;\n$code-color: #bd4147 !default;\n$code-bg: $gray-100 !default;\n\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n","@mixin hover {\n // TODO: re-enable along with mq4-hover-shim\n// @if $enable-hover-media-query {\n// // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover\n// // Currently shimmed by https://github.com/twbs/mq4-hover-shim\n// @media (hover: hover) {\n// &:hover { @content }\n// }\n// }\n// @else {\n// scss-lint:disable Indentation\n &:hover { @content }\n// scss-lint:enable Indentation\n// }\n}\n\n\n@mixin hover-focus {\n @if $enable-hover-media-query {\n &:focus { @content }\n @include hover { @content }\n } @else {\n &:focus,\n &:hover {\n @content\n }\n }\n}\n\n@mixin plain-hover-focus {\n @if $enable-hover-media-query {\n &,\n &:focus {\n @content\n }\n @include hover { @content }\n } @else {\n &,\n &:focus,\n &:hover {\n @content\n }\n }\n}\n\n@mixin hover-focus-active {\n @if $enable-hover-media-query {\n &:focus,\n &:active {\n @content\n }\n @include hover { @content }\n } @else {\n &:focus,\n &:active,\n &:hover {\n @content\n }\n }\n}\n","//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%; // back to default font-size\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include transition($thumbnail-transition);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: ($spacer / 2);\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: http://caniuse.com/#feat=css-media-resolution\n @media\n only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: $code-padding-y $code-padding-x;\n font-size: $code-font-size;\n color: $code-color;\n background-color: $code-bg;\n @include border-radius($border-radius);\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n padding: 0;\n color: inherit;\n background-color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $code-padding-y $code-padding-x;\n font-size: $code-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n width: 100%;\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n margin-right: auto;\n margin-left: auto;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n width: 100%;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.1.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name)\n } @else if $min == null {\n @include media-breakpoint-down($name)\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n @for $i from 1 through $columns {\n .order#{$infix}-#{$i} {\n order: $i;\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: (2 * $table-border-width);\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Inverse styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n.thead-inverse {\n th {\n color: $table-inverse-color;\n background-color: $table-inverse-bg;\n }\n}\n\n.thead-default {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n }\n}\n\n.table-inverse {\n color: $table-inverse-color;\n background-color: $table-inverse-bg;\n\n th,\n td,\n thead th {\n border-color: $table-inverse-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-inverse-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-inverse-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Add `.table-responsive` to `.table`s and we'll make them mobile friendly by\n// enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n @include media-breakpoint-down(md) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n &.table-bordered {\n border: 0;\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@mixin color-yiq($color) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= 150) {\n color: #111;\n } @else {\n color: #fff;\n }\n}\n\n// Retreive color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function grayscale($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, #000, #fff);\n\n @if $level < 0 {\n // Lighter values need a quick double negative for the Sass math to work\n @return mix($color-base, $color, $level * -1 * $theme-color-interval);\n } @else {\n @return mix($color-base, $color, $level * $theme-color-interval);\n }\n}\n","// scss-lint:disable QualifyingElement, VendorPrefix\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n // // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n // height: $input-height;\n padding: $input-btn-padding-y $input-btn-padding-x;\n font-size: $font-size-base;\n line-height: $input-btn-line-height;\n color: $input-color;\n background-color: $input-bg;\n // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214.\n background-image: none;\n background-clip: padding-box;\n border: $input-btn-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label text to\n// align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-btn-padding-y} - #{$input-btn-border-width} * 2);\n padding-bottom: calc(#{$input-btn-padding-y} - #{$input-btn-border-width} * 2);\n margin-bottom: 0; // Override the `` elements\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value, #fff);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &:disabled {\n background-color: transparent;\n @include box-shadow(none);\n }\n &,\n &:focus,\n &:active {\n border-color: transparent;\n box-shadow: none;\n }\n @include hover {\n border-color: transparent;\n }\n @include hover-focus {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n background-color: transparent;\n }\n &:disabled {\n color: $btn-link-disabled-color;\n\n @include hover-focus {\n text-decoration: none;\n }\n }\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($input-btn-padding-y-lg, $input-btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($input-btn-padding-y-sm, $input-btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: $btn-block-spacing-y;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $active-background: darken($background, 7.5%), $active-border: darken($border, 10%)) {\n @include color-yiq($background);\n background-color: $background;\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n &:hover {\n @include color-yiq($background);\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 3px rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 3px rgba($border, .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n background-color: $background;\n border-color: $border;\n }\n\n &:active,\n &.active,\n .show > &.dropdown-toggle {\n background-color: $active-background;\n background-image: none; // Remove the gradient for the pressed/active state\n border-color: $active-border;\n @include box-shadow($btn-active-box-shadow);\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: #fff) {\n color: $color;\n background-color: transparent;\n background-image: none;\n border-color: $color;\n\n @include hover {\n color: $color-hover;\n background-color: $color;\n border-color: $color;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 3px rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:active,\n &.active,\n .show > &.dropdown-toggle {\n color: $color-hover;\n background-color: $color;\n border-color: $color;\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n @include border-radius($border-radius);\n}\n",".fade {\n opacity: 0;\n @include transition($transition-fade);\n\n &.show {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n &.show {\n display: block;\n }\n}\n\ntr {\n &.collapse.show {\n display: table-row;\n }\n}\n\ntbody {\n &.collapse.show {\n display: table-row-group;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`
`)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle {\n // Generate the caret automatically\n &::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-left: $caret-width solid transparent;\n }\n\n &:empty::after {\n margin-left: 0;\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n &::after {\n border-top: 0;\n border-bottom: $caret-width solid;\n }\n }\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n color: $body-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n// Dividers (basically an `
`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `

U9~O_K+$WFSLUQ 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