From ad55072710803e12d147e8173fd9e2acc05c0dbd Mon Sep 17 00:00:00 2001 From: Iman Karimi Date: Tue, 12 Oct 2021 10:00:43 +0330 Subject: [PATCH] django admin two factor auth is ready --- .gitignore | 1 + LICENSE | 2 +- MANIFEST.in | 5 + README.md | 90 ++++++++++- admin_two_factor/__init__.py | 0 admin_two_factor/admin.py | 44 +++++ admin_two_factor/apps.py | 6 + .../context_processors/__init__.py | 0 .../context_processors/two_factor.py | 16 ++ admin_two_factor/migrations/0001_initial.py | 33 ++++ admin_two_factor/migrations/__init__.py | 0 admin_two_factor/models.py | 77 +++++++++ admin_two_factor/settings.py | 12 ++ .../css/jquery-confirm.min.css | 9 ++ .../two_step_assets/jquery-cookie/.gitignore | 4 + .../two_step_assets/jquery-cookie/.jshintrc | 17 ++ .../jquery-cookie/.tm_properties | 11 ++ .../two_step_assets/jquery-cookie/.travis.yml | 10 ++ .../jquery-cookie/CHANGELOG.md | 73 +++++++++ .../jquery-cookie/CONTRIBUTING.md | 53 ++++++ .../jquery-cookie/Gruntfile.js | 115 +++++++++++++ .../jquery-cookie/MIT-LICENSE.txt | 20 +++ .../two_step_assets/jquery-cookie/README.md | 151 ++++++++++++++++++ .../two_step_assets/jquery-cookie/bower.json | 18 +++ .../jquery-cookie/component.json | 14 ++ .../jquery-cookie/cookie.jquery.json | 32 ++++ .../jquery-cookie/jquery.cookie.js | 117 ++++++++++++++ .../jquery-cookie/package.json | 50 ++++++ .../two_step_assets/js/jquery-3.5.1.min.js | 2 + .../two_step_assets/js/jquery-confirm.min.js | 10 ++ .../static/two_step_assets/js/verification.js | 70 ++++++++ admin_two_factor/templates/admin/base.html | 8 + admin_two_factor/templates/admin/login.html | 90 +++++++++++ .../two_step_verification/admin/qrcode.html | 10 ++ admin_two_factor/tests.py | 3 + admin_two_factor/urls.py | 7 + admin_two_factor/utils.py | 44 +++++ admin_two_factor/views.py | 46 ++++++ docs/blank.txt | 1 + .../django_admin_two_factor_auth_1.png | Bin 0 -> 43742 bytes .../django_admin_two_factor_auth_2.png | Bin 0 -> 33321 bytes .../django_admin_two_factor_auth_3.png | Bin 0 -> 82581 bytes .../django_admin_two_factor_auth_4.png | Bin 0 -> 61536 bytes .../django_admin_two_factor_auth_5.png | Bin 0 -> 25473 bytes setup.cfg | 32 ++++ setup.py | 13 ++ 46 files changed, 1313 insertions(+), 3 deletions(-) create mode 100644 MANIFEST.in create mode 100644 admin_two_factor/__init__.py create mode 100644 admin_two_factor/admin.py create mode 100644 admin_two_factor/apps.py create mode 100644 admin_two_factor/context_processors/__init__.py create mode 100644 admin_two_factor/context_processors/two_factor.py create mode 100644 admin_two_factor/migrations/0001_initial.py create mode 100644 admin_two_factor/migrations/__init__.py create mode 100644 admin_two_factor/models.py create mode 100644 admin_two_factor/settings.py create mode 100644 admin_two_factor/static/two_step_assets/css/jquery-confirm.min.css create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/.gitignore create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/.jshintrc create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/.tm_properties create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/.travis.yml create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/CHANGELOG.md create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/CONTRIBUTING.md create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/Gruntfile.js create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/MIT-LICENSE.txt create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/README.md create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/bower.json create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/component.json create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/cookie.jquery.json create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/jquery.cookie.js create mode 100644 admin_two_factor/static/two_step_assets/jquery-cookie/package.json create mode 100644 admin_two_factor/static/two_step_assets/js/jquery-3.5.1.min.js create mode 100644 admin_two_factor/static/two_step_assets/js/jquery-confirm.min.js create mode 100644 admin_two_factor/static/two_step_assets/js/verification.js create mode 100644 admin_two_factor/templates/admin/base.html create mode 100644 admin_two_factor/templates/admin/login.html create mode 100644 admin_two_factor/templates/two_step_verification/admin/qrcode.html create mode 100644 admin_two_factor/tests.py create mode 100755 admin_two_factor/urls.py create mode 100644 admin_two_factor/utils.py create mode 100644 admin_two_factor/views.py create mode 100644 docs/blank.txt create mode 100644 screenshoots/django_admin_two_factor_auth_1.png create mode 100644 screenshoots/django_admin_two_factor_auth_2.png create mode 100644 screenshoots/django_admin_two_factor_auth_3.png create mode 100644 screenshoots/django_admin_two_factor_auth_4.png create mode 100644 screenshoots/django_admin_two_factor_auth_5.png create mode 100644 setup.cfg create mode 100644 setup.py diff --git a/.gitignore b/.gitignore index b6e4761..7ed07d0 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ dmypy.json # Pyre type checker .pyre/ +.idea/ diff --git a/LICENSE b/LICENSE index 8ceef89..061f2de 100644 --- a/LICENSE +++ b/LICENSE @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +SOFTWARE. \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..7210096 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +include LICENSE +include README.rst +recursive-include admin_two_factor/static * +recursive-include admin_two_factor/templates * +recursive-include docs * \ No newline at end of file diff --git a/README.md b/README.md index 6790351..256ac00 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,88 @@ -# django-admin-two-factor-auth -Two factor authentication for Django admin +# Django Admin Two Factor Authentication + +**Django Admin Two-Factor Authentication**, allows you to login django admin with google authenticator. + +
+ +## Why Django Log Reader? + +- Using google authenticator to login your Django admin. +- Used jquery confirm dialog to get code. +- Simple interface +- Easy integration + +
+ +[comment]: <> (![Django Log Reader](https://raw.githubusercontent.com/imankarimi/django-log-reader/main/screenshots/django_log_reader.png)) + +[comment]: <> (
) + +## How to use it + +* Download and install last version of **Django Admin Two-Factor Authentication**: + +```bash +$ pip install git+https://github.com/imankarimi/django-admin-two-factor-auth.git +$ # or +$ easy_install git+https://github.com/imankarimi/django-admin-two-factor-auth.git +``` + +* Add 'admin_two_factor' application to the INSTALLED_APPS setting of your Django project `settings.py` file (note it should be before 'django.contrib.admin'): + +```python +INSTALLED_APPS = ( + 'admin_two_factor.apps.TwoStepVerificationConfig', + 'django.contrib.admin', + # ... +) +``` + +* Migrate `admin_two_factor`: + +```bash +$ python manage.py migrate admin_two_factor +$ # or +$ python manage.py syncdb +``` + +* Add `‍‍‍‍ADMIN_TWO_FACTOR_NAME` in your `settings.py`. This value will be displayed in [Google Authenticator](https://support.google.com/accounts/answer/1066447?hl=en). + +```python +ADMIN_TWO_FACTOR_NAME = 'PROJECT_NAME' +``` + +* Include the **Admin Two Factor** URL config in `PROJECT_CORE/urls.py`: + +```python +urlpatterns = [ + path('admin/', admin.site.urls), + path('two_factor/', include(('admin_two_factor.urls', 'admin_two_factor'), namespace='two_factor')), + # ... +] +``` + +* Collect static if you are in production environment: + +```bash +$ python manage.py collectstatic +``` + +* Clear your browser cache + +
+ +## Start the app + +```bash +$ # Set up the database +$ python manage.py makemigrations +$ python manage.py migrate +$ +$ # Create the superuser +$ python manage.py createsuperuser +$ +$ # Start the application (development mode) +$ python manage.py runserver # default port 8000 +``` + +* Access the `admin` section in the browser: `http://127.0.0.1:8000/` diff --git a/admin_two_factor/__init__.py b/admin_two_factor/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/admin_two_factor/admin.py b/admin_two_factor/admin.py new file mode 100644 index 0000000..13a31a8 --- /dev/null +++ b/admin_two_factor/admin.py @@ -0,0 +1,44 @@ +from django.contrib import admin, messages +from django.shortcuts import redirect +from django.template.loader import render_to_string +from django.utils.translation import gettext as _ +from admin_two_factor.models import TwoFactorVerification +from admin_two_factor.utils import set_expire + + +@admin.register(TwoFactorVerification) +class TwoStepVerificationAdmin(admin.ModelAdmin): + list_display = ['user', 'is_active', 'created_time'] + raw_id_fields = ['user'] + list_filter = ['is_active', 'created_time'] + fieldsets = (("", {'fields': ('user', 'code', 'is_active', 'qrcode'), }),) + readonly_fields = ['qrcode'] + + def qrcode(self, obj): + secret_key, qrcode = obj.get_qrcode + if qrcode: + return render_to_string('two_step_verification/admin/qrcode.html', {'qrcode': qrcode}) + + qrcode.short_description = _('Two Step QR Code') + + def get_fieldsets(self, request, obj=None): + fieldsets = self.fieldsets + if not obj: + fieldsets = (("", {'fields': ('user',), }),) + elif obj and obj.secret: + fieldsets = (("", {'fields': ('user', 'code', 'is_active'), }),) + return fieldsets + + def response_add(self, request, obj, post_url_continue=None): + self.message_user(request, _('user added successfully'), level=messages.SUCCESS) + return redirect('admin:admin_two_factor_twofactorverification_change', obj.id) + + def response_change(self, request, obj): + request.session['two_step_%s' % request.user.id] = {'expire': set_expire().get('time')} + return super(TwoStepVerificationAdmin, self).response_change(request, obj) + + def changeform_view(self, request, object_id=None, form_url='', extra_context=None): + extra_context = extra_context or {} + if not self.get_object(request, object_id): + extra_context['show_save_and_add_another'] = False + return super(TwoStepVerificationAdmin, self).changeform_view(request, object_id, form_url, extra_context) diff --git a/admin_two_factor/apps.py b/admin_two_factor/apps.py new file mode 100644 index 0000000..4e2d073 --- /dev/null +++ b/admin_two_factor/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class TwoStepVerificationConfig(AppConfig): + name = 'admin_two_factor' + verbose_name = 'two factor' diff --git a/admin_two_factor/context_processors/__init__.py b/admin_two_factor/context_processors/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/admin_two_factor/context_processors/two_factor.py b/admin_two_factor/context_processors/two_factor.py new file mode 100644 index 0000000..234fec8 --- /dev/null +++ b/admin_two_factor/context_processors/two_factor.py @@ -0,0 +1,16 @@ +from django.contrib.auth import logout + +from admin_two_factor.utils import is_expired + + +def verification(request): + user = request.user + can_redirect = False + if user.is_authenticated and user.is_staff and hasattr(user, 'two_step') and user.two_step.is_active: + key = 'two_step_%s' % user.id + user_session = request.session[key] if key in request.session else None + if not user_session or is_expired(user_session['expire']): + if user.id: + logout(request) + can_redirect = True + return {'can_redirect': can_redirect} diff --git a/admin_two_factor/migrations/0001_initial.py b/admin_two_factor/migrations/0001_initial.py new file mode 100644 index 0000000..cf10ab9 --- /dev/null +++ b/admin_two_factor/migrations/0001_initial.py @@ -0,0 +1,33 @@ +# Generated by Django 3.1.3 on 2020-11-09 14:35 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='TwoFactorVerification', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('secret', models.CharField(blank=True, editable=False, max_length=20, null=True, unique=True, verbose_name='secret key')), + ('code', models.CharField(blank=True, help_text='You must enter the code here to active/deactivate two step verification.', max_length=8, null=True, verbose_name='code')), + ('is_active', models.BooleanField(default=False, verbose_name='is active?')), + ('created_time', models.DateTimeField(auto_now_add=True, verbose_name='created time')), + ('updated_time', models.DateTimeField(auto_now=True, verbose_name='updated time')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, related_name='two_step', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'two factor verification', + 'verbose_name_plural': 'two factor verifications', + }, + ), + ] diff --git a/admin_two_factor/migrations/__init__.py b/admin_two_factor/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/admin_two_factor/models.py b/admin_two_factor/models.py new file mode 100644 index 0000000..28fbb3f --- /dev/null +++ b/admin_two_factor/models.py @@ -0,0 +1,77 @@ +import base64 +import os +from io import BytesIO + +import pyotp +import qrcode +from admin_two_factor import settings +from django.contrib.auth.models import User +from django.core.cache import cache +from django.core.exceptions import ValidationError +from django.db import models +from django.utils.translation import gettext as _ + + +class TwoFactorVerification(models.Model): + user = models.OneToOneField(User, on_delete=models.DO_NOTHING, related_name='two_step') + secret = models.CharField(_('secret key'), max_length=20, null=True, blank=True, unique=True, editable=False) + code = models.CharField(_('code'), max_length=8, null=True, blank=True, + help_text=_('You must enter the code here to active/deactivate two step verification.')) + is_active = models.BooleanField(_('is active?'), default=False) + + created_time = models.DateTimeField(_('created time'), auto_now_add=True) + updated_time = models.DateTimeField(_('updated time'), auto_now=True) + + class Meta: + verbose_name = _('two factor verification') + verbose_name_plural = _('two factor verifications') + + def clean(self): + if self.is_active and not self.secret and not self.code: + raise ValidationError("The code field is required.") + if not self.is_active and self.secret and not self.code: + raise ValidationError("The code field is required.") + + if self.code: + if self.is_active and not self.secret: + secret = cache.get('user_secret_key_%s' % self.user.id) + + is_verify = self.is_verify(code=self.code, secret=secret) + if not is_verify: + raise ValidationError("The code is wrong. please try again.") + + self.secret = secret + + elif not self.is_active and self.secret: + is_verify = self.is_verify(code=self.code) + if not is_verify: + raise ValidationError("The code is wrong. please try again.") + self.secret = None + + self.code = None + + @property + def get_qrcode(self): + if self.secret or not self.user: + return self.secret, None + + secret_key = base64.b32encode(os.urandom(10)).decode() + username = self.user.get_full_name() if self.user.get_full_name() else self.user.username + query = pyotp.totp.TOTP(secret_key).provisioning_uri(username, + issuer_name=settings.ADMIN_TWO_FACTOR_NAME) + qr_img = qrcode.make(query) + buffered = BytesIO() + qr_img.save(buffered, format="JPEG") + link = base64.b64encode(buffered.getvalue()).decode('UTF-8') + + cache.set('user_secret_key_%s' % self.user_id, secret_key, 300) + + return secret_key, link + + def is_verify(self, code, secret=None): + secret = secret if secret else self.secret + if secret: + totp = pyotp.TOTP(secret) + if code == totp.now(): + return True + return False diff --git a/admin_two_factor/settings.py b/admin_two_factor/settings.py new file mode 100644 index 0000000..5d2de98 --- /dev/null +++ b/admin_two_factor/settings.py @@ -0,0 +1,12 @@ +from django.conf import settings + +# Two factor name +ADMIN_TWO_FACTOR_NAME = getattr(settings, 'ADMIN_TWO_FACTOR_NAME', None) + +# two factor session expire time (second) +SESSION_COOKIE_AGE = getattr(settings, 'SESSION_COOKIE_AGE', 300) + +# Two factor context processors +settings.TEMPLATES[0]['OPTIONS']['context_processors'].append( + 'admin_two_factor.context_processors.two_factor.verification' +) diff --git a/admin_two_factor/static/two_step_assets/css/jquery-confirm.min.css b/admin_two_factor/static/two_step_assets/css/jquery-confirm.min.css new file mode 100644 index 0000000..400f0b8 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/css/jquery-confirm.min.css @@ -0,0 +1,9 @@ +/*! + * jquery-confirm v3.3.2 (http://craftpip.github.io/jquery-confirm/) + * Author: boniface pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2017 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */@-webkit-keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body[class*=jconfirm-no-scroll-]{overflow:hidden!important}.jconfirm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999999;font-family:inherit;overflow:hidden}.jconfirm .jconfirm-bg{position:fixed;top:0;left:0;right:0;bottom:0;-webkit-transition:opacity .4s;transition:opacity .4s}.jconfirm .jconfirm-bg.jconfirm-bg-h{opacity:0!important}.jconfirm .jconfirm-scrollpane{-webkit-perspective:500px;perspective:500px;-webkit-perspective-origin:center;perspective-origin:center;display:table;width:100%;height:100%}.jconfirm .jconfirm-row{display:table-row;width:100%}.jconfirm .jconfirm-cell{display:table-cell;vertical-align:middle}.jconfirm .jconfirm-holder{max-height:100%;padding:50px 0}.jconfirm .jconfirm-box-container{-webkit-transition:-webkit-transform;transition:-webkit-transform;transition:transform;transition:transform,-webkit-transform}.jconfirm .jconfirm-box-container.jconfirm-no-transition{-webkit-transition:none!important;transition:none!important}.jconfirm .jconfirm-box{background:white;border-radius:4px;position:relative;outline:0;padding:15px 15px 0;overflow:hidden;margin-left:auto;margin-right:auto}@-webkit-keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@-webkit-keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@-webkit-keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@-webkit-keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@-webkit-keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@-webkit-keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}@keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}.jconfirm .jconfirm-box.jconfirm-type-animated{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.jconfirm .jconfirm-box.jconfirm-type-blue{border-top:solid 7px #3498db;-webkit-animation-name:type-blue;animation-name:type-blue}.jconfirm .jconfirm-box.jconfirm-type-green{border-top:solid 7px #2ecc71;-webkit-animation-name:type-green;animation-name:type-green}.jconfirm .jconfirm-box.jconfirm-type-red{border-top:solid 7px #e74c3c;-webkit-animation-name:type-red;animation-name:type-red}.jconfirm .jconfirm-box.jconfirm-type-orange{border-top:solid 7px #f1c40f;-webkit-animation-name:type-orange;animation-name:type-orange}.jconfirm .jconfirm-box.jconfirm-type-purple{border-top:solid 7px #9b59b6;-webkit-animation-name:type-purple;animation-name:type-purple}.jconfirm .jconfirm-box.jconfirm-type-dark{border-top:solid 7px #34495e;-webkit-animation-name:type-dark;animation-name:type-dark}.jconfirm .jconfirm-box.loading{height:120px}.jconfirm .jconfirm-box.loading:before{content:'';position:absolute;left:0;background:white;right:0;top:0;bottom:0;border-radius:10px;z-index:1}.jconfirm .jconfirm-box.loading:after{opacity:.6;content:'';height:30px;width:30px;border:solid 3px transparent;position:absolute;left:50%;margin-left:-15px;border-radius:50%;-webkit-animation:jconfirm-spin 1s infinite linear;animation:jconfirm-spin 1s infinite linear;border-bottom-color:dodgerblue;top:50%;margin-top:-15px;z-index:2}.jconfirm .jconfirm-box div.jconfirm-closeIcon{height:20px;width:20px;position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6;text-align:center;font-size:27px!important;line-height:14px!important;display:none;z-index:1}.jconfirm .jconfirm-box div.jconfirm-closeIcon:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-closeIcon .fa{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{opacity:1}.jconfirm .jconfirm-box div.jconfirm-title-c{display:block;font-size:22px;line-height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;padding-bottom:15px}.jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand{cursor:move}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{font-size:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i{vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:inherit;font-family:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-content-pane{margin-bottom:15px;height:auto;-webkit-transition:height .4s ease-in;transition:height .4s ease-in;display:inline-block;width:100%;position:relative;overflow-x:hidden;overflow-y:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll{overflow-y:hidden}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar{width:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img{max-width:100%;height:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty{display:none}.jconfirm .jconfirm-box .jconfirm-buttons{padding-bottom:11px}.jconfirm .jconfirm-box .jconfirm-buttons>button{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)} \ No newline at end of file diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/.gitignore b/admin_two_factor/static/two_step_assets/jquery-cookie/.gitignore new file mode 100644 index 0000000..afea911 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/.gitignore @@ -0,0 +1,4 @@ +node_modules +build +.sizecache.json +*.log \ No newline at end of file diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/.jshintrc b/admin_two_factor/static/two_step_assets/jquery-cookie/.jshintrc new file mode 100644 index 0000000..a37f48c --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/.jshintrc @@ -0,0 +1,17 @@ +{ + "boss": true, + "browser": true, + "curly": true, + "eqeqeq": true, + "eqnull": true, + "expr": true, + "evil": true, + "newcap": true, + "noarg": true, + "undef": true, + "globals": { + "define": true, + "jQuery": true, + "require": true + } +} diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/.tm_properties b/admin_two_factor/static/two_step_assets/jquery-cookie/.tm_properties new file mode 100644 index 0000000..6fd361d --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/.tm_properties @@ -0,0 +1,11 @@ +softTabs = false +tabSize = 2 + +[ text.plain ] +softWrap = true +wrapColumn = "Use Window Frame" +softTabs = true +tabSize = 4 + +[ "*.md" ] +fileType = "text.plain" diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/.travis.yml b/admin_two_factor/static/two_step_assets/jquery-cookie/.travis.yml new file mode 100644 index 0000000..b65fdbd --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/.travis.yml @@ -0,0 +1,10 @@ +language: node_js +node_js: +- 0.8 +before_script: +- npm install -g grunt-cli +script: grunt ci --verbose +env: + global: + - secure: HRae0kyIDDuhonvMi2SfEl1WJb4K/wX8WmzT9YkxFbmWwLjiOMkmqyuEyi76DbTC1cb9o7WwGVgbP1DhSm6n6m0Lz+PSzpprBN4QZuJc56jcc+tBA6gM81hyUufaTT0yUWz112Bu06kWIAs44w5PtG0FYZR0CuIN8fQvZi8fXCQ= + - secure: c+M5ECIfxDcVrr+ZlqgpGjv8kVM/hxiz3ACMCn4ZkDiaeq4Rw0wWIGZYL6aV5fhsoHgzEQ/XQPca8xKs3Umr7R3b6Vr3AEyFnW+LP67K/1Qbz4Pi3PvhDH/h4rvK7fOoTqTDCVVDEH3v4pefsz2VaKemG4iBKxrcof5aR4Rjopk= diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/CHANGELOG.md b/admin_two_factor/static/two_step_assets/jquery-cookie/CHANGELOG.md new file mode 100644 index 0000000..59d868f --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/CHANGELOG.md @@ -0,0 +1,73 @@ +HEAD +----- + +1.4.1 +----- +- Added support for CommonJS. + +- Added support for package managers: Jam (http://jamjs.org), volo (http://volojs.org), Component (http://component.io), jspm (http://jspm.io). + +- The expires option now interpretes fractions of numbers (e.g. days) correctly. + +1.4.0 +----- +- Support for AMD. + +- Removed deprecated method `$.cookie('name', null)` for deleting a cookie, + use `$.removeCookie('name')`. + +- `$.cookie('name')` now returns `undefined` in case such cookie does not exist + (was `null`). Because the return value is still falsy, testing for existence + of a cookie like `if ( $.cookie('foo') )` keeps working without change. + +- Renamed bower package definition (component.json -> bower.json) for usage + with up-to-date bower. + +- Badly encoded cookies no longer throw exception upon reading but do return + undefined (similar to how we handle JSON parse errors with json = true). + +- Added conversion function as optional last argument for reading, + so that values can be changed to a different representation easily on the fly. + Useful for parsing numbers for instance: + + ```javascript + $.cookie('foo', '42'); + $.cookie('foo', Number); // => 42 + ``` + +1.3.1 +----- +- Fixed issue where it was no longer possible to check for an arbitrary cookie, + while json is set to true, there was a SyntaxError thrown from JSON.parse. + +- Fixed issue where RFC 2068 decoded cookies were not properly read. + +1.3.0 +----- +- Configuration options: `raw`, `json`. Replaces raw option, becomes config: + + ```javascript + $.cookie.raw = true; // bypass encoding/decoding the cookie value + $.cookie.json = true; // automatically JSON stringify/parse value + ``` + + Thus the default options now cleanly contain cookie attributes only. + +- Removing licensing under GPL Version 2, the plugin is now released under MIT License only +(keeping it simple and following the jQuery library itself here). + +- Bugfix: Properly handle RFC 2068 quoted cookie values. + +- Added component.json for bower. + +- Added jQuery plugin package manifest. + +- `$.cookie()` returns all available cookies. + +1.2.0 +----- +- Adding `$.removeCookie('foo')` for deleting a cookie, using `$.cookie('foo', null)` is now deprecated. + +1.1 +--- +- Adding default options. diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/CONTRIBUTING.md b/admin_two_factor/static/two_step_assets/jquery-cookie/CONTRIBUTING.md new file mode 100644 index 0000000..f174678 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/CONTRIBUTING.md @@ -0,0 +1,53 @@ +##Issues + +- Report issues or feature requests on [GitHub Issues](https://github.com/carhartl/jquery-cookie/issues). +- If reporting a bug, please add a [simplified example](http://sscce.org/). + +##Pull requests +- Create a new topic branch for every separate change you make. +- Create a test case if you are fixing a bug or implementing an important feature. +- Make sure the build runs successfully. + +## Development + +###Tools +We use the following tools for development: + +- [Qunit](http://qunitjs.com/) for tests. +- [NodeJS](http://nodejs.org/download/) required to run grunt and the test server only. +- [Grunt](http://gruntjs.com/getting-started) for task management. + +###Getting started +Install [NodeJS](http://nodejs.org/). +Install globally grunt-cli using the following command: + + $ npm install -g grunt-cli + +Browse to the project root directory and install the dev dependencies: + + $ npm install -d + +To execute the build and tests run the following command in the root of the project: + + $ grunt + +You should see a green message in the console: + + Done, without errors. + +###Tests +You can also run the tests in the browser. +Start a test server from the project root: + + $ node test/server.js + +Open the following URL in a browser: + + $ open http://0.0.0.0:8124/test/index.html + +_Note: we recommend cleaning all the browser cookies before running the tests, that can avoid false positive failures._ + +###Automatic build +You can build automatically after a file change using the following command: + + $ grunt watch diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/Gruntfile.js b/admin_two_factor/static/two_step_assets/jquery-cookie/Gruntfile.js new file mode 100644 index 0000000..9c30c00 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/Gruntfile.js @@ -0,0 +1,115 @@ +/*jshint node: true */ + +'use strict'; + +module.exports = function (grunt) { + + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + qunit: { + all: ['test/index.html'] + }, + jshint: { + files: [ + 'Gruntfile.js', + 'jquery.cookie.js' + ], + options: { + jshintrc: '.jshintrc' + } + }, + uglify: { + options: { + banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n' + }, + build: { + files: { + 'build/jquery.cookie-<%= pkg.version %>.min.js': 'jquery.cookie.js' + } + } + }, + watch: { + files: [ + 'jquery.cookie.js', + 'test/tests.js' + ], + tasks: 'default' + }, + compare_size: { + files: [ + 'build/jquery.cookie-<%= pkg.version %>.min.js', + 'jquery.cookie.js' + ], + options: { + compress: { + gz: function (fileContents) { + return require('gzip-js').zip(fileContents, {}).length; + } + } + } + }, + connect: { + server: { + options: { + base: '.', + directory: 'test', + port: 9999 + } + } + }, + 'saucelabs-qunit': { + all: { + options: { + urls: ['http://127.0.0.1:9999/test/index.html'], + tunnelTimeout: 5, + build: process.env.TRAVIS_JOB_ID, + concurrency: 3, + browsers: [ + { + browserName: 'safari', + platform: 'OS X 10.8' + }, + { + browserName: 'firefox', + platform: 'Windows 7' + }, + { + browserName: 'firefox', + platform: 'Windows XP' + }, + { + browserName: 'firefox', + platform: 'Linux' + }, + { + browserName: 'chrome', + platform: 'Windows 7' + }, + { + browserName: 'internet explorer', + platform: 'Windows 8', + version: '10' + }, + { + browserName: 'internet explorer', + platform: 'Windows 7', + version: '9' + } + ], + testname: 'jquery.cookie qunit tests' + } + } + } + }); + + // Loading dependencies + for (var key in grunt.file.readJSON('package.json').devDependencies) { + if (key !== 'grunt' && key.indexOf('grunt') === 0) { + grunt.loadNpmTasks(key); + } + } + + grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']); + grunt.registerTask('saucelabs', ['connect', 'saucelabs-qunit']); + grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']); +}; diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/MIT-LICENSE.txt b/admin_two_factor/static/two_step_assets/jquery-cookie/MIT-LICENSE.txt new file mode 100644 index 0000000..7a631e8 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/MIT-LICENSE.txt @@ -0,0 +1,20 @@ +Copyright 2014 Klaus Hartl + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/README.md b/admin_two_factor/static/two_step_assets/jquery-cookie/README.md new file mode 100644 index 0000000..f9a7494 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/README.md @@ -0,0 +1,151 @@ +# jquery.cookie [![Build Status](https://travis-ci.org/carhartl/jquery-cookie.png?branch=master)](https://travis-ci.org/carhartl/jquery-cookie) [![Code Climate](https://codeclimate.com/github/carhartl/jquery-cookie.png)](https://codeclimate.com/github/carhartl/jquery-cookie) + +A simple, lightweight jQuery plugin for reading, writing and deleting cookies. + +**If you're viewing this at https://github.com/carhartl/jquery-cookie, you're reading the documentation for the master branch. +[View documentation for the latest release (1.4.1).](https://github.com/carhartl/jquery-cookie/tree/v1.4.1)** + +## Build Status Matrix + +[![Selenium Test Status](https://saucelabs.com/browser-matrix/jquery-cookie.svg)](https://saucelabs.com/u/jquery-cookie) + +## Installation + +Include script *after* the jQuery library (unless you are packaging scripts somehow else): + +```html + +``` + +**Do not include the script directly from GitHub (http://raw.github.com/...).** The file is being served as text/plain and as such being blocked +in Internet Explorer on Windows 7 for instance (because of the wrong MIME type). Bottom line: GitHub is not a CDN. + +The plugin can also be loaded as AMD or CommonJS module. + +## Usage + +Create session cookie: + +```javascript +$.cookie('the_cookie', 'the_value'); +``` + +Create expiring cookie, 7 days from then: + +```javascript +$.cookie('the_cookie', 'the_value', { expires: 7 }); +``` + +Create expiring cookie, valid across entire site: + +```javascript +$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' }); +``` + +Read cookie: + +```javascript +$.cookie('the_cookie'); // => "the_value" +$.cookie('not_existing'); // => undefined +``` + +Read all available cookies: + +```javascript +$.cookie(); // => { "the_cookie": "the_value", "...remaining": "cookies" } +``` + +Delete cookie: + +```javascript +// Returns true when cookie was found, false when no cookie was found... +$.removeCookie('the_cookie'); + +// Same path as when the cookie was written... +$.removeCookie('the_cookie', { path: '/' }); +``` + +*Note: when deleting a cookie, you must pass the exact same path, domain and secure options that were used to set the cookie, unless you're relying on the default options that is.* + +## Configuration + +### raw + +By default the cookie value is encoded/decoded when writing/reading, using `encodeURIComponent`/`decodeURIComponent`. Bypass this by setting raw to true: + +```javascript +$.cookie.raw = true; +``` + +### json + +Turn on automatic storage of JSON objects passed as the cookie value. Assumes `JSON.stringify` and `JSON.parse`: + +```javascript +$.cookie.json = true; +``` + +## Cookie Options + +Cookie attributes can be set globally by setting properties of the `$.cookie.defaults` object or individually for each call to `$.cookie()` by passing a plain object to the options argument. Per-call options override the default options. + +### expires + + expires: 365 + +Define lifetime of the cookie. Value can be a `Number` which will be interpreted as days from time of creation or a `Date` object. If omitted, the cookie becomes a session cookie. + +### path + + path: '/' + +Define the path where the cookie is valid. *By default the path of the cookie is the path of the page where the cookie was created (standard browser behavior).* If you want to make it available for instance across the entire domain use `path: '/'`. Default: path of page where the cookie was created. + +**Note regarding Internet Explorer:** + +> Due to an obscure bug in the underlying WinINET InternetGetCookie implementation, IE’s document.cookie will not return a cookie if it was set with a path attribute containing a filename. + +(From [Internet Explorer Cookie Internals (FAQ)](http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx)) + +This means one cannot set a path using `path: window.location.pathname` in case such pathname contains a filename like so: `/check.html` (or at least, such cookie cannot be read correctly). + +### domain + + domain: 'example.com' + +Define the domain where the cookie is valid. Default: domain of page where the cookie was created. + +### secure + + secure: true + +If true, the cookie transmission requires a secure protocol (https). Default: `false`. + +## Converters + +Provide a conversion function as optional last argument for reading, in order to change the cookie's value +to a different representation on the fly. + +Example for parsing a value into a number: + +```javascript +$.cookie('foo', '42'); +$.cookie('foo', Number); // => 42 +``` + +Dealing with cookies that have been encoded using `escape` (3rd party cookies): + +```javascript +$.cookie.raw = true; +$.cookie('foo', unescape); +``` + +You can pass an arbitrary conversion function. + +## Contributing + +Check out the [Contributing Guidelines](CONTRIBUTING.md) + +## Authors + +[Klaus Hartl](https://github.com/carhartl) diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/bower.json b/admin_two_factor/static/two_step_assets/jquery-cookie/bower.json new file mode 100644 index 0000000..2d8c25b --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/bower.json @@ -0,0 +1,18 @@ +{ + "name": "jquery.cookie", + "version": "1.4.1", + "main": [ + "./jquery.cookie.js" + ], + "dependencies": { + "jquery": ">=1.2" + }, + "ignore": [ + "test", + ".*", + "*.json", + "*.md", + "*.txt", + "Gruntfile.js" + ] +} diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/component.json b/admin_two_factor/static/two_step_assets/jquery-cookie/component.json new file mode 100644 index 0000000..58f79d6 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/component.json @@ -0,0 +1,14 @@ +{ + "name": "jquery.cookie", + "repo": "carhartl/jquery-cookie", + "description": "A simple, lightweight jQuery plugin for reading, writing and deleting cookies", + "version": "1.4.1", + "keywords": [], + "dependencies": {}, + "development": {}, + "license": "MIT", + "main": "jquery.cookie.js", + "scripts": [ + "jquery.cookie.js" + ] +} diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/cookie.jquery.json b/admin_two_factor/static/two_step_assets/jquery-cookie/cookie.jquery.json new file mode 100644 index 0000000..69d5748 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/cookie.jquery.json @@ -0,0 +1,32 @@ +{ + "name": "cookie", + "version": "1.4.1", + "title": "jQuery Cookie", + "description": "A simple, lightweight jQuery plugin for reading, writing and deleting cookies.", + "author": { + "name": "Klaus Hartl", + "url": "https://github.com/carhartl" + }, + "maintainers": [ + { + "name": "Klaus Hartl", + "url": "https://github.com/carhartl" + }, + { + "name": "Fagner Martins", + "url": "https://github.com/FagnerMartinsBrack" + } + ], + "licenses": [ + { + "type": "MIT", + "url": "https://raw.github.com/carhartl/jquery-cookie/master/MIT-LICENSE.txt" + } + ], + "dependencies": { + "jquery": ">=1.2" + }, + "bugs": "https://github.com/carhartl/jquery-cookie/issues", + "homepage": "https://github.com/carhartl/jquery-cookie", + "docs": "https://github.com/carhartl/jquery-cookie#readme" +} diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/jquery.cookie.js b/admin_two_factor/static/two_step_assets/jquery-cookie/jquery.cookie.js new file mode 100644 index 0000000..c7f3a59 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/jquery.cookie.js @@ -0,0 +1,117 @@ +/*! + * jQuery Cookie Plugin v1.4.1 + * https://github.com/carhartl/jquery-cookie + * + * Copyright 2013 Klaus Hartl + * Released under the MIT license + */ +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // CommonJS + factory(require('jquery')); + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + + var pluses = /\+/g; + + function encode(s) { + return config.raw ? s : encodeURIComponent(s); + } + + function decode(s) { + return config.raw ? s : decodeURIComponent(s); + } + + function stringifyCookieValue(value) { + return encode(config.json ? JSON.stringify(value) : String(value)); + } + + function parseCookieValue(s) { + if (s.indexOf('"') === 0) { + // This is a quoted cookie as according to RFC2068, unescape... + s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); + } + + try { + // Replace server-side written pluses with spaces. + // If we can't decode the cookie, ignore it, it's unusable. + // If we can't parse the cookie, ignore it, it's unusable. + s = decodeURIComponent(s.replace(pluses, ' ')); + return config.json ? JSON.parse(s) : s; + } catch(e) {} + } + + function read(s, converter) { + var value = config.raw ? s : parseCookieValue(s); + return $.isFunction(converter) ? converter(value) : value; + } + + var config = $.cookie = function (key, value, options) { + + // Write + + if (value !== undefined && !$.isFunction(value)) { + options = $.extend({}, config.defaults, options); + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setTime(+t + days * 864e+5); + } + + return (document.cookie = [ + encode(key), '=', stringifyCookieValue(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + + // Read + + var result = key ? undefined : {}; + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling $.cookie(). + var cookies = document.cookie ? document.cookie.split('; ') : []; + + for (var i = 0, l = cookies.length; i < l; i++) { + var parts = cookies[i].split('='); + var name = decode(parts.shift()); + var cookie = parts.join('='); + + if (key && key === name) { + // If second argument (value) is a function it's a converter... + result = read(cookie, value); + break; + } + + // Prevent storing a cookie that we couldn't decode. + if (!key && (cookie = read(cookie)) !== undefined) { + result[name] = cookie; + } + } + + return result; + }; + + config.defaults = {}; + + $.removeCookie = function (key, options) { + if ($.cookie(key) === undefined) { + return false; + } + + // Must not alter options, thus extending a fresh object... + $.cookie(key, '', $.extend({}, options, { expires: -1 })); + return !$.cookie(key); + }; + +})); diff --git a/admin_two_factor/static/two_step_assets/jquery-cookie/package.json b/admin_two_factor/static/two_step_assets/jquery-cookie/package.json new file mode 100644 index 0000000..d52070a --- /dev/null +++ b/admin_two_factor/static/two_step_assets/jquery-cookie/package.json @@ -0,0 +1,50 @@ +{ + "name": "jquery.cookie", + "version": "1.4.1", + "description": "A simple, lightweight jQuery plugin for reading, writing and deleting cookies.", + "main": "jquery.cookie.js", + "directories": { + "test": "test" + }, + "scripts": { + "test": "grunt" + }, + "repository": { + "type": "git", + "url": "git://github.com/carhartl/jquery-cookie.git" + }, + "author": "Klaus Hartl", + "license": "MIT", + "gitHead": "bd3c9713222bace68d25fe2128c0f8633cad1269", + "readmeFilename": "README.md", + "devDependencies": { + "grunt": "~0.4.1", + "grunt-contrib-jshint": "~0.4.0", + "grunt-contrib-uglify": "~0.2.0", + "grunt-contrib-qunit": "~0.2.0", + "grunt-contrib-watch": "~0.3.0", + "grunt-compare-size": "~0.4.0", + "grunt-saucelabs": "~4.1.1", + "grunt-contrib-connect": "~0.5.0", + "gzip-js": "~0.3.0" + }, + "volo": { + "url": "https://raw.github.com/carhartl/jquery-cookie/v{version}/jquery.cookie.js" + }, + "jspm": { + "main": "jquery.cookie", + "files": ["jquery.cookie.js"], + "buildConfig": { + "uglify": true + } + }, + "jam": { + "dependencies": { + "jquery": ">=1.2" + }, + "main": "jquery.cookie.js", + "include": [ + "jquery.cookie.js" + ] + } +} diff --git a/admin_two_factor/static/two_step_assets/js/jquery-3.5.1.min.js b/admin_two_factor/static/two_step_assets/js/jquery-3.5.1.min.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/js/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.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(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),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("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(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 de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){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[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.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},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.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 l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(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?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon=="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str=="string"&&typeof that.buttons[str]!="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str=="undefined"||!!(str)==true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse=="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string=="string"){this.title=string;}else{if(typeof string=="function"){if(typeof string.promise=="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response=="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass=="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response=="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content=="function"){var res=this.content.apply(this);if(typeof res=="string"){this.content=res;}else{if(typeof res=="object"&&typeof res.always=="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded=="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content=="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded=="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!=-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=jconfirm.instances;var i=jconfirm.instances.length-1;for(i;i>=0;i--){if(jconfirm.instances[i]._id===that._id){jconfirm.instances.splice(i,1);}}if(!jconfirm.instances.length){if(that.scrollToPreviousElement&&jconfirm.lastFocused&&jconfirm.lastFocused.length&&$.contains(document,jconfirm.lastFocused[0])){var $lf=jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;jconfirm.lastClicked=false;}else{if(jconfirm.lastClicked&&this.animateFromElement===true){el=jconfirm.lastClicked;jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.css("display")==="";},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};jconfirm.instances=[];jconfirm.lastFocused=false;jconfirm.pluginDefaults={template:'
',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});jconfirm.lastClicked=false;$(document).on("mousedown","button, a",function(){jconfirm.lastClicked=$(this);});})(jQuery,window); \ No newline at end of file diff --git a/admin_two_factor/static/two_step_assets/js/verification.js b/admin_two_factor/static/two_step_assets/js/verification.js new file mode 100644 index 0000000..964b074 --- /dev/null +++ b/admin_two_factor/static/two_step_assets/js/verification.js @@ -0,0 +1,70 @@ +$(document).ready(function () { + $('#CheckTwoStep').click(function (e) { + e.preventDefault(); + var btn = $(this); + var url = btn.data('url'); + var param = []; + param['url'] = url; + param['form'] = $('form#login-form'); + AjaxCheckTwoStepVerification(param); + }); +}); + +function AjaxCheckTwoStepVerification(param) { + $.ajax({ + url: param['url'], + type: 'POST', + async: true, + data: param['form'].serialize(), + success: function (data) { + if (!data.is_valid) { + param['form'].submit(); + } else { + $.confirm({ + title: 'Two Step Verification', + content: '' + + '
' + + '' + + '' + + '
', + type: 'orange', + buttons: { + verify: function () { + var code = this.$content.find('.code').val(); + if (!code) { + $.alert('provide a valid code'); + return false; + } + + $.ajax({ + url: param['url'], + type: 'PUT', + async: true, + data: param['form'].serialize() + "&code=" + code, + beforeSend: function (xhr) { + xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken')); + }, + success: function (data) { + if (!data.is_valid) { + $.alert(data.message); + return false; + } + + param['form'].submit(); + }, + error: function () { + $.alert('Error occurred'); + return false; + } + }); + }, + cancel: function () {} + }, + }); + } + }, + error: function () { + showMessage('warning', 'Error occurred'); + } + }); +} \ No newline at end of file diff --git a/admin_two_factor/templates/admin/base.html b/admin_two_factor/templates/admin/base.html new file mode 100644 index 0000000..82d9f5d --- /dev/null +++ b/admin_two_factor/templates/admin/base.html @@ -0,0 +1,8 @@ +{% extends 'admin/base.html' %} + +{% block extrahead %} + {{ block.super }} + {% if can_redirect %} + + {% endif %} +{% endblock %} \ No newline at end of file diff --git a/admin_two_factor/templates/admin/login.html b/admin_two_factor/templates/admin/login.html new file mode 100644 index 0000000..68e2f19 --- /dev/null +++ b/admin_two_factor/templates/admin/login.html @@ -0,0 +1,90 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %} + {{ block.super }} + + + + {{ form.media }} +{% endblock %} + +{% block bodyclass %}{{ block.super }} login{% endblock %} + +{% block usertools %}{% endblock %} + +{% block nav-global %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content_title %}{% endblock %} + +{% block breadcrumbs %}{% endblock %} + +{% block content %} + {% if form.errors and not form.non_field_errors %} +

