From 0f819d844d33c63e0d34d0885a9cde1aa854441d Mon Sep 17 00:00:00 2001 From: Aart Goossens Date: Sat, 4 May 2019 00:26:06 +0200 Subject: [PATCH 001/119] Remove recommendation for DRF Docs (#6580) Since DRF Docs is not compatible with the latest version of DRF (or Django?; related issue: https://github.com/manosim/django-rest-framework-docs/issues/180) and the latest release is almost 3 years ago I suggest to remove the recommendation for this package. --- docs/img/drfdocs.png | Bin 580358 -> 0 bytes docs/topics/documenting-your-api.md | 18 +----------------- 2 files changed, 1 insertion(+), 17 deletions(-) delete mode 100644 docs/img/drfdocs.png diff --git a/docs/img/drfdocs.png b/docs/img/drfdocs.png deleted file mode 100644 index 0cccb41f710cab2a2c75fe0f04f4c18303beb9e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580358 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μ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

0y=r=px)&Acre|!qeS% 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

-`47=#jBJ_5@ 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

v++Ct4@{s=7N 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

#s0~YCV)!$8yOd>`pmg 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�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 z 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 Date: Tue, 7 May 2019 00:35:58 +0600 Subject: [PATCH 002/119] Drop Python 3.4 support (#6620) --- .travis.yml | 3 --- README.md | 2 +- docs/index.md | 2 +- setup.py | 5 ++--- tests/test_fields.py | 9 +-------- tox.ini | 4 ++-- 6 files changed, 7 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index 04a5ff99e..a4a4ed8b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,6 @@ matrix: fast_finish: true include: - - { python: "3.4", env: DJANGO=1.11 } - - { python: "3.4", env: DJANGO=2.0 } - - { python: "3.5", env: DJANGO=1.11 } - { python: "3.5", env: DJANGO=2.0 } - { python: "3.5", env: DJANGO=2.1 } diff --git a/README.md b/README.md index 7d0bdd2ad..b80b7fe01 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ There is a live example API for testing purposes, [available here][sandbox]. # Requirements -* Python (3.4, 3.5, 3.6, 3.7) +* Python (3.5, 3.6, 3.7) * Django (1.11, 2.0, 2.1, 2.2) We **highly recommend** and only officially support the latest patch release of diff --git a/docs/index.md b/docs/index.md index 7adc52dfb..8a550140a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -84,7 +84,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: -* Python (3.4, 3.5, 3.6, 3.7) +* Python (3.5, 3.6, 3.7) * Django (1.11, 2.0, 2.1, 2.2) We **highly recommend** and only officially support the latest patch release of diff --git a/setup.py b/setup.py index 632c7dfd3..6c0d64239 100755 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ from io import open from setuptools import find_packages, setup CURRENT_PYTHON = sys.version_info[:2] -REQUIRED_PYTHON = (3, 4) +REQUIRED_PYTHON = (3, 5) # This check and everything above must remain compatible with Python 2.7. if CURRENT_PYTHON < REQUIRED_PYTHON: @@ -79,7 +79,7 @@ setup( packages=find_packages(exclude=['tests*']), include_package_data=True, install_requires=[], - python_requires=">=3.4", + python_requires=">=3.5", zip_safe=False, classifiers=[ 'Development Status :: 5 - Production/Stable', @@ -94,7 +94,6 @@ setup( 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', diff --git a/tests/test_fields.py b/tests/test_fields.py index e0833564b..41d08bd5e 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1,7 +1,6 @@ import datetime import os import re -import unittest import uuid from decimal import ROUND_DOWN, ROUND_UP, Decimal @@ -17,15 +16,10 @@ from rest_framework import exceptions, serializers from rest_framework.compat import ProhibitNullCharactersValidator from rest_framework.fields import DjangoImageField, is_simple_callable -try: - import typing -except ImportError: - typing = False - - # Tests for helper functions. # --------------------------- + class TestIsSimpleCallable: def test_method(self): @@ -92,7 +86,6 @@ class TestIsSimpleCallable: assert is_simple_callable(ChoiceModel().get_choice_field_display) - @unittest.skipUnless(typing, 'requires python 3.5') def test_type_annotation(self): # The annotation will otherwise raise a syntax error in python < 3.5 locals = {} diff --git a/tox.ini b/tox.ini index fcd32f88a..ab5e54cc3 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = - {py34,py35,py36}-django111, - {py34,py35,py36,py37}-django20, + {py35,py36}-django111, + {py35,py36,py37}-django20, {py35,py36,py37}-django21 {py35,py36,py37}-django22 {py36,py37}-djangomaster, From 680ed8aa8b579f344cf4806476c43173f939fcd6 Mon Sep 17 00:00:00 2001 From: Serkan Hosca Date: Mon, 6 May 2019 19:19:51 -0400 Subject: [PATCH 003/119] Add django-rest-witchcraft to third party packages (#6587) --- docs/community/third-party-packages.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index ace54f6f7..135b600f9 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -264,6 +264,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [djangorest-alchemy][djangorest-alchemy] - SQLAlchemy support for REST framework. * [djangorestframework-datatables][djangorestframework-datatables] - Seamless integration between Django REST framework and [Datatables](https://datatables.net). * [django-rest-framework-condition][django-rest-framework-condition] - Decorators for managing HTTP cache headers for Django REST framework (ETag and Last-modified). +* [django-rest-witchcraft][django-rest-witchcraft] - Provides DRF integration with SQLAlchemy with SQLAlchemy model serializers/viewsets and a bunch of other goodies [cite]: http://www.software-ecosystems.com/Software_Ecosystems/Ecosystems.html [cookiecutter]: https://github.com/jpadilla/cookiecutter-django-rest-framework @@ -338,3 +339,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [djangorest-alchemy]: https://github.com/dealertrack/djangorest-alchemy [djangorestframework-datatables]: https://github.com/izimobil/django-rest-framework-datatables [django-rest-framework-condition]: https://github.com/jozo/django-rest-framework-condition +[django-rest-witchcraft]: https://github.com/shosca/django-rest-witchcraft From be5a9f78f324bcda14f865196ac2b307eb597167 Mon Sep 17 00:00:00 2001 From: Andreu Vallbona Plazas Date: Tue, 7 May 2019 20:01:24 +0200 Subject: [PATCH 004/119] Added note on serializing extra fields from Through Model (#6652) * adding small clarification on ManyToManyFields with a Through Model As pointed here: https://github.com/encode/django-rest-framework/pull/6585#issuecomment-490145334 I suggest to add the small clarification to work with **ManyToManyFields with a Through Model**. * Remove blank line. --- docs/api-guide/relations.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/api-guide/relations.md b/docs/api-guide/relations.md index 8665e80f6..2048cd923 100644 --- a/docs/api-guide/relations.md +++ b/docs/api-guide/relations.md @@ -576,6 +576,8 @@ If you explicitly specify a relational field pointing to a ``ManyToManyField`` with a through model, be sure to set ``read_only`` to ``True``. +If you wish to represent [extra fields on a through model][django-intermediary-manytomany] then you may serialize the through model as [a nested object][dealing-with-nested-objects]. + --- # Third Party Packages @@ -596,3 +598,5 @@ The [rest-framework-generic-relations][drf-nested-relations] library provides re [generic-relations]: https://docs.djangoproject.com/en/stable/ref/contrib/contenttypes/#id1 [drf-nested-routers]: https://github.com/alanjds/drf-nested-routers [drf-nested-relations]: https://github.com/Ian-Foote/rest-framework-generic-relations +[django-intermediary-manytomany]: https://docs.djangoproject.com/en/2.2/topics/db/models/#intermediary-manytomany +[dealing-with-nested-objects]: https://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects From 3a21b390ff51e1b48f6d55d0343050c808460c88 Mon Sep 17 00:00:00 2001 From: Jorrit Date: Wed, 8 May 2019 16:48:45 +0200 Subject: [PATCH 005/119] Fix test with STRICT_JSON setting Test is not overriding the intended setting, should be nested inside settings.REST_FRAMEWORK --- tests/test_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_utils.py b/tests/test_utils.py index a6f8b9d16..0d61cc2f9 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -189,7 +189,7 @@ class JsonFloatTests(TestCase): json.loads("NaN") -@override_settings(STRICT_JSON=False) +@override_settings(REST_FRAMEWORK={'STRICT_JSON': False}) class NonStrictJsonFloatTests(JsonFloatTests): """ 'STRICT_JSON = False' should not somehow affect internal json behavior From 564faddb0fe6f640f38a1abb7387a86d6fe13243 Mon Sep 17 00:00:00 2001 From: Tim Gates <47873678+timgates42@users.noreply.github.com> Date: Thu, 9 May 2019 12:34:38 +1000 Subject: [PATCH 006/119] Make Markdown 2.6 the minimum compatible version (#6576) --- docs/index.md | 2 +- rest_framework/compat.py | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/docs/index.md b/docs/index.md index 8a550140a..c8507cf1e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -93,7 +93,7 @@ each Python and Django series. The following packages are optional: * [coreapi][coreapi] (1.32.0+) - Schema generation support. -* [Markdown][markdown] (2.1.0+) - Markdown support for the browsable API. +* [Markdown][markdown] (2.6.0+) - Markdown support for the browsable API. * [django-filter][django-filter] (1.0.1+) - Filtering support. * [django-crispy-forms][django-crispy-forms] - Improved HTML display for filtering. * [django-guardian][django-guardian] (1.1.1+) - Object level permissions support. diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 3068665a8..1feaf9faa 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -143,19 +143,12 @@ if 'patch' not in View.http_method_names: View.http_method_names = View.http_method_names + ['patch'] -# Markdown is optional +# Markdown is optional (version 2.6+ required) try: import markdown - if markdown.version <= '2.2': - HEADERID_EXT_PATH = 'headerid' - LEVEL_PARAM = 'level' - elif markdown.version < '2.6': - HEADERID_EXT_PATH = 'markdown.extensions.headerid' - LEVEL_PARAM = 'level' - else: - HEADERID_EXT_PATH = 'markdown.extensions.toc' - LEVEL_PARAM = 'baselevel' + HEADERID_EXT_PATH = 'markdown.extensions.toc' + LEVEL_PARAM = 'baselevel' def apply_markdown(text): """ From a7c577cb31c80715570df978faf58267c3c06618 Mon Sep 17 00:00:00 2001 From: gaetano-guerriero Date: Thu, 9 May 2019 10:18:20 +0200 Subject: [PATCH 007/119] Dict field allow empty (#6583) * dict field: support allow_empty option * document ListField allow_empty option * document HStoreField allow_empty parameter --- docs/api-guide/fields.md | 9 ++++++--- rest_framework/fields.py | 7 ++++++- tests/test_fields.py | 11 +++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index d371bb8fd..b2830d0c9 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -448,9 +448,10 @@ Requires either the `Pillow` package or `PIL` package. The `Pillow` package is A field class that validates a list of objects. -**Signature**: `ListField(child=, min_length=None, max_length=None)` +**Signature**: `ListField(child=, allow_empty=True, min_length=None, max_length=None)` - `child` - A field instance that should be used for validating the objects in the list. If this argument is not provided then objects in the list will not be validated. +- `allow_empty` - Designates if empty lists are allowed. - `min_length` - Validates that the list contains no fewer than this number of elements. - `max_length` - Validates that the list contains no more than this number of elements. @@ -471,9 +472,10 @@ We can now reuse our custom `StringListField` class throughout our application, A field class that validates a dictionary of objects. The keys in `DictField` are always assumed to be string values. -**Signature**: `DictField(child=)` +**Signature**: `DictField(child=, allow_empty=True)` - `child` - A field instance that should be used for validating the values in the dictionary. If this argument is not provided then values in the mapping will not be validated. +- `allow_empty` - Designates if empty dictionaries are allowed. For example, to create a field that validates a mapping of strings to strings, you would write something like this: @@ -488,9 +490,10 @@ You can also use the declarative style, as with `ListField`. For example: A preconfigured `DictField` that is compatible with Django's postgres `HStoreField`. -**Signature**: `HStoreField(child=)` +**Signature**: `HStoreField(child=, allow_empty=True)` - `child` - A field instance that is used for validating the values in the dictionary. The default child field accepts both empty strings and null values. +- `allow_empty` - Designates if empty dictionaries are allowed. Note that the child field **must** be an instance of `CharField`, as the hstore extension stores values as strings. diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 5e3132074..e2fb8cdc6 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1663,11 +1663,13 @@ class DictField(Field): child = _UnvalidatedField() initial = {} default_error_messages = { - 'not_a_dict': _('Expected a dictionary of items but got type "{input_type}".') + 'not_a_dict': _('Expected a dictionary of items but got type "{input_type}".'), + 'empty': _('This dictionary may not be empty.'), } def __init__(self, *args, **kwargs): self.child = kwargs.pop('child', copy.deepcopy(self.child)) + self.allow_empty = kwargs.pop('allow_empty', True) assert not inspect.isclass(self.child), '`child` has not been instantiated.' assert self.child.source is None, ( @@ -1693,6 +1695,9 @@ class DictField(Field): data = html.parse_html_dict(data) if not isinstance(data, dict): self.fail('not_a_dict', input_type=type(data).__name__) + if not self.allow_empty and len(data) == 0: + self.fail('empty') + return self.run_child_validation(data) def to_representation(self, value): diff --git a/tests/test_fields.py b/tests/test_fields.py index 41d08bd5e..e7f16c178 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1982,6 +1982,7 @@ class TestDictField(FieldValues): """ valid_inputs = [ ({'a': 1, 'b': '2', 3: 3}, {'a': '1', 'b': '2', '3': '3'}), + ({}, {}), ] invalid_inputs = [ ({'a': 1, 'b': None, 'c': None}, {'b': ['This field may not be null.'], 'c': ['This field may not be null.']}), @@ -2009,6 +2010,16 @@ class TestDictField(FieldValues): output = field.run_validation(None) assert output is None + def test_allow_empty_disallowed(self): + """ + If allow_empty is False then an empty dict is not a valid input. + """ + field = serializers.DictField(allow_empty=False) + with pytest.raises(serializers.ValidationError) as exc_info: + field.run_validation({}) + + assert exc_info.value.detail == ['This dictionary may not be empty.'] + class TestNestedDictField(FieldValues): """ From 9811a29a5a1348f1a5de30a9a7a5d0f8d2fd4843 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Thu, 9 May 2019 11:20:33 +0300 Subject: [PATCH 008/119] Pass through memo in __deepcopy__ as required by the docs (#6660) This is needed to avoid problems with recursive loops. See https://docs.python.org/3.7/library/copy.html toward the end. --- rest_framework/fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index e2fb8cdc6..aecfa3302 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -614,7 +614,7 @@ class Field: for item in self._args ] kwargs = { - key: (copy.deepcopy(value) if (key not in ('validators', 'regex')) else value) + key: (copy.deepcopy(value, memo) if (key not in ('validators', 'regex')) else value) for key, value in self._kwargs.items() } return self.__class__(*args, **kwargs) From a91e6a0e693f427a4559cee464aa240243f51d6a Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Mon, 13 May 2019 14:21:27 +0600 Subject: [PATCH 009/119] Updated test packges version (#6665) --- requirements/requirements-testing.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/requirements-testing.txt b/requirements/requirements-testing.txt index a2a2fa753..152ca7169 100644 --- a/requirements/requirements-testing.txt +++ b/requirements/requirements-testing.txt @@ -1,4 +1,4 @@ # Pytest for running the tests. -pytest==4.3.0 -pytest-django==3.4.8 -pytest-cov==2.6.1 +pytest>=4.5.0,<4.6 +pytest-django>=3.4.8,<3.5 +pytest-cov>=2.7.1 From 37f210a455cc92cb3f61a23e194a1d0de58d149b Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Mon, 13 May 2019 16:07:03 +0200 Subject: [PATCH 010/119] Added OpenAPI Schema Generation. (#6532) Co-authored-by: Lucidiot Co-authored-by: dongfangtianyu --- rest_framework/filters.py | 29 + .../management/commands/generateschema.py | 49 +- rest_framework/pagination.py | 94 ++- rest_framework/renderers.py | 33 +- rest_framework/schemas/__init__.py | 18 +- rest_framework/schemas/coreapi.py | 616 ++++++++++++++++++ rest_framework/schemas/generators.py | 265 ++------ rest_framework/schemas/inspectors.py | 430 ------------ rest_framework/schemas/openapi.py | 377 +++++++++++ rest_framework/schemas/utils.py | 17 + rest_framework/schemas/views.py | 15 +- rest_framework/settings.py | 2 +- tests/schemas/__init__.py | 0 .../test_coreapi.py} | 98 +-- tests/schemas/test_get_schema_view.py | 20 + .../test_managementcommand.py} | 39 +- tests/schemas/test_openapi.py | 245 +++++++ tests/schemas/views.py | 58 ++ 18 files changed, 1671 insertions(+), 734 deletions(-) create mode 100644 rest_framework/schemas/coreapi.py create mode 100644 rest_framework/schemas/openapi.py create mode 100644 tests/schemas/__init__.py rename tests/{test_schemas.py => schemas/test_coreapi.py} (94%) create mode 100644 tests/schemas/test_get_schema_view.py rename tests/{test_generateschema.py => schemas/test_managementcommand.py} (57%) create mode 100644 tests/schemas/test_openapi.py create mode 100644 tests/schemas/views.py diff --git a/rest_framework/filters.py b/rest_framework/filters.py index d5fe36964..e3b0468c7 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -37,6 +37,9 @@ class BaseFilterBackend: assert coreschema is not None, 'coreschema must be installed to use `get_schema_fields()`' return [] + def get_schema_operation_parameters(self, view): + return [] + class SearchFilter(BaseFilterBackend): # The URL query parameter used for the search. @@ -156,6 +159,19 @@ class SearchFilter(BaseFilterBackend): ) ] + def get_schema_operation_parameters(self, view): + return [ + { + 'name': self.search_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.search_description), + 'schema': { + 'type': 'string', + }, + }, + ] + class OrderingFilter(BaseFilterBackend): # The URL query parameter used for the ordering. @@ -287,6 +303,19 @@ class OrderingFilter(BaseFilterBackend): ) ] + def get_schema_operation_parameters(self, view): + return [ + { + 'name': self.ordering_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.ordering_description), + 'schema': { + 'type': 'string', + }, + }, + ] + class DjangoObjectPermissionsFilter(BaseFilterBackend): """ diff --git a/rest_framework/management/commands/generateschema.py b/rest_framework/management/commands/generateschema.py index 40909bd04..631f40290 100644 --- a/rest_framework/management/commands/generateschema.py +++ b/rest_framework/management/commands/generateschema.py @@ -1,41 +1,56 @@ from django.core.management.base import BaseCommand -from rest_framework.compat import coreapi -from rest_framework.renderers import ( - CoreJSONRenderer, JSONOpenAPIRenderer, OpenAPIRenderer -) -from rest_framework.schemas.generators import SchemaGenerator +from rest_framework import renderers +from rest_framework.schemas import coreapi +from rest_framework.schemas.openapi import SchemaGenerator + +OPENAPI_MODE = 'openapi' +COREAPI_MODE = 'coreapi' class Command(BaseCommand): help = "Generates configured API schema for project." + def get_mode(self): + return COREAPI_MODE if coreapi.is_enabled() else OPENAPI_MODE + def add_arguments(self, parser): - parser.add_argument('--title', dest="title", default=None, type=str) + parser.add_argument('--title', dest="title", default='', type=str) parser.add_argument('--url', dest="url", default=None, type=str) parser.add_argument('--description', dest="description", default=None, type=str) - parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json', 'corejson'], default='openapi', type=str) + if self.get_mode() == COREAPI_MODE: + parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json', 'corejson'], default='openapi', type=str) + else: + parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json'], default='openapi', type=str) def handle(self, *args, **options): - assert coreapi is not None, 'coreapi must be installed.' - - generator = SchemaGenerator( + generator_class = self.get_generator_class() + generator = generator_class( url=options['url'], title=options['title'], description=options['description'] ) - schema = generator.get_schema(request=None, public=True) - renderer = self.get_renderer(options['format']) output = renderer.render(schema, renderer_context={}) self.stdout.write(output.decode()) def get_renderer(self, format): - renderer_cls = { - 'corejson': CoreJSONRenderer, - 'openapi': OpenAPIRenderer, - 'openapi-json': JSONOpenAPIRenderer, - }[format] + if self.get_mode() == COREAPI_MODE: + renderer_cls = { + 'corejson': renderers.CoreJSONRenderer, + 'openapi': renderers.CoreAPIOpenAPIRenderer, + 'openapi-json': renderers.CoreAPIJSONOpenAPIRenderer, + }[format] + return renderer_cls() + renderer_cls = { + 'openapi': renderers.OpenAPIRenderer, + 'openapi-json': renderers.JSONOpenAPIRenderer, + }[format] return renderer_cls() + + def get_generator_class(self): + if self.get_mode() == COREAPI_MODE: + return coreapi.SchemaGenerator + return SchemaGenerator diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 0b2877a45..38d6b9e1c 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -148,6 +148,9 @@ class BasePagination: assert coreapi is not None, 'coreapi must be installed to use `get_schema_fields()`' return [] + def get_schema_operation_parameters(self, view): + return [] + class PageNumberPagination(BasePagination): """ @@ -301,6 +304,32 @@ class PageNumberPagination(BasePagination): ) return fields + def get_schema_operation_parameters(self, view): + parameters = [ + { + 'name': self.page_query_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.page_query_description), + 'schema': { + 'type': 'integer', + }, + }, + ] + if self.page_size_query_param is not None: + parameters.append( + { + 'name': self.page_size_query_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.page_size_query_description), + 'schema': { + 'type': 'integer', + }, + }, + ) + return parameters + class LimitOffsetPagination(BasePagination): """ @@ -430,6 +459,15 @@ class LimitOffsetPagination(BasePagination): context = self.get_html_context() return template.render(context) + def get_count(self, queryset): + """ + Determine an object count, supporting either querysets or regular lists. + """ + try: + return queryset.count() + except (AttributeError, TypeError): + return len(queryset) + def get_schema_fields(self, view): assert coreapi is not None, 'coreapi must be installed to use `get_schema_fields()`' assert coreschema is not None, 'coreschema must be installed to use `get_schema_fields()`' @@ -454,14 +492,28 @@ class LimitOffsetPagination(BasePagination): ) ] - def get_count(self, queryset): - """ - Determine an object count, supporting either querysets or regular lists. - """ - try: - return queryset.count() - except (AttributeError, TypeError): - return len(queryset) + def get_schema_operation_parameters(self, view): + parameters = [ + { + 'name': self.limit_query_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.limit_query_description), + 'schema': { + 'type': 'integer', + }, + }, + { + 'name': self.offset_query_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.offset_query_description), + 'schema': { + 'type': 'integer', + }, + }, + ] + return parameters class CursorPagination(BasePagination): @@ -816,3 +868,29 @@ class CursorPagination(BasePagination): ) ) return fields + + def get_schema_operation_parameters(self, view): + parameters = [ + { + 'name': self.cursor_query_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.cursor_query_description), + 'schema': { + 'type': 'integer', + }, + } + ] + if self.page_size_query_param is not None: + parameters.append( + { + 'name': self.page_size_query_param, + 'required': False, + 'in': 'query', + 'description': force_text(self.page_size_query_description), + 'schema': { + 'type': 'integer', + }, + } + ) + return parameters diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 143d1b7e7..2a4ae5905 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -1013,28 +1013,49 @@ class _BaseOpenAPIRenderer: } -class OpenAPIRenderer(_BaseOpenAPIRenderer): +class CoreAPIOpenAPIRenderer(_BaseOpenAPIRenderer): media_type = 'application/vnd.oai.openapi' charset = None format = 'openapi' def __init__(self): - assert coreapi, 'Using OpenAPIRenderer, but `coreapi` is not installed.' - assert yaml, 'Using OpenAPIRenderer, but `pyyaml` is not installed.' + assert coreapi, 'Using CoreAPIOpenAPIRenderer, but `coreapi` is not installed.' + assert yaml, 'Using CoreAPIOpenAPIRenderer, but `pyyaml` is not installed.' def render(self, data, media_type=None, renderer_context=None): structure = self.get_structure(data) return yaml.dump(structure, default_flow_style=False).encode() -class JSONOpenAPIRenderer(_BaseOpenAPIRenderer): +class CoreAPIJSONOpenAPIRenderer(_BaseOpenAPIRenderer): media_type = 'application/vnd.oai.openapi+json' charset = None format = 'openapi-json' def __init__(self): - assert coreapi, 'Using JSONOpenAPIRenderer, but `coreapi` is not installed.' + assert coreapi, 'Using CoreAPIJSONOpenAPIRenderer, but `coreapi` is not installed.' def render(self, data, media_type=None, renderer_context=None): structure = self.get_structure(data) - return json.dumps(structure, indent=4).encode() + return json.dumps(structure, indent=4).encode('utf-8') + + +class OpenAPIRenderer(BaseRenderer): + media_type = 'application/vnd.oai.openapi' + charset = None + format = 'openapi' + + def __init__(self): + assert yaml, 'Using OpenAPIRenderer, but `pyyaml` is not installed.' + + def render(self, data, media_type=None, renderer_context=None): + return yaml.dump(data, default_flow_style=False).encode('utf-8') + + +class JSONOpenAPIRenderer(BaseRenderer): + media_type = 'application/vnd.oai.openapi+json' + charset = None + format = 'openapi-json' + + def render(self, data, media_type=None, renderer_context=None): + return json.dumps(data, indent=2).encode('utf-8') diff --git a/rest_framework/schemas/__init__.py b/rest_framework/schemas/__init__.py index ba0ec6536..8fdb2d86a 100644 --- a/rest_framework/schemas/__init__.py +++ b/rest_framework/schemas/__init__.py @@ -22,24 +22,32 @@ Other access should target the submodules directly """ from rest_framework.settings import api_settings -from .generators import SchemaGenerator -from .inspectors import AutoSchema, DefaultSchema, ManualSchema # noqa +from . import coreapi, openapi +from .inspectors import DefaultSchema # noqa +from .coreapi import AutoSchema, ManualSchema, SchemaGenerator # noqa def get_schema_view( title=None, url=None, description=None, urlconf=None, renderer_classes=None, - public=False, patterns=None, generator_class=SchemaGenerator, + public=False, patterns=None, generator_class=None, authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES): """ Return a schema view. """ - # Avoid import cycle on APIView - from .views import SchemaView + if generator_class is None: + if coreapi.is_enabled(): + generator_class = coreapi.SchemaGenerator + else: + generator_class = openapi.SchemaGenerator + generator = generator_class( title=title, url=url, description=description, urlconf=urlconf, patterns=patterns, ) + + # Avoid import cycle on APIView + from .views import SchemaView return SchemaView.as_view( renderer_classes=renderer_classes, schema_generator=generator, diff --git a/rest_framework/schemas/coreapi.py b/rest_framework/schemas/coreapi.py new file mode 100644 index 000000000..5cf789f9f --- /dev/null +++ b/rest_framework/schemas/coreapi.py @@ -0,0 +1,616 @@ +import re +import warnings +from collections import Counter, OrderedDict +from urllib import parse + +from django.db import models +from django.utils.encoding import force_text, smart_text + +from rest_framework import exceptions, serializers +from rest_framework.compat import coreapi, coreschema, uritemplate +from rest_framework.settings import api_settings +from rest_framework.utils import formatting + +from .generators import BaseSchemaGenerator +from .inspectors import ViewInspector +from .utils import get_pk_description, is_list_view + +# Used in _get_description_section() +# TODO: ???: move up to base. +header_regex = re.compile('^[a-zA-Z][0-9A-Za-z_]*:') + +# Generator # +# TODO: Pull some of this into base. + + +def is_custom_action(action): + return action not in { + 'retrieve', 'list', 'create', 'update', 'partial_update', 'destroy' + } + + +def distribute_links(obj): + for key, value in obj.items(): + distribute_links(value) + + for preferred_key, link in obj.links: + key = obj.get_available_key(preferred_key) + obj[key] = link + + +INSERT_INTO_COLLISION_FMT = """ +Schema Naming Collision. + +coreapi.Link for URL path {value_url} cannot be inserted into schema. +Position conflicts with coreapi.Link for URL path {target_url}. + +Attempted to insert link with keys: {keys}. + +Adjust URLs to avoid naming collision or override `SchemaGenerator.get_keys()` +to customise schema structure. +""" + + +class LinkNode(OrderedDict): + def __init__(self): + self.links = [] + self.methods_counter = Counter() + super(LinkNode, self).__init__() + + def get_available_key(self, preferred_key): + if preferred_key not in self: + return preferred_key + + while True: + current_val = self.methods_counter[preferred_key] + self.methods_counter[preferred_key] += 1 + + key = '{}_{}'.format(preferred_key, current_val) + if key not in self: + return key + + +def insert_into(target, keys, value): + """ + Nested dictionary insertion. + + >>> example = {} + >>> insert_into(example, ['a', 'b', 'c'], 123) + >>> example + LinkNode({'a': LinkNode({'b': LinkNode({'c': LinkNode(links=[123])}}}))) + """ + for key in keys[:-1]: + if key not in target: + target[key] = LinkNode() + target = target[key] + + try: + target.links.append((keys[-1], value)) + except TypeError: + msg = INSERT_INTO_COLLISION_FMT.format( + value_url=value.url, + target_url=target.url, + keys=keys + ) + raise ValueError(msg) + + +class SchemaGenerator(BaseSchemaGenerator): + """ + Original CoreAPI version. + """ + # Map HTTP methods onto actions. + default_mapping = { + 'get': 'retrieve', + 'post': 'create', + 'put': 'update', + 'patch': 'partial_update', + 'delete': 'destroy', + } + + # Map the method names we use for viewset actions onto external schema names. + # These give us names that are more suitable for the external representation. + # Set by 'SCHEMA_COERCE_METHOD_NAMES'. + coerce_method_names = None + + def __init__(self, title=None, url=None, description=None, patterns=None, urlconf=None): + assert coreapi, '`coreapi` must be installed for schema support.' + assert coreschema, '`coreschema` must be installed for schema support.' + + super(SchemaGenerator, self).__init__(title, url, description, patterns, urlconf) + self.coerce_method_names = api_settings.SCHEMA_COERCE_METHOD_NAMES + + def get_links(self, request=None): + """ + Return a dictionary containing all the links that should be + included in the API schema. + """ + links = LinkNode() + + paths, view_endpoints = self._get_paths_and_endpoints(request) + + # Only generate the path prefix for paths that will be included + if not paths: + return None + prefix = self.determine_path_prefix(paths) + + for path, method, view in view_endpoints: + if not self.has_view_permissions(path, method, view): + continue + link = view.schema.get_link(path, method, base_url=self.url) + subpath = path[len(prefix):] + keys = self.get_keys(subpath, method, view) + insert_into(links, keys, link) + + return links + + def get_schema(self, request=None, public=False): + """ + Generate a `coreapi.Document` representing the API schema. + """ + self._initialise_endpoints() + + links = self.get_links(None if public else request) + if not links: + return None + + url = self.url + if not url and request is not None: + url = request.build_absolute_uri() + + distribute_links(links) + return coreapi.Document( + title=self.title, description=self.description, + url=url, content=links + ) + + # Method for generating the link layout.... + def get_keys(self, subpath, method, view): + """ + Return a list of keys that should be used to layout a link within + the schema document. + + /users/ ("users", "list"), ("users", "create") + /users/{pk}/ ("users", "read"), ("users", "update"), ("users", "delete") + /users/enabled/ ("users", "enabled") # custom viewset list action + /users/{pk}/star/ ("users", "star") # custom viewset detail action + /users/{pk}/groups/ ("users", "groups", "list"), ("users", "groups", "create") + /users/{pk}/groups/{pk}/ ("users", "groups", "read"), ("users", "groups", "update"), ("users", "groups", "delete") + """ + if hasattr(view, 'action'): + # Viewsets have explicitly named actions. + action = view.action + else: + # Views have no associated action, so we determine one from the method. + if is_list_view(subpath, method, view): + action = 'list' + else: + action = self.default_mapping[method.lower()] + + named_path_components = [ + component for component + in subpath.strip('/').split('/') + if '{' not in component + ] + + if is_custom_action(action): + # Custom action, eg "/users/{pk}/activate/", "/users/active/" + if len(view.action_map) > 1: + action = self.default_mapping[method.lower()] + if action in self.coerce_method_names: + action = self.coerce_method_names[action] + return named_path_components + [action] + else: + return named_path_components[:-1] + [action] + + if action in self.coerce_method_names: + action = self.coerce_method_names[action] + + # Default action, eg "/users/", "/users/{pk}/" + return named_path_components + [action] + +# View Inspectors # + + +def field_to_schema(field): + title = force_text(field.label) if field.label else '' + description = force_text(field.help_text) if field.help_text else '' + + if isinstance(field, (serializers.ListSerializer, serializers.ListField)): + child_schema = field_to_schema(field.child) + return coreschema.Array( + items=child_schema, + title=title, + description=description + ) + elif isinstance(field, serializers.DictField): + return coreschema.Object( + title=title, + description=description + ) + elif isinstance(field, serializers.Serializer): + return coreschema.Object( + properties=OrderedDict([ + (key, field_to_schema(value)) + for key, value + in field.fields.items() + ]), + title=title, + description=description + ) + elif isinstance(field, serializers.ManyRelatedField): + related_field_schema = field_to_schema(field.child_relation) + + return coreschema.Array( + items=related_field_schema, + title=title, + description=description + ) + elif isinstance(field, serializers.PrimaryKeyRelatedField): + schema_cls = coreschema.String + model = getattr(field.queryset, 'model', None) + if model is not None: + model_field = model._meta.pk + if isinstance(model_field, models.AutoField): + schema_cls = coreschema.Integer + return schema_cls(title=title, description=description) + elif isinstance(field, serializers.RelatedField): + return coreschema.String(title=title, description=description) + elif isinstance(field, serializers.MultipleChoiceField): + return coreschema.Array( + items=coreschema.Enum(enum=list(field.choices)), + title=title, + description=description + ) + elif isinstance(field, serializers.ChoiceField): + return coreschema.Enum( + enum=list(field.choices), + title=title, + description=description + ) + elif isinstance(field, serializers.BooleanField): + return coreschema.Boolean(title=title, description=description) + elif isinstance(field, (serializers.DecimalField, serializers.FloatField)): + return coreschema.Number(title=title, description=description) + elif isinstance(field, serializers.IntegerField): + return coreschema.Integer(title=title, description=description) + elif isinstance(field, serializers.DateField): + return coreschema.String( + title=title, + description=description, + format='date' + ) + elif isinstance(field, serializers.DateTimeField): + return coreschema.String( + title=title, + description=description, + format='date-time' + ) + elif isinstance(field, serializers.JSONField): + return coreschema.Object(title=title, description=description) + + if field.style.get('base_template') == 'textarea.html': + return coreschema.String( + title=title, + description=description, + format='textarea' + ) + + return coreschema.String(title=title, description=description) + + +class AutoSchema(ViewInspector): + """ + Default inspector for APIView + + Responsible for per-view introspection and schema generation. + """ + def __init__(self, manual_fields=None): + """ + Parameters: + + * `manual_fields`: list of `coreapi.Field` instances that + will be added to auto-generated fields, overwriting on `Field.name` + """ + super(AutoSchema, self).__init__() + if manual_fields is None: + manual_fields = [] + self._manual_fields = manual_fields + + def get_link(self, path, method, base_url): + """ + Generate `coreapi.Link` for self.view, path and method. + + This is the main _public_ access point. + + Parameters: + + * path: Route path for view from URLConf. + * method: The HTTP request method. + * base_url: The project "mount point" as given to SchemaGenerator + """ + fields = self.get_path_fields(path, method) + fields += self.get_serializer_fields(path, method) + fields += self.get_pagination_fields(path, method) + fields += self.get_filter_fields(path, method) + + manual_fields = self.get_manual_fields(path, method) + fields = self.update_fields(fields, manual_fields) + + if fields and any([field.location in ('form', 'body') for field in fields]): + encoding = self.get_encoding(path, method) + else: + encoding = None + + description = self.get_description(path, method) + + if base_url and path.startswith('/'): + path = path[1:] + + return coreapi.Link( + url=parse.urljoin(base_url, path), + action=method.lower(), + encoding=encoding, + fields=fields, + description=description + ) + + def get_description(self, path, method): + """ + Determine a link description. + + This will be based on the method docstring if one exists, + or else the class docstring. + """ + view = self.view + + method_name = getattr(view, 'action', method.lower()) + method_docstring = getattr(view, method_name, None).__doc__ + if method_docstring: + # An explicit docstring on the method or action. + return self._get_description_section(view, method.lower(), formatting.dedent(smart_text(method_docstring))) + else: + return self._get_description_section(view, getattr(view, 'action', method.lower()), view.get_view_description()) + + def _get_description_section(self, view, header, description): + lines = [line for line in description.splitlines()] + current_section = '' + sections = {'': ''} + + for line in lines: + if header_regex.match(line): + current_section, seperator, lead = line.partition(':') + sections[current_section] = lead.strip() + else: + sections[current_section] += '\n' + line + + # TODO: SCHEMA_COERCE_METHOD_NAMES appears here and in `SchemaGenerator.get_keys` + coerce_method_names = api_settings.SCHEMA_COERCE_METHOD_NAMES + if header in sections: + return sections[header].strip() + if header in coerce_method_names: + if coerce_method_names[header] in sections: + return sections[coerce_method_names[header]].strip() + return sections[''].strip() + + def get_path_fields(self, path, method): + """ + Return a list of `coreapi.Field` instances corresponding to any + templated path variables. + """ + view = self.view + model = getattr(getattr(view, 'queryset', None), 'model', None) + fields = [] + + for variable in uritemplate.variables(path): + title = '' + description = '' + schema_cls = coreschema.String + kwargs = {} + if model is not None: + # Attempt to infer a field description if possible. + try: + model_field = model._meta.get_field(variable) + except Exception: + model_field = None + + if model_field is not None and model_field.verbose_name: + title = force_text(model_field.verbose_name) + + if model_field is not None and model_field.help_text: + description = force_text(model_field.help_text) + elif model_field is not None and model_field.primary_key: + description = get_pk_description(model, model_field) + + if hasattr(view, 'lookup_value_regex') and view.lookup_field == variable: + kwargs['pattern'] = view.lookup_value_regex + elif isinstance(model_field, models.AutoField): + schema_cls = coreschema.Integer + + field = coreapi.Field( + name=variable, + location='path', + required=True, + schema=schema_cls(title=title, description=description, **kwargs) + ) + fields.append(field) + + return fields + + def get_serializer_fields(self, path, method): + """ + Return a list of `coreapi.Field` instances corresponding to any + request body input, as determined by the serializer class. + """ + view = self.view + + if method not in ('PUT', 'PATCH', 'POST'): + return [] + + if not hasattr(view, 'get_serializer'): + return [] + + try: + serializer = view.get_serializer() + except exceptions.APIException: + serializer = None + warnings.warn('{}.get_serializer() raised an exception during ' + 'schema generation. Serializer fields will not be ' + 'generated for {} {}.' + .format(view.__class__.__name__, method, path)) + + if isinstance(serializer, serializers.ListSerializer): + return [ + coreapi.Field( + name='data', + location='body', + required=True, + schema=coreschema.Array() + ) + ] + + if not isinstance(serializer, serializers.Serializer): + return [] + + fields = [] + for field in serializer.fields.values(): + if field.read_only or isinstance(field, serializers.HiddenField): + continue + + required = field.required and method != 'PATCH' + field = coreapi.Field( + name=field.field_name, + location='form', + required=required, + schema=field_to_schema(field) + ) + fields.append(field) + + return fields + + def get_pagination_fields(self, path, method): + view = self.view + + if not is_list_view(path, method, view): + return [] + + pagination = getattr(view, 'pagination_class', None) + if not pagination: + return [] + + paginator = view.pagination_class() + return paginator.get_schema_fields(view) + + def _allows_filters(self, path, method): + """ + Determine whether to include filter Fields in schema. + + Default implementation looks for ModelViewSet or GenericAPIView + actions/methods that cause filtering on the default implementation. + + Override to adjust behaviour for your view. + + Note: Introduced in v3.7: Initially "private" (i.e. with leading underscore) + to allow changes based on user experience. + """ + if getattr(self.view, 'filter_backends', None) is None: + return False + + if hasattr(self.view, 'action'): + return self.view.action in ["list", "retrieve", "update", "partial_update", "destroy"] + + return method.lower() in ["get", "put", "patch", "delete"] + + def get_filter_fields(self, path, method): + if not self._allows_filters(path, method): + return [] + + fields = [] + for filter_backend in self.view.filter_backends: + fields += filter_backend().get_schema_fields(self.view) + return fields + + def get_manual_fields(self, path, method): + return self._manual_fields + + @staticmethod + def update_fields(fields, update_with): + """ + Update list of coreapi.Field instances, overwriting on `Field.name`. + + Utility function to handle replacing coreapi.Field fields + from a list by name. Used to handle `manual_fields`. + + Parameters: + + * `fields`: list of `coreapi.Field` instances to update + * `update_with: list of `coreapi.Field` instances to add or replace. + """ + if not update_with: + return fields + + by_name = OrderedDict((f.name, f) for f in fields) + for f in update_with: + by_name[f.name] = f + fields = list(by_name.values()) + return fields + + def get_encoding(self, path, method): + """ + Return the 'encoding' parameter to use for a given endpoint. + """ + view = self.view + + # Core API supports the following request encodings over HTTP... + supported_media_types = { + 'application/json', + 'application/x-www-form-urlencoded', + 'multipart/form-data', + } + parser_classes = getattr(view, 'parser_classes', []) + for parser_class in parser_classes: + media_type = getattr(parser_class, 'media_type', None) + if media_type in supported_media_types: + return media_type + # Raw binary uploads are supported with "application/octet-stream" + if media_type == '*/*': + return 'application/octet-stream' + + return None + + +class ManualSchema(ViewInspector): + """ + Allows providing a list of coreapi.Fields, + plus an optional description. + """ + def __init__(self, fields, description='', encoding=None): + """ + Parameters: + + * `fields`: list of `coreapi.Field` instances. + * `description`: String description for view. Optional. + """ + super(ManualSchema, self).__init__() + assert all(isinstance(f, coreapi.Field) for f in fields), "`fields` must be a list of coreapi.Field instances" + self._fields = fields + self._description = description + self._encoding = encoding + + def get_link(self, path, method, base_url): + + if base_url and path.startswith('/'): + path = path[1:] + + return coreapi.Link( + url=parse.urljoin(base_url, path), + action=method.lower(), + encoding=self._encoding, + fields=self._fields, + description=self._description + ) + + +def is_enabled(): + """Is CoreAPI Mode enabled?""" + return issubclass(api_settings.DEFAULT_SCHEMA_CLASS, AutoSchema) diff --git a/rest_framework/schemas/generators.py b/rest_framework/schemas/generators.py index 66afcca94..ecb07f935 100644 --- a/rest_framework/schemas/generators.py +++ b/rest_framework/schemas/generators.py @@ -4,7 +4,6 @@ generators.py # Top-down schema generation See schemas.__init__.py for package overview. """ import re -from collections import Counter, OrderedDict from importlib import import_module from django.conf import settings @@ -13,15 +12,11 @@ from django.core.exceptions import PermissionDenied from django.http import Http404 from rest_framework import exceptions -from rest_framework.compat import ( - URLPattern, URLResolver, coreapi, coreschema, get_original_route -) +from rest_framework.compat import URLPattern, URLResolver, get_original_route from rest_framework.request import clone_request from rest_framework.settings import api_settings from rest_framework.utils.model_meta import _get_pk -from .utils import is_list_view - def common_path(paths): split_paths = [path.strip('/').split('/') for path in paths] @@ -50,78 +45,6 @@ def is_api_view(callback): return (cls is not None) and issubclass(cls, APIView) -INSERT_INTO_COLLISION_FMT = """ -Schema Naming Collision. - -coreapi.Link for URL path {value_url} cannot be inserted into schema. -Position conflicts with coreapi.Link for URL path {target_url}. - -Attempted to insert link with keys: {keys}. - -Adjust URLs to avoid naming collision or override `SchemaGenerator.get_keys()` -to customise schema structure. -""" - - -class LinkNode(OrderedDict): - def __init__(self): - self.links = [] - self.methods_counter = Counter() - super().__init__() - - def get_available_key(self, preferred_key): - if preferred_key not in self: - return preferred_key - - while True: - current_val = self.methods_counter[preferred_key] - self.methods_counter[preferred_key] += 1 - - key = '{}_{}'.format(preferred_key, current_val) - if key not in self: - return key - - -def insert_into(target, keys, value): - """ - Nested dictionary insertion. - - >>> example = {} - >>> insert_into(example, ['a', 'b', 'c'], 123) - >>> example - LinkNode({'a': LinkNode({'b': LinkNode({'c': LinkNode(links=[123])}}}))) - """ - for key in keys[:-1]: - if key not in target: - target[key] = LinkNode() - target = target[key] - - try: - target.links.append((keys[-1], value)) - except TypeError: - msg = INSERT_INTO_COLLISION_FMT.format( - value_url=value.url, - target_url=target.url, - keys=keys - ) - raise ValueError(msg) - - -def distribute_links(obj): - for key, value in obj.items(): - distribute_links(value) - - for preferred_key, link in obj.links: - key = obj.get_available_key(preferred_key) - obj[key] = link - - -def is_custom_action(action): - return action not in { - 'retrieve', 'list', 'create', 'update', 'partial_update', 'destroy' - } - - def endpoint_ordering(endpoint): path, method, callback = endpoint method_priority = { @@ -190,6 +113,10 @@ class EndpointEnumerator: """ Given a URL conf regex, return a URI template string. """ + # ???: Would it be feasible to adjust this such that we generate the + # path, plus the kwargs, plus the type from the convertor, such that we + # could feed that straight into the parameter schema object? + path = simplify_regex(path_regex) # Strip Django 2.0 convertors as they are incompatible with uritemplate format @@ -228,35 +155,18 @@ class EndpointEnumerator: return [method for method in methods if method not in ('OPTIONS', 'HEAD')] -class SchemaGenerator: - # Map HTTP methods onto actions. - default_mapping = { - 'get': 'retrieve', - 'post': 'create', - 'put': 'update', - 'patch': 'partial_update', - 'delete': 'destroy', - } +class BaseSchemaGenerator(object): endpoint_inspector_cls = EndpointEnumerator - # Map the method names we use for viewset actions onto external schema names. - # These give us names that are more suitable for the external representation. - # Set by 'SCHEMA_COERCE_METHOD_NAMES'. - coerce_method_names = None - # 'pk' isn't great as an externally exposed name for an identifier, # so by default we prefer to use the actual model field name for schemas. # Set by 'SCHEMA_COERCE_PATH_PK'. coerce_path_pk = None def __init__(self, title=None, url=None, description=None, patterns=None, urlconf=None): - assert coreapi, '`coreapi` must be installed for schema support.' - assert coreschema, '`coreschema` must be installed for schema support.' - if url and not url.endswith('/'): url += '/' - self.coerce_method_names = api_settings.SCHEMA_COERCE_METHOD_NAMES self.coerce_path_pk = api_settings.SCHEMA_COERCE_PATH_PK self.patterns = patterns @@ -266,36 +176,15 @@ class SchemaGenerator: self.url = url self.endpoints = None - def get_schema(self, request=None, public=False): - """ - Generate a `coreapi.Document` representing the API schema. - """ + def _initialise_endpoints(self): if self.endpoints is None: inspector = self.endpoint_inspector_cls(self.patterns, self.urlconf) self.endpoints = inspector.get_api_endpoints() - links = self.get_links(None if public else request) - if not links: - return None - - url = self.url - if not url and request is not None: - url = request.build_absolute_uri() - - distribute_links(links) - return coreapi.Document( - title=self.title, description=self.description, - url=url, content=links - ) - - def get_links(self, request=None): + def _get_paths_and_endpoints(self, request): """ - Return a dictionary containing all the links that should be - included in the API schema. + Generate (path, method, view) given (path, method, callback) for paths. """ - links = LinkNode() - - # Generate (path, method, view) given (path, method, callback). paths = [] view_endpoints = [] for path, method, callback in self.endpoints: @@ -304,22 +193,48 @@ class SchemaGenerator: paths.append(path) view_endpoints.append((path, method, view)) - # Only generate the path prefix for paths that will be included - if not paths: - return None - prefix = self.determine_path_prefix(paths) + return paths, view_endpoints - for path, method, view in view_endpoints: - if not self.has_view_permissions(path, method, view): - continue - link = view.schema.get_link(path, method, base_url=self.url) - subpath = path[len(prefix):] - keys = self.get_keys(subpath, method, view) - insert_into(links, keys, link) + def create_view(self, callback, method, request=None): + """ + Given a callback, return an actual view instance. + """ + view = callback.cls(**getattr(callback, 'initkwargs', {})) + view.args = () + view.kwargs = {} + view.format_kwarg = None + view.request = None + view.action_map = getattr(callback, 'actions', None) - return links + actions = getattr(callback, 'actions', None) + if actions is not None: + if method == 'OPTIONS': + view.action = 'metadata' + else: + view.action = actions.get(method.lower()) - # Methods used when we generate a view instance from the raw callback... + if request is not None: + view.request = clone_request(request, method) + + return view + + def coerce_path(self, path, method, view): + """ + Coerce {pk} path arguments into the name of the model field, + where possible. This is cleaner for an external representation. + (Ie. "this is an identifier", not "this is a database primary key") + """ + if not self.coerce_path_pk or '{pk}' not in path: + return path + model = getattr(getattr(view, 'queryset', None), 'model', None) + if model: + field_name = get_pk_name(model) + else: + field_name = 'id' + return path.replace('{pk}', '{%s}' % field_name) + + def get_schema(self, request=None, public=False): + raise NotImplementedError(".get_schema() must be implemented in subclasses.") def determine_path_prefix(self, paths): """ @@ -352,29 +267,6 @@ class SchemaGenerator: prefixes.append('/' + prefix + '/') return common_path(prefixes) - def create_view(self, callback, method, request=None): - """ - Given a callback, return an actual view instance. - """ - view = callback.cls(**getattr(callback, 'initkwargs', {})) - view.args = () - view.kwargs = {} - view.format_kwarg = None - view.request = None - view.action_map = getattr(callback, 'actions', None) - - actions = getattr(callback, 'actions', None) - if actions is not None: - if method == 'OPTIONS': - view.action = 'metadata' - else: - view.action = actions.get(method.lower()) - - if request is not None: - view.request = clone_request(request, method) - - return view - def has_view_permissions(self, path, method, view): """ Return `True` if the incoming request has the correct view permissions. @@ -387,64 +279,3 @@ class SchemaGenerator: except (exceptions.APIException, Http404, PermissionDenied): return False return True - - def coerce_path(self, path, method, view): - """ - Coerce {pk} path arguments into the name of the model field, - where possible. This is cleaner for an external representation. - (Ie. "this is an identifier", not "this is a database primary key") - """ - if not self.coerce_path_pk or '{pk}' not in path: - return path - model = getattr(getattr(view, 'queryset', None), 'model', None) - if model: - field_name = get_pk_name(model) - else: - field_name = 'id' - return path.replace('{pk}', '{%s}' % field_name) - - # Method for generating the link layout.... - - def get_keys(self, subpath, method, view): - """ - Return a list of keys that should be used to layout a link within - the schema document. - - /users/ ("users", "list"), ("users", "create") - /users/{pk}/ ("users", "read"), ("users", "update"), ("users", "delete") - /users/enabled/ ("users", "enabled") # custom viewset list action - /users/{pk}/star/ ("users", "star") # custom viewset detail action - /users/{pk}/groups/ ("users", "groups", "list"), ("users", "groups", "create") - /users/{pk}/groups/{pk}/ ("users", "groups", "read"), ("users", "groups", "update"), ("users", "groups", "delete") - """ - if hasattr(view, 'action'): - # Viewsets have explicitly named actions. - action = view.action - else: - # Views have no associated action, so we determine one from the method. - if is_list_view(subpath, method, view): - action = 'list' - else: - action = self.default_mapping[method.lower()] - - named_path_components = [ - component for component - in subpath.strip('/').split('/') - if '{' not in component - ] - - if is_custom_action(action): - # Custom action, eg "/users/{pk}/activate/", "/users/active/" - if len(view.action_map) > 1: - action = self.default_mapping[method.lower()] - if action in self.coerce_method_names: - action = self.coerce_method_names[action] - return named_path_components + [action] - else: - return named_path_components[:-1] + [action] - - if action in self.coerce_method_names: - action = self.coerce_method_names[action] - - # Default action, eg "/users/", "/users/{pk}/" - return named_path_components + [action] diff --git a/rest_framework/schemas/inspectors.py b/rest_framework/schemas/inspectors.py index 2858c8c5b..86fcdc435 100644 --- a/rest_framework/schemas/inspectors.py +++ b/rest_framework/schemas/inspectors.py @@ -3,125 +3,9 @@ inspectors.py # Per-endpoint view introspection See schemas.__init__.py for package overview. """ -import re -import warnings -from collections import OrderedDict -from urllib import parse from weakref import WeakKeyDictionary -from django.db import models -from django.utils.encoding import force_text, smart_text -from django.utils.translation import gettext_lazy as _ - -from rest_framework import exceptions, serializers -from rest_framework.compat import coreapi, coreschema, uritemplate from rest_framework.settings import api_settings -from rest_framework.utils import formatting - -from .utils import is_list_view - -header_regex = re.compile('^[a-zA-Z][0-9A-Za-z_]*:') - - -def field_to_schema(field): - title = force_text(field.label) if field.label else '' - description = force_text(field.help_text) if field.help_text else '' - - if isinstance(field, (serializers.ListSerializer, serializers.ListField)): - child_schema = field_to_schema(field.child) - return coreschema.Array( - items=child_schema, - title=title, - description=description - ) - elif isinstance(field, serializers.DictField): - return coreschema.Object( - title=title, - description=description - ) - elif isinstance(field, serializers.Serializer): - return coreschema.Object( - properties=OrderedDict([ - (key, field_to_schema(value)) - for key, value - in field.fields.items() - ]), - title=title, - description=description - ) - elif isinstance(field, serializers.ManyRelatedField): - related_field_schema = field_to_schema(field.child_relation) - - return coreschema.Array( - items=related_field_schema, - title=title, - description=description - ) - elif isinstance(field, serializers.PrimaryKeyRelatedField): - schema_cls = coreschema.String - model = getattr(field.queryset, 'model', None) - if model is not None: - model_field = model._meta.pk - if isinstance(model_field, models.AutoField): - schema_cls = coreschema.Integer - return schema_cls(title=title, description=description) - elif isinstance(field, serializers.RelatedField): - return coreschema.String(title=title, description=description) - elif isinstance(field, serializers.MultipleChoiceField): - return coreschema.Array( - items=coreschema.Enum(enum=list(field.choices)), - title=title, - description=description - ) - elif isinstance(field, serializers.ChoiceField): - return coreschema.Enum( - enum=list(field.choices), - title=title, - description=description - ) - elif isinstance(field, serializers.BooleanField): - return coreschema.Boolean(title=title, description=description) - elif isinstance(field, (serializers.DecimalField, serializers.FloatField)): - return coreschema.Number(title=title, description=description) - elif isinstance(field, serializers.IntegerField): - return coreschema.Integer(title=title, description=description) - elif isinstance(field, serializers.DateField): - return coreschema.String( - title=title, - description=description, - format='date' - ) - elif isinstance(field, serializers.DateTimeField): - return coreschema.String( - title=title, - description=description, - format='date-time' - ) - elif isinstance(field, serializers.JSONField): - return coreschema.Object(title=title, description=description) - - if field.style.get('base_template') == 'textarea.html': - return coreschema.String( - title=title, - description=description, - format='textarea' - ) - - return coreschema.String(title=title, description=description) - - -def get_pk_description(model, model_field): - if isinstance(model_field, models.AutoField): - value_type = _('unique integer value') - elif isinstance(model_field, models.UUIDField): - value_type = _('UUID string') - else: - value_type = _('unique value') - - return _('A {value_type} identifying this {name}.').format( - value_type=value_type, - name=model._meta.verbose_name, - ) class ViewInspector: @@ -178,320 +62,6 @@ class ViewInspector: def view(self): self._view = None - def get_link(self, path, method, base_url): - """ - Generate `coreapi.Link` for self.view, path and method. - - This is the main _public_ access point. - - Parameters: - - * path: Route path for view from URLConf. - * method: The HTTP request method. - * base_url: The project "mount point" as given to SchemaGenerator - """ - raise NotImplementedError(".get_link() must be overridden.") - - -class AutoSchema(ViewInspector): - """ - Default inspector for APIView - - Responsible for per-view introspection and schema generation. - """ - def __init__(self, manual_fields=None): - """ - Parameters: - - * `manual_fields`: list of `coreapi.Field` instances that - will be added to auto-generated fields, overwriting on `Field.name` - """ - super().__init__() - if manual_fields is None: - manual_fields = [] - self._manual_fields = manual_fields - - def get_link(self, path, method, base_url): - fields = self.get_path_fields(path, method) - fields += self.get_serializer_fields(path, method) - fields += self.get_pagination_fields(path, method) - fields += self.get_filter_fields(path, method) - - manual_fields = self.get_manual_fields(path, method) - fields = self.update_fields(fields, manual_fields) - - if fields and any([field.location in ('form', 'body') for field in fields]): - encoding = self.get_encoding(path, method) - else: - encoding = None - - description = self.get_description(path, method) - - if base_url and path.startswith('/'): - path = path[1:] - - return coreapi.Link( - url=parse.urljoin(base_url, path), - action=method.lower(), - encoding=encoding, - fields=fields, - description=description - ) - - def get_description(self, path, method): - """ - Determine a link description. - - This will be based on the method docstring if one exists, - or else the class docstring. - """ - view = self.view - - method_name = getattr(view, 'action', method.lower()) - method_docstring = getattr(view, method_name, None).__doc__ - if method_docstring: - # An explicit docstring on the method or action. - return self._get_description_section(view, method.lower(), formatting.dedent(smart_text(method_docstring))) - else: - return self._get_description_section(view, getattr(view, 'action', method.lower()), view.get_view_description()) - - def _get_description_section(self, view, header, description): - lines = [line for line in description.splitlines()] - current_section = '' - sections = {'': ''} - - for line in lines: - if header_regex.match(line): - current_section, seperator, lead = line.partition(':') - sections[current_section] = lead.strip() - else: - sections[current_section] += '\n' + line - - # TODO: SCHEMA_COERCE_METHOD_NAMES appears here and in `SchemaGenerator.get_keys` - coerce_method_names = api_settings.SCHEMA_COERCE_METHOD_NAMES - if header in sections: - return sections[header].strip() - if header in coerce_method_names: - if coerce_method_names[header] in sections: - return sections[coerce_method_names[header]].strip() - return sections[''].strip() - - def get_path_fields(self, path, method): - """ - Return a list of `coreapi.Field` instances corresponding to any - templated path variables. - """ - view = self.view - model = getattr(getattr(view, 'queryset', None), 'model', None) - fields = [] - - for variable in uritemplate.variables(path): - title = '' - description = '' - schema_cls = coreschema.String - kwargs = {} - if model is not None: - # Attempt to infer a field description if possible. - try: - model_field = model._meta.get_field(variable) - except Exception: - model_field = None - - if model_field is not None and model_field.verbose_name: - title = force_text(model_field.verbose_name) - - if model_field is not None and model_field.help_text: - description = force_text(model_field.help_text) - elif model_field is not None and model_field.primary_key: - description = get_pk_description(model, model_field) - - if hasattr(view, 'lookup_value_regex') and view.lookup_field == variable: - kwargs['pattern'] = view.lookup_value_regex - elif isinstance(model_field, models.AutoField): - schema_cls = coreschema.Integer - - field = coreapi.Field( - name=variable, - location='path', - required=True, - schema=schema_cls(title=title, description=description, **kwargs) - ) - fields.append(field) - - return fields - - def get_serializer_fields(self, path, method): - """ - Return a list of `coreapi.Field` instances corresponding to any - request body input, as determined by the serializer class. - """ - view = self.view - - if method not in ('PUT', 'PATCH', 'POST'): - return [] - - if not hasattr(view, 'get_serializer'): - return [] - - try: - serializer = view.get_serializer() - except exceptions.APIException: - serializer = None - warnings.warn('{}.get_serializer() raised an exception during ' - 'schema generation. Serializer fields will not be ' - 'generated for {} {}.' - .format(view.__class__.__name__, method, path)) - - if isinstance(serializer, serializers.ListSerializer): - return [ - coreapi.Field( - name='data', - location='body', - required=True, - schema=coreschema.Array() - ) - ] - - if not isinstance(serializer, serializers.Serializer): - return [] - - fields = [] - for field in serializer.fields.values(): - if field.read_only or isinstance(field, serializers.HiddenField): - continue - - required = field.required and method != 'PATCH' - field = coreapi.Field( - name=field.field_name, - location='form', - required=required, - schema=field_to_schema(field) - ) - fields.append(field) - - return fields - - def get_pagination_fields(self, path, method): - view = self.view - - if not is_list_view(path, method, view): - return [] - - pagination = getattr(view, 'pagination_class', None) - if not pagination: - return [] - - paginator = view.pagination_class() - return paginator.get_schema_fields(view) - - def _allows_filters(self, path, method): - """ - Determine whether to include filter Fields in schema. - - Default implementation looks for ModelViewSet or GenericAPIView - actions/methods that cause filtering on the default implementation. - - Override to adjust behaviour for your view. - - Note: Introduced in v3.7: Initially "private" (i.e. with leading underscore) - to allow changes based on user experience. - """ - if getattr(self.view, 'filter_backends', None) is None: - return False - - if hasattr(self.view, 'action'): - return self.view.action in ["list", "retrieve", "update", "partial_update", "destroy"] - - return method.lower() in ["get", "put", "patch", "delete"] - - def get_filter_fields(self, path, method): - if not self._allows_filters(path, method): - return [] - - fields = [] - for filter_backend in self.view.filter_backends: - fields += filter_backend().get_schema_fields(self.view) - return fields - - def get_manual_fields(self, path, method): - return self._manual_fields - - @staticmethod - def update_fields(fields, update_with): - """ - Update list of coreapi.Field instances, overwriting on `Field.name`. - - Utility function to handle replacing coreapi.Field fields - from a list by name. Used to handle `manual_fields`. - - Parameters: - - * `fields`: list of `coreapi.Field` instances to update - * `update_with: list of `coreapi.Field` instances to add or replace. - """ - if not update_with: - return fields - - by_name = OrderedDict((f.name, f) for f in fields) - for f in update_with: - by_name[f.name] = f - return list(by_name.values()) - - def get_encoding(self, path, method): - """ - Return the 'encoding' parameter to use for a given endpoint. - """ - view = self.view - - # Core API supports the following request encodings over HTTP... - supported_media_types = { - 'application/json', - 'application/x-www-form-urlencoded', - 'multipart/form-data', - } - parser_classes = getattr(view, 'parser_classes', []) - for parser_class in parser_classes: - media_type = getattr(parser_class, 'media_type', None) - if media_type in supported_media_types: - return media_type - # Raw binary uploads are supported with "application/octet-stream" - if media_type == '*/*': - return 'application/octet-stream' - - return None - - -class ManualSchema(ViewInspector): - """ - Allows providing a list of coreapi.Fields, - plus an optional description. - """ - def __init__(self, fields, description='', encoding=None): - """ - Parameters: - - * `fields`: list of `coreapi.Field` instances. - * `description`: String description for view. Optional. - """ - super().__init__() - assert all(isinstance(f, coreapi.Field) for f in fields), "`fields` must be a list of coreapi.Field instances" - self._fields = fields - self._description = description - self._encoding = encoding - - def get_link(self, path, method, base_url): - - if base_url and path.startswith('/'): - path = path[1:] - - return coreapi.Link( - url=parse.urljoin(base_url, path), - action=method.lower(), - encoding=self._encoding, - fields=self._fields, - description=self._description - ) - class DefaultSchema(ViewInspector): """Allows overriding AutoSchema using DEFAULT_SCHEMA_CLASS setting""" diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py new file mode 100644 index 000000000..44b281be8 --- /dev/null +++ b/rest_framework/schemas/openapi.py @@ -0,0 +1,377 @@ +import warnings + +from django.db import models +from django.utils.encoding import force_text + +from rest_framework import exceptions, serializers +from rest_framework.compat import uritemplate + +from .generators import BaseSchemaGenerator +from .inspectors import ViewInspector +from .utils import get_pk_description, is_list_view + +# Generator + + +class SchemaGenerator(BaseSchemaGenerator): + + def get_info(self): + info = { + 'title': self.title, + 'version': 'TODO', + } + + if self.description is not None: + info['description'] = self.description + + return info + + def get_paths(self, request=None): + result = {} + + paths, view_endpoints = self._get_paths_and_endpoints(request) + + # Only generate the path prefix for paths that will be included + if not paths: + return None + prefix = self.determine_path_prefix(paths) + + for path, method, view in view_endpoints: + if not self.has_view_permissions(path, method, view): + continue + operation = view.schema.get_operation(path, method) + subpath = '/' + path[len(prefix):] + result.setdefault(subpath, {}) + result[subpath][method.lower()] = operation + + return result + + def get_schema(self, request=None, public=False): + """ + Generate a OpenAPI schema. + """ + self._initialise_endpoints() + + paths = self.get_paths(None if public else request) + if not paths: + return None + + schema = { + 'openapi': '3.0.2', + 'info': self.get_info(), + 'paths': paths, + } + + return schema + +# View Inspectors + + +class AutoSchema(ViewInspector): + + content_types = ['application/json'] + method_mapping = { + 'get': 'Retrieve', + 'post': 'Create', + 'put': 'Update', + 'patch': 'PartialUpdate', + 'delete': 'Destroy', + } + + def get_operation(self, path, method): + operation = {} + + operation['operationId'] = self._get_operation_id(path, method) + + parameters = [] + parameters += self._get_path_parameters(path, method) + parameters += self._get_pagination_parameters(path, method) + parameters += self._get_filter_parameters(path, method) + operation['parameters'] = parameters + + request_body = self._get_request_body(path, method) + if request_body: + operation['requestBody'] = request_body + operation['responses'] = self._get_responses(path, method) + + return operation + + def _get_operation_id(self, path, method): + """ + Compute an operation ID from the model, serializer or view name. + """ + method_name = getattr(self.view, 'action', method.lower()) + if is_list_view(path, method, self.view): + action = 'List' + elif method_name not in self.method_mapping: + action = method_name + else: + action = self.method_mapping[method.lower()] + + # Try to deduce the ID from the view's model + model = getattr(getattr(self.view, 'queryset', None), 'model', None) + if model is not None: + name = model.__name__ + + # Try with the serializer class name + elif hasattr(self.view, 'get_serializer_class'): + name = self.view.get_serializer_class().__name__ + if name.endswith('Serializer'): + name = name[:-10] + + # Fallback to the view name + else: + name = self.view.__class__.__name__ + if name.endswith('APIView'): + name = name[:-7] + elif name.endswith('View'): + name = name[:-4] + if name.endswith(action): # ListView, UpdateAPIView, ThingDelete ... + name = name[:-len(action)] + + if action == 'List' and not name.endswith('s'): # ListThings instead of ListThing + name += 's' + + return action + name + + def _get_path_parameters(self, path, method): + """ + Return a list of parameters from templated path variables. + """ + assert uritemplate, '`uritemplate` must be installed for OpenAPI schema support.' + + model = getattr(getattr(self.view, 'queryset', None), 'model', None) + parameters = [] + + for variable in uritemplate.variables(path): + description = '' + if model is not None: # TODO: test this. + # Attempt to infer a field description if possible. + try: + model_field = model._meta.get_field(variable) + except Exception: + model_field = None + + if model_field is not None and model_field.help_text: + description = force_text(model_field.help_text) + elif model_field is not None and model_field.primary_key: + description = get_pk_description(model, model_field) + + parameter = { + "name": variable, + "in": "path", + "required": True, + "description": description, + 'schema': { + 'type': 'string', # TODO: integer, pattern, ... + }, + } + parameters.append(parameter) + + return parameters + + def _get_filter_parameters(self, path, method): + if not self._allows_filters(path, method): + return [] + parameters = [] + for filter_backend in self.view.filter_backends: + parameters += filter_backend().get_schema_operation_parameters(self.view) + return parameters + + def _allows_filters(self, path, method): + """ + Determine whether to include filter Fields in schema. + + Default implementation looks for ModelViewSet or GenericAPIView + actions/methods that cause filtering on the default implementation. + """ + if getattr(self.view, 'filter_backends', None) is None: + return False + if hasattr(self.view, 'action'): + return self.view.action in ["list", "retrieve", "update", "partial_update", "destroy"] + return method.lower() in ["get", "put", "patch", "delete"] + + def _get_pagination_parameters(self, path, method): + view = self.view + + if not is_list_view(path, method, view): + return [] + + pagination = getattr(view, 'pagination_class', None) + if not pagination: + return [] + + paginator = view.pagination_class() + return paginator.get_schema_operation_parameters(view) + + def _map_field(self, field): + + # Nested Serializers, `many` or not. + if isinstance(field, serializers.ListSerializer): + return { + 'type': 'array', + 'items': self._map_serializer(field.child) + } + if isinstance(field, serializers.Serializer): + data = self._map_serializer(field) + data['type'] = 'object' + return data + + # Related fields. + if isinstance(field, serializers.ManyRelatedField): + return { + 'type': 'array', + 'items': self._map_field(field.child_relation) + } + if isinstance(field, serializers.PrimaryKeyRelatedField): + model = getattr(field.queryset, 'model', None) + if model is not None: + model_field = model._meta.pk + if isinstance(model_field, models.AutoField): + return {'type': 'integer'} + + # ChoiceFields (single and multiple). + # Q: + # - Is 'type' required? + # - can we determine the TYPE of a choicefield? + if isinstance(field, serializers.MultipleChoiceField): + return { + 'type': 'array', + 'items': { + 'enum': list(field.choices) + }, + } + + if isinstance(field, serializers.ChoiceField): + return { + 'enum': list(field.choices), + } + + # ListField. + if isinstance(field, serializers.ListField): + return { + 'type': 'array', + } + + # DateField and DateTimeField type is string + if isinstance(field, serializers.DateField): + return { + 'type': 'string', + 'format': 'date', + } + + if isinstance(field, serializers.DateTimeField): + return { + 'type': 'string', + 'format': 'date-time', + } + + # Simplest cases, default to 'string' type: + FIELD_CLASS_SCHEMA_TYPE = { + serializers.BooleanField: 'boolean', + serializers.DecimalField: 'number', + serializers.FloatField: 'number', + serializers.IntegerField: 'integer', + + serializers.JSONField: 'object', + serializers.DictField: 'object', + } + return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')} + + def _map_serializer(self, serializer): + # Assuming we have a valid serializer instance. + # TODO: + # - field is Nested or List serializer. + # - Handle read_only/write_only for request/response differences. + # - could do this with readOnly/writeOnly and then filter dict. + required = [] + properties = {} + + for field in serializer.fields.values(): + if isinstance(field, serializers.HiddenField): + continue + + if field.required: + required.append(field.field_name) + + schema = self._map_field(field) + if field.read_only: + schema['readOnly'] = True + if field.write_only: + schema['writeOnly'] = True + if field.allow_null: + schema['nullable'] = True + + properties[field.field_name] = schema + return { + 'required': required, + 'properties': properties, + } + + def _get_request_body(self, path, method): + view = self.view + + if method not in ('PUT', 'PATCH', 'POST'): + return {} + + if not hasattr(view, 'get_serializer'): + return {} + + try: + serializer = view.get_serializer() + except exceptions.APIException: + serializer = None + warnings.warn('{}.get_serializer() raised an exception during ' + 'schema generation. Serializer fields will not be ' + 'generated for {} {}.' + .format(view.__class__.__name__, method, path)) + + if not isinstance(serializer, serializers.Serializer): + return {} + + content = self._map_serializer(serializer) + # No required fields for PATCH + if method == 'PATCH': + del content['required'] + # No read_only fields for request. + for name, schema in content['properties'].copy().items(): + if 'readOnly' in schema: + del content['properties'][name] + + return { + 'content': { + ct: {'schema': content} + for ct in self.content_types + } + } + + def _get_responses(self, path, method): + # TODO: Handle multiple codes. + content = {} + view = self.view + if hasattr(view, 'get_serializer'): + try: + serializer = view.get_serializer() + except exceptions.APIException: + serializer = None + warnings.warn('{}.get_serializer() raised an exception during ' + 'schema generation. Serializer fields will not be ' + 'generated for {} {}.' + .format(view.__class__.__name__, method, path)) + + if isinstance(serializer, serializers.Serializer): + content = self._map_serializer(serializer) + # No write_only fields for response. + for name, schema in content['properties'].copy().items(): + if 'writeOnly' in schema: + del content['properties'][name] + content['required'] = [f for f in content['required'] if f != name] + + return { + '200': { + 'content': { + ct: {'schema': content} + for ct in self.content_types + } + } + } diff --git a/rest_framework/schemas/utils.py b/rest_framework/schemas/utils.py index 76437a20a..6724eb428 100644 --- a/rest_framework/schemas/utils.py +++ b/rest_framework/schemas/utils.py @@ -3,6 +3,9 @@ utils.py # Shared helper functions See schemas.__init__.py for package overview. """ +from django.db import models +from django.utils.translation import ugettext_lazy as _ + from rest_framework.mixins import RetrieveModelMixin @@ -22,3 +25,17 @@ def is_list_view(path, method, view): if path_components and '{' in path_components[-1]: return False return True + + +def get_pk_description(model, model_field): + if isinstance(model_field, models.AutoField): + value_type = _('unique integer value') + elif isinstance(model_field, models.UUIDField): + value_type = _('UUID string') + else: + value_type = _('unique value') + + return _('A {value_type} identifying this {name}.').format( + value_type=value_type, + name=model._meta.verbose_name, + ) diff --git a/rest_framework/schemas/views.py b/rest_framework/schemas/views.py index fa5cdbdc7..527a23236 100644 --- a/rest_framework/schemas/views.py +++ b/rest_framework/schemas/views.py @@ -5,6 +5,7 @@ See schemas.__init__.py for package overview. """ from rest_framework import exceptions, renderers from rest_framework.response import Response +from rest_framework.schemas import coreapi from rest_framework.settings import api_settings from rest_framework.views import APIView @@ -19,10 +20,16 @@ class SchemaView(APIView): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.renderer_classes is None: - self.renderer_classes = [ - renderers.OpenAPIRenderer, - renderers.CoreJSONRenderer - ] + if coreapi.is_enabled(): + self.renderer_classes = [ + renderers.CoreAPIOpenAPIRenderer, + renderers.CoreJSONRenderer + ] + else: + self.renderer_classes = [ + renderers.OpenAPIRenderer, + renderers.JSONOpenAPIRenderer, + ] if renderers.BrowsableAPIRenderer in api_settings.DEFAULT_RENDERER_CLASSES: self.renderer_classes += [renderers.BrowsableAPIRenderer] diff --git a/rest_framework/settings.py b/rest_framework/settings.py index 1d5dc036f..3520eae36 100644 --- a/rest_framework/settings.py +++ b/rest_framework/settings.py @@ -52,7 +52,7 @@ DEFAULTS = { 'DEFAULT_FILTER_BACKENDS': (), # Schema - 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema', + 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.openapi.AutoSchema', # Throttling 'DEFAULT_THROTTLE_RATES': { diff --git a/tests/schemas/__init__.py b/tests/schemas/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_schemas.py b/tests/schemas/test_coreapi.py similarity index 94% rename from tests/test_schemas.py rename to tests/schemas/test_coreapi.py index 230f8f012..66275ade9 100644 --- a/tests/test_schemas.py +++ b/tests/schemas/test_coreapi.py @@ -16,15 +16,16 @@ from rest_framework.routers import DefaultRouter, SimpleRouter from rest_framework.schemas import ( AutoSchema, ManualSchema, SchemaGenerator, get_schema_view ) +from rest_framework.schemas.coreapi import field_to_schema from rest_framework.schemas.generators import EndpointEnumerator -from rest_framework.schemas.inspectors import field_to_schema from rest_framework.schemas.utils import is_list_view from rest_framework.test import APIClient, APIRequestFactory from rest_framework.utils import formatting from rest_framework.views import APIView from rest_framework.viewsets import GenericViewSet, ModelViewSet -from .models import BasicModel, ForeignKeySource, ManyToManySource +from . import views +from ..models import BasicModel, ForeignKeySource, ManyToManySource factory = APIRequestFactory() @@ -133,11 +134,12 @@ class ExampleViewSet(ModelViewSet): pass -if coreapi: - schema_view = get_schema_view(title='Example API') -else: - def schema_view(request): - pass +with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}): + if coreapi: + schema_view = get_schema_view(title='Example API') + else: + def schema_view(request): + pass router = DefaultRouter() router.register('example', ExampleViewSet, basename='example') @@ -148,7 +150,7 @@ urlpatterns = [ @unittest.skipUnless(coreapi, 'coreapi is not installed') -@override_settings(ROOT_URLCONF='tests.test_schemas') +@override_settings(ROOT_URLCONF=__name__, REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestRouterGeneratedSchema(TestCase): def test_anonymous_request(self): client = APIClient() @@ -400,12 +402,13 @@ class ExampleDetailView(APIView): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGenerator(TestCase): def setUp(self): self.patterns = [ - url(r'^example/?$', ExampleListView.as_view()), - url(r'^example/(?P\d+)/?$', ExampleDetailView.as_view()), - url(r'^example/(?P\d+)/sub/?$', ExampleDetailView.as_view()), + url(r'^example/?$', views.ExampleListView.as_view()), + url(r'^example/(?P\d+)/?$', views.ExampleDetailView.as_view()), + url(r'^example/(?P\d+)/sub/?$', views.ExampleDetailView.as_view()), ] def test_schema_for_regular_views(self): @@ -453,12 +456,13 @@ class TestSchemaGenerator(TestCase): @unittest.skipUnless(coreapi, 'coreapi is not installed') @unittest.skipUnless(path, 'needs Django 2') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGeneratorDjango2(TestCase): def setUp(self): self.patterns = [ - path('example/', ExampleListView.as_view()), - path('example//', ExampleDetailView.as_view()), - path('example//sub/', ExampleDetailView.as_view()), + path('example/', views.ExampleListView.as_view()), + path('example//', views.ExampleDetailView.as_view()), + path('example//sub/', views.ExampleDetailView.as_view()), ] def test_schema_for_regular_views(self): @@ -505,12 +509,13 @@ class TestSchemaGeneratorDjango2(TestCase): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGeneratorNotAtRoot(TestCase): def setUp(self): self.patterns = [ - url(r'^api/v1/example/?$', ExampleListView.as_view()), - url(r'^api/v1/example/(?P\d+)/?$', ExampleDetailView.as_view()), - url(r'^api/v1/example/(?P\d+)/sub/?$', ExampleDetailView.as_view()), + url(r'^api/v1/example/?$', views.ExampleListView.as_view()), + url(r'^api/v1/example/(?P\d+)/?$', views.ExampleDetailView.as_view()), + url(r'^api/v1/example/(?P\d+)/sub/?$', views.ExampleDetailView.as_view()), ] def test_schema_for_regular_views(self): @@ -558,6 +563,7 @@ class TestSchemaGeneratorNotAtRoot(TestCase): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGeneratorWithMethodLimitedViewSets(TestCase): def setUp(self): router = DefaultRouter() @@ -622,13 +628,14 @@ class TestSchemaGeneratorWithMethodLimitedViewSets(TestCase): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGeneratorWithRestrictedViewSets(TestCase): def setUp(self): router = DefaultRouter() router.register('example1', Http404ExampleViewSet, basename='example1') router.register('example2', PermissionDeniedExampleViewSet, basename='example2') self.patterns = [ - url('^example/?$', ExampleListView.as_view()), + url('^example/?$', views.ExampleListView.as_view()), url(r'^', include(router.urls)) ] @@ -668,6 +675,7 @@ class ForeignKeySourceView(generics.CreateAPIView): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGeneratorWithForeignKey(TestCase): def setUp(self): self.patterns = [ @@ -713,6 +721,7 @@ class ManyToManySourceView(generics.CreateAPIView): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestSchemaGeneratorWithManyToMany(TestCase): def setUp(self): self.patterns = [ @@ -747,6 +756,7 @@ class TestSchemaGeneratorWithManyToMany(TestCase): @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class Test4605Regression(TestCase): def test_4605_regression(self): generator = SchemaGenerator() @@ -762,6 +772,7 @@ class CustomViewInspector(AutoSchema): pass +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestAutoSchema(TestCase): def test_apiview_schema_descriptor(self): @@ -777,7 +788,7 @@ class TestAutoSchema(TestCase): assert isinstance(view.schema, CustomViewInspector) def test_set_custom_inspector_class_via_settings(self): - with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'tests.test_schemas.CustomViewInspector'}): + with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'tests.schemas.test_coreapi.CustomViewInspector'}): view = APIView() assert isinstance(view.schema, CustomViewInspector) @@ -971,6 +982,7 @@ class TestAutoSchema(TestCase): self.assertEqual(field_to_schema(case[0]), case[1]) +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) def test_docstring_is_not_stripped_by_get_description(): class ExampleDocstringAPIView(APIView): """ @@ -1007,25 +1019,25 @@ def test_docstring_is_not_stripped_by_get_description(): # Views for SchemaGenerationExclusionTests -class ExcludedAPIView(APIView): - schema = None +with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}): + class ExcludedAPIView(APIView): + schema = None - def get(self, request, *args, **kwargs): + def get(self, request, *args, **kwargs): + pass + + @api_view(['GET']) + @schema(None) + def excluded_fbv(request): + pass + + @api_view(['GET']) + def included_fbv(request): pass -@api_view(['GET']) -@schema(None) -def excluded_fbv(request): - pass - - -@api_view(['GET']) -def included_fbv(request): - pass - - @unittest.skipUnless(coreapi, 'coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class SchemaGenerationExclusionTests(TestCase): def setUp(self): self.patterns = [ @@ -1078,11 +1090,6 @@ class SchemaGenerationExclusionTests(TestCase): assert should_include == expected -@api_view(["GET"]) -def simple_fbv(request): - pass - - class BasicModelSerializer(serializers.ModelSerializer): class Meta: model = BasicModel @@ -1118,11 +1125,16 @@ naming_collisions_router.register(r'collision', NamingCollisionViewSet, basename @pytest.mark.skipif(not coreapi, reason='coreapi is not installed') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) class TestURLNamingCollisions(TestCase): """ Ref: https://github.com/encode/django-rest-framework/issues/4704 """ def test_manually_routing_nested_routes(self): + @api_view(["GET"]) + def simple_fbv(request): + pass + patterns = [ url(r'^test', simple_fbv), url(r'^test/list/', simple_fbv), @@ -1228,6 +1240,10 @@ class TestURLNamingCollisions(TestCase): def test_url_under_same_key_not_replaced_another(self): + @api_view(["GET"]) + def simple_fbv(request): + pass + patterns = [ url(r'^test/list/', simple_fbv), url(r'^test/(?P\d+)/list/', simple_fbv), @@ -1302,10 +1318,8 @@ def test_head_and_options_methods_are_excluded(): assert inspector.get_allowed_methods(callback) == ["GET"] -@pytest.mark.skipif(not coreapi, reason='coreapi is not installed') -class TestAutoSchemaAllowsFilters: - class MockAPIView(APIView): - filter_backends = [filters.OrderingFilter] +class MockAPIView(APIView): + filter_backends = [filters.OrderingFilter] def _test(self, method): view = self.MockAPIView() diff --git a/tests/schemas/test_get_schema_view.py b/tests/schemas/test_get_schema_view.py new file mode 100644 index 000000000..f582c6495 --- /dev/null +++ b/tests/schemas/test_get_schema_view.py @@ -0,0 +1,20 @@ +import pytest +from django.test import TestCase, override_settings + +from rest_framework import renderers +from rest_framework.schemas import coreapi, get_schema_view, openapi + + +class GetSchemaViewTests(TestCase): + """For the get_schema_view() helper.""" + def test_openapi(self): + schema_view = get_schema_view(title="With OpenAPI") + assert isinstance(schema_view.initkwargs['schema_generator'], openapi.SchemaGenerator) + assert renderers.OpenAPIRenderer in schema_view.cls().renderer_classes + + @pytest.mark.skipif(not coreapi.coreapi, reason='coreapi is not installed') + def test_coreapi(self): + with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}): + schema_view = get_schema_view(title="With CoreAPI") + assert isinstance(schema_view.initkwargs['schema_generator'], coreapi.SchemaGenerator) + assert renderers.CoreAPIOpenAPIRenderer in schema_view.cls().renderer_classes diff --git a/tests/test_generateschema.py b/tests/schemas/test_managementcommand.py similarity index 57% rename from tests/test_generateschema.py rename to tests/schemas/test_managementcommand.py index a6a1f2bed..e5960f2b0 100644 --- a/tests/test_generateschema.py +++ b/tests/schemas/test_managementcommand.py @@ -6,7 +6,8 @@ from django.core.management import call_command from django.test import TestCase from django.test.utils import override_settings -from rest_framework.compat import coreapi +from rest_framework.compat import uritemplate, yaml +from rest_framework.management.commands import generateschema from rest_framework.utils import formatting, json from rest_framework.views import APIView @@ -21,15 +22,43 @@ urlpatterns = [ ] -@override_settings(ROOT_URLCONF='tests.test_generateschema') -@pytest.mark.skipif(not coreapi, reason='coreapi is not installed') +@override_settings(ROOT_URLCONF=__name__) +@pytest.mark.skipif(not uritemplate, reason='uritemplate is not installed') class GenerateSchemaTests(TestCase): """Tests for management command generateschema.""" def setUp(self): self.out = io.StringIO() + def test_command_detects_schema_generation_mode(self): + """Switching between CoreAPI & OpenAPI""" + command = generateschema.Command() + assert command.get_mode() == generateschema.OPENAPI_MODE + with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}): + assert command.get_mode() == generateschema.COREAPI_MODE + + @pytest.mark.skipif(yaml is None, reason='PyYAML is required.') def test_renders_default_schema_with_custom_title_url_and_description(self): + call_command('generateschema', + '--title=SampleAPI', + '--url=http://api.sample.com', + '--description=Sample description', + stdout=self.out) + # Check valid YAML was output. + schema = yaml.load(self.out.getvalue()) + assert schema['openapi'] == '3.0.2' + + def test_renders_openapi_json_schema(self): + call_command('generateschema', + '--format=openapi-json', + stdout=self.out) + # Check valid JSON was output. + out_json = json.loads(self.out.getvalue()) + assert out_json['openapi'] == '3.0.2' + + @pytest.mark.skipif(yaml is None, reason='PyYAML is required.') + @override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) + def test_coreapi_renders_default_schema_with_custom_title_url_and_description(self): expected_out = """info: description: Sample description title: SampleAPI @@ -50,7 +79,8 @@ class GenerateSchemaTests(TestCase): self.assertIn(formatting.dedent(expected_out), self.out.getvalue()) - def test_renders_openapi_json_schema(self): + @override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) + def test_coreapi_renders_openapi_json_schema(self): expected_out = { "openapi": "3.0.0", "info": { @@ -78,6 +108,7 @@ class GenerateSchemaTests(TestCase): self.assertDictEqual(out_json, expected_out) + @override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) def test_renders_corejson_schema(self): expected_out = """{"_type":"document","":{"list":{"_type":"link","url":"/","action":"get"}}}""" call_command('generateschema', diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py new file mode 100644 index 000000000..2ddf54f01 --- /dev/null +++ b/tests/schemas/test_openapi.py @@ -0,0 +1,245 @@ +import pytest +from django.conf.urls import url +from django.test import RequestFactory, TestCase, override_settings + +from rest_framework import filters, generics, pagination, routers, serializers +from rest_framework.compat import uritemplate +from rest_framework.request import Request +from rest_framework.schemas.openapi import AutoSchema, SchemaGenerator + +from . import views + + +def create_request(path): + factory = RequestFactory() + request = Request(factory.get(path)) + return request + + +def create_view(view_cls, method, request): + generator = SchemaGenerator() + view = generator.create_view(view_cls.as_view(), method, request) + return view + + +class TestBasics(TestCase): + def dummy_view(request): + pass + + def test_filters(self): + classes = [filters.SearchFilter, filters.OrderingFilter] + for c in classes: + f = c() + assert f.get_schema_operation_parameters(self.dummy_view) + + def test_pagination(self): + classes = [pagination.PageNumberPagination, pagination.LimitOffsetPagination, pagination.CursorPagination] + for c in classes: + f = c() + assert f.get_schema_operation_parameters(self.dummy_view) + + +@pytest.mark.skipif(uritemplate is None, reason='uritemplate not installed.') +class TestOperationIntrospection(TestCase): + + def test_path_without_parameters(self): + path = '/example/' + method = 'GET' + + view = create_view( + views.ExampleListView, + method, + create_request(path) + ) + inspector = AutoSchema() + inspector.view = view + + operation = inspector.get_operation(path, method) + assert operation == { + 'operationId': 'ListExamples', + 'parameters': [], + 'responses': {'200': {'content': {'application/json': {'schema': {}}}}}, + } + + def test_path_with_id_parameter(self): + path = '/example/{id}/' + method = 'GET' + + view = create_view( + views.ExampleDetailView, + method, + create_request(path) + ) + inspector = AutoSchema() + inspector.view = view + + parameters = inspector._get_path_parameters(path, method) + assert parameters == [{ + 'description': '', + 'in': 'path', + 'name': 'id', + 'required': True, + 'schema': { + 'type': 'string', + }, + }] + + def test_request_body(self): + path = '/' + method = 'POST' + + class Serializer(serializers.Serializer): + text = serializers.CharField() + read_only = serializers.CharField(read_only=True) + + class View(generics.GenericAPIView): + serializer_class = Serializer + + view = create_view( + View, + method, + create_request(path) + ) + inspector = AutoSchema() + inspector.view = view + + request_body = inspector._get_request_body(path, method) + assert request_body['content']['application/json']['schema']['required'] == ['text'] + assert list(request_body['content']['application/json']['schema']['properties'].keys()) == ['text'] + + def test_response_body_generation(self): + path = '/' + method = 'POST' + + class Serializer(serializers.Serializer): + text = serializers.CharField() + write_only = serializers.CharField(write_only=True) + + class View(generics.GenericAPIView): + serializer_class = Serializer + + view = create_view( + View, + method, + create_request(path) + ) + inspector = AutoSchema() + inspector.view = view + + responses = inspector._get_responses(path, method) + assert responses['200']['content']['application/json']['schema']['required'] == ['text'] + assert list(responses['200']['content']['application/json']['schema']['properties'].keys()) == ['text'] + + def test_response_body_nested_serializer(self): + path = '/' + method = 'POST' + + class NestedSerializer(serializers.Serializer): + number = serializers.IntegerField() + + class Serializer(serializers.Serializer): + text = serializers.CharField() + nested = NestedSerializer() + + class View(generics.GenericAPIView): + serializer_class = Serializer + + view = create_view( + View, + method, + create_request(path), + ) + inspector = AutoSchema() + inspector.view = view + + responses = inspector._get_responses(path, method) + schema = responses['200']['content']['application/json']['schema'] + assert sorted(schema['required']) == ['nested', 'text'] + assert sorted(list(schema['properties'].keys())) == ['nested', 'text'] + assert schema['properties']['nested']['type'] == 'object' + assert list(schema['properties']['nested']['properties'].keys()) == ['number'] + assert schema['properties']['nested']['required'] == ['number'] + + def test_operation_id_generation(self): + path = '/' + method = 'GET' + + view = create_view( + views.ExampleGenericAPIView, + method, + create_request(path), + ) + inspector = AutoSchema() + inspector.view = view + + operationId = inspector._get_operation_id(path, method) + assert operationId == 'ListExamples' + + def test_repeat_operation_ids(self): + router = routers.SimpleRouter() + router.register('account', views.ExampleGenericViewSet, basename="account") + urlpatterns = router.urls + + generator = SchemaGenerator(patterns=urlpatterns) + + request = create_request('/') + schema = generator.get_schema(request=request) + schema_str = str(schema) + print(schema_str) + assert schema_str.count("operationId") == 2 + assert schema_str.count("newExample") == 1 + assert schema_str.count("oldExample") == 1 + + +@pytest.mark.skipif(uritemplate is None, reason='uritemplate not installed.') +@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.openapi.AutoSchema'}) +class TestGenerator(TestCase): + + def test_override_settings(self): + assert isinstance(views.ExampleListView.schema, AutoSchema) + + def test_paths_construction(self): + """Construction of the `paths` key.""" + patterns = [ + url(r'^example/?$', views.ExampleListView.as_view()), + ] + generator = SchemaGenerator(patterns=patterns) + generator._initialise_endpoints() + + paths = generator.get_paths() + + assert '/example/' in paths + example_operations = paths['/example/'] + assert len(example_operations) == 2 + assert 'get' in example_operations + assert 'post' in example_operations + + def test_schema_construction(self): + """Construction of the top level dictionary.""" + patterns = [ + url(r'^example/?$', views.ExampleListView.as_view()), + ] + generator = SchemaGenerator(patterns=patterns) + + request = create_request('/') + schema = generator.get_schema(request=request) + + assert 'openapi' in schema + assert 'paths' in schema + + def test_serializer_datefield(self): + patterns = [ + url(r'^example/?$', views.ExampleGenericViewSet.as_view({"get": "get"})), + ] + generator = SchemaGenerator(patterns=patterns) + + request = create_request('/') + schema = generator.get_schema(request=request) + + response = schema['paths']['/example/']['get']['responses'] + response_schema = response['200']['content']['application/json']['schema']['properties'] + + assert response_schema['date']['type'] == response_schema['datetime']['type'] == 'string' + + assert response_schema['date']['format'] == 'date' + assert response_schema['datetime']['format'] == 'date-time' diff --git a/tests/schemas/views.py b/tests/schemas/views.py new file mode 100644 index 000000000..dc0d6065b --- /dev/null +++ b/tests/schemas/views.py @@ -0,0 +1,58 @@ +from rest_framework import generics, permissions, serializers +from rest_framework.decorators import action +from rest_framework.response import Response +from rest_framework.views import APIView +from rest_framework.viewsets import GenericViewSet + + +class ExampleListView(APIView): + permission_classes = [permissions.IsAuthenticatedOrReadOnly] + + def get(self, *args, **kwargs): + pass + + def post(self, request, *args, **kwargs): + pass + + +class ExampleDetailView(APIView): + permission_classes = [permissions.IsAuthenticatedOrReadOnly] + + def get(self, *args, **kwargs): + pass + + +# Generics. +class ExampleSerializer(serializers.Serializer): + date = serializers.DateField() + datetime = serializers.DateTimeField() + + +class ExampleGenericAPIView(generics.GenericAPIView): + serializer_class = ExampleSerializer + + def get(self, *args, **kwargs): + from datetime import datetime + now = datetime.now() + + serializer = self.get_serializer(data=now.date(), datetime=now) + return Response(serializer.data) + + +class ExampleGenericViewSet(GenericViewSet): + serializer_class = ExampleSerializer + + def get(self, *args, **kwargs): + from datetime import datetime + now = datetime.now() + + serializer = self.get_serializer(data=now.date(), datetime=now) + return Response(serializer.data) + + @action(detail=False) + def new(self, *args, **kwargs): + pass + + @action(detail=False) + def old(self, *args, **kwargs): + pass From c3a13916d2c8025b042a9b9fb1ec5af25f202cb4 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Tue, 14 May 2019 10:13:14 -0700 Subject: [PATCH 011/119] Update release notes (#6671) * Add 3.9.4 release notes to master * Add top-level symlink to release notes --- CHANGELOG.md | 1 + docs/community/release-notes.md | 6 ++++++ 2 files changed, 7 insertions(+) create mode 120000 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 120000 index 000000000..025215c5e --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ +docs/community/release-notes.md \ No newline at end of file diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 6fcb5bb6b..cda24809f 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -40,6 +40,12 @@ You can determine your currently installed version using `pip show`: ## 3.9.x series +### 3.9.4 + +**Date**: [10th May 2019] + +This is a maintenance release that fixes an error handling bug under Python 2. + ### 3.9.3 **Date**: [29th April 2019] From ac0f0a177428823c9eeb2a87b8f895ce59b4e7b6 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Tue, 14 May 2019 23:14:11 +0600 Subject: [PATCH 012/119] Updated optional requirements (#6673) --- requirements/requirements-optionals.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt index c800a5891..bc20c739a 100644 --- a/requirements/requirements-optionals.txt +++ b/requirements/requirements-optionals.txt @@ -1,8 +1,8 @@ # Optional packages which may be used with REST framework. -psycopg2-binary==2.7.5 +psycopg2-binary>=2.8.2, <2.9 markdown==2.6.11 django-guardian==1.5.0 -django-filter==1.1.0 +django-filter>=2.1.0, <2.2 coreapi==2.3.1 coreschema==0.0.4 pyyaml From 43a9cc1b7a4200deb3423d96a1d8e3cb9f3ceddd Mon Sep 17 00:00:00 2001 From: Joachim Jablon Date: Mon, 20 May 2019 15:41:31 +0200 Subject: [PATCH 013/119] Fix CursorPagination when objects get deleted between calls (#6504) (#6593) * Added regression tests (#6504) Co-Authored-By: Tom Quinonero * Fix CursorPagination when objects get deleted between calls (#6504) Co-Authored-By: Tom Quinonero --- rest_framework/pagination.py | 18 ++++++++++---- tests/test_pagination.py | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 38d6b9e1c..4d65d080a 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -637,7 +637,7 @@ class CursorPagination(BasePagination): if not self.has_next: return None - if self.cursor and self.cursor.reverse and self.cursor.offset != 0: + if self.page and self.cursor and self.cursor.reverse and self.cursor.offset != 0: # If we're reversing direction and we have an offset cursor # then we cannot use the first position we find as a marker. compare = self._get_position_from_instance(self.page[-1], self.ordering) @@ -645,12 +645,14 @@ class CursorPagination(BasePagination): compare = self.next_position offset = 0 + has_item_with_unique_position = False for item in reversed(self.page): position = self._get_position_from_instance(item, self.ordering) if position != compare: # The item in this position and the item following it # have different positions. We can use this position as # our marker. + has_item_with_unique_position = True break # The item in this position has the same position as the item @@ -659,7 +661,7 @@ class CursorPagination(BasePagination): compare = position offset += 1 - else: + if self.page and not has_item_with_unique_position: # There were no unique positions in the page. if not self.has_previous: # We are on the first page. @@ -678,6 +680,9 @@ class CursorPagination(BasePagination): offset = self.cursor.offset + self.page_size position = self.previous_position + if not self.page: + position = self.next_position + cursor = Cursor(offset=offset, reverse=False, position=position) return self.encode_cursor(cursor) @@ -685,7 +690,7 @@ class CursorPagination(BasePagination): if not self.has_previous: return None - if self.cursor and not self.cursor.reverse and self.cursor.offset != 0: + if self.page and self.cursor and not self.cursor.reverse and self.cursor.offset != 0: # If we're reversing direction and we have an offset cursor # then we cannot use the first position we find as a marker. compare = self._get_position_from_instance(self.page[0], self.ordering) @@ -693,12 +698,14 @@ class CursorPagination(BasePagination): compare = self.previous_position offset = 0 + has_item_with_unique_position = False for item in self.page: position = self._get_position_from_instance(item, self.ordering) if position != compare: # The item in this position and the item following it # have different positions. We can use this position as # our marker. + has_item_with_unique_position = True break # The item in this position has the same position as the item @@ -707,7 +714,7 @@ class CursorPagination(BasePagination): compare = position offset += 1 - else: + if self.page and not has_item_with_unique_position: # There were no unique positions in the page. if not self.has_next: # We are on the final page. @@ -726,6 +733,9 @@ class CursorPagination(BasePagination): offset = 0 position = self.next_position + if not self.page: + position = self.previous_position + cursor = Cursor(offset=offset, reverse=True, position=position) return self.encode_cursor(cursor) diff --git a/tests/test_pagination.py b/tests/test_pagination.py index 3c581ddfb..11fd6844d 100644 --- a/tests/test_pagination.py +++ b/tests/test_pagination.py @@ -630,6 +630,52 @@ class CursorPaginationTestsMixin: assert isinstance(self.pagination.to_html(), str) + def test_cursor_pagination_current_page_empty_forward(self): + # Regression test for #6504 + self.pagination.base_url = "/" + + # We have a cursor on the element at position 100, but this element doesn't exist + # anymore. + cursor = pagination.Cursor(reverse=False, offset=0, position=100) + url = self.pagination.encode_cursor(cursor) + self.pagination.base_url = "/" + + # Loading the page with this cursor doesn't crash + (previous, current, next, previous_url, next_url) = self.get_pages(url) + + # The previous url doesn't crash either + (previous, current, next, previous_url, next_url) = self.get_pages(previous_url) + + # And point to things that are not completely off. + assert previous == [7, 7, 7, 8, 9] + assert current == [9, 9, 9, 9, 9] + assert next == [] + assert previous_url is not None + assert next_url is not None + + def test_cursor_pagination_current_page_empty_reverse(self): + # Regression test for #6504 + self.pagination.base_url = "/" + + # We have a cursor on the element at position 100, but this element doesn't exist + # anymore. + cursor = pagination.Cursor(reverse=True, offset=0, position=100) + url = self.pagination.encode_cursor(cursor) + self.pagination.base_url = "/" + + # Loading the page with this cursor doesn't crash + (previous, current, next, previous_url, next_url) = self.get_pages(url) + + # The previous url doesn't crash either + (previous, current, next, previous_url, next_url) = self.get_pages(next_url) + + # And point to things that are not completely off. + assert previous == [7, 7, 7, 7, 8] + assert current == [] + assert next is None + assert previous_url is not None + assert next_url is None + def test_cursor_pagination_with_page_size(self): (previous, current, next, previous_url, next_url) = self.get_pages('/?page_size=20') From 7232586c7caf66f20f56b36f1c6a9c9648eb94a4 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Mon, 20 May 2019 16:49:47 +0300 Subject: [PATCH 014/119] Simplify Serializer.fields with @cached_property (#6662) --- rest_framework/serializers.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 742fa6577..7b7959db9 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -348,7 +348,7 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass): 'invalid': _('Invalid data. Expected a dictionary, but got {datatype}.') } - @property + @cached_property def fields(self): """ A dictionary of {field_name: field_instance}. @@ -356,11 +356,10 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass): # `fields` is evaluated lazily. We do this to ensure that we don't # have issues importing modules that use ModelSerializers as fields, # even if Django's app-loading stage has not yet run. - if not hasattr(self, '_fields'): - self._fields = BindingDict(self) - for key, value in self.get_fields().items(): - self._fields[key] = value - return self._fields + fields = BindingDict(self) + for key, value in self.get_fields().items(): + fields[key] = value + return fields @cached_property def _writable_fields(self): From 2c92548963118104944171842f6558db7eee72d7 Mon Sep 17 00:00:00 2001 From: Rick van Hattem Date: Mon, 20 May 2019 17:09:23 +0200 Subject: [PATCH 015/119] Made the loading of the fund sidebar async (#6686) --- docs_theme/main.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs_theme/main.html b/docs_theme/main.html index b60b231c2..1a1175902 100644 --- a/docs_theme/main.html +++ b/docs_theme/main.html @@ -141,7 +141,7 @@ - + From 1b8141a4aac5774d094eff9df3398f92301446ca Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 20 May 2019 14:58:02 -0700 Subject: [PATCH 016/119] Fix nullable `source='*'` fields (#6659) --- rest_framework/fields.py | 5 +++++ tests/test_serializer.py | 44 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index aecfa3302..179dd25c8 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -493,6 +493,11 @@ class Field: if data is None: if not self.allow_null: self.fail('null') + # Nullable `source='*'` fields should not be skipped when its named + # field is given a null value. This is because `source='*'` means + # the field is passed the entire object, which is not null. + elif self.source == '*': + return (False, None) return (True, None) return (False, data) diff --git a/tests/test_serializer.py b/tests/test_serializer.py index e0acf368b..0d4b50c1d 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -317,7 +317,8 @@ class TestBaseSerializer: class TestStarredSource: """ - Tests for `source='*'` argument, which is used for nested representations. + Tests for `source='*'` argument, which is often used for complex field or + nested representations. For example: @@ -337,11 +338,28 @@ class TestStarredSource: c = serializers.IntegerField() d = serializers.IntegerField() - class TestSerializer(serializers.Serializer): + class NestedBaseSerializer(serializers.Serializer): nested1 = NestedSerializer1(source='*') nested2 = NestedSerializer2(source='*') - self.Serializer = TestSerializer + # nullable nested serializer testing + class NullableNestedSerializer(serializers.Serializer): + nested = NestedSerializer1(source='*', allow_null=True) + + # nullable custom field testing + class CustomField(serializers.Field): + def to_representation(self, instance): + return getattr(instance, 'foo', None) + + def to_internal_value(self, data): + return {'foo': data} + + class NullableFieldSerializer(serializers.Serializer): + field = CustomField(source='*', allow_null=True) + + self.Serializer = NestedBaseSerializer + self.NullableNestedSerializer = NullableNestedSerializer + self.NullableFieldSerializer = NullableFieldSerializer def test_nested_validate(self): """ @@ -356,6 +374,12 @@ class TestStarredSource: 'd': 4 } + def test_nested_null_validate(self): + serializer = self.NullableNestedSerializer(data={'nested': None}) + + # validation should fail (but not error) since nested fields are required + assert not serializer.is_valid() + def test_nested_serialize(self): """ An object can be serialized into a nested representation. @@ -364,6 +388,20 @@ class TestStarredSource: serializer = self.Serializer(instance) assert serializer.data == self.data + def test_field_validate(self): + serializer = self.NullableFieldSerializer(data={'field': 'bar'}) + + # validation should pass since no internal validation + assert serializer.is_valid() + assert serializer.validated_data == {'foo': 'bar'} + + def test_field_null_validate(self): + serializer = self.NullableFieldSerializer(data={'field': None}) + + # validation should pass since no internal validation + assert serializer.is_valid() + assert serializer.validated_data == {'foo': None} + class TestIncorrectlyConfigured: def test_incorrect_field_name(self): From ccd9b71c0ace56f4ff125c16af14d751013dd9e7 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Tue, 21 May 2019 17:45:31 +0300 Subject: [PATCH 017/119] Don't cache _readable_fields and _writable_fields (#6689) It might be useful for a serializer with many many fields which uses read_only and write_only on a large percentage of the fields. But the memory usage and statefulness it adds are not worth it for the common case. --- rest_framework/serializers.py | 17 ++++++++--------- tests/test_fields.py | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 7b7959db9..b23389c56 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -361,18 +361,17 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass): fields[key] = value return fields - @cached_property + @property def _writable_fields(self): - return [ - field for field in self.fields.values() if not field.read_only - ] + for field in self.fields.values(): + if not field.read_only: + yield field - @cached_property + @property def _readable_fields(self): - return [ - field for field in self.fields.values() - if not field.write_only - ] + for field in self.fields.values(): + if not field.write_only: + yield field def get_fields(self): """ diff --git a/tests/test_fields.py b/tests/test_fields.py index e7f16c178..468b33e57 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -219,7 +219,7 @@ class TestReadOnly: Read-only fields should not be writable, even with default () """ serializer = self.Serializer() - assert len(serializer._writable_fields) == 1 + assert len(list(serializer._writable_fields)) == 1 def test_validate_read_only(self): """ From db37512a6e4fa5ba793b7e401d7014dfd0984995 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Tue, 21 May 2019 10:36:55 -0700 Subject: [PATCH 018/119] Remove 3.10 deprecations (#6687) * Remove DjangoObjectPermissionsFilter * Remove detail_route/list_route * Bump deprecation warning versions --- rest_framework/__init__.py | 4 ++-- rest_framework/compat.py | 7 ------ rest_framework/decorators.py | 38 ------------------------------- rest_framework/filters.py | 44 +----------------------------------- rest_framework/routers.py | 26 +-------------------- tests/test_decorators.py | 43 +++-------------------------------- tests/test_permissions.py | 40 +++++++------------------------- 7 files changed, 15 insertions(+), 187 deletions(-) diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index 53dc7bd47..cead7568d 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -25,9 +25,9 @@ ISO_8601 = 'iso-8601' default_app_config = 'rest_framework.apps.RestFrameworkConfig' -class RemovedInDRF310Warning(DeprecationWarning): +class RemovedInDRF311Warning(DeprecationWarning): pass -class RemovedInDRF311Warning(PendingDeprecationWarning): +class RemovedInDRF312Warning(PendingDeprecationWarning): pass diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 1feaf9faa..2e6a8adda 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -131,13 +131,6 @@ except ImportError: requests = None -def is_guardian_installed(): - """ - django-guardian is optional and only imported if in INSTALLED_APPS. - """ - return 'guardian' in settings.INSTALLED_APPS - - # PATCH method is not implemented by Django if 'patch' not in View.http_method_names: View.http_method_names = View.http_method_names + ['patch'] diff --git a/rest_framework/decorators.py b/rest_framework/decorators.py index 5d7bd14a3..671754fa1 100644 --- a/rest_framework/decorators.py +++ b/rest_framework/decorators.py @@ -7,11 +7,9 @@ based views, as well as the `@detail_route` and `@list_route` decorators, which used to annotate methods on viewsets that should be included by routers. """ import types -import warnings from django.forms.utils import pretty_name -from rest_framework import RemovedInDRF310Warning from rest_framework.views import APIView @@ -214,39 +212,3 @@ class MethodMapper(dict): def trace(self, func): return self._map('trace', func) - - -def detail_route(methods=None, **kwargs): - """ - Used to mark a method on a ViewSet that should be routed for detail requests. - """ - warnings.warn( - "`detail_route` is deprecated and will be removed in 3.10 in favor of " - "`action`, which accepts a `detail` bool. Use `@action(detail=True)` instead.", - RemovedInDRF310Warning, stacklevel=2 - ) - - def decorator(func): - func = action(methods, detail=True, **kwargs)(func) - if 'url_name' not in kwargs: - func.url_name = func.url_path.replace('_', '-') - return func - return decorator - - -def list_route(methods=None, **kwargs): - """ - Used to mark a method on a ViewSet that should be routed for list requests. - """ - warnings.warn( - "`list_route` is deprecated and will be removed in 3.10 in favor of " - "`action`, which accepts a `detail` bool. Use `@action(detail=False)` instead.", - RemovedInDRF310Warning, stacklevel=2 - ) - - def decorator(func): - func = action(methods, detail=False, **kwargs)(func) - if 'url_name' not in kwargs: - func.url_name = func.url_path.replace('_', '-') - return func - return decorator diff --git a/rest_framework/filters.py b/rest_framework/filters.py index e3b0468c7..2af063926 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -3,7 +3,6 @@ Provides generic filtering backends that can be used to filter the results returned by list views. """ import operator -import warnings from functools import reduce from django.core.exceptions import ImproperlyConfigured @@ -14,10 +13,7 @@ from django.template import loader from django.utils.encoding import force_text from django.utils.translation import gettext_lazy as _ -from rest_framework import RemovedInDRF310Warning -from rest_framework.compat import ( - coreapi, coreschema, distinct, is_guardian_installed -) +from rest_framework.compat import coreapi, coreschema, distinct from rest_framework.settings import api_settings @@ -315,41 +311,3 @@ class OrderingFilter(BaseFilterBackend): }, }, ] - - -class DjangoObjectPermissionsFilter(BaseFilterBackend): - """ - A filter backend that limits results to those where the requesting user - has read object level permissions. - """ - def __init__(self): - warnings.warn( - "`DjangoObjectPermissionsFilter` has been deprecated and moved to " - "the 3rd-party django-rest-framework-guardian package.", - RemovedInDRF310Warning, stacklevel=2 - ) - assert is_guardian_installed(), 'Using DjangoObjectPermissionsFilter, but django-guardian is not installed' - - perm_format = '%(app_label)s.view_%(model_name)s' - - def filter_queryset(self, request, queryset, view): - # We want to defer this import until run-time, rather than import-time. - # See https://github.com/encode/django-rest-framework/issues/4608 - # (Also see #1624 for why we need to make this import explicitly) - from guardian import VERSION as guardian_version - from guardian.shortcuts import get_objects_for_user - - extra = {} - user = request.user - model_cls = queryset.model - kwargs = { - 'app_label': model_cls._meta.app_label, - 'model_name': model_cls._meta.model_name - } - permission = self.perm_format % kwargs - if tuple(guardian_version) >= (1, 3): - # Maintain behavior compatibility with versions prior to 1.3 - extra = {'accept_global_perms': False} - else: - extra = {} - return get_objects_for_user(user, permission, queryset, **extra) diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 9334706f8..ee5760e81 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -22,9 +22,7 @@ from django.core.exceptions import ImproperlyConfigured from django.urls import NoReverseMatch from django.utils.deprecation import RenameMethodsBase -from rest_framework import ( - RemovedInDRF310Warning, RemovedInDRF311Warning, views -) +from rest_framework import RemovedInDRF311Warning, views from rest_framework.response import Response from rest_framework.reverse import reverse from rest_framework.schemas import SchemaGenerator @@ -36,28 +34,6 @@ Route = namedtuple('Route', ['url', 'mapping', 'name', 'detail', 'initkwargs']) DynamicRoute = namedtuple('DynamicRoute', ['url', 'name', 'detail', 'initkwargs']) -class DynamicDetailRoute: - def __new__(cls, url, name, initkwargs): - warnings.warn( - "`DynamicDetailRoute` is deprecated and will be removed in 3.10 " - "in favor of `DynamicRoute`, which accepts a `detail` boolean. Use " - "`DynamicRoute(url, name, True, initkwargs)` instead.", - RemovedInDRF310Warning, stacklevel=2 - ) - return DynamicRoute(url, name, True, initkwargs) - - -class DynamicListRoute: - def __new__(cls, url, name, initkwargs): - warnings.warn( - "`DynamicListRoute` is deprecated and will be removed in 3.10 in " - "favor of `DynamicRoute`, which accepts a `detail` boolean. Use " - "`DynamicRoute(url, name, False, initkwargs)` instead.", - RemovedInDRF310Warning, stacklevel=2 - ) - return DynamicRoute(url, name, False, initkwargs) - - def escape_curly_brackets(url_path): """ Double brackets in regex of url_path for escape string formatting diff --git a/tests/test_decorators.py b/tests/test_decorators.py index bd30449e5..e10f0e5c5 100644 --- a/tests/test_decorators.py +++ b/tests/test_decorators.py @@ -1,12 +1,11 @@ import pytest from django.test import TestCase -from rest_framework import RemovedInDRF310Warning, status +from rest_framework import status from rest_framework.authentication import BasicAuthentication from rest_framework.decorators import ( - action, api_view, authentication_classes, detail_route, list_route, - parser_classes, permission_classes, renderer_classes, schema, - throttle_classes + action, api_view, authentication_classes, parser_classes, + permission_classes, renderer_classes, schema, throttle_classes ) from rest_framework.parsers import JSONParser from rest_framework.permissions import IsAuthenticated @@ -285,39 +284,3 @@ class ActionDecoratorTestCase(TestCase): @test_action.mapping.post def test_action(): raise NotImplementedError - - def test_detail_route_deprecation(self): - with pytest.warns(RemovedInDRF310Warning) as record: - @detail_route() - def view(request): - raise NotImplementedError - - assert len(record) == 1 - assert str(record[0].message) == ( - "`detail_route` is deprecated and will be removed in " - "3.10 in favor of `action`, which accepts a `detail` bool. Use " - "`@action(detail=True)` instead." - ) - - def test_list_route_deprecation(self): - with pytest.warns(RemovedInDRF310Warning) as record: - @list_route() - def view(request): - raise NotImplementedError - - assert len(record) == 1 - assert str(record[0].message) == ( - "`list_route` is deprecated and will be removed in " - "3.10 in favor of `action`, which accepts a `detail` bool. Use " - "`@action(detail=False)` instead." - ) - - def test_route_url_name_from_path(self): - # pre-3.8 behavior was to base the `url_name` off of the `url_path` - with pytest.warns(RemovedInDRF310Warning): - @list_route(url_path='foo_bar') - def view(request): - raise NotImplementedError - - assert view.url_path == 'foo_bar' - assert view.url_name == 'foo-bar' diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 9c9300694..03b80aae8 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -1,21 +1,20 @@ import base64 import unittest -import warnings from unittest import mock import django import pytest +from django.conf import settings from django.contrib.auth.models import AnonymousUser, Group, Permission, User from django.db import models from django.test import TestCase from django.urls import ResolverMatch from rest_framework import ( - HTTP_HEADER_ENCODING, RemovedInDRF310Warning, authentication, generics, - permissions, serializers, status, views + HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers, + status, views ) -from rest_framework.compat import PY36, is_guardian_installed -from rest_framework.filters import DjangoObjectPermissionsFilter +from rest_framework.compat import PY36 from rest_framework.routers import DefaultRouter from rest_framework.test import APIRequestFactory from tests.models import BasicModel @@ -309,7 +308,7 @@ class GetQuerysetObjectPermissionInstanceView(generics.RetrieveUpdateDestroyAPIV get_queryset_object_permissions_view = GetQuerysetObjectPermissionInstanceView.as_view() -@unittest.skipUnless(is_guardian_installed(), 'django-guardian not installed') +@unittest.skipUnless('guardian' in settings.INSTALLED_APPS, 'django-guardian not installed') class ObjectPermissionsIntegrationTests(TestCase): """ Integration tests for the object level permissions API. @@ -418,37 +417,14 @@ class ObjectPermissionsIntegrationTests(TestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) # Read list - def test_django_object_permissions_filter_deprecated(self): - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always") - DjangoObjectPermissionsFilter() - - message = ("`DjangoObjectPermissionsFilter` has been deprecated and moved " - "to the 3rd-party django-rest-framework-guardian package.") - self.assertEqual(len(w), 1) - self.assertIs(w[-1].category, RemovedInDRF310Warning) - self.assertEqual(str(w[-1].message), message) - + # Note: this previously tested `DjangoObjectPermissionsFilter`, which has + # since been moved to a separate package. These now act as sanity checks. def test_can_read_list_permissions(self): request = factory.get('/', HTTP_AUTHORIZATION=self.credentials['readonly']) - object_permissions_list_view.cls.filter_backends = (DjangoObjectPermissionsFilter,) - # TODO: remove in version 3.10 - with warnings.catch_warnings(record=True): - warnings.simplefilter("always") - response = object_permissions_list_view(request) + response = object_permissions_list_view(request) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data[0].get('id'), 1) - def test_cannot_read_list_permissions(self): - request = factory.get('/', HTTP_AUTHORIZATION=self.credentials['writeonly']) - object_permissions_list_view.cls.filter_backends = (DjangoObjectPermissionsFilter,) - # TODO: remove in version 3.10 - with warnings.catch_warnings(record=True): - warnings.simplefilter("always") - response = object_permissions_list_view(request) - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertListEqual(response.data, []) - def test_cannot_method_not_allowed(self): request = factory.generic('METHOD_NOT_ALLOWED', '/', HTTP_AUTHORIZATION=self.credentials['readonly']) response = object_permissions_list_view(request) From 0d0e7c3ae092e1b98f4826ccf356a87cb9aa2b56 Mon Sep 17 00:00:00 2001 From: Florian Wendelborn <1133858+FlorianWendelborn@users.noreply.github.com> Date: Wed, 22 May 2019 20:25:12 +0200 Subject: [PATCH 019/119] Add HTTP 308 Permanent Redirect (#6693) --- rest_framework/status.py | 1 + 1 file changed, 1 insertion(+) diff --git a/rest_framework/status.py b/rest_framework/status.py index 1489b440c..df0fa0f02 100644 --- a/rest_framework/status.py +++ b/rest_framework/status.py @@ -45,6 +45,7 @@ HTTP_304_NOT_MODIFIED = 304 HTTP_305_USE_PROXY = 305 HTTP_306_RESERVED = 306 HTTP_307_TEMPORARY_REDIRECT = 307 +HTTP_308_PERMANENT_REDIRECT = 308 HTTP_400_BAD_REQUEST = 400 HTTP_401_UNAUTHORIZED = 401 HTTP_402_PAYMENT_REQUIRED = 402 From 19ca86d8d69d37d0e953837fbba1c1934d31dc75 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Wed, 22 May 2019 19:41:53 -0700 Subject: [PATCH 020/119] Fix lazy translation of ListField errors (#6708) * Test init for fields w/ lazy translations * Fix lazy translations for ListField --- rest_framework/fields.py | 4 ++-- tests/importable/__init__.py | 17 ++++++++++++++++- tests/importable/test_installed.py | 17 ++++++++++++++--- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 179dd25c8..213134793 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1610,10 +1610,10 @@ class ListField(Field): super().__init__(*args, **kwargs) self.child.bind(field_name='', parent=self) if self.max_length is not None: - message = self.error_messages['max_length'].format(max_length=self.max_length) + message = lazy(self.error_messages['max_length'].format, str)(max_length=self.max_length) self.validators.append(MaxLengthValidator(self.max_length, message=message)) if self.min_length is not None: - message = self.error_messages['min_length'].format(min_length=self.min_length) + message = lazy(self.error_messages['min_length'].format, str)(min_length=self.min_length) self.validators.append(MinLengthValidator(self.min_length, message=message)) def get_value(self, dictionary): diff --git a/tests/importable/__init__.py b/tests/importable/__init__.py index b36599027..ded08258c 100644 --- a/tests/importable/__init__.py +++ b/tests/importable/__init__.py @@ -1 +1,16 @@ -from rest_framework import compat # noqa +""" +This test "app" exists to ensure that parts of Django REST Framework can be +imported/invoked before Django itself has been fully initialized. +""" + +from rest_framework import compat, serializers # noqa + + +# test initializing fields with lazy translations +class ExampleSerializer(serializers.Serializer): + charfield = serializers.CharField(min_length=1, max_length=2) + integerfield = serializers.IntegerField(min_value=1, max_value=2) + floatfield = serializers.FloatField(min_value=1, max_value=2) + decimalfield = serializers.DecimalField(max_digits=10, decimal_places=1, min_value=1, max_value=2) + durationfield = serializers.DurationField(min_value=1, max_value=2) + listfield = serializers.ListField(min_length=1, max_length=2) diff --git a/tests/importable/test_installed.py b/tests/importable/test_installed.py index 072d3b2e4..c7e53af23 100644 --- a/tests/importable/test_installed.py +++ b/tests/importable/test_installed.py @@ -4,10 +4,21 @@ from tests import importable def test_installed(): - # ensure that apps can freely import rest_framework.compat + # ensure the test app hasn't been removed from the test suite assert 'tests.importable' in settings.INSTALLED_APPS -def test_imported(): - # ensure that the __init__ hasn't been mucked with +def test_compat(): assert hasattr(importable, 'compat') + + +def test_serializer_fields_initialization(): + assert hasattr(importable, 'ExampleSerializer') + + serializer = importable.ExampleSerializer() + assert 'charfield' in serializer.fields + assert 'integerfield' in serializer.fields + assert 'floatfield' in serializer.fields + assert 'decimalfield' in serializer.fields + assert 'durationfield' in serializer.fields + assert 'listfield' in serializer.fields From afb678433b7dc068213e6e8a359ad1f6fff05b0d Mon Sep 17 00:00:00 2001 From: Mathieu Pillard Date: Thu, 23 May 2019 15:42:29 +0200 Subject: [PATCH 021/119] Always call all throttling classes on the view when checking throttles (#6711) --- rest_framework/views.py | 6 +++++- tests/test_throttling.py | 46 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/rest_framework/views.py b/rest_framework/views.py index 6ef7021d4..832f17233 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -350,9 +350,13 @@ class APIView(View): Check if request should be throttled. Raises an appropriate exception if the request is throttled. """ + throttle_durations = [] for throttle in self.get_throttles(): if not throttle.allow_request(request, self): - self.throttled(request, throttle.wait()) + throttle_durations.append(throttle.wait()) + + if throttle_durations: + self.throttled(request, max(throttle_durations)) def determine_version(self, request, *args, **kwargs): """ diff --git a/tests/test_throttling.py b/tests/test_throttling.py index b20b6a809..3c172e263 100644 --- a/tests/test_throttling.py +++ b/tests/test_throttling.py @@ -30,6 +30,11 @@ class User3MinRateThrottle(UserRateThrottle): scope = 'minutes' +class User6MinRateThrottle(UserRateThrottle): + rate = '6/min' + scope = 'minutes' + + class NonTimeThrottle(BaseThrottle): def allow_request(self, request, view): if not hasattr(self.__class__, 'called'): @@ -38,6 +43,13 @@ class NonTimeThrottle(BaseThrottle): return False +class MockView_DoubleThrottling(APIView): + throttle_classes = (User3SecRateThrottle, User6MinRateThrottle,) + + def get(self, request): + return Response('foo') + + class MockView(APIView): throttle_classes = (User3SecRateThrottle,) @@ -80,7 +92,8 @@ class ThrottlingTests(TestCase): """ Explicitly set the timer, overriding time.time() """ - view.throttle_classes[0].timer = lambda self: value + for cls in view.throttle_classes: + cls.timer = lambda self: value def test_request_throttling_expires(self): """ @@ -115,6 +128,37 @@ class ThrottlingTests(TestCase): """ self.ensure_is_throttled(MockView, 200) + def test_request_throttling_multiple_throttles(self): + """ + Ensure all throttle classes see each request even when the request is + already being throttled + """ + self.set_throttle_timer(MockView_DoubleThrottling, 0) + request = self.factory.get('/') + for dummy in range(4): + response = MockView_DoubleThrottling.as_view()(request) + assert response.status_code == 429 + assert int(response['retry-after']) == 1 + + # At this point our client made 4 requests (one was throttled) in a + # second. If we advance the timer by one additional second, the client + # should be allowed to make 2 more before being throttled by the 2nd + # throttle class, which has a limit of 6 per minute. + self.set_throttle_timer(MockView_DoubleThrottling, 1) + for dummy in range(2): + response = MockView_DoubleThrottling.as_view()(request) + assert response.status_code == 200 + + response = MockView_DoubleThrottling.as_view()(request) + assert response.status_code == 429 + assert int(response['retry-after']) == 59 + + # Just to make sure check again after two more seconds. + self.set_throttle_timer(MockView_DoubleThrottling, 2) + response = MockView_DoubleThrottling.as_view()(request) + assert response.status_code == 429 + assert int(response['retry-after']) == 58 + def ensure_response_header_contains_proper_throttle_field(self, view, expected_headers): """ Ensure the response returns an Retry-After field with status and next attributes From 514033815d6edf370793adb2f650039aab4f5df2 Mon Sep 17 00:00:00 2001 From: Raffaele Salmaso Date: Fri, 24 May 2019 13:47:35 +0200 Subject: [PATCH 022/119] Allow JSONField encoder customization. (#6713) --- docs/api-guide/fields.md | 3 ++- rest_framework/fields.py | 5 +++-- rest_framework/serializers.py | 5 +++++ tests/test_model_serializer.py | 7 +++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index b2830d0c9..64515f804 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -501,9 +501,10 @@ Note that the child field **must** be an instance of `CharField`, as the hstore A field class that validates that the incoming data structure consists of valid JSON primitives. In its alternate binary mode, it will represent and validate JSON-encoded binary strings. -**Signature**: `JSONField(binary)` +**Signature**: `JSONField(binary, encoder)` - `binary` - If set to `True` then the field will output and validate a JSON encoded string, rather than a primitive data structure. Defaults to `False`. +- `encoder` - Use this JSON encoder to serialize input object. Defaults to `None`. --- diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 213134793..7da3d2b8e 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1746,6 +1746,7 @@ class JSONField(Field): def __init__(self, *args, **kwargs): self.binary = kwargs.pop('binary', False) + self.encoder = kwargs.pop('encoder', None) super().__init__(*args, **kwargs) def get_value(self, dictionary): @@ -1767,14 +1768,14 @@ class JSONField(Field): data = data.decode() return json.loads(data) else: - json.dumps(data) + json.dumps(data, cls=self.encoder) except (TypeError, ValueError): self.fail('invalid') return data def to_representation(self, value): if self.binary: - value = json.dumps(value) + value = json.dumps(value, cls=self.encoder) value = value.encode() return value diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index b23389c56..857d3ed94 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -1232,6 +1232,11 @@ class ModelSerializer(Serializer): # `allow_blank` is only valid for textual fields. field_kwargs.pop('allow_blank', None) + if postgres_fields and isinstance(model_field, postgres_fields.JSONField): + # Populate the `encoder` argument of `JSONField` instances generated + # for the PostgreSQL specific `JSONField`. + field_kwargs['encoder'] = getattr(model_field, 'encoder', None) + if postgres_fields and isinstance(model_field, postgres_fields.ArrayField): # Populate the `child` argument on `ListField` instances generated # for the PostgreSQL specific `ArrayField`. diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 413d7885d..88c6785b2 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -13,6 +13,7 @@ from collections import OrderedDict import django import pytest from django.core.exceptions import ImproperlyConfigured +from django.core.serializers.json import DjangoJSONEncoder from django.core.validators import ( MaxValueValidator, MinLengthValidator, MinValueValidator ) @@ -452,15 +453,17 @@ class TestPosgresFieldsMapping(TestCase): def test_json_field(self): class JSONFieldModel(models.Model): json_field = postgres_fields.JSONField() + json_field_with_encoder = postgres_fields.JSONField(encoder=DjangoJSONEncoder) class TestSerializer(serializers.ModelSerializer): class Meta: model = JSONFieldModel - fields = ['json_field'] + fields = ['json_field', 'json_field_with_encoder'] expected = dedent(""" TestSerializer(): - json_field = JSONField(style={'base_template': 'textarea.html'}) + json_field = JSONField(encoder=None, style={'base_template': 'textarea.html'}) + json_field_with_encoder = JSONField(encoder=, style={'base_template': 'textarea.html'}) """) self.assertEqual(repr(TestSerializer()), expected) From 10a0b42b749bd5965ea925633ff5b36e3b53bf74 Mon Sep 17 00:00:00 2001 From: Dani Hodovic Date: Fri, 24 May 2019 19:50:15 +0800 Subject: [PATCH 023/119] Add more DRF job sites (#6691) --- docs/community/jobs.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/jobs.md b/docs/community/jobs.md index e74b78c7f..5f3d60b55 100644 --- a/docs/community/jobs.md +++ b/docs/community/jobs.md @@ -9,6 +9,7 @@ Looking for a new Django REST Framework related role? On this site we provide a * [https://www.python.org/jobs/][python-org-jobs] * [https://djangogigs.com][django-gigs-com] * [https://djangojobs.net/jobs/][django-jobs-net] +* [https://findwork.dev/django-rest-framework-jobs][findwork-dev] * [https://www.indeed.com/q-Django-jobs.html][indeed-com] * [https://stackoverflow.com/jobs/developer-jobs-using-django][stackoverflow-com] * [https://www.upwork.com/o/jobs/browse/skill/django-framework/][upwork-com] @@ -26,6 +27,7 @@ Wonder how else you can help? One of the best ways you can help Django REST Fram [python-org-jobs]: https://www.python.org/jobs/ [django-gigs-com]: https://djangogigs.com [django-jobs-net]: https://djangojobs.net/jobs/ +[findwork-dev]: https://findwork.dev/django-rest-framework-jobs [indeed-com]: https://www.indeed.com/q-Django-jobs.html [stackoverflow-com]: https://stackoverflow.com/jobs/developer-jobs-using-django [upwork-com]: https://www.upwork.com/o/jobs/browse/skill/django-framework/ From 063f0de949650ee98a4c795d6bcdf994dadbfe4a Mon Sep 17 00:00:00 2001 From: Monte Hellawell Date: Wed, 29 May 2019 09:57:07 +0100 Subject: [PATCH 024/119] Move security information to the GitHub security tab (#6716) * Create SECURITY.md * Update security policy links in README.md --- README.md | 6 ++---- SECURITY.md | 9 +++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 SECURITY.md diff --git a/README.md b/README.md index b80b7fe01..ecf59d7fa 100644 --- a/README.md +++ b/README.md @@ -175,9 +175,7 @@ You may also want to [follow the author on Twitter][twitter]. # Security -If you believe you've found something in Django REST framework which has security implications, please **do not raise the issue in a public forum**. - -Send a description of the issue via email to [rest-framework-security@googlegroups.com][security-mail]. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. +Please see the [security policy][security-policy]. [build-status-image]: https://secure.travis-ci.org/encode/django-rest-framework.svg?branch=master [travis]: https://travis-ci.org/encode/django-rest-framework?branch=master @@ -225,4 +223,4 @@ Send a description of the issue via email to [rest-framework-security@googlegrou [image]: https://www.django-rest-framework.org/img/quickstart.png [docs]: https://www.django-rest-framework.org/ -[security-mail]: mailto:rest-framework-security@googlegroups.com +[security-policy]: https://github.com/encode/django-rest-framework/security/policy diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..d3faefa3c --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,9 @@ +# Security Policy + +## Reporting a Vulnerability + +If you believe you've found something in Django REST framework which has security implications, please **do not raise the issue in a public forum**. + +Send a description of the issue via email to [rest-framework-security@googlegroups.com][security-mail]. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. + +[security-mail]: mailto:rest-framework-security@googlegroups.com From 62ed1f82707916a23b4e97aae8e48f09ddaf1dea Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Wed, 29 May 2019 17:51:24 +0100 Subject: [PATCH 025/119] Use yaml.safe_load instead of load (#6719) Use of PyYAML's yaml.load function without specifying the Loader parameter has been deprecated, see https://msg.pyyaml.org/load. Earlier versions of PyYAML already had the alternative safe_load function, which limits the loader to a subset of YAML constructs, that is enough for what we need here. Fixes #6677 --- tests/schemas/test_managementcommand.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/schemas/test_managementcommand.py b/tests/schemas/test_managementcommand.py index e5960f2b0..42e0e99d1 100644 --- a/tests/schemas/test_managementcommand.py +++ b/tests/schemas/test_managementcommand.py @@ -45,7 +45,7 @@ class GenerateSchemaTests(TestCase): '--description=Sample description', stdout=self.out) # Check valid YAML was output. - schema = yaml.load(self.out.getvalue()) + schema = yaml.safe_load(self.out.getvalue()) assert schema['openapi'] == '3.0.2' def test_renders_openapi_json_schema(self): From c2293e9f251b1f215825186a7bcbf5a006df0cb0 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Wed, 29 May 2019 21:32:03 +0300 Subject: [PATCH 026/119] Improve performance of lazy validation message formatting (#6709) --- rest_framework/compat.py | 30 ------------------ rest_framework/fields.py | 51 ++++++++++-------------------- rest_framework/utils/formatting.py | 26 +++++++++++++++ tests/test_utils.py | 19 +++++++++++ 4 files changed, 62 insertions(+), 64 deletions(-) diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 2e6a8adda..4bee21f91 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -5,7 +5,6 @@ versions of Django/Python, and compatibility wrappers around optional packages. import sys from django.conf import settings -from django.core import validators from django.views.generic import View try: @@ -238,34 +237,5 @@ LONG_SEPARATORS = (', ', ': ') INDENT_SEPARATORS = (',', ': ') -class CustomValidatorMessage: - """ - We need to avoid evaluation of `lazy` translated `message` in `django.core.validators.BaseValidator.__init__`. - https://github.com/django/django/blob/75ed5900321d170debef4ac452b8b3cf8a1c2384/django/core/validators.py#L297 - - Ref: https://github.com/encode/django-rest-framework/pull/5452 - """ - - def __init__(self, *args, **kwargs): - self.message = kwargs.pop('message', self.message) - super().__init__(*args, **kwargs) - - -class MinValueValidator(CustomValidatorMessage, validators.MinValueValidator): - pass - - -class MaxValueValidator(CustomValidatorMessage, validators.MaxValueValidator): - pass - - -class MinLengthValidator(CustomValidatorMessage, validators.MinLengthValidator): - pass - - -class MaxLengthValidator(CustomValidatorMessage, validators.MaxLengthValidator): - pass - - # Version Constants. PY36 = sys.version_info >= (3, 6) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 7da3d2b8e..a68cd6ecc 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -12,7 +12,8 @@ from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ValidationError as DjangoValidationError from django.core.validators import ( - EmailValidator, RegexValidator, URLValidator, ip_address_validators + EmailValidator, MaxLengthValidator, MaxValueValidator, MinLengthValidator, + MinValueValidator, RegexValidator, URLValidator, ip_address_validators ) from django.forms import FilePathField as DjangoFilePathField from django.forms import ImageField as DjangoImageField @@ -23,20 +24,17 @@ from django.utils.dateparse import ( from django.utils.duration import duration_string from django.utils.encoding import is_protected_type, smart_text from django.utils.formats import localize_input, sanitize_separators -from django.utils.functional import lazy from django.utils.ipv6 import clean_ipv6_address from django.utils.timezone import utc from django.utils.translation import gettext_lazy as _ from pytz.exceptions import InvalidTimeError from rest_framework import ISO_8601 -from rest_framework.compat import ( - MaxLengthValidator, MaxValueValidator, MinLengthValidator, - MinValueValidator, ProhibitNullCharactersValidator -) +from rest_framework.compat import ProhibitNullCharactersValidator from rest_framework.exceptions import ErrorDetail, ValidationError from rest_framework.settings import api_settings from rest_framework.utils import html, humanize_datetime, json, representation +from rest_framework.utils.formatting import lazy_format class empty: @@ -749,12 +747,11 @@ class CharField(Field): self.min_length = kwargs.pop('min_length', None) super().__init__(**kwargs) if self.max_length is not None: - message = lazy(self.error_messages['max_length'].format, str)(max_length=self.max_length) + message = lazy_format(self.error_messages['max_length'], max_length=self.max_length) self.validators.append( MaxLengthValidator(self.max_length, message=message)) if self.min_length is not None: - message = lazy( - self.error_messages['min_length'].format, str)(min_length=self.min_length) + message = lazy_format(self.error_messages['min_length'], min_length=self.min_length) self.validators.append( MinLengthValidator(self.min_length, message=message)) @@ -915,13 +912,11 @@ class IntegerField(Field): self.min_value = kwargs.pop('min_value', None) super().__init__(**kwargs) if self.max_value is not None: - message = lazy( - self.error_messages['max_value'].format, str)(max_value=self.max_value) + message = lazy_format(self.error_messages['max_value'], max_value=self.max_value) self.validators.append( MaxValueValidator(self.max_value, message=message)) if self.min_value is not None: - message = lazy( - self.error_messages['min_value'].format, str)(min_value=self.min_value) + message = lazy_format(self.error_messages['min_value'], min_value=self.min_value) self.validators.append( MinValueValidator(self.min_value, message=message)) @@ -953,15 +948,11 @@ class FloatField(Field): self.min_value = kwargs.pop('min_value', None) super().__init__(**kwargs) if self.max_value is not None: - message = lazy( - self.error_messages['max_value'].format, - str)(max_value=self.max_value) + message = lazy_format(self.error_messages['max_value'], max_value=self.max_value) self.validators.append( MaxValueValidator(self.max_value, message=message)) if self.min_value is not None: - message = lazy( - self.error_messages['min_value'].format, - str)(min_value=self.min_value) + message = lazy_format(self.error_messages['min_value'], min_value=self.min_value) self.validators.append( MinValueValidator(self.min_value, message=message)) @@ -1012,14 +1003,11 @@ class DecimalField(Field): super().__init__(**kwargs) if self.max_value is not None: - message = lazy( - self.error_messages['max_value'].format, - str)(max_value=self.max_value) + message = lazy_format(self.error_messages['max_value'], max_value=self.max_value) self.validators.append( MaxValueValidator(self.max_value, message=message)) if self.min_value is not None: - message = lazy( - self.error_messages['min_value'].format, str)(min_value=self.min_value) + message = lazy_format(self.error_messages['min_value'], min_value=self.min_value) self.validators.append( MinValueValidator(self.min_value, message=message)) @@ -1357,15 +1345,11 @@ class DurationField(Field): self.min_value = kwargs.pop('min_value', None) super().__init__(**kwargs) if self.max_value is not None: - message = lazy( - self.error_messages['max_value'].format, - str)(max_value=self.max_value) + message = lazy_format(self.error_messages['max_value'], max_value=self.max_value) self.validators.append( MaxValueValidator(self.max_value, message=message)) if self.min_value is not None: - message = lazy( - self.error_messages['min_value'].format, - str)(min_value=self.min_value) + message = lazy_format(self.error_messages['min_value'], min_value=self.min_value) self.validators.append( MinValueValidator(self.min_value, message=message)) @@ -1610,10 +1594,10 @@ class ListField(Field): super().__init__(*args, **kwargs) self.child.bind(field_name='', parent=self) if self.max_length is not None: - message = lazy(self.error_messages['max_length'].format, str)(max_length=self.max_length) + message = lazy_format(self.error_messages['max_length'], max_length=self.max_length) self.validators.append(MaxLengthValidator(self.max_length, message=message)) if self.min_length is not None: - message = lazy(self.error_messages['min_length'].format, str)(min_length=self.min_length) + message = lazy_format(self.error_messages['min_length'], min_length=self.min_length) self.validators.append(MinLengthValidator(self.min_length, message=message)) def get_value(self, dictionary): @@ -1887,8 +1871,7 @@ class ModelField(Field): max_length = kwargs.pop('max_length', None) super().__init__(**kwargs) if max_length is not None: - message = lazy( - self.error_messages['max_length'].format, str)(max_length=self.max_length) + message = lazy_format(self.error_messages['max_length'], max_length=self.max_length) self.validators.append( MaxLengthValidator(self.max_length, message=message)) diff --git a/rest_framework/utils/formatting.py b/rest_framework/utils/formatting.py index 4e003f614..e96cc6719 100644 --- a/rest_framework/utils/formatting.py +++ b/rest_framework/utils/formatting.py @@ -65,3 +65,29 @@ def markup_description(description): description = escape(description).replace('\n', '
') description = '

' + description + '

' return mark_safe(description) + + +class lazy_format: + """ + Delay formatting until it's actually needed. + + Useful when the format string or one of the arguments is lazy. + + Not using Django's lazy because it is too slow. + """ + __slots__ = ('format_string', 'args', 'kwargs', 'result') + + def __init__(self, format_string, *args, **kwargs): + self.result = None + self.format_string = format_string + self.args = args + self.kwargs = kwargs + + def __str__(self): + if self.result is None: + self.result = self.format_string.format(*self.args, **self.kwargs) + self.format_string, self.args, self.kwargs = None, None, None + return self.result + + def __mod__(self, value): + return str(self) % value diff --git a/tests/test_utils.py b/tests/test_utils.py index 0d61cc2f9..885b5a58d 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,3 +1,5 @@ +from unittest import mock + from django.conf.urls import url from django.test import TestCase, override_settings @@ -6,6 +8,7 @@ from rest_framework.routers import SimpleRouter from rest_framework.serializers import ModelSerializer from rest_framework.utils import json from rest_framework.utils.breadcrumbs import get_breadcrumbs +from rest_framework.utils.formatting import lazy_format from rest_framework.utils.urls import remove_query_param, replace_query_param from rest_framework.views import APIView from rest_framework.viewsets import ModelViewSet @@ -257,3 +260,19 @@ class UrlsRemoveQueryParamTests(TestCase): removed_key = 'page' assert key in remove_query_param(q, removed_key) + + +class LazyFormatTests(TestCase): + def test_it_formats_correctly(self): + formatted = lazy_format('Does {} work? {answer}: %s', 'it', answer='Yes') + assert str(formatted) == 'Does it work? Yes: %s' + assert formatted % 'it does' == 'Does it work? Yes: it does' + + def test_it_formats_lazily(self): + message = mock.Mock(wraps='message') + formatted = lazy_format(message) + assert message.format.call_count == 0 + str(formatted) + assert message.format.call_count == 1 + str(formatted) + assert message.format.call_count == 1 From 8430f3e5b62605e3753018dd2e8f8975b41b0a0a Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Thu, 30 May 2019 15:23:37 -0400 Subject: [PATCH 027/119] Fix typo in github.com URL. (#6720) --- docs/api-guide/renderers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md index 4ec409681..fc35261f1 100644 --- a/docs/api-guide/renderers.md +++ b/docs/api-guide/renderers.md @@ -534,7 +534,7 @@ Comma-separated values are a plain-text tabular data format, that can be easily [messagepack]: https://msgpack.org/ [juanriaza]: https://github.com/juanriaza [mjumbewu]: https://github.com/mjumbewu -[flipperpa]: https://githuc.com/flipperpa +[flipperpa]: https://github.com/flipperpa [wharton]: https://github.com/wharton [drf-renderer-xlsx]: https://github.com/wharton/drf-renderer-xlsx [vbabiy]: https://github.com/vbabiy From 6bd25c09a642dea9918bd85a3c40671fbb8feb2d Mon Sep 17 00:00:00 2001 From: Florian Wendelborn <1133858+FlorianWendelborn@users.noreply.github.com> Date: Thu, 30 May 2019 23:32:46 +0200 Subject: [PATCH 028/119] Add Multiple HTTP Statuses (#6706) --- rest_framework/status.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rest_framework/status.py b/rest_framework/status.py index df0fa0f02..06d090733 100644 --- a/rest_framework/status.py +++ b/rest_framework/status.py @@ -37,6 +37,8 @@ HTTP_204_NO_CONTENT = 204 HTTP_205_RESET_CONTENT = 205 HTTP_206_PARTIAL_CONTENT = 206 HTTP_207_MULTI_STATUS = 207 +HTTP_208_ALREADY_REPORTED = 208 +HTTP_226_IM_USED = 226 HTTP_300_MULTIPLE_CHOICES = 300 HTTP_301_MOVED_PERMANENTLY = 301 HTTP_302_FOUND = 302 @@ -67,6 +69,7 @@ HTTP_417_EXPECTATION_FAILED = 417 HTTP_422_UNPROCESSABLE_ENTITY = 422 HTTP_423_LOCKED = 423 HTTP_424_FAILED_DEPENDENCY = 424 +HTTP_426_UPGRADE_REQUIRED = 426 HTTP_428_PRECONDITION_REQUIRED = 428 HTTP_429_TOO_MANY_REQUESTS = 429 HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 431 @@ -77,5 +80,9 @@ HTTP_502_BAD_GATEWAY = 502 HTTP_503_SERVICE_UNAVAILABLE = 503 HTTP_504_GATEWAY_TIMEOUT = 504 HTTP_505_HTTP_VERSION_NOT_SUPPORTED = 505 +HTTP_506_VARIANT_ALSO_NEGOTIATES = 506 HTTP_507_INSUFFICIENT_STORAGE = 507 +HTTP_508_LOOP_DETECTED = 508 +HTTP_509_BANDWIDTH_LIMIT_EXCEEDED = 509 +HTTP_510_NOT_EXTENDED = 510 HTTP_511_NETWORK_AUTHENTICATION_REQUIRED = 511 From b37aa284eb4aee17f5c6659e7533427ffcc5a2c8 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Thu, 30 May 2019 15:05:27 -0700 Subject: [PATCH 029/119] Remove unnecessary bytes() calls (#6626) --- rest_framework/renderers.py | 2 +- rest_framework/response.py | 2 +- rest_framework/test.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 2a4ae5905..3dc94ed2d 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -88,7 +88,7 @@ class JSONRenderer(BaseRenderer): Render `data` into JSON, returning a bytestring. """ if data is None: - return bytes() + return b'' renderer_context = renderer_context or {} indent = self.get_indent(accepted_media_type, renderer_context) diff --git a/rest_framework/response.py b/rest_framework/response.py index db7977770..495423734 100644 --- a/rest_framework/response.py +++ b/rest_framework/response.py @@ -73,7 +73,7 @@ class Response(SimpleTemplateResponse): 'renderer returned unicode, and did not specify ' 'a charset value.' ) - return bytes(ret.encode(charset)) + return ret.encode(charset) if not ret: del self['Content-Type'] diff --git a/rest_framework/test.py b/rest_framework/test.py index 852d4919e..ab16c2787 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -185,7 +185,7 @@ class APIRequestFactory(DjangoRequestFactory): # Coerce text to bytes if required. if isinstance(ret, str): - ret = bytes(ret.encode(renderer.charset)) + ret = ret.encode(renderer.charset) return ret, content_type From 6aac9d2be1f3a40a85ca8068ceabf5d4507994e4 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 30 May 2019 20:47:30 -0600 Subject: [PATCH 030/119] Remove references to django-crispy-forms (#6600) --- docs/index.md | 2 -- rest_framework/compat.py | 7 ------- 2 files changed, 9 deletions(-) diff --git a/docs/index.md b/docs/index.md index c8507cf1e..34440214a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -95,7 +95,6 @@ The following packages are optional: * [coreapi][coreapi] (1.32.0+) - Schema generation support. * [Markdown][markdown] (2.6.0+) - Markdown support for the browsable API. * [django-filter][django-filter] (1.0.1+) - Filtering support. -* [django-crispy-forms][django-crispy-forms] - Improved HTML display for filtering. * [django-guardian][django-guardian] (1.1.1+) - Object level permissions support. ## Installation @@ -239,7 +238,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. [coreapi]: https://pypi.org/project/coreapi/ [markdown]: https://pypi.org/project/Markdown/ [django-filter]: https://pypi.org/project/django-filter/ -[django-crispy-forms]: https://github.com/maraujop/django-crispy-forms [django-guardian]: https://github.com/django-guardian/django-guardian [index]: . [oauth1-section]: api-guide/authentication/#django-rest-framework-oauth diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 4bee21f91..863d64406 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -116,13 +116,6 @@ except ImportError: yaml = None -# django-crispy-forms is optional -try: - import crispy_forms -except ImportError: - crispy_forms = None - - # requests is optional try: import requests From 3e210ae48d250b36c66c2b438b8ac1428fa24f3b Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Fri, 31 May 2019 14:11:58 -0700 Subject: [PATCH 031/119] Update markdown preprocessor registration (#6722) --- docs/community/release-notes.md | 21 +++++++++++++++++---- docs/index.md | 4 +++- requirements/requirements-optionals.txt | 3 ++- rest_framework/compat.py | 4 ++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index cda24809f..a27de2b64 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -38,17 +38,26 @@ You can determine your currently installed version using `pip show`: --- +## 3.10.x series + +### 3.10.0 + +**Date**: [Unreleased][3.10.0-milestone] + +* Resolve DeprecationWarning with markdown. [#6317][gh6317] + + ## 3.9.x series ### 3.9.4 -**Date**: [10th May 2019] +**Date**: 10th May 2019 This is a maintenance release that fixes an error handling bug under Python 2. ### 3.9.3 -**Date**: [29th April 2019] +**Date**: 29th April 2019 This is the last Django REST Framework release that will support Python 2. Be sure to upgrade to Python 3 before upgrading to Django REST Framework 3.10. @@ -58,7 +67,7 @@ Be sure to upgrade to Python 3 before upgrading to Django REST Framework 3.10. ### 3.9.2 -**Date**: [3rd March 2019][3.9.1-milestone] +**Date**: [3rd March 2019][3.9.2-milestone] * Routers: invalidate `_urls` cache on `register()` [#6407][gh6407] * Deferred schema renderer creation to avoid requiring pyyaml. [#6416][gh6416] @@ -1181,7 +1190,8 @@ For older release notes, [please see the version 2.x documentation][old-release- [3.8.2-milestone]: https://github.com/encode/django-rest-framework/milestone/68?closed=1 [3.9.0-milestone]: https://github.com/encode/django-rest-framework/milestone/66?closed=1 [3.9.1-milestone]: https://github.com/encode/django-rest-framework/milestone/70?closed=1 -[3.9.1-milestone]: https://github.com/encode/django-rest-framework/milestone/71?closed=1 +[3.9.2-milestone]: https://github.com/encode/django-rest-framework/milestone/71?closed=1 +[3.10.0-milestone]: https://github.com/encode/django-rest-framework/milestone/69?closed=1 [gh2013]: https://github.com/encode/django-rest-framework/issues/2013 @@ -2125,3 +2135,6 @@ For older release notes, [please see the version 2.x documentation][old-release- [gh6613]: https://github.com/encode/django-rest-framework/issues/6613 + + +[gh6317]: https://github.com/encode/django-rest-framework/issues/6317 diff --git a/docs/index.md b/docs/index.md index 34440214a..e20f3f2fb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -93,7 +93,8 @@ each Python and Django series. The following packages are optional: * [coreapi][coreapi] (1.32.0+) - Schema generation support. -* [Markdown][markdown] (2.6.0+) - Markdown support for the browsable API. +* [Markdown][markdown] (3.0.0+) - Markdown support for the browsable API. +* [Pygments][pygments] (2.4.0+) - Add sytax highlighting to Markdown processing. * [django-filter][django-filter] (1.0.1+) - Filtering support. * [django-guardian][django-guardian] (1.1.1+) - Object level permissions support. @@ -237,6 +238,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. [eventbrite]: https://www.eventbrite.co.uk/about/ [coreapi]: https://pypi.org/project/coreapi/ [markdown]: https://pypi.org/project/Markdown/ +[pygments]: https://pypi.org/project/Pygments/ [django-filter]: https://pypi.org/project/django-filter/ [django-guardian]: https://github.com/django-guardian/django-guardian [index]: . diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt index bc20c739a..d38ede9ba 100644 --- a/requirements/requirements-optionals.txt +++ b/requirements/requirements-optionals.txt @@ -1,6 +1,7 @@ # Optional packages which may be used with REST framework. psycopg2-binary>=2.8.2, <2.9 -markdown==2.6.11 +markdown==3.1.1 +pygments==2.4.2 django-guardian==1.5.0 django-filter>=2.1.0, <2.2 coreapi==2.3.1 diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 863d64406..8d28b49e8 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -128,7 +128,7 @@ if 'patch' not in View.http_method_names: View.http_method_names = View.http_method_names + ['patch'] -# Markdown is optional (version 2.6+ required) +# Markdown is optional (version 3.0+ required) try: import markdown @@ -206,7 +206,7 @@ if markdown is not None and pygments is not None: return ret.split("\n") def md_filter_add_syntax_highlight(md): - md.preprocessors.add('highlight', CodeBlockPreprocessor(), "_begin") + md.preprocessors.register(CodeBlockPreprocessor(), 'highlight', 40) return True else: def md_filter_add_syntax_highlight(md): From 3135ae86c90d358c70bcac2b7e7c5fc0cb5fad7d Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 4 Jun 2019 09:00:11 +0100 Subject: [PATCH 032/119] Create FUNDING.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..d7c23d635 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: https://fund.django-rest-framework.org/topics/funding/ From 6a8575b042ec6bfd8d7224e2dfd8b73703b8a30d Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 4 Jun 2019 12:03:31 +0100 Subject: [PATCH 033/119] Sponsor update (#6727) * Sponsor updates * Sponsor Update --- README.md | 10 ++++------ docs/img/premium/cadre-readme.png | Bin 6998 -> 7021 bytes docs/img/premium/esg-readme.png | Bin 0 -> 13650 bytes docs/img/premium/kloudless-readme.png | Bin 14621 -> 14607 bytes docs/img/premium/lightson-readme.png | Bin 16520 -> 16507 bytes docs/img/premium/load-impact-readme.png | Bin 22333 -> 0 bytes docs/img/premium/machinalis-readme.png | Bin 12872 -> 0 bytes docs/img/premium/micropyramid-readme.png | Bin 23782 -> 0 bytes docs/img/premium/rollbar-readme.png | Bin 17389 -> 17370 bytes docs/img/premium/rover-readme.png | Bin 53118 -> 0 bytes docs/img/premium/sentry-readme.png | Bin 24584 -> 24556 bytes docs/img/premium/stream-readme.png | Bin 19341 -> 19311 bytes docs/index.md | 4 ++-- 13 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 docs/img/premium/esg-readme.png delete mode 100644 docs/img/premium/load-impact-readme.png delete mode 100644 docs/img/premium/machinalis-readme.png delete mode 100644 docs/img/premium/micropyramid-readme.png delete mode 100644 docs/img/premium/rover-readme.png diff --git a/README.md b/README.md index ecf59d7fa..6b1a84586 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ The initial aim is to provide a single full-time position on REST framework. [![][rollbar-img]][rollbar-url] [![][cadre-img]][cadre-url] [![][kloudless-img]][kloudless-url] -[![][release-history-img]][release-history-url] +[![][esg-img]][esg-url] [![][lightson-img]][lightson-url] -Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [Cadre][cadre-url], [Kloudless][kloudless-url], [Release History][release-history-url], and [Lights On Software][lightson-url]. +Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [Cadre][cadre-url], [Kloudless][kloudless-url], [ESG][esg-url], and [Lights On Software][lightson-url]. --- @@ -197,17 +197,15 @@ Please see the [security policy][security-policy]. [cadre-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cadre-readme.png [load-impact-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/load-impact-readme.png [kloudless-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/kloudless-readme.png -[release-history-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/release-history.png +[esg-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/esg-readme.png [lightson-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/lightson-readme.png -[rover-url]: http://jobs.rover.com/ [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/try-the-api/?utm_source=drf&utm_medium=banner&utm_campaign=drf [rollbar-url]: https://rollbar.com/ [cadre-url]: https://cadre.com/ -[load-impact-url]: https://loadimpact.com/?utm_campaign=Sponsorship%20links&utm_source=drf&utm_medium=drf [kloudless-url]: https://hubs.ly/H0f30Lf0 -[release-history-url]: https://releasehistory.io +[esg-url]: https://software.esg-usa.com/ [lightson-url]: https://lightsonsoftware.com [oauth1-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-rest-framework-oauth diff --git a/docs/img/premium/cadre-readme.png b/docs/img/premium/cadre-readme.png index b61539469b3db8be8e4c0bcb3100b0cb7d8a01e3..08290b72727f04bdd77573b17051f14994def17f 100644 GIT binary patch literal 7021 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 literal 6998 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 bz~5p-9NeCf$EwgjKXiI0qbyw|X%hTj%P2@x literal 0 HcmV?d00001 diff --git a/docs/img/premium/kloudless-readme.png b/docs/img/premium/kloudless-readme.png index 5d32b31b62d6905eed5d4f202c2a970a5e78ebc9..e2f05831daf0142ff71218f1ad1826cba51bc09e 100644 GIT binary patch delta 12876 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 delta 12884 zcmX|HWmw!y*Dh{Fi#r8MDekUIad&r$yB7&A#oe_?@nVZhDX_Q~cZwBv7X9}5e!TgS zIY}nTTxae%c29y^o*Qels1Oo2lvN6@fxO{qfQ#o-s^;1uNGr{>`JPvGKCxj+z1VL_Au z+ON_Y-n`*XmXngu^np9cL-8ljS{^K4O%^ZlmOJ>QWu)03@*}Esqg|W1puK~4PQ|6( zY@zkj?Rsx_?NR$JII3!9wb}c#DsG}N0v*k;BiF{&s-+9@-rhu48_Rij&qj)n`(6`t za!hDHH;YRRpM!=PF)RoN2VPPf6%~%Av4BqpE=3hd7)XSJw?n>6WDXN=q-MWNyX55< z@UHxKmB7`PboAoB`lpUN=G&Qg+VzR})0S1b#d5a@0g#B{YbmpHB@N*@=TT+5j}+FrD|EOTPj?D?zYj`0ExQFdpkj0DVm zwvcVJ?lwwWd<8Q;d;EC~s>rSzuQBHR3^20YttZHbN`1tyK8M=bv45CDSN>p&buq8@ zQGH9}<}pP&9o3hCnx&+ZDrCPkRqSyOe8q9Hy3pH z`y~0_)~iR95|S86Fyu)Je;Th)mT(M>zAHJ=if>8v58i@P^7S36N$_fM2CiDGN$nhp z_hxx!*$s|-^<+7k<@n-4a=iu}u_5>98FMh}904xS%%yd7Pwi}Y%U z7i4gPoR_?Pg~{a^u-w~0dDQV|kd6tZEAYzr-eJfFflcg_4XRm0cdebY7*iITDRXEe znqCbj)9OQZfn)-4xHOiHNE)I}>vLAC3#tiFts2fC0Vxw;uuK}emE zoRJX)azWL*X6=Ji_VYEWvrk>%$GjUPXY$*D}H4pgHdcICQw=B_8RrwJUWw;^iiHV^Jc;PYgt8) zt%G&!58qnC^X8@m+yUz=rY}A9lVT>XB`0A-<~B6X+w+p@J1X88EV0>RT!%B#iMicmCAno!wW_t_#mj64|hSb;F9vKtx?(lN9p49@<^PuNFZw_Ac zr90TpQCwP*LMSNw=<@xswz@7}Y=u7BCU z_2ScB!q?*kmAQE_y%-1XqxaqhuDoN%OYcl(^NB$iF?C$^I?=A@cu%P|*~>`Ec2N<0 z-8)oR>{_KCe|#c~8~1m%El!Jk+Dq@9cU)ghXDJ07*%05pW1%}6oE$SR?7&A@t9#oG zoi5TIX;JxDr;6#$EIRUvSyrU`>%v5tfWu-hJ%ct)aASekVA)2A#>_ufNC`SAw=1TP zMq9?gO021G5Eyf&zTNzxlcRS&xneF{sk98sS&gS!XFih)bKHMIo~;LF4zU>T##%b? zrUe1L{UQkXPat0`V_Fv623e@H-!`@VPOe2=RyoOtnv1@P!%3P$Uwhne0DC3Tu5cJ;WsX%ZTOO1CD@`VSXUct!Lcy*F#y9t z(&C?F4>)m=bXx}g{M&5CdBL4FK(Z|6N732pR3*%A*lebJNBb7k^=2!Q8e0sKd5`s> z-FI46s;g|aNWrPTJZX0f7Zx=LqzgGHgPef&6tl3NU-$_VWjv-S?=fQ;X~NsIqdyNW z=OuIHU}6XvY8aNhAX$j<9DET8#VtH^VNG-4e(a5Y>%8H&R_`J^{fA2)*l_wINoGXG ziC=()9Ui->+P!ez_jj-G!s9S-)b7MLXZIV}OX`k8)(;oC6Z_(*lJpz(oyoJ_YSv-) zH$IFpE+LBcYev7XdJ}KqTxGMiT7U0zo`WH;C5OwjHYfK2Hb$>M*1dTAs7tmt@EPkD z-RLXh?{B|x5!SwdHTK1mfTeL&b9*JwNhNfSi`z(mL3D%A+Ud<&EirQWQivH*tg`&V zwS?o>T4TgW51*;J)riWb8OGOQ zmHQ1HV9>kYu+`3(SU+}|nmyMYLk%wracXHTfiGpfw zqF|YrgI`zy^9j~qe`vi0geO=TrEYDnXD*wIVB>2IvVPl5|{x zbe_zu&vT)TPeD-7!RJH55+u;PHFfRGkmuPygPpofn71-1qwpj4%Hy5D`zquECo@*I zFO^bheyX=dCy(09kru0!S%ZYrW!auR3H`Ac(`hRO79hY?#?os0B7>!YeX!V^<~5Tw z^0jl&f-^cj4CZX`ePboHH=Z~CxlQ;|}HaShWRmM*J$wk>hFtEYM zIsT{8F86YLz`9GP?dR`WpPLIV{xrNQ*R*P05BcMf&$N4_!e)^YYJ zxhm_4tYBxGzJ4#X*8!P^i*RLGev)efY2h11Lb{76P5=>PZ z>|Bu(-V)HwW3+dX$Mz8PISfaI8P zV6u!kh3QDz%{mi0JX^nQ?y+PyCM0-k(AVc&Ucq;Q zX_^LR6M|6o4@gz0pHn%EWLTc(+KlGAU}o!YTuQ%ulK953iU;#;&g538Z6vXo43H3q z^(}xRmKg%n+em%SxsaUR7|U)~*iSDo>2flITnxbN20rG@S7-)1TYiti^Z^bJz+DRy zX3KxLyw;60nz!y(Wr3&iwZM;Hp(iy)-sX_+eXsc9A_v?TQ`lGyFGNSiEKx1w=iRf| z*=&OCYj8~IK1vK1fv_h=ca&4MqJ~yv?f7{SV zx!79xTNR`w+W(FhXs^k*@AZm<(s!euKi)onN*5U2&uuNXYi23y@_Q5K@24!^&Rehf-t8g-((3s0XW-#G&jMNVVL1A& zq)sDkd-lmziTwGi>NYU(4O3M4Z``&>xK~Yc=%>o!a+;pU6W8Cdf4_LTX)>5t)hySZu&uv#g-|iY!)y=A} ztetHQM%a%4+Rvg)M?3iL;-z^gc9xI)yQj)#VnkQ%SaaNoRsagH%e%fGNUEKq)&mvy z)!z2*7C+n-{|IHNeP`G^yVX{z!Jj;DFUDAID^p%`kmm6XU4c*UtMgb=529Dg5ijgC zB%5ovCe)f`i|fgX3nuMG9fsO};RX+}#|rT+*d(yAigh{tS;#X$_WC9oCRa;4jm~IM zMVkh>xq#YWCIC+v>pTs0UousG*9?duMw$d_*wRbaYd>;ZxsGw?FG9BksJP80!Sd)P zF}7{!cFgHmFh6&wn!;`Sj@V;mN2jt~JDxC!>h-;CjTtF+72H+P*@yhD<*dV*wwmR% zCe-|I5Vw?RZ~MbrM_NBpuN?l&IBYD_FHwTk8a>S>tU%XJp}hgoV{Kh^6<~-WgMVgT zv{Gs+-J?$Mt!5tnpYa-7X7f04iioq`1SZ^J!)`=l>Wuhihn%%CrO)V&yC!WXlV~5W z-zkB0y+TtO3#p#5CdrR^1(fw*>>kEDE#?E&a+Fj?7g;pt!izR59|SU%inwzg7WNnX z*Hsq5P(UoQIG0Vw1W~3U*5`3RQ}SGmY*p4>*bP93) z$!nX^XEl(Oa+oT%TvL87%4osrAz<=X7UCyD&wIP_bUUCMS$u!{cM98>P7L<@D~!ZU zY9Y)N&$IshZ-kp-@J+vZWGfw3?Eh@@V8=6~{Q*eN2%$G-F2XD4ELaEfMjyRk`IWUv z$G9}wkN`~60y3;ff@syk=6!EGN?8Yc&!Z)boJpkL4JLH!7%{j1_@LinUEoc%)bz4{ ztFpag!&0nvrPmb5JD}*#Da8ZXnhvzpYKGo{yXK$KSiV05W_=GTZK2|qTDUos-QbCx z2a?ymJ$+;_@6`J`d`x??)sRaC!~NxNBYC7?g71*Ch~Se8VkFUlx zbS8g&57Tm6?3zl$dW}f!waV?+6c$Q2V4nG4k?(-7d^6N(zxlNBw%p2_@@GsfR9U(` z+eP!)piZt)ThBFPO~B2>-|nwfxyJSaK*v$~7o~uNe0g^Ua0YLWItRj%(Gl!BiuO6J z?~prA&y&~l*psoKJ$o|FVgvFdq%zbxxH*z(@AmX+Vab54a2Ays?f5Kybq(_qyML8s zH`zCuYm)`dj%$7g5tZRB@yo+!G5%APLwrHXm^Jy(Et})i{FL?Az7h9}6BJAU``?Iy z&)3Lw^{$=J4G_^(^?=QN;!MmJN3MLU(zK0LoL(+84w^(Vcm*u74aXbYcdsFL@uI9V z{uzaH;O6=v-iavhVd8zKkAomD>n8K-FtRD79JOPN?!RoG+FA@57aoqA&EAn|z=_Nu z9C}p@%HHg$#%@fnvuw^9>-k>+Q6e>6N4|&0*!73}{?l$q;DOMc9kq7t>a4*xO!-fH z3I7$Z>Nm{fjlB+_Ckx~p7nOx7uZR|)1yhL7{I&`80BO6mG7j9>La&%_?w@Ax@0@ww zST2gQyF(odMA@~s40}4)vy*}jv^~;o1NXHp&3Jupz$&vNPjENQ11$i>JsDH3GMaNR zRpbJuHX=V2;-CqCg@iUabesx?Kd42|T1Mwf6k3gT9P|oFwC7BNznE-G!D~?5Q&L8X z+Fu2gR*oY#ldqz2WG8e^0lViXMOmui9$aXcLh>K7Vs?!=`RIM? zMxA|WAUO4ua(V;(3<$iaPB_oU%bSr0rydYbldt?9%t!;GV3B3N`f;f5PBT8XMoXkZm%Gx|6Nz4~0H)jH}pK<9CdPxFbCIT12u zWzL_E%-Zq%ZHH?fy;nY2=nV_OQ0gm&I9>-|1yLk7{(Cpx7jz>fTwpiMU>&_eKYW)^ z^Sxcy64ZOW;WQARKvD6}_tuH3!{VU3zIuQMkoJ&VPgE3cnW?#WkG3HU6uoCdt9Lz<&;VLL!hpBdk9!xSy)>VuZVt>gmQ zF$pFXeJ5~V$1*RM=86LMz4Rur|66!l>(vSakcba;33EmyoUtuivggo+uaOdv;_pIf z-$Kprs#r;lPWZ+;m_JrYo6Mk5{_FgRJg~$AieU)jSCLk7e|4HY>u8v5S`m<`q3{s6 z=EVod47xUJaQ-#2>tUc>>}ZokXaJXo3|^I=1lG}0HlFYjB~G3$ozqJ*x~|^jCc1GE zoax(kOEgP+h&5T>f--E`$<=K;?ZdkX3L@(1(|#yG^qz@@+Dms;(y2Nc}=jXOinLsSa!iecy_vL_3KnkaTd5cO5K?)1v<4FLEuH*UgL zvt641E&7<`j&9Fa{o|oAWX9YN#n6D~i~i#`!ne!V*j*955@}mWft_3Z+SqIFI?RZF zYF8E)wSYXeG>+M)9P0WN63@0V|3y+}t)KFY=`|+Uy`s5NH9%U}z9&Ncb5^PbEGkEo zjdv6}kN;b7M%{pr;py6jpNojsgBYgzC+RqQqaEy92u8x=R>dN_PkNDywBuIwzesiC@Dav7RI2_nBfvTN|@4_p5R+obCc3CsRr;`I>gPiWuxytVPG-nY_||r ztnmJ2N+WI{#j))_E9hNaN{4fBc_zfW6FCx3KvbtC$C(#7nJ_$^~`?1hq8vRAJ7qC3TU?P8|NHVO9Y-ou7!6 z=7V@|t?RtI>&KOIhp`ze_N<;+?^_#8y#Z5{+D!fuiu+CHx{epmrD{wUQL&x4lNv8v z_l5Jl)=P)O0rxV;W(jTd2$&}f5x`eZQpDxoLiA53b9UI_`OY#pITuk}uhm{*(nYUI zh#vo6FCjYhB1If=?-L9^Q6IKwlb@XxEA(7}^^v1)X0TLDQx^iVOQC_!oO%QtQBBUR zX`|1`i#)l7@R)tMK}!m}dhcPHS1_etdBTe#Sx(4=82kd#;_77Q&8hwHOtQzEYf7#y z5&LQAY3WvS=!5e!Cbm5iUz?n^bj}lK&RDt*o>j7U z*jgCfzx}S?5h%0dyrcr-I$;^xudKEa^>P@2G!($yS!hFeWe9;lF|yOG9!UtPkTmn9Rv32V?rg!T&{3gnGj| zus*3UG|H1?(ZR?+Y6IA)tzxSGGQs+cz+|8_RuKmCl++VQPKj9H4Y_CXM6%`a(O(Dy^AfQr5S>^X;4Y{H9Pm1We z#}k^j(Whd3M|fbkrfPsc9&U(^c^hxjRnJpiqD%3-6j1!+S)WwGyr_uEGAd(C}VhE^vgjj{+sKZ)=g$8jp+17?79R`toQ`)GSZF=|!j$pT0nydpyi{S3T$bP+ykwy`n&l{stG7VZ zaT9nVh`Cm$?Jo<~Fw!?fv|ve^M5V~T-~_mqUgq#NfqnA^`;y2g@HI^JO0c#NdhizOM9EM&J zq+I-o;mtPxPh$qUywgW1Ca#Tf^+ofSr=#y8BP4SBN4;}=sG->sNY@D0 zjMpNm6|eM@0Vl{eA^Zc|pdXBb@A92%xHdj34ga8FxjKZakIxl%6hA5?NOVWX4MD$+ z!EjUsT7FGY+gL|IvLE}NH!q$D^|7s%b@yy+*ldWROhz_2D#Lx0UCjkYUr-;=w-uwx zNbkN+Z$ZmIV^OfGN|c6kevoLGdNYlz3w(d)gTz`9 zU*T+_M;sAWRxbKQ@ivlUmM0DHEeH^2uBtVo?desO9V8oVn>s5rj?;8t1S^G7M)>&W z*!@oWMKJX-YJxh6Bj3tHdA7*9&|?DObmQ|>w5o+h+im}?1vRO)(O86!Xb*xO1UCj4 zhZsw1ErrzEtE2y+3T@?yzaEPrdORz#^dfq{IJ$TFeHf2^u^YQ@BQh82tM`h07%!XX z+^}hHG?JUmtQK-Y)bV%V9kY=T9$K5TF){lD3eMSJlMJBxl?=ipAhVj2ywU}C&Qjbnjn^zJ-g1v4LBtSOBDVuQoO7CU>r8%(bgya zrWy31S+p>^0rtoWH-O)r7kcK1Fsdzz+5iy=pbM zMI`KQ)Xttg8~st;D8SD+jCJmGRj(kp=WdkTG%?AhA;LGRUfr@i%r$arLHL1CfIgIdnoJ_vxR6!z_PSHaN|6AiZGI>JZ=6VjwW_rF^eU?c?iQz%tp|1 zpygH6=Ck7EXwJ#k4B>7-X7MMTt#{w;h6J00Ck|vUM3obRy6-WutJ`q>O&+|h>U)dj zfFcxXLA(6NfTAz96@qlUCMJ=&o2`LVC6X1o8svDRUn$+@tw{Q?E_I{PqO5s>PoT`= z{1kOWOmval@C19|rW-`8Y?0Cu!_@@u4YBKw4#q-{GC;=F6@{X z8<^b(^s{`I)0x}h7hR*9luMaajGJmhSp3POX#ksyZm||6+5XE6^o2$(1aV6QcY+es z*sMv8cP8$Hl8th9hNBXuS;L5BONZ`m%7dRQLzpURoj-s$7E222+VtUGUgG&FaEkM?@YYG zKJtvZic;vTMSZMM@S#DzAm8F}BQ+q!7C;cG-G9hz(3dz+%y_uiep;vRtS|KbS>K0S zggJlb8n&bZEGapgVfS)&C{Os4t7SKhN&!6uC* zk8J&$ZC90{R~<&!`j=;pehl4h#Twk_>ps%#IpP@%7>|yYgSItdAcgN`tTN2=CTyZ< zg>|YtWR-IwgFGk16OL93sEoExqkn3%ZiN$a;}N*6F9}2m)l7ZLE)jjS5Q4ZK4?2xz z+`dT|by#W@C|QpyF$r}%J{36eu@*;O_&zjRgEUyL8edM3yE{sAf{ZsQ=|9=$6y}Y0 zohQN$M2>b^w2534f;eWYQB=?cxyw&tgE*~C;c7cD^B{e=ELdqk|AsRMpaqFQ-Hjgpplnb%Q#q6E9%(dlQy;_PHoZ}@kRzC;@ zFibDJAR%nKcB=eGsd{J-@lfakDqAXG8qby5s`({UL6-&vs@7JhfVA|9e}GzKq*r@OAMcGUzosb+BH#{+Iu`HMDkN7UUX%cy7BiZW zsR!_T6wQfoL=Lsi`b(P<6Hf6wvsTk2^g?B4)Dy3gOd20^Sq?d-5T>kQe#=0C@>ebR zZIKM9pw-C}+aYE%py;S5ff{^z@Uy|riO7T(<8R(KrG9H8bSQ1#h*6(AiRFinV>N9B z)OPZ}mPYtW<+<^)h&U4T-1z_kA#tmf#hG*UiK8e!_^;^lp3JpOGpV502(REy(vILr z2_RV8S7{C>f$u~7*+fL(0#15bf#Jrp&rhG}gvbX8Kaf`k9#fBa!V-deYwi%u#Y6_C zg7xuxvK!e{YeX_P!HC2k@0H%}6QiO0%rp8sfZBmGGUsY45Z%7N*pvpa^e!JxQB0{# z!Q!we&+8ct;s_sdGEyX8PxiDZKZi?iZAyaW6^gj`&9jf8sQ?QO}HVV<=Qt;GJ9kM+Zt#I9%BOLw7xNe zg#pz^qaBXDpc^r2tUxOGY2192XVf;5x^b~~M;kj`Q3|}H3GFEYR-s>IG;kMu8PX{A z%cZ@X89y~c?%P9i>gjcd22(uq6p-GXBq+>=Nf_>+TATYvkhR9g1JJ*L^^^n=eY0gfID%yS@tI&)xLe z8xOgm(>}?Jb4m0{kQHH@W)vU#ANtP3&~C2^L$p4@4%mJpoPtE9AamBVl{I?icM|rA zXa;swhMe|0c=LY?C0%4!qcMs|SpD3I`xZ^cwM2Xwo`Ka;N)g=o-}I~YIC)jGK8b6& z1zg5u^J~hMY`z^vLn2A+ObjI%=%pn479~3u%?3D32q$nz-A}y#AirG7t*&%`HmCkb z`&%uOvf%Dn#87qcMQYP0c?Ic#Aiy_ZiGeL!?Vz=sB39cTabifdn^mbT zAvellt}wt~wzp^5MfhvptoDQnzqP+~iq^0Xo#$iNx97j=0{a)P(K98~@ppUu=mRva z)9;Xq{s`CYf9>*X$w|LKs zPAEt)i$;l~pFyq-tn~5Rgf*Np`X?OBnUI!rXaWv33c8JNKhZ@>1)YHaFPh;{7cq|? zqhLjpX&TY}WX93;QJB-D#>$TOj_y5O&SBk}D2$tUQ+*eqF5u+x23x|RLZGIZtJf;e z(`SJG2|w)Q3@@MgfK-Zj8;_Af<|tX|yM&5a)m4QVQ`j0Dw8*1|(N=>oWv8N}jqZMe z9$-$9aDv3_D2$I7OFJ&X|Flnrh_tRHO^k$k+tqnDb{Jmz%vnIKq97gdTD3QiaDDf+ zQ92#yxHV0;8)PD1TsjpVNW-27EglG??(i+yR=S_)!P83&jYhb^@yq$?qy9h{%HIK4 z@J%GzVL##D8p!u|zz0iUw&#@I3`D*TIOHC-y|8P};XsbCA%(3f*uILrr(2YiJMEvz zV#FDG?80t5V^(p%LV>U4Nhia+H&Td#R1A$*DfG-uCrYle!c)$z;?${ig{-QaJ7}k2 z_jV0Z;1iwJ66?S-P^ja@D&Z2R`2*_T>fb7;M{j)VgQNOg5v(a+KkITLd%SlBI!c=N zo8eXt{ks+|r5ehc(|cs@i9f1U#SuX{rpgo322bvA9q!CCXp*^}JB;yo` z^UuT|#fM{6h_NHSNGd{hgyHSRmMwPNqKqJZ)RZflv3%Q~aYh@D3UsXlR%5s7Bw{Ds z0lL4t$YD0FD`>z**zvBbFU=f)Y^ObsAK6c_+lq14t4wTIfOT=Yky%f$tvLFwnCfpR z9)*;{H?j^v;pseImpr0Nd>iimU*_x2zUN+{6G1NsZKYM9`>jNs?-noQZlm^;eGmze z!Z-cTTLV2P+$3)6f6P%Wya%!t5W{>qPB%~zxkMIx7s^sPF$IYPF&?-8DQOdslWne< zuu11)c+_9T4lJ`!8cH2DFZB0Gkz7=@SHu_Zg|P*3wxKf=#URs`JSf6IK?EAd>KtjIO20_l}e} z15I$YO}KY1>1j~ld1o2{DN^2C>uNmG@}>+ltC)M}VF3I|4t1VL>suz+z@WNj1dH9B z5)PsUTN5Vv#KKT@o-)@xE0c2fC**9*@kk$ur51xxhx#@F-TVXNv-tqr43_sylOBP? z2N)T`2mM+fv+7rNv`;^U0mu~D%%Kq{9+_%GENp(n6p*hr?#V#w-wiA`u6!9`m1F2~ zh92@{V@4t4)c8~YPF>OGM3LHnHV%k53SU)HlduY*_-rAB+DpVaGC#OG_@MLHN^dlF zWzjQoJlrQrq~ct1{_nv9I{59#(waSd`U&ETh!TLRy+FYadIw z;QmN)MT@JFtO<-ZZC~|&inNK&T|v0X5qUld))kJfdD4LHQat+{&}Cd>;LelEe~G<% zm-=H>^EMn}sYL5b|LHfSvWzFwobJ&N6mUvbqn6bqL)xzXUmiHSvBifrl;TDO`m@39 z8It;&Ip!0SAI&G0LE_(!ME<1u&Ke%2gRiV@Z39r>)gWj9RL*WY_wHc2nZ!}|^ifn8&A2^Tj z>Zi;|WXF)xa39GwlAQAl3E`y}viDPR7w`fo+rwLbzP{g%o=Tb$|AG0Jdp>lnP!C7N zo6TCb`p9Yr=i<1)3Gtw)> z#&YZ(RN(;gAYe$)%i%^TNKn#4o14j zE!ra>X=-bV{m0ww3k6H9#d8WNl##1NUrL&fSLsTTsnBI!78%N*Tbwg^`=VXdc4?WR zm^y}j;Wp(RqSZCuP{nIk^t36YO}a> zcf?rny<;_2)+cvsODSaGjKi>OH^U_1d=(U_rx`h22yd9xUKjdyc(xpq#21kw6oez_4Z7>9thEH&?d&)HG?cu?m!9Z^-;jDPVv>JmU|_;{Ns7s!CijIwO?N2v8HS2n5SCi}v*3IdYl_JZ)^)&t&waGc z=~P2odvMR}O8UHE@Z>~S-}C2HiB6H$+f&!he*4IeS<7GFMk&bQ0lIjB{>tkGLp|%3 z#jh=Ko+Oi!Vk9c%yxRY~{-#$#uP{WenUoat_h-vnBgR*1SV~HX#S~UA@x}-qf?hXo z8y7r5kCs!??fvlje`_f4pMm|?sK9?}V*kPn_fTf}|rEKDTY%^OI3+A3%McR?Ioa z*nP^1?lN{osowwgs-c_SX8;LghznjC#2(lhoa232A=qj?pZD3n+{pHL>MK_?(?Uoi zGEnks`-kINqQ3iA)mZn{)7$d}j|5gt{AIt@I8_0Qzy90J*d^)F-2)9Mnw*yuQUWWvv8oMh|f+-JOK?gstO1U>$lyT)VAlInQL z^I6xqpXvxD^7MXl-uD(KBHDCfH}1|4RS< zWGOk!u%r+(FqM}3@gQB;Dyu{BMiAI6^JKD@wM z?&nx_y177oSNej@R!v;~=dp-gOS|)+)UgIfEhOcFjT$&?x!$MwJn>kaYY9mPVPM$~ z{S)kcxlGx*=|1me?Xj5~CNaXLfMb|2X}iR@pKbxe!V>DkgL{DeAzY+{c)MMEqe2(P zeJ?B$m;N}&+{@J+j4|$S@M^gNB5$_E9c_563q2dGqEQ-4+l;G-c(>~qs@;80k3x{S z9a*f44e*NiDM(Y9g~Q;+NjETjAS=^s6WUsnfDNOvRmAu1Smk?WH;aiw=$!7<($ILh zo*s-7%NnPm&?07g(^O4q;vCp`*iI0fo55@H(}(cwNZ-((&s9`ftBl;yo_9u_Ad;DV zH%Tjb8tIJ;*ID+WjK_=9#Qb?wc?IuWI-fk`uL05rEiVdSCmw)_OTMJT)RGF%?Hr!Z zj`eh-1mcbnd)^o?94Kw*cJh5{3z?`{8oPf73AyeaLCghV9=FC*SdogNy6=1YKdJ8~ zAaLu0lWD0x$74Hi*t&$GMEu0MV=vV+nJXH$KrpY9+GI2D@7I&vGUF5vS^Cvt2M)s_ z0JTU|gDF_WO|i0zU@PO(h?--p^x5HuHpAnyUTuE?@Q*x~^~9QJrBVZ1v%0O#z&1YC zXBow)(4}jd!Y~@On~#@Eh2bZISDx$6qy+cINZB3-z8_T}g>|JFyyr|WAKD!>pS!bV zI4k6g6k*w3pMCgQvi?W%K&tzdljD;f3_!Djrk#%?vbg1H+i}LB&VicTK{B!=TrCW} z{eIe-*vghle+alnUVt2HK)0BCtlTE!*Q3aos@tI8S*m^_k4V08PJ^K?ib~J(x}_Bb zIvX==YfgBnB=-**@jZmtgo&%>dGmqaAcVx0h45`kszpx{ixkoQ#Y!wm)X#xUV8G#M zIgwceeUnNtwYOphBo(M^VVV`UtNN?h++%kF4N?p4>?dlICf zR_iMew1O6dJ|kE(1k+kVx0aTC!05C_TI!l#B*EVHtI-%@!2L&OG`&uSMqNm2^`g1Q z*QtmhWNpP16S7z_xo9XXH$!vLGYA{B^F2z>7V@2 zrIqX%r`G1{LEvshOA6I-vDdJic0}*e0s8J`l|;^TK4rh(utD!}*oKP>=xl!nRbK@5 z2J!lBsejKcZQTF$`%ZC#wC~;hmHv6-!YxmVCc#0cY_cJgDy%~C=aP5*lpC>$Z_144 zSdMO9K)_Qeu}jR?moO&oPI`o)srPG5P6?zhq4~{iP)8 zaz200>)CP1{aW5qjM;~J;Ck?j;eM@0q^n(T#v^Sx&}%|+7>>}9+k~m8d))?0^HrQG z{g&geE!KnTn`qJb%?sI`;wp^y+m|QzEpdNhB=^B!^=#iGwRfKz&gii+pgZzAZ2=46 ztl%sD%LniE9&0|=QV3~8pYn6Ecc|D0t_!ZiZxcZlPTDr-Zp?Y5z0oI6-gi5%0pmnHer!p*uUW_Qoz-ex@H(exjOx;ctD zb+g5?pxTg%YyH+M;O(}$8gJ8IJ!5g-@6V<{a-;2mV{A4BGS^Q!K3#1UNlL`64$$WJ zzCzVZm>nxm?a(V#PUJx?_<`KdChc-vbb%C~5-+j$?#IZ_BdiBRh6^)U|D^3@`2n?! zYniG0T*udtajsr$-)^e-YGSW-#XTO4pQGC3)o!Y3JHOv60<&to~P<= zvRCC+bN<(R`{>ocb2_~mSpM}}ks#$qWewFA>w#hCWzeap;?Q3*>w3TJjAb*YC1Ijr zDQMasdTkANAh}qq%y^D)9;Lc#E!siLI6)=;JGxegO~7pD6(7)D!`lM*ROIeIP1?Y< z$1^O1!`E}PS2|k~SV?4WocUG~&wP$#5G3|wa}?QaV%(b0xXKo1TbD0>PxsavHnNT% zgS-%p)T+w%3X@gKBeqk+p5y%7@BLl%q7ray!PfP_qrx>>X~+ll#}OM_Teekmpg}Dc zfR8dDw=lCa97FMFL?ltxfAfKdb!34kO3ZKKkhNcmq3-j@MaO1Lv&}|#KV4ope0_{s zonpjZaiC-9D@BDy$HWVXhA?RP6g1r`B1jl8gq{f~>%Cz}>Mtk9(#Olrc|zwl_FBFu z2*CuXn;S%mwvE%cbBJ)bW@kE?mqEx;c}uhQg0Igfy-VHK9IKd3A+ZK<*ho@)GsM?I`eX}XFo6DhkN z=L)rj1^|SUgn^f>2QAmL3wLLt-Mgmr@;inQaHPJE3^G!tQ#WRzHS0jxzZ<-fR%iXI zjN2aOAIV97E0wglTuYlz#<*}W-Lq3v8)eBKxfA(SHe*jwr@iqyr!(wVx5GEjU?A=- z6%$ihu!NwY4WUdfe=9oUn*HBLWKUH{1;w3A+m-F5z>o5!>tuslL1(`Z#FE7Y*24a( zTvbciYZAr$!JiFoeEPZTsV)v-Vj-kgq5Lmmu2N=Liob6MtQP;ALmSwo1wM;*o@J4N zkZqBMr9y*dyL>Xdri6dE@&`CC=+vfF9~7x3d4|Yn_Vc#-7QPr#c+@YO#-(%hnQCU( z5>%Zye5P`}8Q|k&J!gSP01G-Frc4$4girmX`zcdcC%e4^qU<`M8Q_ZsT)ZV+iBhD) zCVQ^!)d9iLFJSMxPKt%Inoottr*4joDfBw^wvo<^&u{eON4}#3xtlE|uI6bT!uq+M znc0=p1kn+vq;y+qo(id;wALHxVt=E*!q%o7EKiBGtRQv5=E zgS-!ptF>Hbk2{A;dCSHwG))-%M3z!N04JTv6kx}3>@3hFw6`&biq8$66 z5_g4&32~XJ3)K)P`y@q}`~JX*JS2B8BFf`qU%SeCd%7TGVVFS^uxt9|#Bdu_h~)K{ zI^4OLm=|qKLY{SIS;1>#h-S{rK7FI1zh|TQj|(x<#sl4;ZddyE6xFlHp}=`zYZVcXJ6S*n!d z-Ke;U-|62r*?pqMz1nmOBHEeNE6X@#ibo<*cFIbG?;LAt4DACbruEw|Cco?woV~ek zhZdOGyV7>jtB9#po^kPP>XT{Gcz4|-L{Q*uh#7a+!l(+?V~N-?-_%r=j}vj1l_@C+ z;o5rZ*17|lGmnGb9@~@o%(`?dyCGi1yq&Ra*JH9#k_ilv$o$1N?_SLjwX+v;zUJfD z*nL*c^%WxPm^6Cv@29Op4?p(|baQg?>dA)C#iaWTqh z04z9=(KO&ZQxW&}MmpRkrvQ~t1*hMQpAd|6iS-8@(%Cu@L26|;@Z4cdMp7p4l64}Fh1q*XiDQZK{Uh?&+_lEjL`uO#uvl|m(h9m5HTf(p#{bvq>6Rlw|M7Yu zva_LzR}GEZGZH8`C^eetz5U$`8F*V~ySn?fV~lsSrx!vMeMy#mp;Ru-wdAK@ z5f;KAqvnHWeh(Sks=kG%ES-Qrrz09PfbaR7halAvszQ9`3^g_DE+MqgMXxR}^sF3J z`N9A7v8V*9^LyYsVs&AK(BLJCv_B#uBxS zMFcVy9&`JXrf{DZJO*{m>(M~0I92#_dq|`?(pR18mtgZR48i@R#3ZIkq_aK;KyzC! zosCBEw++ME3mYh{Rm$OU_I(p&xEI+Nk{*vQe=X#T5YyF3ku04C*DSg!8+HXBQ5gv; zu9Fd7cBJm=`a*_X_OsC;INuiX=y{9?>MV0<4jX^NH{Ys5} z6ApI~-)T(yjwl9g_Y0d9tG|ylpe`NsfcNE0D0gb>9H+kpOY0udMXu_ z2wQA+4Xcw%yMFp*2>zjFXR(uoxSq==At=lMbdb!&WzOw}2Frpp($V`$h zCmT6m*i!t~@`7uo1L$J}ckd=a8_Ds=gmwL?s+Pw)e$8l8rfZ{@EP3eah)v9ut7Paz zcj0QhE{J`jns2T?mJSY!ns7*~bIba~XtJ#QHGWkwfQld1nejH+y_UL^g7TfOOOAsM zP+~$OR)8JW1k!Gwy^a;XrGIftH1i#w)*)AxITepNt5ZYz9$AL5;kO9C?Km5439ix&TZa==tFrErNyJ7IyhI z3OfBJTNfFTUTMR_(kSEzG0@oQPEvm;EV(z|qR%w7`x78QZMA;PDRoAw* z`EyPb`qNI6#I09<%W%%57QQps4u+mjiS2Q|yNm#Q&@5KFaf9sBYH7H;k8kD7!S`Or zpy*-GaIe^vd&nxvXXzAC_95XGOxmx5sK^}MUZXCBwu*o z(me@q5j^8MC>`93c@tG+bnl}j4+Nb1v0qaeXri~@6d!qzk5mded6 zG=1wTiV^xzwZK8i)kB*79Ie<`D$6N-dBPq_hM|yShX;rM!YN^*z))b|#9+!Re!-rB ze#TT$PH9Zo=1B$GHUyD^tdw6ag#?gpQlp2I%KwCi29Wkd1i+tjzQG6B(A@C^S_E(- zGE(M3+j?k;$1v`V7@BAP1(TbgY>syw52$eC*a?`dj>x1^jismKBDHFL>ONvYN6MLN zn4f0tl%j`MK^!iu_p|iZhw}Ld!4|QFNH=X-f({-(+J1!5a|&zsU-S_IWtDv#ZE<5> z<5REcDI6;km>Y2`fs}E!#Xc%Cl$&Xbv*AI-dX#d7y~u$vZ9h+#eRrBkK);cIb3T3g zTBvjO<$yJQhZ5k6V2gwH=nKWM?*;EY}059mzQ5dK{X5UHFHio>vXe z7LFv5xyTV+m=Am7Sc+zNQfIKcWh>xm!XKMxd@HHirX2EQ<%f(RQV`>@thDPbAA{4ul*JVQabUKDwUe39jby5NYm6(zCuu# ziXa05XBbG(MT0MbqFSVQ`QrxSkDT2k1%u{j|It?mtcCJq5#gttWlbNGY^L!o(yv7A zD=I}b?SKva@SMzqro&CS_NiZIS^G(1uhW}c50neMsf%7i=MjtK2R z_j=BvKBVaFMoTu?Qol!>b^OUxN%5y=!ax39WZO&RoF5(P0=+C20J$MmLautnSHBJK z0r;v9j=5&+SD(}(%@kI-kj_+((&oOQwyiP&O*d9Yv% zK8NC@M?>l}2VrD8^p?oSsLHbYm`IBRO%WFx4mB^dPBDijZDu%0nxgE@#|IYs zSuLanR~6q3K|L$@P1r&YTbeom#IXNJ4^EJVqze3|T-1}EzcIlAvz1FBU3sQE(c@>+6D=j7 zq>{S%>2w~wd*)cFk=u3A)<;k=y#DYa-*dVbJuyKiF^1uI55z|~97GiX0cH9DoHa*u zY|K?6gc!I-j##s4!5P>G z9#ml4&!=WUttVMV-){o-d$lv}p>VPN8&%n>*Upm`FK}#9SGr?8in9H^`DW4wNT>^^ zbb?biR-N{Ii?p<5E>{`$po9Dt$<|#Zh8d=pNa|M>?IDjQ$Gjh@h!8@PoKKtrMDNf` zC0raZ4@lmL(T-ghGL}9#-GP*!O>u={>nb1`& zmGfh34S)VcGbPGhTut8y8Gx^qhpFlJg4;07ih7FfWxF- z7;_QL%D)(0~F6U)%@Nk9-Phl9GEq8L3$~vAF#O(aY7c_zomU~S?R)N^UlH9*z-$p zaX@DL1$glt1t6dO8$T=`SZK)x!FY|X=%X$wF}|-1#@Z{hS}U1a0Uw6 zC0|8u-5u__*^yM7F=hZvbxci-fZJ%u)MPG*hX%WrS5A63|EQjyH}zUeoENZfLUrvQ z^#i;IqneWl0llqb^iKO?bgT# zQHD>l`C6dUpf@ih!)DJ-l6+2H*^ZWV19ToH&Jl`9o_LB*z^JCESFptm-Apc{ZzDxIAtW7s zm@D>g%9%^i5<+MlWJHa#+kM7igTXa>Xt>t3_zN%bbpBw%JY_A-IsOEEGj#~?OhFwz z`mh=c+^on6wwq>9(m#sq-m+~`o^rW$M`q9xf4vkST(Kg?#uT!OB*1Zi?zf!Pl%0;e z9Fj=Md>>BGK9Ho{Us!68mY@m@^h@$Zv1Jzsh6dOqh%WfL4(TO8z=eXNUB%GX3N)Iv zI(-8J0y?LkR%IZDnj@=A1QWaTr@=TWDmFHuY?+_l45^7mvK=@zFU&UaBfW^9#6c*c znH{K;QaNr!F2c4J&}5@I5y@y6^woauh;=V9(d@(vuOt}lQzpysSU%u0rK0#kO4Hu~ z?Vm!PSzlvDLzWl?!(A~!!;!4v@Q;v{z;B-NLsGt45uYAs)b~ZPtkP1#;orTdv4TWa znH@7YkH>g3^`>_nCsX5j99d;_F!SZ^BAzk9swYf6Oou=)E0%1ru`51S;2$aIvudd% zNWx%%6^SLu`8Cw>1+b(jDA0Ry;?Z)PY5vgiX9Z{Umn}8gDlt2HjIYTB`bds)w~w?> zWg;K)Mz10GTC}M>rXj(k;o8?noyV_R!bo(|WQj60zG(_ro>8R@r+jm|iI2xn>R+*=9pT6}o_^zO-Dkev=Ej_#P~&Ds9CH6lNRV8do= ze*}VfhPo$`!||en>wU>UHg7(C^ulV4Jm}2h>ZLN-Rn}Nz3tggG4{I5VNu>>_kCnNy z={{n9de-X;y(CUWnT?eC-FL*TH6!Dbcr}(pnBFlNoW_bR!{usV<|!YFx;qvp>~SJ) zA?1t!zoi}P30%lNdnkZv-G#?bG6)Kjjnrny)ADAF%0b`RE6$a3UJF*A3j4k@>uc#Q z$L8Hh)HC|7uLsV89JGIxV7H;Zf${MNSo5wvrQCI81YJsyNr;?n+v?kp?1ry0Gabd# zMnGP5lg(RmiKrre_v{=$b3%7+;P2tn{Llt$R@N73Jo~G7-^2xtI8Rw67yPPUeDnHK z8tUf!5h(N#hLH60`>1oTsn>BXcIQ-~Uc_G=IhmL;yrgl{^xvfCFj_n(qLGFeKXUoZ zn>`l}Tj2T5GAcOe>aiGz%jz_kxUeOSYB&OcM97m;$}6RLn(V=biULJpMR)P)D&KH{ zWo72~S2FC?%nQpimi4RWbRM((Zr>kGlZyQIJQ&Q!-ow?Ak8k4ZOXy~T&{zq!t<_gzSKNg=Xrulzcai$ zc!9XQnrPiObxMq4zWH;NSxqGi11)_4K7w232A>($Ui&7t>o}1HX@lbfSp?0|)NcKR zP)G>t^5}ee%hn%+xh6{dPWuBSwrd zy48$N21*Gi?jEbjUP~1dJ_*50k~^2Sr_qLA^H~+bev{Uk%I_T6ia?~)M1v0ftF$TF zMrx11$Q9IxJZgTiESRX@x)zYTe%~oQe;?0^H+j(r!BINE&^xC5kWv^(U>^&l*V?Bn z#JD*&cXpK$RneW`W&6t9-0e95jS!vFX66dX!a!krD}RI#*Fli-jzbW3h5g$P2qGui zvr248`$?K#8b$K2xAyP2y=#^nCn%b``n7ITWj|92j{1Ag-S@w{8v%Y27ppo>R>qk@ zMjdJ0Cn0S?Yo0QdCdVd5G-~Rc{eH{?8V+BiM2t_U_aF2UN7?QTRky(|-&$$$b`<>0 zo8a5y^NrNLZV+SlwSm3O&cb)sz8h71e;iK3@+f#4Nrq7b69`| z)z^v&J-k8FjGjX_c|b>T2ExlSHkNN-L8yCHy~f#l=ypZ#ShCFN`X+&qP|K&cfRS)w zDE`8pMJf^rldx5_!K87heqCxfrni;TM$Qh78O^|Tk(6UTn&LZNe>iI#O>xwfxz^Ag z1{Hg_Oouee$d{7<oWZGm9t+8T= z!y8z0zqNagg+)@$w<)dV3PoBB)mIBY9zwG`(5L0^PL_dpY}wCo?SuO{!k`%Y8a$R; zd}*Ddl&!+WKxJ^VPjQ9Yvv1paD2JapwXLfO%=+E^n!-S zoH+oZXP!T-AD>~v!7*1#3W{EfSLb;I{c#i}`T92HBZ;)rG5I)Qo@279yG#Af2B`0M z5)1nNsjq({aX!Yz6vpH%_sZHOM7mU z-cn9D<1E}GxRaDbalWNt+br#Dk=?q-9>tCAb!{Hc+b*>(SHKr_C_1FAB0b)XF zT4|CP46Y^QTUdeyjz zP@11BshCQ%6GQd})o^XR8Sw}7Flp+CD&o|kvqIFq zp$x3LuD-#Wwp(#ju$t|um9-O7MWC2akzrNrayW8L+MzvJtIEfQUTiJUNs6Q?Ww+d* zda+x11A(P9QUrU1Z+4;gCkL$Ph2qOPith+z#6z$pg;g_yli3Byo}zqTQ&!7Lv=%E^ zcUj`yX{kA63$PyVMkdF^oPnO29dRitER-h-tQafJuneMvo>Q(NCVo6g1x9ebVM14J zlJ{O3gf&eltGDJcS6_J7X7N1Bd5-4Ep3?;?G<>yFtQvv5!9jCqDR!ir6d*OuG`q9_ z0S>Hbh5y!yX{@CCZF-zS10PMH{Wb}c(~th^N=MySjwawrNH-(mhq_sIVaSP8uu|6gptI}))XOL|8?ojCL> P9}m=&wUkN~%!B?5=Xw8kgV|+}%A17DDhwf`<<7?k-6*e znjbT3J?oo!Xa4j$U0t=;uDa*kTW9avcVC``2Rvhpc&n+5hfRfzgoK2rs-mESg!GIB z5#M5>BR(-3#WAWFL-0@pCHa!#@W_%{@#0Z*t(=pz@kI#5#03Pz1wX~TLD84GN7rX0hUVf~1@u65V=O-PhH?u3xY>0OfREG>1ko(GniM#9Zsxfz^8Cj&!;YMT`DX0wG}fwes})z=WoIvG{{T^eJ>-hSx|SQzF?NL+E--a1oSa7 z$o(`<`tjd575LA<{%cg=KXqgOk^%6ad$j+G0q~z3+<(CU_;2LQzkvPMsK9?KYya;t z0RDB|jHtOD6q1^~MH}s!qB5(X?W80y=;u*L%0*xC4g|n)a2% z=X`q<)DesoAe?l=4IPmK?M{@ejw;jRxo){>*;0!@3_O?bmMHX$ojWVHzej~Ck{h!0 zU8U%oM(nyxn|uzzp!Xf&u&w%9Wzii+97epCbUT#(G$Dc?$lSe9DiB?E3X%Ma!j;=lw}HjM|YOvz{+sDF)lF{5ROZ zBIaes^~pMlRgQp#Qo5kko8-gA&&xT~rI)TpKzD(55bSS45R4dx9?}`gZJADhJv@|2 zZJIfb`MFt|T~eylKNr6?4 z4Xn$h`b68Nn)57K=7l|FF>ROquJGpV>vQgqe2;vVao{4|#N5I>2r!cL9L`#y$|6$K8%BAW6N<6{XGLy%uT>q>wJIQh9gS6h?r!4iv$f8jg-Nhl&ga7y>OB3)9T}UoCjSb5;}8cq8VDawJc? zXzl*iEUwAJ^rG+xxMB=mMAHhskR@dvltpIL@X03v&pfHsEMs1&`!L_H78>JlL{}<8pec62{G$Sb3ISUeTWqR{eY>A$0SVMPjmeqvt=Ix zz7P^qjs1-vS#;s~y^(k*zoq0r+@pfYA#hrZmiX1egNcMq9TSmPPBY*v`;IX+KH8CH zNya<@i!KFc%0kgOoBYbB$GfonSaD8c|C>$F)Gxy&dmdO<3^fG zY)B$Z9{&|fytSxhx_d-UDh*LXvrlh@n9Yb zTB^$o5hmZK-ksHYB~3p#(Lu@pX;o#lKpw|OzhD=GI#8ZfXjqn6j=jRn9I7Q?Of?B( zF0lQfB1QOAvg@Mc3J2@A&enQF{yAs1`}qeGv5IeK`1Hgxf)J&PJ8cH|O`ME!SNHU& zC53$nyShIcCZI5OdM(^}wpNR6ft~a|%%kZ0pwo9;Lob&8Y0enS1&_9RT?*(p;w~k! zeNTId$`1%xGMS9-5V=E61iWk7RPQze{araOo$LzL)u*#(5fY28DhBGLYHIfBT~=;F z(y!qXAmjBbgQ%tejhe@&pB5dT^=N3x>5cBIpe*@NRhb(tL$DF}=(!XN&3Rn{(JRA= zqQn%vY=`kI98+%7v%u%PD)j;n7UwP3Yf-TI<;Tmq@E0apN;XCB0rlldXYTEe^Pd!n zq9#4?za(0?KKoT+rDSlPd7q`TTpR2tbfb4uLV~{`7a_2%^)RLJtaQ)QB8qN$NID(Z z@&xudT4d1DX=&cIJLu!}@~2VIYS6lPmcYgkbTFK$fbGjc%hl5A^?F>~y9c(>xyJLQ zt5(r$pTpk)94mpGKsHd~H@j{A~IBe*_1p2W@0@<{rZ!E=j3X+&C zTI;FmF6ZpR@I)6zYT*mO)5B_}T{+fxvDT5ky$XJi>(qoq>obYftt>}6ax>o(u^+?i z3T_vZ`eAJk2acmZY3u6C>X*c;=`SM0jxg*mzY+Mo$VSZY_OsXIqU(KCBuZ#{W9j%- zSR$0ryqo^_fD(31*|22>2y9?v^C2v~&TWQyoZJ39^RQRF|2ip(fM7b4XJ_9UJU3C^ zwDVaMbFdIApOl>E=TA44fy4}BmLvU z5fDbADaQD`S=P6>HH_Zh6KrVsK4e5HYe?qlX4q*2c#WZ`c9MYwZD{}A!7g*tJ7A!1 z;{M)}-aI~h^Q!I1?|OFFpS-NK6VyALqG!bMk#yK@h0fk14<(hFOoUdHJBgox$#Xle zVi>P}hWN&nG6pgRjVv>@|Cl-Xmq;FhwG_@_81J=Qb>sU7nhuBT90YgYCDpsC9e#aE z`A!rI7=hfbuO?otcIh|4@spYepA#vnaC}S`9GMlJ`4}{jA_@rh(L4VoT5a4bcTGD( ztWI<7PZ`#^&xt0oKDXY)_n}F-O`W7DFlPI%j8gAXR?|JI_BmNG}CrU>yq@is%b0kW@ z3H`&ias~l={;A#vd$Qxs#0_PnK^*0GS|d7AcjTz(JXZ5q!bt_aEJb(xIS$T+!--jAl zsktJzIsas-2%`7bosT-(JtqmV531S%Tq^g&oz_SeCp#ijHG-4n@VmRY0s8w4MAiH% zvP@P#L`?a3o(|on3%z!}@ISjnqMyYd>USM6(c&B=H^z~luPQ{QD*1Eq!&(WTSuIf4H z=*^pAcV!f#WoV@0;EsSQ-39{DvsOAkBhl%Wex3El zznVB%rlN~(<8nqAzzrzr_HOwpSF^5c8G;6?t>6s|bz2Rg2sQDTWv#q;q2?sDLN70> zYw`GWQ2~U=+^-S@Otvxwl0$c2i1c2zWMTOKEMbrVT4zumA_a!Y_=fTGOvcDjxyvk1 zaSV(4XGM}UgI(G_2~{7>T_#)cl*PpWuI_|`SdJ$sY1Gew!y1l_mr6!f5ttkSl3Zps zgt;RndH%OM{%KBlA77S*e^hTd?ccad6Cs$IZw}MOju-^)IUmlS#vhpJ;y z&h&c?Upfg|bmB`3&3niQGvN(J6iLixx$HPtn%z`96^~R zx?{_;Y|DZLLQ<8{#8>=Uss1%0cXIEp+X@PGnQis_cYM#AWRTVKXDgcz8~2phIV%g| z`V~#pGY-G;ROt)weLGoc{WQ)M&cP$89+l3f`z|yKOiHW0#?p>#Fm|}E&`V}%s4zFu zs|9Efe9qD>$SB^zv4iaEz1lxuhD8oVJUe5)JXUi)_cr)Zomj-|8k@lW;~^LBk&5y) zO{tbhg*GI}MfFGy2nhVu;Iu&1bX8-te zMO73NPs>pxtWKOfBrK^B% zA#htZr%nqYc&K}ZJZpGR1+)6Y%%>_)LXAa@aI+or!4jT*p&cW0kCGrLN_~#c?GFY= z&QXTeFmz{@U&x8zK$qfj=)i6$ai#{{=)TzUtD1Jg{W0}zx6I=z9Rc#UUu}=K0qZq?2zu0&A8`woNaMySBPESD-%K?B-8Nz7L3-64*8 zfFv_}Y*KW!zOl0+6q4OA`4G9jB-(bPaYYs2Nj=>QydVh|;d7#b33St}=d#J_cy>P_ z`oNldmFZ?Uj}PIkzg$JoLs=qaoy zl*3a*Bw;fqct}uiCBEL$XhF`X=9kuzh`Yze#0*PDEbqhGO~&fF-WHEWlbXx6Y!Xol zA!A`CaiZ9Iv`_~}arW9L;%ovwG^?cXV9A;=?PP2`4qFg7Rw~c(_;Zr%gj_E+LV(rY7dT6PSJnWH)lkcZ0Vm}RU2CSLt9es4hhc6H?n{s2Nup<`QR+ z1z;s{YL=x*YpHXXkLT!W>35%$j=keGj zRjn~A=Vb^=YJSc{MvG|>Psf0by!CAPM1Y`UO%F&ntuFlX#Cs@mnR_Am`?gJdzbRDs zD2JGC`;;SL@HDpKVN#Q;Vda&NZDEN+vh~+OH@Q#mL0jiuTNhcsZpT*-n~q|Guz@98YlZ`lrud7+x9Bjr^Pa*&v2yH_W{d z+;BWBjr^QxDRwSw#tp*|3wPW&tF>aZEcs$1tWtCJ`WcUaB3MbVC#WVFpwZ&$4RSe- zTP2gg@W9QckCNo?_2$p{>c51t7+WuDRlrj{m#>@sLg*l+wwH{iF+n*RFN&6%@cuNd z4HwZxTSI%k$PnF)nF}G^jPkX|`vK}#l*SIfH&bKhS$Q$?hBNWD5bdKv1?=(KTpl*G zH7GSo!#Z2p7ew2F-75{894nFhaq`_uo?R8?8;^7 zA^GE%nDfLNV)n6+eNPJv6czT4DB_v#&n|lv|}y(1A;Oz|`_sn0u|}9P)*5n*(uaZb#`~L=4zqJR{PPu;D02D9BQZh--B{QyLKQ0Rw~F zCk&p>fAr&GOx&I=qfhO0La}aEc|>8>&N>?iDKOTe@gbEuWftq@{sf7`nD* z>V~kq$bmOK-eO)Cb%=L9pU-4_f(Jy8e9dnKg&wnc zZz!tUv>lOw>@^M0)j7Kg+LlC4FPTkHzJPLMB~TR(fsQJHI?43i99jJ?6_yb4ro->W zEJ5UHBfGMNhrnsQD#I)(z*Ca?p7+*wByZ-d7tjOxUbv9rqMs}B^Uf7#6)uIW!GB8$9T*5PgF zdaOh_h}xQZ>PtvJ=*Y=#W|UdutlxDM|Ci$oEXy$V<&*)lmY{tnP?bg?4AF&V6}xYR zCe&r+woI3UtWBD(I_;Ic4)7WeA5iD|2{M=3c7K+N?60~ViFVk`C><7Eb#JNwfhRGd zOWQ@%7;{ZaR3am!Z)7s^TAYM61+R(|v|;E2+lHKTq6fi)KOEsh6A_*rSnR@{MZctR zq6ZxLC9WDk%tg9D+1Bf6V^&WGNA;YH z8Q^)br~5M#F-BkNhpe^QZaN>~eNW;me`Ll|FlsYGgKoGIOrH^8(KvIMirXLf8EV_> zFz5W$HX2W&rpbxU`B4#*gBK;Q=%r|Tf;4$?2E1lBcmmL+CjP{6WT@QYpzm2LaOKjh zti9TRKh$zF^tqKpgJ4c0tl5i|_{zG)xN=c=8T;g)_xzUC=~A5T0w>LPLWYhl7vD=< z^=Ovx2cUB#MLz1HlAz4N6Ar}?>27LB7M8Uqg;$k)jc}Clx)^M05)fSZJ;)#nJ@&2KBTdmL$WFC!GV{Gch%PVMI%zefgH z?E7uWMUP(Y+YgR)rY8CpdS>%_2%#f~!$^kM1K(DcyAoV%B1vjh(x1F>)v8oH{q&Qm zgDb`JPNPOViFb1=xsMZ5jMk-x5p;J@Pd~B-1$N_dNQ>B&?5XVkY1Mr-@G!t9heG%Q z>kJjN9y5%(K{wmVGE}yz2hDGZ)?|e;`9X5*Gv~i40`Cq#w^6HW;4g}u=jl7SLhVbt zIx%fMVv3a1g~_wzE`*?&V0v4oEc-e`Sy$Em^*9;2^5)Y%f2);m8w|DJP!PVvx<5I< zF&5|nLx~NL;Q4#iml&=5)XPL0F1UB0oE%ou9~C}Zh>U@?MRdzOC!_S_5T&7y!biLE zS7VOunOas+rr!D9Qho~gH8s`ry(Zr+!mr7c`ONsb?b5oiF3evW%V9s z)+sCD%(0jViBIc08PVD)y1u^;pB}IgEU(nx9E=*@oW!-~riiWhd_alJp>e0k1}#dG zf$#KnK8l;xkMSS^Y04I=-lio@Nbw+23L=Pbx>i{B&l*h?U zZfq~{Tis06IS}2>Jc4tD^V3v)D_ILvkPQtwq?*JQGOj7XV??W&h7mKqUpD&2{nkjL z&2~IVQ=Fr(Y1Z%8F`3~vyHv1Ng`x5%$=mJxnWbB-E-_p?y)QRU=)UX!bPF)f-N$*m zGI+Pf65Mauwm64Mr1}czPeU5BP6>X`q=#kjn%VI&CYVZu)`oINc;KSFB~RApvp$S2 z)p*kuJkd3Bl+rd2Qc@Z1i`HlK@p`Rnb=@V}I$FuP?XPNKyyVi)vk0w;UfoeJP!t+0 zH>2`+0f>J(pYN#wiG1}xIa{&4{1a*$>Ck8x;6e8p22GN?(JlhG^Xn2m!D5j-#yhti zSdPehdwzoWUb-KtnU4(o(8wF;lgLn7Yw|lNKUa{Ko7|AJ(E2!aZsUmgU)EPr#)(%C z^9+Tj7Xx!C`xI6O!qHoFoM7eMlw)4OV~*CDY2$A#vReBaF-ooSHZCf*Ye(4UMuN`D zCjrAT4s94p1Y}8O)SV;-6|~_xJ{vkcQB5QGKysbm+a=d%BbdwIvN7_=)IplZ;bkNi zlv9#4opzGHt|4r5wV3)##DcT?9sSd9=*%aVb8{5vlO_w-k>(f#zJwS+)FAmBQ8f9@ z$G_~-MC#1Dx|-1mig=06a&DYjIdE}Dyj3YvuYDOYz=bd4RK+$v!p^99;Xr_ z>4=$l#t(&87X)!_wnt|lD&Qwu@;w{$kyGjQO^4~a50Acy87jFwTWf%x6i0f>T<>+zg}}gHB2n}5n-w3P}4G>1mojv;Y`phC^9Mp z;d?X`kdrERVn(t1>rir!1qV+%PkoRbI~lF4#>5&-4X8BvM(|Gw9NN#|IN!C0XOZtm zQ#&+(rtkP~EGI3R4(f2?8`*Ii4w~`%)q()&9j`4PXCJaD61<26Y`kzXL9MrZ|9A&EV=&@()^y z;0f>@s?q?M%Oq!Gxy;8_f^Pd<__;><&T|5HZpxn}A9VPAYsRh+ntokgY9M*XCxHBe zHKAUIWLZ|7dA}BsK*dSVm)zF0*JMoJwM>DB3vDxvZqV&eA5H1kMdDkV#ylNsz3+x= z*0NW@2jaH6;S?2ylm|gd>534W2=-i0b72Efwc;eZhrA_CovhD%Kbgn*#8szGdAL4Y z`yCUUwIQ7DQ98y{+QH)m<;h`P7C^jl+VFQ8eonUdhH9KxJf*IrvK%B z;+h(k{yF*jrnRBilMS;c;M6@SK7H5Jee(V27s}}rm$mdgkorw|!&>BzXkXw+fzn2x zSeRtLa)8d8RVt%e+aR^J?KGuAftu&Tp#9D-Zo9P=_sdypWreOE{V%fgKOUV+%Cu6* zo00EzJ2z{oaPJjH5JncqcWj@PP;*s5w&VXW4W)X@FD|n+KQlG_^8zHKe_-$ zu(jOMidOMCr_9#2NypoMk$C{Ju4Lir*!(ALn46wHoHVBGL&w)hww@x0vHrC(PCpZK zZW;a4b@yo3u|vu?L-DfQP4Ly$?U#;~#c&^79VqssCtHidTe#bm)pIts<7p!bgS7dd8(%xbmoLTqL9#lP%bmd+c$~OS*<=&tBlKcPz053qiMiiF zp4~M|LYzPr%-j<9QgVErhhjsnt)puf%Wr`ug!#y4$ZEIftE90@FKb4*K!drP#IV~9 z2I9d+Kg%Xc0rsCsp8ptX==bTeID}o#N5+R+n@%LKrB3l~k5Il_AJSUTlcP%RuTeWe zf~q;}+z%v4(Kxj~+gU+770u_6{y@hFvHxIBk!+LDS2ZNE=N+Pz}XXK*WGU=bwj*A%ocHuLMM`Z>T4QW}hWqy?(LOlN=5EOw~utvm={# zw*bHw9*lQ{*OvDQ`ivMYy@~h~yHDmH)RVwXSNa^%2j~Kx9q;hC4F%M&uUJ|t8QFwM zwE9``!g-|pz;D}2rP*pNZ_8RO<}LqTSq@8GMHfK`!S}-x#4&v&MFn;5*>p=!4tueK zuAMS|uLR;Oz@PD)AgpLdyFct)6>ee|$AF3qZADs}&v(Xe?^mwV4`ts4kK%qHM*m&F z&*|*;%ldEVTgobir9S5-g$5J$1k1mAW5k|d?7m_8ycuK5-Q>c z*WuuG`+F<#zVFI9{F>|NNRO(2@?zc>LBSpE?Gtq-uW`cdu!d_LBzd&dUI% zt_#aX+;@_q*LNS+PY0gcSnMBLiw3Y@AdAR2rhgkB%cLkJ`d0knJpOkX;7k=&Ua*e+tP~>_<8*0~08Y5BZpB6+y&E z*6asO^PsZQl%zY9loA5rYxjUvrpDG-NlsF>Cfk`Pe*CX36VKI<3~9Fg1Vp1(Ug;P` z!p-_X^o5e)Q+P=VZJ>y?`v5aZ>a=sD{l!-SDRl?69Wy4G;5uuoX_9@>dmmJ)ZaCE? z|1ixTr0$=PdOc;;Zc`DWSIOQ@ga#%5^uWy1=?%U)zTa7#B>9@yG6AfH8q5Ui6`Rx{ zSyMZMd}V74!{R-ax2t6+(6US;xQ*9G9|^Sed+HBFkWw1=%xXjUr}P6}@#&vr2 zcv0iLhK2UZ1|^+*eOa+J;%X8#KmxSpaTNKW_MJoBHNMpW!V7flA?ksk0JYqrBv7dV zya7q{H)A+Div#u6!3xDUoqYa8We~EAwC}{#@92F_$xEQmHDSC>`@}QoZxw!^C>QS6 zPMb=d+`Z5#;#>|g!FWp7`za~X49=l4w_$^b4axiN2pdSj^medHgKe!<_~=0A8hpIt zuZ&3}e~npf0*YcmoPM(;J!D}T!x#fmW*3#YM8srai?i2Z!x;XYHfpx=U}6R(NhKAC z+JIG+ygMi4e!;$e@%uWDrvXFvFTr#$RZL?ti3OAC8g~WxVy5h@s?c8Bc;jY^3>VPR z!~@xE-yu0UwJLyv98yL7LjJTj?b;DL+S2;<`7%6wfu_7(;l_s+cBKPL z#%ClLV#2f{%4@nE0>od!pT!S-If>Pb9;KvsaG)L#6AxtOed}lV9(LU`9EX(90mPV@wwsb)Wnf%<_rLyB%k=&h$-W(%?xETw zVm=<;NFn%xBEl%s&qq5>P`g@A7Be|gcKRm2Shr5+o6Z*EJGT?&d18D4E05FSYcz7? z--Ii(hrMTuYI3`c;%PXXip0or9|IJ>!j%rt$e)uLV`2tyqk0!X&UNJbenxj7x>OZUm%pb=ZLUR*2D{O#tIXIoC`?%D?*>M zLg;gxDDImasKH+lJF$C16a)St7=Ta$aVJuW5oi1>VBkN7{O^E){|4uOhy3q=f&Vv; z`F~3p_&*)M|1I*r0|x#-LLOuqtr!DD#A?9?%|38pa M6*U#gBtx8UwDxH|-QcT2F~?oM!b``P=Pd++|wI^V1{ zGyPWA(@#~kylvrM6r_;g@!TTq zKOW%hftpSL00PEeUob#=CN2N~No}F3;jAGq$7f_`!(?D=XK2FYZe#zU4FCwZ^L-?3 zOq>l!-EFLGo%q}Z$^X{i`$+#KW+o^7TgBN*kX%Fl3#pi$qX{V|69*Fuxez=lDXD;? zu_>Rjxa7a#A5Vhh=FZOce9X*lZf;C&>`Zo!X3VU-yu8dTY|LzIj2{||P9C<-2JVcu zP89ztECXBILQ20 z4l^qg3-f=2nYdg0KVX05{6AsFM*r)Ty^Evu-#!@|F`HPM*qGQlJAL3-|0~@`Z2uSd z|1;9v!2Vxke+Thjz6tzgIiIqLlbyB8Um;MlwQv?<6ZqSq{}lgUME->mv$L^xG;wnJ zfC;hu8}d)tf9h-eAB_YVGgVFKS@M{134J^MBPA_-G4!@^;1+rXJ!3&L%=^ zEUY|?EWC`Ytg5VRd@Q_t>>qaght5AN_$x=u(Zs;n&QaCQ&RXbiH*EfTBxPsfX5#o4 z_MaO61`9C%)sz0wv;Ng>|CWCATOs%lIoj>`0oCTg?5tmnjBN|9mYiYiZ1UaV_os`+C}j!2M{Nn>*$Z z8T_Y;%A|W_db(LL{*b4ro-fq3ThK=Rlw=`nKVjJOV$pS&utRv#oP^SyxI|&W;4flR zS%i99qaPa6;JOGl+~A7OjYAfDTd!J+NBNu2|18(P9hF)l$B!wgY{lS5bK}N>!+p_z zvdn`N@^wkffr_1`+T-~dg~5aI3%)njK!*_7o;N5BFaX~|NvD&HcYv-CYUh@B+(Qf@ z0Z^mHoubl7;n_hS*+#*!hx1kax&T|-cF|1Wy8@<4vbEf9ekPCUp?fE7w}%80*5NRE z`KEIp!$G?Vri?#uU8bez--<+ngL`CV1j(%spUQ!T$_55-M!(nw{#>#jK7bJd$aw;S z&?Yxy{X*W3p)wmJmm!R2QDDqj6>=rK^F4HpLaLyqCTLpj@W0pu#tq1ZR5e$p3LgrR z68WdOQ3AnG;?OA*)yIh86X$G&bVkf}E^~93aD}mAuOR`WQ=n}G)DjHn%x}mvVtxr{ zvj7dqFFIf46l8Jv{AXj+jvPCCi3NNBSpm6!eX5%URlGI9F#SD)Cl(OIyi3ty82Wl+k0=s+# zc6eJP*uS zA;N%t3}rCe%*#MoO@njTqa4QhqXyot09kL@2rQ&Hn}iJ>5^dJ8zx-9~Az@W{G;w(9 z>9>1>HA{T9d{{|q zuTN8l;dVMA=jo!UfQaMCG>?;h(QSr89F+s>*g}d3?=zJ0r05vwUIjZ$CPV?b60&|Z z*dYmP)TGUCES2{Jh?xi;D3myI&>+7D0Lp!-E?O@UvU?hJTXcy8mp&IK;CcgWup=i~ z36P(8G7+f8c0-pbcFwb{a{GQZ+MCLU68EV+aCPHi)k_<`p{jnVK!-+;RKr$psfSDU45J&Bv16H9L^FLO zEsfM_?Wfe&Is=s=6H~|^oVPZuq4XUE{KV1F;lsf*L9^!}CY`237Wps+{eU;>j)>S2 zpc_V*HA(n_0XZhDmoJ0dLZeo2?YR)I-S)ir5pQc03{c@4QN~ZM@+y-C^2h2Ri${75 z*O)80J1#UKv9%%p@3`2a)%b0fxBF$=z9v7GDmZq)l)nz0MJY`9-spwy?cwMIQ<|#F z%4`A$G~#hLqk26GfDz!kFi=$K0~6B#ce)7mhzeVRd66F zYZok@B89HU#&y;`Rc=?Z*^(f7X1byO5C)T&%G*>cAW!p!lQg$MW*E!4e-Y$ z4=G#a++SwWC{QGr{x4SPqd%e7*pyJ>R_m1MVw@DbS1jZ}c9M64yav@rUm_Si=2j)a zc$sq!d(WgKayO4{!KglTT~nxd)_IX^q~OJ#$X-;c5{;=)>_#E2JO>@a!KrCo+=Lrk zGCYe2TxI>A1Kf7ep|Iy|@7$gm8G?I##go|uXOV=lP@)_yq7%|0*VhI&vF#rXLhCy1 ztvlxrH6a9$>C)z0KH69t(t-WpJ-hT>md&5Uz#;Z6{_n%q_{4*~P^4WhYs;!?%0?{q_cd}X_$w_yg1gTTG9bTuN|pD}-)DjFrXPY5 zhEbAUj81R*&4hZinPPSa5`Ch>yYG z38;VzALvv;!;|fgvG24y)7cPloqh+8J#*U>^g!;D6KZI@hU7!A>rNB-Tpeaa+cTQn zq&J+{aj<2gEAL=NjLU0kLnw^eriW_kNO#PR`4_)40*!SU6r!bDZyi_FuyC3>2@MvSYGH)%e;d3FJ7xMv&k-dO<@5d<@prSC%{N@!^A#VZSwO=iU)5*{>*SY2p?)l z5Hfp}D)?%Wq;Otz-^znfdEX-4HF8G1J3+n0>i)Mq;iJ%^C5eCh#|yhA0GzTdo&m5h zSD&n|Fz)GN8!J|4m^5SVbhe%B5Zun6PN}yZo7-~NLyM&4skWm6$WS7`TUP&pa5x^^ z*l4dha`rJ2yB=;--%qzSMI!3yBLx_k_59v&ay*eDIuBLDBn{PCI>=~L7pm&|4w(U8?bfe1LJ$OWTGm^*)AX+lm_b{m5~Js$J60}zkK!VoE$ zaqZ#VxZ94d!kieFN|LQQaS)SK4XmYb2cpigbx>ErW_>3vAM`UFVa7@wh5jP;g;AiY zTAUu%PTSII=%g{79I6GJNqS~|68>>lt^QLd0M2q`j+OR_C;b-1iN1ys2(}p{a8z1V1t+>cRjpZ6c zh-x%flJg_m`~!x8Ar31ynUgErzYCOB3`i9jIhBPgRQZT?=nSSCLu&DZ0=z<&#giLsx*C?b(K>w=TAgBw#2?uJO2j`7vbEo!X(5yKdgJ_R?%B_@m+PZB;I{GYEQTRJ$uz<7T7(`5L;oL~Yd zd}Jx&zD#tW02ReZ_jUtCNbXNui$kcn)N+~zt7<*{jKPXzN!}JvOKUcLXkp4b1r|y% zaQ(!R+_wFFplfa#3US}(cdMGyN5=s)yD)bR-)+B zF?oHqz!D|Q@QIJAX8x$A4VP zk94%^^;rSm7Y4kOsrh14W-DP$uEMl9sRJ=cK@0=&NATw(6G3&)RI$@dXlBa_de0T) ze0RS@GWrRvx;%~e*T^_i*NSEvmyj_00z8adxyTebyGthO%L7O=-}_^&{^GG<##oeK$MD#^e5>$dETOz)sSRx`Rj>9N*}6psfO0EQ!zF-Do}S|I%>x#~gD{BDWaQnV=|D{}795ilU!e%?1@`NG zdtlyVP8}9)`nufR0#l`xu$Xe;`Q{k-7~_P3K3kRe*v@H9lZRh}?^?p!SFP?m z)#R7h?Ky!lh=RglGYcqdEE7k0`zx)!O4^Ryzw8}iayRTy{;j(-}_ zpTFg(T`M{jnN%^C?$0(W;OIQUwe%kL`6*%~zI-KK?2op{t7^|+p!QxE@%drn=yDrF zNypM&RSC}aTJSL>O1FH%q#0K;=Yxv+c4G86F&#;X&_86JGRhz`?~J(iMr9n?g1`R| zD}8CbXV7I2#cyR$>F3qa82XEhN_v9@m(Dkoz$$Ofu9z}(A1hW249GjcV4=~xqL`uQ ztc`S+5Ti19nL-yBlvw=&KEDOjoxjZ|T#v8swDF4L+IzhIEZ-!*K%mVF)iyY6l#SgD zw?@O}o-SRA)E+JLBgu@1k&OSdlkUWlkuXCq-XiP5>MU(>8lqH%=N0A8^%ZlC#^MQT z6SNFGNI2~0KnJ3W>Qx8|h{*VL)#KRkkhE5l1Ph0i^eFg!v!xZ~ExnlU7P+Du9l=LC zOMs9PQ@eyNWq+X3*f{F3-$HYNEfmj`}I;K(PdeJPMeuQ0D4~L+lhx7i(UEi#>qr&g!Vg)s_ zK3y1vLsv&H7Tv`e!t6Ar;OnWjr$Z$RF0A@C7@*P+yP3nW265amDSzx;CUF5Oos?MTg)?5we z?g58@Bb_fRY^uqPzqTGU#Q6hT_WgMIGr8tCDO^`Y^4tvM;;m$kxs&;9?JW?^rR z$kK%}(T+1%eipMPwx|h;9Es%zH)gyFNqC6dL5({o3Ki7oAr+&E>6K&6s`Vz5t5o-wGTvc^+|M}5}as7;DOXnmMR@;`;>|;9UOQpUqeyyP?xX1V~J>@N0p+Bv{4klfr#J_kM2&&4||5zQ0{FtVyOaYIw z#aN7uXqt04`h500FxNw3*|;fbvC{!p6jDV({g~vr=o%|Ggby@?+bPH>qpp^CY_C8b zbEaq9i5~s_K; zl04zKtTr_?sNnRpXXhQNsM@31rZ$B1eXMHQYO8kmal6=n89Lys1%@54Ei@#)t3u^| z1NvB*A1v#yYMR2(_r^R%UR!;Sc=ol(d>?{!>CUP61FdKy_YD)cdJYD{YX0o8_H!p~ z;+{oABPd8CLxno&GC{*sOESov$U?lD)RIsau zY^w=>IctN{80iLH=U~B~0JgZVuY`?;dyedqDC4_NX9srpl;a-_HO-e&rYLO?m-VIz z^c>(0AE&>P{FmQeoJ__#VISosi+HXPI=V}RmOt=RS)31?l5EcxUie4Gz!7u{M-Dd)L5i@6DV)#E%)3VOEcYo%e zdEdzNuIM%JNN&WNA?RYASAoSSYr_@OR0N8`4`p5xas8ApQa(9jh`?H;x&7MVS?OYH zOJe2Wo6X!hOcn;?Js-s31IS4Ha5K4uHbll7UrAtReXHkH(?0A?y6%E!8Rg?!jO?N< zFT{x3bcnsr*k|3tw~X5__ty4SQdE|W{6C^~1kmQG=tR$pE5qKBWK|Ne8a34ik2S6n zFtnW5-e84>>G2V9jaX~kL8?XWl@(wjjsrKSqM14qaJKi2r|YVAAKj+i^jhU4hxUPuh1FSt*?5w!kVF0UP^qt>9fV_8l!d~dq#P&xc5%7 z&`UKL`cACK&k6H+us^x>DCnWiHG8yrUax3jwB^$g9x{LCoz%(D6N*IE^~vy3TC8?2 zr4SC@1|?Ziu>@N`*AU6pp0%U6aZ(7oE9r z%ZgNIZcV;?SFz-tmkuxex18idhnfE1m7}oW#%jXExTqU=SeZxvJS!qX1M2nK9Plpy zi2gw;J?&Qoc-!&k6^G^KBxam$OIU9)!>?a)_b6?bUYy=yGMw zrYG_eE^EzdKab!?0QQ-!R~ipaJ|Rn@Ns$zSZ()Kd6dZ-Vl>fjjE4n&c&57W-nS z!EHa^5$#scmM#XMQPYdR(^gttx(c?});-vQCxC>= zMxaCXk!tawnbvxc|4zlP1y&#q=Tta>V1rWg1;VqgWnX)mx$ojVPpy93LPQxle5EHV zGd^0}N^t+W64kqFou~Q_Ib?lT$`JXuPTQe*xa_@H;8F85I_{kZn?e*<@lV-ER}q0$ zJp2c93Fuvq4jmRd)=2cnJ#?_|0i6NgwX}B}q>Fn4olxRHy5E=C@a*c(O|{<9?Fbw6 zAtl@JEuqz26=q)YVYcTEJB7S&EhSiQguy>q!r{zau)V7xD5&OFUQffIoYk zB~u`{pPLfO@m+qaKYMR#$Ty}*6thEBC%J|#Sy{%dm&3<#y1L~q$vXvJng7f{eA0Zr zku3gIPU&K9`Nx+p)Z5iSWv`GMq?z$D5xNG5saj3Wl*2S;7--ShVJA8;-jf141kkED ze!D`>2jJ22%pB|za}Ja{@KSE4wuY5M$R}~}!T=krg7VlPBcEcMoQ}!a={F|1MbFvG zTl4> zf~H-gc!qk%*DtM;WvwPo{24jpZAmFKW)?Y8kH#HFd_!@kQ*fs_fq<%q)o^P`V}8j& z#&(QW0O6wNd@vG{#mJ$xcBRbY0FyLnu1Riyi%~exV~yVP)@lKB3U`I7VR9}S3!}TX z&hzEq6`t}zY~5%TwsS_cy@diF8w~vhN{o{Cy~VxXx{7Z{Y*+WmW#an|*2L@a7YO}M zOl#;k?R{VAb;BpEL56i4W|V&NLT*yr!Qetiz+0*Q)|hJs1b;$p(5 zZB^cI3NiOZ%hchPb&9QI1j!?R;;LOowW-(uMA4DPXjpKjx!M^0WF! z3W49F@{bVcru9NE)t6F`X=bh`@I>fw*~18=#l(iZ(kc`HalZ;aELu$mA9n{=k3TIt!Cd|Fx1)f6yedH@Te7FQU0hhnr)k&02dSPrcow86n zPZ2z?V6`#aITOJI7`uxg5=%)lV9;hT0!F0|%_~X7koFS1$f)X}=ALrkBTWJI7^-HMHhbJqNTl)UKI z41u&{&nPRgJ!%&z^^mOD(ioN(&+W9*-1!?7eM$_Fr5Zk4h;ch)-sGOMpyxxecJ_NY^FSkB z&-)>@+m~oUhE^kaF9f6T`S7(V$;pL^R7qSQK*Nqxz8bF>xoE|2$%z@WD~0=O@(W+W z?}RkHgOgthY*`701ewc=omayJ32Db82sAdPA#bocjG)qFZIj-uZ67$&j7bMxR@O6u zm=uTE2gU2XA_SB;WF70JN!!4=W0q?Jz6(SAZh1xH-lo3mHgK<8;bch_wDPMe!MV*N z>XpNIA_r1$1<*SNZ-S_<J2xDrj9)UTHJaFU zfiTUp61CGC_7Tm2n)BmfU-C@+4RFv!k?s1U<5OqTRwaO_c;Pw$Ct}!!i^2GwR61#D z-43Ghw%)^Ug^&A_hpqDl<@h9N!k|Kiy~iwyIAQ9iV__sQ^`yESrd~3m{v|lE2IC?* zTz&TLSX4@fz(^Vb#QR115$VPNB1JYICraPQT8{&PFX$2Tj3gdwSqEBGByUYaXo{@_ zm<}ojl!}dX!+R8$7%T7QeP0*?UnCC}HDM@I^j-^a2{Ey$C&}P^5$=$wG#5JM@@i72 zPj5854l^dOs!Dwz>Bnu+0i_|QIw@O1%;@^qTUc{Ma+-Mhf$cOp69w!j4RQK$lr)_J zb8n*4c3I?Dl;;j4et6l6-Ok?cpfSuHdlh}b`(!mq#2d?>&zpt}s&o7?TUxTK5=d~% zWH0UIwfLkuygTB#4>2}KYkyuff2P-R(%9RA5p(Wf!sE^e45bv8e7Qij{r--(005Ci zlJw>$uu3!?Ui^Sw=-aBzFMVoYe3k}n*)?RL9V|#B{AOR(9{EkiODIq+E_28MObH@* zytH?h9}%-Rli2nQ#;u|YcF$e&GADQbl-ki>-~ikooz*8MokCAxvSl!cxVn|2tAmT$ zylBxvpuTA8@x0lvcaI^rrFb&UA z#3TKD@6!h&$`)tuj2taf8f!-XsgTWN*0H{G9Ig>Bno7YQKZuLN@R!bqCP(3zh{v+^ zrolY-(vU-_LSlLEQ^hD7JT5qQfqeT0RnIr3aTwca*PixfTWn%dQP^N1Hqg1eeY>FH zaWuLKI)cf(=VD|q0~74gK>|*qW#L6f(nuN54y`Y>t<}u-N#3XKfR%Psc~g(QII+cp z<{=Bd{E?t2Wc*S6(r0!_T<2Upq4P970LG0Xd84SSLd71o7RsUd#w_sKnva= z4$2X=UpXO0C%pD0;rZzPE{vGs_%_*&rn4VY8x0Y18sI?UT58op;AvaQL`(^e9E9PCPHdV2nATbo5T zk$-KLBpw++h3g?p@lE!^*#Afyo?<}T6!{ABxTPx|06{&w<&y?Z9v3n|7 zM!}j-9w7Z|?e3fyIW};U@=B`LD&u_+GX;Y-2SMTj+~wfy3%VW<@mm7~K`#CnO=YyJ z;LHIL43M3~k~!#j%D3p6C8LX_?C$z!+3dZnZ0uzIbR`{cE;H%%yTO{WxfUNs557FM(_feiK|I29m-jXd+8ffdprF(Qh4}u_JP6X z?`Y`LcpybyHX`JSH>LaY_#RANpDyvXjyHACGnMp<52bw|^XE@_q^(?8TKFo?N#zi& zMSjUCgKo0%>Pym2QeetklLk($6MC8OZU)qNGmVVtRo^~V5ChYhjJ4RX6<%p+5-eZI zLiN~RIGfVGnK551yUrl!J;_6Lb9|VpSV<8s|v8Ps!E!Q}xM?TGSSP8MWAN63D1#HZ6Q2=?n zABq!Myikk)TPr{i6O5+9v&az?_o6kA+GIO zC`QA7+;`cIbZa(OC5%RQ z*d28nww!gCWrLd`6|2N8!Du`MB?UlFzRn0kjg481r?yMy3@Sc;YL>%rDrDozMu_B^ z#&rBNmeha4fzu(7xz2H`$=S%fVvhS0p|xz4x}H~@OIwsdSufaLUNim;fj*{pO72xP z0#O_&+Vs*@s$!!)Yep1Dn+z>85eb?jno=N}bXsjR{4A}~7MU3SRECyIMDR1t$e@aF zw+(=bR}isz)36UI7z8Obtm6Wryu^M^GWlJX@n?BVbCoYycErSfFidGM>TJPV$FLWa>@2d{mlyK`(=oFh)|K{^I@Y%ea8R0G zbS(qOfxPggi#B%k_X)q1^$lrsI}bWP)|l<8p)CXIzRqKXrb~5{g4szqeWdVU)_SJZ zh)tL!Y2=^Twl<>QWJyd`44-Z9Wq0<9xL+R;zxr;>-9=hC`!&T(`vCL_AS2?kA;?fm>C6EZ6MLl*`!znPAw8;uP?H}%fGYbC4iWlV4t_gUmr3nygRw3GbYO(O?9=b5pCp=4l(ger@Zt*Yhz3fP9*cG?u3`-y5$sPsmfM3hI;9*+=y7< zD@f%`%&v(Op(mrl(3#J)pG>cU>^~zV1ny1a9j91lCXU-%tdTkhhYM~_Tl~~?iD!o8 zr}eS+EaJB^-ZvjxH3Yq|!zMf2!Wq0~yJJcg(;~~vE3#PmQDScBgn?5S(JekHLlAr!7l3>?k`F=lZDQrH~~*| zLlF;h4Tij;kK@6N34Be`Sx>#qYBP2Vnt zyrPhhlFzm?0r7QLn7_-cgrV$`*?00>&mZ!l0uMF2*Q$ubJfG!nX7qn9X70s!hKW3} zwwMu8!AIR(Q6@zrfiL2tT4d9D5b0LY#68KEAk}>wJGU9X;3NMM!|=F7kZ0didT+L# zpkVNW>=&mp>;exL7%-4R`LHoc7}yWg|pjR=5p+q`vb!jjH5Cmk8fV|^3p zg6jL)siAgk!ogQfrWY0>PvbUQkF~a);EL7w9|Z6=&Tx_U5UwY31a?(T5Yx{T*VLbN z`tKw!!NMJl#M~}tEizL0$OS0jSwsD1_#vr#Xj7d2aI7PN&~t54s^!eS{zhHN71PNICN(a1<1PS)w&w0pst@A2;BSgYefjl4omguYL^)GqFCpi@A;5%!m!g4Jw)Hc&GX>pyv zw6w98Xr!csY*~YEO=|wV_K;(WaEJZY1c|{!@#ZqwD{YE8=?dIFzP+-dYHL|7NDV!a zF5Vvu#%t4qHdH`Icdz`PSAj(=x@9UJHQe~ZLq_H`|lWOl+m#SLi&zUWzfYt z>W6aU$!+K)w)?TQMeJtIhDV^>)ndkSWukbxefy@Ljdap~43ME}3BV_0P>=kbOE6gp zGw4OCvDn?4>;ydz`#slIH8ibPxTL(FV{g{JiUiD?b1e?Hpk2oK_7dSKa;nRZw9N~n zPd#M^zCY9u@0o7Q@V;irt${XtL3XGa8ROze)ST^Vvq;CW1J6*Qu@8!T97C$QYR7FD z8RZJnJXc^uV!w{sf_nC(*SGCUFpL~{~ftx61cc(nlZf&ev7?<(I z47c%B{Fj95Y(6wGqcN;gTzp|$3~9m&w`O4~>ZjS*8+o8ue%6 z!bU5PDxfI>rRL(WPm8(+zBL>$psk}O06N!~AdUW=pH;oa(z{w6f9+D@WtW)z-ZHU3 zKw``g;X_I&D4aN#x~e`eULI3euZ1HXtYUjl5Tm)#v#NU(@xAE!9*REH&Vtv8R*B{y zRfF7>?*fce)@5fnUb%EC&AYix`)Y-%?3uezfK*gA<+kUpI zs^#OezI5TZ&#VM!)JCpj+ZJl{o~Zlwl*qVlk94Q@{H-I%s&ntzC*6QN;JtdrG2%96 z3R`4*^&ubg;@8Qj98=YCW#FwefhWvC%*4q#Oo}{TJR4SPF7&X_Mq_DAAc9e}_Kp3G z2tirfAj?&@qD$A|Y({5GW7P9&H|NeQNYya3wV+C!s{2WU�!(RxWNx=hq9Nsb{04 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 bP~iUqeKJ(4fe)NW00000NkvXXu0mjfT=ZN~ diff --git a/docs/img/premium/machinalis-readme.png b/docs/img/premium/machinalis-readme.png deleted file mode 100644 index cd98c23c7b4dd2fd1bd8e79f401707bb7ba8d416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12872 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

0VM1Hnz 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 diff --git a/docs/img/premium/rollbar-readme.png b/docs/img/premium/rollbar-readme.png index b0655f7836817927967b486398af95bed39beb4e..630cddb32d2d3b6957b3fc4b7b57df0fed6546dd 100644 GIT binary patch delta 16464 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 a@aQ^;xF`ivQSaXd_#h=F52+H-_xnFQe1bIq delta 16483 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 diff --git a/docs/img/premium/rover-readme.png b/docs/img/premium/rover-readme.png deleted file mode 100644 index b8055d62e5804df24f131ae27ca142655faa4441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53118 zcmZ^~1yo$k(lv~`1O|5}xVyUqC%C%~LxQ_Qa3{FCJA`0i(BSUw?h^DT_rCJ{cfH@N zH8XvxYj@SI>h7ttrcbzvk_;*m0TKiR1ge~@q#6VSB-MNS4+7l#XAHA!+4~oam6)O! z1Vmjd^0Nu-`!%AYtd0`|1Tx_78xkTt6YpJz%I34Sv$moFzZnR~Y+?>FwP1D!I=*W| zKnS|?zc+yv&L(8;Kzj!#es>{?e`)Z)xBrS+D9HY$;%p~Gp{=MwCIR|tLB_?*$;?V2 zj6_C8CivCdl3z_y`oG}sS3(rl&d!efEG%wrZp>~R%%HDUENpyyd@QW&EbQz|?;1=_ z9uCeX?o19&l>Z*&zsHfZa5DR9x>;LTePoxCM9`se+(ZtN+uV?>){6qAg+W)en z^A9_meE+obkDh-Z&CU3oTuf~(%$)y`ulKC|YxawqSh4&=EXeYIY74&41%5@4xs9cV zq=~bIFgq(74?inAKPv~>zZ;zIdHWBYe|Ye>N8+o6i8JWyXAsC<_+K=De=o^6n7RLr z{Ad4vK?Pai|vOas0GwAhr_S=-o#!*y~o462a_54w1}SS6SW(w zOtIyYwELJ7ARs?Q6hWa1!be$I z;ECl)p6SjaT`-Z)58?%0m+{ejT*}40$aABxeaN)R_TOt3yOxG+yZx#tX)Hu;unRtD z;ynvg7=sbM&7w*`rcaxpr=e5%%yKcZ(NV&AhM!DCOHtRe4--P8I_pRpp9e8tE&QW?zn;p>KO6RmY~kie?cEuBjqYK!($C8%*UgQd13#N zBr;IOFTRKdaqLY!NX2gRL$yshi;QVLX4NtzFP}&3?}+>`%W0ih>&TUl3=Feo%W$cv z(5NxLOfFrsM=UpP_htcq16UM;jqGUgrT?RGlOnfKB}Y0&3ET!1HIwDz+UI-|j}}25 zC)pGU4oC%bzoo*U%N6D2kG|89Fgl}lIG9S4(NC-sWyXNU&2S(M8bZWG>XO0j@dto5 zEp1DlA!I?9VRic78NuLE>Ipl3GHjXwIm4+lnP65=p$_eeNl!NPD@>BCu{1F?SB{XK zi*lxCrqVno8d`NY1RMf&WsQ-FFJ^TV~`f`6)$);ysKJD>D^`2T-c|k&5J6g-;9%g)FmA0_?@!Cjk}UCaz_- zvMQGYvxP(Wk~W?&+!-hJy_qg~1_@W_5`0Hdw8PbrmGt9|Scro4DOI+dC6ubK-^~c& z;REm0gpR60EmZTG!Svs}a-q5}bw@Rl!Y{16lh^n_ah}r7b2(+K1C+)L5A583(2+V`jOp)G1F$ zfBI4e_#SBqGwyCJKA(vUB@Kss^nk@V+joGAFegxf|2}aW(Mt1O5gLL3mAEXC$;`YOKHspu-tpR=%gMS=isuKVMB4$MjA4b;S+q&>(*zM2 zy-2g#gS+95>BjJE7DES|@4?ATa|+&U2+Q`AUaWfzX$SBoXidPMj%<_li^1?)`8Fix zT#)wiMwnK!PNRs}3EF`YHTyNi@saoD8_f{CbDfeSm%R=|Z3>{AX+927 z(?IJW`+k180_SgpZ1cRY0|nO?tu@`2y&#h%k*M3XMq59&KOi3(`Dli?xASUK*|atb zPG~0fowyzz%uqBwP!@P>{O)S3>`&kir&5GKXZB2w-HoXJfyLsRgt+7&mZ#e((Zj7e#^N*(g{Lk+s ze|MWhHg6|P+mxU3d#N~M`cTNCl8o7xl8sB-9@LvO___~L3`i`@Y5`K+pdZt7pRhem z6x16Vr*V}R;VSOM<>AzF^9s=h25~LtcWb1f^j74NX+(n8lr`aeamR7vAMU5ydyg z@-g@sCGn=*`e2L+?=mLgO2hia`44Emi3%vIw#2zQdnqQmsk!ungU04!k%r<4G~HtB zetB8TI#UV~gq>Kodyn0Uy+=g=!VCso+(CJQozR~#Sxo4yUy7MtoX7-cd58%ylLc6l zeQ#yrEUG}79PfL(4Of9qy`YKL?EMnJK{(!qut<@%j7S#&x-y>Ol!JdL_ZwBqG`517 zyzWG*P?YXx%rO#$(yEWmQZ9Nl-i~}GF|AV-mdC|5mPEFzPW;;pd`W^qw(0~UpMIiu ztS}=l#n1(A9{FBJy(FaIK{b6z)}H}*Irkx;W3&3tkfYgVC zCXdRFyVlVG(lnyC5Xe-CD4PSdA>=-EOPJ#+(nk6V?ZP6%hSHOF8?7+WCVYx1OSG>K zVG%s2M}nA}j-+oF#&_6Cm~FmJq8n_!Z3E3n1|;p1CAFvQCc!Hk(ANzK+|FlPd<`;m&yNgq6S+=Bg{ zvzz7~O{atq&M|q!Bkn|x5PcfH9ee(=)X=`=8;IO8;b9hDf2>=XEArZ4EoQ8KjU(k?KppQ4b`OM+7pMaWf_sLs(;yaq!Gs@i&#bs*aRwtqSL zy@2q{h##gh$V_8I#xa{8F>leKv8_dDXSM!rSR(=&iSRd#AYwsdiAd1H1e4Hps7&@5 zMWmEr@&8#UW?ZI1K4igbEdJG63|eSMGuer~+me0I=Mk#4T_%}~4M*&_sF~oI3e)gR zKv0NeeBB5jH3b5O%TbYv1yN&nC9MbOP8L+Z1}mA;@=*&zw8g%igi zMnY$sld=1Ap@peRjxp_&iDYM~qfcVV|m0X}FWA$rl zt2ozkk1Q3x{7g7laB>NAh+sBKkil4rqu+Pu7xT;a+-KG#aWMPXgPD*vypi@n)%TY7 zwHRi%E;%8%*{}0`h>uzD(hkkG$5t;!2Vdn$TuPtzci!vG7qq zE9>Pa&2#D~FER>iy z4B7A2)W&r)scrQr>GXIi8OI8(ix^zc8g%MioCmaMA*V(()l1}S~ z*r_Q*jJv$`zSgr+!^NDuwZqX{p+cT?$aKyT!g0~1?Gs&dglOX)4jmn|lRb%S$-Z9B zWE)#EZ?R~eus<-f=F%w^jO7gp6Q=4(cWcTlYTfF2fHWN2UX;0BN@bqjAPmJC?zg4a zR;nc$7Wrc+Yfng~f}0lR3rZs{&7;8PL$;#jQG^Z?je;6uCSAPmX9FqnJQF?Y!jQy= zmihtYdOKe{6;jNm#3m^?dZ#lXtqgFy$$gvu1xO0 zc^mQj?WEk`XQ@w6Y(KbDY+Rk%(0ylSv7m1LAlJZMaz;Nn$Hn^CwkZaM8#UoFIy34+ zYur<0UpxPFndVu|^xX|?nv**lj1+gAnBG%{ed%MrBed$yuaMO?Nd7SB7Tsx>E zc+z|6FC)2cx4sS&o$T3`tN|`nA%zsvKTa&7Fklj7TjnEoAmE@)R}L4ZLk?j*>E|5mw z5Yl^jhwygCPhmg=L$*^MOuBDm&Zta4YepISnId>cm4%ckN=rK_c;OIjQKJtSslzU< z?YJG?luD0#3~U^ofvxFVf?=K4OUH<1{eoWHM+zJhcy4JboQ)=!aK%;pd?6}Bg|r=V zR*l*H3c5~rOSP4A$1Z`=G_~}!6m6PnSIFy;V+Mp&XefoFqSQ=>)&E&;`1>& z@@jT>eOV?D9MTu8`6x-(evPN_`=JuS+tU#gdCax?*QKV+9vkeJn$+?%>KmTZ?Gd@nwB zyXSX)3m#IJ^U<_=iMLjvCWads`MM~sH+*7GYYk0fm~O@0|I7i3q}M>Kfd#=LBr-B! z$KRGa7%)6Q4IrYx=>RKj3<8V&?MRomx;O05bAc|X1!z{&lXgBc&r&}LIXuGq3kMoS zhMVuq3<2oQlB1sq(c}@9o+sywOz~C*Ej@KOw<47SOTI+JZrY3;@I-q6*m8wv+pR)v z-vChh3lK^#obxRa-2wvSw=3mk6GH(Gd(q7bAL(hDkP;)`_)rjFmY7v6>Yxq{AH=n0 za`%dG(OAcq#Pe~NrbrJ$2!cTF$R#38B{*tJzb{~TCR^I>o}LdJk40~&Cbcp?RImq{ zwLUVnc>cB_E{Y{C85w$;o-v%Dqzee!$DGE zoCfCxRe53AnI?HIH0iav1Q#vCpYxletgJX&SEa~m$Ta=4S*oL3z@_)#)52((V0BIc3HK z(E=r+A~$*Z#O#fYczfE)jdUJYGPASKjB+EJ3_i{H3?Cy?igA%;G7mk9dY?2{{@e08t`T|zz5+ftULGNM(UF|Kc^)Xo^HEk#zP zGXmL6Of|}kT7a&&oi5z7Wps_e-4B^kES2)w@9W3}N%E1OJ0*Zsq++|RIq^QX#+r0L`1GCj=O5UEC0+Xsn2c?~AUnut91{?2pf_W%#+@#SsT7IS3)WXbKi&ogk|DG2Yc0YSa)T5<%M>z9qNt0K5aMb;e8Kz~eKId^~p7Xn?z< zDVP#uP$VPF()%klt?LWxA4(t(?UYo?f<-`Kr(2 zb1sFHqqE@tq2q&tz>A#g3QeC}MrwVD0KVxLZb)Hn&{lD$c>Qu(hoHOBb!b2mZ^kPt>^+Mwc4Z!D)Xpp z7vW4DQN*mc-?t9~BpIgPkD^DeW^6 zn#(XoY(_t2qrJvzV$)~HOVi+D4GT-$ao?#Rp;A};unQdSGI~5t zz{F%it3TBz?-U0MoFrd-^X1jh2sJ@WzQ+)h3bM3*-C$0cI#>wO&Lr>c>d8?qzd`N{ zEfVqmM%?uNRyf_#KzO6;TpH9w7?N?)LRo9iz&WbRLhKdJsz%3#WJ1q z=Cp?exY;^nAM(KLW?*yW!W`?9rb1nvIX-s-`WJddjwaR5Uus>nXZuphC}sPWfdv7R z6Eyw7O2+4Ol#-5bDq?eYrH2cawZBR7$bX>$<%I7tnqPmI>G#2#B9$gcEK9j~SH5!T z8(bp}IrS&nf64V?W}k5I>ZzTCxsqhpe(Y z-b$u*4<|id0IWHf1zQXx)tB*Y%dm_|`CZ_*5ePILG%H63h56x;mMwCd2lLqnEMXDV zi+W<5#IwNeRon^kNs(5nG%6v-W@2a-u*FQ5N=NrL_3Cv5oX3rFrNwz-a)dg}Kb!Wn zT6ab%E=?SgCh`DceRI<$gsQyqJme!jaboUVBaD!}rkW4Z!LBidS!S9{a@j=7Rn={l zWw>Gi7ejTkDjN~&uz8DI@Cg!`p#YlPVgmg|3gJo3WZm66X^A*ZRieGxx<<>8JtiC8 z3Aef9pZ9F$exNL=Xt#M(4nBwCtUX2#M0*fT;1d(WKTtGm9>%f~25yMvDnmjtdRMc> zby|1KOQ6`Ifg#lKMYl?%G$IGoh^s^=HWWE@GC7o8*7B35)mQ2Nfvx$g4t zS7ljGyQydz4ar7Gr{i{I0r4Iq)+EOdTkeU_b)OcmJC*qnYl|~eeL6xr1PMVUb_uHa z!i_@ptTV5Aq?N>mKLOAUicX$X{u0dcx|1l?#lKWw6{F`5!I9aP#7}`+8jg}^QO%{7 zT^qTFty4-Ot?_d`l=zURv1OJ%*D)`H#*uIl+Y;kfm_I%A?bE){usrSK^oI=sh?ZbP z$QFJpY_EK8`NmtKIO$pKPl;9piV({OD2C%sX4~^nX4Zi?gQPzPZ!IkwdTA}P|0XHR z{)8`S8TH#P}mq!e}J8d~Up}bE6f#pXx6z2q8>F{asG4qX8eHf0M?eHO7k~B%(wABt( z!Ehublk?el6MSxkNOQ=ZAwX+ay5~~G;?xp*3V-C6!24Q^2t=cy?k{}=NS&8qRj38R zHQvxD&bH~-P`D4M30C!}gw$L5?%lwZgFjGn?Gx!`H)UTj>tjvTPuT+3P~u}tAHSlJ{-*VeC{Q(NQQqIkO;(qKYPA zTd_6Xi-Vrtr4nW?1hkz^we-m`lQWaeFA{sWGSiIRhv3+%=z=resQw6nOQdx{*TzYt z*lp>m??$YzgmOgf2w*O5d%R|c6=D13Mze)>o2ObEaIwjCXcbucNKubs`&s8Qhj7e> z<#6UtB6x^nAe3WY359k%i)buUq^N`TL}1??g^G@vVJ~l+GApKr|24jG{b-}zu}q^( z**O5xm2DJuRNT;KwkbZ&GN|Xn4t$NYLNa;#R;9;U z1SWi;0LH4Q%aeF#7u?Zdii)z2cPX*m4$Jh){Jp&wjLgeWFq1t+V?DnsLxqcQLG!33 z4(DcyW_um)m5~Xx@1h^V8zu5Eui9}wPi0D9%NH}pkP%?hoeJvTK-zBS$b$ErY$)yWhOvD z;r@xc16P0OI2fSqJ{%sdv+=_~C$L-B@-Rt3`GkFprWRx33uLv3lL1Ujk`j9!3$5ja z4xYTqb?VQXZ?SI{VQgqnOxWA>COWF!_NR%))_1LhgMrZsXt4`ki;PHU4XzHW0w*i& zZmp__2V<+}gbvF->yF^NAh0Gi?Vanwv5uz6iLCSUDaqYXs6eO}=wZh3Xe4|y54=v~ zdolGrY(GYbyS-e94()s_=Q~rYDuDMjzI2yidrNzR!T(V&<!!tZ06fRMwDvG(A4weti^TKR0$M8rR}+T$=%J&v zoOzBr-mjrobh<6nSkDF(ON(`acSR$~>M@zXm}5K!%tF!b_z1g8bU$x)17397S)<-OY0A2;lVfa);v zg{HrgD=@k~ltgVvpP~W@no+!(&q>kF+L!%W&OP58_p_gpGF_YSwaiCJmO7r!NFCN) z#xGuQUu_?L<*}eDx8H3zK2|D)GO&hI7cE}c;)Ua?2Vt4zlz7Ui{nn$g=(&_!`Z%=bkF;SgNb^CoQAXb)~# zq7`J-mi^X_YD4Pmj*_L@h?qyC&J=LQyIVUxCv}+47p}cF;K%yu5b$h!px(vT+V?ptIIw3_f^16#$((}~#GNU2#=ac@&YjerM?vWm=^a>Xz4Vpr>2a+5DlySo* zSm+Z8j!=2W5?pBfVwB^L(BAB!D$$W6Y)*I}i-wR{%+GqeB^1H3Jy(iQZYi@p}9ZV|AZWFJc6t_r01fsjKCp| ze@v1BQh0v3v5)^sN{tUK2O%8?W7jMs!Oql0>f~`V+b4%$%@1r920g#ZcQS=tXOWF; z%kkadeA)N<;*Y>v8X6yn;Pqz6kFVYLst83ZWR3&KtyNcYzn50tFu}Auqw(EOgN76CTgx@A3p^Kbo^%=rY5Dsp$>ZIuwfU3uHzz8%9~3!M^|9vH4BMJOjq*+lk}0 zOAGokw*#OlI{S;k>L`#O<83JDP1F#G_qrAC$JOqAr88=A7OUncShGv2IPglry5}fc zT`sDxfoOwLn}`s^CbcqpRH8^x`UkaRxkI50zt+_8rv-Ju4b*x$fD z$d-?~xld2!x@n|Z59MV~qIr3V(+J##Zg?8S5^b_jXS44pN?US1OEMXD|5ksFeKi_+ zVOS7yZJN_|OM3KsIc;;ivBY_2XOoI-FXxq3p}`f*TrXUm^1(m@ap-3eLHHNNSm=pF zt)Lx`v9DNDQvUK}ROGRR%_uadh14*=76d89u0A;8iDuMUZ>A+Hi9$AI<)JcrZrG}3 zd2iUHd!V*gaiYRCLO{?fnM3H6+Fn!Pk*8ma!e0`hTZbILI$w_;W14wct9PrHH52f2 zA_+Gm&ux(r+RVUosN&l!@125~=IJmD-oiJ*JTK+Uv+L#Hdb?u`1^qXj-RYLsImhP_ z2C$LvACSxb{pI3>MYg~gTC480Kfz@Km61nl1wDB@t0!*L_L-6DR@(>flxzXyaTww}4nSQtP9yTj)eeUYBH3wIp|CUw!qi}pVUQlgZM(rvahc+R$7i$1YW`Io z@10^J!nL300B|Re#|W?=w%6IY$i3eu?Dlm2MDrUY@>T*~M70{QcFE+}7TONpwsP&m zYuB;(o_1C)FN?;WCf?`uiK>(UW4jUm-aU7+_9k0x{vrm*cHgZU+q1zT-V@CVfKe&J z6uXAHdTe0}uw*F#U|`WRA@ehc7TK#TBibc}XAiPiShjrAq{pPm1K{pFdr;~uQQAA? zGGi=KS=6us)w!79Lh;*I>upI1a5RSO)g)%wh}rdPB~!R-!$a&onB!3AGZFF}#z*Ug zK7s!9Tm-!25Z;})&hjwp&Iq`J`HGC%Z*z{$&fr~2?v=4wNIX<$uzGuynxKzVQ|H1= zxnr-BNqQJW$Vc;ku$DE+@A;r3O)~QicO&P8Qkuf37odL`8TYT-q8IDVA%}zf{u>3v z2bYLO7LUUvp5RKGIx}g*hNB?|;~xR|UD>R#Y~R@7I2eXrbg}8XF%4~g_BH> zw60?aPvx@zY(LcUj%%+3`)@?+6Xg@^G^lnApSlXnJUD+pK|a4QwDGg9U7ilDULUFB z-5vy1+Oy@ivQ1Eq-}uFWod^;4AB@D2^XEZ!qu!DYtz=JbysTE{Bwq{B>V@DL$PVq) zsOh7_r!YY(VTFM7gZuii?%FBO?*5|P*?~d1^u+PXyKnh@`SoSN37hbFMV||DgvgD* z9R~+3EU@?d;!$i0Fcz05Fq;a1Blg$Bx^3q~(_WC#&6sZtvHP0vWt$KOTaFR+lhArI zUqDA4U!>WGHpEaIB}JnakCwX#VeaQ8;M=I<^_ajs`nYHNTJGMLRJZe&!Hb*tup7&O zhBN{Kq_CaNzqauwOprcVVm(jihqrWLUdCncGReUd}}-AwC3#({@o zkWPmNvvjI+x~DMt4bwi#V)!$0PWXx-B-i|ohc*r+;dMP1ye~rxfTxpjOUSS&lJ|I* z7(6<^%H_RfDKy;lb`2(BYP`MLqqvCA@bz&&NCu%QcfH2pxra^LM^y+_$Lc_}P2I;_ zyhbR>a^(zQ92w88)XZkcjmsPJxnn?Fjl%{d86n~z6;HmkH4?#afGOk%H6u$_*oKf_)$F>-l3b+og#PhqX+gxLaDrR!zE_}W_q5L~tM+tvNNEE2Wc zaE5^?3_Rpb>S$Dv@5f7wy$EJtScq6zlNd!G`=)Oc$jl*la0F3-C=~rq1bBAGkjs#>`|tJyrU|y zEC{t=Zi7TUCJkmIV;>R5CB2E+XY9Y=_8DI6*bUvJeDVW6%mj4R{H#3xuq+i7a*p(| zYR{o#*XgeFCXpm&R0q>y3wOu$BE*2 zn@c5@d<{Bku*vK_8G>k`%+lVEo}+hy8aI#gy!bh}^b1W>&bUsu99uocB8sV=9tsKst-`(adP5WH%_(AX)ntJ*Hq7o_K?8cx-L`6~PsNIS4= zl`~0}KeU%&7Dt9O6Sn5td)dWmn~2ln@mSmkd`?>8U?|mw9U1`0mxm!$F<{hXG?XsK z4N}zm_2&?i{gmU3r--T?_ZJy3F6nDdm;`MOfl|&SYWOZ~nB321!*e(K)dG0W^@es{&S!}XWM($jP( zr~#xJKk`Qo^50H$@}dz0XKz0!z}8apIjT=&~#3Hu()fPV;# zA-pM;8;APo;mcbtln9UR||{NL-(+n~Wr z0%uoV-rS&tz4^>e&&R&aK1yY@noMtpjoQu1*Dr8jHC5uv>SZOp8ArPuZhx7`S)1?6 zxMBGSy6sZf+k(DwlKB+O1v69Bk6$u>503J;w>sTFg&FZbczLqF0qojv*`zkAS`2yb zdM~EuJ9#oyPp)522OYhMSTkLcLUV{7A1{uEa6{KyuZ>Vhr=Yts<_})W?oVD0E-p4f ze#dM%!7+A<>DZ20L$`EL-dE#Ip?R8^{XG8h>)MXTX zhw{Smj&$W0BLiZ(m>a$7%I?aONiM@W?0Q`ijtKA%HvHUmZBI-qXy=l@IV?NHDjmHx zgCJI_uQ4(>!_yx0e+vm@lEmZ)Z_TH_9!waa$F@JdYz~%5c%HM@SOCMz1n3}Qb`yC{ zXNeq0jr$ayu;^PLiz{qx0bPGsSWYBM&5k-~ZwFwF=MeZESAT|$lROYp7d$nov~+u7 zCtZVM(R?i2UuNv;lVvv|DOR?#vR`P=GIr*jWJrlS??!NMg^TYWFQPAvTz}}C`}{uE z#PXs$Chb=Ed@H1bC!nKlX02rzng*KdS{Y@aC#Nn&3MWuF%f29PR1yVr7Ryi8%T7_* zu*yywf3V($LHDzD%dcRp%Rq=`nc3~&Te7o z*6wc<=lt7`K9jvFZ93G7PfeB>{)cu(&Xkj@@h`=S^xL!pID67qiINRqKt1LkI<`QtKs-+RiD8gkFBpGufpZQ zt>_HzZKZL_4SHKxn~#62-0_fq(y&o==|FMfBsP{*v@1&sOmw)><_#2t(Q&SIgMH8X zvDr@AWN3WAhd7EK4z`IyGN762KQz`aT$!El2~r06sfBx-_6bRIaMWpkmoCp$&D!g_ zAt(M~N=P)?aqsmjp)kkuoWWZMX~o8_`A0E8+sB9BMz|Zz;}9pGDl;V`KfY>z_6D?X zgIj&`OD|CGQ(F=Sk zaGp%T_zS!sH{J}1Y~6?`K>M_jFFGSUp`{n4v?k6MGxKF?XHJ7RDVU}%FWT_n<&*t$ zu7m=y@6q@#@lk55b#!wU7O}w$W1%Wgxlq2)R6&U$$%`xAPMyB<;oQRau3q;B5|ll( zqxqXq8D@FLpBK-hMoQs%1zaS^<3iCwW|dyyf)N2@oYirs$;ok8SOeh@m}J2E znQ1q6%tBNAz$2z9Y$Sa8y!p8bxS_;g8)wh-G^q?-d+uOZp3SVJ+Gt2aRRv}|Jl@j9 ziXVDmOkK{)BC{+@+1Ny&>fz0CVz0Fl+D^ZD_HTi-26fxImGN`zJ=`Np;S?xaSnNZb zP-NFNmcgaC{if*XtlJVWW9(5`A7{BT`+U^yFGgyh0=z0<`B-w?9e9iHKRMmnrR_=? zG+mkD^K-h^>A~2k9^(~5St;2Qv>v%UJUD%7;b;cV^u?`g3NL~y@uI(GG;NY11$4j* zI9aZ!+hz~z8>u3e4P<}h_m8nxQ%tv)DneS)IY9Jq%;K%zlH~lPktNC)H8>5?rKam> zxU*Mhk*Ddmw2eSy8&MR{GIFzc)eMeZy@BnR-cR|^IeMy@_0XwkH0gf6rYsw%F51W0iMr!fzC4bl@ewG{jSHon~8@H1A7`U=Ct(#^c$61(_@aWFbng9 zXm6;2)Z-;DDKeDbTTR-V4*~1V>Y9bw%?rmQLBIT5765lJHa}s|WuTcs9qp4o489tY zdjmg-MUP^%=OO|X6kvm+MV8_wukwTZNub44yL2IBJVF@tskp98BNx@E?P4UV{fH?? zfO<4r*&pCtT5lbEa8IUir$bF*&zw80)@fZFY-&KTqE)AKFNXt)-mqGmtWx$(vxrie z^eqet7fCCVR{4cWPtvQE?z%m&pMKtE^Io^Dxem^jw`hJ_ot&;gUH9Bn4ioWuHhP=@ zg>^P*>aM5P^2og`4M{vYZnr$++y69y4+p_exne^HEa6OSTx2p7)f`$%C0t%bRxi-g z0Oh1(nJ6ia&ExC{KhmRAa!m@G6eMCrGvw;yBZiCeMWlz$IBNhzZNu;gRpx}s|4 z^V%%L{hyZ>%C*?qHpW_DMC7sTE?)&2+Q``9nx-XRzi`dqULbZJN@9 z52pYI^MTVjc@?P6;ETsYFn>w@H5&j{+}BbJY)5NE)OokkMfxg!p0LL;bG~*x+2Ygs z#F0E2H%{VX@2-&3BFymO?jA67=W;WX8J;U^_k7y$ygR)x%)HR5=(XN4f24{xstyK! z-iBRK>MOsh<)@s^q-y0_GsH(kEMf2!LL{m+52H#%QebK9O(9PWzUU-iVTyC9~`#L^H_@Xd}L(Sh6H1Soi$%4)sn{Z&5FyEX- zzo4Mh^MgQ&vElU4rdF%zEsgTkSIlSZESASBjyH#gBaS!2Sm}1b73VC>+Or=zdqp>i z@}B5jSBk4|xBOyuC2F)N4g)Qcp=1+0ZClFi%9%bwwAcGi(-?ZY(ayldnb->Bu*#ti zWm09Ge$i9#Ch6(>G>jx4neW%8c016+Ma>-mk!;h`H0?sCf2eb0IbZ{kGZCI}cWcgH9SSRBMR5QVBzer`(Id+c@d$OqT(=NxpcUdzg zbvvAr+XNhi{&srA@iz3Vao_CKE=CK($Z%2ft|8%Rb=mh>T7IY{5oiUYe@h5fLg%x2 zzKPF4QSNw6+?)uf4Kw4vcTzI?>G&({6~ABWu5!jI3J3X%HQvzIAi!^@0g_t|Ew5%n z_x0J#x86lcuvyJZmT=qyeB1re6aT%lcv$hzF!Z&HVenZFSm67$>kKYqo+horY(<4`>{{>!77Rm}qql}x{Wf}*TX)=Q|h&RW{V87O;v0z?_5rt^CZfH3T z-9O&qfnXt;8uXbNBu)W^ji}YosU9830hd@Pn$t&i&|}JKU|#2{5H_%dk3NgwJS19z zu465_$7FALR}(y+dn=c?`9VJWb){tNgDw>N5_|Uz&z0}ND9@wU)ls$XV&Q(d>!JQs z%;@}~;4s~a%P%4M$2!174AalBpGm>3ryB-8MGl_wT7SA5IxN56bLDipxN65%2tNOI z3nlG(p50t5h(#$mV!(CBt@*s%btIr7o3DH*JF%1t4R-Q`zbODC59HvjeI(DCUjwW+ z_-$OwyQJQcI?rD#C!@%r5Wdt&p82j-)1G|SsKv;M&7OLZ*iBir4hf7lBfO9L(jGEw zk3#8`IF8e?DAc2Q>1xaQwV)C?hK_MB73jC-<(m<1y zqvm*Q)?DG&E3hy=Otv^X!F{TjJ*`lXSxq2zewkUFZ2qOOmR1$aAW`GRiHUNvlr=ICLuqcbC^9ge6 z9ALw@*nUmKLKwpv43TBqBtDk6w*CJ8@C5}QA(nY~Z$4#h!5YYNW3vw;n!U_kVrw zIs?<@&jS|Mwgu4&qN3kuabmil(1yYrWRe#;izM%>H?s+acR$T$GVs$qL=I#Vbly)H zp{)D9ilCQ_?PHT>jWi#HZ7FqhM@!6Dq?9<9ddj*+dG$P)t;-*C*6udPZJhEbx|Ayx zO_qTVwv053JcgLCI|j1r!pYfcEUQMLDfBvw#U-3}4HLryU7f0UzEhKH#Dt$SV8TIX zz~r_;m$mu1&{vYYbr+dcUlJ1BaXvn6= zHB7=+ENodAk&QV)HeNL_SXRICdsqCMzGOOe76bTV$a4Bg<76$~62JQlqljEF;FR=moNpMR<~ z0FnpRAyJDjSqq6t^5JyQ1MSEdRbGyR#RwMjI&x!=3W9Qk9t1qqH-WW=jjZwRrMIEP zZ`KdFYpd5gb|NINcRxgkNIYKP!E&cdGQ~S)_PF@FXDBe)V9GVd)~Kz+BEEC?4-y0# z3*aAS<4BjR4%08~>ENZGci!gis^>7ChY!{;!?3DeWMl5?hRzU##6BrIEadDlm7{I%hLUW#_9 zWs9D>yJPqJhJ$*I2$$eJcNJWGc2ab#t1X|2xoJkl!1UkamHUf0XC#mk(I&mRLsO72 z&X_o%y;oN!59qLZ+maG`oA-pC(0`RgEB%>ewJ>F%M;Ajqm#QvCX#Jl!&=d_ZIis=R z%IY%4y>0HAz4_O4S^)#|V;l@7W1P*lnI0*DWOc=PN??T(2Y$q9+Um^41c_@=*sr{7 z#Q~6Z1~Y91r-R~PFv^%mXxS3v1UeH4`UEcI&{rT;L(93AkLk-6pTGV0-gGjuvfA+L ze)DDud3FE*KmbWZK~!~j4xhi{_kAvApT4RZo2c^7)=8}slkE+2#xu6hWnOBVt5TeA zIjh6ST=Z2OtW5suybGVndH=po%evJWULN4wzx{TFwsy%RIpb8Z_iA(iGLVeHEDjz& z7zF3a<7Vv<@ob(GX~8{i1V&^Wirl&LeZ!60Z_}Q}@_sWg+KN)a;Ro$V)g|i z*1)bIrW7IWci|R`{cH3(TVCGx`l-W=M%Do)$;OzIm4Z+4iqHxJ-hK$$?J|Du$K^;y zn6WxDwj6rPRSjg4intRmPYO1~Z7MAO1ljQ~o3=y>BU;@!c&ncM`kX#Ne5t>* zoLK$ETYpDM>34^HTW^;1(j>*!O_#>3<`?XAT?G+l)e3tMC(azxC3(Gc-b1L^Sob*} z;&9*2_Er4YB3IwI8FLHIO_BJL{iR!NJMYcRKWGHYf5B-KpQ^TBTYp*j=X4=qubx@F$$NhmxWo;I zo2PVPz&GJ~Ok|2`o7d~Z<_Ttdv6FR_;x-N!fOXioB3bk5@+2gAJvvUigQ>Q|IU*~7 z1kFPpL;|TPP(k-<>;XWQ+OTZhynXnzE_ZVXvl@k@_NfEEHGEo$X}3Q6Ou|9Ycs>cG zm{>K3R>w~tT@BR>GDvc->h5Q*UZK#7K{~f+?}+=1Zr%AFpTAmQx`Yl%frQMvjhOry zJdz;J>W@W$&n_MvffIzBV`-dd;ejoIiwrOF$T`p9nlAI-qAPOj-7c$;)SuB!pfBp& z7`E6XwR%Zb%ecH&pRrhmo6X&Hrw^-_aM)k~*M|8PBSAn6a`A>6P zAHjh1e{hUdjSwBLp&BZ$!v(+1u(q4alaMrkV=}2WK~10tSmKvy!e}SKWa)tmtP>gZ z{JD5^)KcIN>b@6V`>~pZPvCs|mfzCJ@qg_5cILzD@yC#|;fyZH@~-98Ea*F~2UdCK zGrQ~@BJl6Lt|IQy3%lOG?-%tez518QIp4F9hf6B+WW35Vb)0x`++)>KUbSYp6LyAd z77Az?Hz8OBB()mn{dz3sh8?#q_3GLQ-COmvuJUoUFY^r3dxphKS%r0Dp>IGVX0_?G zNB%BdOxV43pT}fmTvFrdBM<9bqVA@b-NY}k_iS)G-o!}kqm>P`WfTd@{1Q<$m~nj; z*;-X=pO7jLolNYggF+Otyn7Z9(1i2CaO9kc;0mI5Q)@uXt2g}-@w@hZNH^lG{&(WH z=?>|S-}LwNN|9fe7FlV#JtY?gntMcEI{u_gD%^!`yk!VC67s&C7fw7e?gg=@rZY1- znR=Vv=X}Q!4i^{&{pr6aHc3YRlAEYOKtmBl;bF+$qoSm7avT^ZXkm6+EVPAZ4}-nX z+jiZf+a>l|+Ojs>k^a2y9_PkFEa#7LY%kC&t6Un^{Q^&w5od?(TX%Wyls(mD7k=!X zJN8rA+>iH2qwSBC1v;?A9{g<%|{FJ^Ts1j`qOLcgs2+bFk4Emp^s63ikZ* zNApO+qM2{IcSpVB=&+)&6(o(ZNtL99nXZqi-_hmy-Ei~+^*cktz=Gm<*|*Iy@I zhd&XSc-%q&$%zhiF%}LD>|NZo>w|iS)aw6`lo~(y`i%B2UOn|7ppLLy=&5kV!B_r&hL@PPC3 zs^vtKLm19;eDtQ@(4pHNY1Cd>tE!qr_44r-hDTrhUYxkZEmxm-bK*~4{aYQb9hckO zVHN**4aI)#A#q5#`sKV%pr7!q20d6k)p6B(hy+{%$v?GhSN1sQ2g06|>6-!`wY`U> z7XIA8UY>58T;@j?Pv|i1G43nVVcUj{ilOYlk{-VFuxtjLx0^5&+Vc8Zz0p&T+wi;lW$O3#~Fe*sroOxsgx^zZz@S9$N#V>(;k;``FyvhiZz z+#$CsaN9y`mQ`(wnl^8=F&f4-Wv8-+M%c^bL95tiEA#r6QZ9cLM3=wQuOj`6pj{(7(zn$$nm+J(Op4 z0`r@C7K}$Y^29z7BsRJzuR|U7Dt7CYB+Dq=q0Nid#^Mm;oNUN{$DEC!ECgdc$^{M9 z<1Jh$Yy8w>59`2=d-P4S<=(@Sn<0PXTPC1`e zksCihaIs_Ag@`?*AGlXeJgYQFd=)#4Eu&Yi4?F~&AADwud*La#M@bvkprPSEG7SW_ zHf3!S63+2QA}L2%Qf?Cn!3-AOfprWBVG>v-j$c}j@R4RGS}IbBIvcHvz; zJUf=FP2~eh+aG!G=xaY1{_M&BQxELw+=X_vdnx`r+jvRZ^LlyM*Pi_k`aI8f#OFJK z#O9e(%Je!C9X@W;D@j(nU?RD2xxVM4zFgCtK`mu1*^X5Bvt5 zljFhXWgo6RubUwcoqVR==qM|&Q$=npwga|(<<(?sw}jx%^AGI%tUgn9&zhXf<~D`L zwWrJ*E@K8kj)lEvW7BJWKm?X`(#Z*!cM3d(GMdIB3TEIIsfK9)u1#69gfu!T2fLj( zmd66p@>Hj-KhqVIUixaW2xc?L5^8kQAXklQ4BJmB z#6GUVkd*%9vHxxOyO+MKlikmFQcVeF(K6nb&E$LX$OFSypZ((SgF|2Pp;~+#Bf$%? z&A5rjI+jqlU*`qA&*(K@k?Ld^{e+uQ@yN)GOzlj2CmzN~#c`QN&-6}Wj!cZ+t$U~r z=!VWqy`w(TF1|%4Z!I`-@)gY=9qcaH7apGrQ!|za*6pcI3mG@+k(!U|(WGTPM7`+A zc^#@fqVr#m)FFG#1N_kc`Hyq2kHk52SWU|?uOD~-z)wS!*N~eFo6@uZTSjMj4+^cY z){f4duC~b(i!qldLJkcv5|HVg(nRWs*8xI?8uNibPzRkQ`jGZ24xe~NS8nboIjdiB z$h2eA^`*Du%ZRodh|`7aefsDF!yi5Nf=+;ba(IuPX6G5P?b_Afv}wz*QCXNPX`Hm= zFppQiK79Dwz9Mv*=hnugGmC{}lhk;c{;Xcvu}Qz!t5?oD8FA>#IV^(B=wwu6gY0G8 znEZ)4k!LI?=QH`IF=<{y%p3kYblA)JxXDM0TGb8jyLy_#_;b9qA)=W=M38Q`gNYww z(i(k-IyN(IpS<}W=-#i}G``FEL1JlvG<@M*|DE3QG+ zNKT-Ri>~!bQ5LKLbYc|nYIOo)a5$vR&ka#2azR*JJo3U`QjM5sR5Bs~R+Mpo zkg8(NC%RMJ$c7`U%RE(eERf++E~h>36n+WS+9V_#oMPtPL_0kWxCm%F5JYtz*bYQZ znC=pGO$zTFNxWIdp_n4YIhY^3_~qfgeV@{mkdKa(6UC*sn7GGRoILM^IGWpPnOF>KpK!FwWy2n_Y9&jFZ^;y(Iak>Dhu(>ZPH~u?jbP~6wdKa)X5Cb{%&&?N)2DR! z`>MXZ7W)!W#wo8V#y(2b72_39FL-Ef;!y3DFZf2z_AC6$*>cOrcV75&&lx^qxlk&W z3{J0y8mJ;mVx>cipM|l_7>J)kHy@F3gwjr%N*l}X&T{J&o-Ici&QkjLG|5PQ%F#|t zb{ZPOMS$Ga1|k;%m$vKK1UHRwL=|NOy~_sOk^8(psq;lo#)htD&Ee8BTD(m38f#V4 zBtTc&exdWx!It#4d|m?W3ThjvPsX|VcR*?X@v;;?Fvk$FlUfLbSzAi0GaZrz7G5J(Fe7s z_L}>bvf&&S$>^cOf9u1*eh<=^MC^^MlWAViGoLXKnE%<{An8+@-hK+kcjj)~cB|fV z&N;ZbpiA-KLf&VNJ*@lEp7h}wTH5xENo<45K8hgrmA$}?+!uZBD{)k$Z1`k14kdA{Tpz%hH*ngqw8l^upF|G`R(3q06Xrj8g~v+rC5k!Cn{DF{uXO$Pi+`d$il5r1OnxND z8vifbXlLL&S(^@j(+<5CIgCgUJ#ipd9IkEOwA(K<$mJH1?>+zLx-%=prVkVXB<;4Tr^j@Z2n!vj^U$2*U-7@UajdYs^T~*TrXDS@m zmrnT=zTSK z6|PD>t9!Zpp#~cpdx(7!4}Cd9tktr;j;w z==|^#U1j~o^Z(J$-FW~6i&d>xwqt7t6(7{@WCX6FZ@6jk(Vp7t2oh1&VPau^VZ3+b zShT+7)=N)F<+nYLt9Xf1OjK<%1Ja;xf2WYc6HpOfEZ995a9dupFyRm#AP-U=I`;JN zN00w6!{^WZ-thkYpH-sZP~q+DDC+&tN+92S_CF0z9sP+E#!@F>)JtU^7QJz}XW#w9 zM{oRfy(sRMVXL0k+N`~#Q0L)T5*vFs94ftbQj15Irg^o*OM2(gD`#FBj@5Hyc)=tk zN!X_fAPXoya$CVe!(TrAf9oxo|3vTR`LMsVGA0%5dV_LIhkTE|`h(${FZ`kE@B21_ z=IcefvMwhqv2iUv_7H=Li^gDTL#0=y=vD`k5lMQPg{R_Q)(^*7CD@F05>Lhm`_%V% zW!|;z0OQx7_j|v4_|@C~Yux~Q-S77l*IwhFH!IW-Ka}7|vvf=>*w61h$xr z!1dU4l0i15Q`_jT#UNNkZMVF3)GzR;(?qMkS$;yA+1z_e?UVzeeL_zU2Oz=hXTrdT zRxKunf=kT0c(1Ah<%ku%2%t-#!@-#OGue9a{!7Q6(Vo)(KD>PDh2f+7e_i(|9q{W} zTkg-RvG+B-82$$@{^jtU7yr!9%W@p|zPS1^-kYQs?(fhy(tc*Cm)T#h z#d*h`dxtZ6@zzm&P~ZtYMESTrvPgpBN&h2)agrGu*uU~l6N2NQaA$@`b^hnr6R!>T z>mHfA_0^E;b<&t`#BJ1V1@j0ZgF`g-%6@d{uk8!>K5h&7%tX5(dRU@DV==M zV?4r3jLKBMf%2ekhP*-cEvxu&?bzeG)#7leV8UPxh5#BTknyZP>;p`EXz$lM#ee0F ze?Gi--^bVFSv3sdVeId`_@{dA?)x5RV2K;{$|&2OCb$4r_)<{2Bgb6NXo-P2N?f-A zntFl9j4Q)cz}2gkpOB^~_;}P#vmpp_xOWLX2?)>_oSHOdfL;h@i%Rd3B02*jc**RD zrQ0D_O>iZnYd+olm8brn;l(454Ie-71$|lL1A3X;&Y%0*R6gJHs=lsDGWz=S|7kd; z1mR>tm0NU&`}U_#{vUqf|9yKu>GL$a8e^*-b0LwjP*0paGQ6alMxW5V zM&H%P8o31ldFbaMR^AAULF5)?Tr~ZMLzozfd>*To3^>8i$7b%x9If$c~M>W#d-)bV`SZFX_#bPwD=pXMMu-qI*Rd3_CDSEb$1>6Yr@`tid<^ zJaKiKr{a0LB@2Ge3*Ty%*Y%ko98C^yARxc@JN+E%Pllvu%juD1eiW>LjA{%_F}$2H{da zVitJtv%eUvL9|$udMZTu(n7KPgoNqkgacOr=#17 zII5yBogChzldZ>f ze&uDo^7L_?@I9ob?T_l*(FP@+ypu@6P>rGb@T~5R?_@OEC!2}nR5FtI z;=u$lTOUbG8KadW#SB1Ng#ex$Q+N_8PiO_G zgE^Z)4kU1RI7FeC-}32&3mNCnG5J)3s~T$Th)kXTQIlH(cx;3B&9JA#d#b@RQMenL zU1@kW>im${%|m4|s`hU?IQ;S*|J88!-jA9N)G`V-@VOoK>fXKQgTtYlpB)}iQsQj@ zPjN4j?&|d4SPaW}z zrDYZN93R$usCY4)%p=U?f5-O2;6=2n5nTAzN-rP<)&V83=H(HKb2{g<&F4k9a@AKN7!z(dm>~LDbm|mJ-!h81@o&IMnC{m9J$jRQ*zS3k>o|D4#iEDuE7)`ae=w6}^>C@Zy zU9S%`YOiE13f6AZg1&Y0d$p%=t1k6_K=&bi-7kZC@x(IlqOfDvlu`H8Q zhC3FD194^Y;!KyZJ%ceeMGG?|O#ZPzO5ZaZXvNm8j<-Ihs4t7~r2I0=A>9UX=;YJB zlihZdZHzs$$Y#rUk`d?D4(zyl_~^~QHhg&huhiAox!=pPlw`!4K)?LdztI)eM?EG} z+!z;hCytC!2og*8=Yvo__BgsL9`<~uar4Mk1SGHA?4-@m^;&cdrIYybV$hP8o{&5* z9nh%Eu5-dW&gM!CiUL!73>0y4pJ39i1;QQ?uL|Wdx(}~*-8Edl^(O5F^xOLMNn<4- zE}OotSI8dLNodZK9Mv!7as6@oKYKu(lsrMDAaw>Dz2qjwpRsU>L1jD!6kyB} z36}8*qSo@WYF^uMr{2l5e~0!w^!cZUbc5t0I(NitLx_dWZp9h3@U3IXJnxA*!bCGA zClgFQi_(ArShA~b3o;9m^+LCG<8_MH?S9LpNtU$X*|np*YNT$4Op?r8LM8Kv z`-}Ey?!0&J{Ypf?JiKe~hkf;LNhVz&78@RY?fb)DKKZYQXLPY5ajl7^DpQ^xW5x`d zsnd5#H9?J0f7KXbHC?=ogW@ldJvU@CAV9TLz9-E?^5)T_Qs&o3q? zrFo|5kX~sPEYIe(f=RYxwDF-|-_Q+=n&AQcWhP9n9Fw6&UW=*8t7OLG4CO@+y8Ft697G zs^%Ql_1kau3FBpc2$I+Q`nziye;A&N+NPFM$+ID zo!&DFQroh_w#g3omsysdkYqgzC83Bjc1kfJEQYYD7`4OA;}dg4pos6#m9S4A{D;Fm zdWZ2Iy+^ti6eRP)rFd?7+%@RZawQ6$IXiOd72kNsl?+Z&zi{+%AD(UWZcrIvK{Cpt zKbNX@T!=j)=cM@UJMSGnaO3AhzBY$yD=fO8%N4Afue(zpTRiCRgx$FFw&5o)e?zwp zJg&nNzI4hjChpDsl^Dl(J{Z+De5OWVFfPKilsT*y)JRxJ!hE9+*KX1tN#fO*l zrb})%<)Dnib^PVuUcKt~7TxH`xjz0#-phP+r9(BZxtjKfp0E6p_KbY7!SgS1Wwj90 z{6x!Q+GB8OOcD23TCm`a^5B-XVl>MB3qA=G3z)EmehQOQ2M>RvzH#M;1S~dJ_7Z<4M2yDf(uzN7Z`G?~Kd5s@%laPLTlH~HzgdZi z6UV!ixNp_@ksrMDSK3?pt{zq41!crJad(_ybm-eb0E>%(IC$);&R`ZBe_inw#x{1j_ee#;S#Ic7(y_SV! z^uVES41fLXztbBUemv-!i%M)@%VC)zsuIcy=!mN|!QmDZnV?mhRh!w^vW5UNcvSj} z&*}GhBCoU3=tL*_m?AnzLym~0mE|QQM^<*16LySt&C)(z#j{R6t_h_6bwDgefnnm@ zuNxTe)ngc!`fJ83XZPqskMH05nc-G_CH3IWyNB=T#=xg_8J*|3JX~e42Tpc(g7V0^ zue~GD+;ZJr+TH)KCOy}$uDrrYdOp6$Cwgwsl`UTN@uQdjMz=aVqbQ$!<3p4hzna5# zjP}YT)A4A}d)R?D?^sLYo^3ZeW^d;QrFFcSdY4{$_rV)JD;xARTqPr3{>DwF_|IYO zbiVP;NLxLcQ`%$WHjOVo{crNXtdcY{o;l}OR@*s7Z6}Fj1+}#@+)lDtv?`JBF(UZk zoz>RF+Da*{n%lIp4pCo{x)I_4(_Z3sc?l^#%DGA~>H|vhp;2%-8q(fYzy$APKrC+E z{a$^(S~sYz;#1)qGVqm)`w#r4_L>e3f2-G%{7{RP=gN8_j6Xg-2$<=?;pVw5eok$# z&S72Yg|`Xtn8uDRdz=)${rn&MTpD{VjBq+{w16p{UE{qSD#(H{S!jj9< z6H?_PyJ3G6JJ;pB9fwE-=f@!TtXCwsDs$id&zNRe8xC!5-+k}!OSk`1od`XlM=ri1 zTXd4zcEq~Qsw`4YUvp0DW*xF!ZRI*8qYvs%Z>}=&>Foy&e@$PdJ<4p1D;bU&C{^nB za4dr&rJ()*b&m7G059 zsK=?sO3+y3JYV7ueeWIlM;)5ERdhPoH2?u=O{t$Nsx2#=opfM>xswrsdq<*aiX?;Y z&T=+OPe@~Cm6I!-TbYsZHbIoLiMn}i(+S93I@DNp!M=mny~pe>2m)*omhS+l#_bP0FSMF>8XF^@9^>37y`Png5}gu zF{NUu^Ousi_8t;7aZF!SvtN0OFdHp3NIDKW-RdJW0z?rQEc~I#H5(Q7jQr2~gbmS% zb7P5{<*%lS6F!iA-6g=Z>}mML8I{%=BXQ!UqBA#ng^qiQ!G5;RjpR#p}K8-vZ z5Sy$%w(Q-qUtcS|cWq2sq84rhs&)9ef@W1TwC{-Vr zX$sln7pUHvsXNJUy6#=RcdXd2*^0M+{@~D;hrf98|I(qq4u^GF8<>p(%Mdf|9Yk*s1#)rcsV=x6463SdjAv@Rzn zTCKy-)!i)pkj;@LPV%geQE@$iPu)HOOS|9|BwnSu)F@c%wBaQ8ZF)1{Zk=m6q?;+Z zsm}TtQ2D~^R&Qi+=?1%Np^%i`trxlRE^fx=$s<4Z^Iy5*BG2Ws$A;mdUA3Ci9;5@2 z5d;oldTclNvOCYN^@RhITw@!~lRf$R13v%AdAXO4KdDpKiC?C6Vu9O^UHPAQ1?Z$B zK;v`XC>-6+Dk+$%De5&aK-9DhCn0RmczEE#-IT2(o0EmMv&l zqo>*ywu+mjC8P^%w3mWj%#jY{1x%2i_dOdtvCkEuwJO}`$hXlbE6v-cM8*4ZuC=mV zhgJ9JA=6j&{vaN)c~!6YW#V3H;cjUT3wb^7wN}`xd{LiQ`qAOP8Gfw8v*+|Nfpfgc z^CIUKS4Ogz#2Awc0K&i|xN?b-$yCErxrOFMmz5E3WmCGWv)k~`+w`$>No8pXscm*$ z!Nd^~jCYpoq&EHuNhYQ}W^P5h)QV;Xuz z%e7Rvw}=lTkc@u%%J=-JisL~t>R@#oaJ=SGP(-jx_Kva^vRAZ_fW+8)O1+mfu9F@K z7+OJ#t_;?PYu-y5N3h08{p=HAi(2CK`Yc%!u5Ddzy|jchnvH{Yb%fZ}Bqa@vM<=_7 zP}In&FHaZ_>P03MZ|3uQ|^^l8Ah+ zNHIz^JJ)9?d$VWBuIs$>U`ptinUpk^A6pnC9VOwt547DUnqBxHt zDH5DOf*??sYe3C~LKWce_kC;avoleE2%_@Vt*X24%{{Dnt-bcnlbL7WR8UXl>^M{O zI>p}~>3kmYV-EByd@w21& zp2e*myEne-FPl<&IBK2_u4qo{JB=?t`{zEp_?Pqq2<}0&tHP~nAJd`u8GTWiv$dHR zStNV7K|Z(kxYi5b*YU7|_ni18-`1B+n%^3G?mRz?9f)sN2s4P46z_gFs=jgrl)Hz;GQyX^@t~2G9{KQBWF~u9NeC&W2j`R3!XA^+NJ20N$4yMRN{G=Xf^JzUI=Bv;A|I0Dm0g`vA z%URC6bjsIuJ*QtweD}bZ?%;ys&Un>^v zB=G>jtNYawqijPfiroP8*kDX6m=;Agt6&{pakFuSyW3J^;p%UsNl7|etUyL)1@pB10+JyHd0jLly0 zWDW4&!`gV(^cO>KOXjsv~C zW#=1GCQC-kf#I}*!c^i@f{Rn@xMu`NzZ=o^=9Ha2!R2U))Ak?HmDOBFbgvSJCrNPM zZ0@6Uk8YXz7X8w5vyOQDoseX5T0hUVKcO>{pF8uozL$DL_t*Y`;2dFLTc$E|goP@) z@$v1q-rb?S0eIc z#0PXQ_g_2xFP1Mn^Iw)1^~}4mCKUs+hC(d7k2oksklG?3P{BioJaee>9#uj0(T@P4 z7Ct%8hGGuU_+uOb!fm*_7J>rgp$i^fa8kJzSTaKfwCo_`L+w=vn*iRNBqRO^-;5Cp z`(-b?-;gl59B`Nw5dJ(Nc2GS6Ei%LCIhc-#DsxpJ=SWltMaxFRyYd-b2zypXN<7Q` z7JbyXOD9p@r8AG&kZ!u^X1!1IPW`erqZhsToOHApn(4SdNsC z3vXzX-AxIM4J!PWU7{ihgG_?(jg8EJ9aOvDklG=&4oZ!)DG`p|2=Fc&6>UZY0SdL5 z6*>q?>xl?0VmVrZnm=wqdswFl9A2K#Xp@a`-^-YfeiSAuVohzmKx-cPdRq^Hyj%AS zy8bpK;&a!n_v>i$?fT{HW`93K+#H*lPtRn{4d1neo|~~7Mdk+D6dN=eWK*I|-oxgJfN(3(y=K5mXFeiA z5)GB*k<&*$kUHl@g}f+7g8Q?|055;NH(zRFcOsy`$jdE9R{-w_9cV(sSlCMR#%zRP z07Dxb3KV!XJW86MX?d5Y)v1mCIXdT&h)Vp;nIp9}F0E@-;CR>1$G!~P9) z>bWiIoi#h(kQ}>qS_ALU0D;w^BGCT4+M7@|CU$d87eR-m0_p)(Plf@|48iJ)Q}j$S zB_h=K!~(ZgFnV=L*eJ+dCi6sfqi-_Cr6bp4;R0KJzUT2p{G_jtB}NJC2npA{LG$44 z@6*lLc6;3+d2zYVLmQ5~PKP(9k3R6bx~B0LNT*Rox6_DLuK}-4njj!q^Dmej1tmw5 z^7t9bv{@IHYy$DohQtzGImvlruKd=R^~9gop*62ez)*uvz2<<4e9y|xHzYh6lU9y7 zwm97g0q6_lK$*vVdIV90pgIAesse(b!)fpuxklyP#v_SXCo+ADwTQu46OV>I%*6pF z@pdh=tNDy$eEL}nN0hhRbZbtK9Pvh)B1iBXz{H80_}{AwbXmB&DrC#ybBFw61~<+h zcV^g?!Y#R6F#M7Ge`k5?ZEs8Jby{}Y^ct^u6ku%+&PO1maPlvhaTLUw0N0z2G`TD4 zRujGw0^I8%dPY6NYMz2a4s%wc%6-cQSO}R>1l8`a+5LA&GM*F3h%AobTetY-egP6} zpp@+6^vq)jRb;Ku#?rzSOh)Rv!$fAXRvqi)S)?aM+}I*1nJC&4C?XEmS(w*r@f(7j zCr%X?#uaSx*^lwQ{pa;1_C5wvJ^1_j73??lc&FVz z3<8(==>G9{{DE#B_^h7i_vbo&1Ul#z1Zt#L*hVd%7e8@-EmPd23fVwzwiDC!Xe znvM>^6L2^$B=km4f%R;5)M#g1Nl@cnT1yxcX_-t+O`aDSyO#B%Z^GG{OrmWQU95`a z>#63W5!d!{;jtr1AXOYk-BHs;SMl6*(=C296c66qWjXiq89izEk>!N$N%Vqllftc1 zescQZ<)ioiPde@61AFph6K==L0}`ImbJiX^`LJ?B0T@ZEE(=@<-mT+7swIL>WxC#E zlz&NO@i;#VE&_`*jMb6xnuiFi_(SPjmL@Y%sT;vwZ=KCp0j<{`T~k(txCyYaerLKJ z^mq3b*2cE8IH}iq__~G$=NSOa=l|_`&_>Tj#a3VU(VUQF%H&>r^n7;dI|bQo)@nbs=vKH828+G{UAmq<{?k>mVu9? z);E8Xtp@`|V-va`lFM4}{0OOScbjx@>IF?wCIv@=c0MIxli?u~rgA(n4Qtogix4J=n-bo6UOC(JmSO6(3R~V< z;pVMA<`qnXc^$$DMIS`0lFYm@yxfDGZ%FpMtnQsSlOm@bZKBa`DL^$$$k@FLN#N=0 zHQog@9FsK3h`ghB~xQ?K)VG>!4{Xymfw-N3&8bOI3jsom)IOT`;-&4 z=d|B_i3hRc{G)r{@-9E}XqPd1Nsq;PPIqhMXw9c3GPf8-tBK_MuA}D* zp+&G|Bo-QZ9F0OtcyyP1tVmac@IVifisZNp!ycC1Z%FN+oEqKiA|Cs_qMQbwZfeH; za)64j;}dzJHDd{Bq$GLrCmzooc#|gJ*_4n$GNc_M1_S7q^^xVM&j26z>!fr1{PWA> zdR80P{`D_s9h$_CDR{+?$>x4hyS^L3aXl8xkH*rGQYOFabwXaz^>l|{JhXi7X>Cf! zcE2g{WR+ie;J26e=>qSY^c=rFSIb{&J3nJvwuG(zly}6nW7<@!SLr41)$hEY+ljd8 zvc|~mumHCnX06soR!cF56hmq~PC|Fw-Tj6%J0M5#5a(A<0cz;z854YEeDCR@$tDtp z3RY$?5jIccnMPFtpHao$z-&Hr^R7hjDZpDxPX`#jJv#Z)3%X9Le%^)nIw+jq^Tdho zEsvl4jy?|Qnm+|&#Eb-2{Q8}oEBo))$F+{zuEO)&Y3_G^QhL{qkDk4r;BIBxQ@R@j z4~Tf4hc4xM@M-CDj_Z_iJNPmVU zFvOrfCDAjarY)0J!F8}Zh_s%NIf7Oo3BV+m$u~`y(glv1@R_DG3TiuOvE!WXw{+_K zi43oknui^H|AjB=h~ybU;4(HGg)zy^c{w*P_vp)PZu_$9^32)Cd>dot+nZsxo@N=< ztqkEiFE-Ohj(x?O*e-43=j`n?u5 za#q~ic|JA{a+sv1MTYuWXVHP4?v+;C82(ye@SBd<JgReQG~b>MMq>N8Qq&qZwq zia_=z1lsTl)}U=hw=HO$aOiq6!zwAoLra(Ng9}{^XpB*7J3`2J7td>f@>BEmP+rhS zqi^dDnvb6NrtgD9Oy>AGV+p%H9&ty>2Xu6F>y5j8nCE%jsezATKK+16U;;;Bvh>0* zw^)3mXwNO*Jn|_&Lv7cm1H45SVE@)T{+Hz)cl_L%Q?h8}(XcfgZ$jXmpmC=A$=PgF zMJ>e2Kgw#E$Nuh|Ift`<tFyY5%lGu%%Re0XJAHR_)G;8k#BXjLD6KYb^>UwX=D+K! z`;VS`YB_c8sMK;2B1tn%0rTH4gEMzrRQ>$vL%KEb-z-P<#k_eZw#(gp`&)lrXL0|b zPC2+sX%hn-GxA6UNavj6S(`wmZ{fn%n-g5=BY}KGB7)X&sRH2jLoB>b0zrZ;h`QLa z9$ksZ^d?RmksY$JW(&KsX7?LX;+nYOpT<)R?O6FN--Th|2C4vC- zo=95vVQc}kt7K$NEFxztnQA*J+?uM)09P`QbfGq+b36XkrcAhE4VOcF`I-N^eCe4# z(?>Pk9Z{thP#fjA5kLRk;9Ha2$K4@yNyRS9GiQFhoYKwqUwK&@5_8SVb6HyH*SKa} z2<&`$`O)#O=^pH#)eZf2`>~r#jDF?*-(EhVFS&1e`6g#x=aH=>uUPzLXZMqf9laIb zkf!%|sC)X?4JAqiHyLgEoeY*a_$|pa29;>~C(j@A z7o?%Mwrak#e(c1zmrp zfMp$6fU4qWIIqFga4@?qJ3mv~<}(2VmN*K~Es=1ah$J?qgC`%^pyowU;2g!svK&Lf zMK-~8bRAfP68@DRy1soww{UyHun+z!oh0z*)+n)rlOum{v+^8tacweoN;Z=~t|mPsJ~XFVRjciBXLeGcGB)^TvC0|Lk`xx9#xZofyMI z9Qa=A!Yg$ySml-Ho!p=dd)vxdaLl8&h9fUN^@;|1Z)=wX|u_1)01^Up5NoPKP1_ROO`&*-e~HQqmu zCvNfEp{QtNo;0Yp(c5&p5$=7&xj4Hl++6?UONW<>7cb;UfQ8!=h+^i@i!bv}-SbV4 zIVLXOJ^H2PAzkiq$31uN^dlyB7ya;kzqS0}=vS8S9Q|U#RW`>qauCB}8#a1ewic;< z0vE67)w;oV^3pL7Ol{LNtYZS#yb7!nZWzFnvfd2gYh!x-Lb>a*CmRwmAEhETJL$gQ zX%$ojhd>d)ny5=;n)Sw{lpLa(#t0`%2772S2!}# zcVZWG`2{zuzp&{1D!wP~*om5Azun7B^n7&O_|E7aZAN$As^_*9kI8pXainql#eAV1 zU9yHeu$`)yFY7H^YyPmcrq+~4b(HkIV_(*zo!;wP?V4pr6<_v$?45t$Yww=ZHBOPD?0}xsfVNv?&wW$@+oQ54 z8`A6xF~mVTN%k;y0IC(BKdwOo2}FiU*xhH#vX%u{@MRQBC^0KzT{)*Lza zw7x$&rk*xiCr#$87aV?-!LhY`#I8&&4}{2R06#qb)#aD(|7UuN%-eQ)l!R>`c-yZp z|NQ*_w*1xOf25<*)OMp8L4kdBwAc@e6LTz?`Q8>wruowrk@!%{{mFXIb zObT^+9-_ySi(FWO3n=}DgEqc&14w1X#%L+)5pCNJ8OUXq839$$%e z&o`vmNpCU=kduc%d4{^ll1S*77!w$oNgPuZh7#;Ia{}E$tIc}_M4mRG(}pd{ktC5O zsfxDfpzcJ;jV@l%8QaH}hmU?vi{x-b>`~2kSUi93Gf)1>@`&!3c!pbWXk*ANIIx=6 z+Bgo5tKjyze4%f6`=)r?-E7jt3%py&q+Mgu;~V_T+THptjr(ZtvheJ^6E7Xn8v+;c zP%yT9wO^}s;Jh&Hk8HIo@<44iTm9muBgrRDa(&*>l7-CO74BsD&vY}lU)0gk&H66S z2HFR7#B$*$#rh!03@Kr*sDQE?R!*UQQ9z=CXE&y-H z-n4tWA#FL=AJyWj0wVkf5R)VXL8GPa@dz@3A1{bS;mIgCf``sXU`otlL?nBIGt0zh zR`D=-^eq>A_+I7)KYQ%)1G|oq?1c&vIF#%BmY3yF}0TZT!Jij|Ql1vVP?MXv{I0UFyxJ^>Hu!ILH zc!Q@aO%MRCR}vn`4Z7FPiRJH~|8M%4{1AYh7QE&*tzXfFqL1kNj|&%hxTUNp`)nch z1_(mESlxaZX6MQq^#@Lz{$2*Wpl&n)_7}R|tO^Gw_s_mhmy6u3bC7mf*ziy2UQDMI zZ=DgTSJ@rwv1lU>8DkMK(40>`(e(zUUm%a4f6nJ!jmuDW>4aqS1HjMS^EM*S4?cYhzCB6VR+-@T(FeFNEMhTrJp@Kx)!Gs*VO9zY=0UHHoUI+$}ex@qpZ8j*3 zF=>)K$rA3yBZ@x1Ry}dzJIiOD{twH^7mtN`M>RJ{`{L7o=9`Yar0-KGw!dRxiwsRH zrf|e=)gwkg^y&c6s!S{%J9O}X_GCZ-U)r1X6q0*yf2Zz$wA(NCdFUq>`SLwdjETMU zhk3*Lo?#n};d-qlE;sBIT{!$TJ@hd*o?EGQ*W)D859+yY|N4FZmu~3x^S%ynQyV^E zUt+xaJCDN=FR~i?2q#p*SS(;I0*3quZawSZ3BWW z+}ia!M?UXME$Hu}oYHMizOLJ&e)I6(=)TrE!A>^iT@(vC4DBy%qGem!4+h=0i=rF; zRNrrplG&S&=*GLX6(I!L=zXgmQO-v;9*?xk!V%1Kr=QSKp-xS(55%6rn+EM>9O72R zK~1qhX!F}A9vXT~zfL}`?~=w-LqfIFnlHIOeE&aR{^k4r&*eV-Ads-fBNX@C+6X%n zUov0BAE%10=TJ_Xs#?ntuH)n$1S+kGcC1BXgew|`Q@60YZ?4FOGZMG&Rwfi{@;H%I7 z#qx!x|3CfoetGXs$c^>673)`?`*Z!|{elnsF|FT4>CXuqPl!=sQ&~zxi^pBZ8ZTUk zo5SKNA*^v9Ax4hK*sPSbe2>G)kUTPb$cePeUZ2sWB1d$EKc_l4?sgIbyWpFwzz-GA zlW8({j#tCg4xi}jD3^S>AK^FDI@Ja?ev{QqG8v zmmPGok>_Bck(2fwGE{gfJkXeenDmVA?q0TgejXCetxjj)ASoCL zS^`F&0P!*$M)d$Gv`4NF3^YNSmLz84y&wSl zRXEwh&+cE=Gs4bmL;9_E{jba2x4pTKG5C1$+~MWxx^2c+pZ%mSnMe|0hYh1rAAdw` zv#0n77Aw`#^$11?)1Pt_5 z(r1vLsW+YET1|~7h?uL8gPCkQ(fLn{Q`N|?a!@SsnwoWCDV9OsR2>Vo%{4x$gnZBH zE3zTAcg}weMo`r!UIfK~Q^x@|yfL8x;RNf<63tvPAw;}|&_c1wsr0N#WKo-7kR_o7 z;~#y+J!F=``0=u?jDLRlvK|`9Q+kuaJ&MyBAj`)hi-&8spHV;s+e09j3*11Iq^e(x~&Ba)h+o^N(KELlvIW zW^tjPc4Cjl%-K%ILhi5~_fuapTfit&yl`8t0JnRZS59>O{^76ad2SEw{3#_iXR5f| z=6!d6SZ`ntC|`a-r;>brdG6HXxaHzdad=QhKj~p-5yp~bVF*V$8KE7GW%~DDi)j(2`D@S7ib_N z(Il*8>U%OZcH0!q)#J^!7cFfxF_}zMTfNeoLb{n;&X-{$IdtlW%R@TngVqI zkWV07IWFDfXZ>SmpV4(spI?6P!dHFoB{sJk@oPhEMWT{!M&e=$)~=Y0V!xBpgz+f! z)J@fW2}53Itz&_=uPkr5>2BY0WY^cP@iYI^x{KH8!7)19oDr+!%3~ zT>=@BZoFt&(my!<<>jMi|CKg{_bUo}`%MO$&VBlE;A6TJ>7loMLMLqgz;n-~Cftnf z)QiV;-qdN?%IPIH=q7l#>8L94zvq?*bW-Zw_UE{cs5!Ul?1j_zV0(6PpHd;Hd|m-# z9h&OOR99|8nxfS^G{JVb)btuKgsMumAO=P2uKHwPXJKb#^D#D^DrhtWlGH9xCAE_t zlI9VeX~hT3i&+3B6*wgey!(qz2RNe*>3ho&B@`FpzW2@#>GjLYJKy?#J-6&#x+=bI zZ)%o&2lb3D1L0aUezkkz)c3Wq9m_d4l5UgHX}iRPa+mHvlm2RUjfa)xw!b%=LA{6WvjTt|Jd25{rwS+JJz&zbZw(BaTquO6PEUU4IMOo z(}7V5c_kDahpH&GEl;|OH> zD>ecVO9g6OhrmLrdQZz0+mO8Bl&fR&nSw%a2ArUhSsf(WgjpaBgfplDJ0k7C7gP65 z816AyNCO`!k=?W7#1*C!cy7l6S>++ZClN~CSzUGi#L4e3&**j@kLcDOck26=J8rpi zx$TBKmRq$c;nO+2o4vT4T~6z?0lq6C`8XRJ^*JlN+_rtOkpyd3(`MZEd!dQnJ}HRy zQ~c1{Quixn_8H+u8V}6?%Mj}etKh=v|8Cv7gDn?3L?|kJKK35pFR3-eVbq6gD*b%!KD)7oM0eW9~sru zMoTLzoqN?>u?=bV*L_vA9TW%5IRU~HP7!ZZ6&=453Ky(n8yQ)7PP(MkIumOTeJf`t zZYOGwLl2#L0%oxT1(G&$(r=L&@i?59^~>Ao<#~Mva#&ZHv&r0`BqFIO+>eN4gU(4O zM*M=mtwXQn;cLah%o|lWKx4bDBbeeePr-~4JecqRtLUeTHY;zcrUM?>ojUjEPTfa) z*M%>e&*>gi@d<6QWyAr*MohNwMQ>=)(Wlr&wb{HDp9TNe@o(w7vHO0e@BS?GGFE() zdm~@6L;IGS@6Z-;Cy?pZbFuLyegiT(V?G0)ZTtr zel3GKL)1D<4v<2rpm~F0yk?}O5a@8nnyOWVGY(2 zfeycnkyz1TZn-qwJEXKIktf@$q@+w#m5 z&eZVWa~oC!)+;y#RHJDD8&>{=3~kVd2R=$e=?81SJ1eKozpxz9 zRr%aht$mz*X~pqtjf2NRHoWQF4gv8AA8|BqG_UBcnO|F;(Om#8>d5tKExfHgzzLV* z?M?p4Z~uxmIi-ksjva%VdiN)qz3%Rh4GFJV83aWUAt>Id88_Tea9W-OS11^=SP5tdG{;XwCdH>Y8-0BgDo>tHBzjN4S#5!}E)y z1Zlf;z_#IgJl;1Ok~g3ZiUQW3YaPT1o}E4klm!G*%O#nbjZBcpD>$o^#pH=-VQMwb z)I6* z9T6uU*@=Dg%Q0%&(Y9ZhMMPoZUnAR;C_A3W)aG!9e&KnmzSQ3JFKma;J>kyQ5K$HtvIKL1F@4u&q+$ep z_X8PqvqM>ZFKCfxVMx;qw;U@RRZBOZ_^cMdB)=I9!knq}W(Np-vjKOJ5d$Uw&`a9~ zHQ1(3>$pmWF&Y@E%2MqhFau0;({hWBknYk6gm)ltr-i#H@GIoDKLp;UNqcXyhLtt( ztl|Jn&NYk*Mx-6kT^jaN$iCtmQt#HbwUUBnO&TqThBr{y#IqI>fiE5)#+ircgHT1lyA87t z-GQien$e2@d=>-jp>?B*G2+bUg&bQDy{Em$_ zqg2Ws83f$^*u>aqKQy*mZ6I{rADxoNcqVrL#^oRM#NKC5Kjxp@oAqjGU(oqWKhizl zIsGKDtGUHD;zm_|(-=lT_d&Vh8`4G?6umw&awJJ45wN2-+%Yv%ryfzHuUd4VvL(T2 zLc^dMCE&utNwMUT)C7fT5)FF+1jE9}!Zru`oB=Dpd(E%5$M9va(pqK>@wYK%Z@6uU z_O62uf#rg*9ckvxvw7Ozgb2gnPaH?Qkq%PappxD;~P9OQ4PK-RE z9|WAzL}LW1BGhr1VlZ{DsDD>{Lz=xOaJ)-X==YJ)fE%aEtwQK1GN^D?;Mtb4DG8&* zHF;A(LsnBdyG?AzFB;OyPF20bG{?I}T!V)U1(a7;wOa^5$U{cx0?`jbwyB!o_6u@dcPrbK3&(3Eb^B-r*bLb6=lbmLs}^ z=F|m!529c7^o#=gs3tbMbtK9JFrfiD;$ARtlsTsDR}iW#d}UoD4D{y=u@|I+|o z(B&^2)t%P;-kp1%x6I+}T7_%FfAIUE?5hpQ0hy8{;{dWSvI!aP1(fl~p&*h|EI85d z&hHkS7ooSRwO@E<$C@mRiWiVTL+Akz(m<;xk-{L&ca9 z(rPuRalflYS4gSRwX&2Sz*}DReKZGyiZ{$CM6DRJY2Ty^U4OWI z^_frV#(4E4-%_{V8otQ>)Z_o}@{{A=Szh*H@oYK}UIXQqbExLs6TZ(J*?${SC(a09 z0R2&d_+@h<*23u@QeG@eUS@Uns$W^`B3W=J<4BJX) z{SY<2WH_Q*?v}|dAI;L&I9J)0Q*q)d1GZBm%gbWK%P3wa6;bXcC z9}LYOskWZVj%6MjzAY)-JSVKq+6 zma*vz$EX1FVrolS=mTES<4)3Mboy?f^$*FZmVi|`)Yc9 zS$c!6mEv-dou8qto0J`W>Dinutys2=?GN@gY=pL*iZ_W<5ygHX)bYa#01N?v&vS-| z*2R(F`IpWve|zZP=YHmTCfHBTaIn45BppetIy_y`y2ij zdOtM#cS9m!DrvmKSF{{V`UF}8kaz-2+Z#a`p@pK8EemW-a8_V=p|2OKvSbN33i}i# ziCP28ZdmY5m(?AZttf=;De$mF;zqw6>=t8M-3)8d1#A9J#va4kZ1h_c>>U^SCaT3h z;EILKF59^v_-0*6{zfkNwCp!nozh8tr*+%fo{F{~F>Qat%Cv##4cUYcHA6X{`-PW5 z1#8+Sjh>ERWW4a=v&*NR_~Ye=$G%>-LMa(nu;E62pFi}c%irmHqm$ai7rkMOBHvjb zlr<*3J_PIlnqvP{`*uSjh#g4Bj>SSpFA~ zXwB0wwN@aBreQ2Qj1Eu3y@)MBo1AESQM)fL3hzy!Pv0g3w`{fLaJR-s4Ggxoc?J%X zR9Z$x>lii)%d16YywbFn5)zuWM}&0y4S{Q;d>6371Y^V^x8#|T$vz?GK2UuunYs?Mxp;B(*jp57HgfN5glSI+d7I-FvM9!wX+WQ z3)%2~_l~Ajrr6g44}vM(W)x)&>$Y$e9gmPdkDHyg*;-B84+dOro6=M>=jG|2*R4hl zpL^W*^076gs-|)^Q1G^`=U^D$<`n^N4kiW;Os|gdYIT^1i*fL%n3q;BKI%WC$1(lo zPyQeMlJ&y!>+kqiy4}ZJknLIFBiiHKgzc$6T^>E6Ywoy{WK6AgYkkCW``qyw#=Z(L zFjuUzZ#SflqZ3HsSvMaxkZdlFnkPdrlFUieQSQ{r<^@3#v+x@C7koJ|X+BAK9Eu)n`E4-O49BkRaq)8m z+M7RQJqKZdDKHE0ycys*#vqR1{@WA(P7kjWJOwbM*sPoDfpr5 zWv{VhSWJoR$;*)x@(~8o)h03ED%se^NF5eyHay#6RD`)MT)=`%<7{7GX3I<&d#c-u zruDRmgFekn35Rh4C(vhle ziZ}p?3I0I>q*!_bp*1DC!c_KIKy;hJ8Zs73xUwM3&tcEdF9__6Cz!j$$H>ApThy)e zHMV)xccZE$q`g5$Ef@Vn6+Tw&qVV(ebGpL+rI&LO`j0LPq4#eE39APrJgoX$p)Qd4G{?t2PDTr|ntnoUn|6pW-bHJeaq z0%zPh1*rvKi2B1e?D2SO0f-QqP)1H`9WDqE+l6mk7F^8s3tTuYrSS|Jtab(uIIPf> z9Qz|e52cv1r#U0|opZmJ>S$=3`+IV8{nNU!+fzED`y0>wtsiT|9UFPL12^Qq`9|Hcm>&Xa z&Jl!u-?CUXahV6VI^n4yJTm;y$sg)_qKADg-^mvbFE72K8`NPDb1E5dyS912{V$lP zAdyUgLdygSMsqck{k5 zMQF>XUwEUMw%X7@j7*VIRpD2*6MFXCvu7S#-ha~p_*^kWjCBudaG~Fe?doAr}ab?9t?Rxo6hrGOngok z6Khk}2V?!pcvhPfT3YF_*sA9|H$~+a_6-i%t&(Dm0ZSIiJd1KdLoHzU=S^u& z{@B0LT4l*cPru8LjR~{u4-WFLDrVUph91*)zd#-XqeKyVkLj@AiEf+KFL=}Poen48 z{X~yydg$Iy_>n!^yFluxV}# zsd=2|30ry`52LhUqeZ_^Y)t31nVi3PP8-zm<>=Wb{U|K#=sz;icfr&zW;|)l*XyYV z41L(LmeMCceXH()Td;j(J^@g+^#(C^St3dZgI?4VK#9pnF_O%ZffU@0#5Av{q^mchw$AOAUfYCB z!ObI4y)i{<^r5%ZS-%&fdhj$H68A^jb_VVRi_n1=d7BKp`a$2QXU=_JSCoH2&zO6= z9)G$KiDz}$$Yfnm0uWpKFC#`AiqJ6{PJ|_IW|K1t`$$GQSWCjp0h=FK=Xn2`L2LNbfT zV$e~n(4`w&O&icvQSa^yw_UsM8Hy6;LFP0Yjb}1j1e48h&DTt`Q$jeWtYN)hE_w6}&ipu3EoL}=4U)<^mBX+rUmmS26 zBcpOZeQ*M;(aIPwrQsb1J21gfkqrf)s0FZE)bu=+9X)@Mn)wwMjNx(J0T!69jYBSi z)gqHW#=55pE#iHo-YjMe+#+fWVaDWacruL{TTlov2?yLZNRX?dT(uigCZ%Fb>%m=$MlreaY{k!#gMY2kC29KMul+OudoEyaWG%;5G%)v*ibso zYUg<>aLof73g#fU_{O+l(J8QsXi9)Los}h<5IFKduN6f(XgDp&1>Q|>irSw&81>ieDmX zpD-Jm7Gbs#XJM-EPuyK;pvux}yx9w*+VZXQh2k&{qla8zU_>ZXGa2iKI z=)*=orROv-Vr;r(uk=xvjb^lz*CkKVJOJHb{@wjE~Vgdh9BzosUNuK*Ow38`y0!<@BE;jPhVENZo}On59tf-^RMKD z%gKsi8#V%`G`?Z+w=K7|rW>&{lX&HKVup}Nn`zQFvH4Spu6G0joF(cdH;@@{k2P{^ zqOa$qTlC_|%u^%7+Y6CdMZD2~f2lBUhAqXuAP<(Syyv{(AT!f7&f2Q+-=*8 zYYpoNI(CZJh+X+lNC{(RrGTqK0U~u^ptawDAb$*3WsZFXFMY_x*!r7qun65p_K=1N zt1^R_6rXBrisZ~Nw}j314V-0OebqIwA+dOzBt7dIxXYx1^8lcxShMFb6AxS^O;Qv& zoe0n-dx4T)m0+|6jB2H;O`|Ll!AP+ZRS9O%m0-}6?B0Z;dd9E1Nb)SW*lO$AHjzbx zX!M6K;2i?Sa(a7=WSb4b!qN;0D+8oOlPHy7gV|1Aym)4L`ply~dGb-+B>x-F-{mKj za6;f)^u&_eb#**vE?>~y7tg+QYB_!Jgg2$LFY_H#*(QB$JA(U2$bHkqpqjoxYts`r z`6F4?PfX#)&w@)1KCie-!x6C-?2GOSf>0Vq5auIrBDaE!MdN%L*vLv0;R&B-Ofp8! zHhs&cjiRU?oFN=*A;YV#zWO($dCoPbnMhiuI_bl#0MBOR88xOit86b~9!b+_7vZD| ziEK_MIRZnEYz@+MJ>lSqd{`{WR1&w9yPFFFqIE&pG(qraE%s0{vCWI3csw?>EsotQ z+Zda!1lr`LL7d^?H&_H-EP#xwaq$Dj3<3@4qUy8y3IE)My6#Q58%=PN^hXHa9W8nx z$+E>q*&MxkTr&}3)vp%^Z0UG7{LLj3dOmCxaN92JP9kiKPvI*^vE9K6-b7<8nie)G zBNyQ@hx)c@;Nz_bqR-yD>zqw5y4LTG!~;kyEjx5ArAJp^d-ZQfnMWrAQ(NAz zl7UIgQIFuBOpTo;C1fNCa7eODoI=7umDE5G1cHQ6E&UpFYZ-xg(F|f(3r>QHwHJq2 ztj9pnLq*k_6Yy*d@TmtsG%C>c;$s{*!UHd98pf|8aAQ3%ft77Y^`>6Ji=%~#PBhKb zH0Ti@+-nFLnKP1ALu5H%Vm%xwZCh|r*H}wxp9xwU(6Ew0j2dTEV_d!wGn1rUV~>Vt z!w!n)X~++3bxzVP$fT-j+{4xjzy9o-`yuG~CI%6O2;>_kb+Jgb9m%*iBc%9E)*V%4 z9>c4(T)jX0Z$;c2%`_qIY7z|>Z8jrXW;WxVWoVl3?{iuB+~Ff_L0 zwKZ?ULcZo0jEN}xP%(MiFilRRdj0*)dpD|!Z|UE8F6xMFKV z%oqfEB*Nya1D(ZKIB;lH3@=&@(Mrk2gDIjbS~!{y{7eg{^+AJxaJnu{>Niif(5?OE z3wI<$$7bE5mOJPtJ7?Rv4}II;KFzIt5^=YPqmLzt9pjc^X~N-mYrq%!;mNE7mpBU5 zMLfpPn%~Nt8~rBe79;dR8)Z{h?20AO`QP-TZ*yWpn^vPW77=|-)Yr_0efg_Mg(5=wA*RQwL6e$$a~)`=hsga}%62vB@!*F=UmwiXP1 zrd`{xM=$iCt%i!C7M{S-A2_g%1KdCvwiShvAiMsm8=v=|}_-JjG-M+Q{#v=)lj-@&!9)n!si&c7@m5$Uf8RIXv=ujNi<*ye6tTQ(!*MiY#|LGNO8!Drd-3tq}vZ9yHyD zbsDLvTL0=sKs=7b-lQ_By6B;^yi|i^(b@}gsn-L_7v zG;exCw1->NO*~pE7kbiW9GYGe5nZyN6M#epk3GCXn?Br@W+1%)7+RA+X~Dr`imG}LS>VvjD|7lwll^VnRX%+Y>r!i;kDS{v0$adq~tiw)^j zljlUJ#3ffqlFk`r$w(65LMN@6U~gScN)oQiU^PibPEJUaQP%IIN3me)o5~eL>eztl zPa4CpS^!1Ex;3kKNMa|j09hz(N>&mc)LYfOSpkbTd~XE7U=bJcz~?AQeZ!ij97~GK1Uz=$1O2VrNqT6lNz9fTVlb1dj1ew#!c)%hm4LBT-Fzl(j72$woMyO!&a6ISV=3T!v^6I z6L4k{t5?{8}$p|C!paH$zPLoNx?Bas|i40~+bWm<3h| z<2Q2=u|ShqP!>}`)Hs7ITV$vuqZoG|P>)N3Y0wtYC9@5ptCywQh**3vNsW7x1c5b*wf$P*qUbjGUcA1@qj8DUyl?5G;Y zTP(W4v;}h>*#}TyJ!mTNl>bAH=$a-R*LHnvA0drdy~HFIuJU0eFr0)V36%`VdU8!A z2}c5wZh^Ql9tbaZNTN_wLLmTIQz?5g?8wM9(-C$655(;vl!xsE%M)Sa73&d8HntS$vhLi{S*OwDTyQf)!stc zKKhZr8He_bwq-$Ek!mn{Fo=J3`#T^R0P)HRy-L_5LwLVo2}TT3kc|~Zc|qd zM@t4e?v9AWLj#O%D^Z(`s?}$_(g1Jm-C9sV5vKpr#UQ3cckHwX1R?6WF4y)E(rZlZ zy3jiDLO9?`3Ko+$5@ioLVjLZkOMko@g7F`;7E#G&yqUs>1QJ}YAqNFkBDmV#tRQtU zuKGx4OmRbnMzzQ_FpB}WL5(jQG-HuBy<{SGaC+0R0>PsrvY+#wJGKhfUTH1n@)7)hzFRd1`lI{0IOu&&@g;5zU2ZAKQUv|ahdv_FY}3~@g^%i$)+c6`Hc)D5Q|lpRYH~j zvJobDOb*j1hKY@2t96Dw0Hq^_kjS54e5gmj~AEw;;4XN zUVGA;(2y%+T#J131A`+0EICq9dTmdbtQT6_BUnc})Uk8e2C!(O^flsOHc4t7v>i+J zGZ%rihB9{Wm!l`LD25(SRZ_+oaO%1k2ZUnKw;-jH7 zLq-!#0mL(6Smcq=0=DQ(lNj{86-718rxw|Qnwkwq1M|>sGKnU%Aiy!L2W5@Gb@`?C z>i#8ql|keQOV#PqFl8F=daMU8F8ZSLJ1~8is=$|_D7}D+PI&XG?lzj55#d<~&Q|l5 zEV5VQe2ggi)@h?OVC+7MJV1QKG zb0}S=$>EW0$r$CKaxBDRt;1H04G7&qt-FdI1mO}9P{KG*lr7F3l3T^e(+Omnz>On0 z8z(@es(1oy%3hRc=;Ur)meUJKe9a5orDV}Jj&bWm0Xzd>j^KxKh&2#hK+ywt^?9~UIM5Wgs)pdujnG&P^kGO1UwYom)gSPh+unp) ze_Os%rq^^GN92GR@~YEgA1$>$Hm>%e2^b%g5rKmZX@o+ZPVy;P@;!h6!jZdubV7cU zoFKaHLwm+qIZ8lyYSeT_3u?|zQqu@#nNYx6N<9=cV~S|n4l5`-Kq1wzq6^-Gg3AiY z>4gV5T()M|&Z8fcX$pq(dmcN9oL7dD?<6$udL&?yJVzVOS(2NM2e7DOb0{X!}R31`~DP-9T> z*7k*Hq7Pp627UZ2AB;o`WBv<{S{HzMd5-Xlu}f$fImT-H$kr61%N$v{Y3vR?6SPhX zutahK9O%eG1_QmoxdotN#MG+0Zh{b8-{oLKdcFDY+CFU#@>l!N-E!5cn5SW@fFNI^_EFnw;I23D z!G`ox%($0>lDU&D%cB+vjgpkcuUZJ%Y(mpWQXOghPqG54C7QtQ^UT}sL zPw9(x)y-qZFgGlq@WmM*Dg`P<0hF8-DR3_^=)uo?F*0zWQ(i;Y%x57Tksx~1QdXa( z(g75m^kYsRU3A+UQEyTm9!oBs7!D-*68Clvxq)McsV2T)#98ESX1oZjvtiB9&Iq{; zYSclyEC;``{S;ZyN!O$sM;StrVB;vH(z$7ze5#z}N>UePGYOr=vo42hL?kRQOHHqm z+p-Wq#y1R^8vCPUq;HMOK%|P+GQ46CF^yYZL}yV+JO8b3=z-rWa<#)|xv~cJinn1y ze&Kr@%IJedvd3luj&Y38fX!lx7k0E9+Tv|{y-5`wGbjzCk86ThzR2unbV-)S7-SL% z9WMtEuvBLb=N9XxGWjx~TlNh2LB|m|I6`_Oi7>4-*gRxS&>@2hKaz3*fD3>0jB8P8 z%o+l`E;J-jinvl58N9MUXu;Pgt0jv|&|U>Yukd}uV1@9`FnCn3g6bc%vwWMP$}+<`WH2;e+oIMm)fK;a zY%^d%KJw_d4UF9{I5a9&Uo{x>Xxy@Tld?#2AO}8G5n+ACYut0`H<5x*7>Zlb^(6)UNV_M;S)G{%et$8OtNP^2o zfv9F{@@#IKc;m34OLYg2;VTbA&yl3B8~-L#@T-0s(gJ03mZF!b{4R;7)xH z!-oxiSyz@F==n&ZKi&X?)`h-}sRhj9!jTyUq3O~xgs1uJc=1_o@j_=l(^r4ui}|a5 zlT)eK7i4;{ZY1#`aJ+Php!5Y}2#0M{-;kDN$w0#Ed6BZbNx&#Rp$Z$Su_+!G`oR1Z{(5NI@S$^44IHJnC0Aj;DAFnHa+zRUvCDY zfv5Qp1>feF#b5G~t3Cw}ppQ+7M#JJGSopg2(6Y^mJpow;ax4#BQ4xOnLV%;j1YQFM zUyvahykVT%sDM?`hPJ5fK=g-`y7&qQ&)|!ZqCm>Zm(5GC zid|{+CW=H#HXtNH))b6lQA2z*iUxtvV@>Xt9T9<)sB7cIU`f!@_rS_>REw(CJ7fT? z()0|4zZ6N69<;9?frAa{_2ctXW0TOyOebVzW%^nGplZ?eLUQ6y3!rJb1>gJ_k_A_b z89x1iXOTuTRPZ!rlP3#1_|#d-J{oBm5@cD7twRC})_S^S<#r#Q=EH{O1qRK~>i){t zvXK=TmZH8rA4f{TA{XiCD%;&J9?9-_IED}c6FPjwgDzNjffrN9+*(Uc2%rI97DSa{ z!UX3|Rp^?>2mLn`frAa{4TbBC5IeP#oR!Q@YQW0aB!0;&SW9<8vtk6N@lrsB#>fB> znsB&J*R*MSQ-U|twHS+zrX)wE&1q zeN7g9D?N1PRJB@|2xLr5T6(0wv3@+JFWX{V$q-#kY=+X&y23x?ZpjZ*{Do2f2jwzF z;9x_#Oo5!mI6=KIXJ{p^kX{=s5(sMr2BvZGv4EWNji(hPEC|UW^SCyF=3z0e@QCcK z#^Nk1lH5hDUo3G-*WJdJd6Nnxc$RUNa>huj)byVQgh=KogY#@Ltmf3@Y_HsqwU_-iGk^Cv-BBZ?)Q!5CX=3!ZJWI& z$dWd)D1bl*SN>Wa1dUz!BC~PL)0)iTL9Dgx!J?7+{YAHN2vTu;s?Ek!62)L1aNcAl zE^sg-lUAk2Fj>ynm{!_Q9@M*xz`=&J%jj;&PSUH+K4Gl8Y#a?%H|W$Xj^31Lv*=dA zQ2DsV!dZNwVHvTFu<)D55+M+L=0RhYUD1mIK1$jWUa*F?B;-YAW6U~a0Bs3Pv8~S> z-UNzLP3(>xsE(Cok;l-qrASa8K3dp#F|N&tac^MbNa#{9Oz2HZ-Gj1s5jfb8_Ab_| zCKA4iyGnja`f9yMH0lLaZCErA%8RvImLNPvWl>rl0xi22Dy;gm=9D=V@&Z19C4Jh6>FjPQ<+VUU4PWjxp(gM%22v_<31 z$8d0zY0z@uZ4|JH#4HEZo<`tcL)z1DugaYFmr8zMy+~LoHHOneEt=YSjO%xNz($Ql z2}ki5R>}r@Zzx%W$hHDn6(3ckn@vaTH)yr89c*k)C3f%%nT-b_t)GpEzHmcM2}dz7 z$h%JqJul;8BQ!4HktSh=nK`K5glr?crVS2(gQq|dU~z%W^i6Zn?pXv5Hl#fZ^`@d) zQ!B7nn-F7>fvp9?LIx4OENlRUE+*jt@DlCJ!;uEXvRw~OL&rjfk3Y9&DM64mPo((! zsv<#TZ4Xjk_JvFo%?Gh;mK@v02tIFg>4WFrFUaY@u9uHqKo^NOn4*D&5=}LNCt!;) zlufB&E5i&q=wHDI9BfEeF!&p)r&Z!^jlGCejg1DT8hew00NUo)7!Y;yu#b2#SL=^u z#p5Fo2y2I+>!TyLk?RenHVyQ6Ly3wKTy$a}0GI!Y zWE>?Gt~jjB-y1a#Evn(8?>07|%6!0}0njw`DKosrh96Y>G6DxTXxop|;+5sKm4(=g zibDexufJM^j18>{Fss(b2q6bji<+aA00(MpG^-r*vaq!auyMfBI?Z3YdjlHBBQ1O4 zE%BCPL%|_Uw6?)r6bM?d-e`Lhv;%N8PrNIGg&oeMKZeMJ7JyzWe2YiJgR(y&aBzgQ zKjz_*R(Ju8RkV_9!?mWpW6<`|&bs=-mqoq`3lF=2_kwM5GkMD>mfj@TOTv>)uQ#}8 zQC;}vHJ@N?ZZmGRqW;!?2YIcTqF1P(T&D;oZv zO}W?HwD7#XRCU`@Ll;7hRPuR;wrR~Vjv&0zfP_UTAIa3PWk!k6taQr^ZNp7x9)zes zW6~{paL}<)S&p>LqZ1ymot? zvvE|v4;QjIg)p>i2I`qED;juzWa>2@TF63cU47)^fp8G(HI8Q>HKXA4i@vv?K{stc ztq+l718QK?wM-KoRM$!b4mPA~WhN&-ymo5=&wWT($Lt9kM;b<`Wv3hAD=qztxq6K^ovz>p4omqxengZ4U#z`=%e9ZmK>=IW(393L>b z+TxyI@R@fe5q=^GW(K^@Mm38$=wDwEIM|S`ulat%-umF>Qb#bCg3Z#s;miQ_|1q8| f@`K^^7lHo{^fUc-sLU&400000NkvXXu0mjfZ(?KA diff --git a/docs/img/premium/sentry-readme.png b/docs/img/premium/sentry-readme.png index 5536ce52fa15e0b9e20b3f8a7f3f6b6df3fa9759..b322e37357a0bc12bc3877bbdab7faefd04e01bf 100644 GIT binary patch delta 23585 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%0AS2K9m!XFZ6Z zDZZhZG4qO)-y>alNA`Zr4dxsv3Mp#$;1YTXqZ&7e_q!cuw_m8SCW}y5{CWa8j68!4 zng0flE+h2AO+W}UjO}x#T^@5?evVH|^7E82mY9Ey@S6#>Y?8n+k}pJFE2_{XgZBh_ zhx)+up5y)k94Ma~zdw`Yz)e>qgIF*kO=kb4en?FMwf}{=m_&_8{xyhiqHZnJJbIQB zkEcyHeM{aASoyx)CSFS^$-d@BsxS@tVB$+u41R8Px3NiJXMu9vFs)IB?fkc8hzY7* zwIs0RG8p_0Tk%aII7QUpyf`=HK?_1%^Gb;ho}T&u05^_?Z!&|3s$~H6D{Lu7=!%3R z@WQy+#tS%(4`yip8mXyS4@u=u-UjE!=N6r&ueLcRo_~F32 zP|+d|I4!+}Kg<5=>bgVR#!@1Wjs)e1h=7n|hIhv$Y`T;j3+~QQmlDH9fs3$)!pUz( z(o;Ff{R;TLALcygL9jf%ku4rj+geGhvFRK(evG8cq{T_2$XsOHYuqWD^>|2^!133k znQ}L<(>1&B=k#esnt+CZ$J5RIuj*1fDb^IgfgvVv*#Zve2;!kMwaA33eSwPDvH1f69&VWeDcDri4KBAC&XYkY&x>k!TjjGOPD%lcbon&jDPO@K7I8fk1U9AqZQCiaHx3yeQY4PnAJ|GhhQAwa6gy z{^eJvHkhnhU*p$azwtw+U~&;dvO=D22Gfq`JiF*V4;+}0Z%u^bK$>aCFa{T|PDp2d z$KxAyTzhJlqKb_*l)@}Wy2%N-&^qfRHvE2}!Q`%@0lCa`iYZh+BmQ|&D-`Aa=r&kH zHo3t^fPR~PCA~A!Npw+wnYaKD=qP5)sm)=`txX-y6af^p@;mq)i86>`px9z+ufKWx zlZVy&tTo>K-S4;N&s(_tHGydzJDTdTOw3aDU5_9AR{dugTp8Sekp3#~*vv4baq{!S zXb!M9oA8aeU2>AUWx#3=Cs*{#?OvPmH8L$m$xR@T@auo9 z3NJg|U20q-GwiPJHNaKDrrl3=RPbG1{_$bxQ52H=f$z&pp{>v)@^eWfP5Y);Q7^!t z-fi6LO$_?+q!~6%K>Yg)85{vSSs0|$#N2QQc!iAlCSG2dOE8Q z^VdYMs-dcVQNO*KwjXm6Qjf06A=x!-hyV*VB9xtrL7xhJ7WjLFd=I10w2Z2GOJBNq z_?EB7SRojk?s`gr)@w`jydR?`WQCuv2w1nw?1wA$iFvHOY}0uP(~SJ$QXg6#=^!Tnll-Zn1Z`UoNczdsrl~DX}B=@s7ldr z`dO&v*y^?&4`}(Zk1n^okQvkcd_DeDRqo7RX)wf&b>w#4;XLv_{Y^)_F$RG*9-I_3 zb@W|ootBmE^ita|E@Peex|CTHV;51ts)hx-wLqgks_hF4W$+9q5Au~0Tfffw0U;#F z#vF;Ke+aYPv3VRx3#~vH*eYHKj{m19=ndxLKtBCd2SD;9#~?gFr(V3$+ibF$xEvkY z6cyC-$_8iWn$$*Y&&s*kq_5WbU?ra<)mZXg=dnBNEKEo)+87<*^)t^Si|-{B+HFz> zw-zZPLqj0A8s=5!`TEOK?Z}j^SAi={@r2)Wpp}m^$^Ls6SK^zTFGIk}#E=KlH^pgl zQo?Q;3;=@+Eu}?BAz_56G_g~}btBscI6VG62Z=6IhSAs<)pG6~&fd6(Mwj-9?G!ik z6B0E2!}g;&E)5TVh?ZCzV=`8+N^k0?17s%K>9ISN!z!WEf$8trIPqAf-R{>h z(a%1`PMcP%CNJSa7F9n^|5hOfGjHzOnEAjwgrJOZg?J`>MO1OEg}oKf1s1n|M2HF^1nnF?0Ng3mqjl z-sM4;Bbdxr^5@$P)QLJ901x~>^bW#PcR2W1GXDk1gqFuv!x0)wOu%UO{s1pQv9Cq$ zTGo2q(k)*7yUn<8Nq2KXY76dASnfgm4%q28oREx|*J?A$b@~9-$6(@m(osRxa>coy z#NtSeO$`3-9I#D@ZyaoY%vv{cxaU1=B~=t||I6JF0u_;<+oV65aRYdnWXi_N?3%ex zZbLlQ7;oEkHs5r%4K%H9SfN)oy6qM+_Dd0I^1cKwmHmAyZ6T^7N?F~NT0bR22WV3I ztC7B7&pWCVp48{J=kEW#(oEi=5PO%4t&9L$SaE+lz4)T({AB1Dp@5w!w|nSD4v_~N zK|T2=OS<(55+BXm;hilG1*nsOjpC|GapC^`68?u>XPK?L5Jhzdnx3#xSzkuJ?u&WR z-TpP@(YvTS))`tw;QZa^vsCRlfNQ|#a5ghffGFTfqRdbX&-OYUsvB*qDg>*n=~8;s z(zYr@I_)BisQt%1)ZsFaKv1iG>heN?z!X)GXE04$Ya-`;Jg=w9O!etv1QyOQNCFep zK8z0tO7M};=WCkm8b^#J$IDR*GqTAYr&aA2d~b$@IO*G>S5*oNVEhUIWQ6?|KHi`T z96lf9UD$-cMe$R~UD1~&ZS!}3L<-lLWCEMXYdPiYUGCw>i-5^3Z;|s4655BEzeFgb z0ZzkS5zWrZH7CTH2cU#VEl6d~{@<71S9h%+94E|W_(HK5F5BIS+n&qN1Hl7?KLpG? zGsk^PmU~+tt5>hl;GygQ|7cc@lyI5dc@cj~k);nlx?DAMy#<4Bt~ma6HL+cPO`Q7n zv|xpd*FO0|g}#Oalt1#@ZarL3kCfSMT0`4?(pJ@6j==q*yoXfOC=+@wJUhSDv;Orv z#7x_*af?3Te`r;KywfVBomhs{F0(H>^#M zz6?f5)c9wZyGsupJ~xp#MppU1KYu8zI-HXVDQ4VBs+o-p2TRr8gWv>95ngRO&qnQQ zG1x?6yU@f55pZ#H$%k^X>!|FXof5#=I=qmr^XJgAQdK()gITh%M1+SeF0;3^Rg_%p zqE4%>{5I;w1?zlf01tNSNgY}v^*q(97B*2AS$UfENVFn_adQre!>^Gp988If2svbD z>3FO>i^Yf?>R|akXbBp~C^*{5n3{?U&ceX?j<|<0Z-j973_u4Kr&Om2H1y!j5W!^G zwNMm@3=cI-89_W~R=ce^SdNs?5!JxDqbnUJf!8@xEH#z_DA=rWcXW3_5!3XODrc=6 zR}94vdiJLZ)s`{$H}<@VfAAotSpsCWoQV7SSc7DL34hF;HdJrB4=U&TN6CNF3DQb~ z(=2ZL-?ZVn4JxQ1e_#_Ch2?fudg`A)?y2B27+lmjxdeLHQco%b49mcq~BqWF(Ciq}6h zk;%ZIV5zHGs`@M};&b>O3Mq=c3bkg%o_hVgGwkz4P$-cf|M9X89xiE<0%=4t->1g- zgs;E00{Cm^{MQ(vg^wO^eGKZ7h05Qd5_ZFoVK<|I^8N~_$Uc_j8zQL}KlpN0U1{j; zV5NYupJnFHJ85Th*(e4lghU}RKVlf|&y_@JU=+s;o zGtfhm4}%$Xv2kF?%{wIqVgJ`cA5YMU)o)7pKUa44#_qOJFH5g9rdUitHnKR@RO&rm z5zKR0*)3DLQHf{YoUwRLVrygSGZwV)T^6te$tx@0O*0;X&%;_MvOEN{-V#`lH$x3_ z1hqzYA^ zl>lti)p+8kTjMouus~0hKOpsM<8=ILS=~w zL&8c#hru(Q$?7=5Ad4%V5!k9Vp*ZQ9+b6C99QeRFipW7qzNpv?V7@ff(Qh(*IfR%H!>8;>CN}H@i*BO{>G7JQ?ydd zU`&aOJlSz>zLFkDocq5%5)nVz3v`!L7W0WA_3{@YaF6bb+^28>i@-yF$m>LOXccDC zq4+9`6X7n&HTr1-7UW7omz1VNXyC;O$T@|LX`_;8wWg1K2Yl1vx> z9;n_a0=Gw-+32s$5;{!EKG01BFT!Geg^p{X^oL1+%Y*$TvAMtr62Amfdv2} z3eEFp^xCwpL z7qrES0p@(P-mh0Zxm{>!^gDyKc9LJ@2_QRB6!*{V*64yp{*xu+pThWqQ7oUC*M=ZdNgiU|K()-f0Wy ztS~Kxv>Oir#fZR(?R6&Z-c1sCVck1yRJxHc>~gOL9*)Jsy&!F=c2ddas96L?YFR>% z_iTlvtk#0$@oato(gQDiS|SEs!6qD4Ck$vM*izyJtKKIax2>mlxg?=${}NFv!bL#h zG8q9jvbS(N%vxQ_6<_My`}UJvAEvuqe9(I99T%{;%~kx=-*)yUqK*3-<|UAp)8jI5 zGLiiEURhy&6Q`gqTh4uo>c%sYd{~I01#9i}&~KPwqB+f;>Sf+nBJH#WnNMOI3~pLw&E`iz$qYo<%&NU;Nm;M5b_1l7VVP39?#?2G^byNsjd zvt;isWx)A#v7YZAi$7omq?ME0ct-k_HNr(`=$#9eT;INpjfa;WQaj>nP=}6GmnT=h znk+1YhVzkES^VN^{XOuo5Z%#sxM;5RK(iCLs}Dyy!h|M6hFyL$DlwZix=q*0KKk2E zxrzi3GotnCLHtdAd8l42hu;K{-@K{2D9pBj5p^`O*jmhazS|fbn`PD}WF=-56B+(A zF=Y@Kr5Gt^d5!+AS@b$xMXj-z!u1#DO5b7M&O}kwR`mh5KMCZtz0CNGjk=5VN1sdg ziPppp=Y3EKflI5LTu)r7tN$ssGjljicCx?@&Q8b5mT(u1pVnWhbRq(fFr;k0I4En% zg@d&`2}`>2OUHu)|A2UU$d@^L>6JH{XWIicI}m^FTy#Ge2hSLbtZb&K&8<+yWX>pO zXTV9VfBPLVLYBGxqT2LXJ1zM>#9ibgjLU3%N&o&<4@GI=>7tE-5h-9w{dGzz& z7?;(#Su=wiaZLg>?f7|spopT`qJ606ECw?krq|IX_}DJraqSX9n+2_s+>y?#H?;1GQDP;0?&| zYekG46rIPxV>2nz4sGPzE^fef>d8uv9>F@S{}P6{^KPV!P>eQUGG88-r3#lout}xR z!k*`;`=c5C{K*5?*dw`TPpYikR&pHICS9OpR$vQYkd}Nj=Q_+SAM%R@^|mWPd};Xc z=C8btTjb<9u6bNg*G~A58`<#60EOr5)4H@lBhJL511?#_yol?O0|LQXAZiVUnX4W1 zKw<2jurigglUX#NdRP?2_fsI`4wf(Mi&7bdy<09Mh|G}}PbNb47vx*fLRWMAL}3hR zZd(I`1ZHb^bHL?u#=q60N+E;&BhdmK<~t$(K<~6hXPHw>02i3l{m>##Jq1KwxO5Qg zr!W)3Rv7bLE{`-b#>J$M2tH4h(OR{ufy_bl#JNI;e%XP{PIeE~*42Vi`w*Mc+ z%*fMPiX{*b+`kgS0!r9Nyam)sd2{~;Cio%Mlh`+XmpkFE38Y{dL6;dog1V2LvZs$w zfyf3rjYbk=Kbx$rNo6pO0Nd-;*O|kQTeJQshbIq(Ea+9Pqea|Dg>JI_@111=ivTpp zQH0PN{df#;mUxUL$R;<{DxjKt#`hDePC=4b#-+PsAB^i}iu{)AgH&CyzS6`bYMiHf zF<*ydUrPfCUXI9+5efSre3;>hKUb7y_cOkNYrC_4SQmTU1E`N7agSS&?ZuROO}IR3 z_rs$NV_{ zJ-rV&r~%bv`G3Wn)mPPTwDsv0*dQp~jWp6-(%oG@8pKW4m+l5hk?s;UwE^jnZiG#D z2-0jq;P76&m*@KY0c(tT^NjV(u|9JWN_Ge~=suJ3W$=I#mbz<@Y4)0aRyp_ zYxef)$8qTupHns!9wCLgkI6IRc#i^)FN`(l;y;s0d67e0E0rcdF+7d|d`HilWFKee zv!KD##;t|R!~z>EhAx2-YR^T`U)NKRl)$f#Ot{*mTi#{Fw~1@U1VB+UVF>2ob&V1= z5(o*C(_jjuo1Iq*p46xkaa@~N_|L;QGi;Md*>=T;_;F;Llz4yQ8QyJ(9j0Ov!!I(4 zw{NdtC-C@-Y1rZKEV+1f;n?|DXxwGvaru|(&6b>VVN4OH zeX(MIAu>p~+>m4C;NRqnnU(5?4jB*P`j6R-xyHFQNdWPC<^Ny24VE2q5jsWbq1DnSnfW9`S0>FZ4t!={>9 zy!k~)LqO^ch4;U-VS6`XSWwhT;xxrtqNA%N#!kpmlkOLsD$uBI8E#jeHiWk@sc~zJ z(-zz@2x$hNd%%m5XNh^uFfN94-OC{V*18*(or6$p<2ADP*}HG|*+PYI0)Ky*>CO_D ze;T*NmIdBUr7tW{d3D`&I2hD^%;DnjiDCsNCETy+w?FA8AI+EKK*kVO@vT2K=D*M* zcI2K<>gbT6yn>vnu-3KWf+d_c@9hZrUdT|QVl?BZR<*b0(hB>-s1-|g^T?W)no7qB zap|+ptIA$4p@REtF#)!9>idXjE9BjUhS3?sHh?~nuFq4R+yXZwL(ixHq|D2XA}4axM2SIOwW9u`Bz-YClE(O8!u7UyEx-^Pob)jr5yy{ILMW~ zpTSJZbfzf4c}H8n_L3{H=%q>x;U!JF5#|{puR3uahi&>#G?h<| zCilCS#YX8CBOz(@KOOl$Et4d>U)T!0qhW2L?{2;sC&~)0oj&A0TTTy~^wmyZ1BA_d zQK#tQa}g?#sD^_bN1v( zn99#bJuF*7C+%jB`Is?VyrI{+lA2%d)9c>G%*znd;k5-)M17ewBR3 z#b=u1YzGr4F$AL@&gee+x;NH-1HR7({HX6U74Tpx3|F@xGcHbBMp4^3=ZWzm=N$6L z;U#cHJnMLYyc$M-oKz?K2$2P<@vVolghjV!&WzL;_ZXp|2Cv`SZka^*sKoQ%&1DNJ zpLb8;P14JDITTX&5m4?kV}N_Cyjtf+XlYp?skL>21TtvXmA zzS26pj{>n>CYKgmZEF;8p2>lu=z?<|YrC@+2a#CnWWrc9Rlv*b_mj9z!+*K=SjfMb zm>GB&B7!@uxRc1LFdcrP8IcUa) z=jYWQanM=dG&@x@TZ%^=+6bxBOd5LdTNbkoz9?0*!$umY_xcXdyV_u*)qM$R@;ibG zG#h^uW_iP^MsGCu;Y_B*pabtgfbQs66iI(1VGJYM;%VrvrtPsG`5~jDrAK&Syd*z8 zc8+lP$?XZAUXz~7;?$pNhSlQ7DduE7qs^YH@lF%XTxbOrNHL4Qpf+-zqC4f3#6|Gg zl}0tWKN6i<=6x36cHkJ;WvMN7;AkPEEf!5k@F1q(czrHOu#!8CT*SNV*H&*sQ`9?f z(8q&6fxGaqd+ zk}>MShOzgUl=?)fU*F}ZfwJot*ii9*pIywbm6@26RiU#1m+R)TI zsZM7CrV$7jjz)1}Q}+dt7-4o1d^zX>)Kag- zOHGMplS^+cwD7aUufdOF2mdKtv}68cU@4z9@pJ)3AvQVjTA8Q2C)WmAXN7#N$rc4N zVowHfQJIN6Z$6`Eio2hx)=qK;e!&I(>o2}^DAHRthoE-E3WI(fDXCuUFYau^as`&P zvJ|-udi=Z`SN*peUi}Bx2s^W2MrHo)DofJIZ^s`@O(2?wq~r?2F<7H1UAZ4i>>RIf zc?dAW0FQbQd;f8^!JAo3v!}(`1@04cvKLRZ;_}seV|4Bxf-*&!(XdvYzM_f6&Xa2kovE= zC9m`9SLT<1x&1|K)zH^GrYq|Pa1#;qv{-Rr_f!bDsQD!X| zWrKzX^1Y5^_F;aNb!L}vNdkKGwT7*D(qr|UyTv{M^~QF_!4m71H`xjdHyBT&J{VlX zYfARkv;*7tF*-aWB@~nc`!k?H1;NeOQOHZy7juBdEtTU)jMPZ@xK{l+GPF{O9`I{} zADb59Igv&m%0~Jt#Z|lFZ?B_&l(r;;QL$`_D9X&Gf&Y3xvzC{YpA9sCP3`$AtPqYq zoE|Vy1p0JyS_tB|u(}#XTP-47?+1m8_>*Xes6#U*3mC!yfXDUw-rN8$2wC9+< z0d4rjn{A(%GqU3C=lDM7TIgF*1VBoev)fqhA6*X7o`$e*i0re!MyjPR+6;p@%DW!* zQ&khJ{fVmB&K9CitMI)8naAp(Uh+QIx7^hSKe6=h`g71|2_oBe-o7q2Z&nnxm``Z$ zw#yvOj;N*@#N0fbhI#hB7PKT<%_0XGY(0svy4k?j@Xc+c*$@$07}g!dnK~& z6oLID;qkPiB;=|ho9uK=B zY9NRL1G^6XQ@c9C(XZmZmTabap?+r4wUmb<*VME^x!F`v~kS@*%xl)44&%ZE2GZPzQgx zG>8KVTYhK&v@Z8%SOMiSo~W;mIGi?3El@k<6;qq(sDj6pFj=J)pMH&rA#aH-95$jS zyh)C3#NcbGSzN$YjkEYO_SLjZC<+=CXlHPXwjeE^zCF~Th2sPu%&==lY4T&Iw4K1E z@eUiceL~QV=+SmGQuNm}bUd3gaecf({6v3$fNngond9B|R(i_mVj#KsqbwZf4iJ8;rU?V7w@qC7+%V;KC0rA7?x zz15!QTJqeyW~ByBk>)IyU0;#qVj*-mUjBZ8Lw{8ZhxKV!p#^4)OoWDv4Qw|x-54TS zV%Zt>DK_5RT@|Y@nI!b?T-pC3+wcZ5%xh%N`=q7QA9_=GQ1C2xj;kF4*!+rRp$1&6 zA)ofC<7Ij28iom-oqw3Y;fu2zg7k9n$PQ-UIg9v8YE=dzF3XN@n3A&05(gEfZT4g;NX|k`r;LG)z$=_b037ocDP(B%a_$ z_SVz$2u{O}Wn{hs`@g7QeDF*Ou~Cl~9QSv>Q31cD*03WpDW z?&o>;rz_j1#W9V#o<-YIg|LU>0%Z~^)~m`GDDdNY)Ax>ANYUn}i=OtW9DCUuc5`h<+COrD$2)|ybkc!ajy^3&~aD96_{ zKY)mSzCe+m1!YJT#4`>iN4VGKR z{43Dxn4wa69QehdxPoGrHB3>{XOE*awwatMZU^kokBQs6+E4EBf(r(LXLk#vmemOB zE9;B-K{Is$%NOj|yGCAEoYT}16Elf#fG2$HJRu_Yfu>^#p<2AZiuSoWtkt`HvIJja zXSH{Bf(xg~f>I_k_R4C*lH+3;2_H;2@DX8P-T=Q&T!%`TKhx)tUKY5TaqR6QpMUsq zFqC&;S5$hG^1PwO3f!l_=aeNT$Ia{Vvve%#PzG~l#bu@O3G^?jI7y1=#V!sQ0Y4Wx z_6FQLA5?`Uu~pL9D8XzRU+O8zi{==d!|)f*G-m0s(F_gZ5))EOli%@Ndvx`@jr>`` zn#sEKF?=J(!Bz%gq^Fq%@vvJGna0(6kS2GS-Rf<`;?=Y$C0E>0{~ z=unql;hKc7FO)yH`EvuY-lJRL2Jof2RK_C`x%!w#UXA)rmpKoSK?`nVOeUwGkLr+0 zn7ph%Qdsxjp?V)BsXe~nTtv5V+g#6UzO3c*aHKks>d_}jJ&2Mo+M|5VA(U&!4bkAD zD!5zpHoGqFchFs0>-{OFR$=@bw*AP(J@ke1{aczgWLqgYWI^kicQ|dwazL0}NXemY z(^6+`k_B^y`oG=MF?zEI#?Mb}n ze1gA}2&r-Wu%b0;Eo2sYw7d@AKJM2mt58PGWYQjiP_^v}U^irIuc}es7kR0y*B!JL zG;vJQAknWc9lZElh>*900hLW-VE(#sn}RG)gc@B9RCIOz+k0~u1HkAOcvl4={bOhD;?Fcc>PS~iJDMAYSW z`WF4dVvOm^nEcAuY#UhO&lz;~1Y_S>FZ9DVRaJ(Y-Ea$v+{x#Q*$u%B&t~hVYJlyZ zLnm+5Iu|XP2dnXLj*-k&DiQ5lG!1nbZuStq;Bja0|{LCi&nGwH98dvOIUR2#QdHuZI{AiTdeV; z`D4a@TVRKeF7DEM1vRKWkv0EeC@>G@c}T5$WV$rBq=*3BB;03S@mWYYn`wBcS-o;O z0t?_i0>WYziR8%mDsFor7_BZhw~@tM@y^zob#E$?$*cqfMuc~XmRq0s zqI_UAoc0LfS6aPALV{r4ApQKpbPOqr=O)%n!1?K>DeJCxUiV{OabG<5mq`KL` zpm6F-L}~YR`r`Xk?b(+*H3-QI`*)QRhiZ}qxko(|MYBhmHhd@+B`E#!Yx1uwvGP%} zcS%ju6M;YBo)tt5#I&`(zHG0{3L$jgU#YO6M%i84;=7d}P zo0(GlT8j&#?|&p6$hUM0=Y)9oH(kFn1=}6-yvTyT?{|4yxDm|ayBJNd8E>UJ5l2V6 zEq%un7fZVW&L>jqbW+M}BhYDJ`_17S%N?Vu_Kb|3EG)(#U&9&)YH6w;;L<>nC*JNK z&w%1Y({{ah&J`crH%K_@^o(`sG3UzT_2cRy%SFZhQc1P&ST8O?G{}-7#HO#Hh{FuG zP}dop+^I>NjvbWvw#A$D{QYLf=rNQK0YgrgbBQ|3Q;YOP zn9q1I97p|N%|w~Xy>q|0tyU==9}lYl&7(JBoFJW%Pdi{-5%#ryT zxgf+|PoB0f!x{Dj%YSP>Ik#%QwrWJ~Y3I}4cA$TyJqz4kw9mfW%_#~x4p}ti01A!? zb1kU^po!C2^XH?ImvQyu-l3}2>}p$P4m#>k#)S{1%dOq(M$bDE-xlw)J-bznKcumj z(UIa#e=CEkf2Jk0EN0l-W9`yb9Yxl^tNmQkqOJ z&iC)E4A}m(em`E17yC%11hHX^Gv}34IXXSh4<_y7D)Pwe?g`d;LPm*pXG z&qBe{)RkJ+r0ZXBv|ofaO88)_!C6ZCEbuHLc7KP*bb>A+Hs<4YP6^SQ$oDNHu*@ zjuo+WkqxD%_OEJ8XkXtGi`LwKD!xRrgjvi+%{OUxX0_=Fg3^5p_bg?@k&dUYr2FVf zy~7Rc%7ntF14MblvLxQ?cX^3YFlTKqOj$mb4;KL7UZmB!-kLx%9&@sV*EpMKij8oJ zPEpx^DmH(Tk8vw~IKr$o+AOKJjpYt!Qo?h{r``{?7+UOZQv8h_+81@QzwBXB`rE)d z?1MNvwOaI^bFXnW?5EH`Lmvv4&fgvlWrJJxKdU;)%j||edaaSkCYo(QauaF}{Je7m zi0KH*21&Hy0=rXyZgS==4&FiFsF;6Sd(c#MoVdIZiEf)wNVI)_2L;6tD{Yj9;4w9t z;dx4y##df14LIvPo^aT1;CV&t-#4V2xK?XD2RIyh)g}38Hq$M-iYT!qr-npN1^2W8 z0tDSwjbaR1_QQLGma@h_p0NHtznrelV1-J)MVWqiv8PD@=m`$wT4`G5v`wpKARi5q z-`zG|rOwFlUFbv7P?v)wmh}V03e7kzIywF&&|T7R3&^i1*sh-XUjBIIwSxLgd~-ME z+0HY||3~K5Ou;>N>$JSaX-l>8*#PphQ2aaZS=b9}(cGjEIl@)lO|Y2tjr_mH!J~!; zwfxidwk!BDU~__ph{TU5r&CNU8!SnnA*(p_4Iv~an6^q2n^uwUIonQ$N+%>qny9U4W++T1%yziG; zz1Ey{x~l7R)!zH;KJ9`I{{u}Cp{gv4ibRA21qFpFFDIoA1qDqFxqd{1hy2E}$dxBh z&_h$#E1W|^b0_hC7=-3Xf`-{d=M`Y%5MbjZXaC;|-lR(y0cf5iW>{I+$U-Ufq_41y z#L>2WSNh{s)*elQ2V-M7*>e-qairs?)3*C4Nu97{08iO@MReL8=desi8Y|WIKukER z^J;5oBTehI*Tt-&D%j9!>{~iaWjIWmP26?aFs7Og!2-TJ`M%f~v<6yVpyfzgtKokU z3GU?ZMMHW-Is}kE13?JpVjO#hhAfb{Z$tbTFzUNZF^tjt818?PVc5wt+*nxtHwmyy z5)KV=OC7)+APMI;9r;EO|Ct{@EeaAy?gmMZ!>_o5WP#R4!nP-dB3F_XHQEn}!{CRc zkIX7|4Pi$xM@x4jho{z<=-)Gk#D!-;(o0XwwDzRKup@ki+&K|+uYG?f=ol{*Utl{(nvE|2QvTNUt55VfT>g_1Emr zsf#oQ{EdxEk~$tC1atV{eW(SS$SJZ395W3Ug!gWhpf_y8i#Pronm6aMZ_+N1^_FI{ z>lKy2LeEEi`wsj7RsXE@>y}=^FQ8;*j898Guq*eIbx7G%mt*0p1O4-oDTu_h?^P)d zA;5r{ksyf#M5%x)`eLrXR;kt5bex75n53fAYsi_MaF4)dF*cn zY#$k-RHtS$=^qF1E`}uBTv-TZ zEg6V4as%iw2s-)iZegA%nv6!?kDvVmsi7vQ3Z^WnzKiX#zBg@(KK5E`XMrty65~tO zwIXyhd<{Km`08*1ah#X5&8c-PGHtr$7*%+hV!~AdTopua`|;MNW+l?q&fs1>dz>$p z?SVZn87cSC^!M*w*R#8b$9UQ(3Uh8=ugP)HcED?NvA4=P994~9ng^H=uj_GA@xG(0 zAwn=B%e(l3m5@FT%4J&z5bPJ^LG=di2fw$!e<7Y#@I+C#I9QPR-KcByM`m|C^oSGu zm#gV-dmFg#sb?YbUYN`wf+%{zhIS6T_FAv~*uTM|o;mATr7DmsN&MiBB1i0X`aK6> z1z@jEuPP^&_uJ!RByWnzvMflZZo7VoD#7#p?T)3;Y;K$>i0AWJ`tgj_Xn{HOWSDRtKawDnKV zS$SP{79E{(<_Mm0aKSfQz2R!o~ zqpv^`Sgq^2Ez;JJ5RSgRKKV;3C-H?dWX8^8TjvVdq31)c*8i#>P-xCuTW|qvv;NOw zWoNsj56wp_=Y*6$!kam{oc?q#Z5qWw+Z8H7eV`(_>7^|zS{9HsgUXm~?yxIf$^+XZ z-3*&39X3y37BDZi^%u-2ppQ1RkipC}H2PT)Q~Q$DAH0aW%JAA1P>^+TD>=Y%*P`xF#@}=fCGVvvk~y zQ_zK zz`U#XdvA@hRdi9Im_7&(zJo4c^W^(;4O9;|!V1H({#K(%-38KHBUxJ&7q2bl5=J&t zwp|LD{~}B^wv@Yz^Y`e#G8fj6DzJhVtLm257GL#QDDwCV7@>v-fpOZ@o&&mlPxkCy zS9gB48`{GkVi?1|A9Ai~bbb9j@4vH0$TyDnc@epX>7)dmYslc@2l)>r+&xuM?GbJvw@*MXl)!?Soguz9%U@7u9JBn)}-}csJR$ zyK92K&Ys0NZ4c^mSIifi_j4nl?Z(l!tOPLrz`e`?MOoN7hQhXM52l=7IAp{Z{1#cf z{e>-F9!m{*IJIiypAly!pIO>VL98>UmZZMtHaRN`oae;$CE@`wu;W-w8e~B??+@ae z&vN0;Rc8OKStx=t#msk$fPO(zb&xGJ|ZW>GS#SckjdwKzq`(HWr;`Bp$G9i7-jJ%L zvD^5kqlbgp1po1o#Ei#gdwgD%$*IP-1TXzErrhjLJ=Og<9eE4|8MZB=&wJE&Ay1a7 z<8U4WCfcn3EnJ6%#b-ih^J}=j%JzvH0T0Qm?Ukeo=2S*JOby8AnXGXq2f4~rfR<+x z8D#*mF!EA`n(+JQk|2RHmLz4&Gq>j&PuD@=B=OuK{K=w%*0GBJ5K?78_-Djma`UUi z^>+W&r^8ZGzSC#k`{#Vx1 z(M+~9SsAO}N-X=a0TYeU4=o4aF^wR8{`zoS(wCf+{VeM988x1ZvC~G!qmV|vw}Rn* z>h-`&T7bw-*PUCTCeh%_)*cpvq}400iT$my5ACEsaLU1Kd`)Ms@3`_)diA|r@0i$< zRaA&OtxDw0Eag9pqQ!xc5RX}b+;*#+TUk!nh$#tW4-&>&;^p2sAqWlq;=)e_BG%r{6QtxN}|Sk%YVu;a3dYE``htKryN!Xq5%*yqY_P}I{UdRh0&!GteHu}HV+f1 zL9*T307fVKHEO{#F~!u_GBpJpkW-_e8$gsqBK1fT3;bN`?K&7XQ0?Hn2HS;3m5u(V z+x?+Kf49qzA*%3EKu)%#wfP@Q9;&_K?@P`3wFmv_S>41ZM-wlDwBIM4?Avfx)I2b{ zFKkuKbQWUzV5$ZJA4HZwO1uN<`8F%2t4*7vp{eQ4^a6ZQ$xM(_108U{R@7+%9HFFtfXhJJxxvM@QSdy44giW7w~i~nuJF0)7B z#1uxt+6JPI!q+KwogNR$J9nkO6Gc2-#Dv}(ac*7(`qP{hR1H=iF!Zh?k_7_F$k;(K z(KO{3ekZts)v}#Jl0p>geb!J8fQ$L}-MvhIha}O;*kjHW%;4gmr@vc|?$u6W(SHUG zMN{N=jvNfmYKRiv(+*@}_~3X?N#Soe!CEL6-a6bZdrO04^7TIi3SaD{Sn%GH0nx>ql7QoS z{<1GD#HpU;?Xrix{IypB_k~11-^VFz8>7u>;ncCdQixvl2ix0^V#nDUI56?EXocrb~BXQMN6b(9t^+vHOONu45 z&5vMIlzc^*y`S)tK$!k9wBVLJkIA*%bW#7|~ zR13yOAxge$M^72QfBC=tcK|Ro>5^8wg;}+6_V2x# z+Q!;+pof*NxYkV6W>TM2_7LpL&Z_5M zbARj}ol@JgB{ui8kfenN{m1{i`>o1h#LVR5z-xL97vAJyTJ!oIjaj8qlpa6-O~H_1 z!Uv!9!3-Wpq>WNLLgeI43M!k&HdJS(pt%2%qB1N3^ zIMo>unPtAR0gO?tiqlZ7wI_>>fJtwx#u)X+5K7=zpfGc#c_sIsg#0{DY`0oJJ=|YP zxmdCYh$cZUJvLQbrL5>Axu8Co;+$-9rrwlrOWw%u=>BQh`gKQ?e)PooY%XG#t3fz% z+gDHRV|kLJu*j;~<5C>5y_-4FIB^EF7+ES-%j(*2%`b4UB3&G+8OhL@I<_h98if1d zq7GOA^3e8&>KP|6&fe>t3)UWOLI_3SI83cp3;GLd4RdeH7yS3652#m~@X(K1R{Sk4 z;y-98>=#*chU#9OQM&i=K~3WYHb)aeco8_&m44c(472XbP-@cy@ z0Pg1oFCZc`Q+W{6LIQ;fsi@F|{YmI+iMA|2o5&S99Yb}1=ImIrW#Hv<=Br_!r*h-Q z4|n=qk9$~s)aB!Fye`LRDc#eo7O%XTLGHI|^+S;${ozb~Y(LNDIMM*RkU)341|R*< zPmbZVZx?^D-+7K>LqF~IV?fSQ^H$4i6q@%dW`2R)G8kv_FN_z`b-py5dcNJzq5hg4S5~$x{EyC5lQ2a&2HM-h?+0B4afw!@`w#+ zrH#IiI}Y+BQ19;%GGMj+pjN(fOc-wkh#o0D0@Pg;h@v+3nX$K&1n|GtFjXQvmpuOD z)wa|yz&i_7*8G^HxcF^h*~i*miY&n3SON6CFQdMKGN>N1!F-^t$z%w`4=>2Jcojx{ zsZO&Nnk2(yKFb-h)QE&){1NMx@OjDcFVAqpQsgHRm%G_usoo*6rrSJNdQ3-aKme3w zDZ1kBfh7}XcRO0-AV0k*wD)OQlu-u0G4e=?iAGCQ++3_8C+wsaJ`g=~n77W~8IfmJ zu)<*FT0q0WeNbGi-}Z~*B8&X=+_lOOE6HDMD1B9zl#YGG{k|=Uo94>2k_!4e=bC-Vy9bR-yeu(ic z1WYfNQ>;6Y0?!|#)Wfj|>H0(ePo zfI%y3N6M}wr|ag2D%C4YRdwT#n+M2RuPLN5;7U#5G!;$J(+SiqGZZqjw7)*{9V_+( z%p-CSQ-r zZABNiKby}xC|%b;<*@~EF>&^WF}}8fn>Ous#+S%vqfv* z`8B{=*Tnxj)=yMDF8rrpf>q3d^8S0968Qdv*Vvk5&d+`7iAPWW$(ioNRU~+f;39QD zKb-dBg{ZLxguRmLNSee;;g5hiH~Mptty81a0d1N}Oxv4jSMeIak?MJvJu9Tu^^T_p zxDk*a=2PVUY>JLJ)3N+K4pj#iOel7c)%AWSFT!C6Bg#v+-qw+O5Y>kL-Isw7TEf|DuZa7Qwek6MPKE2cRmO*e5Nmo#!2(!h%ccAypT1KvSKkPj#Rd@>z&hKpN-8j1QP8)ibW!KQ?$9a5 zp>kIKY*cYv$^JfyqURFU*#x$cmb^*#*|JMZLHZg0#~cKL#kUYc>aO}XJ?aAGL!$;N z?fCvY@^-liTk9}%x!;WQp)sTC#2r;!14Ujw@+mb@boJucl_N(p!Fj_L8A$_XkeC?A zF1yOXA*<5jM#wZeTbz?tLI}rmWry> z>od4sBu70IBq(&0Wm8oxSo)Hdn+xnF?Zh1NCtqvb0x-BnNMe!Fv$$DeHv7Vx--0L^ zU|o#XH>3H!6*etZWRNZ|9Qr>@3cX);>XEGZY9&ESH?}?vWWA)w!fyQjUPX&ZNxmGF z_(3eEQbXl!%4`q~r8lP7cILx$apsDbZti1DkaF=L<~d$x3oUoQRl%m%PaojBw_W%S z#rS9{vJ*V=H|x%%*{T}MsrWLsmQ%$Kw7UZO&2_gn!ASWCzWl44`?~H9A-q3z*~|*k zQrKfnpXn$-c1{LxbG|)ctVAI)>@^o3_Oo9pT{w97&0Nn=Z#ouez6zwtVCS1Oc4{4&%U*1s`E97HaZ(hTinxO;=kJ9V8JH0v|^``~QE zIAr-@42d%5Z(EiN*140PCy$H+6AxzYncKGt0>4PQ7?nE{Gy$H*8K%lT^zpK8ukzGSZ?8U_Ec1l^_TZlS7P8*{O}RlprP1=b zDBwh^`?nk33r|8bWd>tqM$%au|_q;$ABP=0`P(TJCiU6V%TashdHC(WgRcC zW&v1}$EMzLzyd}XSD1qu^MIa1m2zyy9Zq(9Jcgo{q}hqvx~0g@00I>?e|K z|5D=c4Qn>TSGKBqB8d2PM%4u6uR8Frs-$z{>FEO3@}Xvp`pU2bF}3bqgB<{*ZklLOW@-+wm)Te)lQ3EYK^5mJs?06Y6Nny4bJ|lVctR4 z^dl!YF_S2AQ-V7Pq!<^+(77`LYAYA4E>7VpCz&w~U6@C$NDHX(F4jfn3@_gEfL$|* zV1NwhV~y-Itu|ad!l;2V<-rT+q+7Q6<7kBu@OjRrn5Kx@?aM`M0MixAJpK<~hZ1 zcZkLy{@;cq`#Q#@UzM`;$a#O$58XnqXzRL=jUiQQ)WbdKvE)8OWGjB-s&bVkj4f$x zV9UUhB<+3oLF4jqIn=lN$ugz3!LJ*V=v%EakZ@*X#s4k;v2F9?>h)EIYIG?xZWrTw|vR@IcNEIx?(XI4Ff2^oOn6sFk`L+~&X$S3@Gv$JRL2O^G7j&P z#~U0Itk7G0FAX+jS&hlARnYZ_V1nyH=MjZbC^B6h#;-bYO`^H0)C{v1p{YNq=!N7xM(A%r?jPS6@C>N+Zl>!M}In?zu`h1JveAI98 zt(_xVyVdTEQhbJ-!_oJ4KRsMP*s& zMecK}6h5;(9gy&C<@@;Y39ZNE(T8ZFzkD7IRQfA77!x5QDl2~WJv&NZD@!uW-7V3{ z@5mbko3G<%M1;}`(aLK=d`~ig@G>p4F*zsUPAg0gGBZ>uPG!^gmn%M$LAzUBKNGzB^Nbtuee$(U2u^weP1@ zCg3FZ$?f@^LJko(>ylaNFBD2m%9QLq|I^^c)!o&1>BB&bMbL}1I-;|ak|26OPQ;n7 zLZA+rLCYoXxJJ()CRFl%_0wZ%$*W%g{7<53ISX40Cb)s*0Um-a@8u|Gtw9J+uGral zR3mY&cy8K%EcPB$h+0B;IEQP9@d%1MRhJ^7N$je z{x@P)o8P4YRk(2f=!T~@gX|-tvURMhpFdqo8A%c{MemCtb5U}EvmeGRW<*_Wab|Ru z0)>dg(EOKZBiM`Ui`k8v)wn6X#-y@i*W(|a0->l=c!8LIU1BC1Pn<=a-Umd%Au9SS zA5J5mY_k3=#oF3_fs(=Pi()x`LCG#uma6PHUtMEK*aW$$*R18HEh8ac0+dQeOE#bH(glB+xDa2h zlrq|!9AXu`Z{k~A7wZeJ2@5%^L4O@ZY!waYc_(+rZS! zZSZ7{m=%@kv-8$!?Uu-N`f{9K%rh$UE5J2xeQnyx!#nf$DwVlsI&=g7v2t91%-a@A zyJt-o_8<%|qOLfkGN_Btf;2Pnx)Z^npUMQ=?*R9&y1N%h>}V`DS<&NKPF?s7<}8;_ z!hp9BO!<{o+(BmbjRIZv4tM*gr^D#qN9k=Hk&UC*e}Xxm2nnFcqQy7~G@`3-rhzb8 zyQ;zh=dDkU(R2_`k4x6oz!yD-XSV0V(i3S0xG2$`D4g0kR;jO^mySw3ojW-s)HEv2 zE8H-=Ni@*KV!6BR%@6yEpu5|Rwl{j^F_h;(Y)RSGS2a5$SC5D#ZE7T^$W?SG`4j)z zmP!*L?rnVQo03~NizxPzdbEMnuR!`v5Wf2#+giYt1|Qf67og7Kvm-!KUPcG(#QZJ` z1u>vGJlIX}9);1Tx3x?fjp+l3E@jY2ZBGk4O%q@*UgpuF7Uoi3x&w5gV^nQd<*Eu; zZKIkaixUHVKi=975Ph~tBn zaKy%&4k)$qs6ZO`z9*N1id6-I~~f%VUFuB6OfTIoa7Xy*0icY zmu>#l;Aw`3xvn7I#7mqYU>6S$K0Tc9b?(Z-x9A=6`E^wQ-51Dp@nZ6rsS8GWQ{EjH zrFClcz^DC{pjntKTI#FZx${2Cir#qf-mfjZ%BUyVn5s1XvGuztu%+n%mx$F9AZN|5 zkSjE_Xb2sZ^`>Jrevl;X@fdlM0aBi(=#OQ@nY5Hg`nZ8esTt`AmL~OC36qCzE6sX* ze>@9$MR_W^Cgm1TpVu+g*gVT@bm?YKNF*4w#{8A}0O6JN*Nrm%D2ne4J|Ym_%|&1% zpRX1A@LuIHiVz1}vHEwwnAs`Ckf(_92psyKsL=K^igtyuU%AyUqi2x@w}V;tY2MOpxFSzdEc4@4jl_vTJkh-J;pqA5kr5~S%7BYZFV27@m<_lsRV1`R3sAZ7L@?xD;X zC=7W%XR&;eqpC1xCMK?#9z>r!dMcrqpWkB}q>vx>Q!~#D^>Ybo@$z;_%uE?ZXwQa*oNSI@_RHIlShys?CN+ux-E0h*sy0g++*C+FMj%r62{Gwz$cYug15F;+ zB;c4V=EP2(Et;?WkCPc;*M+45tn*3fC23=_VL8+(NlSuGwB0agN9Ap^>^-SVe3nxU z=v0xYtEtD0e=N@u@cA?6?q2viU;Iz6=yztrL%7>dD~MBWKhdt28AVo2OkYbek?`}o zDpN()9iY>{DXEpyFOC(l(i1yD2JZ4F1o()_G%4)y4{XVF)Oh)c4PobISn{6^XPw zmnr8GzyuNylI2*D+zLpXE+!?T1M-cju^iMy1Sc3$GF}vy)l-tMAK&rg+~<9<<`=fI z4I=7)*K?b#`NWML6B`LcadEk}=UMbQbZZqp9JVBK!FTH#UiNKwPAww1L%CC=W8*aN zbw=|+#8Bv!A#Bp9qC8I{ZpRJaF&|CtENXhr2&2DB-EUZw37dMDJ}?yZS>#V<`aUUEBNDsdI(iF}EZ7xFciBnupPGdsnj= z1ocy>_~wy$ofBBt^?wI^0ygZZ%6ERJ=BbSE&-`Dkox zU*IwAvD7=z4bsIgYP+@~hNqQ(m*aEeO^uNMMOSIe$Pjoh6&-{0$3oRhV^i!JaXT3= zQUhZRPCFUwgfG2WJdO0Aj-^k+6)WdtZI`iSN$!qsB9)YWw55nCZ1b*V{896lUX*8L z00F^YRV>6T#4RK&EP51wAal{#I>EYIinuNmZKG;ht3{c@Tv>G2^iZyR?=0SUTTKHe z3}^V>P+3;K-{eL=)e0@ZX~COwvz`|m*!G5VPrSZZ&H&rf$?q*2RfqZOknTOIN(rg= zjS=WEA0N? zy8;_L7akXF)i#kVOdh|uJB;@JYqw#W}0v_c%3MjjWoTd~JlHQI_Vn6T4HB+%V8 z+h7w!^xc$+jduO;PjGp%6r`X+UxrHQn)(bQo{~+!1ytSTLZnjmAXDuS@X|D^$kUNE zZE-noSLij@#p_E1yZ^N<0`@&2kXeZFCCi^nwR#7Nq|{k?@9KhX7F(45&tk$Cg%bRO zYEt>fd=)u|i#zGoB`y5M|(b!i67}1ODh1jp}R~weW21~&^FHyy&m{-eqygLX>P`k$o&LN` zjwDn^sCc76yxfYqp*oxTL5t#&$@Jv5yFH$$UESmfdeQ+UaaqnXrSG`@MG7RQn8}R8w62airO|iPQ2iR8>Yi6EsBkkw>yA1^)Z9F z?sx3|t-ut>^;{*kc(v=*dglEo&Kg5-Sr=Wx)Y{0)U48W?P$IYwz|uhs#ae>X;%Y5N z>qxpZc?=0_l9f)XkOo&%owsjnD^>ITjI!R4$u45={??86p7~x}L^~MfIx4py?M|J} zn9kX~DqgDe)HXd*B{*vw2_1Y7GY|)soUircL0D7hup^#Q+`ao#KDbobHTKbtB1M_Y zol92^ie`53PBj+>pi*4%y?dlI?K7Or9--c4_LBELW41zDh?BdMr^eZ*1HT?4uL`>k z!DZ(YLVx@Ip;ga(MHzp^CK#XX;`nigFrLz?2e?TYe+nt}S#w)*G>A~JtATZgcMsd2 zdOYjPJ^0VWb#t@V@hiNptSKd3l`Ozk!pmvtLudwg?r;-Wu_;~ZEZ@w(5q_4jKdj{x8#{dE=X=CxM>(n6fi7o{$*>k-gL92Sb4@pKwBuUiNq8>^k)i$X_*I;T`L zo9FC~{uSK$0=l)wnd=xMjI40Csp2Z#6pspT)b&ykOv2|1wxuqQiBFPpFGr)_BU zc7XSnQm1%~{LIATKK8+tciJA&kQPPC&<$uNm}%@-_MVydPkq$7>JEH zlq#-&SunaMd&yUi8F!|7&;=cflY>5nc>$|rWRiICWIY5|a3c&3MOnpcbbf<5O_0gq z2;D1UbWL2SXytBY4&I#xkFN(vpS(~r|C@@Z#2OCv81#>B@zkpOM`dsdO@Z+TL&7WR zJ^TImy6uJUkh6kJG6BzPqbqyEZvoU-*=GhLZs#{X_^oWA#}8b!-jl%HP9Bo5)^>@rZQ()S>Ruz5!zj{hU>TyxAnd37u{ z&QW8a9*H`KR&DA`Di(*Bv)D zg|0tkVWI&CE;w%YF7&j4&&pvVSv-7!;=Ni&SdV4ChZZ!04-1+wE2O&ZBe>PkmOk%@ zg}}%bm4Y*^A3d@+kzU*3``CryY@j|b08T53X~^FH z*#^eP6V^1pIN%qQlxeE_I2}`WU7^XAa14A~mGVz2EGd1u&F6J6{Tv@O!zdw9cyev- zppPV21Ti3NcS`8jefvbVrHpWUUTKZd!GIJX2`-23nTuqssjU04Onr#%59(7k zhe)ktf>3d^>Q9m#aQ>EEFdc@}sVf)kh`pAe z6z$hi+I~_phMohU7EN8(mWy_?51DxjnWxIwpPj~!OdX5Cq!7}XVq|x*DM22T*HTBj zwf@~=T<)Thy}e=Z8kNh|~YwBEkE~wXSUB<6_sx{|V!zPaP;tiMi zqku*&H1|i)7rZBCl_&6S){UBqbZ$_lLNSURZBR9_y!;-3mA!)B#~q*O_7mp=4~_$- z4eBEl7R^PB2?Iwv_1Pppn$%^)hc+b@>tLO8+=aDNi3Yev6gES?2KT5q@Dm>y;gI-I zh%4gU9HIcW5-!9-)H`_j)3nocI37V>T{)&Sf$sBjk_L?5q?UK~=bxIwH+E{JGxF=J z6R!!-#m~yX0)mL9T9?phxU(>KvGl?|(#r3cqM|8AXlsnc8U~eIzA6H@VsT{Bm}IE} z35r_C)~V@YzHj;(X3n_Pu0W1F9U)0G@6G@X6|1e#QzecZdwx<$9=}%ScxL-yAJR<1 zzGt9|pho?@0PLjkFs8Ye@!j$T=k`sfK|TWW$q5B25|oWxI4p16*hf`JU0>F*CCx89 zb})M7)hm?A0>6mL~}`UPM2S-L29_tyxn;eShj9#ef}9FZl6HMJf6AZGl;fL8fvQ%^C@3 zwYUH%yw;$akMU|3$}aCdQ~e`9XR29ze5iT48v*V4WLsG9$6fr@;Y1Xo!KYqPssNS@ zdoaRwtu`o<%jvu0VE)e)Q!9Blzoh6)f7iqcp^OZ%^$>p1;qonPKa`Fx^q`1xN3#2= zXnum0NGZYUmn|o^_|SIzkAlp5r|zONNoEp(ozB01ZZXl~@=2__E&x|~-o z7~?paqbPVuj37RSeS<;(%ZSss3XFIfPQ%8vPvt4^M99(EEv>U3zrK{>RvOm8&`ZnO zYGPY|^MUl90>ww~-Pt_qLNo$?prh~KcDEo^6*|OwIZl`vXV|b7^JjckpdZi3A;<yAA%_!T#@jeZC^BgozQ_#1fODJ3)T2}eoQ#E0Z zk>PAKRY&h8qT#&d|4DqJ#R5&Py|<4(DKCk&47Gr9#0kPk`_E7TY@gb*wARd-fsu+8CB|nRd*LH%SQR74YNA5Uh6IHX!l3)slJX-g`|4 z8irw8qRuv~7?<7%%j+MtBC+GA2{=euYAYzvB2V2%=F*_&N9r8;!E?{G_Ny_{*FFXq^3H;=#vTUySWfueI5rU zHLKT*D3B*@EYeJ|2Q!wg_gTfu2Y4I2JEq$>>29{5{j7yA${5dzYNnbrPuEGVYv7AH zkby61{*rA=t12O*H|Tp`3N!;xi&^qkI73QKYbk+fF|Kq+GS~{KB;QktW6u=J-u@y+ z;IF$8|FMlA)nTxt1xX&@XY`)weZqYAGmSH?=)C^!Orv`d5kR)Ew9)%QQ?|=YYH-H- z+RHy&l|#M?{;G@oceeuIfiFS~4JXO+V@dRLEb4u~&z<+Kec2|U1)Q|<`mp2;480T~ zk~^IuWk$NBZ3`m3umM~VbqV!_aKe||$MO$I>HHh>yo>X9Ep}_`a4qPC+}^2q4{u1+ z&3i>@$NYL%jKx#gCBivBpBZX+J$eg9Il`N6KY`L-#PWjk9OC}Y1lY>Mq6PTa&0YRU(`vgOZFSsWa5CDjYN;ggws4jty-uw%=ey5&2=@JU3v8VRO zkf-kdW51N}Ae3&(yRNrIw0?=%)`;N#$sQfu%z18flJBkCYi!#^vJhF6!@$s03GSRY zxxC2Ui6I=dUETFX@`7H3(+cN6Zf@45|GtAo`8d7{Y*#}LSSQANoF~OKAHF(&LLkrF zbBFO}NLqmffy&RurexwWaA4GfZ&GMQY3&tqL^|89-(P)YN!I}k=$Wwx1D6F1BLnq$ zS&?olBMtUt)rMJD`mtvfx|f5TsZ~>PxV(tJY|qOEO^)^BlW;Nyim{q}c*}VM*ZME0aDrr`{;g!Et&}-EToglY`O$l0FbZ)q zPPJh`%Si0QoWwB_w?SQpPEO0~+uyyZXQ~QJ14R#D@8?H3gMmmhq(t`(fq z{bd4}l>8u$RRDdP`?+oh0h*Sfi3kbCj^S+#uI($~ID!horsdxUQl(E@E!Mv&d-4b(E!oJ*6#edbkLOB& zbB(X4U^$ST0{+_%!p^8h{}Mh!#cSZrWCfxd5k`sL;zghoRaXn9EH?jw z4cnR8W2HVE22NEIQYGb}QkswqwA3RW12UX83|dmAqoa8G}!sqNi!Ify+t9XYAax z`xvj!(78{ui!S05<2@*8bat6Ia}XmyB1TG3wQ}xhzUgg4ap82|R6?^%-8L;?6CPO- zU%Q9(*v{-J$MU%P3pu4%bkd@lv}VyYBshfYwrYzdTh30G)%WRA@B@6r+;hUTHm++H z#O^R!+s+PcF+IgqZaJgj+_ihMo&(!lXsW$v9I^>L2Bk}pi(z;_bmFW?K4nN$+{=sD z#WP(W(LL3SA6m~Gf7?S`9ZC-T`XQUv!{#Oljny#8pp|q||9;d}qua8vLcj707SBxG z$X`Q$-DL$uA`cDXGW`3SD{Vk3D zfL3Pf#B<6Tt8(6S!eo`rESrTA3+e!>NSKe^;TtUhucRRnNKdm^9pZ+*fAn#r#$03$ zrWbuLJj_+6alJtZwzZWw=$-C6Om@q2h8Va6hYgWZuqqU9lD=g8`f9KkFbPTnuZd9e zID@5*`KUyBbze&L92SxTu538#44no3a3`)Z0f)LO~Hb$xDfA{`Or67UgHB4uh{#cqQ4*Ja(L`gC_^) zW2J=l+Q7GuH2gk7`~7D1Rn|~H{$pznG~bJV?Xw?GZn%U3($`XQ@#Lt^(`9YU6;C}x z7Myb{xaGjD8sIox!WQe;;BK23Q@fn)IdrAe>@dJG$~#6#;X_TH~1Hu)&{ZJ6VzrsX1H)Kuh#+7;#}E}vE3AWsZSnCp zK~G9nL88gW%CAf)J{rq)fN{Ml1>MEpQW&^H-%qY zJ(9#e{A(C|%fFv`cX_8_^vLfNN6r2L-n?!Kk^}5Aaqcj7vn=6~KP`+9$Z2#}sughk zu3IyENt#Lh8j(nnW6ze(f2PG)@TT*?NMH}(`PRsx?8Jq~GUE6yC6IuX0PInPvMCjj zR@=3TXxxzNX|-1T z_*{XMpQ6(4aepfrV*X^(zG9)JY}$Kk8lG)nG(*Lt2!n}FJD4Fl#c$Ua=dEr|+j#-j zOpnQ1TTBduT`AxYZM%NNgtOkg6tJFpTi8_z4 zeInP-%UkuW!Mz&x?NOF!O%kfI7Vd+uXJgdqAe7PJ zCEcXf<#apq<+rDmob!)XvLQbPc^K*Rpky>`YJ$(#QI@Z z8NhA(S0mm21rXz}GR?xhjVaDuo2)rr;13hbo78B-KthPw=Y_m{vNF;sv}0bviFHvy zb;Yxr)9T*gUsGHnpt9~o?_3Qk83R^fg&?f--T?VpPRnKfj4v82_K;Wua2)$a_Kw3> zP&nvqGgtiJlC7}lKgy}8F<-ZYh%16DYBtlRgzQ&-c?Ryb7Wmy*&D%Mua2eXD=OKJ) zWoflT@^|uYM8iXxo!<_d@Pe)VD+*jQbHu!qR=<3n_c?P67!)uZ;ZfZ(Pk4sky_8!& z8FERF@hNS`d1D$+!7*R-4EX0&VkA;Rc}d;hvh(@NLJd{7jdq$!Ru10l(4>=0kLz(R zhhdu8+i+~$2;+Pl+|`PhDLAcJ{{wj`RbPD}MSG@h?TeiFAC%GxeH)(9_D-8i#s{xh z>ILjtLGZY;6?OXyU%;{U_cd|flbjcW#sPl@4G9oWF00ma0bzgBD8PP7j9EKF-@p)< zxcGaJZ$*f8==iaeS$ZvXH*qu`fiP3tFi3_A^5Z8c#jy1T9E}s~d3H!UX}f?JK;jaP zi=Oepc%q{2rm7P1W zJ&hZewg#3}H%IhHAk4v0vB5|?%y5}dPvAVvC$`A|8gP!*Jl#Ranip8pXb0^i8n6vo z=^FwvY2#!K-#wX(8UsUDsddUV`-X3)BoAh4Xb&9o48^Fwpd=>b*KU@uh^ok5gXY$S zbe<~Z4S2E8uG~>E*PF1zOFCq+aq&;rriY4iFQZ0z8ZnXpK~H#C-D>ACi!apxe)gW(Ju~y%I(5&*kMVl2?d80_>sLh@6D0RtPDo$Ew#wGG;_R9IY ze)(m%mu29_Sa8^eci@KLpw%v-U2MZ?z!Co~s%Tc<+sO=1r%FTNnz`D4m~s;{{0ZVP zO!vXUcO6*CIQ#jCXr?zLy^679h;!ST)lZ<+LN3{^NNcTA@H(5<$gQL5MQm{_$NAb* z{rAGqw96S&Zi)jSN9D3)Xyl~NRMS}c6RooDi|c&|Ex-gt=H_TODj?zoxd-p=}VxB#vg&cx&dcU^ZQ!%w5^4^CQLlD_Dr)n4D4 zV>40YZ7!W}C|ep7qf*65-=kv~qZT$lgsth~-m|1A=!4>Os(USB}REzI~i^Xms(a?wzeFLUwA{PA`Q z4`X)y{#kqMIyS78eoM~peBtDqwNH{JuF|Aha^IUG0kd&SKC)+_lb`Rhm2i4m;T~Q( zm;2N>9LJFK(#8@#?N5xW)#=I-wbQ{2fo3p(AT{knS9%L=k&&)Z}1Du z8Y)DX-u@L;UwzJ#s#zS(9U_Es`O`+RoeVFsJ&&k7aEh-2SGlsZC3b!$0+@B5q=jt4 z{qN&v6gT0PA-b|@RIHb>-SFc>1uzyhf}i{1w@*`-ElUkXdCT9-e2iY1UuTHNoPW~r z`vn)_$Lm9oQVclx_4^2(^~^KRdk@{~Z;Ban0tkEc2nuaGGh8rZWa-pYz4k8-}L(oT>n}>ta-rjK4n-sW!k(B#O*46oUIm0 z3Wp<(_norsew^|KLrJ0c4E;is8cRWbugMAxap*%2Y1G!#BXme{!|QfvD8lF=g3ZQq z64FuAnp@~MQYpYjsgoLtW88MG#hJ^+zB|e1(RxdmGBM-McDIR4tKS#LY}qFAC?_}g z$AI;5M2{%wS>`afp7ahWFsnb6s1RTXkCJFaQBNe9&a7A(KvORZTmi0T^wjh>>WPpE$rMB*pbBZ71S2 zz?^j5r+c}1m|G3HdvKWT?Q5nKv<%+9o~`=26gM?IQZeB~ zD=is=U%ffif+U>W4JW-8T1NBp$vWsPsz$L#stLpnD%tga)-qMTC#}9~XfTJ1@Ov;d z*ZbW~(gK$!XWy+5juHZkWki4RPr(5Py`hbF8j&eXJ{PRTwDy_lgk>(-vAYm6v%@n5 z5q6cO>g5=^9WCVfVaJ(PO$%pNzDSV)`)z zbS78zG-`h2RulIQ`VxuCK(t?NN{Pw(bH$bILh>Mw@u6-m^77kTc|`uWAt6=z@B1No zT?X&OM6EvXvPCbE&4!ZW-Uw}8{1+@QD-~I`SVR=hRyu6*rm6V|lL zW*jhB|Dq$WF~L~&K);DpuH0LJbvZ&>6XShIW)JC1>alfa2}nOh-S#qI&t5lrGGvsq zM6QTf5F7HIY}-KHtoe^8I-IFf)PE@k0#a)|h16sEnwr$pK?`=Q7~gm<$|(s^8*i`|b9+m~@CdRkZ7O!{ZjLB} zWE{h)${w(c=Ibu%+5U$#KCamDXWveoS#$7(S+j-<*ltzR^eW4;=kw#C1j_19{l-~m zzzEn^$04hID|x!qHpTjcrv*(%Km~Otoq~tPgq7Z)AA3bl+ekNx3%>n~umzYV7qI=*A0x~=a^UbVZ z@?%{HKG=wEE*Y$hGl;qvO-{ke+a##@S>B(6;1TNSrZpd&=n_O@a43H#9`RK`6(vQK zz)S&dLUJ$40&cxtlerWEQE;y+&0~fMw(tcj-os9EV_^=8Vi#wcUWU+Q2RqKwfZ*7N zQ@ghdCbNv;`4LBYym@dq0Ox+7chBJDwZvmf^>}w`q$xr*>hl+q|0ei6FIRkc=Ufqh%kutzS`-rnzNmX`hx zIMhIMb&vC9;gP)rS2|z$w>joh^M+++&WsVaS7=A3dhS(sd@}?FB&hIR)T)_pnq~B# zm_LnqUT(mf{KNBQtM^G40dAFdHS^lqbE!tN>)qhRUS1uE#^DcG3JWjH?BKI(DHViJ zT1Z+nXZ;9k!?#b(&!+IuB*`xg)czBDs7n1ozu^=0`Keis?3g3Y5W_!tiz&A@@^vz2 zn1PR8u{>!@>QRmekcCVmQ+tF8k55ikPNn#Xjd;z&L@e&wT+CMh{h@g7@{04_#>2t9 zs`Oq%zLW&A_=+ZDahaJY)%2WNZ-vg4EoZ@}`P&rza~w!|3qRV{s@?dp|5wbg7K{fI&`SCZD}JGV6E-bp@~#G~JKAmqYa zA7bkC97eX?T2cq|Qn^%Mz z@nGjW7`B(O9jCs5K{ZNZrZ-2Tc)k9ti{Y3ziESsA#0o?A!=%ZS z%n4X-9C2%%oZxx+FDS+HDH}H^l<$jX5V*@1jgHODD+@jzCh7TGw)WiU#W9!Fqlcoz z8HAl#f^*we%!%ypnru4lqYFLREz67xWI}G(HO@`bq%3hQkNN@uxznr)GGXRx=={YW z5}oRphkP5Kr!I&l4>wL(nx4WGU*SvIluH2QO*^kboPyT2^y_9?@^Vc~=rOe;A)o&> zlTP7@hY=v{iQ;A2yiI){*-CB}`$TBWEdQvnS9lh*38xEMUvA{id>#Ve%!uDc&t zT&_}7FEB%uy@zq)6IS2{qJw!QlS+U4nbqit&w3uEPC5RkZX?9sBgV}z(~cbvB$Dj< zQu2k!pPGG?_cA0m$Q2!+i@E4K(4W{~G_GNPIrEi6(bWL+YiY1x7t}awoip8iql?*UFr{DCg@GJ*TE5qbtKdDU8Lw^=)!gh^x zog5ZGC9H=1qL4&ATo&>qzVQ={kR87EvOgOQoHH+;;L?vO9q3p`&5sFQR{#RBqFmbn zGtpUczfKe$k=IuVh>P};VK;PS+CSrx^rw2_Q?WU=Z|WuDC#b(3dy`LqZQ*lrTQHbp zkM(iyvHdkMrK?yBK0zlEvUaXKF4rqoX(DHRS4l&>7OJd9cfTlyQ6h5pcWizI%`_j<4E;dnaclUm&D8L!MNZ_cW= zh3TTtxn?ch9Y0Dv-;s=N^3|0w!F%(ooF5=5G8E01j#N-@nyh^vJ#Bm)^Pqp*-N$0a zY8qCw_XXd(@jwC$V>&>>(wcXbd>g6se8D*2LB%f`mVK+i-@V+icc8Gbf{|*=qgm8H zk2S-vq0Kq3kZ<~^C#bUiYpOwSvT); zD2O^1DYJZ@%ciJyUf))B9BUWc;gnp%pLq7`{y!b#N}J49j>-f7$Rriu#g75Pv5cbT z;eX>&&e4V#)J#T^-iJYau*=)$Li~3nOw(7Da`KP6N_0N*n_Y}O(c8y7D~V$4CCtoD zi3TLE?4RAVEp^wQ5^@oOl1j~+Hfe_XtiXdGZ)VAocS@K#VaiwxH@g0)DPjTP*R~a2 zfBd*xn_OJl@eBa2x!%Q)BVmDNYK-QA1~^2J1bq%1{*exo+oucek{M`ECj>=`Vcf8v zhh@#RJ+N1-!=mJ5DQmi$NBe{%sxdEqzpU(f8{ppl;O!$zt~nPz*&l=;vxl*>J5LtQ z->c5?{-;-EUv-zcrMsuy*9~^Z$AHtLma)6@Rj4Eo`YXH6M8%PDq&^7@9{e+wb#s(| zH=wnP=__r_Dsz;addjT0x|2G#C%xz(aJPJ*wR=7AdGR~Cu$N|BN0!Jzb9}B)>e;}F zSU{<#u*y`O)mm33$#*u*>H~e9>m#Q6l>T*+E2i5@w$|EjuuPVNRv zftxrWl3ipTfd9M^0`l))H(N*<^$6LqzI!NAUw6MHf1-l9mpUIK;w4hF82hEOt_Bs~ z-zhn!4%i;;Ueb5Lko@moY)V$eyc1_~m9E`6VxsO_yvc%&eqtrMB6E@rrhNa&9}j#& zUPM8>=vKX8^ReLW9Ps&j#H2CvD8Msy-Uo2g+<<39)g|?uvim5C{~*o ztOWBD)BWpyrcK)g2~lnZ5*iN}sdYw*gbH?_y$J{?>@fFvc_4QxkqR85In%7)JtyeI zU6#5S$e=8%UArXA4_vI{td{YgHgId7(^)u!YwtDNna+C@)l_`f_NxCF+gjp++yr`J zlrV8NvNJHnI+b7GG{uDE$0sG1WX_?i`u!bqG5S2(g_98-NIfl+V!EChAMq^vb#QZB zz6NEwxMN=#vkyjjv=p87^9)|#`coKOF{C9dE3W6Hr4?(q5TH>ujoRE9!NwjgX<{bINWLqGpGcF=ojWGzVRON_04+>uOv*0)#Hus&D;kuM@5 zFO0;p_&O-(Yt^3dRC57yt#J)C+Le(7n(uxSh0Gj-+Z9IQKgUH@L0(-0?mc;B%)|Rq z&roMPXM3YNm;UBv_VTaIS@c^?aJSWq9BHh@5?6T`ft(C$TjWWg z4jaA}33#A&M*N7l0dkE16DdgPT2?;{ll0aZvno;sDRK@I^ zcwYCkqSDHl&uU+@vouh}RBQe{HA`2nUFN_lQ{z9rYM8ilgUdI5>@$CR2|nOoB&6k> z13UEoziGpL6+m{>+^worFc6;)!L{NhBYG#Y>F>ftwaX=#Dsk`|v5=Z^q~7>I@=&kV zI@Me3&sNv$xOgi=t*@@^%}_mX4usWVWrfI=XS=VL7OH)40)QFoPiVQZ%JX^e&11uf zYApg{Jwj@oly^^X@t_JU9E>mU2ukrtOZo(2aDv#g6O!Vd;^OJ!hUu--ybe?Vzg2~H z-xo>)A*CP4*c6yaxbyRE?hE<~Ec(r1l*|bP)H-9rYzo=D*$Jg{9mF72JW`(RG)m^T zkKd~5yIK(d#O%0XUpxkgLB*up`MizK@d%OvA#YyV{U70g{C^<-8yritB8O`Fh8Ho6 R_Zi_h&{vwu6%fnd{|EXk%xM4s diff --git a/docs/img/premium/stream-readme.png b/docs/img/premium/stream-readme.png index fc3733c704818f68eb52c453df9ba06eb288d21c..967ee7fc8dc36121a7e9206e5d6de297345cb1b4 100644 GIT binary patch literal 19311 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 diff --git a/docs/index.md b/docs/index.md index e20f3f2fb..4804f05fa 100644 --- a/docs/index.md +++ b/docs/index.md @@ -68,7 +68,7 @@ continued development by **[signing up for a paid plan][funding]**.

-*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf), [Release History](https://releasehistory.io), [Rollbar](https://rollbar.com), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), and [Lights On Software](https://lightsonsoftware.com).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), and [Lights On Software](https://lightsonsoftware.com).* --- From 9ac9c1b2eafa05cf5b6a605ce54e2d5f2f866f1b Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Wed, 5 Jun 2019 17:51:50 -0700 Subject: [PATCH 034/119] Update status code docs (#6732) --- docs/api-guide/status-codes.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/api-guide/status-codes.md b/docs/api-guide/status-codes.md index 1016f3374..c39afe397 100644 --- a/docs/api-guide/status-codes.md +++ b/docs/api-guide/status-codes.md @@ -20,13 +20,13 @@ The full set of HTTP status codes included in the `status` module is listed belo The module also includes a set of helper functions for testing if a status code is in a given range. from rest_framework import status - from rest_framework.test import APITestCase + from rest_framework.test import APITestCase - class ExampleTestCase(APITestCase): - def test_url_root(self): - url = reverse('index') - response = self.client.get(url) - self.assertTrue(status.is_success(response.status_code)) + class ExampleTestCase(APITestCase): + def test_url_root(self): + url = reverse('index') + response = self.client.get(url) + self.assertTrue(status.is_success(response.status_code)) For more information on proper usage of HTTP status codes see [RFC 2616][rfc2616] @@ -51,6 +51,8 @@ This class of status code indicates that the client's request was successfully r HTTP_205_RESET_CONTENT HTTP_206_PARTIAL_CONTENT HTTP_207_MULTI_STATUS + HTTP_208_ALREADY_REPORTED + HTTP_226_IM_USED ## Redirection - 3xx @@ -64,6 +66,7 @@ This class of status code indicates that further action needs to be taken by the HTTP_305_USE_PROXY HTTP_306_RESERVED HTTP_307_TEMPORARY_REDIRECT + HTTP_308_PERMANENT_REDIRECT ## Client Error - 4xx @@ -90,6 +93,7 @@ The 4xx class of status code is intended for cases in which the client seems to HTTP_422_UNPROCESSABLE_ENTITY HTTP_423_LOCKED HTTP_424_FAILED_DEPENDENCY + HTTP_426_UPGRADE_REQUIRED HTTP_428_PRECONDITION_REQUIRED HTTP_429_TOO_MANY_REQUESTS HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE @@ -105,7 +109,11 @@ Response status codes beginning with the digit "5" indicate cases in which the s HTTP_503_SERVICE_UNAVAILABLE HTTP_504_GATEWAY_TIMEOUT HTTP_505_HTTP_VERSION_NOT_SUPPORTED + HTTP_506_VARIANT_ALSO_NEGOTIATES HTTP_507_INSUFFICIENT_STORAGE + HTTP_508_LOOP_DETECTED + HTTP_509_BANDWIDTH_LIMIT_EXCEEDED + HTTP_510_NOT_EXTENDED HTTP_511_NETWORK_AUTHENTICATION_REQUIRED ## Helper functions From 60bcc932022c623aaad427e38464727484774aa2 Mon Sep 17 00:00:00 2001 From: Hasan Ramezani Date: Fri, 7 Jun 2019 15:45:34 +0200 Subject: [PATCH 035/119] Remove duplicate test in `tests/test_utils.py` (#6736) --- tests/test_utils.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests/test_utils.py b/tests/test_utils.py index 885b5a58d..01ad47082 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -235,15 +235,6 @@ class UrlsRemoveQueryParamTests(TestCase): """ Tests the remove_query_param functionality. """ - def test_valid_unicode_preserved(self): - q = '/?q=%E6%9F%A5%E8%AF%A2' - new_key = 'page' - new_value = 2 - value = '%E6%9F%A5%E8%AF%A2' - - assert new_key in replace_query_param(q, new_key, new_value) - assert value in replace_query_param(q, new_key, new_value) - def test_valid_unicode_removed(self): q = '/?page=2345&q=%E6%9F%A5%E8%AF%A2' key = 'page' From a63860fc8b7cbdb9b8bc07dde1b217348f393b01 Mon Sep 17 00:00:00 2001 From: Alan Crosswell Date: Sun, 9 Jun 2019 08:29:55 -0400 Subject: [PATCH 036/119] Corrected openapi.SchemaGenerator path prefixes. (#6724) --- rest_framework/schemas/generators.py | 2 +- rest_framework/schemas/openapi.py | 4 +++- tests/schemas/test_openapi.py | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/rest_framework/schemas/generators.py b/rest_framework/schemas/generators.py index ecb07f935..392d385d8 100644 --- a/rest_framework/schemas/generators.py +++ b/rest_framework/schemas/generators.py @@ -249,7 +249,7 @@ class BaseSchemaGenerator(object): /api/v1/users/ /api/v1/users/{pk}/ - The path prefix is '/api/v1/' + The path prefix is '/api/v1' """ prefixes = [] for path in paths: diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index 44b281be8..c03205c3e 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -35,12 +35,14 @@ class SchemaGenerator(BaseSchemaGenerator): if not paths: return None prefix = self.determine_path_prefix(paths) + if prefix == '/': # no prefix + prefix = '' for path, method, view in view_endpoints: if not self.has_view_permissions(path, method, view): continue operation = view.schema.get_operation(path, method) - subpath = '/' + path[len(prefix):] + subpath = path[len(prefix):] result.setdefault(subpath, {}) result[subpath][method.lower()] = operation diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index 2ddf54f01..4914c1422 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -214,6 +214,20 @@ class TestGenerator(TestCase): assert 'get' in example_operations assert 'post' in example_operations + def test_prefixed_paths_construction(self): + """Construction of the `paths` key with a common prefix.""" + patterns = [ + url(r'^api/v1/example/?$', views.ExampleListView.as_view()), + url(r'^api/v1/example/{pk}/?$', views.ExampleDetailView.as_view()), + ] + generator = SchemaGenerator(patterns=patterns) + generator._initialise_endpoints() + + paths = generator.get_paths() + + assert '/example/' in paths + assert '/example/{id}/' in paths + def test_schema_construction(self): """Construction of the top level dictionary.""" patterns = [ From 2d65f82dd74de85e38409977757b4be58ebaf236 Mon Sep 17 00:00:00 2001 From: Alan Crosswell Date: Sun, 9 Jun 2019 08:42:56 -0400 Subject: [PATCH 037/119] Generate OpenAPI schema field types from validators. (#6674) --- rest_framework/schemas/openapi.py | 109 ++++++++++++++++++++++++++++-- tests/schemas/test_openapi.py | 50 ++++++++++++++ tests/schemas/views.py | 49 ++++++++++++++ 3 files changed, 204 insertions(+), 4 deletions(-) diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index c03205c3e..eeb353329 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -1,10 +1,15 @@ import warnings +from django.core.validators import ( + DecimalValidator, EmailValidator, MaxLengthValidator, MaxValueValidator, + MinLengthValidator, MinValueValidator, RegexValidator, URLValidator +) from django.db import models from django.utils.encoding import force_text from rest_framework import exceptions, serializers from rest_framework.compat import uritemplate +from rest_framework.fields import empty from .generators import BaseSchemaGenerator from .inspectors import ViewInspector @@ -268,18 +273,76 @@ class AutoSchema(ViewInspector): 'format': 'date-time', } + # "Formats such as "email", "uuid", and so on, MAY be used even though undefined by this specification." + # see: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#data-types + # see also: https://swagger.io/docs/specification/data-models/data-types/#string + if isinstance(field, serializers.EmailField): + return { + 'type': 'string', + 'format': 'email' + } + + if isinstance(field, serializers.URLField): + return { + 'type': 'string', + 'format': 'uri' + } + + if isinstance(field, serializers.UUIDField): + return { + 'type': 'string', + 'format': 'uuid' + } + + if isinstance(field, serializers.IPAddressField): + content = { + 'type': 'string', + } + if field.protocol != 'both': + content['format'] = field.protocol + return content + + # DecimalField has multipleOf based on decimal_places + if isinstance(field, serializers.DecimalField): + content = { + 'type': 'number' + } + if field.decimal_places: + content['multipleOf'] = float('.' + (field.decimal_places - 1) * '0' + '1') + if field.max_whole_digits: + content['maximum'] = int(field.max_whole_digits * '9') + 1 + content['minimum'] = -content['maximum'] + self._map_min_max(field, content) + return content + + if isinstance(field, serializers.FloatField): + content = { + 'type': 'number' + } + self._map_min_max(field, content) + return content + + if isinstance(field, serializers.IntegerField): + content = { + 'type': 'integer' + } + self._map_min_max(field, content) + return content + # Simplest cases, default to 'string' type: FIELD_CLASS_SCHEMA_TYPE = { serializers.BooleanField: 'boolean', - serializers.DecimalField: 'number', - serializers.FloatField: 'number', - serializers.IntegerField: 'integer', - serializers.JSONField: 'object', serializers.DictField: 'object', } return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')} + def _map_min_max(self, field, content): + if field.max_value: + content['maximum'] = field.max_value + if field.min_value: + content['minimum'] = field.min_value + def _map_serializer(self, serializer): # Assuming we have a valid serializer instance. # TODO: @@ -303,6 +366,11 @@ class AutoSchema(ViewInspector): schema['writeOnly'] = True if field.allow_null: schema['nullable'] = True + if field.default and field.default != empty: # why don't they use None?! + schema['default'] = field.default + if field.help_text: + schema['description'] = field.help_text + self._map_field_validators(field.validators, schema) properties[field.field_name] = schema return { @@ -310,6 +378,39 @@ class AutoSchema(ViewInspector): 'properties': properties, } + def _map_field_validators(self, validators, schema): + """ + map field validators + :param list:validators: list of field validators + :param dict:schema: schema that the validators get added to + """ + for v in validators: + # "Formats such as "email", "uuid", and so on, MAY be used even though undefined by this specification." + # https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#data-types + if isinstance(v, EmailValidator): + schema['format'] = 'email' + if isinstance(v, URLValidator): + schema['format'] = 'uri' + if isinstance(v, RegexValidator): + schema['pattern'] = v.regex.pattern + elif isinstance(v, MaxLengthValidator): + schema['maxLength'] = v.limit_value + elif isinstance(v, MinLengthValidator): + schema['minLength'] = v.limit_value + elif isinstance(v, MaxValueValidator): + schema['maximum'] = v.limit_value + elif isinstance(v, MinValueValidator): + schema['minimum'] = v.limit_value + elif isinstance(v, DecimalValidator): + if v.decimal_places: + schema['multipleOf'] = float('.' + (v.decimal_places - 1) * '0' + '1') + if v.max_digits: + digits = v.max_digits + if v.decimal_places is not None and v.decimal_places > 0: + digits -= v.decimal_places + schema['maximum'] = int(digits * '9') + 1 + schema['minimum'] = -schema['maximum'] + def _get_request_body(self, path, method): view = self.view diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index 4914c1422..891b44748 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -257,3 +257,53 @@ class TestGenerator(TestCase): assert response_schema['date']['format'] == 'date' assert response_schema['datetime']['format'] == 'date-time' + + def test_serializer_validators(self): + patterns = [ + url(r'^example/?$', views.ExampleValdidatedAPIView.as_view()), + ] + generator = SchemaGenerator(patterns=patterns) + + request = create_request('/') + schema = generator.get_schema(request=request) + + response = schema['paths']['/example/']['get']['responses'] + response_schema = response['200']['content']['application/json']['schema']['properties'] + + assert response_schema['integer']['type'] == 'integer' + assert response_schema['integer']['maximum'] == 99 + assert response_schema['integer']['minimum'] == -11 + + assert response_schema['string']['minLength'] == 2 + assert response_schema['string']['maxLength'] == 10 + + assert response_schema['regex']['pattern'] == r'[ABC]12{3}' + assert response_schema['regex']['description'] == 'must have an A, B, or C followed by 1222' + + assert response_schema['decimal1']['type'] == 'number' + assert response_schema['decimal1']['multipleOf'] == .01 + assert response_schema['decimal1']['maximum'] == 10000 + assert response_schema['decimal1']['minimum'] == -10000 + + assert response_schema['decimal2']['type'] == 'number' + assert response_schema['decimal2']['multipleOf'] == .0001 + + assert response_schema['email']['type'] == 'string' + assert response_schema['email']['format'] == 'email' + assert response_schema['email']['default'] == 'foo@bar.com' + + assert response_schema['url']['type'] == 'string' + assert response_schema['url']['nullable'] is True + assert response_schema['url']['default'] == 'http://www.example.com' + + assert response_schema['uuid']['type'] == 'string' + assert response_schema['uuid']['format'] == 'uuid' + + assert response_schema['ip4']['type'] == 'string' + assert response_schema['ip4']['format'] == 'ipv4' + + assert response_schema['ip6']['type'] == 'string' + assert response_schema['ip6']['format'] == 'ipv6' + + assert response_schema['ip']['type'] == 'string' + assert 'format' not in response_schema['ip'] diff --git a/tests/schemas/views.py b/tests/schemas/views.py index dc0d6065b..7a920f33e 100644 --- a/tests/schemas/views.py +++ b/tests/schemas/views.py @@ -1,3 +1,10 @@ +import uuid + +from django.core.validators import ( + DecimalValidator, MaxLengthValidator, MaxValueValidator, + MinLengthValidator, MinValueValidator, RegexValidator +) + from rest_framework import generics, permissions, serializers from rest_framework.decorators import action from rest_framework.response import Response @@ -56,3 +63,45 @@ class ExampleGenericViewSet(GenericViewSet): @action(detail=False) def old(self, *args, **kwargs): pass + + +# Validators and/or equivalent Field attributes. +class ExampleValidatedSerializer(serializers.Serializer): + integer = serializers.IntegerField( + validators=( + MaxValueValidator(limit_value=99), + MinValueValidator(limit_value=-11), + ) + ) + string = serializers.CharField( + validators=( + MaxLengthValidator(limit_value=10), + MinLengthValidator(limit_value=2), + ) + ) + regex = serializers.CharField( + validators=( + RegexValidator(regex=r'[ABC]12{3}'), + ), + help_text='must have an A, B, or C followed by 1222' + ) + decimal1 = serializers.DecimalField(max_digits=6, decimal_places=2) + decimal2 = serializers.DecimalField(max_digits=5, decimal_places=0, + validators=(DecimalValidator(max_digits=17, decimal_places=4),)) + email = serializers.EmailField(default='foo@bar.com') + url = serializers.URLField(default='http://www.example.com', allow_null=True) + uuid = serializers.UUIDField() + ip4 = serializers.IPAddressField(protocol='ipv4') + ip6 = serializers.IPAddressField(protocol='ipv6') + ip = serializers.IPAddressField() + + +class ExampleValdidatedAPIView(generics.GenericAPIView): + serializer_class = ExampleValidatedSerializer + + def get(self, *args, **kwargs): + serializer = self.get_serializer(integer=33, string='hello', regex='foo', decimal1=3.55, + decimal2=5.33, email='a@b.co', + url='http://localhost', uuid=uuid.uuid4(), ip4='127.0.0.1', ip6='::1', + ip='192.168.1.1') + return Response(serializer.data) From 819c46ea8096dfa11019e54137345268daa7bd37 Mon Sep 17 00:00:00 2001 From: Alan Crosswell Date: Sun, 9 Jun 2019 08:43:54 -0400 Subject: [PATCH 038/119] Add --generator_class CLI option to generateschema (#6735) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add --generator_class CLI option to generateschema * Add test for generateschema —generator_class flag. --- docs/community/release-notes.md | 1 + .../management/commands/generateschema.py | 7 ++++++- tests/schemas/test_managementcommand.py | 17 +++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index a27de2b64..0f88adfc3 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -45,6 +45,7 @@ You can determine your currently installed version using `pip show`: **Date**: [Unreleased][3.10.0-milestone] * Resolve DeprecationWarning with markdown. [#6317][gh6317] +* Add `generateschema --generator_class` CLI option ## 3.9.x series diff --git a/rest_framework/management/commands/generateschema.py b/rest_framework/management/commands/generateschema.py index 631f40290..46077c331 100644 --- a/rest_framework/management/commands/generateschema.py +++ b/rest_framework/management/commands/generateschema.py @@ -1,4 +1,5 @@ from django.core.management.base import BaseCommand +from django.utils.module_loading import import_string from rest_framework import renderers from rest_framework.schemas import coreapi @@ -22,9 +23,13 @@ class Command(BaseCommand): parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json', 'corejson'], default='openapi', type=str) else: parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json'], default='openapi', type=str) + parser.add_argument('--generator_class', dest="generator_class", default=None, type=str) def handle(self, *args, **options): - generator_class = self.get_generator_class() + if options['generator_class']: + generator_class = import_string(options['generator_class']) + else: + generator_class = self.get_generator_class() generator = generator_class( url=options['url'], title=options['title'], diff --git a/tests/schemas/test_managementcommand.py b/tests/schemas/test_managementcommand.py index 42e0e99d1..6cdf7f8b1 100644 --- a/tests/schemas/test_managementcommand.py +++ b/tests/schemas/test_managementcommand.py @@ -22,6 +22,16 @@ urlpatterns = [ ] +class CustomSchemaGenerator: + SCHEMA = {"key": "value"} + + def __init__(self, *args, **kwargs): + pass + + def get_schema(self, **kwargs): + return self.SCHEMA + + @override_settings(ROOT_URLCONF=__name__) @pytest.mark.skipif(not uritemplate, reason='uritemplate is not installed') class GenerateSchemaTests(TestCase): @@ -56,6 +66,13 @@ class GenerateSchemaTests(TestCase): out_json = json.loads(self.out.getvalue()) assert out_json['openapi'] == '3.0.2' + def test_accepts_custom_schema_generator(self): + call_command('generateschema', + '--generator_class={}.{}'.format(__name__, CustomSchemaGenerator.__name__), + stdout=self.out) + out_json = yaml.safe_load(self.out.getvalue()) + assert out_json == CustomSchemaGenerator.SCHEMA + @pytest.mark.skipif(yaml is None, reason='PyYAML is required.') @override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}) def test_coreapi_renders_default_schema_with_custom_title_url_and_description(self): From 4d228257ac91af409194815d65500c11111a766c Mon Sep 17 00:00:00 2001 From: Alan Crosswell Date: Sun, 9 Jun 2019 08:58:02 -0400 Subject: [PATCH 039/119] Retain declared path ordering in OpenAPI YAML output. (#6680) * Add pyyaml.dump(..., sort_keys=False) to not sort openapi keys alphabetically * Retain ordering of paths as provided in urlconf in OpenAPI schemas. --- docs/community/release-notes.md | 2 ++ requirements/requirements-optionals.txt | 2 +- rest_framework/renderers.py | 2 +- rest_framework/schemas/generators.py | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 0f88adfc3..235447eee 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -44,6 +44,7 @@ You can determine your currently installed version using `pip show`: **Date**: [Unreleased][3.10.0-milestone] +* Updated PyYaml dependency for OpenAPI schema generation to `pyyaml>=5.1` [#6680][gh6680] * Resolve DeprecationWarning with markdown. [#6317][gh6317] * Add `generateschema --generator_class` CLI option @@ -2138,4 +2139,5 @@ For older release notes, [please see the version 2.x documentation][old-release- [gh6613]: https://github.com/encode/django-rest-framework/issues/6613 +[gh6680]: https://github.com/encode/django-rest-framework/issues/6680 [gh6317]: https://github.com/encode/django-rest-framework/issues/6317 diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt index d38ede9ba..c5be70c3d 100644 --- a/requirements/requirements-optionals.txt +++ b/requirements/requirements-optionals.txt @@ -6,4 +6,4 @@ django-guardian==1.5.0 django-filter>=2.1.0, <2.2 coreapi==2.3.1 coreschema==0.0.4 -pyyaml +pyyaml>=5.1 diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 3dc94ed2d..772ef3c2c 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -1049,7 +1049,7 @@ class OpenAPIRenderer(BaseRenderer): assert yaml, 'Using OpenAPIRenderer, but `pyyaml` is not installed.' def render(self, data, media_type=None, renderer_context=None): - return yaml.dump(data, default_flow_style=False).encode('utf-8') + return yaml.dump(data, default_flow_style=False, sort_keys=False).encode('utf-8') class JSONOpenAPIRenderer(BaseRenderer): diff --git a/rest_framework/schemas/generators.py b/rest_framework/schemas/generators.py index 392d385d8..c80ace7d3 100644 --- a/rest_framework/schemas/generators.py +++ b/rest_framework/schemas/generators.py @@ -54,7 +54,7 @@ def endpoint_ordering(endpoint): 'PATCH': 3, 'DELETE': 4 }.get(method, 5) - return (path, method_priority) + return (method_priority,) _PATH_PARAMETER_COMPONENT_RE = re.compile( From 809a6acd36b53017a8a41a1d46c816f0480cb20b Mon Sep 17 00:00:00 2001 From: Xavier Ordoquy Date: Sun, 9 Jun 2019 15:23:52 +0200 Subject: [PATCH 040/119] Add --urlconf to the generateschema command (#6696) --- rest_framework/management/commands/generateschema.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rest_framework/management/commands/generateschema.py b/rest_framework/management/commands/generateschema.py index 46077c331..a7763492c 100644 --- a/rest_framework/management/commands/generateschema.py +++ b/rest_framework/management/commands/generateschema.py @@ -23,6 +23,7 @@ class Command(BaseCommand): parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json', 'corejson'], default='openapi', type=str) else: parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json'], default='openapi', type=str) + parser.add_argument('--urlconf', dest="urlconf", default=None, type=str) parser.add_argument('--generator_class', dest="generator_class", default=None, type=str) def handle(self, *args, **options): @@ -33,7 +34,8 @@ class Command(BaseCommand): generator = generator_class( url=options['url'], title=options['title'], - description=options['description'] + description=options['description'], + urlconf=options['urlconf'], ) schema = generator.get_schema(request=None, public=True) renderer = self.get_renderer(options['format']) From 72de94a05d2038f2557d4c7a3b16cf20416fb123 Mon Sep 17 00:00:00 2001 From: Min ho Kim Date: Wed, 19 Jun 2019 05:58:01 +1000 Subject: [PATCH 041/119] Fix typos in docs (#6747) --- docs/api-guide/caching.md | 2 +- docs/api-guide/fields.md | 2 +- docs/api-guide/settings.md | 2 +- docs/api-guide/throttling.md | 4 ++-- docs/community/3.6-announcement.md | 2 +- docs/community/release-notes.md | 2 +- docs/community/third-party-packages.md | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/api-guide/caching.md b/docs/api-guide/caching.md index 5342345e4..502a0a9a9 100644 --- a/docs/api-guide/caching.md +++ b/docs/api-guide/caching.md @@ -1,6 +1,6 @@ # Caching -> A certain woman had a very sharp conciousness but almost no +> A certain woman had a very sharp consciousness but almost no > memory ... She remembered enough to work, and she worked hard. > - Lydia Davis diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index 64515f804..8a1e2a341 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -209,7 +209,7 @@ A field that ensures the input is a valid UUID string. The `to_internal_value` m **Signature:** `UUIDField(format='hex_verbose')` - `format`: Determines the representation format of the uuid value - - `'hex_verbose'` - The cannoncical hex representation, including hyphens: `"5ce0e9a5-5ffa-654b-cee0-1238041fb31a"` + - `'hex_verbose'` - The canonical hex representation, including hyphens: `"5ce0e9a5-5ffa-654b-cee0-1238041fb31a"` - `'hex'` - The compact hex representation of the UUID, not including hyphens: `"5ce0e9a55ffa654bcee01238041fb31a"` - `'int'` - A 128 bit integer representation of the UUID: `"123456789012312313134124512351145145114"` - `'urn'` - RFC 4122 URN representation of the UUID: `"urn:uuid:5ce0e9a5-5ffa-654b-cee0-1238041fb31a"` diff --git a/docs/api-guide/settings.md b/docs/api-guide/settings.md index 85e38185e..1b3cb9dcf 100644 --- a/docs/api-guide/settings.md +++ b/docs/api-guide/settings.md @@ -404,7 +404,7 @@ This should be a function with the following signature: If the view instance inherits `ViewSet`, it may have been initialized with several optional arguments: -* `name`: A name expliticly provided to a view in the viewset. Typically, this value should be used as-is when provided. +* `name`: A name explicitly provided to a view in the viewset. Typically, this value should be used as-is when provided. * `suffix`: Text used when differentiating individual views in a viewset. This argument is mutually exclusive to `name`. * `detail`: Boolean that differentiates an individual view in a viewset as either being a 'list' or 'detail' view. diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index dade47460..c2b06756a 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -74,7 +74,7 @@ If you need to strictly identify unique client IP addresses, you'll need to firs It is important to understand that if you configure the `NUM_PROXIES` setting, then all clients behind a unique [NAT'd](https://en.wikipedia.org/wiki/Network_address_translation) gateway will be treated as a single client. -Further context on how the `X-Forwarded-For` header works, and identifying a remote client IP can be [found here][identifing-clients]. +Further context on how the `X-Forwarded-For` header works, and identifying a remote client IP can be [found here][identifying-clients]. ## Setting up the cache @@ -194,6 +194,6 @@ The following is an example of a rate throttle, that will randomly throttle 1 in [cite]: https://developer.twitter.com/en/docs/basics/rate-limiting [permissions]: permissions.md -[identifing-clients]: http://oxpedia.org/wiki/index.php?title=AppSuite:Grizzly#Multiple_Proxies_in_front_of_the_cluster +[identifying-clients]: http://oxpedia.org/wiki/index.php?title=AppSuite:Grizzly#Multiple_Proxies_in_front_of_the_cluster [cache-setting]: https://docs.djangoproject.com/en/stable/ref/settings/#caches [cache-docs]: https://docs.djangoproject.com/en/stable/topics/cache/#setting-up-the-cache diff --git a/docs/community/3.6-announcement.md b/docs/community/3.6-announcement.md index c6e8dfa06..c41ad8ecb 100644 --- a/docs/community/3.6-announcement.md +++ b/docs/community/3.6-announcement.md @@ -60,7 +60,7 @@ REST framework's new API documentation supports a number of features: * Support for various authentication schemes. * Code snippets for the Python, JavaScript, and Command Line clients. -The `coreapi` library is required as a dependancy for the API docs. Make sure +The `coreapi` library is required as a dependency for the API docs. Make sure to install the latest version (2.3.0 or above). The `pygments` and `markdown` libraries are optional but recommended. diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 235447eee..4ed89d405 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -321,7 +321,7 @@ Be sure to upgrade to Python 3 before upgrading to Django REST Framework 3.10. Note: `AutoSchema.__init__` now ensures `manual_fields` is a list. Previously may have been stored internally as `None`. -* Remove ulrparse compatability shim; use six instead [#5579][gh5579] +* Remove ulrparse compatibility shim; use six instead [#5579][gh5579] * Drop compat wrapper for `TimeDelta.total_seconds()` [#5577][gh5577] * Clean up all whitespace throughout project [#5578][gh5578] * Compat cleanup [#5581][gh5581] diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 135b600f9..1ead5ea67 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -20,7 +20,7 @@ If you have an idea for a new feature please consider how it may be packaged as You can use [this cookiecutter template][cookiecutter] for creating reusable Django REST Framework packages quickly. Cookiecutter creates projects from project templates. While optional, this cookiecutter template includes best practices from Django REST framework and other packages, as well as a Travis CI configuration, Tox configuration, and a sane setup.py for easy PyPI registration/distribution. -Note: Let us know if you have an alternate cookiecuter package so we can also link to it. +Note: Let us know if you have an alternate cookiecutter package so we can also link to it. #### Running the initial cookiecutter command From 6a95451d72c2e1a87e0c5c1d70b2c21e7daa70ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kry=C5=A1tof=20=C5=98eh=C3=A1=C4=8Dek?= Date: Sat, 22 Jun 2019 10:14:15 +0200 Subject: [PATCH 042/119] Fixes #6751 - ModelSerializer fields does not get updated correctly when signals are connected to some fields (#6752) * fixes #6751 * reverted condition * save instance before setting m2m fields * added comment why m2m fields are saved after instance * removed blank line * added test for the issue 6751 --- rest_framework/serializers.py | 12 ++++++++-- tests/test_model_serializer.py | 43 +++++++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 857d3ed94..891b250f4 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -973,14 +973,22 @@ class ModelSerializer(Serializer): # Note that unlike `.create()` we don't need to treat many-to-many # relationships as being a special case. During updates we already # have an instance pk for the relationships to be associated with. + m2m_fields = [] for attr, value in validated_data.items(): if attr in info.relations and info.relations[attr].to_many: - field = getattr(instance, attr) - field.set(value) + m2m_fields.append((attr, value)) else: setattr(instance, attr, value) + instance.save() + # Note that many-to-many fields are set after updating instance. + # Setting m2m fields triggers signals which could potentialy change + # updated instance and we do not want it to collide with .update() + for attr, value in m2m_fields: + field = getattr(instance, attr) + field.set(value) + return instance # Determine the fields to apply... diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 88c6785b2..ae320927c 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -18,6 +18,8 @@ from django.core.validators import ( MaxValueValidator, MinLengthValidator, MinValueValidator ) from django.db import models +from django.db.models.signals import m2m_changed +from django.dispatch import receiver from django.test import TestCase from rest_framework import serializers @@ -1251,7 +1253,6 @@ class Issue6110ModelSerializer(serializers.ModelSerializer): class Issue6110Test(TestCase): - def test_model_serializer_custom_manager(self): instance = Issue6110ModelSerializer().create({'name': 'test_name'}) self.assertEqual(instance.name, 'test_name') @@ -1260,3 +1261,43 @@ class Issue6110Test(TestCase): msginitial = ('Got a `TypeError` when calling `Issue6110TestModel.all_objects.create()`.') with self.assertRaisesMessage(TypeError, msginitial): Issue6110ModelSerializer().create({'wrong_param': 'wrong_param'}) + + +class Issue6751Model(models.Model): + many_to_many = models.ManyToManyField(ManyToManyTargetModel, related_name='+') + char_field = models.CharField(max_length=100) + char_field2 = models.CharField(max_length=100) + + +@receiver(m2m_changed, sender=Issue6751Model.many_to_many.through) +def process_issue6751model_m2m_changed(action, instance, **_): + if action == 'post_add': + instance.char_field = 'value changed by signal' + instance.save() + + +class Issue6751Test(TestCase): + def test_model_serializer_save_m2m_after_instance(self): + class TestSerializer(serializers.ModelSerializer): + class Meta: + model = Issue6751Model + fields = ( + 'many_to_many', + 'char_field', + ) + + instance = Issue6751Model.objects.create(char_field='initial value') + m2m_target = ManyToManyTargetModel.objects.create(name='target') + + serializer = TestSerializer( + instance=instance, + data={ + 'many_to_many': (m2m_target.id,), + 'char_field': 'will be changed by signal', + } + ) + + serializer.is_valid() + serializer.save() + + self.assertEqual(instance.char_field, 'value changed by signal') From 80e89c75c778e3bf8131e41daa5ceb1d5b3c5dc5 Mon Sep 17 00:00:00 2001 From: Robert Singer Date: Sun, 23 Jun 2019 15:18:08 -0500 Subject: [PATCH 043/119] Add DRF Access Policy to 3rd party packages (#6723) --- docs/api-guide/permissions.md | 5 +++++ docs/community/third-party-packages.md | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index 901f810c5..aae3156e9 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -281,6 +281,10 @@ Also note that the generic views will only check the object-level permissions fo The following third party packages are also available. +## DRF - Access Policy + +The [Django REST - Access Policy][drf-access-policy] package provides a way to define complex access rules in declaritive policy classes that are attached to view sets or function-based views. The policies are defined in JSON in a format similer to AWS' Identity & Access Management policies. + ## Composed Permissions The [Composed Permissions][composed-permissions] package provides a simple way to define complex and multi-depth (with logic operators) permission objects, using small and reusable components. @@ -320,3 +324,4 @@ The [Django Rest Framework Role Filters][django-rest-framework-role-filters] pac [djangorestframework-api-key]: https://github.com/florimondmanca/djangorestframework-api-key [django-rest-framework-role-filters]: https://github.com/allisson/django-rest-framework-role-filters [django-rest-framework-guardian]: https://github.com/rpkilby/django-rest-framework-guardian +[drf-access-policy]: https://github.com/rsinger86/drf-access-policy \ No newline at end of file diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 1ead5ea67..d18f98942 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -197,6 +197,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [djangorestframework-composed-permissions][djangorestframework-composed-permissions] - Provides a simple way to define complex permissions. * [rest_condition][rest-condition] - Another extension for building complex permissions in a simple and convenient way. * [dry-rest-permissions][dry-rest-permissions] - Provides a simple way to define permissions for individual api actions. +* [drf-access-policy][drf-access-policy] - Declarative and flexible permissions inspired by AWS' IAM policies. ### Serializers @@ -208,6 +209,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [django-rest-framework-serializer-extensions][drf-serializer-extensions] - Enables black/whitelisting fields, and conditionally expanding child serializers on a per-view/request basis. * [djangorestframework-queryfields][djangorestframework-queryfields] - Serializer mixin allowing clients to control which fields will be sent in the API response. +* [drf-flex-fields][drf-flex-fields] - Serializer providing dynamic field expansion and sparse field sets via URL parameters. ### Serializer fields @@ -340,3 +342,5 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [djangorestframework-datatables]: https://github.com/izimobil/django-rest-framework-datatables [django-rest-framework-condition]: https://github.com/jozo/django-rest-framework-condition [django-rest-witchcraft]: https://github.com/shosca/django-rest-witchcraft +[drf-access-policy]: https://github.com/rsinger86/drf-access-policy +[drf-flex-fields]: https://github.com/rsinger86/drf-flex-fields From a1921b1adb2131b502db72b7fce43ded23374758 Mon Sep 17 00:00:00 2001 From: Tanner Rollefson Date: Mon, 24 Jun 2019 17:44:22 -0500 Subject: [PATCH 044/119] Add djangorestframework-mvt to third party packages (#6756) --- docs/community/third-party-packages.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index d18f98942..7bbb4fecf 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -267,6 +267,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [djangorestframework-datatables][djangorestframework-datatables] - Seamless integration between Django REST framework and [Datatables](https://datatables.net). * [django-rest-framework-condition][django-rest-framework-condition] - Decorators for managing HTTP cache headers for Django REST framework (ETag and Last-modified). * [django-rest-witchcraft][django-rest-witchcraft] - Provides DRF integration with SQLAlchemy with SQLAlchemy model serializers/viewsets and a bunch of other goodies +* [djangorestframework-mvt][djangorestframework-mvt] - An extension for creating views that serve Postgres data as Map Box Vector Tiles. [cite]: http://www.software-ecosystems.com/Software_Ecosystems/Ecosystems.html [cookiecutter]: https://github.com/jpadilla/cookiecutter-django-rest-framework @@ -344,3 +345,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [django-rest-witchcraft]: https://github.com/shosca/django-rest-witchcraft [drf-access-policy]: https://github.com/rsinger86/drf-access-policy [drf-flex-fields]: https://github.com/rsinger86/drf-flex-fields +[djangorestframework-mvt]: https://github.com/corteva/djangorestframework-mvt From f76480a127cd653d981e1463fa6bafdcea0021c6 Mon Sep 17 00:00:00 2001 From: bonohubby <51687451+bonohubby@users.noreply.github.com> Date: Tue, 25 Jun 2019 18:08:46 +0900 Subject: [PATCH 045/119] Fix typo in docs (#6757) --- docs/api-guide/permissions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index aae3156e9..c756d4d7b 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -283,7 +283,7 @@ The following third party packages are also available. ## DRF - Access Policy -The [Django REST - Access Policy][drf-access-policy] package provides a way to define complex access rules in declaritive policy classes that are attached to view sets or function-based views. The policies are defined in JSON in a format similer to AWS' Identity & Access Management policies. +The [Django REST - Access Policy][drf-access-policy] package provides a way to define complex access rules in declaritive policy classes that are attached to view sets or function-based views. The policies are defined in JSON in a format similar to AWS' Identity & Access Management policies. ## Composed Permissions @@ -324,4 +324,4 @@ The [Django Rest Framework Role Filters][django-rest-framework-role-filters] pac [djangorestframework-api-key]: https://github.com/florimondmanca/djangorestframework-api-key [django-rest-framework-role-filters]: https://github.com/allisson/django-rest-framework-role-filters [django-rest-framework-guardian]: https://github.com/rpkilby/django-rest-framework-guardian -[drf-access-policy]: https://github.com/rsinger86/drf-access-policy \ No newline at end of file +[drf-access-policy]: https://github.com/rsinger86/drf-access-policy From cfd3ea0996fd72fc4c91a9e1dd9c5349ae5021e4 Mon Sep 17 00:00:00 2001 From: Jan Pieter Waagmeester Date: Fri, 28 Jun 2019 14:44:15 +0200 Subject: [PATCH 046/119] TokenAdmin: add 'user' to autocomplete_fields (#6762) TokenAdmin is unusable with a big number of user records (in this case ~150k). Django 2.0 added the [ModelAdmin.autocomplete_fields](https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields) option to use select2 to provide a better user experience. If support for django 1.11 is dropped, this change would make the `TokenAdmin` usable again. --- rest_framework/authtoken/admin.py | 1 + 1 file changed, 1 insertion(+) diff --git a/rest_framework/authtoken/admin.py b/rest_framework/authtoken/admin.py index 1a507249b..750e21cf4 100644 --- a/rest_framework/authtoken/admin.py +++ b/rest_framework/authtoken/admin.py @@ -7,6 +7,7 @@ class TokenAdmin(admin.ModelAdmin): list_display = ('key', 'user', 'created') fields = ('user',) ordering = ('-created',) + autocomplete_fields = ('user',) admin.site.register(Token, TokenAdmin) From af2a2e6010755515963c5acc40a0d76ff9aa32e9 Mon Sep 17 00:00:00 2001 From: Florimond Manca Date: Sat, 29 Jun 2019 00:40:32 +0200 Subject: [PATCH 047/119] Update description and link to djangorestframework-api-key (#6764) --- docs/api-guide/permissions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index c756d4d7b..fd4a101b4 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -303,7 +303,7 @@ The [Django Rest Framework Roles][django-rest-framework-roles] package makes it ## Django REST Framework API Key -The [Django REST Framework API Key][djangorestframework-api-key] package provides the ability to authorize clients based on customizable API key headers. This package is targeted at situations in which regular user-based authentication (e.g. `TokenAuthentication`) is not suitable, e.g. allowing non-human clients to safely use your API. API keys are generated and validated through cryptographic methods and can be created and revoked from the Django admin interface at anytime. +The [Django REST Framework API Key][djangorestframework-api-key] package provides permissions classes, models and helpers to add API key authorization to your API. It can be used to authorize internal or third-party backends and services (i.e. _machines_) which do not have a user account. API keys are stored securely using Django's password hashing infrastructure, and they can be viewed, edited and revoked at anytime in the Django admin. ## Django Rest Framework Role Filters @@ -321,7 +321,7 @@ The [Django Rest Framework Role Filters][django-rest-framework-role-filters] pac [rest-condition]: https://github.com/caxap/rest_condition [dry-rest-permissions]: https://github.com/Helioscene/dry-rest-permissions [django-rest-framework-roles]: https://github.com/computer-lab/django-rest-framework-roles -[djangorestframework-api-key]: https://github.com/florimondmanca/djangorestframework-api-key +[djangorestframework-api-key]: https://florimondmanca.github.io/djangorestframework-api-key/ [django-rest-framework-role-filters]: https://github.com/allisson/django-rest-framework-role-filters [django-rest-framework-guardian]: https://github.com/rpkilby/django-rest-framework-guardian [drf-access-policy]: https://github.com/rsinger86/drf-access-policy From df1d146ee784868b44ddba802edfcc30c6ad9795 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Fri, 28 Jun 2019 16:03:00 -0700 Subject: [PATCH 048/119] Remove old documentation (#6765) --- docs/api-guide/filtering.md | 53 +------------------------- docs/community/third-party-packages.md | 2 + rest_framework/decorators.py | 4 +- 3 files changed, 5 insertions(+), 54 deletions(-) diff --git a/docs/api-guide/filtering.md b/docs/api-guide/filtering.md index 8a500f386..d42a0f907 100644 --- a/docs/api-guide/filtering.md +++ b/docs/api-guide/filtering.md @@ -221,7 +221,7 @@ By default, the search parameter is named `'search`', but this may be overridden To dynamically change search fields based on request content, it's possible to subclass the `SearchFilter` and override the `get_search_fields()` function. For example, the following subclass will only search on `title` if the query parameter `title_only` is in the request: from rest_framework import filters - + class CustomSearchFilter(filters.SearchFilter): def get_search_fields(self, view, request): if request.query_params.get('title_only'): @@ -291,53 +291,6 @@ The `ordering` attribute may be either a string or a list/tuple of strings. --- -## DjangoObjectPermissionsFilter - -The `DjangoObjectPermissionsFilter` is intended to be used together with the [`django-guardian`][guardian] package, with custom `'view'` permissions added. The filter will ensure that querysets only returns objects for which the user has the appropriate view permission. - ---- - -**Note:** This filter has been deprecated as of version 3.9 and moved to the 3rd-party [`djangorestframework-guardian` package][django-rest-framework-guardian]. - ---- - -If you're using `DjangoObjectPermissionsFilter`, you'll probably also want to add an appropriate object permissions class, to ensure that users can only operate on instances if they have the appropriate object permissions. The easiest way to do this is to subclass `DjangoObjectPermissions` and add `'view'` permissions to the `perms_map` attribute. - -A complete example using both `DjangoObjectPermissionsFilter` and `DjangoObjectPermissions` might look something like this. - -**permissions.py**: - - class CustomObjectPermissions(permissions.DjangoObjectPermissions): - """ - Similar to `DjangoObjectPermissions`, but adding 'view' permissions. - """ - perms_map = { - 'GET': ['%(app_label)s.view_%(model_name)s'], - 'OPTIONS': ['%(app_label)s.view_%(model_name)s'], - 'HEAD': ['%(app_label)s.view_%(model_name)s'], - 'POST': ['%(app_label)s.add_%(model_name)s'], - 'PUT': ['%(app_label)s.change_%(model_name)s'], - 'PATCH': ['%(app_label)s.change_%(model_name)s'], - 'DELETE': ['%(app_label)s.delete_%(model_name)s'], - } - -**views.py**: - - class EventViewSet(viewsets.ModelViewSet): - """ - Viewset that only lists events if user has 'view' permissions, and only - allows operations on individual events if user has appropriate 'view', 'add', - 'change' or 'delete' permissions. - """ - queryset = Event.objects.all() - serializer_class = EventSerializer - filter_backends = (filters.DjangoObjectPermissionsFilter,) - permission_classes = (myapp.permissions.CustomObjectPermissions,) - -For more information on adding `'view'` permissions for models, see the [relevant section][view-permissions] of the `django-guardian` documentation, and [this blogpost][view-permissions-blogpost]. - ---- - # Custom generic filtering You can also provide your own generic filtering backend, or write an installable app for other developers to use. @@ -399,12 +352,8 @@ The [djangorestframework-word-filter][django-rest-framework-word-search-filter] [cite]: https://docs.djangoproject.com/en/stable/topics/db/queries/#retrieving-specific-objects-with-filters [django-filter-docs]: https://django-filter.readthedocs.io/en/latest/index.html [django-filter-drf-docs]: https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html -[guardian]: https://django-guardian.readthedocs.io/ -[view-permissions]: https://django-guardian.readthedocs.io/en/latest/userguide/assign.html -[view-permissions-blogpost]: https://blog.nyaruka.com/adding-a-view-permission-to-django-models [search-django-admin]: https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields [django-rest-framework-filters]: https://github.com/philipn/django-rest-framework-filters -[django-rest-framework-guardian]: https://github.com/rpkilby/django-rest-framework-guardian [django-rest-framework-word-search-filter]: https://github.com/trollknurr/django-rest-framework-word-search-filter [django-url-filter]: https://github.com/miki725/django-url-filter [drf-url-filter]: https://github.com/manjitkumar/drf-url-filters diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 7bbb4fecf..cbe210866 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -246,6 +246,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [djangorestframework-chain][djangorestframework-chain] - Allows arbitrary chaining of both relations and lookup filters. * [django-url-filter][django-url-filter] - Allows a safe way to filter data via human-friendly URLs. It is a generic library which is not tied to DRF but it provides easy integration with DRF. * [drf-url-filter][drf-url-filter] is a simple Django app to apply filters on drf `ModelViewSet`'s `Queryset` in a clean, simple and configurable way. It also supports validations on incoming query params and their values. +* [django-rest-framework-guardian][django-rest-framework-guardian] - Provides integration with django-guardian, including the `DjangoObjectPermissionsFilter` previously found in DRF. ### Misc @@ -346,3 +347,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [drf-access-policy]: https://github.com/rsinger86/drf-access-policy [drf-flex-fields]: https://github.com/rsinger86/drf-flex-fields [djangorestframework-mvt]: https://github.com/corteva/djangorestframework-mvt +[django-rest-framework-guardian]: https://github.com/rpkilby/django-rest-framework-guardian diff --git a/rest_framework/decorators.py b/rest_framework/decorators.py index 671754fa1..eb1cad9e4 100644 --- a/rest_framework/decorators.py +++ b/rest_framework/decorators.py @@ -3,8 +3,8 @@ The most important decorator in this module is `@api_view`, which is used for writing function-based views with REST framework. There are also various decorators for setting the API policies on function -based views, as well as the `@detail_route` and `@list_route` decorators, which are -used to annotate methods on viewsets that should be included by routers. +based views, as well as the `@action` decorator, which is used to annotate +methods on viewsets that should be included by routers. """ import types From 9a429a1c2e3e1fa134b650bb7a9c8fb910c6cdc0 Mon Sep 17 00:00:00 2001 From: Jon Besga Date: Mon, 1 Jul 2019 02:55:54 +0200 Subject: [PATCH 049/119] Fix custom authentication example (#6640) --- docs/api-guide/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index 52650299f..d1939d774 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -327,7 +327,7 @@ If the `.authenticate_header()` method is not overridden, the authentication sch ## Example -The following example will authenticate any incoming request as the user given by the username in a custom request header named 'X_USERNAME'. +The following example will authenticate any incoming request as the user given by the username in a custom request header named 'X-USERNAME'. from django.contrib.auth.models import User from rest_framework import authentication @@ -335,7 +335,7 @@ The following example will authenticate any incoming request as the user given b class ExampleAuthentication(authentication.BaseAuthentication): def authenticate(self, request): - username = request.META.get('X_USERNAME') + username = request.META.get('HTTP_X_USERNAME') if not username: return None From 82c2b5c3e75debe047eebd8a17b50c1e17594663 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Sun, 30 Jun 2019 19:04:36 -0700 Subject: [PATCH 050/119] Update mkdocs (#6769) --- docs/api-guide/authentication.md | 5 ++++- docs/api-guide/content-negotiation.md | 5 ++++- docs/api-guide/exceptions.md | 5 ++++- docs/api-guide/fields.md | 5 ++++- docs/api-guide/filtering.md | 5 ++++- docs/api-guide/format-suffixes.md | 5 ++++- docs/api-guide/generic-views.md | 7 +++++-- docs/api-guide/metadata.md | 5 ++++- docs/api-guide/parsers.md | 5 ++++- docs/api-guide/permissions.md | 5 ++++- docs/api-guide/relations.md | 5 ++++- docs/api-guide/renderers.md | 5 ++++- docs/api-guide/requests.md | 5 ++++- docs/api-guide/responses.md | 5 ++++- docs/api-guide/reverse.md | 5 ++++- docs/api-guide/routers.md | 5 ++++- docs/api-guide/schemas.md | 5 ++++- docs/api-guide/serializers.md | 5 ++++- docs/api-guide/settings.md | 5 ++++- docs/api-guide/status-codes.md | 5 ++++- docs/api-guide/testing.md | 5 ++++- docs/api-guide/throttling.md | 5 ++++- docs/api-guide/validators.md | 5 ++++- docs/api-guide/versioning.md | 5 ++++- docs/api-guide/views.md | 7 +++++-- docs/api-guide/viewsets.md | 5 ++++- mkdocs.yml | 6 ++++-- requirements/requirements-documentation.txt | 2 +- tox.ini | 2 +- 29 files changed, 112 insertions(+), 32 deletions(-) diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index d1939d774..3879bd70a 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -1,4 +1,7 @@ -source: authentication.py +--- +source: + - authentication.py +--- # Authentication diff --git a/docs/api-guide/content-negotiation.md b/docs/api-guide/content-negotiation.md index 8112a2e80..3a4b0357f 100644 --- a/docs/api-guide/content-negotiation.md +++ b/docs/api-guide/content-negotiation.md @@ -1,4 +1,7 @@ -source: negotiation.py +--- +source: + - negotiation.py +--- # Content negotiation diff --git a/docs/api-guide/exceptions.md b/docs/api-guide/exceptions.md index 820e6d3b8..d7d73a2f2 100644 --- a/docs/api-guide/exceptions.md +++ b/docs/api-guide/exceptions.md @@ -1,4 +1,7 @@ -source: exceptions.py +--- +source: + - exceptions.py +--- # Exceptions diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index 8a1e2a341..ecda0eed5 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -1,4 +1,7 @@ -source: fields.py +--- +source: + - fields.py +--- # Serializer fields diff --git a/docs/api-guide/filtering.md b/docs/api-guide/filtering.md index d42a0f907..be6e54afd 100644 --- a/docs/api-guide/filtering.md +++ b/docs/api-guide/filtering.md @@ -1,4 +1,7 @@ -source: filters.py +--- +source: + - filters.py +--- # Filtering diff --git a/docs/api-guide/format-suffixes.md b/docs/api-guide/format-suffixes.md index 629f003f3..39c812c3a 100644 --- a/docs/api-guide/format-suffixes.md +++ b/docs/api-guide/format-suffixes.md @@ -1,4 +1,7 @@ -source: urlpatterns.py +--- +source: + - urlpatterns.py +--- # Format suffixes diff --git a/docs/api-guide/generic-views.md b/docs/api-guide/generic-views.md index a0ed7bdea..064ef9435 100644 --- a/docs/api-guide/generic-views.md +++ b/docs/api-guide/generic-views.md @@ -1,5 +1,8 @@ -source: mixins.py - generics.py +--- +source: + - mixins.py + - generics.py +--- # Generic views diff --git a/docs/api-guide/metadata.md b/docs/api-guide/metadata.md index a3ba9ac20..fdb778626 100644 --- a/docs/api-guide/metadata.md +++ b/docs/api-guide/metadata.md @@ -1,4 +1,7 @@ -source: metadata.py +--- +source: + - metadata.py +--- # Metadata diff --git a/docs/api-guide/parsers.md b/docs/api-guide/parsers.md index be48ae7e5..f5674a191 100644 --- a/docs/api-guide/parsers.md +++ b/docs/api-guide/parsers.md @@ -1,4 +1,7 @@ -source: parsers.py +--- +source: + - parsers.py +--- # Parsers diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index fd4a101b4..2c84e1a28 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -1,4 +1,7 @@ -source: permissions.py +--- +source: + - permissions.py +--- # Permissions diff --git a/docs/api-guide/relations.md b/docs/api-guide/relations.md index 2048cd923..aa7f23aff 100644 --- a/docs/api-guide/relations.md +++ b/docs/api-guide/relations.md @@ -1,4 +1,7 @@ -source: relations.py +--- +source: + - relations.py +--- # Serializer relations diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md index fc35261f1..4e54874f0 100644 --- a/docs/api-guide/renderers.md +++ b/docs/api-guide/renderers.md @@ -1,4 +1,7 @@ -source: renderers.py +--- +source: + - renderers.py +--- # Renderers diff --git a/docs/api-guide/requests.md b/docs/api-guide/requests.md index 28450f082..967303dd1 100644 --- a/docs/api-guide/requests.md +++ b/docs/api-guide/requests.md @@ -1,4 +1,7 @@ -source: request.py +--- +source: + - request.py +--- # Requests diff --git a/docs/api-guide/responses.md b/docs/api-guide/responses.md index e9c2d41f1..1a56b0101 100644 --- a/docs/api-guide/responses.md +++ b/docs/api-guide/responses.md @@ -1,4 +1,7 @@ -source: response.py +--- +source: + - response.py +--- # Responses diff --git a/docs/api-guide/reverse.md b/docs/api-guide/reverse.md index 00abcf571..70df42b8f 100644 --- a/docs/api-guide/reverse.md +++ b/docs/api-guide/reverse.md @@ -1,4 +1,7 @@ -source: reverse.py +--- +source: + - reverse.py +--- # Returning URLs diff --git a/docs/api-guide/routers.md b/docs/api-guide/routers.md index 09c6c39cb..5f6802222 100644 --- a/docs/api-guide/routers.md +++ b/docs/api-guide/routers.md @@ -1,4 +1,7 @@ -source: routers.py +--- +source: + - routers.py +--- # Routers diff --git a/docs/api-guide/schemas.md b/docs/api-guide/schemas.md index b09b1606e..94332c0ed 100644 --- a/docs/api-guide/schemas.md +++ b/docs/api-guide/schemas.md @@ -1,4 +1,7 @@ -source: schemas.py +--- +source: + - schemas.py +--- # Schemas diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index feb5651f7..0bc90b40a 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -1,4 +1,7 @@ -source: serializers.py +--- +source: + - serializers.py +--- # Serializers diff --git a/docs/api-guide/settings.md b/docs/api-guide/settings.md index 1b3cb9dcf..1da79a477 100644 --- a/docs/api-guide/settings.md +++ b/docs/api-guide/settings.md @@ -1,4 +1,7 @@ -source: settings.py +--- +source: + - settings.py +--- # Settings diff --git a/docs/api-guide/status-codes.md b/docs/api-guide/status-codes.md index c39afe397..a37ba15d4 100644 --- a/docs/api-guide/status-codes.md +++ b/docs/api-guide/status-codes.md @@ -1,4 +1,7 @@ -source: status.py +--- +source: + - status.py +--- # Status Codes diff --git a/docs/api-guide/testing.md b/docs/api-guide/testing.md index 5ca01b4e7..369e2c07b 100644 --- a/docs/api-guide/testing.md +++ b/docs/api-guide/testing.md @@ -1,4 +1,7 @@ -source: test.py +--- +source: + - test.py +--- # Testing diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index c2b06756a..713cc47cc 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -1,4 +1,7 @@ -source: throttling.py +--- +source: + - throttling.py +--- # Throttling diff --git a/docs/api-guide/validators.md b/docs/api-guide/validators.md index 9b2fc82ed..3c3b3d15c 100644 --- a/docs/api-guide/validators.md +++ b/docs/api-guide/validators.md @@ -1,4 +1,7 @@ -source: validators.py +--- +source: + - validators.py +--- # Validators diff --git a/docs/api-guide/versioning.md b/docs/api-guide/versioning.md index c106e536d..ad76ced3d 100644 --- a/docs/api-guide/versioning.md +++ b/docs/api-guide/versioning.md @@ -1,4 +1,7 @@ -source: versioning.py +--- +source: + - versioning.py +--- # Versioning diff --git a/docs/api-guide/views.md b/docs/api-guide/views.md index 7b2c4eff7..29e7997aa 100644 --- a/docs/api-guide/views.md +++ b/docs/api-guide/views.md @@ -1,5 +1,8 @@ -source: decorators.py - views.py +--- +source: + - decorators.py + - views.py +--- # Class-based Views diff --git a/docs/api-guide/viewsets.md b/docs/api-guide/viewsets.md index e7cf4d48f..cd765d3e6 100644 --- a/docs/api-guide/viewsets.md +++ b/docs/api-guide/viewsets.md @@ -1,4 +1,7 @@ -source: viewsets.py +--- +source: + - viewsets.py +--- # ViewSets diff --git a/mkdocs.yml b/mkdocs.yml index 83b3c8141..b855b69b2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,13 +4,15 @@ site_description: Django REST framework - Web APIs for Django repo_url: https://github.com/encode/django-rest-framework -theme_dir: docs_theme +theme: + name: mkdocs + custom_dir: docs_theme markdown_extensions: - toc: anchorlink: True -pages: +nav: - Home: 'index.md' - Tutorial: - 'Quickstart': 'tutorial/quickstart.md' diff --git a/requirements/requirements-documentation.txt b/requirements/requirements-documentation.txt index 012ec99f1..73158043e 100644 --- a/requirements/requirements-documentation.txt +++ b/requirements/requirements-documentation.txt @@ -1,2 +1,2 @@ # MkDocs to build our documentation. -mkdocs==0.16.3 +mkdocs==1.0.4 diff --git a/tox.ini b/tox.ini index ab5e54cc3..699ca909c 100644 --- a/tox.ini +++ b/tox.ini @@ -51,7 +51,7 @@ deps = -rrequirements/requirements-testing.txt [testenv:docs] -basepython = python2.7 +basepython = python3.7 skip_install = true commands = mkdocs build deps = From c04d6eac43c53b49c78120efcd7d950fd70541a7 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Sun, 30 Jun 2019 19:08:52 -0700 Subject: [PATCH 051/119] Update pytest (#6768) * Update pytest to 5.x * Ensure test de-monkeypatches auth on failure * Fix pytest.raises compat issue --- requirements/requirements-testing.txt | 4 ++-- tests/authentication/test_authentication.py | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/requirements/requirements-testing.txt b/requirements/requirements-testing.txt index 152ca7169..83ec9ab9e 100644 --- a/requirements/requirements-testing.txt +++ b/requirements/requirements-testing.txt @@ -1,4 +1,4 @@ # Pytest for running the tests. -pytest>=4.5.0,<4.6 -pytest-django>=3.4.8,<3.5 +pytest>=5.0,<5.1 +pytest-django>=3.5.1,<3.6 pytest-cov>=2.7.1 diff --git a/tests/authentication/test_authentication.py b/tests/authentication/test_authentication.py index 927989028..37e265e17 100644 --- a/tests/authentication/test_authentication.py +++ b/tests/authentication/test_authentication.py @@ -533,11 +533,13 @@ class BasicAuthenticationUnitTests(TestCase): is_active = False old_authenticate = authentication.authenticate authentication.authenticate = lambda **kwargs: MockUser() - auth = authentication.BasicAuthentication() - with pytest.raises(exceptions.AuthenticationFailed) as error: - auth.authenticate_credentials('foo', 'bar') - assert 'User inactive or deleted.' in str(error) - authentication.authenticate = old_authenticate + try: + auth = authentication.BasicAuthentication() + with pytest.raises(exceptions.AuthenticationFailed) as exc_info: + auth.authenticate_credentials('foo', 'bar') + assert 'User inactive or deleted.' in str(exc_info.value) + finally: + authentication.authenticate = old_authenticate @override_settings(ROOT_URLCONF=__name__, From e36ba9c46e266b3d9b9abb8f12cbf74cc67d84c1 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 1 Jul 2019 00:19:12 -0700 Subject: [PATCH 052/119] Add `twine check` to publish process (#6770) --- setup.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup.py b/setup.py index 6c0d64239..ebe31ed2c 100755 --- a/setup.py +++ b/setup.py @@ -56,6 +56,10 @@ if sys.argv[-1] == 'publish': print("twine not installed.\nUse `pip install twine`.\nExiting.") sys.exit() os.system("python setup.py sdist bdist_wheel") + if os.system("twine check dist/*"): + print("twine check failed. Packages might be outdated.") + print("Try using `pip install -U twine wheel`.\nExiting.") + sys.exit() os.system("twine upload dist/*") print("You probably want to also tag the version now:") print(" git tag -a %s -m 'version %s'" % (version, version)) From 42fd179d4ef07cef280b66f85d1915dfe6dcd7d9 Mon Sep 17 00:00:00 2001 From: Greg Curtis Date: Mon, 1 Jul 2019 08:16:21 -0400 Subject: [PATCH 053/119] upgrade jQuery to latest version (#6728) --- rest_framework/static/rest_framework/js/jquery-3.3.1.min.js | 2 -- rest_framework/static/rest_framework/js/jquery-3.4.1.min.js | 2 ++ rest_framework/templates/rest_framework/admin.html | 2 +- rest_framework/templates/rest_framework/base.html | 2 +- rest_framework/templates/rest_framework/docs/error.html | 2 +- rest_framework/templates/rest_framework/docs/index.html | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 rest_framework/static/rest_framework/js/jquery-3.3.1.min.js create mode 100644 rest_framework/static/rest_framework/js/jquery-3.4.1.min.js diff --git a/rest_framework/static/rest_framework/js/jquery-3.3.1.min.js b/rest_framework/static/rest_framework/js/jquery-3.3.1.min.js deleted file mode 100644 index 4d9b3a258..000000000 --- a/rest_framework/static/rest_framework/js/jquery-3.3.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" - + diff --git a/rest_framework/templates/rest_framework/base.html b/rest_framework/templates/rest_framework/base.html index 6d740f2b5..5d9d80b05 100644 --- a/rest_framework/templates/rest_framework/base.html +++ b/rest_framework/templates/rest_framework/base.html @@ -293,7 +293,7 @@ csrfToken: "{% if request %}{{ csrf_token }}{% endif %}" }; - + diff --git a/rest_framework/templates/rest_framework/docs/error.html b/rest_framework/templates/rest_framework/docs/error.html index ecdb67830..6afd25e7b 100644 --- a/rest_framework/templates/rest_framework/docs/error.html +++ b/rest_framework/templates/rest_framework/docs/error.html @@ -66,6 +66,6 @@ at rest_framework/docs/error.html.

- + diff --git a/rest_framework/templates/rest_framework/docs/index.html b/rest_framework/templates/rest_framework/docs/index.html index f73a2a993..6804afe10 100644 --- a/rest_framework/templates/rest_framework/docs/index.html +++ b/rest_framework/templates/rest_framework/docs/index.html @@ -38,7 +38,7 @@ {% include "rest_framework/docs/auth/basic.html" %} {% include "rest_framework/docs/auth/session.html" %} - + From 91ea13840699abca0e14e20732fd445d65c91914 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 1 Jul 2019 05:22:04 -0700 Subject: [PATCH 054/119] Allow redundant SerializerMethodField method names (#6767) --- rest_framework/fields.py | 6 ------ tests/test_fields.py | 12 ++++-------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index a68cd6ecc..8e2281b52 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1835,12 +1835,6 @@ class SerializerMethodField(Field): # 'method_name' argument has been used. For example: # my_field = serializer.SerializerMethodField(method_name='get_my_field') default_method_name = 'get_{field_name}'.format(field_name=field_name) - assert self.method_name != default_method_name, ( - "It is redundant to specify `%s` on SerializerMethodField '%s' in " - "serializer '%s', because it is the same as the default method name. " - "Remove the `method_name` argument." % - (self.method_name, field_name, parent.__class__.__name__) - ) # The method name should default to `get_{field_name}`. if self.method_name is None: diff --git a/tests/test_fields.py b/tests/test_fields.py index 468b33e57..5313aa395 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2212,17 +2212,13 @@ class TestSerializerMethodField: } def test_redundant_method_name(self): + # Prior to v3.10, redundant method names were not allowed. + # This restriction has since been removed. class ExampleSerializer(serializers.Serializer): example_field = serializers.SerializerMethodField('get_example_field') - with pytest.raises(AssertionError) as exc_info: - ExampleSerializer().fields - assert str(exc_info.value) == ( - "It is redundant to specify `get_example_field` on " - "SerializerMethodField 'example_field' in serializer " - "'ExampleSerializer', because it is the same as the default " - "method name. Remove the `method_name` argument." - ) + field = ExampleSerializer().fields['example_field'] + assert field.method_name == 'get_example_field' class TestValidationErrorCode: From 7179ea9984cae9bf20f69d4ddd48071f6e3de2fa Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 1 Jul 2019 05:25:47 -0700 Subject: [PATCH 055/119] Raise exception when field source is a built-in (#6766) --- rest_framework/fields.py | 26 ++++++++++++++++++++++++++ tests/test_fields.py | 28 +++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 8e2281b52..571c14557 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -47,10 +47,24 @@ class empty: pass +class BuiltinSignatureError(Exception): + """ + Built-in function signatures are not inspectable. This exception is raised + so the serializer can raise a helpful error message. + """ + pass + + def is_simple_callable(obj): """ True if the object is a callable that takes no arguments. """ + # Bail early since we cannot inspect built-in function signatures. + if inspect.isbuiltin(obj): + raise BuiltinSignatureError( + 'Built-in function signatures are not inspectable. ' + 'Wrap the function call in a simple, pure Python function.') + if not (inspect.isfunction(obj) or inspect.ismethod(obj) or isinstance(obj, functools.partial)): return False @@ -427,6 +441,18 @@ class Field: """ try: return get_attribute(instance, self.source_attrs) + except BuiltinSignatureError as exc: + msg = ( + 'Field source for `{serializer}.{field}` maps to a built-in ' + 'function type and is invalid. Define a property or method on ' + 'the `{instance}` instance that wraps the call to the built-in ' + 'function.'.format( + serializer=self.parent.__class__.__name__, + field=self.field_name, + instance=instance.__class__.__name__, + ) + ) + raise type(exc)(msg) except (KeyError, AttributeError) as exc: if self.default is not empty: return self.get_default() diff --git a/tests/test_fields.py b/tests/test_fields.py index 5313aa395..ba5164031 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -14,7 +14,9 @@ from django.utils.timezone import activate, deactivate, override, utc import rest_framework from rest_framework import exceptions, serializers from rest_framework.compat import ProhibitNullCharactersValidator -from rest_framework.fields import DjangoImageField, is_simple_callable +from rest_framework.fields import ( + BuiltinSignatureError, DjangoImageField, is_simple_callable +) # Tests for helper functions. # --------------------------- @@ -86,6 +88,18 @@ class TestIsSimpleCallable: assert is_simple_callable(ChoiceModel().get_choice_field_display) + def test_builtin_function(self): + # Built-in function signatures are not easily inspectable, so the + # current expectation is to just raise a helpful error message. + timestamp = datetime.datetime.now() + + with pytest.raises(BuiltinSignatureError) as exc_info: + is_simple_callable(timestamp.date) + + assert str(exc_info.value) == ( + 'Built-in function signatures are not inspectable. Wrap the ' + 'function call in a simple, pure Python function.') + def test_type_annotation(self): # The annotation will otherwise raise a syntax error in python < 3.5 locals = {} @@ -206,6 +220,18 @@ class TestSource: assert 'method call failed' in str(exc_info.value) + def test_builtin_callable_source_raises(self): + class BuiltinSerializer(serializers.Serializer): + date = serializers.ReadOnlyField(source='timestamp.date') + + with pytest.raises(BuiltinSignatureError) as exc_info: + BuiltinSerializer({'timestamp': datetime.datetime.now()}).data + + assert str(exc_info.value) == ( + 'Field source for `BuiltinSerializer.date` maps to a built-in ' + 'function type and is invalid. Define a property or method on ' + 'the `dict` instance that wraps the call to the built-in function.') + class TestReadOnly: def setup(self): From 79b2350b5429ba91c225bfa43721b8fd9689283d Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 1 Jul 2019 12:28:16 +0000 Subject: [PATCH 056/119] [fields] Format error message only if params exist (#6624) This prevents exceptions when the error message contains `%`, but is not intended for formatting. Django itself does the same: https://github.com/django/django/blob/6866c91b638de5368c18713fa851bfe56253ea55/django/core/exceptions.py#L168-L169 Fixes encode/django-rest-framework#6622 --- rest_framework/fields.py | 4 ++-- tests/test_fields.py | 23 +++++++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 571c14557..77767b2c5 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -231,12 +231,12 @@ def get_error_detail(exc_info): error_dict = exc_info.error_dict except AttributeError: return [ - ErrorDetail(error.message % (error.params or ()), + ErrorDetail((error.message % error.params) if error.params else error.message, code=error.code if error.code else code) for error in exc_info.error_list] return { k: [ - ErrorDetail(error.message % (error.params or ()), + ErrorDetail((error.message % error.params) if error.params else error.message, code=error.code if error.code else code) for error in errors ] for k, errors in error_dict.items() diff --git a/tests/test_fields.py b/tests/test_fields.py index ba5164031..971136747 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2255,14 +2255,33 @@ class TestValidationErrorCode: password = serializers.CharField() def validate_password(self, obj): - err = DjangoValidationError('exc_msg', code='exc_code') + err = DjangoValidationError( + 'exc_msg %s', code='exc_code', params=('exc_param',), + ) if use_list: err = DjangoValidationError([err]) raise err serializer = ExampleSerializer(data={'password': 123}) serializer.is_valid() - assert serializer.errors == {'password': ['exc_msg']} + assert serializer.errors == {'password': ['exc_msg exc_param']} + assert serializer.errors['password'][0].code == 'exc_code' + + @pytest.mark.parametrize('use_list', (False, True)) + def test_validationerror_code_with_msg_including_percent(self, use_list): + + class ExampleSerializer(serializers.Serializer): + password = serializers.CharField() + + def validate_password(self, obj): + err = DjangoValidationError('exc_msg with %', code='exc_code') + if use_list: + err = DjangoValidationError([err]) + raise err + + serializer = ExampleSerializer(data={'password': 123}) + serializer.is_valid() + assert serializer.errors == {'password': ['exc_msg with %']} assert serializer.errors['password'][0].code == 'exc_code' @pytest.mark.parametrize('code', (None, 'exc_code',)) From 3242adf0589b00e2098fa5b0a08652548b3cd42c Mon Sep 17 00:00:00 2001 From: Reupen Shah Date: Mon, 1 Jul 2019 13:30:16 +0100 Subject: [PATCH 057/119] Enforce allow_empty=False during partial validation of parent serializer (#6512) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #6509 This enforces allow_empty=True when a ListSerializer is a child of another serializer and partial validation is being performed on the parent serializer. This is because partial validation should allow fields to be omitted, but should not cause values that are invalid without partial validation to become valid. This effectively reverts #4222. None of the tests added in that PR fail if the associated change is removed, so I‘m not sure what that PR was trying to fix. --- rest_framework/serializers.py | 7 ------ tests/test_serializer_lists.py | 45 ++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 891b250f4..b153c067f 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -590,10 +590,6 @@ class ListSerializer(BaseSerializer): super().__init__(*args, **kwargs) self.child.bind(field_name='', parent=self) - def bind(self, field_name, parent): - super().bind(field_name, parent) - self.partial = self.parent.partial - def get_initial(self): if hasattr(self, 'initial_data'): return self.to_representation(self.initial_data) @@ -645,9 +641,6 @@ class ListSerializer(BaseSerializer): }, code='not_a_list') if not self.allow_empty and len(data) == 0: - if self.parent and self.partial: - raise SkipField() - message = self.error_messages['empty'] raise ValidationError({ api_settings.NON_FIELD_ERRORS_KEY: [message] diff --git a/tests/test_serializer_lists.py b/tests/test_serializer_lists.py index 12ed78b84..98e72385a 100644 --- a/tests/test_serializer_lists.py +++ b/tests/test_serializer_lists.py @@ -1,7 +1,9 @@ +import pytest from django.http import QueryDict from django.utils.datastructures import MultiValueDict from rest_framework import serializers +from rest_framework.exceptions import ErrorDetail class BasicObject: @@ -223,6 +225,49 @@ class TestNestedListSerializer: assert serializer.validated_data == expected_output +class TestNestedListSerializerAllowEmpty: + """Tests the behaviour of allow_empty=False when a ListSerializer is used as a field.""" + + @pytest.mark.parametrize('partial', (False, True)) + def test_allow_empty_true(self, partial): + """ + If allow_empty is True, empty lists should be allowed regardless of the value + of partial on the parent serializer. + """ + class ChildSerializer(serializers.Serializer): + id = serializers.IntegerField() + + class ParentSerializer(serializers.Serializer): + ids = ChildSerializer(many=True, allow_empty=True) + + serializer = ParentSerializer(data={'ids': []}, partial=partial) + assert serializer.is_valid() + assert serializer.validated_data == { + 'ids': [], + } + + @pytest.mark.parametrize('partial', (False, True)) + def test_allow_empty_false(self, partial): + """ + If allow_empty is False, empty lists should fail validation regardless of the value + of partial on the parent serializer. + """ + class ChildSerializer(serializers.Serializer): + id = serializers.IntegerField() + + class ParentSerializer(serializers.Serializer): + ids = ChildSerializer(many=True, allow_empty=False) + + serializer = ParentSerializer(data={'ids': []}, partial=partial) + assert not serializer.is_valid() + assert serializer.errors == { + 'ids': { + 'non_field_errors': [ + ErrorDetail(string='This list may not be empty.', code='empty')], + } + } + + class TestNestedListOfListsSerializer: def setup(self): class TestSerializer(serializers.Serializer): From a7778897adbc7184f1b500bf221c29b2d7201bbd Mon Sep 17 00:00:00 2001 From: Karambir Singh Nain <653561+karambir@users.noreply.github.com> Date: Tue, 2 Jul 2019 06:04:34 +0530 Subject: [PATCH 058/119] Fix ArrayField kwargs mapping for blank/allow_empty (#6758) Postgres ArrayField blank=True should allow empty Lists in Serializer --- rest_framework/utils/field_mapping.py | 3 +++ tests/test_model_serializer.py | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index 1281ee167..b90c3eead 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -109,6 +109,9 @@ def get_field_kwargs(field_name, model_field): if model_field.blank and (isinstance(model_field, (models.CharField, models.TextField))): kwargs['allow_blank'] = True + if not model_field.blank and (postgres_fields and isinstance(model_field, postgres_fields.ArrayField)): + kwargs['allow_empty'] = False + if isinstance(model_field, models.FilePathField): kwargs['path'] = model_field.path diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index ae320927c..4d9aff454 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -440,15 +440,17 @@ class TestPosgresFieldsMapping(TestCase): def test_array_field(self): class ArrayFieldModel(models.Model): array_field = postgres_fields.ArrayField(base_field=models.CharField()) + array_field_with_blank = postgres_fields.ArrayField(blank=True, base_field=models.CharField()) class TestSerializer(serializers.ModelSerializer): class Meta: model = ArrayFieldModel - fields = ['array_field'] + fields = ['array_field', 'array_field_with_blank'] expected = dedent(""" TestSerializer(): - array_field = ListField(child=CharField(label='Array field', validators=[])) + array_field = ListField(allow_empty=False, child=CharField(label='Array field', validators=[])) + array_field_with_blank = ListField(child=CharField(label='Array field with blank', validators=[]), required=False) """) self.assertEqual(repr(TestSerializer()), expected) From da06240257a7f832693fd6eee5de69ab9a882e83 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 1 Jul 2019 19:14:45 -0700 Subject: [PATCH 059/119] Fix ModelField max_length argument (#6773) --- rest_framework/fields.py | 4 ++-- tests/test_fields.py | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 77767b2c5..f5f0b632e 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1888,9 +1888,9 @@ class ModelField(Field): self.model_field = model_field # The `max_length` option is supported by Django's base `Field` class, # so we'd better support it here. - max_length = kwargs.pop('max_length', None) + self.max_length = kwargs.pop('max_length', None) super().__init__(**kwargs) - if max_length is not None: + if self.max_length is not None: message = lazy_format(self.error_messages['max_length'], max_length=self.max_length) self.validators.append( MaxLengthValidator(self.max_length, message=message)) diff --git a/tests/test_fields.py b/tests/test_fields.py index 971136747..7c495cd63 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2204,8 +2204,8 @@ class TestBinaryJSONField(FieldValues): field = serializers.JSONField(binary=True) -# Tests for FieldField. -# --------------------- +# Tests for FileField. +# -------------------- class MockRequest: def build_absolute_uri(self, value): @@ -2247,6 +2247,21 @@ class TestSerializerMethodField: assert field.method_name == 'get_example_field' +# Tests for ModelField. +# --------------------- + +class TestModelField: + def test_max_length_init(self): + field = serializers.ModelField(None) + assert len(field.validators) == 0 + + field = serializers.ModelField(None, max_length=10) + assert len(field.validators) == 1 + + +# Tests for validation errors +# --------------------------- + class TestValidationErrorCode: @pytest.mark.parametrize('use_list', (False, True)) def test_validationerror_code_with_msg(self, use_list): From 41d5338ba6072c559f16be6f69e5c2019e1bfca0 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Tue, 2 Jul 2019 03:21:41 -0700 Subject: [PATCH 060/119] Translate Throttled exception messages (#6771) --- rest_framework/exceptions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rest_framework/exceptions.py b/rest_framework/exceptions.py index a91138026..ba0c9458a 100644 --- a/rest_framework/exceptions.py +++ b/rest_framework/exceptions.py @@ -219,8 +219,8 @@ class UnsupportedMediaType(APIException): class Throttled(APIException): status_code = status.HTTP_429_TOO_MANY_REQUESTS default_detail = _('Request was throttled.') - extra_detail_singular = 'Expected available in {wait} second.' - extra_detail_plural = 'Expected available in {wait} seconds.' + extra_detail_singular = _('Expected available in {wait} second.') + extra_detail_plural = _('Expected available in {wait} seconds.') default_code = 'throttled' def __init__(self, wait=None, detail=None, code=None): From 280014fe37c57f7068c42e9c2f644c685c48b909 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Tue, 2 Jul 2019 04:09:45 -0700 Subject: [PATCH 061/119] Update docs for pagination settings (#6772) --- docs/api-guide/settings.md | 45 +++++--------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) diff --git a/docs/api-guide/settings.md b/docs/api-guide/settings.md index 1da79a477..03f4b9def 100644 --- a/docs/api-guide/settings.md +++ b/docs/api-guide/settings.md @@ -109,32 +109,19 @@ Default: `'rest_framework.schemas.AutoSchema'` *The following settings control the behavior of the generic class-based views.* -#### DEFAULT_PAGINATION_SERIALIZER_CLASS - ---- - -**This setting has been removed.** - -The pagination API does not use serializers to determine the output format, and -you'll need to instead override the `get_paginated_response method on a -pagination class in order to specify how the output format is controlled. - ---- - #### DEFAULT_FILTER_BACKENDS A list of filter backend classes that should be used for generic filtering. If set to `None` then generic filtering is disabled. -#### PAGINATE_BY +#### DEFAULT_PAGINATION_CLASS ---- +The default class to use for queryset pagination. If set to `None`, pagination +is disabled by default. See the pagination documentation for further guidance on +[setting](pagination.md#setting-the-pagination-style) and +[modifying](pagination.md#modifying-the-pagination-style) the pagination style. -**This setting has been removed.** - -See the pagination documentation for further guidance on [setting the pagination style](pagination.md#modifying-the-pagination-style). - ---- +Default: `None` #### PAGE_SIZE @@ -142,26 +129,6 @@ The default page size to use for pagination. If set to `None`, pagination is di Default: `None` -#### PAGINATE_BY_PARAM - ---- - -**This setting has been removed.** - -See the pagination documentation for further guidance on [setting the pagination style](pagination.md#modifying-the-pagination-style). - ---- - -#### MAX_PAGINATE_BY - ---- - -**This setting has been removed.** - -See the pagination documentation for further guidance on [setting the pagination style](pagination.md#modifying-the-pagination-style). - ---- - ### SEARCH_PARAM The name of a query parameter, which can be used to specify the search term used by `SearchFilter`. From e4e75f1c7ceb053bffb8031e0468000c4d9c3cec Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Tue, 2 Jul 2019 11:33:48 -0700 Subject: [PATCH 062/119] Strip null characters from search param (#6774) --- rest_framework/filters.py | 4 +++- tests/test_filters.py | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 2af063926..c0c708d26 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -64,7 +64,9 @@ class SearchFilter(BaseFilterBackend): and may be comma and/or whitespace delimited. """ params = request.query_params.get(self.search_param, '') - return params.replace(',', ' ').split() + params = params.replace('\x00', '') # strip null characters + params = params.replace(',', ' ') + return params.split() def construct_search(self, field_name): lookup = self.lookup_prefixes.get(field_name[0]) diff --git a/tests/test_filters.py b/tests/test_filters.py index a52f40103..6d7969a92 100644 --- a/tests/test_filters.py +++ b/tests/test_filters.py @@ -180,6 +180,15 @@ class SearchFilterTests(TestCase): {'id': 3, 'title': 'zzz', 'text': 'cde'} ] + def test_search_field_with_null_characters(self): + view = generics.GenericAPIView() + request = factory.get('/?search=\0as%00d\x00f') + request = view.initialize_request(request) + + terms = filters.SearchFilter().get_search_terms(request) + + assert terms == ['asdf'] + class AttributeModel(models.Model): label = models.CharField(max_length=32) From 1256d5363def76aac271cc3903a80ab723b78ea6 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 3 Jul 2019 01:56:26 +0000 Subject: [PATCH 063/119] Add project_urls to setup.py (#6625) --- setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ebe31ed2c..2f8dafd21 100755 --- a/setup.py +++ b/setup.py @@ -103,7 +103,11 @@ setup( 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3 :: Only', 'Topic :: Internet :: WWW/HTTP', - ] + ], + project_urls={ + 'Funding': 'https://fund.django-rest-framework.org/topics/funding/', + 'Source': 'https://github.com/encode/django-rest-framework', + }, ) # (*) Please direct queries to the discussion group, rather than to me directly From 43d4736802792a370c59db76545697866048c209 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 2 Jul 2019 19:04:49 -0700 Subject: [PATCH 064/119] Fix rel=prev/next in docs (#6650) --- docs_theme/nav.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs_theme/nav.html b/docs_theme/nav.html index f093178d3..732694f48 100644 --- a/docs_theme/nav.html +++ b/docs_theme/nav.html @@ -2,10 +2,10 @@

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 z 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�{% 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