+ {% if form.errors.items|length == 1 %} + {% trans "Please correct the error below." %} + {% else %} + {% trans "Please correct the errors below." %} + {% endif %} +

+ {% endif %} + + {% if form.non_field_errors %} + {% for error in form.non_field_errors %} +

+ {{ error }} +

+ {% endfor %} + {% endif %} + +
+ + {% if user.is_authenticated %} +

+ {% blocktrans trimmed %} + You are authenticated as {{ username }}, but are not authorized to + access this page. Would you like to login to a different account? + {% endblocktrans %} +

+ {% endif %} + +
+ {% csrf_token %} +
+ {{ form.username.errors }} + {{ form.username.label_tag }} {{ form.username }} +
+
+ {{ form.password.errors }} + {{ form.password.label_tag }} {{ form.password }} + +
+ {% url 'admin_password_reset' as password_reset_url %} + {% if password_reset_url %} + + {% endif %} +
+ + +
+
+ +
+{% endblock %} + +{% block extrahead %} + {{ block.super }} + + + + +{% endblock %} diff --git a/admin_two_factor/templates/two_step_verification/admin/qrcode.html b/admin_two_factor/templates/two_step_verification/admin/qrcode.html new file mode 100644 index 0000000..7451013 --- /dev/null +++ b/admin_two_factor/templates/two_step_verification/admin/qrcode.html @@ -0,0 +1,10 @@ +{% load i18n %} + +two step verification + +
+ {% trans 'Scan the following barcode with your phone’s OTP app (e.g. Google Authenticator).' %} + + {% trans 'Install Google Authenticator?' %} + +
\ No newline at end of file diff --git a/admin_two_factor/tests.py b/admin_two_factor/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/admin_two_factor/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/admin_two_factor/urls.py b/admin_two_factor/urls.py new file mode 100755 index 0000000..41752b3 --- /dev/null +++ b/admin_two_factor/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from admin_two_factor.views import TwoStepVerification + +urlpatterns = [ + path('verification/', TwoStepVerification.as_view(), name='verification'), +] diff --git a/admin_two_factor/utils.py b/admin_two_factor/utils.py new file mode 100644 index 0000000..879649f --- /dev/null +++ b/admin_two_factor/utils.py @@ -0,0 +1,44 @@ +import datetime +import time + +from admin_two_factor import settings + + +def str_to_date(timestamp): + """ + Convert seconds to date and time + :param timestamp: This field should be in seconds + :type timestamp: int field + :return: date instance + """ + date_time = datetime.datetime.fromtimestamp(timestamp) + return date_time + + +def str_to_time(_date): + """ + Convert date and time to seconds + :param _date: This field should be in date + :return: int + """ + result = int(time.mktime(_date.timetuple())) + return result + + +def set_expire(interval=settings.SESSION_COOKIE_AGE): + """ + Convert date and time to the future + :param interval: The interval should be to hour + :return: array + """ + _date = datetime.datetime.now() + expire_time = (interval * 60 * 60) + str_to_time(_date) + expire_date = str_to_date(expire_time) + return dict(date=expire_date, time=expire_time) + + +def is_expired(ex_time, now=None): + now = datetime.datetime.now() if not now else now + if ex_time <= str_to_time(now): + return True + return False diff --git a/admin_two_factor/views.py b/admin_two_factor/views.py new file mode 100644 index 0000000..387e815 --- /dev/null +++ b/admin_two_factor/views.py @@ -0,0 +1,46 @@ +from urllib.parse import parse_qsl + +from django.contrib.auth import authenticate +from django.http import JsonResponse +from django.views import View +from django.views.decorators.csrf import csrf_exempt + +from admin_two_factor.utils import set_expire + + +class TwoStepVerification(View): + def post(self, request): + params = dict(parse_qsl(request.body.decode())) + username = params.get('username', None) + password = params.get('password', None) + if not username or not password: + return JsonResponse({'is_valid': False, 'message': 'required username/password'}) + + user = authenticate(request=request, username=username, password=password) + if user and user.is_staff: + if hasattr(user, 'two_step') and user.two_step.is_active: + return JsonResponse({'is_valid': True, 'message': 'ok'}) + return JsonResponse({'is_valid': False, 'message': 'maybe something wrong'}) + + @csrf_exempt + def put(self, request): + params = dict(parse_qsl(request.body.decode())) + code = params.get('code', None) + username = params.get('username', None) + password = params.get('password', None) + if not username or not password: + return JsonResponse({'is_valid': False, 'message': 'required username/password'}) + if not code: + return JsonResponse({'is_valid': False, 'message': 'provide a valid code. The code is required.'}) + + user = authenticate(request=request, username=username, password=password) + if user and user.is_staff: + if hasattr(user, 'two_step') and user.two_step.is_active: + if user.two_step.is_verify(code): + request.session['two_step_%s' % user.id] = {'expire': set_expire().get('time')} + return JsonResponse({'is_valid': True, 'message': 'ok'}) + else: + return JsonResponse({'is_valid': False, 'message': 'please provide a valid code'}) + + return JsonResponse({'is_valid': False, 'message': 'something wrong happened'}) + diff --git a/docs/blank.txt b/docs/blank.txt new file mode 100644 index 0000000..0fd8175 --- /dev/null +++ b/docs/blank.txt @@ -0,0 +1 @@ +"coming soon" \ No newline at end of file diff --git a/screenshoots/django_admin_two_factor_auth_1.png b/screenshoots/django_admin_two_factor_auth_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0a8ba2da7bae0ef556130d92a04bb84155dd1c GIT binary patch literal 43742 zcmd42WmsHWvo1<-*Wm6D++6|$2pU2X+@*1A+zB4s9TGISySsM>m&UDecRlR$t-aQ| z=iZo7kTK_{39^V$OXGfY} zx#GY2;m$bICR{tey&YJQ6;I(daqROSwJ)fLbZ68rkdbGLoG>prM0Y}P*RpyAPM@-4 zI_sSH?%Z#m&5u#b*B~^ zoraS4s7Tx%#Z$Z{%QLMK|8ze(>_QS2dFD)berO5Vf;CCabmqty@w}a-ygF~5DiHOV z1dZ|Ue;Nv7G3_CJ$|BIH_#vZ94Y%?$;53QiomJOnCn`9gzxO!9)AHb14}s>rUFmM_ zhVHvc*L3rx&{B85f0iye?m!s38<1DXVY9{AgZpU;3A;$FG8a7)Sn(p>ton6EbD+^b9tNOnl-6{RbK3fpVWzxl$Iv{dVxwb|I z$vEdY-Q>9UxBwh@40HBr@L$yycga;Cyf$_PJ@+^^CCQR>x<|&c**B95pbTY06lYO} zUfd3crt4?QFt$r~Y2-h> z5x8T#X1@2v5P|X55`E@ix$}y`kCvk&&^I399L@g6q1CfjPPDo=qKGX*Bc|f#IH1cE?UUN#C|r*H&kcDYzZp>= z?t$RWn0WU5jG~hpdu6+ZqyeYG`o1_t+Zmba!t5!)zCbx=kj^qyu5)?>GcZcvK;vx5 zpP2Q{JB5ckkdMCAqvKeu0^!beYr4Csav})mA*zv~1mILqIp%C-0bSf!hs+zahe$`H z_4XX@kly(8Ehn3<6dQDx`h07X86GCtIWD;n{kpbU`J5MfZ+XKq&{7g}d%&jOM*gY^ z%6U9Qv;x+tt*+VI;nDdXDg?c1&H!sU@Ws^q_Hi3wG*WGdY1SYOd;yB=CKc zqFZy~@OJxVFF1%NBKu1u;lFle25FdC-}TGo+0YZ5ji(nmxK1}1s`H=ox+NT|+Z=7L z1wOkCuSUdH*J4I$h^aamgfr=^)#14XQIagYcuQoTyO7PJU_4caKZ%uRd3O$|Zf9fI zl-h1Rkn?~If1ZPIkHJV-;q%JW(PUPeVL+R5W|0V=*4pY&T0;f8>B-?|la(_d^c2f4 zZM5323~DwvZNlI%8kpfuH`%A5?}*p1bK2;a9Z|&B)%TEp{65>uB&y#`gP5BjWt4CHWj?wC- z?(ujPe!$ue;D~7|z3Yr=9z1yMG->+cmK1L4gb}*F3Xr4g8ts1?8qJ* zeYr&(gvCSiuvqnZOMWMiZP}!$00*I1QeMfZjG2o`!+;#G{rU{|s|u%y~itkC0t7g_5q`j}RS;#_~*!6CkA zHRF(*fdxft$}D&Gd}I8+-y?ky4GjPB%Qa6__WC$6cC;b?2TM`kNWyd< z6KG{yC>-S1F9}qlD#i~&SEB}M%Xs9ieg-eFjZInTA7D%pS6Vhj=hiy5$U2j}6tphv zMkArC-O>gtW6gntqk>NqhY&sf=PV<->2vXim@AbIm}91OQm>I=WVtTW?n5h6KbMOo za2j8Xm=`}Vf=ddSc1IEo{8eBQ_e~_r?aqp~zVEXS14U7|mq+%wty@(o45#q#cVV9) z;;1qfqR*hn`)5<_l>p>Fizc+rCjRkn*~QlDmxnvb?R1OgE>=|+3q{NL#RYRze0I@Q zZT5B=l9R}CzEv8z+BiBr9yxXR_||aU1%jN@zhgZ5eBf|{Och?rggZPO5zZT_7`-T3 z3-MMjfzFcASITa~iW+3o?(!=tEVkqL9IaMZp?*rXb;ln!%R`hps*BP>{W=psDF8&` z+U2$@(VW`+i}n-+ck7Xqw_?m~Gs%7Ge$yb05#U|KJu`Ip5U|R?Q4zxZyz$%TJa9H` z;8!6I#nYtFJ5F_p1DiLlHrx(XEtx5Zj9ye^5;-8GUx?Z7?6-?);I8cLx6&@uDF#8# z(OB7=Ij+}E_P+e!>oMU|n`EQwmBf*N6uVR>19d@P@u&{5EARG_7?<&2UcG&y9iwZz z^R*`jxR)mZ_3S`j5jmaD9=9E}haJnqzfypE=vo$NZ#0qL=r<-c2<22`cQ%6hB0A@X zfKO9iMy$o`xw4BPQIhZ+o9!YY; z7F!)=1+>6&u4?*kGj_jbOB^6(nW}=0gE%rrOiUB?ZWCsZ#_*kd@6u`n8YfO(`?V;T zOlQn~-GnTOUexqxr<$3I4TI{Cn>tVNCv|eYpr0ns8HAcI#sq`#QlO=kg0t^j2+xFY7ZYiH0j9FGZM%{{A)^HCzEd;)Pva=~YsKaBphsTQ=AcdfOTPbGVVZ3U1J#KOL zz~Uww{dbdqiil0&&L2-uz>TPd6)1mZ7oazr82qt!N$2ga`d{t}c~4s&i~AZ*7KQ`H zff-1pqV8b)TEAJ+N68^jKqGJ$cv;)X%I)>U%hk3l^tfg5=HwQtdGv8pAkb0ayj@9b zYJ6KoA$N~V)M!uyNa;uNunOdK%W%)^2uYgiiRB8x@yP4?|fqq67YAe&(EvjXcujrSw29tr`PY;yVr`3gQu)1icM;Cr2 zJIwLGVy|RRX77m}hkJWhd-v?c47}Xobi6$J+J<+2-c^VbUsSHMal!T<*U_o{H1dy~ zLf#T`Y#-Y-3`ge2t>pOXnSQfxA?eWjU>`1Yn@XjvA;`+`H9|^4N`~=#l;JzjuclUD zn-LzB%5vQM!=&ip)zJqe!IXqvHuZERCjm2D;m!0S4D&Mu0kdib(UIX~~Kg>!+HhP%u9q_^Qbtr#Mx$`K_v zlyRZu3OpQF`C+dkWS^mbKEOIQ&Q6dKn)*ZF(~^(ph?{I!3vKy4i$>Ip#`Qb?rhN|+ z1l`3lGjQLr&w*)jd zJSfbVdra3Tzr!**7N*O#NAa!KqTlErp)Ed(;?X+`1!qF!!rry@RBo>CDR)2o%fe{S7pvg_eFbphk)|&5Eo;=JdP?6i)o@Pt!;FW)(@y{6r*KD@Ml*DTs@@FplT3RbVtOY-rsA+qw|@~G?fN@eAi-ae>Zn? z!zaVz*-K$4>m^yqAu%xydi?7qe!KOHp01T%V#q8qse+B+*bcz~45N++v4YkIoLCL- zYCvp2~}9T9KSB*?Qu{?#STq%));(p~)9){0qLL{$~_NwN>Sr?;TA(x7YcFgK*nV^gem z$(TSVL&sW3JP$HY3zVD=?up+G=QXvbKxu@QB+N1jFw@N54I6o>L<0F}-CIm}gLs-< z)JY0=)|+FvO8EriK9wdcMp@4{b0K(rMa?d(olYZLs_kl)E{6)mCJvb7uo(dkXjZ3O z`G6yJfk(6EzF$AdR@cUzfaj3Kz_D5hVhCfViCx9}Oe^{NV~`6@g!8IKfw8+n-}!~1 zTCl+85QnMPHfBdFFfrxj#w%0Xm@um!BP~htYf{_*Z3H>9S%^?bnUl>O>;uEI*-vla zyQ9IukU}93h7pr(%#s-8_H*na%$XY76WcEhlo>Z)NE;4KRjYBlegvq`*nc|8e0T)5 z5M|yDj>xRRK47`v3`lO%kGwh|P1C~miiC$C+GepBbPXPI972~k)DklOA*|0g$Mcy~ z5o)^ifpTcMvGL>S@^GsUH#;A0PE!Zsl+6tNPxOx5BFi`Dj5yYLlcbZjhC$+plRx)1bGXI^0H#-(^ecHDik=pF}h5=~P z);PSez~&f6bjpfN5)v40m}xC_O&l+KyOT|D+^}$~EKMLGWSh5Y@_L>U$=&$R*XqbO zQqi%mNyYIgv)4g1&ya4V<9BW~CSNHZMj+KDJ2rCsp;k`r*0ZMu8ivCz)y@n+cpk(y zv?tLh5)_J#?0;Al>DCf?wg*pkJuMb>`BlZZ7rpO&DRQ?`a0A8_O9< z#PH^;nDO=z1)-?#(~>MZ{dL&pdw=aoVKUJ-%NQNE5m$%sDMsb<>rE{hCoT zOdHp>oZ;?qbGzZvY}1ITsuV9iEaTCE|Hw{~#X0Lkj{`J~?JcMGw)SH7h(>0NiR`kC z5b_J74P9KQwa2)z3F_yQymh}pKZKZ7^B3CXwlo z{jd2qg1^rCa7a{%em_ngTS~XEjd*tt7yOqZ3BGM}7W445P%SZh5FT~6k7cS?#-U)= zLAi_$%~tcwsv0+ffttdVG1KFR41~1vaG7D^Sfj)ok7t}OWJ~{m^KwsY&Q8o7c^hKo zl`;$3KbJ~_OXZ&X&WHc{4>i@HtBK0T{yrEZRTc@)YWy;M(X&usk`NarL!dOm(iM&C9_khM3xxdQ_vF+s+r`<@)z3i5IIS5$?r8QCRoo zbr?Dpqz!-e_;o!_;HbzH;H7OoV#PA1!VEB7BlL`zDx%Y%pe6G3=!rm@AgSF`5<1`) z!Ll|JAG^z1sJ=5~tO%!0AW5gO znYT0h{iLu$5P5z~JnyPAX^MpA#c*TKyBRLo)Sh$wU8-S$qe98B_gYERrGmKk+hDQR z>S)MO>3n#Cfu64v&p_%xg^Rh=vYz)%^XmCLuyebbmNqD!>~K-AV4Zn*pghCLeYYD! zR2TJ#FRM+2o|TK#B(n^NGg6&ENVFvnM6Y#>8;=C(UsK+&7H5sS6ej%{us!^^x8VTB zb`;0J{!@vPhZ4nE-iD z1v0uG>^V7x zZD*g~zE-$*)!7cOx_nm+7+C13&Ud01%DETHX6y^ggjRXcVr#YFYJ@4OYZt&?)Q;$or=BhLF%ME0~zc3x`rb30Jcoo$eJO9Y#D9 zCjLEdH4llDR*YEKWwlaJLU*1fv1-_Pq=rn2E#vqlj$9TuYRYA3oIp5 zboF^(=&_op(b{Hdd3W+e6|UN^#g#8FdHZgE2Ty-zFJfm8g(&#ZDHy51?4*Gae$oxb zETkxOdWQZdIW$xhk|W$1$9F`Fcl3V!8mB6wXp9mT4;c2gk0CioTg0Pb0819{tH@k5 z)*JY>ol}6y&Ddk`*#7qTc0Cn+tN$TUB{C9rQ4IKzJZ)Q#vGLMuu0>)Q2NU~FRk z&(t8Z972J818BjVk3Tfbgxe4q{aoq_d#O440g~a~;Nk??ifUd;$K70tQ;Ft{Y&@;Y zC|=f=oheiza&8Vaq7>41<~xM zQZ5&X)?C%?bOY5I>}T9g`6+OrWQPzS7Gz*l8vJl*uRj*6%HNPeDs(k4J@CYYankDk z+X|sj>q03=@S9J1mY?rbU%bPC2${p7;cCh#@?BnP6v6AuajCyy#8TQQ%Ch(lp93tg zIvPLX7Tyw8B`Nmd)pdzi^EIl;h9k5v`46gyPYj_&Loy$Fi+ z;bXLTJST9SY40||n#vZdo#^`1D?*mKxu{GpWLoFOekA0|4_rG!6V*5}T&465$Xcf| zq@MQu{)9o8^Nw)lr8PU$^<+n6fQlM@URh0r{O*d(wwYRmT=@M;_9`@-4M)^p=+*Gg z=xsvo1s`R_R+|685~fgFLEU2ld`c02|7OngGIj~fXq^pma47;i zF8`Iw8J#O8lvtadMhKv$@bg^k`Wi%8_n=Ff=}l7Ck@(C1D!{jh&~J4fe~eHzIhF*Y}_toje|q zluu8sj}{%=b9_$VzUN-iyRBBdgA%`6_8Ghvl8v($Hz)F`Yd9La?577e4_D)W3`#M- z;(=N0LH%2UvGkdqyXUR;u6{I$M?(G78zQ*JUCI}q`>Q&N^-_t{PwX-x*#QnR`B0>vWuJp6ay=;@?g#Khk1-+|-u`=yB8DbwY-}S47!2|cu zPBQy6zx6u<5R)5=s<;@vGOdE*I8Jt1TB)hpzP^wk7;3og#9rvFo6FArRTXBXWo|*_ zDE~E%zvZZHIIwmPWrW^kf-7_gIYeIuwpKar4wXkZqaB)#KUZcLY-oaB$L9Nd&<6}4 z)NiW_`wSDHUt-|xGXiim=h7Zo`KtZjT!6c0wDOB`atQ;m7>=D>38Un_SS_4)CE^<* z0(ZNjdOh9EzU*Uv76J5$++%uo)mjIWXd)h$->}TPybHv-ANL+N+5+N#V7fv8mF%po zUG2?01hVSx)w3$+>8>3@a}LVpSXiqIsue7ufoy1|y40lQcAAX?AJ)fQLSR}?M8TMl z!{z-0pamaR_02c%;m5jhijEeS(-L^uIqgo4xXfJrjwUOR23%9~5Ry1cmimJW;w#3r zUd2{Dx@9(tKy-#kz0feWn|ZR0qd5L;8AaW+@<_iQn-RK z+r1x>^XQfA2ix%)|=w$M0S-Ni{k4C~M7ZNj!OD(WGZfh23 z<3#t#uO+fbb&+7EOJu3$yEHza*=`Xf8eHjuO} zFB{#__+$0qGulJPbYIJ&ZZsBAH}22ex*YOm24TH1RKmr5#an%IyqKlsE(!eYv;Ah% z`#i_V+K@Zl-~?1@REe@|=+TR%O`CI1_sQ~dx4IW>+hVK&fLB2U#3V9{p|%TJCnSIJ z22pf(CxTFVo4rrAI8|+JcTPT|x|a*3br_<{%`&-ZpvQ^EN*T;vy;xp1ymkC}$@*|? zwN<<$x?-c4D*<1a2-8@8uzgJPTj(>VPZO&js&a*3Yw4l~RiZK@inHtd-ec1~EYH=G z>@nMs@hYO=G2)3K$yLg3HSRITR$3l)_WT{rOJ??XDaIaeGoHN4*=sJF!wtZ2p3$i2 zv8Ujb_ZKT-h*2_e;9FEU8x8lA3whXlgs_M4exC#m9D8Td?6G(DGuS2?lY_b`Y*Fx2 zdp3wo&)ZQ?WVHoFN}Q*BS&Qs8hHQo8`aJ483?`6B)6jK4_;$*Dr+^z|ceJrm^6j|c z{cA?Pm^S02eS^vk8v137#BZc;qH%QZa2H@7oKShZ-(v(H1Cdpi<68BVIEcsCP`_$S zJUuexFjzR;3J`gyeoeL86cxI%fv1aN+o=2Q`EZ;t{_q#5b(Z_G`K=#A*OgT|oHPhs z(JwIyogVuY2r2+72Nr@Vcl%S2A7FEpydktV1s*I+j08G zg*9xi*TnpTE2BYu9|{7Svn$}dJrALcuSrQH@-ME*kV|Qa^K28zsI2WMJpeY_Txd0P z`*`XLSh0E5n%?MvT%<@@(`eD@r2gILNu=dh76}Oc##(1Nlpb8qKCWa$(R3nx9rEp> zsB`Gg>4$%E>@*s?Lp-ax6~HjoE|^#tG)zlpjMVlo`O>Rh8zJ|&|1fIef_>h>#l?@o z?EDPx_|pUNC3|NlHY%|!Bn2wt1$+q3ykvY-v;G_^IV38zi#8 z!}8NtP}=yuZ@%+2jGsdBsR;IKkqDH&!rTwVFhr{=ZcADIpq9R()mxgrr2P-QW2@wD z8lEQlQM{wWC2{L_IOu}K6smZ${An&pai^o$nC4)+6mi>3^0-X3NA8{_6ihe^Pz(Kgy2!pPVq*y&SE| zG~D&L-3yLh4{*CeyqbuQQdUv2RjMWZxHj(US)uht!V-7L;Ooc}DVZswr=WL!+>JNd z$<@c$#3V2PmGz=5YQm=@a4PRCX77;UT*I_ld^wVycf^abndm7M4NDjg zM28C}5D|DQ%p}im81}&t1JkK(Q0~wwN3eS!>Y%pj($#SUzkN}T@b3*z+qp-RNe(>w z#MoJ$P3isi)*Wm%ymKKS{IfmE@91&@7+h3KP`L@gSM&AUC5zH%5B3&*`2%C$iU-3v zKiOO`B(FLOLr7zCK>I6(1wEke3lcsi9H_!~(c4H=!?_N=CL&_qlxRZ&BB~*w*(CKo zCKOF(pmIWf{f81NZu?`yOavAje~(7dSRrpig`&}|E+IyMV4w6QdK1^ZxTV`ayPiyo zKr@;-Vcs8*g9k;t-5t@s^1CrMYU@7hBsIZ~*hC9Cl@)(h*BL{^rS)CZ^$n4Dp3+mV z_RlB`|2ZaKLM)3EvUeG|y!$KWXbdM)Wp2>b`R_%DD^7N!GFC9Mo>4d+QteTI2dH96 zR2~(up=+MsE>?)bvgOTd2o5zeY!L5lUTG699B9%Ig5pB%X%GHNC3C>q!-F zr5xWa6cSZXGgkWjQQ5=|`N?fwz7YojI>Ib{8eT0s-0|aw+@23GagbA-xU4hn#6hMk zpRYn6z2W7@)>K_9Ll(84>sdVa4$^zH+oA^r3g8^TfJO&Z1GJb<0m;7jo>|g}`Q(Ji zUhH0>t*t2aBi`sxtm`uGBr(=SzJg48~QcK`WK@ z2b>$*p+YA5xUjk2P{87?hlW2gN?CjJ4~dT#f3R!SvkBIqp(H{=d6_ArsmY@NRO3wX zgFa%UGUBCbhVT`jo(aYy%J9;c?2pC(Mm}0DTsGGcjeK=Oo>-!&H8P@&Miq%}OF8m` zaYt)U8bc#U6mwHctGhjwQZ8Tc`FCDa8(G{zPzE47|wC`4rS9KTx5@e2n$GN%)!K7DzISzm0cHwx3rFYy3)+KEnpgt^6AqMv{o!r^nlt;kG&X9uT20u?M1jsv%hNNjNZ9)Z#sa-ffj7255m zzbZzfZZ;3(>HfChb8%*(#VtuXjfvHx$D5~KSC4D$n4XhAZWGvq@(q^y42@h=A`>Wi z&+^o>1a0pg&&aKrZd@*=@-W(#C~_@&6^`XeA)Y#8%9ZH(j9g!7352&R2LPe7e!Q)`u}d^QjEU^K zJ4DKHxQTwfxh6?39#yh~Ui_=`1A}%j-XKz#;l_?~!oy2%CB&kB=UnnD;x`x_Oux2* z*vmLf-^&9}-$|mM?wi`jbiL_m8P64%BRj}>QvnE1H7(+_;F-0;J< zQ}f^HSoTn;GmnYr7}T}mKbo5c-AL^3v{%3+XOi)oWdO+dqHFUK8oi`sr0sk!Ag<9^ zLDby?7^OTz=orA7;)p!LHo8K9S{hd}Gl@D+vso~{pPz(W#=XTUF|%IMhhN=tdeTTI zSc73LNFKEvG1r=~!wavFLqb?>X^Mg0RzAJ)c1S#{6Qi9BtZN32hAQPreN1#H`{s8F z&+mveQ-hUwviC*z0n*Z8i5#g@CIgwFSToJJ~>-+DFDX6EA*jrj2jzD8P z|A3xc)^7~=LOvA{jU4Xb1*TO(ZXH4ve;eMdsU6`X>UeoqEd)Px{=s)Qw|?Y8HlxVE za|=?+rVUAd4eP_irR>4vI$umAe~YjX9>QBgDopn~7dv({A?e4*F&J_#!~7Idjg)v> zRT#H-I&*XrjyuvTdnj-hOE0)K{5tj<3VvcGk>P!L%_UpL5-R+}GIwc=O_4)PX6Iy;%-(S08 z#92AUT7CRE<#k5n*mEXGH_tTA&9ykEJhiKdP~V6Z*DRhfvnP8WGSF~^jxoW@-TpF? z%Gus)G+W4+uteHpt(4nEP*5p=OsAG^+cUG=@1gn@d1Bh6;3r+$l8itWOf}3nc^;mT z+~ihpjGn#sA%)BaPwO`#c8{!EvFR+}CQ48^%*uNK>E;DfO*{*ff$+%HQB7WP*J#TC zBbsI*SJsvH(Lz2Z4)=yOoX+HVWd+FwBqrD?8Oeg_;0){IZ23Oxe(g8VP|lt*Jx#C;-rHpV zuy;UF=x)ofeN5qdp!fUNs%kCESouP+CIpYU(d%}t9mj5E|L52SU3^yGsia76L~})4 zFo}O2IuhQ(=js57VTA!ZqRwc4BwW0q2Cc3s5rU9N`&CVdp%`a4|Bu5ps|%$x zXHlgCd2Ex8EE{$Z77k#=QexvxdTZd4e(HzgX5af{UJ3cs_o|7LrYr-$;A`043qu~? zrYsJrTw*J8t>3_(CP+4n!@t1_RJV&+C8V?9Ot1?26$~Pc!S0j2+h?swh)l)x?}Imf zB{PSA;klKQR`02VQ7#wT^vjv}I%Lsf7sh><;WX(E1Av)bP~zkzNc{jnz)fiD^%ZUY zxRs`>TLqDix)nNz2%LyqP7KTY9qaXj-7d?YnoDU?29SDdrV`)r$0Y8AwO8_nHj-pwk10H@%#Ryg-=cAaPTD?89TRqRqnkSyW2dh zV7qt=(sCvi%Rjz(9M_yB6)r6<`X4TCm-A@&vUNc`TJHWGtMe=q^wNF>_+09Js|BGV_s@$7HkoT0Cf^68f zaZpopwZm;!n2CZf!= zkS?C&^1`SqhCWfnP65}*noPsb;+qGDqA_<;=~Oj3=Ba)LmY--q&rE-!!81-;k^-I5 zBeu6{elh>mawv4S256!BjIXll$9&^i<^bZ7JEY)vO)vZeGfV z$$z)CiH`knL{8aC$x~v%EM0sjmq~V}J)~S8mytZO<6h3RHjp9gVRfjk;pS z`9r`}-LfA?wzy5S-`#~!soa?HMn1qc<;vEuae2ymZ~8qpdA~Q0xlEL_vO`?xrWSW* zvqL-^>f#g&FScQ;-=rWi7bIBA3*anOykJtfJdI=Vb*W&Pko}10Tz56OLkd|j?U*+u z9~2^kZ_UbO25P-6*Y0ocZ&(=oakqCW=^El=^Bh;5rxu?KFHQ;ipw}F}f$vJ=16Mc3 zCp-;ntS`|U{!IbM3cu|8J!sEG?ju;CKaMCLOo+7M?rl`1`7tM6fNp_RGuKEqFG5i5 zGw$nKS@^-{b`vI?PKAtR%mO>!W`~)QiRbQ4>#YtnU7jJ5(TZxuJXJT@kRAg2ENO9l z4Md$1BV(9ZH!KhfnZnN$Y>>#7j~9v-AR>9e8=(B5>*!Gb$AzIlvkKm)E-GjMoKzLW zk;+-YIiK*F7J3VZ*&43N8FYf{6`eJr;Mftk6h!4C%`R?puyg4E+pNXU8}av=hjnpd z$~asBjfeWi1u8epLzBwNSdYs`285@)Q})AR1)_yA^6}*S{k8o(G`VR zwqDH=E@L8t{!O9g&{QjzHov z*TjAzk|6kTab!Ag^L7VXwUP~kf+Cr?@}4qZ__wp>M}DoLad19OuOutC>!|~8NVh3H z#H#0e&P4_1Ub9x2VtuS>^=IA0_w2sf1Z1t&@qY6WjLhLRoCS}^g6%dwc+@6K0;ZEQA(JnJ`4i%jzE#DEV{|bxx_pE0R%b074N;8nL2bwlNqZHtAiamIpJL@rP@)|`JG=z-trYgu@SS9{C7Ti z>N~qllLzOg-)uz|z9KC7d9eqq8%1YP_9bF5BX-S!RaJ?aDs#gseP+@11t@*z`@miU zjNeaAwgcn1?b>b0qtmf&=PLN0HO3W=Ax$AKPSP|ujiFf9p!17orU>F^=H30xxfHxl z%3<8Qn0S0hd#$Nmx88!%uAi6HcT&SWgqD+sFjyv=U9tlD9EhMl6IQR;YjhOc6I6W z)hA`DNEI(;u+qg*Mtov%aq;#n#&2v~V0Em)79y{p&@%f$oBLlncV5gREIeXe*)FT0 zF;~z2W5|V;B1Txew_L6A7y^_yFQk92Ri7udD00k!lm_M zm~iO(Vob)x@_p_7wM@vnd&eL=f&`^mFe_%bXJkx<wh;Z-R+&bNIBgBtgi>)Ak%@UGZjYw$*sruL zU~Y#bViS*|ua(b#ke==h`OZz@v{+4~CiU#v7Fy!oVkTw=L38wxL9!Joq0IX+E^6Sk zY4mmK2ChR7YWQ%2>bP=xh@~dSBR`Z|3beump5-6;$4n1TRF$Q^g@P(sMhXaZ95E_b$P=j@GCj{MNV1+pjW-;R&Fh z&+GedOY{faEH6)bf_aa;f{%?fUlB%)^BPT2N}|J}gCV0fz&$YqBtLaNR2B>4hHRVh zN}Q(a5sZI&3K#Bv)1jne({_=v=CP*e-EB!5V1($kvT@47h>Xq#WzjidWP2mu76rlO z0G^#=qu>0w-1J;zSEhi}caVge-+sm_uWXmH2Ct=7b%F$RZNIc{ZBFi1!$Y5JmYZNs zRsu6e+d9Z9E;l*69BdyI`3o@|xAVHuY~2kkb02W&SXYO7t-U;o@8O?N6r21G<}~9R z(ndAjQ5+Anp5TM%JZ~2b%$@E}40;5RtFWOZ55o_SxC9Jcrv)&bo=1RNPh-!e^zpfd z3L4$U6pfb9fM8R6@4zK`l-MSJ2m!j|*#byJwrZE^_6&ZbCa z*AtFPHxI?7F}dWM`$RbM%NyXRG}-%|o+TyzHR=Y7E4pNbp4d*psx&I_;?h{TfEU+p zGmVC+?59$dLWyaJY7+JzEzJDTHP}51{!*H)ZwLGP=@Tv}iZz-YYq;SRteMJU@W!&K zq3mvFBP)T<7>tHbOK@-TpM|6)#D~&Y@~*^`Ul-aWHaOpBuk_Jl9lM_6Za0Scr6)XP z-V0WKXrt7x`TOyHibcDVSns9&$WC-WN+t@rNqcX&*o164&zsdWqa6;dNH*v6Y$HQ8 ze$vi(*%OwTwk4nNJH>BmnpJTwaaQRYHfc_5*VQ?!rguNyA|g@q0I6*|Sh~jm9xJjP zS!_6K|IG#HI+#8dlYTjsO16JQB&FOf+BYPuJS5*+r8ijY89>m#ZlCnA<@9}5t#?!k zPhduPR{zl1)x6KZ-X}BbcaKik5j%Vy+z}Uqjlw$Y{Qk!1u{RHHMPs!2m>pI+$oC3& zhVlLlOAd>B7?KmX`XuRCFbf#2E&&;|4&ch-F_&3RzryFQK)x7>x%uP69PlAqs^dCI zR7%40XdhU^bOD@a$1u@ZH}-WS4Ajjn_vNsalv>nq7repc7;FGOr?#FoS5{5%3>`=; zjHV&8UcddUc?+{XK}RIH0ZV9oQL|fO-0CPf>Z5lYYnyM`fK8kwR(aLqQ$958G{j=eh%cU+0GdtGZ2ZS<5?Jk>N z8<4McF)A?!&j&>ntOPVPNHeTN9{EJ|Ezkc%&tz5>_d|TMEd~f&Q??_+nMbOB z3|cC&LA`=E3C&RjjyBHB1yn`jVod5Vx|4KK2%@H2{jyWrHiS4 z%G@g0`Ggh_o76_Wn)ipK)n1u$1(1{9;FaHfr0Sc{EBX1_pxVotz+4ew)lMm<*bCK% zh_tmcTspMv_K}(fjuu?xb$M6Uoe$QH?v{VTDBesi`*9zm<~I}prld0_nJ3>{$}$k# zc_P{i+*|;E+P5m|Xu!$oOhNwkdD-JFK2-H_X_=}bZXl{HPx8|OCN`|5_zgo`}9 zM@6k2@Pqypws_0vwz)gr6Vf-`wjIy_d?%Hm4ymCP&m$7q@9!TtjC5>h1BPy6LOC3$ zZF-xT-mojV-1?>hq3r*Qy|<2v@_YM*K@?O0buuloD>KF>MpJZC-Uto8o!{xy5n-uHd)``TB2_Og|n zIan&M3WNe=DXEumT^LDMTXR?=eEKURYyosMY^<_({;cS6Gd|7HN%cQ<&;Uth9=aB+ zklNt`1MQ`+Kev@A&a^@H%hRf(X%>L;vZG-V6a)ogY5ri4=h6PYql|5-YGiO$VQ=2^ zSW7g8I7Iuqg%mUJ==V`H40~I6Yb;W}r%RU1+)lZ?~RoWE9q_xgg z)q&%x1|SrKMFDSa#5icHc}$cn*Ann3E0C7a^xeTYqUR}fbr)aG~Nfa;ZjfTXI8GOzxpmf2Td_Dv(24&C%}7XMGX+(K70?y zXWvC#@(FL_`Y5=;V$wy)$IBzshRq{qhaH)Z>wH&Cb=&xe8GFlwX%D&kt9t8?qK2r& z_fI^%p00P5(;srrWhglsONSDCvzuTh>`620;}(=hHz|%)#^Bza&yqAUJKX-1U zA~xHwwSETmm!48j_GO#m;PEX6kU{r$Xq?(aqX7fWHlH6|U@2*yFxI_Yi{20@+F3C( z6?)eHL6E4jv|uz0XFH=LE3r41$~kre7gkdDLCdS_hihSMyfoKtG8lrLii)NX(24;&n65AS43co6aB23>b$ z35v}DObdN;2mN8WO>T2Q%}nL6qN0_)7NBA2R>LLF8RaZ_Zy^74=mPao%0BhM31v_+ z?^fxfzWCf0W|ksTZ@>C_PH*;(M??%N`FeZP6?P&Xn`sD@bhSB@PRwU-)M{^XY}1d* zl)x3R^lEtsWbw5Uk#8|y%anfDO-8J5y##$9Y_Xi+MF3`Yc0?%?-)F3` zm88vKb1fpX{H1DR6yxyK$hBhq7x*A;OFCu-nu0R0D38MpGbKqlgS4sXVXfMX=G*Er zj)(Ahn)4wn=gXj4!Hn>*G1P`JPB8~MCKi)W27+Mymi5z!yKe5UN&-2B<~0aJwD;b{ zz)Uxb*XMdhH0~7*ptakeZ_$toQ=u7pMFsM#W-r}q&6)vbvwZF?Uzzd|9JP*j38vtPtoP`;C)w75|iHg*S?f zJ!*|+A6;?9`x#;nV8ABk6#Xj}a-Kf_k*((QH*xKW_GF0{3s@kP_tH`}s93>lm!9kI zwLl7r!7d;dz0yms(ed&XI`?Ra<1*Vx3=A3eLavVJxS}qrNr^Tm5k$I$r$=;ssYEx7 zSE@2(wn&Z|K6%q+o-zcpi#NQoe3TJa>}APJfQ25Q-xe7uBL&BwZPBnuyrijV3^(Ko z6;q8albouo$i4dR zX-TS%)mL$lacnSL3pjQG{W5Iba-4#K4dOBH&WEf09t5i%4YpyQ9P*5py0(zycPE>v ze}^;bSgkDk+g`6F;o_HFR3fZFHi5*X0(S6`5z~^QDv#git!=6Hn3RA95!PDO4%VeZ zYAgElc=FTx_)L{{=AT-&)B3dQD*-GXuzll$dEj??Rzddk7U9%#w94bdHcj}++DS>a zhb;|KT&tFJxk0e??RUn;(@bcI*)XasTP2vryWEAvL)Sal)_?*}w#~Q2X8K<6g_a3T zf{Rwx&Zu(STcRmZql5W|>*_5MTzo2fx9^&4jzJ@6u+a1V`HP;2CDxm`=LTgR5CKWG zPaC&du`EVL&O^uklckT{E|vn}!5(qNdQ$iaQ7+^0{Fhrzi za#r4wE`{sCRP`re&k5mg=|W#t_D_e_I<7gn(0aOo5g|uPmfiGPp%o1T3nAG z$U+*cG#}QgM5SQp4G+zJEfG$&lY2>^PW;!^m`%;AX!io=Q`ExY#ifS%`AiSP zVTi6U6eQk)B7faqaDPP`eGtaog@R>&qP1dzPC&4ue(=fGN=wS-xC`Qr?57;(XGZ6E zR@W7))Orr$Wz%l~Kc&X~>cyHp$znpwl!6LATj}G{;;Sx7BE|i-rFP%NJ6ZiDKDOoX z_X{t)^RK_zIbWmNHt~uuKg6u)af&+g;B;8Ie(lpErL?3L?V zk(S=$dadEsf{U!Wn4ZH2182=8_dXUr_Q>~m9ri14{Gv~%yfCj-ZeQe)tFQ6 zB{xweIrXtPOiyrh+;F`!;XEAg+a-{@zdLur4!{iEPhp>w(}Y>Ojx&*2-@T0m>XRf? zVJ_HG9&EL9&pJeBfvNK~>x@3Zar`b6(2Bjt!^?xS`JMp?doWL%#>6ICS&D5glib_C z3{H)=E$>$FKEFq$*RRz#Er46?2=CqfPI>JLozDx3sU1P@P9CRWkK?@==fek*$3fNc zUbqd|_h=1v&;yg}+_y01v!0kID9tR^mz71OON8s(u&C@F4GauO_0{ZE&SXu0Q_rL> zqcN~s?qO+(!Zt}I)6IJhxGCf0DatOl!XvDB! z7(!~$XUG|FO`k(mPpahTSytmP=sR5e0mvSKPIA3+J9F_L`yHRwyu)LDqY?hVZcUp&56e#Y z$&zPZnP(lFJkC0j=s73q;5RLXPAS-laggcNw29q3%o={L%b@oMp@Ec zz8QI=GmAwwQvDsG2Xl7k{&47k|xy+2h zRrALEo_;afCTWA~MRMwV8fQSAp|{=CLT`&I{&7q_ZX?%Eps&v(f>LR&h-wK-r8?kn zqNA{CR8(`qxUsfX{H@D#?LcgUtKJ*I(}F80y?7ZRfZbtC(7AFDTfrpi7XPsH`Gh^Z z{(yQ}e&8_myN4}bB}aA_Y-3EAjHzIU%lmXXUbhe%jn_RR4pgD57t|CqPt+me`{m%7 zPKlR4nsj4_ryeiy;${ntd%$y0g~6jGj`{eD06v#(Vsz5O;?-`;36>MCAQ@AgwA)Iw z>btbS9vPn{TONt+dPfCYuZ(_~k+0P0GHG)At^Vi;tc^+Zd7bCDk&IC&*PhV|6ymJIm%DJ$cV2y3>x^=Nzhr@gj%B`lsT z6_z~`8b0;GDct6*sZS5k_pNBpm{Q{TNHLniZ7lhT3PU^+Ma4?mNk&QZ$?1Ej*x!K6 z>}ik>n4P&=w?9#k&Mi~9l>_7!gh}%noJ}0N+YO|WoiQhJYh(6aB#EJT?DoKHp(*N?h`e89j;~ULkD>Cf0JlKY=bM zlX~fA#FmOn?*^>u7SBVYi$J`wb&h|J0(LEC!dp>1_&+#U1ngUE59 zfvOc_o9U0cI*yfry3x7zzK?P|g?V@P@5)WBZszJst1M=7o+swkxNqxW7o3fS?8T}H zHRT%sl2@WSxC@IeHQmg$Ho`-lCPMpyhMa7%wM&kYb2hdMcKN%(3}jfaLyeF1_(*=j zI@4>xO#b^>aRdwbGUW~RfhB1eXgcJT!GU$U`UCgHdgC6Jfajlv)y^`oe#_|J(*Pi^auU!-KARZ-)hqQ0Es-g~2Nm^-1t z_#!^O%CYKuNwO zz5cLBhk}CIIhv)Y#WMTWOEh}SSfRLw3w{>cP6au9!Xcw-YdM4L6FlZZq)d9y4C$qC zg-FmfMC8GrFun+S($Q>^l;XRV1Ji#3kmKkKNQqvP)9)$H83&X+34KSKFG3jfDYCsk z<++1U8|X9J6R;~Z$(MCV3iR;Z_Xmc0W&s}SvXBL}VCaYTfdWe#9d^2&Pc4JpA(2Ev z4q{(lHXuTp*GB@wf$VT z1zyyDbXE6=Pm7mU`Xz5N?|0-+cChzb=><7KVde)#xHPuHA#Ew7*?a5VRxt_1e6}y% z)Mg)Rn>Z{N`)^vMo-+MDlmeI3sCA^5iIcYmJcv~I{#@5HGET=m2=QyzJHdz$pXlgl z%@7OMTgOhec=n62I+R3sxkE+V?oHN2PKJk~TA3S!bucRM9@*uNjx(z}r&-N^c z;v!{8nO|9fatN5^TW1KlTZ@geV#r3(V~Y`q9-$Rr#-W-1Naw|kX-V{<)l#i#2i3v> zvwLihEv0JeTQ z1Qyl#_4y=Fkhh2BI@`OzL6j{Ik>q`d!eZURnq`iQRc`z3`&VZPVE9Yr&rUNns~h8orv1O7=G{M6Z@KM$(GDJHO>pFGHhcP z@ibIt$5IAMTpVjU?-lRhayE;F!Mm$XvuO!&ujsJ{J2lf3!FYj8Uy7y_cnKRW(XTYe z!z_iw&k4~;`n%YK@_Jryu-X_sEr!bk5$DZ{_m{+T6X%(z8k6j$X$me2t_eFvR!vKL zSW|~uziC}!eFH>y5^;@9y}y@1h4m!N?GcUFdSTvz=!cRdy?%%5=9zb_RtAas_n6Rr z{4fis$K`Hcu=9Gi++|FOplR6oE9Z|qLqpFyIMYwz;UCKKK=@av(lpvMj0s#FaJ58+ zANeOZFRVq23nIVvnlQp2tjb=IvmfTe^vZWlQ>*+MZQ~pD(7Ld8muoJOiO1ZbYK-F@3HqO+?=mCSi6Gh zvx%ie)bIG=spmRJ>Jr#vKVgqmZ2hyxeof%$=;#!dVQ+b0w^|RM)!bJ5hIK|wBj{2u z-j`gmblR?VqS#o1RK15S-LI!6de3&TKtyb=@ZGt%EJht3>@sjNHnk(8?v?DB2Bn|e zOrP!Ogi>8z*!)APsg&vofQjb(nbYL>(+?NU)LaU;3bI%3yigplj&8gyGnTa-b|m9!a)9 z+%Soo5yVwRoZZdX_`QEH5XBaU@xmAuF zoxULFXPCHlvn&iG?u_%=AL$JdzOr;anh3-kCYzRWE8N4cq|6d`*;vdEj;Q3P9H_*^ zXXmyyt;_Qb=zIk(e56mPvWwWOFrHCgso&Cc3J(WJdzmdVGG<2;Zo@>xz3zi{nP+!` zT{)qhGcjEE4P8i5PZR3E{be!M#&V+*6Qy~DaSzjB^=1M@_QV`BWF{1N9WnI*r6ekZ zme?hCTN-Z>dBp-!x=sEhZal6{$cQKukp$>efvGH56aK|q&n3gbrN#NN=_D#;Uc7|N z_Jx!vwZb@-57&b@+Hj_saXs$+<@dbzctRM%R<(M2F)b{2a$HL-PQ6W|?z&B`pFR6* z0Odju^PqXDAlvS)Y}EhVitUDCEfaR!`R^}gMTS?icpn9yo}b&_Uc;xb#8(X&xVX*? zxdiU(&DYMd+>)O+vtTv3%e-J`4%rFbdWfoG!nJ5NE_n_0WI zJ(#6Yk~23GODt>WdSjHuVyHf=z z1qIXjdbcu?fslXhi~MpIuslf4A`JY3pu5x0ZL5g4P`UZC-!HdHnOjs8URcQdGbiW( zc;~^aQ~$+0O!vbZqe2c0Kg2OY%)Bva4GqG+I2O~P@8V@7<7n)Fc|q#m0Pa6OMm8g) z|ITNjpg0ct_WAd#|MLTJlm7c}cXIas-;E#$#4V_dq*+1=060Ko!Tcd0`;MZbqDkg_ z*Ny^2x`E=jMM$aGqEfV)oLbBPGXA{bFG|j8Xt2xtwGiw7VOa*0-u~4q_P^?`Z=b^Y z_viChQLdn93^{*t0n%qK0J_d)7E6=Z^Vuh%D!EW!hmOaU8TDQBy2&frdMzXb*ScUB zd@GGvz7d$2tWdTE9j>_wr~R?fK&o>ALwbJDy?EESp|m2>bS>cRIH~Y_Wrd*HGicud z`L;p`(t$mzhm*kk7hf3-TtF9`kDzyU32E_$C_^GhCs``ZS2$Q?eBvBPkMgzLXc^Gz za%`G-71xV+1=d0eBmaV z<&Q72Nw|LqPC>ygQ4bwlG`_cl4YGQ%-e4OILt?#v!WK-sIo)`O8<>08*^BwxJ(lPW z8p*Qbd5`L^QlAsl&b8@!b`GREio3y3#ONtTvi~}jAtwA3xHxzCa{U_aDNR{MLB`+U z{O{+HeRcD^JQwL?4J;4*(#<#sQvX*UyTmol9ktg3Xoju;``}2&ox}IL+OtYU(brm~>8>uP&=wIo6I0+n`*10xV z^B|*#?F-6YMkt66jnkOTZ@6sK!H;4vr^Q!AGyjrB2o8^-(%Dw^P}VlvBf_>`l)Pld z%_hlIlfW;K$9sR}tl7(G$qd%dJYTilKmvmHR}0}~ByrueQ6^s?k7&FBTov>36o{0u znM6P9O3_;C*7C8v?Az+pCo05K;?dTasq@M+1KDH2jGfC@?UbaM$8_vvr=r{aW3{SuTdDIzq59hjQr#=q z(4zaN){=zJU&7lk$*tT-iK{Gp8dzR;gWi0I^;^YO90dsD>Ha!IY+7pFH)0wDa_b>AynuP=((~}mGK>+)g5N6tL8wZB93oZ z&O#r}-bo7gVX%Uj_>MLN^JRnD?3CGTU42aUapUUITjt9&Udu@bC&TbwuzyyBz1rGx9A1jGOzshZj-Tr7XQc(`3itceC9?HjS2wu^Z0)E8T0aGm(+Q zla=I0Q<RX=@FCR6EU*(8<701HusXPCzLC^pdCtn~mf$M~0ySZDyt+n;Phq;~r%NgD9cr3+#6MeYJvgB(Zp^V7 zBLoG{3DA{SDSaH0)RU!)O_rF{PLu^%h=W)DgYO==o`nNKs0bWj$eTZ8a?6G2W?);#!$fxgn1Sn1vSbBeFM8a;EZO0q5X0WNVhFA{F_1?(jAIWcPLkci0bel#IyyOHeEoM?)Fs4iwyNk`6(N5kq}6+v$|pMrJkd@tUyJh`jF8&ise=>i$( z!J|@@Wb~<=`^rx6J%lj(L5Pu{xPL}qBHwzG9ZA5+n_ib_&;}0P zn#Ts)v|RH->r7VC7y+tDVB87{>0@pqJq`?z19yZqY-E@Z_w{$mz}b8w#*yv$mtBeX zcu&x~rMa7zsbFdSt96*)Cl8+jvg_&4iS&3UB5cBOABzLjwlQZED7N54-NghixOu?J z4d3vNJI%K zE5SpFlF2!etpqP~lwF!}O+G@##o zB?r%I{#CBVFdfr^R6u|8>5UIy;@%6yp)WB?ec9x6lpFnfBslrZv=dNW*5YX^F-n}m zOucuw>?+xqyg)xXVxuCvMWJy?2iu1(QmCkUCDf78$JD(|RgX5}86Z99^@-7#mY^PZ z_ZZQ=p_jLM6!NBDroXy>$Br#4gZRFQ=*$LxKM63N|8WyV-7eco9yNL`F{$&=M3<=I zS&Z_ObE%Mm)E}FNgA+ORjk?UFHBz*8F1%_;;pvx4q9asd*I7H%I!r$?iqEa8sDn(^ z2hNKk`)%8HhA7E=HmG4_wDIfYZ9b7kpQ4(V+&#T$o@5nN`pSE7?*IfVeA8?l9joW5 zrYGK>G_y%-bx&VJjtlM3>)Rd|alZOW^MSP<)u^zB z#j78u;4Z4Sj-2WG@7nHr>S%ltjaRkls=jjQhs=<5sFnpkx9~bm&{MObBG3z)NBQ@= z!w(UOiy^%9vl_3RoT$Uy(qG`C?SH~uE)-l-6V>Uovq<$!e!X=PZRCrR?dmJqwFm*HZEj^OC5N+AsZNwjP)g-t^QZSAY9$g7)Tvzr>Q@eo(x zP}`CH`#>rVoE4%Ochw=%PI}R?qzaG{N5sse^z`&q8CL(I8~lQZm^gXwiI`EqIy6<} zry)W_qW>X65&p};7ZWr3-;7ZHd-2VG@9O^$9r+1BTe9zBb+xLUsmzBI*$?K#h8p^c zW%GXc3BqoeRc@U4VABBSWTof)iY*I`jUi3bC6S{9aR&Ccl9*^ZLOlQ=HsYg1)I?2< zK_BTmuPc^M`{QC1C>g!GZ(E+yxEGU_G`#`>Lh zU_XVX*Auk|irxp39plE9@Z$z&e6I)tC}~FSKBEke&C-zZpp&f#TCS2><({yj&AUko zGRnVKW&Mj-h`2K%=#-R_S{rZ@_jF6>0my?96|Z8A^Xm>s6;0i6{UhD6VFgL+yRmE( zAN-6h(We{_QW!OzX<;{0k3sIhwy8}ybfr~8Q4TQ!1mrT{{P159O&K$_@jirv6)6Cz zEEsrcL)`%L3OpWiDuzUj?fxMBcDSXe(qTd}a2I{hXdBA{tV(uLc{$wCl88dQSKI7U z@&%ed+dP4OKt7+VWO6_>O5z&B1J!Bf#4p)ZK&QVwaADJ+Y@prdJ={)8-s6$daDNW7 zeziQ`t_t5@;2y$$U*%VdM|3ezc_r!T^&IG6#23C_9gMe7u(;bWVG?e8`%eVVM5Khk4%j9YdQM+yKpBA^Wej z+l1%TnZ<@H@hL(O=IvLOo0nE>z>oFG8Mk<&${&@IF14jq)q`#?k)ELqfNFB0m!UMr z13PFxa`KnX53JS%p!01lO+VjYhE6l-6Y}Rm{Q8iO4Ee-DZuXqcn?hcRx0!ir`e-ND zZ(hMtjm-7wXM~fw;ku*m>xyDK7MPX>Cfg-WCq}uFY0Qo3`(mC%D!lwlE{(!oET;rC zrR6V8M~X946(0>mhIEyFbcs}k)6i1xsF`{NDm4-4O{E&M!&S(evYQrG&!L5@15X7q zW@YT8aB2H9jQKz%kTrqjBhDV5dnvbz#G~X`p3|$Q% z&u{sA#L^m2-J{ZPmr}_n)bKs?S4s{mG>oBc-->ELR55zsEGvJzOc(h~)77zjHo6rv z+1o+nPB*S6MU{i1pFb@>nr0*BZO!#8QhvHqS+I){rqBoN|yaVqbE0pLESVwPO;ctAlv-M zY*&xVB>}5%8hMBam#_B#to8e|9JZb>%KHoqsTysHswDzrK+C9q0RSt!>dc`>`YJT+ch z+Ey2N6#FIjCe`f@q{Bu>58s-h%=8`vbGRn;B1*_OoSsUnOc#-G#Xdh))x^!o$y@T* zjeijwTT*I^muE1r1w7fPpRNdlcqmFHC@Oq~2%U_tc^_eypn2O}jA<$kc^ovjSnmn{ z%NvMfLq$Uq`K&=foO3}muLURR9XCg&k4!Q~pz&oStr_e6N!iq8|B9woqsR&Qp+&kP z%`EfkozppT*f^1VVt*5f)~5%s-KcN|z%MCv?b~GkNO3In{V(jw^WKZuiZec)c*K5? z(fB{$_rE5Sa1#BOGlRIZ!e5pa2j~BCH?FC`zfa)e_`v2p0J9|uUfW7#PlCQc#1sEw zX9@}j@L$>h0ZnfF&F%k-?$n1H-a`-`?E2tGiy}RD*WN^?CIWOg@WH>2n>zH?6_G97 zUF!ml*4L)O5Mi72U&M*z%SgRTZMX_AxNJP}y!(DeZ>T8$LZHvw60qE}I7Rr((ty(y zmN->SSn84Rtgw*dv4H6Q{ViPUA^8aDeJ0q~%~&0rIYs&qG5%x6wlF}J! z)${e3cM$vQ;D6Nef`2uNO^uHplaLV5V$6lWcwT^ey!MEZu#ap98+V(D4)&-5@O8pOBV{ z&AciMUu}08U^!K8#{6!RhW2v^lB>w|1w^dzu2tcepgDSanB zJweHeVvAW-W_xp~HyttPU5#9>+BS{|X;OX_vtw`l^RmS@fQ7|2re$9&lctZ9kBi08 zatFFlD;JYSc{d)#&k;zkj~@MQEd5s+V@#+2T!ti7YBg2rPl`;(s_=`zNdC0{^#++c zC7QFzRpUxRqrIIo6`J#YcjL+k;GAudhT_*<$lUjc#S^c1+I_gRMZ1Itog{RKk z%!@|Nq5obGDB(m_)s7e`nP6m2%v=rxJP>I(<|tUq+@DF6(0}nBh#D4VVo@j@bAC2e zZf>0@BW1npdU=J$!R|(`?k>Uaz7Opjkd{WjN%4Wj&>~7GBbM*2nNAaV9y4+Oq9hld zpC8}Ma1=O321GSNi=74d5$!Z{ZUo&&8)3Uq#v)FTWRFR^ZA-A3Nu0YP?JJb)Cm`dE zAg{A}v-I#Ey1r(MR>?B;a(IUgTWiiy9Jk(-<&$DhSxPHm)SXBgi&2!8(HQoEe${$G zG9b3Cm@BiMtCWyKvli1Z)o5v1+lzj!?E_0;D*I<qavhBXifs+p;FP zC-9auiPF8nXS6I#rp%#R^Yzpf* z;B~J#-9%=Ai%Vsp&hhk!<(O>$$KeV$&3!4Rv62?Sp@}%k&^miSADRH4t=AMg`p+5A zRZC9`B(e*;@@8jSNLeJ1@_~HQf<`S?2s}LjSfr`aOqru`ee^LPxIZa@>w??cU!qyx zD}=r7TXRc1Uq^XUq1Y>zSL$s@ok`ta1L#w}#6IW?YjcqD5}h8m?hT0b2fuJ_V$$${ znF8(BT1x9txdqMx(4IIMF$T7DajR4)_!oJD67r_da+6Iltl_p=k} ztHLjtL3;duz42I&abdECNdP;<=)8ArDr#${Q9yzQ--3DZ-EXzyZ>R72GVqUJB8wHt@2c8RN`SbaToXeJ>?ikeE<|?J2#8Li0;R{YR>uM=}e_Py=-5`12ac z*OZk~YL?p*av;&Y^b;)25zT1Qzo+rzXn0&bDm@{&sb1MeL3KtpAdDEQ%+#~%8b(SW zpOemDt&@x8ulk2RTF*l*%goynJkJJC*Zl2O0Mm)+fvBYik!=Ywd~zf(V@rVL=@Ys} zam$0-U6w*E-t&T%9sBf?4QRIg+PddIG*+$t{|1lzpJT(KKW0c0gm_by(}&G<$~nsT z?w_luek};kXJdq>KYjSx_qVtr(Fy)Cj{ogOeXT#~KV)5ONa~K9)9o*DC@LJ~;mj=X zFx=m<=>ho@?egcXC7^^G0lAH#>*vw)+owU4QzsW{{7o0OwL~Ic;ESD0kA9h2)>s!W zVF8zY$UurN1ZC$Hfyi*&ZRC_c=?)={y%FqOkXyNdS+yu-zwbO{p?k6q9dmC>V_d=ICI&bS6kTlaFCyKF*1$BAJ9hceBNYSVp7t96V<3-6tXS&DAR5 z!OxjLRiT$!j~eYf4%PNbs5LbuZLC*SwqAWr%EuZvKc_hYuNA5==?dQ%jOt?N=Zn&~ zA=%oTiVsccr#F5j0o(2A2?&d(4diGnrxhUEmv_5##Da;$EFC3ecuJ@gG>H%iFvRVP z2t=*~qS^04j7%&t83EdHq1dxg;|a87J9!HOvLIq_su_8k?g0{5252e-`^zHPEilkO{IS5>@-_syCFTZWg)J4cL3V`y|*I1^n?hfnccu`26m5@A>T9`#1r2m-Ui8 z1aXYq&48Bypn-mY+SVmBQa z$jnUN!^BpV#U_KQ-6UGoRtfcohMI59#?KdK*0Az9!9!{p54PnLJY*7y;xhO>8QYw+ zr(6LZi9`(MTlFkEnx^*ar>-DH4G+@ZbF>3F4+p-r-d;x+?o4hwZY3#cnV+rz=rUSb ziXChy8l_&MuT-naU~Z+80G{W{AtM^tv{EGD1DDi>S5W3N_-$_*gkqb4kU3`5RW(5rcuSaVL4C^e!aio{2&v1fDEM)f0JyvuSl<+n{ zS^LU5>h#8I4cMk@ndxyV+q(VeN-IhUA}-t>RoD%s+#({WwY3%&=2A7@!fk>R2x?5Xg8@jRgKwiu1c`mx`wL}|laOrEiKBmEe9&*-YGqIyym!}dGvt%mw18PWCY z8csQREZMg)ZB98d>@aSVzMa%^U!suTma9FF<)Z>fIniNZ)V9%cS*+88JBzwt%Zeo% za3R~7m!4q0)%(%CyRPo!>%7%M`Sw^u1XZTJbk6#PZzC~N0n|^Rc36=)lmArBnFLtI z&`;}xsb1!0InJXE-y4t# z9v&XL?R1Hx&EaHG$m-;9>X>ftp>;4ay3B={nb}BY(I_(UWR)BpH`(*8+0*BQZtS`a zyTdYHfT$cQ@)}N7N-x)PqH_}xb3D#8LPP1}`qV*)RW}85K<2(|+nm zBafYNcbK5OgOIxYa%0{=ER3~;oGsb#R0z+xa3V^!X_TTUA>lf^yA>Vf%8J|i>T4|G zB*?Yro_+TZ1;he!tfVKz7iOtwBFmO+}V-doM+w@=IMfC!_Z1A zs?NSLWoZmgjYmW&k+?;Xf}#aZn#XI1314*219T;GmckrotGF5%7L3w!kGHMn`BQy; zTZlbRZ7t6FMy8!~_ca@+dO-OLp1N6Bf-xu_Xi5vCV2|;Fo};LfgaT@ME|ZTg5@9fy z>A`8huImMu6K2&Pd%AJBBl@+SM?g>GW8>x{a)b$Jb$jrOnf!I=u|TVKiSZotHb_j zffk(*xpWuEvzdu2SET*6T?1B{SHcai?{_bE1V4BGY^hOh7Wv!JPiose6$29xc9-tL1HJL65zrahvbS-_3St)4Nx6jL_%ngu?hYXK#@4W7|)xS85$ zj4Qf>i#1*u*lUhh*X;GKA1~KM)?`TSKJeVhqPH(vVJopb=NOX?4op)6#{eS=Gpf;UGBrW1GN z%(_<%3P$Gwz$k!l+^qWqVAZk-QO?uzlx$U3$dNw4=%_o@}J-lXd- ze76tvjv&*$BYR|{@q2MFScFs495B^kmYGz2!(I~-_R9hrx(?EYJ4LJDtPc7y1g_z2 zZEnF*AN~Az$kTnyn*Qc65S|nVns$J00CsHp5*55oxl#*+V4k-$eGUiH0kaygp;`A0 zk}V5QxI#WzpZ48y>T2-ab>(bghB91izt%~3gk`jle;by1TLd54Yf4;bC=<@C?NF~c z51SP}^SoW}fZdrQGnW|S|HD8JMT9vb51J06JokO=Z&{1X`*}d2q`6{E)|kjBH4 z>+O#R7iIN_tqL4G&NQiay$KBCajOHVRPc+Lo6cr|Kj_o@{=tOQ%qy5TN7LNl@w6vc z_&CM$%A+D*L)|?X%9F99x_umI+NtQWPYH)?5YF4a+luX=*G}$3m$LD=X@Qe%Bn396 zZci_C7uMNG(Tnr|uX%tmO%2-(!ik!I9GRLu4*2$lO`oP5YQ4yBTkg3z2KHdi_8yPm zs$v-^AOpe|m}>I&Vm)C+sZeyl3Sm?2b|oXcj%;1PTykO$AgEJ&g9nFP*IKvh4 z4sMtJaSP;%GH026cW1*Lf-nfS{kDHy?_q_U3&BwQDu7rklItv$Uq(=V4=O zQ7+!E?l#YLdx2hC2A~cpL#5gz?|6|Lo;zyj+)TC zDr;vSx*BzGlZ`ar{-2e#QjT(AU&T+*%?GV99c{C4}kGMz%8Hxzo03i)>7j>eE0j`ngz*!p&frBcclM$!#2|t%cyI> zH-zbwxcMsgPZa4|BoDLhYZ=NTvz$K6+^x<&@*{az{TsGw4xHaExGLqBQtUtSs$(B5 z6%ueyRMJ?i@gWNQ?SM$mtvyt9x5h|F={^!gAs|kHX!V+JPexpMsAellD<%zW`QGpe z3MSNCW|dcsQ=2zlw`kCWA^e3&Gn%}LQ68s^joZ*Is~3Gd&Lj}6gSg|xZE7hKhsz+A z4cnX8-P)#)UwnxoTz-YN4^;mrXa{uy;dJV4Sz@MDK~dSV|K23 zgR#r`{#?v_=MV-)vTVg@;y`6>G6`wF6=-z8PJ?S0&y>oeAq^-CrE?qB(qRv!fa2{#nW}LGsw4|+9gLZkZ zkB7z`E61`AMkAwXq|FhP)yQor%YN%etF?2-ihiTb?jzYT5F~74Gjb`Kzjj!~Le@h< zi6$`2*ppi-*UiLrImYD+M0G<^1~kepAQX#7+r^=q1Y8?tO370caevijE+esncGKbG z()!z|wZxRUkBn>aaz=QC6A%1kl4=%B4;G=J4>hI^`$^NOw2hwZIV{;VIl?k5z|vA1 z!&=&_GT=l|#w;i-Y@AbWOwkMO3yK}cx43W~D0g~??MpQCKakuS`>6k?y(v#!*8A+`vdfIBX5U00HC-ghSdE*7jfs5DejHR!9s8 zDj`5P0xq_JK!OkgBtRl^83(yqUjVM+KYz^q1H?Bd>1Q>H)0`Iu6%TU2G=TkE_q;JlNy0p z!jDbKzyd+)7f0s9RXKnb&KjJ5l%cQsNR+Lu(}xt2@kR(~0tStu`W{$V(`*aEyNn?# z)QQM=?QTQ8sGxC5Wps}_bjRb43b>%J+0XNy_=sw}o!VXU2s0p1LT{Z!pP+N$() zlqvvT>rrUDotJny#*7a43T}6r%-gu+RuDm0pBcg}~MBZvy_Rcz9p(n@>Ul?$^2 z8S^Y9l7);*i47&mNK*;QqIIr}ex-%T*XL4J4PmN=JYG9ByMR2|!uQm$9(7$rC}?Qy+xW&Jh&q66m+68l=_e&(z_ zZ-l6nkvLmS&36}0{_L_`w(i+H#*N2UTPtAT;o+y|`VDcuaMO@wYkT9cQFM-5A1n>Ut&66ifMJqDcGm>@Ae!Mu;X zlH^q0dk$Z{HBY0bRMY0p<>sCk=7m%iOjDbZ=#(-cuF@dZ?&td+$n=_3cvI`{E>O31 z?OYv8stF9Dy2%9kDX%jP7UgHypW~iq7bwOn6`hjM%=(2tghg-6UgA0=E!?&W6hEm= zsVWU-Sm_12XVeScpqeQPg{S^S7AHqv*+E974pUvl6A_=Y{EG)$2aK=2lh|2j{~5 zec(aHXbhCST#k0haA56QN^GdHU!GHagKGVkw7gwW5P$d~D%JyPPUT#*|I)5#nyMZF zx)Q%=MwE!xuA!rAB?C-Bah|Sy$QUtsIdH;qN#+?r&bms8P!0_vX6`+|`x3i@XsLkuaKjo)dbG z(6qp`@|Spa*gy^rnkw|rh!%5jFuuCz_o3xf&$p~JWH>P7m$Ie~8yz-qb*&(;_@J5d z+kx{;&Xmje4qtjIq_RfO3LO$$B1CWqrcibeo$Q!=g`N~5vR)F}>jcvNezR{Cz&D`1 zr&s5caJ)VDB9hfiUnd-jJ^f3f(ptc;y<*_zN+2{G{PH7_4g$5?W}JNZqH>@jlLCK- z&=c%Cv#UT#f3)}vhmunM&>v8mO!@2sox!z}wo*m|8gucM}nfV^$ zU>O$Ch!RWr$+ar&KR=cZfOY?(3Dl9LT4rD9S4!WYeI>GWp(Hv33q_2^#h%ZcYs*(# zk7xn#+uwGa)y|va$tA|;B*mY|z850zWzRf4puclGQQ;$bGlky_bT*?8x$&Lvlb7?W zDGY*ymzVg8I(?oy0vC@Ea89w_sr^frpUa1&X-OtNp|Awy$k(W-xkqo9HtxmKZfVF< zp7$*x(k3=yM3d$7aD0G$3ecv>J7ez{=}dGjGk;=yWe; z5C;aBnrgUrjXHpWf&=FW8yuCUU(GCS$a4YioFL;(CO^Y&9_|y$g@ksQ$amn>?fYAoFCCtgJYKc_B@c0Gh zYk982NT9ucC;LF0(*#M>Ry5GH&6`GP*;z+SiYp)RPA7%saFqR*Nw)baL+_pyPLR4m zJoF#FUJSwzF)AUAS2uzJyii|8h&NeG5#&TS?y<4%ey(A^2GHhLFFQfa6|g0EiE0CM z#?-Lf2Y4f!i7}6E!gou=+D3w1hxxM6N^8DpB45%WIT+kMq19a1OXzY`f3D_$Jk#Yy zBE5)h74%d0i>9t6ikCH7nq`Zq-8L9+H`WE{=he_cA4K|aS&Q&!-QS`WVqLT^hcy1b zu&uw=NdUlDziUS|0WG(iM$@GqTLo*i59o)t|0o0M*N*eUS`=loF>`R}yp{ZT_qSBU zn_VmeiRyTn6AAJ1MOLX(hWP}zVSQS_OM5-^ETGu~UopRAXB4k< z;LN2&JdD7l$Q>w2YV5My(W9f?m=63v-6LCh2we0Ef>j#YUYf1Uv(0`dr0b((qK{?DzXQ^GV{8M6BeU z(s8UY;a9O5m$1>zp2LM~x#Z|d_7^=fe1HHqY&uaQBh+Hf~}(Czb$W)f@NB&saOG4ab&$p#)7 zmRBBoQq%3Wx38c@P4+m|GWQ0Cf7HeH{`y#1lL;pJA~H*kd=U-kzTRHsr$WeZ2zao7 z=|#LMC@RM(XK#bq1|H*;JiZBy!V^0eJ({SP!l{s(ZSdSp{m5#i?D`RSwBUX@F6H~r z;tlsA5Zyji4OELIh(!=Q7(cI62FwFPesiPH+q`(*zq}MmZ#J=VN6?n46zKFRG)(B) zcsa}A1S`5vdX;;}xw@0)LVsFSR*ERDP}G~30Ai`r!%%O=z^Kl&rdb{P z{s~>nLDp`tuS?#rfAWf=O7z$eHkeUJ1keD{|=42oIl?J+E3%@@R6`cd~)jvS@K*xAcKkqd3|w1IPxFYPqTM zD5$z6FsT`_sfUH))pcdTQHa83wY`g@@Xz>B#-L(wEianD(nf4wR7-oo4NLIbK9 zu?}TjV*+^IzH>x?vT?ime#}vo?_~-=VWYz&EAWQ>OV!)~E+76y3zDM)=4H{x(u;y= zDE{yPzm)3EgfvVaJ4V>{nU0RG?9C-d`bKV3iW24T0%e>4Ln?ZwJM)oGn%wF`F+oqa zVrmnigsk}Re~rC(dsGC-ix5V<6mes0?##kqrC$v^ZRzl?xk4HSOmD#TPJKvN&pB)V z@`)p4Wxd5OHujff1-k%E??43pHsp+!e;g`q$3sBbW$zex~Ne+HtpGw*vRt4m9RyR0^QZ+UP^d|Q~S<#JQI@b z&f2ZEAgoICj1Z(yQ@~lkGol*a){oA>GnwDWBGuy%IR zqHT&j%OgEC5;vKRXCXxVP1xQpZ;y8@AD2nPHGfR0RHHpQS1RZBTX~1`;B>yRUtw)fw-VID5~H|0jxK(zk0Gyr1LtUW)(! z!Nztbc|h{>$At9eq|)=WaCnfze~y4_KG)*!qL01+O4%y zK*~K04tk=kU)SBWHn>#Vg}n508Wpz}Jp_$wbFLo_0s3$)fMNAvT!22z5fJDDUVuJe jC+I^R0TA*3wx))CG}kJkGIV#f5cH3}ryIVy^zB~&GK%-H literal 0 HcmV?d00001 diff --git a/screenshoots/django_admin_two_factor_auth_2.png b/screenshoots/django_admin_two_factor_auth_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d1dd5bed2bf7b2ec70050424d6fc21dd0d0c28f6 GIT binary patch literal 33321 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

v7SWI!cg3G;_t?-E~Q^@;wIVQlrRp=~t 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 literal 0 HcmV?d00001 diff --git a/screenshoots/django_admin_two_factor_auth_3.png b/screenshoots/django_admin_two_factor_auth_3.png new file mode 100644 index 0000000000000000000000000000000000000000..bea3d38e254bed0f359936ad0e3e74d9467761e1 GIT binary patch literal 82581 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�~4XuhiZH+92Qjiga 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

-aI*R`)3L7N3QS|$N5JLl$Z# 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

YEPWNJVM|nrcpETDSpTV#U)0Wg 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 VbL7Qh5 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

    mkj|CaN!PAAx4Ty8!rZ}6R3T>RxO4B#Sh?+N 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 literal 0 HcmV?d00001 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..20b219a --- /dev/null +++ b/setup.cfg @@ -0,0 +1,32 @@ +[metadata] +name = django-admin-two-factor +version = 0.1 +description = Django Admin Two Factor Authentication. +long_description = file: README.md +url = https://github.com/imankarimi/django-admin-two-factor-auth +author = Iman Karimi +author_email = imankarimi.mail@gmail.com +license = MIT +classifiers = + Environment :: Web Environment + Framework :: Django + Framework :: Django :: 2.* + Framework :: Django :: 3.1.1 + Intended Audience :: Developers + License :: OSI Approved :: MIT License + Operating System :: OS Independent + Programming Language :: Python + Programming Language :: Python :: 2.6 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3.2 + Programming Language :: Python :: 3.3 + Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Environment :: Web Environment + Topic :: Software Development + Topic :: System :: Systems Administration :: Authentication/Directory + +[options] +include_package_data = true +packages = find: \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..da61e06 --- /dev/null +++ b/setup.py @@ -0,0 +1,13 @@ +from setuptools import setup, find_packages + +setup( + packages=find_packages(), + install_requires=[ + 'Django', + 'pyotp', + 'qrcode', + 'Pillow', + ], + include_package_data=True, + zip_safe=False +) \ No newline at end of file