├── RealTime_weapon_survillence ├── pyqt_user_app │ ├── obj.names │ ├── weights │ │ └── readme.txt │ ├── ak47.mp4 │ ├── pistol.mp4 │ ├── saved_frames │ │ └── frame.jpg │ ├── __pycache__ │ │ ├── detection.cpython-38.pyc │ │ ├── login_window.cpython-38.pyc │ │ ├── detection_window.cpython-38.pyc │ │ └── settings_window.cpython-38.pyc │ ├── main.py │ ├── detection_window.py │ ├── settings_window.py │ ├── UI │ │ ├── detection_window.ui │ │ ├── settings_window.ui │ │ └── login_window.ui │ ├── login_window.py │ ├── detection.py │ └── cfg │ │ └── yolov4.cfg ├── web_app │ ├── detection │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ └── 0001_initial.cpython-38.pyc │ │ │ └── 0001_initial.py │ │ ├── __init__.py │ │ ├── templatetags │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ └── event_tags.cpython-38.pyc │ │ │ └── event_tags.py │ │ ├── tests.py │ │ ├── apps.py │ │ ├── admin.py │ │ ├── __pycache__ │ │ │ ├── apps.cpython-38.pyc │ │ │ ├── urls.cpython-38.pyc │ │ │ ├── admin.cpython-38.pyc │ │ │ ├── filters.cpython-38.pyc │ │ │ ├── forms.cpython-38.pyc │ │ │ ├── models.cpython-38.pyc │ │ │ ├── views.cpython-38.pyc │ │ │ └── __init__.cpython-38.pyc │ │ ├── templates │ │ │ └── detection │ │ │ │ ├── navbar.html │ │ │ │ ├── password_reset_done.html │ │ │ │ ├── password_reset_sent.html │ │ │ │ ├── main.html │ │ │ │ ├── alert.html │ │ │ │ ├── password_reset_form.html │ │ │ │ ├── password_reset.html │ │ │ │ ├── login.html │ │ │ │ ├── register.html │ │ │ │ └── dashboard.html │ │ ├── filters.py │ │ ├── forms.py │ │ ├── urls.py │ │ ├── models.py │ │ └── views.py │ ├── wd_ss │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── urls.cpython-38.pyc │ │ │ ├── wsgi.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── settings.cpython-38.pyc │ │ ├── asgi.py │ │ ├── wsgi.py │ │ ├── urls.py │ │ └── settings.py │ ├── Procfile │ ├── alertupload_rest │ │ ├── __init__.py │ │ ├── tests.py │ │ ├── apps.py │ │ ├── __pycache__ │ │ │ ├── apps.cpython-38.pyc │ │ │ ├── urls.cpython-38.pyc │ │ │ ├── views.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── serializers.cpython-38.pyc │ │ ├── serializers.py │ │ ├── urls.py │ │ └── views.py │ ├── static │ │ ├── fonts │ │ │ └── OpenSans │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ ├── OpenSans-Italic.ttf │ │ │ │ ├── OpenSans-Light.ttf │ │ │ │ ├── OpenSans-ExtraBold.ttf │ │ │ │ ├── OpenSans-Regular.otf │ │ │ │ ├── OpenSans-Regular.ttf │ │ │ │ ├── OpenSans-SemiBold.ttf │ │ │ │ ├── OpenSans-BoldItalic.ttf │ │ │ │ ├── OpenSans-LightItalic.ttf │ │ │ │ ├── OpenSans-SemiBoldItalic.ttf │ │ │ │ └── OpenSans-ExtraBoldItalic.ttf │ │ └── css │ │ │ ├── main.css │ │ │ ├── navbar.css │ │ │ ├── login.css │ │ │ ├── alert.css │ │ │ ├── dashboard.css │ │ │ ├── register.css │ │ │ └── util.css │ ├── requirements.txt │ └── manage.py └── .gitignore └── README.md /RealTime_weapon_survillence/pyqt_user_app/obj.names: -------------------------------------------------------------------------------- 1 | Handgun -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__init__.py: -------------------------------------------------------------------------------- 1 | #just django app -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/__init__.py: -------------------------------------------------------------------------------- 1 | #just django app -------------------------------------------------------------------------------- /RealTime_weapon_survillence/.gitignore: -------------------------------------------------------------------------------- 1 | *.weights 2 | dotenv 3 | *.sqlite3 4 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn wd_ss.wsgi --log-file - -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/__init__.py: -------------------------------------------------------------------------------- 1 | #just django app -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | #just django app -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/weights/readme.txt: -------------------------------------------------------------------------------- 1 | Add yolov4.weights within this folder. -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class DetectionConfig(AppConfig): 5 | name = 'detection' 6 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/ak47.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/ak47.mp4 -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/pistol.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/pistol.mp4 -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | class AlertuploadRestConfig(AppConfig): 4 | name = 'alertupload_rest' 5 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/saved_frames/frame.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/saved_frames/frame.jpg -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from detection.models import UploadAlert 4 | 5 | # Register your models here. 6 | admin.site.register(UploadAlert) -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/__pycache__/urls.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/wd_ss/__pycache__/urls.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/__pycache__/wsgi.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/wd_ss/__pycache__/wsgi.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/apps.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/apps.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/urls.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/urls.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Italic.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Light.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/wd_ss/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/__pycache__/settings.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/wd_ss/__pycache__/settings.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/__pycache__/detection.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/__pycache__/detection.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/admin.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/admin.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/filters.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/filters.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/forms.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/forms.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/models.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/models.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/views.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/views.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-ExtraBold.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Regular.otf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-SemiBold.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/__pycache__/login_window.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/__pycache__/login_window.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-BoldItalic.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-LightItalic.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/__pycache__/detection_window.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/__pycache__/detection_window.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/__pycache__/settings_window.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/pyqt_user_app/__pycache__/settings_window.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/apps.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/apps.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/urls.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/urls.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/views.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/views.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/static/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/serializers.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/alertupload_rest/__pycache__/serializers.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/migrations/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/migrations/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templatetags/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/templatetags/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/migrations/__pycache__/0001_initial.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/migrations/__pycache__/0001_initial.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templatetags/__pycache__/event_tags.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anon3mou5/Realtime_weapon_survillence/HEAD/RealTime_weapon_survillence/web_app/detection/templatetags/__pycache__/event_tags.cpython-38.pyc -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/main.css: -------------------------------------------------------------------------------- 1 | 2 | body{ 3 | background-color: #ebeff5; 4 | } 5 | 6 | 7 | #total-orders{ 8 | background-color: #4cb4c7; 9 | } 10 | 11 | 12 | #orders-delivered{ 13 | background-color: #7abecc; 14 | } 15 | 16 | #orders-pending{ 17 | background-color: #7CD1C0; 18 | } -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/main.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QApplication 2 | import sys 3 | from login_window import LoginWindow 4 | 5 | # Starting the application 6 | app = QApplication(sys.argv) 7 | mainwindow = LoginWindow() 8 | 9 | # Exiting 10 | try: 11 | sys.exit(app.exec_()) 12 | except: 13 | print("Exiting") -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templatetags/event_tags.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | # Splits string into a list 6 | @register.filter(name='split') 7 | def split(value, key): 8 | """ 9 | Returns the value turned into a list. 10 | """ 11 | return str(value).split(key) -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | from detection.models import UploadAlert 3 | 4 | # Serializer for UploadAlert Model 5 | class UploadAlertSerializer(serializers.ModelSerializer): 6 | 7 | class Meta: 8 | model = UploadAlert 9 | fields = ('pk', 'image', 'user_ID', 'location', 'date_created', 'alert_receiver') -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for wd_ss project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wd_ss.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for wd_ss project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wd_ss.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url, include 2 | from rest_framework import routers 3 | from . import views 4 | from rest_framework.authtoken import views as rest_framework_views 5 | from django.urls import path, include 6 | 7 | urlpatterns = [ 8 | # Alert POST 9 | path('images/', views.post_alert, name='post_alert'), 10 | 11 | # Authentication 12 | url(r'^get_auth_token/$', rest_framework_views.obtain_auth_token, name='get_auth_token'), 13 | ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Realtime_weapon_survillence 2 | A video survillence project to detect weapon and alert to the user/nearby countys and prevent murders/attacks 3 | ## Here is the intro to the app: 4 | [RealTime Weapon Surveillance.pptx](https://github.com/Anon3mou5/Realtime_weapon_survillence/files/8660954/RealTime.Weapon.Surveillance.pptx) 5 | 6 | ## Here is the Project Report: 7 | [REALTIME WEAPON SURVEILLANCE - Report.pdf](https://github.com/Anon3mou5/Realtime_weapon_survillence/files/8660962/REALTIME.WEAPON.SURVEILLANCE.-.Report.pdf) 8 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/navbar.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face { 3 | font-family: OpenSans-Regular; 4 | src: url('../fonts/OpenSans/OpenSans-Regular.ttf'); 5 | } 6 | 7 | * { 8 | margin: 0px; 9 | padding: 0px; 10 | box-sizing: border-box; 11 | } 12 | 13 | body, html { 14 | height: 100%; 15 | font-family: OpenSans-Regular, sans-serif; 16 | } 17 | 18 | 19 | .hello-msg{ 20 | font-size: 18px; 21 | color: #fff; 22 | margin-right: 60px; 23 | } -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/navbar.html: -------------------------------------------------------------------------------- 1 | 2 | {% load static %} 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/filters.py: -------------------------------------------------------------------------------- 1 | import django_filters 2 | from django_filters import DateFilter, CharFilter 3 | 4 | from .models import * 5 | 6 | # Filtering 7 | class DetectionFilter(django_filters.FilterSet): 8 | 9 | start_date = DateFilter(field_name="date_created", lookup_expr='gte') 10 | end_date = DateFilter(field_name="date_created", lookup_expr='lte') 11 | 12 | location = CharFilter(field_name='location', lookup_expr='icontains') 13 | alert_receiver = CharFilter(field_name='alert_receiver', lookup_expr='icontains') 14 | 15 | class Meta: 16 | model = UploadAlert 17 | fields = '__all__' 18 | exclude = ['customer', 'user_ID', 'image', 'uuid'] -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/forms.py: -------------------------------------------------------------------------------- 1 | from django.forms import ModelForm 2 | from django.contrib.auth.forms import UserCreationForm 3 | from django.contrib.auth.models import User 4 | from django import forms 5 | 6 | # User registration form 7 | class CreateUserForm(UserCreationForm): 8 | 9 | email = forms.EmailField(required=True) 10 | 11 | class Meta: 12 | model = User 13 | fields = ['username', 'email', 'password1', 'password2'] 14 | 15 | # Checks if the provided email exists 16 | def clean_email(self): 17 | if User.objects.filter(email=self.cleaned_data['email']).exists(): 18 | raise forms.ValidationError("The given email is already registered.") 19 | return self.cleaned_data['email'] 20 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/requirements.txt: -------------------------------------------------------------------------------- 1 | asgiref==3.3.1 2 | astroid==2.4.2 3 | boto3==1.16.47 4 | botocore==1.19.47 5 | certifi==2020.12.5 6 | chardet==4.0.0 7 | Django==3.1.5 8 | django-extensions==3.1.0 9 | django-filter==2.4.0 10 | django-storages==1.11.1 11 | djangorestframework==3.12.2 12 | gunicorn==20.0.4 13 | idna==2.10 14 | isort==5.6.4 15 | jmespath==0.10.0 16 | lazy-object-proxy==1.4.3 17 | Markdown==3.3.3 18 | mccabe==0.6.1 19 | Pillow==8.0.1 20 | pydotplus==2.0.2 21 | PyJWT==2.0.0 22 | pylint==2.6.0 23 | pyparsing==2.4.7 24 | python-dateutil==2.8.1 25 | pytz==2020.5 26 | requests==2.25.1 27 | s3transfer==0.3.3 28 | six==1.15.0 29 | sqlparse==0.4.1 30 | toml==0.10.2 31 | twilio==6.50.1 32 | urllib3==1.26.2 33 | whitenoise==5.2.0 34 | wrapt==1.12.1 -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wd_ss.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.1.5 on 2021-06-20 07:25 2 | 3 | import detection.models 4 | from django.db import migrations, models 5 | import django.db.models.deletion 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | initial = True 11 | 12 | dependencies = [ 13 | ('authtoken', '0003_tokenproxy'), 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='UploadAlert', 19 | fields=[ 20 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 21 | ('image', models.ImageField(upload_to=detection.models.scramble_uploaded_filename, verbose_name='Uploaded image')), 22 | ('alert_receiver', models.CharField(max_length=200)), 23 | ('location', models.CharField(max_length=200)), 24 | ('date_created', models.DateTimeField(auto_now_add=True)), 25 | ('user_ID', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='authtoken.token')), 26 | ], 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/urls.py: -------------------------------------------------------------------------------- 1 | """wd_ss URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/3.1/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path, include 18 | from django.conf.urls.static import static 19 | from django.conf import settings 20 | from django.conf.urls import url 21 | 22 | urlpatterns = [ 23 | path('admin', admin.site.urls), 24 | path('', include('detection.urls')), 25 | url(r'^api/', include(('alertupload_rest.urls', 'alertupload_rest'), namespace='api')), 26 | ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 27 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | 3 | from django.contrib.auth import views as auth_views 4 | 5 | from . import views 6 | 7 | urlpatterns = [ 8 | path('', views.home, name='home'), 9 | path('alerts/', views.alert, name='alert'), 10 | path('register/', views.registerPage, name='register'), 11 | path('login/', views.loginPage, name='login'), 12 | path('logout/', views.logoutUser, name='logout'), 13 | 14 | path('reset_password/', 15 | auth_views.PasswordResetView.as_view(template_name="detection/password_reset.html"), 16 | name="reset_password"), 17 | 18 | path('reset_password_sent/', 19 | auth_views.PasswordResetDoneView.as_view(template_name="detection/password_reset_sent.html"), 20 | name="password_reset_done"), 21 | 22 | path('reset///', 23 | auth_views.PasswordResetConfirmView.as_view(template_name="detection/password_reset_form.html"), 24 | name="password_reset_confirm"), 25 | 26 | path('reset_password_complete/', 27 | auth_views.PasswordResetCompleteView.as_view(template_name="detection/password_reset_done.html"), 28 | name="password_reset_complete"), 29 | ] -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/detection_window.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QMainWindow 2 | from PyQt5.uic import loadUi 3 | from PyQt5.QtCore import QThread, Qt, pyqtSignal, pyqtSlot 4 | from PyQt5.QtGui import QImage, QPixmap 5 | import cv2 6 | import os 7 | 8 | os.environ.pop("QT_QPA_PLATFORM_PLUGIN_PATH") 9 | import numpy as np 10 | import time 11 | import requests 12 | from detection import Detection 13 | 14 | # Manages detection window, starts and stops detection thread 15 | class DetectionWindow(QMainWindow): 16 | def __init__(self): 17 | super(DetectionWindow, self).__init__() 18 | loadUi('UI/detection_window.ui', self) 19 | 20 | self.stop_detection_button.clicked.connect(self.close) 21 | 22 | # Created detection instance 23 | def create_detection_instance(self, token, location, receiver): 24 | self.detection = Detection(token, location, receiver) 25 | 26 | # Assigns detection output to the label in order to display detection output 27 | @pyqtSlot(QImage) 28 | def setImage(self, image): 29 | self.label_detection.setPixmap(QPixmap.fromImage(image)) 30 | 31 | # Starts detection 32 | def start_detection(self): 33 | self.detection.changePixmap.connect(self.setImage) 34 | self.detection.start() 35 | self.show() 36 | 37 | # When closed 38 | def closeEvent(self, event): 39 | self.detection.running = False 40 | event.accept() 41 | 42 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/models.py: -------------------------------------------------------------------------------- 1 | import os 2 | import uuid 3 | from django.db import models 4 | 5 | from django.conf import settings 6 | from django.db.models.signals import post_save 7 | from django.dispatch import receiver 8 | from rest_framework.authtoken.models import Token 9 | 10 | from django.contrib.auth.models import User 11 | 12 | # Changes uploaded file name 13 | def scramble_uploaded_filename(instance, filename): 14 | """ 15 | Scramble / uglify the filename of the uploaded file, but keep the files extension (e.g., .jpg or .png) 16 | :param instance: 17 | :param filename: 18 | :return: 19 | """ 20 | extension = filename.split(".")[-1] 21 | return "{}.{}".format(uuid.uuid4(), extension) 22 | 23 | # Data model 24 | class UploadAlert(models.Model): 25 | image = models.ImageField("Uploaded image", upload_to=scramble_uploaded_filename) 26 | user_ID = models.ForeignKey(Token, on_delete=models.CASCADE) 27 | alert_receiver = models.CharField(max_length=200) 28 | location = models.CharField(max_length=200) 29 | date_created = models.DateTimeField(auto_now_add=True) 30 | 31 | # Generate and save a token each time a user is saved in a database 32 | @receiver(post_save, sender=settings.AUTH_USER_MODEL) 33 | def create_auth_token(sender, instance=None, created=False, **kwargs): 34 | if created: 35 | Token.objects.create(user=instance) -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/settings_window.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QMainWindow, QMessageBox 2 | from PyQt5.uic import loadUi 3 | 4 | from detection_window import DetectionWindow 5 | 6 | # Manages the settings window 7 | class SettingsWindow(QMainWindow): 8 | def __init__(self, token): 9 | super(SettingsWindow, self).__init__() 10 | loadUi('UI/settings_window.ui', self) 11 | 12 | self.token = token 13 | 14 | self.detection_window = DetectionWindow() 15 | 16 | self.pushButton.clicked.connect(self.go_to_detection) 17 | 18 | self.popup = QMessageBox() 19 | self.popup.setWindowTitle("Failed") 20 | self.popup.setText("Fields must not be empty.") 21 | 22 | 23 | def displayInfo(self): 24 | self.show() 25 | 26 | # Get input and go to detection window 27 | def go_to_detection(self): 28 | if self.location_input.text() == '' or self.sendTo_input.text() == '': 29 | self.popup.exec_() 30 | else: 31 | if self.detection_window.isVisible(): 32 | print('Detection window is already open!') 33 | else: 34 | self.detection_window.create_detection_instance(self.token, self.location_input.text(), self.sendTo_input.text()) 35 | self.detection_window.start_detection() 36 | 37 | #When closed 38 | def closeEvent(self, event): 39 | if self.detection_window.isVisible(): 40 | self.detection_window.detection.running = False 41 | self.detection_window.close() 42 | event.accept() 43 | 44 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/password_reset_done.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load static %} 4 | 5 | 6 | 7 | 8 | 9 | Password Changed 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 |
23 | 24 | 25 | Password Reset Complete 26 | 27 | 28 |
29 | 30 |

31 | Your password has been set. 32 |

33 |

34 | You may go ahead and 35 | 36 | Login 37 | 38 | now. 39 |

40 | 41 |
42 |
43 |
44 |
45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/password_reset_sent.html: -------------------------------------------------------------------------------- 1 | 2 | {% load static %} 3 | 4 | 5 | 6 | 7 | 8 | Password Reset sent 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 |
21 |
22 | 23 | 24 | Password Reset Sent 25 | 26 | 27 |
28 |

29 | We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly. 30 |

31 |

32 | If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder. 33 |

34 |
35 | 36 |
37 |
38 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/UI/detection_window.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 874 10 | 530 11 | 12 | 13 | 14 | 15 | 874 16 | 530 17 | 18 | 19 | 20 | Weapon Detection 21 | 22 | 23 | 24 | 25 | 26 | 10 27 | 10 28 | 854 29 | 480 30 | 31 | 32 | 33 | 34 | 1000 35 | 1000 36 | 37 | 38 | 39 | true 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 362 49 | 495 50 | 150 51 | 32 52 | 53 | 54 | 55 | Stop Monitoring 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/login_window.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QMainWindow, QMessageBox 2 | from PyQt5.uic import loadUi 3 | import webbrowser 4 | import requests 5 | import json 6 | from settings_window import SettingsWindow 7 | 8 | # LoginWindow class that manages login and opening the setting window 9 | class LoginWindow(QMainWindow): 10 | def __init__(self): 11 | super(LoginWindow, self).__init__() 12 | loadUi('UI/login_window.ui', self) 13 | 14 | self.register_button.clicked.connect(self.go_to_register_page) 15 | self.login_button.clicked.connect(self.login) 16 | 17 | self.popup = QMessageBox() 18 | self.popup.setWindowTitle("Failed") 19 | 20 | self.show() 21 | 22 | # Open registration page 23 | def go_to_register_page(self): 24 | webbrowser.open('http://127.0.0.1:8000/register/') 25 | 26 | # Login function that manages the token authentication 27 | def login(self): 28 | try: 29 | url = 'http://127.0.0.1:8000/api/get_auth_token/' 30 | response = requests.post(url, data={'username': self.username_input.text(),'password': self.password_input.text()}) 31 | json_response = json.loads(response.text) 32 | 33 | # HTTP 200 34 | if response.ok: 35 | # Open settings window 36 | self.open_settings_window(json_response['token']) 37 | # Bad response 38 | else: 39 | # Show error 40 | self.popup.setText("Username or Password is not correct") 41 | self.popup.exec_() 42 | except: 43 | # Unable to access server 44 | self.popup.setText("Unable to access server") 45 | self.popup.exec_() 46 | 47 | # Opens settings window, passes the received token and closes login window 48 | def open_settings_window(self, token): 49 | self.settings_window = SettingsWindow(token) 50 | self.settings_window.displayInfo() 51 | self.close() 52 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/main.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | 6 | Weapon Detection System 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | {% include 'detection/navbar.html' %} 22 |
23 | 24 | {% block content %} 25 | 26 | {% endblock %} 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/alert.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | 6 | Alert 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 |
23 |
24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | {% for alert in uploadAlert %} 32 | 33 | 34 | 35 | 36 | {% endfor %} 37 |
Detection
38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | {% for alert in uploadAlert %} 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | {% endfor %} 55 | 56 |
LocationAlert was sent toTime
{{alert.location}}{{alert.alert_receiver}}{{alert.date_created|date:"Y-m-d H:i:s"}}
57 | 58 |
59 |
60 |
61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/password_reset_form.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | 6 | 7 | Reset Password 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 | {% csrf_token %} 23 | 24 | Enter New Password 25 | 26 | 27 |
28 |

Please enter your new password twice so we can verify you typed it in correctly.

29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 | 37 |
38 | 39 |
40 | 43 |
44 |
45 |
46 |
47 |
48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/password_reset.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | 6 | 7 | Reset Password 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 | {% csrf_token %} 23 | 24 | Password Reset 25 | 26 | 27 |
28 |

29 | Forgotten your password? 30 |

31 |

32 | Enter your email address below, and we’ll email instructions for setting a new one. 33 |

34 |
35 | 36 |
37 | 38 |
39 | 40 |
41 | 44 |
45 | 46 |
47 | 48 | Remember your password? 49 | 50 | 51 | 52 | Login 53 | 54 |
55 |
56 |
57 |
58 |
59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/login.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | 6 | 7 | Login 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 | {% csrf_token %} 23 | 24 | Account Login 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 | 39 |
40 | 41 | {% for message in messages %} 42 |

{{message}}

43 | {% endfor %} 44 | 45 |
46 | 47 | Forgot 48 | 49 | 50 | 51 | Password? 52 | 53 |
54 | 55 |
56 | 57 | Create an account? 58 | 59 | 60 | 61 | Sign up 62 | 63 |
64 |
65 |
66 |
67 |
68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/alertupload_rest/views.py: -------------------------------------------------------------------------------- 1 | from alertupload_rest.serializers import UploadAlertSerializer 2 | from rest_framework.response import Response 3 | from rest_framework.decorators import api_view, permission_classes 4 | from rest_framework.permissions import IsAuthenticated 5 | from django.http import HttpResponse 6 | from django.core.mail import send_mail 7 | from rest_framework.exceptions import ValidationError 8 | 9 | from threading import Thread 10 | import re 11 | from django.conf import settings 12 | 13 | # Thread decorator definition 14 | def start_new_thread(function): 15 | def decorator(*args, **kwargs): 16 | t = Thread(target = function, args=args, kwargs=kwargs) 17 | t.daemon = True 18 | t.start() 19 | return decorator 20 | 21 | # Upload alert 22 | @api_view(['POST']) 23 | @permission_classes((IsAuthenticated, )) 24 | def post_alert(request): 25 | serializer = UploadAlertSerializer(data=request.data) 26 | 27 | if serializer.is_valid(): 28 | serializer.save() 29 | identify_email_sms(serializer) 30 | 31 | else: 32 | return "Error: Unable to process data!" 33 | 34 | return Response(request.META.get('HTTP_AUTHORIZATION')) 35 | 36 | # Identifies if the user provided an email or a mobile number 37 | def identify_email_sms(serializer): 38 | 39 | if(re.search('^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$', serializer.data['alert_receiver'])): 40 | print("Valid Email") 41 | send_email(serializer) 42 | elif re.compile("[+3706][0-9]{7}").match(serializer.data['alert_receiver']): 43 | # 1) Begins with +3706 44 | # 2) Then contains 7 digits 45 | print("Valid Mobile Number") 46 | send_sms(serializer) 47 | else: 48 | print("Invalid Email or Mobile number") 49 | 50 | # Sends SMS 51 | @start_new_thread 52 | def send_sms(serializer): 53 | client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN) 54 | 55 | message = client.messages.create(body=prepare_alert_message(serializer), 56 | from_=settings.TWILIO_NUMBER, 57 | to=serializer.data['alert_receiver']) 58 | 59 | # Sends email 60 | @start_new_thread 61 | def send_email(serializer): 62 | send_mail('Weapon Detected!', 63 | prepare_alert_message(serializer), 64 | 'xxxxx@gmail.com', 65 | [serializer.data['alert_receiver']], 66 | fail_silently=True,) 67 | 68 | # Prepares the alert message 69 | def prepare_alert_message(serializer): 70 | uuid_with_slashes = split(serializer.data['image'], ".") 71 | uuid = '.'.join(uuid_with_slashes) 72 | 73 | url = 'http://127.0.0.1:8000/alerts' + uuid 74 | print(url) 75 | return 'Weapon Detected! View alert at ' + url 76 | 77 | # Splits string into a list 78 | def split(value, key): 79 | return str(value).split(key) -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/register.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | 6 | 7 | Register 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |
20 |
21 | {% csrf_token %} 22 | 23 | Register Account 24 | 25 | 26 |
27 | 28 |
29 | 30 |
31 | 32 |
33 | 34 |
35 | 36 |
37 | 38 |
39 | 40 |
41 | 42 |
43 | 46 |
47 | 48 | {% if form.errors %} 49 | {% for field in form %} 50 | {% for error in field.errors %} 51 |
52 |

{{field.label}}:

53 |

{{ error|escape }}

54 |
55 | {% endfor %} 56 | {% endfor %} 57 | {% endif %} 58 | 59 | 60 | 61 |
62 | 63 | Already have an account? 64 | 65 | 66 | 67 | Login 68 | 69 |
70 | 71 |
72 |
73 |
74 |
75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render, redirect 2 | from django.http import HttpResponse 3 | from django.contrib.auth.forms import UserCreationForm 4 | 5 | from django.contrib.auth import authenticate, login, logout 6 | from django.contrib import messages 7 | from django.contrib.auth.decorators import login_required 8 | 9 | from .forms import CreateUserForm 10 | 11 | from .filters import DetectionFilter 12 | 13 | from .models import UploadAlert 14 | 15 | from rest_framework.authtoken.models import Token 16 | 17 | # Handles the registration page 18 | def registerPage(request): 19 | 20 | if request.user.is_authenticated: 21 | return redirect('home') 22 | else: 23 | form = CreateUserForm() 24 | if request.method == 'POST': 25 | form = CreateUserForm(request.POST) 26 | if form.is_valid(): 27 | form.save() 28 | user = form.cleaned_data.get('username') 29 | messages.success(request, 'Account was successfully created for ' + user) 30 | 31 | return redirect('login') 32 | 33 | context = {'form':form} 34 | return render(request, 'detection/register.html', context) 35 | 36 | # Handles the login page 37 | def loginPage(request): 38 | if request.user.is_authenticated: 39 | return redirect('home') 40 | else: 41 | if request.method == 'POST': 42 | username = request.POST.get('username') 43 | password =request.POST.get('password') 44 | 45 | user = authenticate(request, username=username, password=password) 46 | 47 | if user is not None: 48 | login(request, user) 49 | return redirect('home') 50 | else: 51 | messages.info(request, 'Username OR password is incorrect') 52 | 53 | context = {} 54 | return render(request, 'detection/login.html', context) 55 | 56 | # Handles the logout 57 | def logoutUser(request): 58 | logout(request) 59 | return redirect('login') 60 | 61 | # Handles the dashboard page 62 | @login_required(login_url='login') 63 | def home(request): 64 | 65 | token = Token.objects.get(user=request.user) 66 | 67 | uploadAlert = UploadAlert.objects.filter(user_ID = token) 68 | 69 | myFilter = DetectionFilter(request.GET, queryset=uploadAlert) 70 | uploadAlert = myFilter.qs 71 | 72 | context = {'myFilter':myFilter, 'uploadAlert':uploadAlert} 73 | 74 | return render(request, 'detection/dashboard.html', context) 75 | 76 | # Handles the alert page 77 | def alert(request,pk): 78 | print("MOFO") 79 | uploadAlert = UploadAlert.objects.filter(image = str(pk) + ".jpg") 80 | 81 | myFilter = DetectionFilter(request.GET, queryset=uploadAlert) 82 | uploadAlert = myFilter.qs 83 | 84 | context = {'myFilter':myFilter, 'uploadAlert':uploadAlert} 85 | 86 | return render(request, 'detection/alert.html', context) -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/UI/settings_window.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 300 10 | 300 11 | 12 | 13 | 14 | 15 | 300 16 | 300 17 | 18 | 19 | 20 | 21 | 300 22 | 300 23 | 24 | 25 | 26 | Weapon Detection 27 | 28 | 29 | 30 | 31 | 32 | 30 33 | 20 34 | 241 35 | 71 36 | 37 | 38 | 39 | Enter camera's location and email address. 40 | 41 | 42 | true 43 | 44 | 45 | 46 | 47 | 48 | 30 49 | 125 50 | 240 51 | 21 52 | 53 | 54 | 55 | 56 | 57 | 58 | 30 59 | 250 60 | 240 61 | 32 62 | 63 | 64 | 65 | Start Monitoring 66 | 67 | 68 | 69 | 70 | 71 | 30 72 | 156 73 | 211 74 | 16 75 | 76 | 77 | 78 | Email address: 79 | 80 | 81 | 82 | 83 | 84 | 30 85 | 101 86 | 121 87 | 16 88 | 89 | 90 | 91 | Camera's location: 92 | 93 | 94 | 95 | 96 | 97 | 30 98 | 180 99 | 240 100 | 21 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/UI/login_window.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 300 10 | 300 11 | 12 | 13 | 14 | 15 | 300 16 | 300 17 | 18 | 19 | 20 | 21 | 300 22 | 300 23 | 24 | 25 | 26 | Weapon Detection System 27 | 28 | 29 | 30 | true 31 | 32 | 33 | 34 | 0 35 | 0 36 | 37 | 38 | 39 | 40 | 400 41 | 400 42 | 43 | 44 | 45 | 46 | 47 | 50 48 | 25 49 | 200 50 | 16 51 | 52 | 53 | 54 | Weapon Detection System 55 | 56 | 57 | Qt::AlignCenter 58 | 59 | 60 | false 61 | 62 | 63 | 64 | 65 | 66 | 30 67 | 250 68 | 240 69 | 32 70 | 71 | 72 | 73 | Register 74 | 75 | 76 | 77 | 78 | 79 | 30 80 | 210 81 | 240 82 | 32 83 | 84 | 85 | 86 | Login 87 | 88 | 89 | 90 | 91 | 92 | 30 93 | 135 94 | 64 95 | 16 96 | 97 | 98 | 99 | Password: 100 | 101 | 102 | 103 | 104 | 105 | 30 106 | 160 107 | 240 108 | 21 109 | 110 | 111 | 112 | QLineEdit::Password 113 | 114 | 115 | 116 | 117 | 118 | 30 119 | 70 120 | 66 121 | 16 122 | 123 | 124 | 125 | 126 | 0 127 | 0 128 | 129 | 130 | 131 | Username: 132 | 133 | 134 | 135 | 136 | 137 | 30 138 | 95 139 | 240 140 | 21 141 | 142 | 143 | 144 | 145 | 0 146 | 0 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/detection/templates/detection/dashboard.html: -------------------------------------------------------------------------------- 1 | {% extends 'detection/main.html' %} 2 | 3 | {% block content %} 4 | 5 | {% load static %} 6 | 7 | {% load event_tags %} 8 | 9 |
10 |
11 |
12 | 62 | 63 |
64 |
65 |
66 | 67 | 80 | 81 |
82 |
83 |
84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | {% for alert in uploadAlert %} 95 | 96 | 97 | 99 | 100 | 101 | 102 | 103 | {% with uuid=alert.image|split:"." %} 104 | 105 | 106 | 107 | {% endwith %} 108 | 109 | 110 | {% endfor %} 111 | 112 |
DetectionLocationAlert was sent toTimeAlert
{{alert.location}}{{alert.alert_receiver}}{{alert.date_created|date:"Y-m-d H:i:s"}}View
113 | 114 |
115 |
116 |
117 | 118 | {% endblock %} -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/detection.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QMainWindow 2 | from PyQt5.uic import loadUi 3 | from PyQt5.QtCore import QThread, Qt, pyqtSignal, pyqtSlot 4 | from PyQt5.QtGui import QImage, QPixmap 5 | import cv2 6 | import numpy as np 7 | import time 8 | import requests 9 | 10 | # Handles the YOLOv4 detection algorithm, saves detected frames and sends alert to the server-side application 11 | class Detection(QThread): 12 | 13 | def __init__(self, token, location, receiver): 14 | super(Detection, self).__init__() 15 | 16 | self.token = token 17 | self.location = location 18 | self.receiver = receiver 19 | 20 | changePixmap = pyqtSignal(QImage) 21 | 22 | # Runs the detection model, evaluates detections and draws boxes around detected objects 23 | def run(self): 24 | 25 | # Loads Yolov4 26 | net = cv2.dnn.readNet("weights/yolov4.weights", "cfg/yolov4.cfg") 27 | classes = [] 28 | 29 | # Loads object names 30 | with open("obj.names", "r") as f: 31 | classes = [line.strip() for line in f.readlines()] 32 | 33 | layer_names = net.getLayerNames() 34 | output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()] 35 | colors = np.random.uniform(0, 255, size=(len(classes), 3)) 36 | 37 | font = cv2.FONT_HERSHEY_PLAIN 38 | starting_time = time.time() - 11 39 | 40 | self.running = True 41 | 42 | # Starts camera 43 | cap = cv2.VideoCapture("pistol-loading.mp4") 44 | 45 | # Detection while loop 46 | while self.running: 47 | ret, frame = cap.read() 48 | if ret: 49 | 50 | height, width, channels = frame.shape 51 | 52 | # Running the detection model 53 | blob = cv2.dnn.blobFromImage(frame, 0.00392, (416, 416), (0, 0, 0), True, crop=False) 54 | net.setInput(blob) 55 | outs = net.forward(output_layers) 56 | 57 | # Evaluating detections 58 | class_ids = [] 59 | confidences = [] 60 | boxes = [] 61 | for out in outs: 62 | for detection in out: 63 | scores = detection[5:] 64 | class_id = np.argmax(scores) 65 | confidence = scores[class_id] 66 | 67 | # If detection confidance is above 98% a weapon was detected 68 | if confidence > 0.98: 69 | 70 | # Calculating coordinates 71 | center_x = int(detection[0] * width) 72 | center_y = int(detection[1] * height) 73 | w = int(detection[2] * width) 74 | h = int(detection[3] * height) 75 | 76 | # Rectangle coordinates 77 | x = int(center_x - w / 2) 78 | y = int(center_y - h / 2) 79 | 80 | boxes.append([x, y, w, h]) 81 | confidences.append(float(confidence)) 82 | class_ids.append(class_id) 83 | 84 | indexes = cv2.dnn.NMSBoxes(boxes, confidences, 0.8, 0.3) 85 | 86 | #Draw boxes around detected objects 87 | for i in range(len(boxes)): 88 | if i in indexes: 89 | x, y, w, h = boxes[i] 90 | label = str(classes[class_ids[i]]) 91 | confidence = confidences[i] 92 | color = (256, 0, 0) 93 | cv2.rectangle(frame, (x, y), (x + w, y + h), color, 2) 94 | cv2.putText(frame, label + " {0:.1%}".format(confidence), (x, y - 20), font, 3, color, 3) 95 | 96 | elapsed_time = starting_time - time.time() 97 | 98 | #Save detected frame every 10 seconds 99 | if elapsed_time <= -10: 100 | starting_time = time.time() 101 | self.save_detection(frame) 102 | 103 | # Showing final result 104 | rgbImage = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) 105 | bytesPerLine = channels * width 106 | convertToQtFormat = QImage(rgbImage.data, width, height, bytesPerLine, QImage.Format_RGB888) 107 | p = convertToQtFormat.scaled(854, 480, Qt.KeepAspectRatio) 108 | self.changePixmap.emit(p) 109 | 110 | # Saves detected frame as a .jpg within the saved_alert folder 111 | def save_detection(self, frame): 112 | cv2.imwrite("saved_frames/frame.jpg", frame) 113 | print('Frame Saved') 114 | self.post_detection() 115 | 116 | # Sends alert to the server 117 | def post_detection(self): 118 | 119 | url = 'http://127.0.0.1:8000/api/images/' 120 | headers = {'Authorization': 'Token ' + self.token} 121 | files = {'image': open('saved_frames/frame.jpg', 'rb')} 122 | data = {'user_ID': self.token,'location': self.location, 'alert_receiver': self.receiver} 123 | response = requests.post(url, files=files, headers=headers, data=data) 124 | 125 | # HTTP 200 126 | if response.ok: 127 | print('Alert was sent to the server') 128 | # Bad response 129 | else: 130 | print('Unable to send alert to the server') 131 | 132 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/wd_ss/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for wd_ss project. 3 | 4 | Generated by 'django-admin startproject' using Django 3.1.4. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.1/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/3.1/ref/settings/ 11 | """ 12 | 13 | from pathlib import Path 14 | import os 15 | import dotenv 16 | # Build paths inside the project like this: BASE_DIR / 'subdir'. 17 | BASE_DIR = Path(__file__).resolve().parent.parent 18 | 19 | dotenv_file = os.path.join(BASE_DIR, ".env") 20 | if os.path.isfile(dotenv_file): 21 | dotenv.load_dotenv(dotenv_file) 22 | 23 | # SECURITY WARNING: keep the secret key used in production secret! 24 | SECRET_KEY = 'django-insecure-tqlxfh^vr!6@@3k*@f1@aj%hmc=^^7f5gr6c4at8d6jaoviq1v' 25 | 26 | # SECURITY WARNING: don't run with debug turned on in production! 27 | DEBUG = True 28 | 29 | ALLOWED_HOSTS = ['domjur-weapon-detection.herokuapp.com', '127.0.0.1'] 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'django.contrib.admin', 35 | 'django.contrib.auth', 36 | 'django.contrib.contenttypes', 37 | 'django.contrib.sessions', 38 | 'django.contrib.messages', 39 | 'django.contrib.staticfiles', 40 | 'rest_framework', 41 | 'detection', 42 | 'alertupload_rest', 43 | 'django_filters', 44 | 'rest_framework.authtoken', 45 | 'django_extensions', 46 | ] 47 | 48 | REST_FRAMEWORK = { 49 | 'DEFAULT_AUTHENTICATION_CLASSES': [ 50 | 'rest_framework.authentication.TokenAuthentication', 51 | ], 52 | 'DEFAULT_PERMISSION_CLASSES': [ 53 | 'rest_framework.permissions.IsAuthenticated', 54 | ], 55 | } 56 | 57 | MIDDLEWARE = [ 58 | 'django.middleware.security.SecurityMiddleware', 59 | 'whitenoise.middleware.WhiteNoiseMiddleware', 60 | 'django.contrib.sessions.middleware.SessionMiddleware', 61 | 'django.middleware.common.CommonMiddleware', 62 | 'django.middleware.csrf.CsrfViewMiddleware', 63 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 64 | 'django.contrib.messages.middleware.MessageMiddleware', 65 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 66 | ] 67 | 68 | ROOT_URLCONF = 'wd_ss.urls' 69 | 70 | TEMPLATES = [ 71 | { 72 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 73 | 'DIRS': [], 74 | 'APP_DIRS': True, 75 | 'OPTIONS': { 76 | 'context_processors': [ 77 | 'django.template.context_processors.debug', 78 | 'django.template.context_processors.request', 79 | 'django.contrib.auth.context_processors.auth', 80 | 'django.contrib.messages.context_processors.messages', 81 | ], 82 | }, 83 | }, 84 | ] 85 | 86 | WSGI_APPLICATION = 'wd_ss.wsgi.application' 87 | 88 | # Database 89 | # https://docs.djangoproject.com/en/3.1/ref/settings/#databases 90 | 91 | DATABASES = { 92 | # 'default': { 93 | # 'ENGINE': 'django.db.backends.mysql', 94 | # 'NAME': os.environ['DB_NAME'], 95 | # 'USER': os.environ['DB_USER'], 96 | # 'PASSWORD': os.environ['DB_PASSWORD'], 97 | # 'HOST': os.environ['DB_HOST'], 98 | # 'PORT': '3306', 99 | # } 100 | 'default': { 101 | 'ENGINE': 'django.db.backends.sqlite3', 102 | 'NAME': BASE_DIR / 'db.sqlite3', 103 | } 104 | } 105 | 106 | 107 | # Password validation 108 | # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators 109 | 110 | AUTH_PASSWORD_VALIDATORS = [ 111 | { 112 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 113 | }, 114 | { 115 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 116 | }, 117 | { 118 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 119 | }, 120 | { 121 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 122 | }, 123 | ] 124 | 125 | 126 | # Internationalization 127 | # https://docs.djangoproject.com/en/3.1/topics/i18n/ 128 | 129 | LANGUAGE_CODE = 'en-us' 130 | 131 | TIME_ZONE = 'Europe/Vilnius' 132 | 133 | USE_I18N = True 134 | 135 | USE_L10N = True 136 | 137 | USE_TZ = True 138 | 139 | 140 | # Static files (CSS, JavaScript, Images) 141 | # https://docs.djangoproject.com/en/3.1/howto/static-files/ 142 | 143 | STATIC_URL = '/static/' 144 | 145 | STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') 146 | 147 | STATICFILES_DIRS = [ 148 | BASE_DIR / "static" 149 | ] 150 | 151 | # Twilio configuration 152 | # 153 | # TWILIO_ACCOUNT_SID = os.environ['TWILIO_ACCOUNT_SID'] 154 | # TWILIO_AUTH_TOKEN = os.environ['TWILIO_AUTH_TOKEN'] 155 | # TWILIO_NUMBER = os.environ['TWILIO_NUMBER'] 156 | 157 | # Amazon s3 configuration 158 | # 159 | # AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID'] 160 | # AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY'] 161 | # AWS_STORAGE_BUCKET_NAME = 'uploaded-alerts' 162 | # AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME 163 | # AWS_S3_OBJECT_PARAMETERS = { 164 | # 'CacheControl': 'max-age=86400', 165 | # } 166 | # AWS_LOCATION = 'static' 167 | # PUBLIC_MEDIA_LOCATION = 'media' 168 | # MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{PUBLIC_MEDIA_LOCATION}/' 169 | # DEFAULT_FILE_STORAGE = 'wd_ss.storage_backends.PublicMediaStorage' 170 | 171 | #SMTP Configuration 172 | 173 | EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 174 | EMAIL_HOST = 'smtp.gmail.com' 175 | EMAIL_PORT = 587 176 | EMAIL_USE_TLS = True 177 | EMAIL_HOST_USER = 'detectxpro@gmail.com' 178 | EMAIL_HOST_PASSWORD ='***' 179 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/login.css: -------------------------------------------------------------------------------- 1 | /*////////////////////////////////////////////////////////////////// 2 | [ FONT ]*/ 3 | 4 | @font-face { 5 | font-family: OpenSans-Regular; 6 | src: url('../fonts/OpenSans/OpenSans-Regular.ttf'); 7 | } 8 | 9 | /*////////////////////////////////////////////////////////////////// 10 | [ RESTYLE TAG ]*/ 11 | 12 | * { 13 | margin: 0px; 14 | padding: 0px; 15 | box-sizing: border-box; 16 | } 17 | 18 | body, html { 19 | height: 100%; 20 | font-family: OpenSans-Regular, sans-serif; 21 | } 22 | 23 | /*---------------------------------------------*/ 24 | a { 25 | font-family: OpenSans-Regular; 26 | font-size: 14px; 27 | line-height: 1.7; 28 | color: #666666; 29 | margin: 0px; 30 | transition: all 0.4s; 31 | -webkit-transition: all 0.4s; 32 | -o-transition: all 0.4s; 33 | -moz-transition: all 0.4s; 34 | } 35 | 36 | a:focus { 37 | outline: none !important; 38 | } 39 | 40 | a:hover { 41 | text-decoration: none; 42 | } 43 | 44 | /*---------------------------------------------*/ 45 | h1,h2,h3,h4,h5,h6 { 46 | margin: 0px; 47 | } 48 | 49 | p { 50 | font-family: OpenSans-Regular; 51 | font-size: 14px; 52 | line-height: 1.7; 53 | color: #666666; 54 | margin: 0px; 55 | } 56 | 57 | ul, li { 58 | margin: 0px; 59 | list-style-type: none; 60 | } 61 | 62 | 63 | /*---------------------------------------------*/ 64 | input { 65 | outline: none; 66 | border: none; 67 | } 68 | 69 | textarea { 70 | outline: none; 71 | border: none; 72 | } 73 | 74 | textarea:focus, input:focus { 75 | border-color: transparent !important; 76 | } 77 | 78 | input::-webkit-input-placeholder { color: #666666;} 79 | input:-moz-placeholder { color: #666666;} 80 | input::-moz-placeholder { color: #666666;} 81 | input:-ms-input-placeholder { color: #666666;} 82 | 83 | textarea::-webkit-input-placeholder { color: #666666;} 84 | textarea:-moz-placeholder { color: #666666;} 85 | textarea::-moz-placeholder { color: #666666;} 86 | textarea:-ms-input-placeholder { color: #666666;} 87 | 88 | /*---------------------------------------------*/ 89 | button { 90 | outline: none !important; 91 | border: none; 92 | background: transparent; 93 | } 94 | 95 | button:hover { 96 | cursor: pointer; 97 | } 98 | 99 | iframe { 100 | border: none !important; 101 | } 102 | 103 | /*////////////////////////////////////////////////////////////////// 104 | [ Utility ]*/ 105 | .txt1 { 106 | font-family: OpenSans-Regular; 107 | font-size: 15px; 108 | line-height: 1.4; 109 | color: #999999; 110 | } 111 | 112 | .txt2 { 113 | font-family: OpenSans-Regular; 114 | font-size: 15px; 115 | line-height: 1.4; 116 | color: #4272d7; 117 | } 118 | 119 | .hov1:hover { 120 | text-decoration: underline; 121 | } 122 | 123 | 124 | /*////////////////////////////////////////////////////////////////// 125 | [ login ]*/ 126 | 127 | .limiter { 128 | width: 100%; 129 | margin: 0 auto; 130 | } 131 | 132 | .container-login100 { 133 | width: 100%; 134 | min-height: 100vh; 135 | display: -webkit-box; 136 | display: -webkit-flex; 137 | display: -moz-box; 138 | display: -ms-flexbox; 139 | display: flex; 140 | flex-wrap: wrap; 141 | justify-content: center; 142 | align-items: center; 143 | padding: 15px; 144 | background: #f8f9fe; 145 | } 146 | 147 | .wrap-login100 { 148 | width: 500px; 149 | background: #fff; 150 | border-radius: 10px; 151 | overflow: hidden; 152 | 153 | box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 154 | -moz-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 155 | -webkit-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 156 | -o-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 157 | -ms-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 158 | } 159 | 160 | 161 | /*================================================================== 162 | [ Form ]*/ 163 | 164 | .login100-form { 165 | width: 100%; 166 | } 167 | 168 | .login100-form-title { 169 | display: block; 170 | font-family: OpenSans-Regular; 171 | font-size: 30px; 172 | color: #555555; 173 | line-height: 1.2; 174 | text-align: center; 175 | } 176 | 177 | /*------------------------------------------------------------------ 178 | [ Input ]*/ 179 | 180 | .wrap-input100 { 181 | width: 100%; 182 | position: relative; 183 | background-color: #fff; 184 | border: 1px solid #e6e6e6; 185 | border-radius: .125em; 186 | } 187 | 188 | .wrap-input100.rs1 { 189 | border-top: none; 190 | } 191 | 192 | .input100 { 193 | display: block; 194 | width: 100%; 195 | background: transparent; 196 | font-family: OpenSans-Regular; 197 | font-size: 15px; 198 | color: #666666; 199 | line-height: 1.2; 200 | } 201 | 202 | 203 | /*---------------------------------------------*/ 204 | input.input100 { 205 | height: 68px; 206 | padding: 0 25px 0 25px; 207 | } 208 | 209 | /*------------------------------------------------------------------ 210 | [ Button ]*/ 211 | .container-login100-form-btn { 212 | width: 100%; 213 | display: -webkit-box; 214 | display: -webkit-flex; 215 | display: -moz-box; 216 | display: -ms-flexbox; 217 | display: flex; 218 | flex-wrap: wrap; 219 | } 220 | 221 | .login100-form-btn { 222 | display: -webkit-box; 223 | display: -webkit-flex; 224 | display: -moz-box; 225 | display: -ms-flexbox; 226 | display: flex; 227 | justify-content: center; 228 | align-items: center; 229 | padding: 0 20px; 230 | width: 100%; 231 | height: 60px; 232 | background-color: #4272d7; 233 | border-radius: .25em; 234 | 235 | font-family: OpenSans-Regular; 236 | font-size: 14px; 237 | color: #fff; 238 | line-height: 1.2; 239 | text-transform: uppercase; 240 | 241 | -webkit-transition: all 0.4s; 242 | -o-transition: all 0.4s; 243 | -moz-transition: all 0.4s; 244 | transition: all 0.4s; 245 | } 246 | 247 | .login100-form-btn:hover { 248 | background-color: #3459a5; 249 | } 250 | 251 | 252 | /*------------------------------------------------------------------ 253 | [ Alert ]*/ 254 | 255 | #messages{ 256 | background-color: #343a40; 257 | color: #fff; 258 | padding: 10px; 259 | margin-top: 15px; 260 | text-align: center; 261 | border-radius: .25em; 262 | } 263 | 264 | input:-webkit-autofill, 265 | input:-webkit-autofill:hover, 266 | input:-webkit-autofill:focus, 267 | input:-webkit-autofill:active { 268 | -webkit-box-shadow: 0 0 0 50px white inset !important; 269 | } -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/alert.css: -------------------------------------------------------------------------------- 1 | /*////////////////////////////////////////////////////////////////// 2 | [ FONT ]*/ 3 | 4 | @font-face { 5 | font-family: OpenSans-Regular; 6 | src: url('../fonts/OpenSans/OpenSans-Regular.ttf'); 7 | } 8 | 9 | /*////////////////////////////////////////////////////////////////// 10 | [ RESTYLE TAG ]*/ 11 | 12 | * { 13 | margin: 0px; 14 | padding: 0px; 15 | box-sizing: border-box; 16 | } 17 | 18 | body, html { 19 | height: 100%; 20 | font-family: OpenSans-Regular, sans-serif; 21 | background: #f8f9fe; 22 | } 23 | 24 | /*---------------------------------------------*/ 25 | a { 26 | font-family: OpenSans-Regular; 27 | font-size: 14px; 28 | line-height: 1.7; 29 | color: #666666; 30 | margin: 0px; 31 | transition: all 0.4s; 32 | -webkit-transition: all 0.4s; 33 | -o-transition: all 0.4s; 34 | -moz-transition: all 0.4s; 35 | } 36 | 37 | a:focus { 38 | outline: none !important; 39 | } 40 | 41 | a:hover { 42 | text-decoration: none; 43 | } 44 | 45 | /*---------------------------------------------*/ 46 | h1,h2,h3,h4,h5,h6 { 47 | margin: 0px; 48 | } 49 | 50 | p { 51 | font-family: OpenSans-Regular; 52 | font-size: 14px; 53 | line-height: 1.7; 54 | color: #666666; 55 | margin: 0px; 56 | } 57 | 58 | ul, li { 59 | margin: 0px; 60 | list-style-type: none; 61 | } 62 | 63 | 64 | /*---------------------------------------------*/ 65 | input { 66 | outline: none; 67 | } 68 | 69 | textarea { 70 | outline: none; 71 | border: none; 72 | } 73 | 74 | textarea:focus, input:focus { 75 | border-color: transparent !important; 76 | } 77 | 78 | input::-webkit-input-placeholder { color: #666666;} 79 | input:-moz-placeholder { color: #666666;} 80 | input::-moz-placeholder { color: #666666;} 81 | input:-ms-input-placeholder { color: #666666;} 82 | 83 | textarea::-webkit-input-placeholder { color: #666666;} 84 | textarea:-moz-placeholder { color: #666666;} 85 | textarea::-moz-placeholder { color: #666666;} 86 | textarea:-ms-input-placeholder { color: #666666;} 87 | 88 | /*---------------------------------------------*/ 89 | button { 90 | outline: none !important; 91 | border: none; 92 | background: transparent; 93 | } 94 | 95 | button:hover { 96 | cursor: pointer; 97 | } 98 | 99 | iframe { 100 | border: none !important; 101 | } 102 | 103 | /*////////////////////////////////////////////////////////////////// 104 | [ Utility ]*/ 105 | .txt1 { 106 | font-family: OpenSans-Regular; 107 | font-size: 15px; 108 | line-height: 1.4; 109 | color: #999999; 110 | } 111 | 112 | .txt2 { 113 | font-family: OpenSans-Regular; 114 | font-size: 15px; 115 | line-height: 1.4; 116 | color: #4272d7; 117 | } 118 | 119 | .hov1:hover { 120 | text-decoration: underline; 121 | } 122 | 123 | 124 | /*////////////////////////////////////////////////////////////////// 125 | [ login ]*/ 126 | 127 | 128 | .limiter { 129 | width: 100%; 130 | margin: 0 auto; 131 | } 132 | 133 | .container-login100 { 134 | width: 100%; 135 | height: 10%; 136 | min-height: 13.5vh; 137 | display: -webkit-box; 138 | display: -webkit-flex; 139 | display: -moz-box; 140 | display: -ms-flexbox; 141 | display: flex; 142 | flex-wrap: wrap; 143 | justify-content: center; 144 | align-items: center; 145 | padding: 15px; 146 | } 147 | 148 | .wrap-login100 { 149 | width: 100%; 150 | background: #fff; 151 | border-radius: 10px; 152 | overflow: hidden; 153 | box-shadow: 0 0 2rem 0 rgba(136, 152, 170, .15) !important; 154 | } 155 | 156 | 157 | 158 | 159 | /*================================================================== 160 | [ Form ]*/ 161 | 162 | .login100-form { 163 | width: 100%; 164 | } 165 | 166 | .login100-form-title { 167 | display: block; 168 | font-family: OpenSans-Regular; 169 | font-size: 30px; 170 | color: #555555; 171 | line-height: 1.2; 172 | text-align: center; 173 | } 174 | 175 | /*------------------------------------------------------------------ 176 | [ Input ]*/ 177 | 178 | .wrap-input100 { 179 | width: 100%; 180 | position: relative; 181 | background-color: #fff; 182 | border: 1px solid #e6e6e6; 183 | } 184 | 185 | .wrap-input100.rs1 { 186 | border-top: none; 187 | } 188 | 189 | .input100 { 190 | display: block; 191 | width: 100%; 192 | background: transparent; 193 | font-family: OpenSans-Regular; 194 | font-size: 15px; 195 | color: #666666; 196 | line-height: 1.2; 197 | } 198 | 199 | 200 | /*---------------------------------------------*/ 201 | input.input100 { 202 | height: 68px; 203 | padding: 0 25px 0 25px; 204 | } 205 | 206 | /*------------------------------------------------------------------ 207 | [ Button ]*/ 208 | .container-login100-form-btn { 209 | width: 100%; 210 | display: -webkit-box; 211 | display: -webkit-flex; 212 | display: -moz-box; 213 | display: -ms-flexbox; 214 | display: flex; 215 | flex-wrap: wrap; 216 | } 217 | 218 | .login100-form-btn { 219 | display: -webkit-box; 220 | display: -webkit-flex; 221 | display: -moz-box; 222 | display: -ms-flexbox; 223 | display: flex; 224 | justify-content: center; 225 | align-items: center; 226 | padding: 0 20px; 227 | width: 100%; 228 | height: 60px; 229 | background-color: #4272d7; 230 | 231 | font-family: OpenSans-Regular; 232 | font-size: 14px; 233 | color: #fff; 234 | line-height: 1.2; 235 | text-transform: uppercase; 236 | 237 | -webkit-transition: all 0.4s; 238 | -o-transition: all 0.4s; 239 | -moz-transition: all 0.4s; 240 | transition: all 0.4s; 241 | } 242 | 243 | .login100-form-btn:hover { 244 | background-color: #3459a5; 245 | } 246 | 247 | .table th { 248 | border-top: 0px solid #dee2e6; 249 | } 250 | 251 | .table td{ 252 | padding: .75rem; 253 | border-top: 1px solid #dee2e6; 254 | } 255 | 256 | .table{ 257 | table-layout: fixed; 258 | } 259 | 260 | /*------------------------------------------------------------------ 261 | [ Alert ]*/ 262 | 263 | #messages{ 264 | background-color: #343a40; 265 | color: #fff; 266 | padding: 10px; 267 | margin-top: 15px; 268 | text-align: center; 269 | } 270 | 271 | input:-webkit-autofill, 272 | input:-webkit-autofill:hover, 273 | input:-webkit-autofill:focus, 274 | input:-webkit-autofill:active { 275 | -webkit-box-shadow: 0 0 0 50px white inset !important; 276 | } -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/dashboard.css: -------------------------------------------------------------------------------- 1 | /*////////////////////////////////////////////////////////////////// 2 | [ FONT ]*/ 3 | 4 | @font-face { 5 | font-family: OpenSans-Regular; 6 | src: url('../fonts/OpenSans/OpenSans-Regular.ttf'); 7 | } 8 | 9 | /*////////////////////////////////////////////////////////////////// 10 | [ RESTYLE TAG ]*/ 11 | 12 | * { 13 | margin: 0px; 14 | padding: 0px; 15 | box-sizing: border-box; 16 | } 17 | 18 | body, html { 19 | height: 100%; 20 | font-family: OpenSans-Regular, sans-serif; 21 | background: #f8f9fe; 22 | } 23 | 24 | /*---------------------------------------------*/ 25 | a { 26 | font-family: OpenSans-Regular; 27 | font-size: 14px; 28 | line-height: 1.7; 29 | color: #666666; 30 | margin: 0px; 31 | transition: all 0.4s; 32 | -webkit-transition: all 0.4s; 33 | -o-transition: all 0.4s; 34 | -moz-transition: all 0.4s; 35 | } 36 | 37 | a:focus { 38 | outline: none !important; 39 | } 40 | 41 | a:hover { 42 | text-decoration: none; 43 | } 44 | 45 | /*---------------------------------------------*/ 46 | h1,h2,h3,h4,h5,h6 { 47 | margin: 0px; 48 | } 49 | 50 | p { 51 | font-family: OpenSans-Regular; 52 | font-size: 14px; 53 | line-height: 1.7; 54 | color: #666666; 55 | margin: 0px; 56 | } 57 | 58 | ul, li { 59 | margin: 0px; 60 | list-style-type: none; 61 | } 62 | 63 | 64 | /*---------------------------------------------*/ 65 | input { 66 | outline: none; 67 | } 68 | 69 | textarea { 70 | outline: none; 71 | border: none; 72 | } 73 | 74 | textarea:focus, input:focus { 75 | border-color: transparent !important; 76 | } 77 | 78 | input::-webkit-input-placeholder { color: #666666;} 79 | input:-moz-placeholder { color: #666666;} 80 | input::-moz-placeholder { color: #666666;} 81 | input:-ms-input-placeholder { color: #666666;} 82 | 83 | textarea::-webkit-input-placeholder { color: #666666;} 84 | textarea:-moz-placeholder { color: #666666;} 85 | textarea::-moz-placeholder { color: #666666;} 86 | textarea:-ms-input-placeholder { color: #666666;} 87 | 88 | /*---------------------------------------------*/ 89 | button { 90 | outline: none !important; 91 | border: none; 92 | background: transparent; 93 | } 94 | 95 | button:hover { 96 | cursor: pointer; 97 | } 98 | 99 | iframe { 100 | border: none !important; 101 | } 102 | 103 | /*////////////////////////////////////////////////////////////////// 104 | [ Utility ]*/ 105 | .txt1 { 106 | font-family: OpenSans-Regular; 107 | font-size: 15px; 108 | line-height: 1.4; 109 | color: #999999; 110 | } 111 | 112 | .txt2 { 113 | font-family: OpenSans-Regular; 114 | font-size: 15px; 115 | line-height: 1.4; 116 | color: #4272d7; 117 | } 118 | 119 | .hov1:hover { 120 | text-decoration: underline; 121 | } 122 | 123 | 124 | /*////////////////////////////////////////////////////////////////// 125 | [ login ]*/ 126 | 127 | 128 | .limiter { 129 | width: 100%; 130 | margin: 0 auto; 131 | } 132 | 133 | .container-login100 { 134 | width: 100%; 135 | height: 10%; 136 | min-height: 13.5vh; 137 | display: -webkit-box; 138 | display: -webkit-flex; 139 | display: -moz-box; 140 | display: -ms-flexbox; 141 | display: flex; 142 | flex-wrap: wrap; 143 | justify-content: center; 144 | align-items: center; 145 | padding: 15px; 146 | } 147 | 148 | .wrap-login100 { 149 | width: 100%; 150 | background: #fff; 151 | border-radius: 10px; 152 | overflow: hidden; 153 | box-shadow: 0 0 2rem 0 rgba(136, 152, 170, .15) !important; 154 | } 155 | 156 | 157 | 158 | 159 | /*================================================================== 160 | [ Form ]*/ 161 | 162 | .login100-form { 163 | width: 100%; 164 | } 165 | 166 | .login100-form-title { 167 | display: block; 168 | font-family: OpenSans-Regular; 169 | font-size: 30px; 170 | color: #555555; 171 | line-height: 1.2; 172 | text-align: center; 173 | } 174 | 175 | /*------------------------------------------------------------------ 176 | [ Input ]*/ 177 | 178 | .wrap-input100 { 179 | width: 100%; 180 | position: relative; 181 | background-color: #fff; 182 | border: 1px solid #e6e6e6; 183 | } 184 | 185 | .wrap-input100.rs1 { 186 | border-top: none; 187 | } 188 | 189 | .input100 { 190 | display: block; 191 | width: 100%; 192 | background: transparent; 193 | font-family: OpenSans-Regular; 194 | font-size: 15px; 195 | color: #666666; 196 | line-height: 1.2; 197 | } 198 | 199 | 200 | /*---------------------------------------------*/ 201 | input.input100 { 202 | height: 68px; 203 | padding: 0 25px 0 25px; 204 | } 205 | 206 | /*------------------------------------------------------------------ 207 | [ Button ]*/ 208 | .container-login100-form-btn { 209 | width: 100%; 210 | display: -webkit-box; 211 | display: -webkit-flex; 212 | display: -moz-box; 213 | display: -ms-flexbox; 214 | display: flex; 215 | flex-wrap: wrap; 216 | } 217 | 218 | .login100-form-btn { 219 | display: -webkit-box; 220 | display: -webkit-flex; 221 | display: -moz-box; 222 | display: -ms-flexbox; 223 | display: flex; 224 | justify-content: center; 225 | align-items: center; 226 | padding: 0 20px; 227 | width: 100%; 228 | height: 60px; 229 | background-color: #4272d7; 230 | 231 | font-family: OpenSans-Regular; 232 | font-size: 14px; 233 | color: #fff; 234 | line-height: 1.2; 235 | text-transform: uppercase; 236 | 237 | -webkit-transition: all 0.4s; 238 | -o-transition: all 0.4s; 239 | -moz-transition: all 0.4s; 240 | transition: all 0.4s; 241 | } 242 | 243 | .login100-form-btn:hover { 244 | background-color: #3459a5; 245 | } 246 | 247 | .table-image td, 248 | .table-image th { 249 | vertical-align: middle; 250 | } 251 | 252 | .table th { 253 | border-top: 0px solid #dee2e6; 254 | } 255 | 256 | .table td{ 257 | padding: .75rem; 258 | border-top: 1px solid #dee2e6; 259 | } 260 | 261 | /*------------------------------------------------------------------ 262 | [ Alert ]*/ 263 | 264 | #messages{ 265 | background-color: #343a40; 266 | color: #fff; 267 | padding: 10px; 268 | margin-top: 15px; 269 | text-align: center; 270 | } 271 | 272 | input:-webkit-autofill, 273 | input:-webkit-autofill:hover, 274 | input:-webkit-autofill:focus, 275 | input:-webkit-autofill:active { 276 | -webkit-box-shadow: 0 0 0 50px white inset !important; 277 | } -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/register.css: -------------------------------------------------------------------------------- 1 | /*////////////////////////////////////////////////////////////////// 2 | [ FONT ]*/ 3 | 4 | @font-face { 5 | font-family: OpenSans-Regular; 6 | src: url('../fonts/OpenSans/OpenSans-Regular.ttf'); 7 | } 8 | 9 | /*////////////////////////////////////////////////////////////////// 10 | [ RESTYLE TAG ]*/ 11 | 12 | * { 13 | margin: 0px; 14 | padding: 0px; 15 | box-sizing: border-box; 16 | } 17 | 18 | body, html { 19 | height: 100%; 20 | font-family: OpenSans-Regular, sans-serif; 21 | } 22 | 23 | /*---------------------------------------------*/ 24 | a { 25 | font-family: OpenSans-Regular; 26 | font-size: 14px; 27 | line-height: 1.7; 28 | color: #666666; 29 | margin: 0px; 30 | transition: all 0.4s; 31 | -webkit-transition: all 0.4s; 32 | -o-transition: all 0.4s; 33 | -moz-transition: all 0.4s; 34 | } 35 | 36 | a:focus { 37 | outline: none !important; 38 | } 39 | 40 | a:hover { 41 | text-decoration: none; 42 | } 43 | 44 | /*---------------------------------------------*/ 45 | h1,h2,h3,h4,h5,h6 { 46 | margin: 0px; 47 | } 48 | 49 | p { 50 | font-family: OpenSans-Regular; 51 | font-size: 14px; 52 | line-height: 1.7; 53 | color: #666666; 54 | margin: 0px; 55 | } 56 | 57 | ul, li { 58 | margin: 0px; 59 | list-style-type: none; 60 | } 61 | 62 | 63 | /*---------------------------------------------*/ 64 | input { 65 | outline: none; 66 | border: none; 67 | } 68 | 69 | textarea { 70 | outline: none; 71 | border: none; 72 | } 73 | 74 | textarea:focus, input:focus { 75 | border-color: transparent !important; 76 | } 77 | 78 | input::-webkit-input-placeholder { color: #666666;} 79 | input:-moz-placeholder { color: #666666;} 80 | input::-moz-placeholder { color: #666666;} 81 | input:-ms-input-placeholder { color: #666666;} 82 | 83 | textarea::-webkit-input-placeholder { color: #666666;} 84 | textarea:-moz-placeholder { color: #666666;} 85 | textarea::-moz-placeholder { color: #666666;} 86 | textarea:-ms-input-placeholder { color: #666666;} 87 | 88 | /*---------------------------------------------*/ 89 | button { 90 | outline: none !important; 91 | border: none; 92 | background: transparent; 93 | } 94 | 95 | button:hover { 96 | cursor: pointer; 97 | } 98 | 99 | iframe { 100 | border: none !important; 101 | } 102 | 103 | /*////////////////////////////////////////////////////////////////// 104 | [ Utility ]*/ 105 | .txt1 { 106 | font-family: OpenSans-Regular; 107 | font-size: 15px; 108 | line-height: 1.4; 109 | color: #999999; 110 | } 111 | 112 | .txt2 { 113 | font-family: OpenSans-Regular; 114 | font-size: 15px; 115 | line-height: 1.4; 116 | color: #4272d7; 117 | } 118 | 119 | .hov1:hover { 120 | text-decoration: underline; 121 | } 122 | 123 | 124 | /*////////////////////////////////////////////////////////////////// 125 | [ login ]*/ 126 | 127 | .limiter { 128 | width: 100%; 129 | margin: 0 auto; 130 | } 131 | 132 | .container-login100 { 133 | width: 100%; 134 | min-height: 100vh; 135 | display: -webkit-box; 136 | display: -webkit-flex; 137 | display: -moz-box; 138 | display: -ms-flexbox; 139 | display: flex; 140 | flex-wrap: wrap; 141 | justify-content: center; 142 | align-items: center; 143 | padding: 15px; 144 | background: #f8f9fe; 145 | } 146 | 147 | .wrap-login100 { 148 | width: 500px; 149 | background: #fff; 150 | border-radius: 10px; 151 | overflow: hidden; 152 | 153 | box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 154 | -moz-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 155 | -webkit-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 156 | -o-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 157 | -ms-box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.1); 158 | } 159 | 160 | 161 | /*================================================================== 162 | [ Form ]*/ 163 | 164 | .login100-form { 165 | width: 100%; 166 | } 167 | 168 | .login100-form-title { 169 | display: block; 170 | font-family: OpenSans-Regular; 171 | font-size: 30px; 172 | color: #555555; 173 | line-height: 1.2; 174 | text-align: center; 175 | } 176 | 177 | /*------------------------------------------------------------------ 178 | [ Input ]*/ 179 | 180 | .wrap-input100 { 181 | width: 100%; 182 | position: relative; 183 | background-color: #fff; 184 | border: 1px solid #e6e6e6; 185 | border-radius: .125em; 186 | } 187 | 188 | .wrap-input100.rs1 { 189 | border-top: none; 190 | } 191 | 192 | .input100 { 193 | display: block; 194 | width: 100%; 195 | background: transparent; 196 | font-family: OpenSans-Regular; 197 | font-size: 15px; 198 | color: #666666; 199 | line-height: 1.2; 200 | } 201 | 202 | 203 | /*---------------------------------------------*/ 204 | input.input100 { 205 | height: 68px; 206 | padding: 0 25px 0 25px; 207 | } 208 | 209 | /*------------------------------------------------------------------ 210 | [ Button ]*/ 211 | .container-login100-form-btn { 212 | width: 100%; 213 | display: -webkit-box; 214 | display: -webkit-flex; 215 | display: -moz-box; 216 | display: -ms-flexbox; 217 | display: flex; 218 | flex-wrap: wrap; 219 | } 220 | 221 | .login100-form-btn { 222 | display: -webkit-box; 223 | display: -webkit-flex; 224 | display: -moz-box; 225 | display: -ms-flexbox; 226 | display: flex; 227 | justify-content: center; 228 | align-items: center; 229 | padding: 0 20px; 230 | width: 100%; 231 | height: 60px; 232 | background-color: #4272d7; 233 | border-radius: .25em; 234 | 235 | font-family: OpenSans-Regular; 236 | font-size: 14px; 237 | color: #fff; 238 | line-height: 1.2; 239 | text-transform: uppercase; 240 | 241 | -webkit-transition: all 0.4s; 242 | -o-transition: all 0.4s; 243 | -moz-transition: all 0.4s; 244 | transition: all 0.4s; 245 | } 246 | 247 | .login100-form-btn:hover { 248 | background-color: #3459a5; 249 | } 250 | 251 | 252 | /*------------------------------------------------------------------ 253 | [ Alert ]*/ 254 | 255 | .error{ 256 | background-color: #343a40; 257 | color: #fff; 258 | padding: 10px; 259 | margin-top: 15px; 260 | text-align: center; 261 | display: block; 262 | border-radius: .25em; 263 | } 264 | 265 | .error p{ 266 | color: #fff; 267 | } 268 | 269 | .field_label{ 270 | font-weight: bold; 271 | } 272 | 273 | input:-webkit-autofill, 274 | input:-webkit-autofill:hover, 275 | input:-webkit-autofill:focus, 276 | input:-webkit-autofill:active { 277 | -webkit-box-shadow: 0 0 0 50px white inset !important; 278 | } -------------------------------------------------------------------------------- /RealTime_weapon_survillence/pyqt_user_app/cfg/yolov4.cfg: -------------------------------------------------------------------------------- 1 | [net] 2 | # Testing 3 | #batch=1 4 | #subdivisions=1 5 | # Training 6 | batch=64 7 | subdivisions=16 8 | width=416 9 | height=416 10 | channels=3 11 | momentum=0.949 12 | decay=0.0005 13 | angle=0 14 | saturation = 1.5 15 | exposure = 1.5 16 | hue=.1 17 | 18 | learning_rate=0.001 19 | burn_in=1000 20 | max_batches = 6000 21 | policy=steps 22 | steps=4800,5400 23 | scales=.1,.1 24 | 25 | #cutmix=1 26 | mosaic=1 27 | 28 | #:104x104 54:52x52 85:26x26 104:13x13 for 416 29 | 30 | [convolutional] 31 | batch_normalize=1 32 | filters=32 33 | size=3 34 | stride=1 35 | pad=1 36 | activation=mish 37 | 38 | # Downsample 39 | 40 | [convolutional] 41 | batch_normalize=1 42 | filters=64 43 | size=3 44 | stride=2 45 | pad=1 46 | activation=mish 47 | 48 | [convolutional] 49 | batch_normalize=1 50 | filters=64 51 | size=1 52 | stride=1 53 | pad=1 54 | activation=mish 55 | 56 | [route] 57 | layers = -2 58 | 59 | [convolutional] 60 | batch_normalize=1 61 | filters=64 62 | size=1 63 | stride=1 64 | pad=1 65 | activation=mish 66 | 67 | [convolutional] 68 | batch_normalize=1 69 | filters=32 70 | size=1 71 | stride=1 72 | pad=1 73 | activation=mish 74 | 75 | [convolutional] 76 | batch_normalize=1 77 | filters=64 78 | size=3 79 | stride=1 80 | pad=1 81 | activation=mish 82 | 83 | [shortcut] 84 | from=-3 85 | activation=linear 86 | 87 | [convolutional] 88 | batch_normalize=1 89 | filters=64 90 | size=1 91 | stride=1 92 | pad=1 93 | activation=mish 94 | 95 | [route] 96 | layers = -1,-7 97 | 98 | [convolutional] 99 | batch_normalize=1 100 | filters=64 101 | size=1 102 | stride=1 103 | pad=1 104 | activation=mish 105 | 106 | # Downsample 107 | 108 | [convolutional] 109 | batch_normalize=1 110 | filters=128 111 | size=3 112 | stride=2 113 | pad=1 114 | activation=mish 115 | 116 | [convolutional] 117 | batch_normalize=1 118 | filters=64 119 | size=1 120 | stride=1 121 | pad=1 122 | activation=mish 123 | 124 | [route] 125 | layers = -2 126 | 127 | [convolutional] 128 | batch_normalize=1 129 | filters=64 130 | size=1 131 | stride=1 132 | pad=1 133 | activation=mish 134 | 135 | [convolutional] 136 | batch_normalize=1 137 | filters=64 138 | size=1 139 | stride=1 140 | pad=1 141 | activation=mish 142 | 143 | [convolutional] 144 | batch_normalize=1 145 | filters=64 146 | size=3 147 | stride=1 148 | pad=1 149 | activation=mish 150 | 151 | [shortcut] 152 | from=-3 153 | activation=linear 154 | 155 | [convolutional] 156 | batch_normalize=1 157 | filters=64 158 | size=1 159 | stride=1 160 | pad=1 161 | activation=mish 162 | 163 | [convolutional] 164 | batch_normalize=1 165 | filters=64 166 | size=3 167 | stride=1 168 | pad=1 169 | activation=mish 170 | 171 | [shortcut] 172 | from=-3 173 | activation=linear 174 | 175 | [convolutional] 176 | batch_normalize=1 177 | filters=64 178 | size=1 179 | stride=1 180 | pad=1 181 | activation=mish 182 | 183 | [route] 184 | layers = -1,-10 185 | 186 | [convolutional] 187 | batch_normalize=1 188 | filters=128 189 | size=1 190 | stride=1 191 | pad=1 192 | activation=mish 193 | 194 | # Downsample 195 | 196 | [convolutional] 197 | batch_normalize=1 198 | filters=256 199 | size=3 200 | stride=2 201 | pad=1 202 | activation=mish 203 | 204 | [convolutional] 205 | batch_normalize=1 206 | filters=128 207 | size=1 208 | stride=1 209 | pad=1 210 | activation=mish 211 | 212 | [route] 213 | layers = -2 214 | 215 | [convolutional] 216 | batch_normalize=1 217 | filters=128 218 | size=1 219 | stride=1 220 | pad=1 221 | activation=mish 222 | 223 | [convolutional] 224 | batch_normalize=1 225 | filters=128 226 | size=1 227 | stride=1 228 | pad=1 229 | activation=mish 230 | 231 | [convolutional] 232 | batch_normalize=1 233 | filters=128 234 | size=3 235 | stride=1 236 | pad=1 237 | activation=mish 238 | 239 | [shortcut] 240 | from=-3 241 | activation=linear 242 | 243 | [convolutional] 244 | batch_normalize=1 245 | filters=128 246 | size=1 247 | stride=1 248 | pad=1 249 | activation=mish 250 | 251 | [convolutional] 252 | batch_normalize=1 253 | filters=128 254 | size=3 255 | stride=1 256 | pad=1 257 | activation=mish 258 | 259 | [shortcut] 260 | from=-3 261 | activation=linear 262 | 263 | [convolutional] 264 | batch_normalize=1 265 | filters=128 266 | size=1 267 | stride=1 268 | pad=1 269 | activation=mish 270 | 271 | [convolutional] 272 | batch_normalize=1 273 | filters=128 274 | size=3 275 | stride=1 276 | pad=1 277 | activation=mish 278 | 279 | [shortcut] 280 | from=-3 281 | activation=linear 282 | 283 | [convolutional] 284 | batch_normalize=1 285 | filters=128 286 | size=1 287 | stride=1 288 | pad=1 289 | activation=mish 290 | 291 | [convolutional] 292 | batch_normalize=1 293 | filters=128 294 | size=3 295 | stride=1 296 | pad=1 297 | activation=mish 298 | 299 | [shortcut] 300 | from=-3 301 | activation=linear 302 | 303 | 304 | [convolutional] 305 | batch_normalize=1 306 | filters=128 307 | size=1 308 | stride=1 309 | pad=1 310 | activation=mish 311 | 312 | [convolutional] 313 | batch_normalize=1 314 | filters=128 315 | size=3 316 | stride=1 317 | pad=1 318 | activation=mish 319 | 320 | [shortcut] 321 | from=-3 322 | activation=linear 323 | 324 | [convolutional] 325 | batch_normalize=1 326 | filters=128 327 | size=1 328 | stride=1 329 | pad=1 330 | activation=mish 331 | 332 | [convolutional] 333 | batch_normalize=1 334 | filters=128 335 | size=3 336 | stride=1 337 | pad=1 338 | activation=mish 339 | 340 | [shortcut] 341 | from=-3 342 | activation=linear 343 | 344 | [convolutional] 345 | batch_normalize=1 346 | filters=128 347 | size=1 348 | stride=1 349 | pad=1 350 | activation=mish 351 | 352 | [convolutional] 353 | batch_normalize=1 354 | filters=128 355 | size=3 356 | stride=1 357 | pad=1 358 | activation=mish 359 | 360 | [shortcut] 361 | from=-3 362 | activation=linear 363 | 364 | [convolutional] 365 | batch_normalize=1 366 | filters=128 367 | size=1 368 | stride=1 369 | pad=1 370 | activation=mish 371 | 372 | [convolutional] 373 | batch_normalize=1 374 | filters=128 375 | size=3 376 | stride=1 377 | pad=1 378 | activation=mish 379 | 380 | [shortcut] 381 | from=-3 382 | activation=linear 383 | 384 | [convolutional] 385 | batch_normalize=1 386 | filters=128 387 | size=1 388 | stride=1 389 | pad=1 390 | activation=mish 391 | 392 | [route] 393 | layers = -1,-28 394 | 395 | [convolutional] 396 | batch_normalize=1 397 | filters=256 398 | size=1 399 | stride=1 400 | pad=1 401 | activation=mish 402 | 403 | # Downsample 404 | 405 | [convolutional] 406 | batch_normalize=1 407 | filters=512 408 | size=3 409 | stride=2 410 | pad=1 411 | activation=mish 412 | 413 | [convolutional] 414 | batch_normalize=1 415 | filters=256 416 | size=1 417 | stride=1 418 | pad=1 419 | activation=mish 420 | 421 | [route] 422 | layers = -2 423 | 424 | [convolutional] 425 | batch_normalize=1 426 | filters=256 427 | size=1 428 | stride=1 429 | pad=1 430 | activation=mish 431 | 432 | [convolutional] 433 | batch_normalize=1 434 | filters=256 435 | size=1 436 | stride=1 437 | pad=1 438 | activation=mish 439 | 440 | [convolutional] 441 | batch_normalize=1 442 | filters=256 443 | size=3 444 | stride=1 445 | pad=1 446 | activation=mish 447 | 448 | [shortcut] 449 | from=-3 450 | activation=linear 451 | 452 | 453 | [convolutional] 454 | batch_normalize=1 455 | filters=256 456 | size=1 457 | stride=1 458 | pad=1 459 | activation=mish 460 | 461 | [convolutional] 462 | batch_normalize=1 463 | filters=256 464 | size=3 465 | stride=1 466 | pad=1 467 | activation=mish 468 | 469 | [shortcut] 470 | from=-3 471 | activation=linear 472 | 473 | 474 | [convolutional] 475 | batch_normalize=1 476 | filters=256 477 | size=1 478 | stride=1 479 | pad=1 480 | activation=mish 481 | 482 | [convolutional] 483 | batch_normalize=1 484 | filters=256 485 | size=3 486 | stride=1 487 | pad=1 488 | activation=mish 489 | 490 | [shortcut] 491 | from=-3 492 | activation=linear 493 | 494 | 495 | [convolutional] 496 | batch_normalize=1 497 | filters=256 498 | size=1 499 | stride=1 500 | pad=1 501 | activation=mish 502 | 503 | [convolutional] 504 | batch_normalize=1 505 | filters=256 506 | size=3 507 | stride=1 508 | pad=1 509 | activation=mish 510 | 511 | [shortcut] 512 | from=-3 513 | activation=linear 514 | 515 | 516 | [convolutional] 517 | batch_normalize=1 518 | filters=256 519 | size=1 520 | stride=1 521 | pad=1 522 | activation=mish 523 | 524 | [convolutional] 525 | batch_normalize=1 526 | filters=256 527 | size=3 528 | stride=1 529 | pad=1 530 | activation=mish 531 | 532 | [shortcut] 533 | from=-3 534 | activation=linear 535 | 536 | 537 | [convolutional] 538 | batch_normalize=1 539 | filters=256 540 | size=1 541 | stride=1 542 | pad=1 543 | activation=mish 544 | 545 | [convolutional] 546 | batch_normalize=1 547 | filters=256 548 | size=3 549 | stride=1 550 | pad=1 551 | activation=mish 552 | 553 | [shortcut] 554 | from=-3 555 | activation=linear 556 | 557 | 558 | [convolutional] 559 | batch_normalize=1 560 | filters=256 561 | size=1 562 | stride=1 563 | pad=1 564 | activation=mish 565 | 566 | [convolutional] 567 | batch_normalize=1 568 | filters=256 569 | size=3 570 | stride=1 571 | pad=1 572 | activation=mish 573 | 574 | [shortcut] 575 | from=-3 576 | activation=linear 577 | 578 | [convolutional] 579 | batch_normalize=1 580 | filters=256 581 | size=1 582 | stride=1 583 | pad=1 584 | activation=mish 585 | 586 | [convolutional] 587 | batch_normalize=1 588 | filters=256 589 | size=3 590 | stride=1 591 | pad=1 592 | activation=mish 593 | 594 | [shortcut] 595 | from=-3 596 | activation=linear 597 | 598 | [convolutional] 599 | batch_normalize=1 600 | filters=256 601 | size=1 602 | stride=1 603 | pad=1 604 | activation=mish 605 | 606 | [route] 607 | layers = -1,-28 608 | 609 | [convolutional] 610 | batch_normalize=1 611 | filters=512 612 | size=1 613 | stride=1 614 | pad=1 615 | activation=mish 616 | 617 | # Downsample 618 | 619 | [convolutional] 620 | batch_normalize=1 621 | filters=1024 622 | size=3 623 | stride=2 624 | pad=1 625 | activation=mish 626 | 627 | [convolutional] 628 | batch_normalize=1 629 | filters=512 630 | size=1 631 | stride=1 632 | pad=1 633 | activation=mish 634 | 635 | [route] 636 | layers = -2 637 | 638 | [convolutional] 639 | batch_normalize=1 640 | filters=512 641 | size=1 642 | stride=1 643 | pad=1 644 | activation=mish 645 | 646 | [convolutional] 647 | batch_normalize=1 648 | filters=512 649 | size=1 650 | stride=1 651 | pad=1 652 | activation=mish 653 | 654 | [convolutional] 655 | batch_normalize=1 656 | filters=512 657 | size=3 658 | stride=1 659 | pad=1 660 | activation=mish 661 | 662 | [shortcut] 663 | from=-3 664 | activation=linear 665 | 666 | [convolutional] 667 | batch_normalize=1 668 | filters=512 669 | size=1 670 | stride=1 671 | pad=1 672 | activation=mish 673 | 674 | [convolutional] 675 | batch_normalize=1 676 | filters=512 677 | size=3 678 | stride=1 679 | pad=1 680 | activation=mish 681 | 682 | [shortcut] 683 | from=-3 684 | activation=linear 685 | 686 | [convolutional] 687 | batch_normalize=1 688 | filters=512 689 | size=1 690 | stride=1 691 | pad=1 692 | activation=mish 693 | 694 | [convolutional] 695 | batch_normalize=1 696 | filters=512 697 | size=3 698 | stride=1 699 | pad=1 700 | activation=mish 701 | 702 | [shortcut] 703 | from=-3 704 | activation=linear 705 | 706 | [convolutional] 707 | batch_normalize=1 708 | filters=512 709 | size=1 710 | stride=1 711 | pad=1 712 | activation=mish 713 | 714 | [convolutional] 715 | batch_normalize=1 716 | filters=512 717 | size=3 718 | stride=1 719 | pad=1 720 | activation=mish 721 | 722 | [shortcut] 723 | from=-3 724 | activation=linear 725 | 726 | [convolutional] 727 | batch_normalize=1 728 | filters=512 729 | size=1 730 | stride=1 731 | pad=1 732 | activation=mish 733 | 734 | [route] 735 | layers = -1,-16 736 | 737 | [convolutional] 738 | batch_normalize=1 739 | filters=1024 740 | size=1 741 | stride=1 742 | pad=1 743 | activation=mish 744 | stopbackward=800 745 | 746 | ########################## 747 | 748 | [convolutional] 749 | batch_normalize=1 750 | filters=512 751 | size=1 752 | stride=1 753 | pad=1 754 | activation=leaky 755 | 756 | [convolutional] 757 | batch_normalize=1 758 | size=3 759 | stride=1 760 | pad=1 761 | filters=1024 762 | activation=leaky 763 | 764 | [convolutional] 765 | batch_normalize=1 766 | filters=512 767 | size=1 768 | stride=1 769 | pad=1 770 | activation=leaky 771 | 772 | ### SPP ### 773 | [maxpool] 774 | stride=1 775 | size=5 776 | 777 | [route] 778 | layers=-2 779 | 780 | [maxpool] 781 | stride=1 782 | size=9 783 | 784 | [route] 785 | layers=-4 786 | 787 | [maxpool] 788 | stride=1 789 | size=13 790 | 791 | [route] 792 | layers=-1,-3,-5,-6 793 | ### End SPP ### 794 | 795 | [convolutional] 796 | batch_normalize=1 797 | filters=512 798 | size=1 799 | stride=1 800 | pad=1 801 | activation=leaky 802 | 803 | [convolutional] 804 | batch_normalize=1 805 | size=3 806 | stride=1 807 | pad=1 808 | filters=1024 809 | activation=leaky 810 | 811 | [convolutional] 812 | batch_normalize=1 813 | filters=512 814 | size=1 815 | stride=1 816 | pad=1 817 | activation=leaky 818 | 819 | [convolutional] 820 | batch_normalize=1 821 | filters=256 822 | size=1 823 | stride=1 824 | pad=1 825 | activation=leaky 826 | 827 | [upsample] 828 | stride=2 829 | 830 | [route] 831 | layers = 85 832 | 833 | [convolutional] 834 | batch_normalize=1 835 | filters=256 836 | size=1 837 | stride=1 838 | pad=1 839 | activation=leaky 840 | 841 | [route] 842 | layers = -1, -3 843 | 844 | [convolutional] 845 | batch_normalize=1 846 | filters=256 847 | size=1 848 | stride=1 849 | pad=1 850 | activation=leaky 851 | 852 | [convolutional] 853 | batch_normalize=1 854 | size=3 855 | stride=1 856 | pad=1 857 | filters=512 858 | activation=leaky 859 | 860 | [convolutional] 861 | batch_normalize=1 862 | filters=256 863 | size=1 864 | stride=1 865 | pad=1 866 | activation=leaky 867 | 868 | [convolutional] 869 | batch_normalize=1 870 | size=3 871 | stride=1 872 | pad=1 873 | filters=512 874 | activation=leaky 875 | 876 | [convolutional] 877 | batch_normalize=1 878 | filters=256 879 | size=1 880 | stride=1 881 | pad=1 882 | activation=leaky 883 | 884 | [convolutional] 885 | batch_normalize=1 886 | filters=128 887 | size=1 888 | stride=1 889 | pad=1 890 | activation=leaky 891 | 892 | [upsample] 893 | stride=2 894 | 895 | [route] 896 | layers = 54 897 | 898 | [convolutional] 899 | batch_normalize=1 900 | filters=128 901 | size=1 902 | stride=1 903 | pad=1 904 | activation=leaky 905 | 906 | [route] 907 | layers = -1, -3 908 | 909 | [convolutional] 910 | batch_normalize=1 911 | filters=128 912 | size=1 913 | stride=1 914 | pad=1 915 | activation=leaky 916 | 917 | [convolutional] 918 | batch_normalize=1 919 | size=3 920 | stride=1 921 | pad=1 922 | filters=256 923 | activation=leaky 924 | 925 | [convolutional] 926 | batch_normalize=1 927 | filters=128 928 | size=1 929 | stride=1 930 | pad=1 931 | activation=leaky 932 | 933 | [convolutional] 934 | batch_normalize=1 935 | size=3 936 | stride=1 937 | pad=1 938 | filters=256 939 | activation=leaky 940 | 941 | [convolutional] 942 | batch_normalize=1 943 | filters=128 944 | size=1 945 | stride=1 946 | pad=1 947 | activation=leaky 948 | 949 | ########################## 950 | 951 | [convolutional] 952 | batch_normalize=1 953 | size=3 954 | stride=1 955 | pad=1 956 | filters=256 957 | activation=leaky 958 | 959 | [convolutional] 960 | size=1 961 | stride=1 962 | pad=1 963 | filters=18 964 | activation=linear 965 | 966 | 967 | [yolo] 968 | mask = 0,1,2 969 | anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401 970 | classes=1 971 | num=9 972 | jitter=.3 973 | ignore_thresh = .7 974 | truth_thresh = 1 975 | scale_x_y = 1.2 976 | iou_thresh=0.213 977 | cls_normalizer=1.0 978 | iou_normalizer=0.07 979 | iou_loss=ciou 980 | nms_kind=greedynms 981 | beta_nms=0.6 982 | max_delta=5 983 | 984 | 985 | [route] 986 | layers = -4 987 | 988 | [convolutional] 989 | batch_normalize=1 990 | size=3 991 | stride=2 992 | pad=1 993 | filters=256 994 | activation=leaky 995 | 996 | [route] 997 | layers = -1, -16 998 | 999 | [convolutional] 1000 | batch_normalize=1 1001 | filters=256 1002 | size=1 1003 | stride=1 1004 | pad=1 1005 | activation=leaky 1006 | 1007 | [convolutional] 1008 | batch_normalize=1 1009 | size=3 1010 | stride=1 1011 | pad=1 1012 | filters=512 1013 | activation=leaky 1014 | 1015 | [convolutional] 1016 | batch_normalize=1 1017 | filters=256 1018 | size=1 1019 | stride=1 1020 | pad=1 1021 | activation=leaky 1022 | 1023 | [convolutional] 1024 | batch_normalize=1 1025 | size=3 1026 | stride=1 1027 | pad=1 1028 | filters=512 1029 | activation=leaky 1030 | 1031 | [convolutional] 1032 | batch_normalize=1 1033 | filters=256 1034 | size=1 1035 | stride=1 1036 | pad=1 1037 | activation=leaky 1038 | 1039 | [convolutional] 1040 | batch_normalize=1 1041 | size=3 1042 | stride=1 1043 | pad=1 1044 | filters=512 1045 | activation=leaky 1046 | 1047 | [convolutional] 1048 | size=1 1049 | stride=1 1050 | pad=1 1051 | filters=18 1052 | activation=linear 1053 | 1054 | 1055 | [yolo] 1056 | mask = 3,4,5 1057 | anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401 1058 | classes=1 1059 | num=9 1060 | jitter=.3 1061 | ignore_thresh = .7 1062 | truth_thresh = 1 1063 | scale_x_y = 1.1 1064 | iou_thresh=0.213 1065 | cls_normalizer=1.0 1066 | iou_normalizer=0.07 1067 | iou_loss=ciou 1068 | nms_kind=greedynms 1069 | beta_nms=0.6 1070 | max_delta=5 1071 | 1072 | 1073 | [route] 1074 | layers = -4 1075 | 1076 | [convolutional] 1077 | batch_normalize=1 1078 | size=3 1079 | stride=2 1080 | pad=1 1081 | filters=512 1082 | activation=leaky 1083 | 1084 | [route] 1085 | layers = -1, -37 1086 | 1087 | [convolutional] 1088 | batch_normalize=1 1089 | filters=512 1090 | size=1 1091 | stride=1 1092 | pad=1 1093 | activation=leaky 1094 | 1095 | [convolutional] 1096 | batch_normalize=1 1097 | size=3 1098 | stride=1 1099 | pad=1 1100 | filters=1024 1101 | activation=leaky 1102 | 1103 | [convolutional] 1104 | batch_normalize=1 1105 | filters=512 1106 | size=1 1107 | stride=1 1108 | pad=1 1109 | activation=leaky 1110 | 1111 | [convolutional] 1112 | batch_normalize=1 1113 | size=3 1114 | stride=1 1115 | pad=1 1116 | filters=1024 1117 | activation=leaky 1118 | 1119 | [convolutional] 1120 | batch_normalize=1 1121 | filters=512 1122 | size=1 1123 | stride=1 1124 | pad=1 1125 | activation=leaky 1126 | 1127 | [convolutional] 1128 | batch_normalize=1 1129 | size=3 1130 | stride=1 1131 | pad=1 1132 | filters=1024 1133 | activation=leaky 1134 | 1135 | [convolutional] 1136 | size=1 1137 | stride=1 1138 | pad=1 1139 | filters=18 1140 | activation=linear 1141 | 1142 | 1143 | [yolo] 1144 | mask = 6,7,8 1145 | anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401 1146 | classes=1 1147 | num=9 1148 | jitter=.3 1149 | ignore_thresh = .7 1150 | truth_thresh = 1 1151 | random=1 1152 | scale_x_y = 1.05 1153 | iou_thresh=0.213 1154 | cls_normalizer=1.0 1155 | iou_normalizer=0.07 1156 | iou_loss=ciou 1157 | nms_kind=greedynms 1158 | beta_nms=0.6 1159 | max_delta=5 1160 | 1161 | -------------------------------------------------------------------------------- /RealTime_weapon_survillence/web_app/static/css/util.css: -------------------------------------------------------------------------------- 1 | /*[ FONT SIZE ] 2 | /////////////////////////////////////////////////////////// 3 | */ 4 | .fs-1 {font-size: 1px;} 5 | .fs-2 {font-size: 2px;} 6 | .fs-3 {font-size: 3px;} 7 | .fs-4 {font-size: 4px;} 8 | .fs-5 {font-size: 5px;} 9 | .fs-6 {font-size: 6px;} 10 | .fs-7 {font-size: 7px;} 11 | .fs-8 {font-size: 8px;} 12 | .fs-9 {font-size: 9px;} 13 | .fs-10 {font-size: 10px;} 14 | .fs-11 {font-size: 11px;} 15 | .fs-12 {font-size: 12px;} 16 | .fs-13 {font-size: 13px;} 17 | .fs-14 {font-size: 14px;} 18 | .fs-15 {font-size: 15px;} 19 | .fs-16 {font-size: 16px;} 20 | .fs-17 {font-size: 17px;} 21 | .fs-18 {font-size: 18px;} 22 | .fs-19 {font-size: 19px;} 23 | .fs-20 {font-size: 20px;} 24 | .fs-21 {font-size: 21px;} 25 | .fs-22 {font-size: 22px;} 26 | .fs-23 {font-size: 23px;} 27 | .fs-24 {font-size: 24px;} 28 | .fs-25 {font-size: 25px;} 29 | .fs-26 {font-size: 26px;} 30 | .fs-27 {font-size: 27px;} 31 | .fs-28 {font-size: 28px;} 32 | .fs-29 {font-size: 29px;} 33 | .fs-30 {font-size: 30px;} 34 | .fs-31 {font-size: 31px;} 35 | .fs-32 {font-size: 32px;} 36 | .fs-33 {font-size: 33px;} 37 | .fs-34 {font-size: 34px;} 38 | .fs-35 {font-size: 35px;} 39 | .fs-36 {font-size: 36px;} 40 | .fs-37 {font-size: 37px;} 41 | .fs-38 {font-size: 38px;} 42 | .fs-39 {font-size: 39px;} 43 | .fs-40 {font-size: 40px;} 44 | .fs-41 {font-size: 41px;} 45 | .fs-42 {font-size: 42px;} 46 | .fs-43 {font-size: 43px;} 47 | .fs-44 {font-size: 44px;} 48 | .fs-45 {font-size: 45px;} 49 | .fs-46 {font-size: 46px;} 50 | .fs-47 {font-size: 47px;} 51 | .fs-48 {font-size: 48px;} 52 | .fs-49 {font-size: 49px;} 53 | .fs-50 {font-size: 50px;} 54 | .fs-51 {font-size: 51px;} 55 | .fs-52 {font-size: 52px;} 56 | .fs-53 {font-size: 53px;} 57 | .fs-54 {font-size: 54px;} 58 | .fs-55 {font-size: 55px;} 59 | .fs-56 {font-size: 56px;} 60 | .fs-57 {font-size: 57px;} 61 | .fs-58 {font-size: 58px;} 62 | .fs-59 {font-size: 59px;} 63 | .fs-60 {font-size: 60px;} 64 | .fs-61 {font-size: 61px;} 65 | .fs-62 {font-size: 62px;} 66 | .fs-63 {font-size: 63px;} 67 | .fs-64 {font-size: 64px;} 68 | .fs-65 {font-size: 65px;} 69 | .fs-66 {font-size: 66px;} 70 | .fs-67 {font-size: 67px;} 71 | .fs-68 {font-size: 68px;} 72 | .fs-69 {font-size: 69px;} 73 | .fs-70 {font-size: 70px;} 74 | .fs-71 {font-size: 71px;} 75 | .fs-72 {font-size: 72px;} 76 | .fs-73 {font-size: 73px;} 77 | .fs-74 {font-size: 74px;} 78 | .fs-75 {font-size: 75px;} 79 | .fs-76 {font-size: 76px;} 80 | .fs-77 {font-size: 77px;} 81 | .fs-78 {font-size: 78px;} 82 | .fs-79 {font-size: 79px;} 83 | .fs-80 {font-size: 80px;} 84 | .fs-81 {font-size: 81px;} 85 | .fs-82 {font-size: 82px;} 86 | .fs-83 {font-size: 83px;} 87 | .fs-84 {font-size: 84px;} 88 | .fs-85 {font-size: 85px;} 89 | .fs-86 {font-size: 86px;} 90 | .fs-87 {font-size: 87px;} 91 | .fs-88 {font-size: 88px;} 92 | .fs-89 {font-size: 89px;} 93 | .fs-90 {font-size: 90px;} 94 | .fs-91 {font-size: 91px;} 95 | .fs-92 {font-size: 92px;} 96 | .fs-93 {font-size: 93px;} 97 | .fs-94 {font-size: 94px;} 98 | .fs-95 {font-size: 95px;} 99 | .fs-96 {font-size: 96px;} 100 | .fs-97 {font-size: 97px;} 101 | .fs-98 {font-size: 98px;} 102 | .fs-99 {font-size: 99px;} 103 | .fs-100 {font-size: 100px;} 104 | .fs-101 {font-size: 101px;} 105 | .fs-102 {font-size: 102px;} 106 | .fs-103 {font-size: 103px;} 107 | .fs-104 {font-size: 104px;} 108 | .fs-105 {font-size: 105px;} 109 | .fs-106 {font-size: 106px;} 110 | .fs-107 {font-size: 107px;} 111 | .fs-108 {font-size: 108px;} 112 | .fs-109 {font-size: 109px;} 113 | .fs-110 {font-size: 110px;} 114 | .fs-111 {font-size: 111px;} 115 | .fs-112 {font-size: 112px;} 116 | .fs-113 {font-size: 113px;} 117 | .fs-114 {font-size: 114px;} 118 | .fs-115 {font-size: 115px;} 119 | .fs-116 {font-size: 116px;} 120 | .fs-117 {font-size: 117px;} 121 | .fs-118 {font-size: 118px;} 122 | .fs-119 {font-size: 119px;} 123 | .fs-120 {font-size: 120px;} 124 | .fs-121 {font-size: 121px;} 125 | .fs-122 {font-size: 122px;} 126 | .fs-123 {font-size: 123px;} 127 | .fs-124 {font-size: 124px;} 128 | .fs-125 {font-size: 125px;} 129 | .fs-126 {font-size: 126px;} 130 | .fs-127 {font-size: 127px;} 131 | .fs-128 {font-size: 128px;} 132 | .fs-129 {font-size: 129px;} 133 | .fs-130 {font-size: 130px;} 134 | .fs-131 {font-size: 131px;} 135 | .fs-132 {font-size: 132px;} 136 | .fs-133 {font-size: 133px;} 137 | .fs-134 {font-size: 134px;} 138 | .fs-135 {font-size: 135px;} 139 | .fs-136 {font-size: 136px;} 140 | .fs-137 {font-size: 137px;} 141 | .fs-138 {font-size: 138px;} 142 | .fs-139 {font-size: 139px;} 143 | .fs-140 {font-size: 140px;} 144 | .fs-141 {font-size: 141px;} 145 | .fs-142 {font-size: 142px;} 146 | .fs-143 {font-size: 143px;} 147 | .fs-144 {font-size: 144px;} 148 | .fs-145 {font-size: 145px;} 149 | .fs-146 {font-size: 146px;} 150 | .fs-147 {font-size: 147px;} 151 | .fs-148 {font-size: 148px;} 152 | .fs-149 {font-size: 149px;} 153 | .fs-150 {font-size: 150px;} 154 | .fs-151 {font-size: 151px;} 155 | .fs-152 {font-size: 152px;} 156 | .fs-153 {font-size: 153px;} 157 | .fs-154 {font-size: 154px;} 158 | .fs-155 {font-size: 155px;} 159 | .fs-156 {font-size: 156px;} 160 | .fs-157 {font-size: 157px;} 161 | .fs-158 {font-size: 158px;} 162 | .fs-159 {font-size: 159px;} 163 | .fs-160 {font-size: 160px;} 164 | .fs-161 {font-size: 161px;} 165 | .fs-162 {font-size: 162px;} 166 | .fs-163 {font-size: 163px;} 167 | .fs-164 {font-size: 164px;} 168 | .fs-165 {font-size: 165px;} 169 | .fs-166 {font-size: 166px;} 170 | .fs-167 {font-size: 167px;} 171 | .fs-168 {font-size: 168px;} 172 | .fs-169 {font-size: 169px;} 173 | .fs-170 {font-size: 170px;} 174 | .fs-171 {font-size: 171px;} 175 | .fs-172 {font-size: 172px;} 176 | .fs-173 {font-size: 173px;} 177 | .fs-174 {font-size: 174px;} 178 | .fs-175 {font-size: 175px;} 179 | .fs-176 {font-size: 176px;} 180 | .fs-177 {font-size: 177px;} 181 | .fs-178 {font-size: 178px;} 182 | .fs-179 {font-size: 179px;} 183 | .fs-180 {font-size: 180px;} 184 | .fs-181 {font-size: 181px;} 185 | .fs-182 {font-size: 182px;} 186 | .fs-183 {font-size: 183px;} 187 | .fs-184 {font-size: 184px;} 188 | .fs-185 {font-size: 185px;} 189 | .fs-186 {font-size: 186px;} 190 | .fs-187 {font-size: 187px;} 191 | .fs-188 {font-size: 188px;} 192 | .fs-189 {font-size: 189px;} 193 | .fs-190 {font-size: 190px;} 194 | .fs-191 {font-size: 191px;} 195 | .fs-192 {font-size: 192px;} 196 | .fs-193 {font-size: 193px;} 197 | .fs-194 {font-size: 194px;} 198 | .fs-195 {font-size: 195px;} 199 | .fs-196 {font-size: 196px;} 200 | .fs-197 {font-size: 197px;} 201 | .fs-198 {font-size: 198px;} 202 | .fs-199 {font-size: 199px;} 203 | .fs-200 {font-size: 200px;} 204 | 205 | /*[ PADDING ] 206 | /////////////////////////////////////////////////////////// 207 | */ 208 | .p-t-0 {padding-top: 0px;} 209 | .p-t-1 {padding-top: 1px;} 210 | .p-t-2 {padding-top: 2px;} 211 | .p-t-3 {padding-top: 3px;} 212 | .p-t-4 {padding-top: 4px;} 213 | .p-t-5 {padding-top: 5px;} 214 | .p-t-6 {padding-top: 6px;} 215 | .p-t-7 {padding-top: 7px;} 216 | .p-t-8 {padding-top: 8px;} 217 | .p-t-9 {padding-top: 9px;} 218 | .p-t-10 {padding-top: 10px;} 219 | .p-t-11 {padding-top: 11px;} 220 | .p-t-12 {padding-top: 12px;} 221 | .p-t-13 {padding-top: 13px;} 222 | .p-t-14 {padding-top: 14px;} 223 | .p-t-15 {padding-top: 15px;} 224 | .p-t-16 {padding-top: 16px;} 225 | .p-t-17 {padding-top: 17px;} 226 | .p-t-18 {padding-top: 18px;} 227 | .p-t-19 {padding-top: 19px;} 228 | .p-t-20 {padding-top: 20px;} 229 | .p-t-21 {padding-top: 21px;} 230 | .p-t-22 {padding-top: 22px;} 231 | .p-t-23 {padding-top: 23px;} 232 | .p-t-24 {padding-top: 24px;} 233 | .p-t-25 {padding-top: 25px;} 234 | .p-t-26 {padding-top: 26px;} 235 | .p-t-27 {padding-top: 27px;} 236 | .p-t-28 {padding-top: 28px;} 237 | .p-t-29 {padding-top: 29px;} 238 | .p-t-30 {padding-top: 30px;} 239 | .p-t-31 {padding-top: 31px;} 240 | .p-t-32 {padding-top: 32px;} 241 | .p-t-33 {padding-top: 33px;} 242 | .p-t-34 {padding-top: 34px;} 243 | .p-t-35 {padding-top: 35px;} 244 | .p-t-36 {padding-top: 36px;} 245 | .p-t-37 {padding-top: 37px;} 246 | .p-t-38 {padding-top: 38px;} 247 | .p-t-39 {padding-top: 39px;} 248 | .p-t-40 {padding-top: 40px;} 249 | .p-t-41 {padding-top: 41px;} 250 | .p-t-42 {padding-top: 42px;} 251 | .p-t-43 {padding-top: 43px;} 252 | .p-t-44 {padding-top: 44px;} 253 | .p-t-45 {padding-top: 45px;} 254 | .p-t-46 {padding-top: 46px;} 255 | .p-t-47 {padding-top: 47px;} 256 | .p-t-48 {padding-top: 48px;} 257 | .p-t-49 {padding-top: 49px;} 258 | .p-t-50 {padding-top: 50px;} 259 | .p-t-51 {padding-top: 51px;} 260 | .p-t-52 {padding-top: 52px;} 261 | .p-t-53 {padding-top: 53px;} 262 | .p-t-54 {padding-top: 54px;} 263 | .p-t-55 {padding-top: 55px;} 264 | .p-t-56 {padding-top: 56px;} 265 | .p-t-57 {padding-top: 57px;} 266 | .p-t-58 {padding-top: 58px;} 267 | .p-t-59 {padding-top: 59px;} 268 | .p-t-60 {padding-top: 60px;} 269 | .p-t-61 {padding-top: 61px;} 270 | .p-t-62 {padding-top: 62px;} 271 | .p-t-63 {padding-top: 63px;} 272 | .p-t-64 {padding-top: 64px;} 273 | .p-t-65 {padding-top: 65px;} 274 | .p-t-66 {padding-top: 66px;} 275 | .p-t-67 {padding-top: 67px;} 276 | .p-t-68 {padding-top: 68px;} 277 | .p-t-69 {padding-top: 69px;} 278 | .p-t-70 {padding-top: 70px;} 279 | .p-t-71 {padding-top: 71px;} 280 | .p-t-72 {padding-top: 72px;} 281 | .p-t-73 {padding-top: 73px;} 282 | .p-t-74 {padding-top: 74px;} 283 | .p-t-75 {padding-top: 75px;} 284 | .p-t-76 {padding-top: 76px;} 285 | .p-t-77 {padding-top: 77px;} 286 | .p-t-78 {padding-top: 78px;} 287 | .p-t-79 {padding-top: 79px;} 288 | .p-t-80 {padding-top: 80px;} 289 | .p-t-81 {padding-top: 81px;} 290 | .p-t-82 {padding-top: 82px;} 291 | .p-t-83 {padding-top: 83px;} 292 | .p-t-84 {padding-top: 84px;} 293 | .p-t-85 {padding-top: 85px;} 294 | .p-t-86 {padding-top: 86px;} 295 | .p-t-87 {padding-top: 87px;} 296 | .p-t-88 {padding-top: 88px;} 297 | .p-t-89 {padding-top: 89px;} 298 | .p-t-90 {padding-top: 90px;} 299 | .p-t-91 {padding-top: 91px;} 300 | .p-t-92 {padding-top: 92px;} 301 | .p-t-93 {padding-top: 93px;} 302 | .p-t-94 {padding-top: 94px;} 303 | .p-t-95 {padding-top: 95px;} 304 | .p-t-96 {padding-top: 96px;} 305 | .p-t-97 {padding-top: 97px;} 306 | .p-t-98 {padding-top: 98px;} 307 | .p-t-99 {padding-top: 99px;} 308 | .p-t-100 {padding-top: 100px;} 309 | .p-t-101 {padding-top: 101px;} 310 | .p-t-102 {padding-top: 102px;} 311 | .p-t-103 {padding-top: 103px;} 312 | .p-t-104 {padding-top: 104px;} 313 | .p-t-105 {padding-top: 105px;} 314 | .p-t-106 {padding-top: 106px;} 315 | .p-t-107 {padding-top: 107px;} 316 | .p-t-108 {padding-top: 108px;} 317 | .p-t-109 {padding-top: 109px;} 318 | .p-t-110 {padding-top: 110px;} 319 | .p-t-111 {padding-top: 111px;} 320 | .p-t-112 {padding-top: 112px;} 321 | .p-t-113 {padding-top: 113px;} 322 | .p-t-114 {padding-top: 114px;} 323 | .p-t-115 {padding-top: 115px;} 324 | .p-t-116 {padding-top: 116px;} 325 | .p-t-117 {padding-top: 117px;} 326 | .p-t-118 {padding-top: 118px;} 327 | .p-t-119 {padding-top: 119px;} 328 | .p-t-120 {padding-top: 120px;} 329 | .p-t-121 {padding-top: 121px;} 330 | .p-t-122 {padding-top: 122px;} 331 | .p-t-123 {padding-top: 123px;} 332 | .p-t-124 {padding-top: 124px;} 333 | .p-t-125 {padding-top: 125px;} 334 | .p-t-126 {padding-top: 126px;} 335 | .p-t-127 {padding-top: 127px;} 336 | .p-t-128 {padding-top: 128px;} 337 | .p-t-129 {padding-top: 129px;} 338 | .p-t-130 {padding-top: 130px;} 339 | .p-t-131 {padding-top: 131px;} 340 | .p-t-132 {padding-top: 132px;} 341 | .p-t-133 {padding-top: 133px;} 342 | .p-t-134 {padding-top: 134px;} 343 | .p-t-135 {padding-top: 135px;} 344 | .p-t-136 {padding-top: 136px;} 345 | .p-t-137 {padding-top: 137px;} 346 | .p-t-138 {padding-top: 138px;} 347 | .p-t-139 {padding-top: 139px;} 348 | .p-t-140 {padding-top: 140px;} 349 | .p-t-141 {padding-top: 141px;} 350 | .p-t-142 {padding-top: 142px;} 351 | .p-t-143 {padding-top: 143px;} 352 | .p-t-144 {padding-top: 144px;} 353 | .p-t-145 {padding-top: 145px;} 354 | .p-t-146 {padding-top: 146px;} 355 | .p-t-147 {padding-top: 147px;} 356 | .p-t-148 {padding-top: 148px;} 357 | .p-t-149 {padding-top: 149px;} 358 | .p-t-150 {padding-top: 150px;} 359 | .p-t-151 {padding-top: 151px;} 360 | .p-t-152 {padding-top: 152px;} 361 | .p-t-153 {padding-top: 153px;} 362 | .p-t-154 {padding-top: 154px;} 363 | .p-t-155 {padding-top: 155px;} 364 | .p-t-156 {padding-top: 156px;} 365 | .p-t-157 {padding-top: 157px;} 366 | .p-t-158 {padding-top: 158px;} 367 | .p-t-159 {padding-top: 159px;} 368 | .p-t-160 {padding-top: 160px;} 369 | .p-t-161 {padding-top: 161px;} 370 | .p-t-162 {padding-top: 162px;} 371 | .p-t-163 {padding-top: 163px;} 372 | .p-t-164 {padding-top: 164px;} 373 | .p-t-165 {padding-top: 165px;} 374 | .p-t-166 {padding-top: 166px;} 375 | .p-t-167 {padding-top: 167px;} 376 | .p-t-168 {padding-top: 168px;} 377 | .p-t-169 {padding-top: 169px;} 378 | .p-t-170 {padding-top: 170px;} 379 | .p-t-171 {padding-top: 171px;} 380 | .p-t-172 {padding-top: 172px;} 381 | .p-t-173 {padding-top: 173px;} 382 | .p-t-174 {padding-top: 174px;} 383 | .p-t-175 {padding-top: 175px;} 384 | .p-t-176 {padding-top: 176px;} 385 | .p-t-177 {padding-top: 177px;} 386 | .p-t-178 {padding-top: 178px;} 387 | .p-t-179 {padding-top: 179px;} 388 | .p-t-180 {padding-top: 180px;} 389 | .p-t-181 {padding-top: 181px;} 390 | .p-t-182 {padding-top: 182px;} 391 | .p-t-183 {padding-top: 183px;} 392 | .p-t-184 {padding-top: 184px;} 393 | .p-t-185 {padding-top: 185px;} 394 | .p-t-186 {padding-top: 186px;} 395 | .p-t-187 {padding-top: 187px;} 396 | .p-t-188 {padding-top: 188px;} 397 | .p-t-189 {padding-top: 189px;} 398 | .p-t-190 {padding-top: 190px;} 399 | .p-t-191 {padding-top: 191px;} 400 | .p-t-192 {padding-top: 192px;} 401 | .p-t-193 {padding-top: 193px;} 402 | .p-t-194 {padding-top: 194px;} 403 | .p-t-195 {padding-top: 195px;} 404 | .p-t-196 {padding-top: 196px;} 405 | .p-t-197 {padding-top: 197px;} 406 | .p-t-198 {padding-top: 198px;} 407 | .p-t-199 {padding-top: 199px;} 408 | .p-t-200 {padding-top: 200px;} 409 | .p-t-201 {padding-top: 201px;} 410 | .p-t-202 {padding-top: 202px;} 411 | .p-t-203 {padding-top: 203px;} 412 | .p-t-204 {padding-top: 204px;} 413 | .p-t-205 {padding-top: 205px;} 414 | .p-t-206 {padding-top: 206px;} 415 | .p-t-207 {padding-top: 207px;} 416 | .p-t-208 {padding-top: 208px;} 417 | .p-t-209 {padding-top: 209px;} 418 | .p-t-210 {padding-top: 210px;} 419 | .p-t-211 {padding-top: 211px;} 420 | .p-t-212 {padding-top: 212px;} 421 | .p-t-213 {padding-top: 213px;} 422 | .p-t-214 {padding-top: 214px;} 423 | .p-t-215 {padding-top: 215px;} 424 | .p-t-216 {padding-top: 216px;} 425 | .p-t-217 {padding-top: 217px;} 426 | .p-t-218 {padding-top: 218px;} 427 | .p-t-219 {padding-top: 219px;} 428 | .p-t-220 {padding-top: 220px;} 429 | .p-t-221 {padding-top: 221px;} 430 | .p-t-222 {padding-top: 222px;} 431 | .p-t-223 {padding-top: 223px;} 432 | .p-t-224 {padding-top: 224px;} 433 | .p-t-225 {padding-top: 225px;} 434 | .p-t-226 {padding-top: 226px;} 435 | .p-t-227 {padding-top: 227px;} 436 | .p-t-228 {padding-top: 228px;} 437 | .p-t-229 {padding-top: 229px;} 438 | .p-t-230 {padding-top: 230px;} 439 | .p-t-231 {padding-top: 231px;} 440 | .p-t-232 {padding-top: 232px;} 441 | .p-t-233 {padding-top: 233px;} 442 | .p-t-234 {padding-top: 234px;} 443 | .p-t-235 {padding-top: 235px;} 444 | .p-t-236 {padding-top: 236px;} 445 | .p-t-237 {padding-top: 237px;} 446 | .p-t-238 {padding-top: 238px;} 447 | .p-t-239 {padding-top: 239px;} 448 | .p-t-240 {padding-top: 240px;} 449 | .p-t-241 {padding-top: 241px;} 450 | .p-t-242 {padding-top: 242px;} 451 | .p-t-243 {padding-top: 243px;} 452 | .p-t-244 {padding-top: 244px;} 453 | .p-t-245 {padding-top: 245px;} 454 | .p-t-246 {padding-top: 246px;} 455 | .p-t-247 {padding-top: 247px;} 456 | .p-t-248 {padding-top: 248px;} 457 | .p-t-249 {padding-top: 249px;} 458 | .p-t-250 {padding-top: 250px;} 459 | .p-b-0 {padding-bottom: 0px;} 460 | .p-b-1 {padding-bottom: 1px;} 461 | .p-b-2 {padding-bottom: 2px;} 462 | .p-b-3 {padding-bottom: 3px;} 463 | .p-b-4 {padding-bottom: 4px;} 464 | .p-b-5 {padding-bottom: 5px;} 465 | .p-b-6 {padding-bottom: 6px;} 466 | .p-b-7 {padding-bottom: 7px;} 467 | .p-b-8 {padding-bottom: 8px;} 468 | .p-b-9 {padding-bottom: 9px;} 469 | .p-b-10 {padding-bottom: 10px;} 470 | .p-b-11 {padding-bottom: 11px;} 471 | .p-b-12 {padding-bottom: 12px;} 472 | .p-b-13 {padding-bottom: 13px;} 473 | .p-b-14 {padding-bottom: 14px;} 474 | .p-b-15 {padding-bottom: 15px;} 475 | .p-b-16 {padding-bottom: 16px;} 476 | .p-b-17 {padding-bottom: 17px;} 477 | .p-b-18 {padding-bottom: 18px;} 478 | .p-b-19 {padding-bottom: 19px;} 479 | .p-b-20 {padding-bottom: 20px;} 480 | .p-b-21 {padding-bottom: 21px;} 481 | .p-b-22 {padding-bottom: 22px;} 482 | .p-b-23 {padding-bottom: 23px;} 483 | .p-b-24 {padding-bottom: 24px;} 484 | .p-b-25 {padding-bottom: 25px;} 485 | .p-b-26 {padding-bottom: 26px;} 486 | .p-b-27 {padding-bottom: 27px;} 487 | .p-b-28 {padding-bottom: 28px;} 488 | .p-b-29 {padding-bottom: 29px;} 489 | .p-b-30 {padding-bottom: 30px;} 490 | .p-b-31 {padding-bottom: 31px;} 491 | .p-b-32 {padding-bottom: 32px;} 492 | .p-b-33 {padding-bottom: 33px;} 493 | .p-b-34 {padding-bottom: 34px;} 494 | .p-b-35 {padding-bottom: 35px;} 495 | .p-b-36 {padding-bottom: 36px;} 496 | .p-b-37 {padding-bottom: 37px;} 497 | .p-b-38 {padding-bottom: 38px;} 498 | .p-b-39 {padding-bottom: 39px;} 499 | .p-b-40 {padding-bottom: 40px;} 500 | .p-b-41 {padding-bottom: 41px;} 501 | .p-b-42 {padding-bottom: 42px;} 502 | .p-b-43 {padding-bottom: 43px;} 503 | .p-b-44 {padding-bottom: 44px;} 504 | .p-b-45 {padding-bottom: 45px;} 505 | .p-b-46 {padding-bottom: 46px;} 506 | .p-b-47 {padding-bottom: 47px;} 507 | .p-b-48 {padding-bottom: 48px;} 508 | .p-b-49 {padding-bottom: 49px;} 509 | .p-b-50 {padding-bottom: 50px;} 510 | .p-b-51 {padding-bottom: 51px;} 511 | .p-b-52 {padding-bottom: 52px;} 512 | .p-b-53 {padding-bottom: 53px;} 513 | .p-b-54 {padding-bottom: 54px;} 514 | .p-b-55 {padding-bottom: 55px;} 515 | .p-b-56 {padding-bottom: 56px;} 516 | .p-b-57 {padding-bottom: 57px;} 517 | .p-b-58 {padding-bottom: 58px;} 518 | .p-b-59 {padding-bottom: 59px;} 519 | .p-b-60 {padding-bottom: 60px;} 520 | .p-b-61 {padding-bottom: 61px;} 521 | .p-b-62 {padding-bottom: 62px;} 522 | .p-b-63 {padding-bottom: 63px;} 523 | .p-b-64 {padding-bottom: 64px;} 524 | .p-b-65 {padding-bottom: 65px;} 525 | .p-b-66 {padding-bottom: 66px;} 526 | .p-b-67 {padding-bottom: 67px;} 527 | .p-b-68 {padding-bottom: 68px;} 528 | .p-b-69 {padding-bottom: 69px;} 529 | .p-b-70 {padding-bottom: 70px;} 530 | .p-b-71 {padding-bottom: 71px;} 531 | .p-b-72 {padding-bottom: 72px;} 532 | .p-b-73 {padding-bottom: 73px;} 533 | .p-b-74 {padding-bottom: 74px;} 534 | .p-b-75 {padding-bottom: 75px;} 535 | .p-b-76 {padding-bottom: 76px;} 536 | .p-b-77 {padding-bottom: 77px;} 537 | .p-b-78 {padding-bottom: 78px;} 538 | .p-b-79 {padding-bottom: 79px;} 539 | .p-b-80 {padding-bottom: 80px;} 540 | .p-b-81 {padding-bottom: 81px;} 541 | .p-b-82 {padding-bottom: 82px;} 542 | .p-b-83 {padding-bottom: 83px;} 543 | .p-b-84 {padding-bottom: 84px;} 544 | .p-b-85 {padding-bottom: 85px;} 545 | .p-b-86 {padding-bottom: 86px;} 546 | .p-b-87 {padding-bottom: 87px;} 547 | .p-b-88 {padding-bottom: 88px;} 548 | .p-b-89 {padding-bottom: 89px;} 549 | .p-b-90 {padding-bottom: 90px;} 550 | .p-b-91 {padding-bottom: 91px;} 551 | .p-b-92 {padding-bottom: 92px;} 552 | .p-b-93 {padding-bottom: 93px;} 553 | .p-b-94 {padding-bottom: 94px;} 554 | .p-b-95 {padding-bottom: 95px;} 555 | .p-b-96 {padding-bottom: 96px;} 556 | .p-b-97 {padding-bottom: 97px;} 557 | .p-b-98 {padding-bottom: 98px;} 558 | .p-b-99 {padding-bottom: 99px;} 559 | .p-b-100 {padding-bottom: 100px;} 560 | .p-b-101 {padding-bottom: 101px;} 561 | .p-b-102 {padding-bottom: 102px;} 562 | .p-b-103 {padding-bottom: 103px;} 563 | .p-b-104 {padding-bottom: 104px;} 564 | .p-b-105 {padding-bottom: 105px;} 565 | .p-b-106 {padding-bottom: 106px;} 566 | .p-b-107 {padding-bottom: 107px;} 567 | .p-b-108 {padding-bottom: 108px;} 568 | .p-b-109 {padding-bottom: 109px;} 569 | .p-b-110 {padding-bottom: 110px;} 570 | .p-b-111 {padding-bottom: 111px;} 571 | .p-b-112 {padding-bottom: 112px;} 572 | .p-b-113 {padding-bottom: 113px;} 573 | .p-b-114 {padding-bottom: 114px;} 574 | .p-b-115 {padding-bottom: 115px;} 575 | .p-b-116 {padding-bottom: 116px;} 576 | .p-b-117 {padding-bottom: 117px;} 577 | .p-b-118 {padding-bottom: 118px;} 578 | .p-b-119 {padding-bottom: 119px;} 579 | .p-b-120 {padding-bottom: 120px;} 580 | .p-b-121 {padding-bottom: 121px;} 581 | .p-b-122 {padding-bottom: 122px;} 582 | .p-b-123 {padding-bottom: 123px;} 583 | .p-b-124 {padding-bottom: 124px;} 584 | .p-b-125 {padding-bottom: 125px;} 585 | .p-b-126 {padding-bottom: 126px;} 586 | .p-b-127 {padding-bottom: 127px;} 587 | .p-b-128 {padding-bottom: 128px;} 588 | .p-b-129 {padding-bottom: 129px;} 589 | .p-b-130 {padding-bottom: 130px;} 590 | .p-b-131 {padding-bottom: 131px;} 591 | .p-b-132 {padding-bottom: 132px;} 592 | .p-b-133 {padding-bottom: 133px;} 593 | .p-b-134 {padding-bottom: 134px;} 594 | .p-b-135 {padding-bottom: 135px;} 595 | .p-b-136 {padding-bottom: 136px;} 596 | .p-b-137 {padding-bottom: 137px;} 597 | .p-b-138 {padding-bottom: 138px;} 598 | .p-b-139 {padding-bottom: 139px;} 599 | .p-b-140 {padding-bottom: 140px;} 600 | .p-b-141 {padding-bottom: 141px;} 601 | .p-b-142 {padding-bottom: 142px;} 602 | .p-b-143 {padding-bottom: 143px;} 603 | .p-b-144 {padding-bottom: 144px;} 604 | .p-b-145 {padding-bottom: 145px;} 605 | .p-b-146 {padding-bottom: 146px;} 606 | .p-b-147 {padding-bottom: 147px;} 607 | .p-b-148 {padding-bottom: 148px;} 608 | .p-b-149 {padding-bottom: 149px;} 609 | .p-b-150 {padding-bottom: 150px;} 610 | .p-b-151 {padding-bottom: 151px;} 611 | .p-b-152 {padding-bottom: 152px;} 612 | .p-b-153 {padding-bottom: 153px;} 613 | .p-b-154 {padding-bottom: 154px;} 614 | .p-b-155 {padding-bottom: 155px;} 615 | .p-b-156 {padding-bottom: 156px;} 616 | .p-b-157 {padding-bottom: 157px;} 617 | .p-b-158 {padding-bottom: 158px;} 618 | .p-b-159 {padding-bottom: 159px;} 619 | .p-b-160 {padding-bottom: 160px;} 620 | .p-b-161 {padding-bottom: 161px;} 621 | .p-b-162 {padding-bottom: 162px;} 622 | .p-b-163 {padding-bottom: 163px;} 623 | .p-b-164 {padding-bottom: 164px;} 624 | .p-b-165 {padding-bottom: 165px;} 625 | .p-b-166 {padding-bottom: 166px;} 626 | .p-b-167 {padding-bottom: 167px;} 627 | .p-b-168 {padding-bottom: 168px;} 628 | .p-b-169 {padding-bottom: 169px;} 629 | .p-b-170 {padding-bottom: 170px;} 630 | .p-b-171 {padding-bottom: 171px;} 631 | .p-b-172 {padding-bottom: 172px;} 632 | .p-b-173 {padding-bottom: 173px;} 633 | .p-b-174 {padding-bottom: 174px;} 634 | .p-b-175 {padding-bottom: 175px;} 635 | .p-b-176 {padding-bottom: 176px;} 636 | .p-b-177 {padding-bottom: 177px;} 637 | .p-b-178 {padding-bottom: 178px;} 638 | .p-b-179 {padding-bottom: 179px;} 639 | .p-b-180 {padding-bottom: 180px;} 640 | .p-b-181 {padding-bottom: 181px;} 641 | .p-b-182 {padding-bottom: 182px;} 642 | .p-b-183 {padding-bottom: 183px;} 643 | .p-b-184 {padding-bottom: 184px;} 644 | .p-b-185 {padding-bottom: 185px;} 645 | .p-b-186 {padding-bottom: 186px;} 646 | .p-b-187 {padding-bottom: 187px;} 647 | .p-b-188 {padding-bottom: 188px;} 648 | .p-b-189 {padding-bottom: 189px;} 649 | .p-b-190 {padding-bottom: 190px;} 650 | .p-b-191 {padding-bottom: 191px;} 651 | .p-b-192 {padding-bottom: 192px;} 652 | .p-b-193 {padding-bottom: 193px;} 653 | .p-b-194 {padding-bottom: 194px;} 654 | .p-b-195 {padding-bottom: 195px;} 655 | .p-b-196 {padding-bottom: 196px;} 656 | .p-b-197 {padding-bottom: 197px;} 657 | .p-b-198 {padding-bottom: 198px;} 658 | .p-b-199 {padding-bottom: 199px;} 659 | .p-b-200 {padding-bottom: 200px;} 660 | .p-b-201 {padding-bottom: 201px;} 661 | .p-b-202 {padding-bottom: 202px;} 662 | .p-b-203 {padding-bottom: 203px;} 663 | .p-b-204 {padding-bottom: 204px;} 664 | .p-b-205 {padding-bottom: 205px;} 665 | .p-b-206 {padding-bottom: 206px;} 666 | .p-b-207 {padding-bottom: 207px;} 667 | .p-b-208 {padding-bottom: 208px;} 668 | .p-b-209 {padding-bottom: 209px;} 669 | .p-b-210 {padding-bottom: 210px;} 670 | .p-b-211 {padding-bottom: 211px;} 671 | .p-b-212 {padding-bottom: 212px;} 672 | .p-b-213 {padding-bottom: 213px;} 673 | .p-b-214 {padding-bottom: 214px;} 674 | .p-b-215 {padding-bottom: 215px;} 675 | .p-b-216 {padding-bottom: 216px;} 676 | .p-b-217 {padding-bottom: 217px;} 677 | .p-b-218 {padding-bottom: 218px;} 678 | .p-b-219 {padding-bottom: 219px;} 679 | .p-b-220 {padding-bottom: 220px;} 680 | .p-b-221 {padding-bottom: 221px;} 681 | .p-b-222 {padding-bottom: 222px;} 682 | .p-b-223 {padding-bottom: 223px;} 683 | .p-b-224 {padding-bottom: 224px;} 684 | .p-b-225 {padding-bottom: 225px;} 685 | .p-b-226 {padding-bottom: 226px;} 686 | .p-b-227 {padding-bottom: 227px;} 687 | .p-b-228 {padding-bottom: 228px;} 688 | .p-b-229 {padding-bottom: 229px;} 689 | .p-b-230 {padding-bottom: 230px;} 690 | .p-b-231 {padding-bottom: 231px;} 691 | .p-b-232 {padding-bottom: 232px;} 692 | .p-b-233 {padding-bottom: 233px;} 693 | .p-b-234 {padding-bottom: 234px;} 694 | .p-b-235 {padding-bottom: 235px;} 695 | .p-b-236 {padding-bottom: 236px;} 696 | .p-b-237 {padding-bottom: 237px;} 697 | .p-b-238 {padding-bottom: 238px;} 698 | .p-b-239 {padding-bottom: 239px;} 699 | .p-b-240 {padding-bottom: 240px;} 700 | .p-b-241 {padding-bottom: 241px;} 701 | .p-b-242 {padding-bottom: 242px;} 702 | .p-b-243 {padding-bottom: 243px;} 703 | .p-b-244 {padding-bottom: 244px;} 704 | .p-b-245 {padding-bottom: 245px;} 705 | .p-b-246 {padding-bottom: 246px;} 706 | .p-b-247 {padding-bottom: 247px;} 707 | .p-b-248 {padding-bottom: 248px;} 708 | .p-b-249 {padding-bottom: 249px;} 709 | .p-b-250 {padding-bottom: 250px;} 710 | .p-l-0 {padding-left: 0px;} 711 | .p-l-1 {padding-left: 1px;} 712 | .p-l-2 {padding-left: 2px;} 713 | .p-l-3 {padding-left: 3px;} 714 | .p-l-4 {padding-left: 4px;} 715 | .p-l-5 {padding-left: 5px;} 716 | .p-l-6 {padding-left: 6px;} 717 | .p-l-7 {padding-left: 7px;} 718 | .p-l-8 {padding-left: 8px;} 719 | .p-l-9 {padding-left: 9px;} 720 | .p-l-10 {padding-left: 10px;} 721 | .p-l-11 {padding-left: 11px;} 722 | .p-l-12 {padding-left: 12px;} 723 | .p-l-13 {padding-left: 13px;} 724 | .p-l-14 {padding-left: 14px;} 725 | .p-l-15 {padding-left: 15px;} 726 | .p-l-16 {padding-left: 16px;} 727 | .p-l-17 {padding-left: 17px;} 728 | .p-l-18 {padding-left: 18px;} 729 | .p-l-19 {padding-left: 19px;} 730 | .p-l-20 {padding-left: 20px;} 731 | .p-l-21 {padding-left: 21px;} 732 | .p-l-22 {padding-left: 22px;} 733 | .p-l-23 {padding-left: 23px;} 734 | .p-l-24 {padding-left: 24px;} 735 | .p-l-25 {padding-left: 25px;} 736 | .p-l-26 {padding-left: 26px;} 737 | .p-l-27 {padding-left: 27px;} 738 | .p-l-28 {padding-left: 28px;} 739 | .p-l-29 {padding-left: 29px;} 740 | .p-l-30 {padding-left: 30px;} 741 | .p-l-31 {padding-left: 31px;} 742 | .p-l-32 {padding-left: 32px;} 743 | .p-l-33 {padding-left: 33px;} 744 | .p-l-34 {padding-left: 34px;} 745 | .p-l-35 {padding-left: 35px;} 746 | .p-l-36 {padding-left: 36px;} 747 | .p-l-37 {padding-left: 37px;} 748 | .p-l-38 {padding-left: 38px;} 749 | .p-l-39 {padding-left: 39px;} 750 | .p-l-40 {padding-left: 40px;} 751 | .p-l-41 {padding-left: 41px;} 752 | .p-l-42 {padding-left: 42px;} 753 | .p-l-43 {padding-left: 43px;} 754 | .p-l-44 {padding-left: 44px;} 755 | .p-l-45 {padding-left: 45px;} 756 | .p-l-46 {padding-left: 46px;} 757 | .p-l-47 {padding-left: 47px;} 758 | .p-l-48 {padding-left: 48px;} 759 | .p-l-49 {padding-left: 49px;} 760 | .p-l-50 {padding-left: 50px;} 761 | .p-l-51 {padding-left: 51px;} 762 | .p-l-52 {padding-left: 52px;} 763 | .p-l-53 {padding-left: 53px;} 764 | .p-l-54 {padding-left: 54px;} 765 | .p-l-55 {padding-left: 55px;} 766 | .p-l-56 {padding-left: 56px;} 767 | .p-l-57 {padding-left: 57px;} 768 | .p-l-58 {padding-left: 58px;} 769 | .p-l-59 {padding-left: 59px;} 770 | .p-l-60 {padding-left: 60px;} 771 | .p-l-61 {padding-left: 61px;} 772 | .p-l-62 {padding-left: 62px;} 773 | .p-l-63 {padding-left: 63px;} 774 | .p-l-64 {padding-left: 64px;} 775 | .p-l-65 {padding-left: 65px;} 776 | .p-l-66 {padding-left: 66px;} 777 | .p-l-67 {padding-left: 67px;} 778 | .p-l-68 {padding-left: 68px;} 779 | .p-l-69 {padding-left: 69px;} 780 | .p-l-70 {padding-left: 70px;} 781 | .p-l-71 {padding-left: 71px;} 782 | .p-l-72 {padding-left: 72px;} 783 | .p-l-73 {padding-left: 73px;} 784 | .p-l-74 {padding-left: 74px;} 785 | .p-l-75 {padding-left: 75px;} 786 | .p-l-76 {padding-left: 76px;} 787 | .p-l-77 {padding-left: 77px;} 788 | .p-l-78 {padding-left: 78px;} 789 | .p-l-79 {padding-left: 79px;} 790 | .p-l-80 {padding-left: 80px;} 791 | .p-l-81 {padding-left: 81px;} 792 | .p-l-82 {padding-left: 82px;} 793 | .p-l-83 {padding-left: 83px;} 794 | .p-l-84 {padding-left: 84px;} 795 | .p-l-85 {padding-left: 85px;} 796 | .p-l-86 {padding-left: 86px;} 797 | .p-l-87 {padding-left: 87px;} 798 | .p-l-88 {padding-left: 88px;} 799 | .p-l-89 {padding-left: 89px;} 800 | .p-l-90 {padding-left: 90px;} 801 | .p-l-91 {padding-left: 91px;} 802 | .p-l-92 {padding-left: 92px;} 803 | .p-l-93 {padding-left: 93px;} 804 | .p-l-94 {padding-left: 94px;} 805 | .p-l-95 {padding-left: 95px;} 806 | .p-l-96 {padding-left: 96px;} 807 | .p-l-97 {padding-left: 97px;} 808 | .p-l-98 {padding-left: 98px;} 809 | .p-l-99 {padding-left: 99px;} 810 | .p-l-100 {padding-left: 100px;} 811 | .p-l-101 {padding-left: 101px;} 812 | .p-l-102 {padding-left: 102px;} 813 | .p-l-103 {padding-left: 103px;} 814 | .p-l-104 {padding-left: 104px;} 815 | .p-l-105 {padding-left: 105px;} 816 | .p-l-106 {padding-left: 106px;} 817 | .p-l-107 {padding-left: 107px;} 818 | .p-l-108 {padding-left: 108px;} 819 | .p-l-109 {padding-left: 109px;} 820 | .p-l-110 {padding-left: 110px;} 821 | .p-l-111 {padding-left: 111px;} 822 | .p-l-112 {padding-left: 112px;} 823 | .p-l-113 {padding-left: 113px;} 824 | .p-l-114 {padding-left: 114px;} 825 | .p-l-115 {padding-left: 115px;} 826 | .p-l-116 {padding-left: 116px;} 827 | .p-l-117 {padding-left: 117px;} 828 | .p-l-118 {padding-left: 118px;} 829 | .p-l-119 {padding-left: 119px;} 830 | .p-l-120 {padding-left: 120px;} 831 | .p-l-121 {padding-left: 121px;} 832 | .p-l-122 {padding-left: 122px;} 833 | .p-l-123 {padding-left: 123px;} 834 | .p-l-124 {padding-left: 124px;} 835 | .p-l-125 {padding-left: 125px;} 836 | .p-l-126 {padding-left: 126px;} 837 | .p-l-127 {padding-left: 127px;} 838 | .p-l-128 {padding-left: 128px;} 839 | .p-l-129 {padding-left: 129px;} 840 | .p-l-130 {padding-left: 130px;} 841 | .p-l-131 {padding-left: 131px;} 842 | .p-l-132 {padding-left: 132px;} 843 | .p-l-133 {padding-left: 133px;} 844 | .p-l-134 {padding-left: 134px;} 845 | .p-l-135 {padding-left: 135px;} 846 | .p-l-136 {padding-left: 136px;} 847 | .p-l-137 {padding-left: 137px;} 848 | .p-l-138 {padding-left: 138px;} 849 | .p-l-139 {padding-left: 139px;} 850 | .p-l-140 {padding-left: 140px;} 851 | .p-l-141 {padding-left: 141px;} 852 | .p-l-142 {padding-left: 142px;} 853 | .p-l-143 {padding-left: 143px;} 854 | .p-l-144 {padding-left: 144px;} 855 | .p-l-145 {padding-left: 145px;} 856 | .p-l-146 {padding-left: 146px;} 857 | .p-l-147 {padding-left: 147px;} 858 | .p-l-148 {padding-left: 148px;} 859 | .p-l-149 {padding-left: 149px;} 860 | .p-l-150 {padding-left: 150px;} 861 | .p-l-151 {padding-left: 151px;} 862 | .p-l-152 {padding-left: 152px;} 863 | .p-l-153 {padding-left: 153px;} 864 | .p-l-154 {padding-left: 154px;} 865 | .p-l-155 {padding-left: 155px;} 866 | .p-l-156 {padding-left: 156px;} 867 | .p-l-157 {padding-left: 157px;} 868 | .p-l-158 {padding-left: 158px;} 869 | .p-l-159 {padding-left: 159px;} 870 | .p-l-160 {padding-left: 160px;} 871 | .p-l-161 {padding-left: 161px;} 872 | .p-l-162 {padding-left: 162px;} 873 | .p-l-163 {padding-left: 163px;} 874 | .p-l-164 {padding-left: 164px;} 875 | .p-l-165 {padding-left: 165px;} 876 | .p-l-166 {padding-left: 166px;} 877 | .p-l-167 {padding-left: 167px;} 878 | .p-l-168 {padding-left: 168px;} 879 | .p-l-169 {padding-left: 169px;} 880 | .p-l-170 {padding-left: 170px;} 881 | .p-l-171 {padding-left: 171px;} 882 | .p-l-172 {padding-left: 172px;} 883 | .p-l-173 {padding-left: 173px;} 884 | .p-l-174 {padding-left: 174px;} 885 | .p-l-175 {padding-left: 175px;} 886 | .p-l-176 {padding-left: 176px;} 887 | .p-l-177 {padding-left: 177px;} 888 | .p-l-178 {padding-left: 178px;} 889 | .p-l-179 {padding-left: 179px;} 890 | .p-l-180 {padding-left: 180px;} 891 | .p-l-181 {padding-left: 181px;} 892 | .p-l-182 {padding-left: 182px;} 893 | .p-l-183 {padding-left: 183px;} 894 | .p-l-184 {padding-left: 184px;} 895 | .p-l-185 {padding-left: 185px;} 896 | .p-l-186 {padding-left: 186px;} 897 | .p-l-187 {padding-left: 187px;} 898 | .p-l-188 {padding-left: 188px;} 899 | .p-l-189 {padding-left: 189px;} 900 | .p-l-190 {padding-left: 190px;} 901 | .p-l-191 {padding-left: 191px;} 902 | .p-l-192 {padding-left: 192px;} 903 | .p-l-193 {padding-left: 193px;} 904 | .p-l-194 {padding-left: 194px;} 905 | .p-l-195 {padding-left: 195px;} 906 | .p-l-196 {padding-left: 196px;} 907 | .p-l-197 {padding-left: 197px;} 908 | .p-l-198 {padding-left: 198px;} 909 | .p-l-199 {padding-left: 199px;} 910 | .p-l-200 {padding-left: 200px;} 911 | .p-l-201 {padding-left: 201px;} 912 | .p-l-202 {padding-left: 202px;} 913 | .p-l-203 {padding-left: 203px;} 914 | .p-l-204 {padding-left: 204px;} 915 | .p-l-205 {padding-left: 205px;} 916 | .p-l-206 {padding-left: 206px;} 917 | .p-l-207 {padding-left: 207px;} 918 | .p-l-208 {padding-left: 208px;} 919 | .p-l-209 {padding-left: 209px;} 920 | .p-l-210 {padding-left: 210px;} 921 | .p-l-211 {padding-left: 211px;} 922 | .p-l-212 {padding-left: 212px;} 923 | .p-l-213 {padding-left: 213px;} 924 | .p-l-214 {padding-left: 214px;} 925 | .p-l-215 {padding-left: 215px;} 926 | .p-l-216 {padding-left: 216px;} 927 | .p-l-217 {padding-left: 217px;} 928 | .p-l-218 {padding-left: 218px;} 929 | .p-l-219 {padding-left: 219px;} 930 | .p-l-220 {padding-left: 220px;} 931 | .p-l-221 {padding-left: 221px;} 932 | .p-l-222 {padding-left: 222px;} 933 | .p-l-223 {padding-left: 223px;} 934 | .p-l-224 {padding-left: 224px;} 935 | .p-l-225 {padding-left: 225px;} 936 | .p-l-226 {padding-left: 226px;} 937 | .p-l-227 {padding-left: 227px;} 938 | .p-l-228 {padding-left: 228px;} 939 | .p-l-229 {padding-left: 229px;} 940 | .p-l-230 {padding-left: 230px;} 941 | .p-l-231 {padding-left: 231px;} 942 | .p-l-232 {padding-left: 232px;} 943 | .p-l-233 {padding-left: 233px;} 944 | .p-l-234 {padding-left: 234px;} 945 | .p-l-235 {padding-left: 235px;} 946 | .p-l-236 {padding-left: 236px;} 947 | .p-l-237 {padding-left: 237px;} 948 | .p-l-238 {padding-left: 238px;} 949 | .p-l-239 {padding-left: 239px;} 950 | .p-l-240 {padding-left: 240px;} 951 | .p-l-241 {padding-left: 241px;} 952 | .p-l-242 {padding-left: 242px;} 953 | .p-l-243 {padding-left: 243px;} 954 | .p-l-244 {padding-left: 244px;} 955 | .p-l-245 {padding-left: 245px;} 956 | .p-l-246 {padding-left: 246px;} 957 | .p-l-247 {padding-left: 247px;} 958 | .p-l-248 {padding-left: 248px;} 959 | .p-l-249 {padding-left: 249px;} 960 | .p-l-250 {padding-left: 250px;} 961 | .p-r-0 {padding-right: 0px;} 962 | .p-r-1 {padding-right: 1px;} 963 | .p-r-2 {padding-right: 2px;} 964 | .p-r-3 {padding-right: 3px;} 965 | .p-r-4 {padding-right: 4px;} 966 | .p-r-5 {padding-right: 5px;} 967 | .p-r-6 {padding-right: 6px;} 968 | .p-r-7 {padding-right: 7px;} 969 | .p-r-8 {padding-right: 8px;} 970 | .p-r-9 {padding-right: 9px;} 971 | .p-r-10 {padding-right: 10px;} 972 | .p-r-11 {padding-right: 11px;} 973 | .p-r-12 {padding-right: 12px;} 974 | .p-r-13 {padding-right: 13px;} 975 | .p-r-14 {padding-right: 14px;} 976 | .p-r-15 {padding-right: 15px;} 977 | .p-r-16 {padding-right: 16px;} 978 | .p-r-17 {padding-right: 17px;} 979 | .p-r-18 {padding-right: 18px;} 980 | .p-r-19 {padding-right: 19px;} 981 | .p-r-20 {padding-right: 20px;} 982 | .p-r-21 {padding-right: 21px;} 983 | .p-r-22 {padding-right: 22px;} 984 | .p-r-23 {padding-right: 23px;} 985 | .p-r-24 {padding-right: 24px;} 986 | .p-r-25 {padding-right: 25px;} 987 | .p-r-26 {padding-right: 26px;} 988 | .p-r-27 {padding-right: 27px;} 989 | .p-r-28 {padding-right: 28px;} 990 | .p-r-29 {padding-right: 29px;} 991 | .p-r-30 {padding-right: 30px;} 992 | .p-r-31 {padding-right: 31px;} 993 | .p-r-32 {padding-right: 32px;} 994 | .p-r-33 {padding-right: 33px;} 995 | .p-r-34 {padding-right: 34px;} 996 | .p-r-35 {padding-right: 35px;} 997 | .p-r-36 {padding-right: 36px;} 998 | .p-r-37 {padding-right: 37px;} 999 | .p-r-38 {padding-right: 38px;} 1000 | .p-r-39 {padding-right: 39px;} 1001 | .p-r-40 {padding-right: 40px;} 1002 | .p-r-41 {padding-right: 41px;} 1003 | .p-r-42 {padding-right: 42px;} 1004 | .p-r-43 {padding-right: 43px;} 1005 | .p-r-44 {padding-right: 44px;} 1006 | .p-r-45 {padding-right: 45px;} 1007 | .p-r-46 {padding-right: 46px;} 1008 | .p-r-47 {padding-right: 47px;} 1009 | .p-r-48 {padding-right: 48px;} 1010 | .p-r-49 {padding-right: 49px;} 1011 | .p-r-50 {padding-right: 50px;} 1012 | .p-r-51 {padding-right: 51px;} 1013 | .p-r-52 {padding-right: 52px;} 1014 | .p-r-53 {padding-right: 53px;} 1015 | .p-r-54 {padding-right: 54px;} 1016 | .p-r-55 {padding-right: 55px;} 1017 | .p-r-56 {padding-right: 56px;} 1018 | .p-r-57 {padding-right: 57px;} 1019 | .p-r-58 {padding-right: 58px;} 1020 | .p-r-59 {padding-right: 59px;} 1021 | .p-r-60 {padding-right: 60px;} 1022 | .p-r-61 {padding-right: 61px;} 1023 | .p-r-62 {padding-right: 62px;} 1024 | .p-r-63 {padding-right: 63px;} 1025 | .p-r-64 {padding-right: 64px;} 1026 | .p-r-65 {padding-right: 65px;} 1027 | .p-r-66 {padding-right: 66px;} 1028 | .p-r-67 {padding-right: 67px;} 1029 | .p-r-68 {padding-right: 68px;} 1030 | .p-r-69 {padding-right: 69px;} 1031 | .p-r-70 {padding-right: 70px;} 1032 | .p-r-71 {padding-right: 71px;} 1033 | .p-r-72 {padding-right: 72px;} 1034 | .p-r-73 {padding-right: 73px;} 1035 | .p-r-74 {padding-right: 74px;} 1036 | .p-r-75 {padding-right: 75px;} 1037 | .p-r-76 {padding-right: 76px;} 1038 | .p-r-77 {padding-right: 77px;} 1039 | .p-r-78 {padding-right: 78px;} 1040 | .p-r-79 {padding-right: 79px;} 1041 | .p-r-80 {padding-right: 80px;} 1042 | .p-r-81 {padding-right: 81px;} 1043 | .p-r-82 {padding-right: 82px;} 1044 | .p-r-83 {padding-right: 83px;} 1045 | .p-r-84 {padding-right: 84px;} 1046 | .p-r-85 {padding-right: 85px;} 1047 | .p-r-86 {padding-right: 86px;} 1048 | .p-r-87 {padding-right: 87px;} 1049 | .p-r-88 {padding-right: 88px;} 1050 | .p-r-89 {padding-right: 89px;} 1051 | .p-r-90 {padding-right: 90px;} 1052 | .p-r-91 {padding-right: 91px;} 1053 | .p-r-92 {padding-right: 92px;} 1054 | .p-r-93 {padding-right: 93px;} 1055 | .p-r-94 {padding-right: 94px;} 1056 | .p-r-95 {padding-right: 95px;} 1057 | .p-r-96 {padding-right: 96px;} 1058 | .p-r-97 {padding-right: 97px;} 1059 | .p-r-98 {padding-right: 98px;} 1060 | .p-r-99 {padding-right: 99px;} 1061 | .p-r-100 {padding-right: 100px;} 1062 | .p-r-101 {padding-right: 101px;} 1063 | .p-r-102 {padding-right: 102px;} 1064 | .p-r-103 {padding-right: 103px;} 1065 | .p-r-104 {padding-right: 104px;} 1066 | .p-r-105 {padding-right: 105px;} 1067 | .p-r-106 {padding-right: 106px;} 1068 | .p-r-107 {padding-right: 107px;} 1069 | .p-r-108 {padding-right: 108px;} 1070 | .p-r-109 {padding-right: 109px;} 1071 | .p-r-110 {padding-right: 110px;} 1072 | .p-r-111 {padding-right: 111px;} 1073 | .p-r-112 {padding-right: 112px;} 1074 | .p-r-113 {padding-right: 113px;} 1075 | .p-r-114 {padding-right: 114px;} 1076 | .p-r-115 {padding-right: 115px;} 1077 | .p-r-116 {padding-right: 116px;} 1078 | .p-r-117 {padding-right: 117px;} 1079 | .p-r-118 {padding-right: 118px;} 1080 | .p-r-119 {padding-right: 119px;} 1081 | .p-r-120 {padding-right: 120px;} 1082 | .p-r-121 {padding-right: 121px;} 1083 | .p-r-122 {padding-right: 122px;} 1084 | .p-r-123 {padding-right: 123px;} 1085 | .p-r-124 {padding-right: 124px;} 1086 | .p-r-125 {padding-right: 125px;} 1087 | .p-r-126 {padding-right: 126px;} 1088 | .p-r-127 {padding-right: 127px;} 1089 | .p-r-128 {padding-right: 128px;} 1090 | .p-r-129 {padding-right: 129px;} 1091 | .p-r-130 {padding-right: 130px;} 1092 | .p-r-131 {padding-right: 131px;} 1093 | .p-r-132 {padding-right: 132px;} 1094 | .p-r-133 {padding-right: 133px;} 1095 | .p-r-134 {padding-right: 134px;} 1096 | .p-r-135 {padding-right: 135px;} 1097 | .p-r-136 {padding-right: 136px;} 1098 | .p-r-137 {padding-right: 137px;} 1099 | .p-r-138 {padding-right: 138px;} 1100 | .p-r-139 {padding-right: 139px;} 1101 | .p-r-140 {padding-right: 140px;} 1102 | .p-r-141 {padding-right: 141px;} 1103 | .p-r-142 {padding-right: 142px;} 1104 | .p-r-143 {padding-right: 143px;} 1105 | .p-r-144 {padding-right: 144px;} 1106 | .p-r-145 {padding-right: 145px;} 1107 | .p-r-146 {padding-right: 146px;} 1108 | .p-r-147 {padding-right: 147px;} 1109 | .p-r-148 {padding-right: 148px;} 1110 | .p-r-149 {padding-right: 149px;} 1111 | .p-r-150 {padding-right: 150px;} 1112 | .p-r-151 {padding-right: 151px;} 1113 | .p-r-152 {padding-right: 152px;} 1114 | .p-r-153 {padding-right: 153px;} 1115 | .p-r-154 {padding-right: 154px;} 1116 | .p-r-155 {padding-right: 155px;} 1117 | .p-r-156 {padding-right: 156px;} 1118 | .p-r-157 {padding-right: 157px;} 1119 | .p-r-158 {padding-right: 158px;} 1120 | .p-r-159 {padding-right: 159px;} 1121 | .p-r-160 {padding-right: 160px;} 1122 | .p-r-161 {padding-right: 161px;} 1123 | .p-r-162 {padding-right: 162px;} 1124 | .p-r-163 {padding-right: 163px;} 1125 | .p-r-164 {padding-right: 164px;} 1126 | .p-r-165 {padding-right: 165px;} 1127 | .p-r-166 {padding-right: 166px;} 1128 | .p-r-167 {padding-right: 167px;} 1129 | .p-r-168 {padding-right: 168px;} 1130 | .p-r-169 {padding-right: 169px;} 1131 | .p-r-170 {padding-right: 170px;} 1132 | .p-r-171 {padding-right: 171px;} 1133 | .p-r-172 {padding-right: 172px;} 1134 | .p-r-173 {padding-right: 173px;} 1135 | .p-r-174 {padding-right: 174px;} 1136 | .p-r-175 {padding-right: 175px;} 1137 | .p-r-176 {padding-right: 176px;} 1138 | .p-r-177 {padding-right: 177px;} 1139 | .p-r-178 {padding-right: 178px;} 1140 | .p-r-179 {padding-right: 179px;} 1141 | .p-r-180 {padding-right: 180px;} 1142 | .p-r-181 {padding-right: 181px;} 1143 | .p-r-182 {padding-right: 182px;} 1144 | .p-r-183 {padding-right: 183px;} 1145 | .p-r-184 {padding-right: 184px;} 1146 | .p-r-185 {padding-right: 185px;} 1147 | .p-r-186 {padding-right: 186px;} 1148 | .p-r-187 {padding-right: 187px;} 1149 | .p-r-188 {padding-right: 188px;} 1150 | .p-r-189 {padding-right: 189px;} 1151 | .p-r-190 {padding-right: 190px;} 1152 | .p-r-191 {padding-right: 191px;} 1153 | .p-r-192 {padding-right: 192px;} 1154 | .p-r-193 {padding-right: 193px;} 1155 | .p-r-194 {padding-right: 194px;} 1156 | .p-r-195 {padding-right: 195px;} 1157 | .p-r-196 {padding-right: 196px;} 1158 | .p-r-197 {padding-right: 197px;} 1159 | .p-r-198 {padding-right: 198px;} 1160 | .p-r-199 {padding-right: 199px;} 1161 | .p-r-200 {padding-right: 200px;} 1162 | .p-r-201 {padding-right: 201px;} 1163 | .p-r-202 {padding-right: 202px;} 1164 | .p-r-203 {padding-right: 203px;} 1165 | .p-r-204 {padding-right: 204px;} 1166 | .p-r-205 {padding-right: 205px;} 1167 | .p-r-206 {padding-right: 206px;} 1168 | .p-r-207 {padding-right: 207px;} 1169 | .p-r-208 {padding-right: 208px;} 1170 | .p-r-209 {padding-right: 209px;} 1171 | .p-r-210 {padding-right: 210px;} 1172 | .p-r-211 {padding-right: 211px;} 1173 | .p-r-212 {padding-right: 212px;} 1174 | .p-r-213 {padding-right: 213px;} 1175 | .p-r-214 {padding-right: 214px;} 1176 | .p-r-215 {padding-right: 215px;} 1177 | .p-r-216 {padding-right: 216px;} 1178 | .p-r-217 {padding-right: 217px;} 1179 | .p-r-218 {padding-right: 218px;} 1180 | .p-r-219 {padding-right: 219px;} 1181 | .p-r-220 {padding-right: 220px;} 1182 | .p-r-221 {padding-right: 221px;} 1183 | .p-r-222 {padding-right: 222px;} 1184 | .p-r-223 {padding-right: 223px;} 1185 | .p-r-224 {padding-right: 224px;} 1186 | .p-r-225 {padding-right: 225px;} 1187 | .p-r-226 {padding-right: 226px;} 1188 | .p-r-227 {padding-right: 227px;} 1189 | .p-r-228 {padding-right: 228px;} 1190 | .p-r-229 {padding-right: 229px;} 1191 | .p-r-230 {padding-right: 230px;} 1192 | .p-r-231 {padding-right: 231px;} 1193 | .p-r-232 {padding-right: 232px;} 1194 | .p-r-233 {padding-right: 233px;} 1195 | .p-r-234 {padding-right: 234px;} 1196 | .p-r-235 {padding-right: 235px;} 1197 | .p-r-236 {padding-right: 236px;} 1198 | .p-r-237 {padding-right: 237px;} 1199 | .p-r-238 {padding-right: 238px;} 1200 | .p-r-239 {padding-right: 239px;} 1201 | .p-r-240 {padding-right: 240px;} 1202 | .p-r-241 {padding-right: 241px;} 1203 | .p-r-242 {padding-right: 242px;} 1204 | .p-r-243 {padding-right: 243px;} 1205 | .p-r-244 {padding-right: 244px;} 1206 | .p-r-245 {padding-right: 245px;} 1207 | .p-r-246 {padding-right: 246px;} 1208 | .p-r-247 {padding-right: 247px;} 1209 | .p-r-248 {padding-right: 248px;} 1210 | .p-r-249 {padding-right: 249px;} 1211 | .p-r-250 {padding-right: 250px;} 1212 | 1213 | /*[ MARGIN ] 1214 | /////////////////////////////////////////////////////////// 1215 | */ 1216 | .m-t-0 {margin-top: 0px;} 1217 | .m-t-1 {margin-top: 1px;} 1218 | .m-t-2 {margin-top: 2px;} 1219 | .m-t-3 {margin-top: 3px;} 1220 | .m-t-4 {margin-top: 4px;} 1221 | .m-t-5 {margin-top: 5px;} 1222 | .m-t-6 {margin-top: 6px;} 1223 | .m-t-7 {margin-top: 7px;} 1224 | .m-t-8 {margin-top: 8px;} 1225 | .m-t-9 {margin-top: 9px;} 1226 | .m-t-10 {margin-top: 10px;} 1227 | .m-t-11 {margin-top: 11px;} 1228 | .m-t-12 {margin-top: 12px;} 1229 | .m-t-13 {margin-top: 13px;} 1230 | .m-t-14 {margin-top: 14px;} 1231 | .m-t-15 {margin-top: 15px;} 1232 | .m-t-16 {margin-top: 16px;} 1233 | .m-t-17 {margin-top: 17px;} 1234 | .m-t-18 {margin-top: 18px;} 1235 | .m-t-19 {margin-top: 19px;} 1236 | .m-t-20 {margin-top: 20px;} 1237 | .m-t-21 {margin-top: 21px;} 1238 | .m-t-22 {margin-top: 22px;} 1239 | .m-t-23 {margin-top: 23px;} 1240 | .m-t-24 {margin-top: 24px;} 1241 | .m-t-25 {margin-top: 25px;} 1242 | .m-t-26 {margin-top: 26px;} 1243 | .m-t-27 {margin-top: 27px;} 1244 | .m-t-28 {margin-top: 28px;} 1245 | .m-t-29 {margin-top: 29px;} 1246 | .m-t-30 {margin-top: 30px;} 1247 | .m-t-31 {margin-top: 31px;} 1248 | .m-t-32 {margin-top: 32px;} 1249 | .m-t-33 {margin-top: 33px;} 1250 | .m-t-34 {margin-top: 34px;} 1251 | .m-t-35 {margin-top: 35px;} 1252 | .m-t-36 {margin-top: 36px;} 1253 | .m-t-37 {margin-top: 37px;} 1254 | .m-t-38 {margin-top: 38px;} 1255 | .m-t-39 {margin-top: 39px;} 1256 | .m-t-40 {margin-top: 40px;} 1257 | .m-t-41 {margin-top: 41px;} 1258 | .m-t-42 {margin-top: 42px;} 1259 | .m-t-43 {margin-top: 43px;} 1260 | .m-t-44 {margin-top: 44px;} 1261 | .m-t-45 {margin-top: 45px;} 1262 | .m-t-46 {margin-top: 46px;} 1263 | .m-t-47 {margin-top: 47px;} 1264 | .m-t-48 {margin-top: 48px;} 1265 | .m-t-49 {margin-top: 49px;} 1266 | .m-t-50 {margin-top: 50px;} 1267 | .m-t-51 {margin-top: 51px;} 1268 | .m-t-52 {margin-top: 52px;} 1269 | .m-t-53 {margin-top: 53px;} 1270 | .m-t-54 {margin-top: 54px;} 1271 | .m-t-55 {margin-top: 55px;} 1272 | .m-t-56 {margin-top: 56px;} 1273 | .m-t-57 {margin-top: 57px;} 1274 | .m-t-58 {margin-top: 58px;} 1275 | .m-t-59 {margin-top: 59px;} 1276 | .m-t-60 {margin-top: 60px;} 1277 | .m-t-61 {margin-top: 61px;} 1278 | .m-t-62 {margin-top: 62px;} 1279 | .m-t-63 {margin-top: 63px;} 1280 | .m-t-64 {margin-top: 64px;} 1281 | .m-t-65 {margin-top: 65px;} 1282 | .m-t-66 {margin-top: 66px;} 1283 | .m-t-67 {margin-top: 67px;} 1284 | .m-t-68 {margin-top: 68px;} 1285 | .m-t-69 {margin-top: 69px;} 1286 | .m-t-70 {margin-top: 70px;} 1287 | .m-t-71 {margin-top: 71px;} 1288 | .m-t-72 {margin-top: 72px;} 1289 | .m-t-73 {margin-top: 73px;} 1290 | .m-t-74 {margin-top: 74px;} 1291 | .m-t-75 {margin-top: 75px;} 1292 | .m-t-76 {margin-top: 76px;} 1293 | .m-t-77 {margin-top: 77px;} 1294 | .m-t-78 {margin-top: 78px;} 1295 | .m-t-79 {margin-top: 79px;} 1296 | .m-t-80 {margin-top: 80px;} 1297 | .m-t-81 {margin-top: 81px;} 1298 | .m-t-82 {margin-top: 82px;} 1299 | .m-t-83 {margin-top: 83px;} 1300 | .m-t-84 {margin-top: 84px;} 1301 | .m-t-85 {margin-top: 85px;} 1302 | .m-t-86 {margin-top: 86px;} 1303 | .m-t-87 {margin-top: 87px;} 1304 | .m-t-88 {margin-top: 88px;} 1305 | .m-t-89 {margin-top: 89px;} 1306 | .m-t-90 {margin-top: 90px;} 1307 | .m-t-91 {margin-top: 91px;} 1308 | .m-t-92 {margin-top: 92px;} 1309 | .m-t-93 {margin-top: 93px;} 1310 | .m-t-94 {margin-top: 94px;} 1311 | .m-t-95 {margin-top: 95px;} 1312 | .m-t-96 {margin-top: 96px;} 1313 | .m-t-97 {margin-top: 97px;} 1314 | .m-t-98 {margin-top: 98px;} 1315 | .m-t-99 {margin-top: 99px;} 1316 | .m-t-100 {margin-top: 100px;} 1317 | .m-t-101 {margin-top: 101px;} 1318 | .m-t-102 {margin-top: 102px;} 1319 | .m-t-103 {margin-top: 103px;} 1320 | .m-t-104 {margin-top: 104px;} 1321 | .m-t-105 {margin-top: 105px;} 1322 | .m-t-106 {margin-top: 106px;} 1323 | .m-t-107 {margin-top: 107px;} 1324 | .m-t-108 {margin-top: 108px;} 1325 | .m-t-109 {margin-top: 109px;} 1326 | .m-t-110 {margin-top: 110px;} 1327 | .m-t-111 {margin-top: 111px;} 1328 | .m-t-112 {margin-top: 112px;} 1329 | .m-t-113 {margin-top: 113px;} 1330 | .m-t-114 {margin-top: 114px;} 1331 | .m-t-115 {margin-top: 115px;} 1332 | .m-t-116 {margin-top: 116px;} 1333 | .m-t-117 {margin-top: 117px;} 1334 | .m-t-118 {margin-top: 118px;} 1335 | .m-t-119 {margin-top: 119px;} 1336 | .m-t-120 {margin-top: 120px;} 1337 | .m-t-121 {margin-top: 121px;} 1338 | .m-t-122 {margin-top: 122px;} 1339 | .m-t-123 {margin-top: 123px;} 1340 | .m-t-124 {margin-top: 124px;} 1341 | .m-t-125 {margin-top: 125px;} 1342 | .m-t-126 {margin-top: 126px;} 1343 | .m-t-127 {margin-top: 127px;} 1344 | .m-t-128 {margin-top: 128px;} 1345 | .m-t-129 {margin-top: 129px;} 1346 | .m-t-130 {margin-top: 130px;} 1347 | .m-t-131 {margin-top: 131px;} 1348 | .m-t-132 {margin-top: 132px;} 1349 | .m-t-133 {margin-top: 133px;} 1350 | .m-t-134 {margin-top: 134px;} 1351 | .m-t-135 {margin-top: 135px;} 1352 | .m-t-136 {margin-top: 136px;} 1353 | .m-t-137 {margin-top: 137px;} 1354 | .m-t-138 {margin-top: 138px;} 1355 | .m-t-139 {margin-top: 139px;} 1356 | .m-t-140 {margin-top: 140px;} 1357 | .m-t-141 {margin-top: 141px;} 1358 | .m-t-142 {margin-top: 142px;} 1359 | .m-t-143 {margin-top: 143px;} 1360 | .m-t-144 {margin-top: 144px;} 1361 | .m-t-145 {margin-top: 145px;} 1362 | .m-t-146 {margin-top: 146px;} 1363 | .m-t-147 {margin-top: 147px;} 1364 | .m-t-148 {margin-top: 148px;} 1365 | .m-t-149 {margin-top: 149px;} 1366 | .m-t-150 {margin-top: 150px;} 1367 | .m-t-151 {margin-top: 151px;} 1368 | .m-t-152 {margin-top: 152px;} 1369 | .m-t-153 {margin-top: 153px;} 1370 | .m-t-154 {margin-top: 154px;} 1371 | .m-t-155 {margin-top: 155px;} 1372 | .m-t-156 {margin-top: 156px;} 1373 | .m-t-157 {margin-top: 157px;} 1374 | .m-t-158 {margin-top: 158px;} 1375 | .m-t-159 {margin-top: 159px;} 1376 | .m-t-160 {margin-top: 160px;} 1377 | .m-t-161 {margin-top: 161px;} 1378 | .m-t-162 {margin-top: 162px;} 1379 | .m-t-163 {margin-top: 163px;} 1380 | .m-t-164 {margin-top: 164px;} 1381 | .m-t-165 {margin-top: 165px;} 1382 | .m-t-166 {margin-top: 166px;} 1383 | .m-t-167 {margin-top: 167px;} 1384 | .m-t-168 {margin-top: 168px;} 1385 | .m-t-169 {margin-top: 169px;} 1386 | .m-t-170 {margin-top: 170px;} 1387 | .m-t-171 {margin-top: 171px;} 1388 | .m-t-172 {margin-top: 172px;} 1389 | .m-t-173 {margin-top: 173px;} 1390 | .m-t-174 {margin-top: 174px;} 1391 | .m-t-175 {margin-top: 175px;} 1392 | .m-t-176 {margin-top: 176px;} 1393 | .m-t-177 {margin-top: 177px;} 1394 | .m-t-178 {margin-top: 178px;} 1395 | .m-t-179 {margin-top: 179px;} 1396 | .m-t-180 {margin-top: 180px;} 1397 | .m-t-181 {margin-top: 181px;} 1398 | .m-t-182 {margin-top: 182px;} 1399 | .m-t-183 {margin-top: 183px;} 1400 | .m-t-184 {margin-top: 184px;} 1401 | .m-t-185 {margin-top: 185px;} 1402 | .m-t-186 {margin-top: 186px;} 1403 | .m-t-187 {margin-top: 187px;} 1404 | .m-t-188 {margin-top: 188px;} 1405 | .m-t-189 {margin-top: 189px;} 1406 | .m-t-190 {margin-top: 190px;} 1407 | .m-t-191 {margin-top: 191px;} 1408 | .m-t-192 {margin-top: 192px;} 1409 | .m-t-193 {margin-top: 193px;} 1410 | .m-t-194 {margin-top: 194px;} 1411 | .m-t-195 {margin-top: 195px;} 1412 | .m-t-196 {margin-top: 196px;} 1413 | .m-t-197 {margin-top: 197px;} 1414 | .m-t-198 {margin-top: 198px;} 1415 | .m-t-199 {margin-top: 199px;} 1416 | .m-t-200 {margin-top: 200px;} 1417 | .m-t-201 {margin-top: 201px;} 1418 | .m-t-202 {margin-top: 202px;} 1419 | .m-t-203 {margin-top: 203px;} 1420 | .m-t-204 {margin-top: 204px;} 1421 | .m-t-205 {margin-top: 205px;} 1422 | .m-t-206 {margin-top: 206px;} 1423 | .m-t-207 {margin-top: 207px;} 1424 | .m-t-208 {margin-top: 208px;} 1425 | .m-t-209 {margin-top: 209px;} 1426 | .m-t-210 {margin-top: 210px;} 1427 | .m-t-211 {margin-top: 211px;} 1428 | .m-t-212 {margin-top: 212px;} 1429 | .m-t-213 {margin-top: 213px;} 1430 | .m-t-214 {margin-top: 214px;} 1431 | .m-t-215 {margin-top: 215px;} 1432 | .m-t-216 {margin-top: 216px;} 1433 | .m-t-217 {margin-top: 217px;} 1434 | .m-t-218 {margin-top: 218px;} 1435 | .m-t-219 {margin-top: 219px;} 1436 | .m-t-220 {margin-top: 220px;} 1437 | .m-t-221 {margin-top: 221px;} 1438 | .m-t-222 {margin-top: 222px;} 1439 | .m-t-223 {margin-top: 223px;} 1440 | .m-t-224 {margin-top: 224px;} 1441 | .m-t-225 {margin-top: 225px;} 1442 | .m-t-226 {margin-top: 226px;} 1443 | .m-t-227 {margin-top: 227px;} 1444 | .m-t-228 {margin-top: 228px;} 1445 | .m-t-229 {margin-top: 229px;} 1446 | .m-t-230 {margin-top: 230px;} 1447 | .m-t-231 {margin-top: 231px;} 1448 | .m-t-232 {margin-top: 232px;} 1449 | .m-t-233 {margin-top: 233px;} 1450 | .m-t-234 {margin-top: 234px;} 1451 | .m-t-235 {margin-top: 235px;} 1452 | .m-t-236 {margin-top: 236px;} 1453 | .m-t-237 {margin-top: 237px;} 1454 | .m-t-238 {margin-top: 238px;} 1455 | .m-t-239 {margin-top: 239px;} 1456 | .m-t-240 {margin-top: 240px;} 1457 | .m-t-241 {margin-top: 241px;} 1458 | .m-t-242 {margin-top: 242px;} 1459 | .m-t-243 {margin-top: 243px;} 1460 | .m-t-244 {margin-top: 244px;} 1461 | .m-t-245 {margin-top: 245px;} 1462 | .m-t-246 {margin-top: 246px;} 1463 | .m-t-247 {margin-top: 247px;} 1464 | .m-t-248 {margin-top: 248px;} 1465 | .m-t-249 {margin-top: 249px;} 1466 | .m-t-250 {margin-top: 250px;} 1467 | .m-b-0 {margin-bottom: 0px;} 1468 | .m-b-1 {margin-bottom: 1px;} 1469 | .m-b-2 {margin-bottom: 2px;} 1470 | .m-b-3 {margin-bottom: 3px;} 1471 | .m-b-4 {margin-bottom: 4px;} 1472 | .m-b-5 {margin-bottom: 5px;} 1473 | .m-b-6 {margin-bottom: 6px;} 1474 | .m-b-7 {margin-bottom: 7px;} 1475 | .m-b-8 {margin-bottom: 8px;} 1476 | .m-b-9 {margin-bottom: 9px;} 1477 | .m-b-10 {margin-bottom: 10px;} 1478 | .m-b-11 {margin-bottom: 11px;} 1479 | .m-b-12 {margin-bottom: 12px;} 1480 | .m-b-13 {margin-bottom: 13px;} 1481 | .m-b-14 {margin-bottom: 14px;} 1482 | .m-b-15 {margin-bottom: 15px;} 1483 | .m-b-16 {margin-bottom: 16px;} 1484 | .m-b-17 {margin-bottom: 17px;} 1485 | .m-b-18 {margin-bottom: 18px;} 1486 | .m-b-19 {margin-bottom: 19px;} 1487 | .m-b-20 {margin-bottom: 20px;} 1488 | .m-b-21 {margin-bottom: 21px;} 1489 | .m-b-22 {margin-bottom: 22px;} 1490 | .m-b-23 {margin-bottom: 23px;} 1491 | .m-b-24 {margin-bottom: 24px;} 1492 | .m-b-25 {margin-bottom: 25px;} 1493 | .m-b-26 {margin-bottom: 26px;} 1494 | .m-b-27 {margin-bottom: 27px;} 1495 | .m-b-28 {margin-bottom: 28px;} 1496 | .m-b-29 {margin-bottom: 29px;} 1497 | .m-b-30 {margin-bottom: 30px;} 1498 | .m-b-31 {margin-bottom: 31px;} 1499 | .m-b-32 {margin-bottom: 32px;} 1500 | .m-b-33 {margin-bottom: 33px;} 1501 | .m-b-34 {margin-bottom: 34px;} 1502 | .m-b-35 {margin-bottom: 35px;} 1503 | .m-b-36 {margin-bottom: 36px;} 1504 | .m-b-37 {margin-bottom: 37px;} 1505 | .m-b-38 {margin-bottom: 38px;} 1506 | .m-b-39 {margin-bottom: 39px;} 1507 | .m-b-40 {margin-bottom: 40px;} 1508 | .m-b-41 {margin-bottom: 41px;} 1509 | .m-b-42 {margin-bottom: 42px;} 1510 | .m-b-43 {margin-bottom: 43px;} 1511 | .m-b-44 {margin-bottom: 44px;} 1512 | .m-b-45 {margin-bottom: 45px;} 1513 | .m-b-46 {margin-bottom: 46px;} 1514 | .m-b-47 {margin-bottom: 47px;} 1515 | .m-b-48 {margin-bottom: 48px;} 1516 | .m-b-49 {margin-bottom: 49px;} 1517 | .m-b-50 {margin-bottom: 50px;} 1518 | .m-b-51 {margin-bottom: 51px;} 1519 | .m-b-52 {margin-bottom: 52px;} 1520 | .m-b-53 {margin-bottom: 53px;} 1521 | .m-b-54 {margin-bottom: 54px;} 1522 | .m-b-55 {margin-bottom: 55px;} 1523 | .m-b-56 {margin-bottom: 56px;} 1524 | .m-b-57 {margin-bottom: 57px;} 1525 | .m-b-58 {margin-bottom: 58px;} 1526 | .m-b-59 {margin-bottom: 59px;} 1527 | .m-b-60 {margin-bottom: 60px;} 1528 | .m-b-61 {margin-bottom: 61px;} 1529 | .m-b-62 {margin-bottom: 62px;} 1530 | .m-b-63 {margin-bottom: 63px;} 1531 | .m-b-64 {margin-bottom: 64px;} 1532 | .m-b-65 {margin-bottom: 65px;} 1533 | .m-b-66 {margin-bottom: 66px;} 1534 | .m-b-67 {margin-bottom: 67px;} 1535 | .m-b-68 {margin-bottom: 68px;} 1536 | .m-b-69 {margin-bottom: 69px;} 1537 | .m-b-70 {margin-bottom: 70px;} 1538 | .m-b-71 {margin-bottom: 71px;} 1539 | .m-b-72 {margin-bottom: 72px;} 1540 | .m-b-73 {margin-bottom: 73px;} 1541 | .m-b-74 {margin-bottom: 74px;} 1542 | .m-b-75 {margin-bottom: 75px;} 1543 | .m-b-76 {margin-bottom: 76px;} 1544 | .m-b-77 {margin-bottom: 77px;} 1545 | .m-b-78 {margin-bottom: 78px;} 1546 | .m-b-79 {margin-bottom: 79px;} 1547 | .m-b-80 {margin-bottom: 80px;} 1548 | .m-b-81 {margin-bottom: 81px;} 1549 | .m-b-82 {margin-bottom: 82px;} 1550 | .m-b-83 {margin-bottom: 83px;} 1551 | .m-b-84 {margin-bottom: 84px;} 1552 | .m-b-85 {margin-bottom: 85px;} 1553 | .m-b-86 {margin-bottom: 86px;} 1554 | .m-b-87 {margin-bottom: 87px;} 1555 | .m-b-88 {margin-bottom: 88px;} 1556 | .m-b-89 {margin-bottom: 89px;} 1557 | .m-b-90 {margin-bottom: 90px;} 1558 | .m-b-91 {margin-bottom: 91px;} 1559 | .m-b-92 {margin-bottom: 92px;} 1560 | .m-b-93 {margin-bottom: 93px;} 1561 | .m-b-94 {margin-bottom: 94px;} 1562 | .m-b-95 {margin-bottom: 95px;} 1563 | .m-b-96 {margin-bottom: 96px;} 1564 | .m-b-97 {margin-bottom: 97px;} 1565 | .m-b-98 {margin-bottom: 98px;} 1566 | .m-b-99 {margin-bottom: 99px;} 1567 | .m-b-100 {margin-bottom: 100px;} 1568 | .m-b-101 {margin-bottom: 101px;} 1569 | .m-b-102 {margin-bottom: 102px;} 1570 | .m-b-103 {margin-bottom: 103px;} 1571 | .m-b-104 {margin-bottom: 104px;} 1572 | .m-b-105 {margin-bottom: 105px;} 1573 | .m-b-106 {margin-bottom: 106px;} 1574 | .m-b-107 {margin-bottom: 107px;} 1575 | .m-b-108 {margin-bottom: 108px;} 1576 | .m-b-109 {margin-bottom: 109px;} 1577 | .m-b-110 {margin-bottom: 110px;} 1578 | .m-b-111 {margin-bottom: 111px;} 1579 | .m-b-112 {margin-bottom: 112px;} 1580 | .m-b-113 {margin-bottom: 113px;} 1581 | .m-b-114 {margin-bottom: 114px;} 1582 | .m-b-115 {margin-bottom: 115px;} 1583 | .m-b-116 {margin-bottom: 116px;} 1584 | .m-b-117 {margin-bottom: 117px;} 1585 | .m-b-118 {margin-bottom: 118px;} 1586 | .m-b-119 {margin-bottom: 119px;} 1587 | .m-b-120 {margin-bottom: 120px;} 1588 | .m-b-121 {margin-bottom: 121px;} 1589 | .m-b-122 {margin-bottom: 122px;} 1590 | .m-b-123 {margin-bottom: 123px;} 1591 | .m-b-124 {margin-bottom: 124px;} 1592 | .m-b-125 {margin-bottom: 125px;} 1593 | .m-b-126 {margin-bottom: 126px;} 1594 | .m-b-127 {margin-bottom: 127px;} 1595 | .m-b-128 {margin-bottom: 128px;} 1596 | .m-b-129 {margin-bottom: 129px;} 1597 | .m-b-130 {margin-bottom: 130px;} 1598 | .m-b-131 {margin-bottom: 131px;} 1599 | .m-b-132 {margin-bottom: 132px;} 1600 | .m-b-133 {margin-bottom: 133px;} 1601 | .m-b-134 {margin-bottom: 134px;} 1602 | .m-b-135 {margin-bottom: 135px;} 1603 | .m-b-136 {margin-bottom: 136px;} 1604 | .m-b-137 {margin-bottom: 137px;} 1605 | .m-b-138 {margin-bottom: 138px;} 1606 | .m-b-139 {margin-bottom: 139px;} 1607 | .m-b-140 {margin-bottom: 140px;} 1608 | .m-b-141 {margin-bottom: 141px;} 1609 | .m-b-142 {margin-bottom: 142px;} 1610 | .m-b-143 {margin-bottom: 143px;} 1611 | .m-b-144 {margin-bottom: 144px;} 1612 | .m-b-145 {margin-bottom: 145px;} 1613 | .m-b-146 {margin-bottom: 146px;} 1614 | .m-b-147 {margin-bottom: 147px;} 1615 | .m-b-148 {margin-bottom: 148px;} 1616 | .m-b-149 {margin-bottom: 149px;} 1617 | .m-b-150 {margin-bottom: 150px;} 1618 | .m-b-151 {margin-bottom: 151px;} 1619 | .m-b-152 {margin-bottom: 152px;} 1620 | .m-b-153 {margin-bottom: 153px;} 1621 | .m-b-154 {margin-bottom: 154px;} 1622 | .m-b-155 {margin-bottom: 155px;} 1623 | .m-b-156 {margin-bottom: 156px;} 1624 | .m-b-157 {margin-bottom: 157px;} 1625 | .m-b-158 {margin-bottom: 158px;} 1626 | .m-b-159 {margin-bottom: 159px;} 1627 | .m-b-160 {margin-bottom: 160px;} 1628 | .m-b-161 {margin-bottom: 161px;} 1629 | .m-b-162 {margin-bottom: 162px;} 1630 | .m-b-163 {margin-bottom: 163px;} 1631 | .m-b-164 {margin-bottom: 164px;} 1632 | .m-b-165 {margin-bottom: 165px;} 1633 | .m-b-166 {margin-bottom: 166px;} 1634 | .m-b-167 {margin-bottom: 167px;} 1635 | .m-b-168 {margin-bottom: 168px;} 1636 | .m-b-169 {margin-bottom: 169px;} 1637 | .m-b-170 {margin-bottom: 170px;} 1638 | .m-b-171 {margin-bottom: 171px;} 1639 | .m-b-172 {margin-bottom: 172px;} 1640 | .m-b-173 {margin-bottom: 173px;} 1641 | .m-b-174 {margin-bottom: 174px;} 1642 | .m-b-175 {margin-bottom: 175px;} 1643 | .m-b-176 {margin-bottom: 176px;} 1644 | .m-b-177 {margin-bottom: 177px;} 1645 | .m-b-178 {margin-bottom: 178px;} 1646 | .m-b-179 {margin-bottom: 179px;} 1647 | .m-b-180 {margin-bottom: 180px;} 1648 | .m-b-181 {margin-bottom: 181px;} 1649 | .m-b-182 {margin-bottom: 182px;} 1650 | .m-b-183 {margin-bottom: 183px;} 1651 | .m-b-184 {margin-bottom: 184px;} 1652 | .m-b-185 {margin-bottom: 185px;} 1653 | .m-b-186 {margin-bottom: 186px;} 1654 | .m-b-187 {margin-bottom: 187px;} 1655 | .m-b-188 {margin-bottom: 188px;} 1656 | .m-b-189 {margin-bottom: 189px;} 1657 | .m-b-190 {margin-bottom: 190px;} 1658 | .m-b-191 {margin-bottom: 191px;} 1659 | .m-b-192 {margin-bottom: 192px;} 1660 | .m-b-193 {margin-bottom: 193px;} 1661 | .m-b-194 {margin-bottom: 194px;} 1662 | .m-b-195 {margin-bottom: 195px;} 1663 | .m-b-196 {margin-bottom: 196px;} 1664 | .m-b-197 {margin-bottom: 197px;} 1665 | .m-b-198 {margin-bottom: 198px;} 1666 | .m-b-199 {margin-bottom: 199px;} 1667 | .m-b-200 {margin-bottom: 200px;} 1668 | .m-b-201 {margin-bottom: 201px;} 1669 | .m-b-202 {margin-bottom: 202px;} 1670 | .m-b-203 {margin-bottom: 203px;} 1671 | .m-b-204 {margin-bottom: 204px;} 1672 | .m-b-205 {margin-bottom: 205px;} 1673 | .m-b-206 {margin-bottom: 206px;} 1674 | .m-b-207 {margin-bottom: 207px;} 1675 | .m-b-208 {margin-bottom: 208px;} 1676 | .m-b-209 {margin-bottom: 209px;} 1677 | .m-b-210 {margin-bottom: 210px;} 1678 | .m-b-211 {margin-bottom: 211px;} 1679 | .m-b-212 {margin-bottom: 212px;} 1680 | .m-b-213 {margin-bottom: 213px;} 1681 | .m-b-214 {margin-bottom: 214px;} 1682 | .m-b-215 {margin-bottom: 215px;} 1683 | .m-b-216 {margin-bottom: 216px;} 1684 | .m-b-217 {margin-bottom: 217px;} 1685 | .m-b-218 {margin-bottom: 218px;} 1686 | .m-b-219 {margin-bottom: 219px;} 1687 | .m-b-220 {margin-bottom: 220px;} 1688 | .m-b-221 {margin-bottom: 221px;} 1689 | .m-b-222 {margin-bottom: 222px;} 1690 | .m-b-223 {margin-bottom: 223px;} 1691 | .m-b-224 {margin-bottom: 224px;} 1692 | .m-b-225 {margin-bottom: 225px;} 1693 | .m-b-226 {margin-bottom: 226px;} 1694 | .m-b-227 {margin-bottom: 227px;} 1695 | .m-b-228 {margin-bottom: 228px;} 1696 | .m-b-229 {margin-bottom: 229px;} 1697 | .m-b-230 {margin-bottom: 230px;} 1698 | .m-b-231 {margin-bottom: 231px;} 1699 | .m-b-232 {margin-bottom: 232px;} 1700 | .m-b-233 {margin-bottom: 233px;} 1701 | .m-b-234 {margin-bottom: 234px;} 1702 | .m-b-235 {margin-bottom: 235px;} 1703 | .m-b-236 {margin-bottom: 236px;} 1704 | .m-b-237 {margin-bottom: 237px;} 1705 | .m-b-238 {margin-bottom: 238px;} 1706 | .m-b-239 {margin-bottom: 239px;} 1707 | .m-b-240 {margin-bottom: 240px;} 1708 | .m-b-241 {margin-bottom: 241px;} 1709 | .m-b-242 {margin-bottom: 242px;} 1710 | .m-b-243 {margin-bottom: 243px;} 1711 | .m-b-244 {margin-bottom: 244px;} 1712 | .m-b-245 {margin-bottom: 245px;} 1713 | .m-b-246 {margin-bottom: 246px;} 1714 | .m-b-247 {margin-bottom: 247px;} 1715 | .m-b-248 {margin-bottom: 248px;} 1716 | .m-b-249 {margin-bottom: 249px;} 1717 | .m-b-250 {margin-bottom: 250px;} 1718 | .m-l-0 {margin-left: 0px;} 1719 | .m-l-1 {margin-left: 1px;} 1720 | .m-l-2 {margin-left: 2px;} 1721 | .m-l-3 {margin-left: 3px;} 1722 | .m-l-4 {margin-left: 4px;} 1723 | .m-l-5 {margin-left: 5px;} 1724 | .m-l-6 {margin-left: 6px;} 1725 | .m-l-7 {margin-left: 7px;} 1726 | .m-l-8 {margin-left: 8px;} 1727 | .m-l-9 {margin-left: 9px;} 1728 | .m-l-10 {margin-left: 10px;} 1729 | .m-l-11 {margin-left: 11px;} 1730 | .m-l-12 {margin-left: 12px;} 1731 | .m-l-13 {margin-left: 13px;} 1732 | .m-l-14 {margin-left: 14px;} 1733 | .m-l-15 {margin-left: 15px;} 1734 | .m-l-16 {margin-left: 16px;} 1735 | .m-l-17 {margin-left: 17px;} 1736 | .m-l-18 {margin-left: 18px;} 1737 | .m-l-19 {margin-left: 19px;} 1738 | .m-l-20 {margin-left: 20px;} 1739 | .m-l-21 {margin-left: 21px;} 1740 | .m-l-22 {margin-left: 22px;} 1741 | .m-l-23 {margin-left: 23px;} 1742 | .m-l-24 {margin-left: 24px;} 1743 | .m-l-25 {margin-left: 25px;} 1744 | .m-l-26 {margin-left: 26px;} 1745 | .m-l-27 {margin-left: 27px;} 1746 | .m-l-28 {margin-left: 28px;} 1747 | .m-l-29 {margin-left: 29px;} 1748 | .m-l-30 {margin-left: 30px;} 1749 | .m-l-31 {margin-left: 31px;} 1750 | .m-l-32 {margin-left: 32px;} 1751 | .m-l-33 {margin-left: 33px;} 1752 | .m-l-34 {margin-left: 34px;} 1753 | .m-l-35 {margin-left: 35px;} 1754 | .m-l-36 {margin-left: 36px;} 1755 | .m-l-37 {margin-left: 37px;} 1756 | .m-l-38 {margin-left: 38px;} 1757 | .m-l-39 {margin-left: 39px;} 1758 | .m-l-40 {margin-left: 40px;} 1759 | .m-l-41 {margin-left: 41px;} 1760 | .m-l-42 {margin-left: 42px;} 1761 | .m-l-43 {margin-left: 43px;} 1762 | .m-l-44 {margin-left: 44px;} 1763 | .m-l-45 {margin-left: 45px;} 1764 | .m-l-46 {margin-left: 46px;} 1765 | .m-l-47 {margin-left: 47px;} 1766 | .m-l-48 {margin-left: 48px;} 1767 | .m-l-49 {margin-left: 49px;} 1768 | .m-l-50 {margin-left: 50px;} 1769 | .m-l-51 {margin-left: 51px;} 1770 | .m-l-52 {margin-left: 52px;} 1771 | .m-l-53 {margin-left: 53px;} 1772 | .m-l-54 {margin-left: 54px;} 1773 | .m-l-55 {margin-left: 55px;} 1774 | .m-l-56 {margin-left: 56px;} 1775 | .m-l-57 {margin-left: 57px;} 1776 | .m-l-58 {margin-left: 58px;} 1777 | .m-l-59 {margin-left: 59px;} 1778 | .m-l-60 {margin-left: 60px;} 1779 | .m-l-61 {margin-left: 61px;} 1780 | .m-l-62 {margin-left: 62px;} 1781 | .m-l-63 {margin-left: 63px;} 1782 | .m-l-64 {margin-left: 64px;} 1783 | .m-l-65 {margin-left: 65px;} 1784 | .m-l-66 {margin-left: 66px;} 1785 | .m-l-67 {margin-left: 67px;} 1786 | .m-l-68 {margin-left: 68px;} 1787 | .m-l-69 {margin-left: 69px;} 1788 | .m-l-70 {margin-left: 70px;} 1789 | .m-l-71 {margin-left: 71px;} 1790 | .m-l-72 {margin-left: 72px;} 1791 | .m-l-73 {margin-left: 73px;} 1792 | .m-l-74 {margin-left: 74px;} 1793 | .m-l-75 {margin-left: 75px;} 1794 | .m-l-76 {margin-left: 76px;} 1795 | .m-l-77 {margin-left: 77px;} 1796 | .m-l-78 {margin-left: 78px;} 1797 | .m-l-79 {margin-left: 79px;} 1798 | .m-l-80 {margin-left: 80px;} 1799 | .m-l-81 {margin-left: 81px;} 1800 | .m-l-82 {margin-left: 82px;} 1801 | .m-l-83 {margin-left: 83px;} 1802 | .m-l-84 {margin-left: 84px;} 1803 | .m-l-85 {margin-left: 85px;} 1804 | .m-l-86 {margin-left: 86px;} 1805 | .m-l-87 {margin-left: 87px;} 1806 | .m-l-88 {margin-left: 88px;} 1807 | .m-l-89 {margin-left: 89px;} 1808 | .m-l-90 {margin-left: 90px;} 1809 | .m-l-91 {margin-left: 91px;} 1810 | .m-l-92 {margin-left: 92px;} 1811 | .m-l-93 {margin-left: 93px;} 1812 | .m-l-94 {margin-left: 94px;} 1813 | .m-l-95 {margin-left: 95px;} 1814 | .m-l-96 {margin-left: 96px;} 1815 | .m-l-97 {margin-left: 97px;} 1816 | .m-l-98 {margin-left: 98px;} 1817 | .m-l-99 {margin-left: 99px;} 1818 | .m-l-100 {margin-left: 100px;} 1819 | .m-l-101 {margin-left: 101px;} 1820 | .m-l-102 {margin-left: 102px;} 1821 | .m-l-103 {margin-left: 103px;} 1822 | .m-l-104 {margin-left: 104px;} 1823 | .m-l-105 {margin-left: 105px;} 1824 | .m-l-106 {margin-left: 106px;} 1825 | .m-l-107 {margin-left: 107px;} 1826 | .m-l-108 {margin-left: 108px;} 1827 | .m-l-109 {margin-left: 109px;} 1828 | .m-l-110 {margin-left: 110px;} 1829 | .m-l-111 {margin-left: 111px;} 1830 | .m-l-112 {margin-left: 112px;} 1831 | .m-l-113 {margin-left: 113px;} 1832 | .m-l-114 {margin-left: 114px;} 1833 | .m-l-115 {margin-left: 115px;} 1834 | .m-l-116 {margin-left: 116px;} 1835 | .m-l-117 {margin-left: 117px;} 1836 | .m-l-118 {margin-left: 118px;} 1837 | .m-l-119 {margin-left: 119px;} 1838 | .m-l-120 {margin-left: 120px;} 1839 | .m-l-121 {margin-left: 121px;} 1840 | .m-l-122 {margin-left: 122px;} 1841 | .m-l-123 {margin-left: 123px;} 1842 | .m-l-124 {margin-left: 124px;} 1843 | .m-l-125 {margin-left: 125px;} 1844 | .m-l-126 {margin-left: 126px;} 1845 | .m-l-127 {margin-left: 127px;} 1846 | .m-l-128 {margin-left: 128px;} 1847 | .m-l-129 {margin-left: 129px;} 1848 | .m-l-130 {margin-left: 130px;} 1849 | .m-l-131 {margin-left: 131px;} 1850 | .m-l-132 {margin-left: 132px;} 1851 | .m-l-133 {margin-left: 133px;} 1852 | .m-l-134 {margin-left: 134px;} 1853 | .m-l-135 {margin-left: 135px;} 1854 | .m-l-136 {margin-left: 136px;} 1855 | .m-l-137 {margin-left: 137px;} 1856 | .m-l-138 {margin-left: 138px;} 1857 | .m-l-139 {margin-left: 139px;} 1858 | .m-l-140 {margin-left: 140px;} 1859 | .m-l-141 {margin-left: 141px;} 1860 | .m-l-142 {margin-left: 142px;} 1861 | .m-l-143 {margin-left: 143px;} 1862 | .m-l-144 {margin-left: 144px;} 1863 | .m-l-145 {margin-left: 145px;} 1864 | .m-l-146 {margin-left: 146px;} 1865 | .m-l-147 {margin-left: 147px;} 1866 | .m-l-148 {margin-left: 148px;} 1867 | .m-l-149 {margin-left: 149px;} 1868 | .m-l-150 {margin-left: 150px;} 1869 | .m-l-151 {margin-left: 151px;} 1870 | .m-l-152 {margin-left: 152px;} 1871 | .m-l-153 {margin-left: 153px;} 1872 | .m-l-154 {margin-left: 154px;} 1873 | .m-l-155 {margin-left: 155px;} 1874 | .m-l-156 {margin-left: 156px;} 1875 | .m-l-157 {margin-left: 157px;} 1876 | .m-l-158 {margin-left: 158px;} 1877 | .m-l-159 {margin-left: 159px;} 1878 | .m-l-160 {margin-left: 160px;} 1879 | .m-l-161 {margin-left: 161px;} 1880 | .m-l-162 {margin-left: 162px;} 1881 | .m-l-163 {margin-left: 163px;} 1882 | .m-l-164 {margin-left: 164px;} 1883 | .m-l-165 {margin-left: 165px;} 1884 | .m-l-166 {margin-left: 166px;} 1885 | .m-l-167 {margin-left: 167px;} 1886 | .m-l-168 {margin-left: 168px;} 1887 | .m-l-169 {margin-left: 169px;} 1888 | .m-l-170 {margin-left: 170px;} 1889 | .m-l-171 {margin-left: 171px;} 1890 | .m-l-172 {margin-left: 172px;} 1891 | .m-l-173 {margin-left: 173px;} 1892 | .m-l-174 {margin-left: 174px;} 1893 | .m-l-175 {margin-left: 175px;} 1894 | .m-l-176 {margin-left: 176px;} 1895 | .m-l-177 {margin-left: 177px;} 1896 | .m-l-178 {margin-left: 178px;} 1897 | .m-l-179 {margin-left: 179px;} 1898 | .m-l-180 {margin-left: 180px;} 1899 | .m-l-181 {margin-left: 181px;} 1900 | .m-l-182 {margin-left: 182px;} 1901 | .m-l-183 {margin-left: 183px;} 1902 | .m-l-184 {margin-left: 184px;} 1903 | .m-l-185 {margin-left: 185px;} 1904 | .m-l-186 {margin-left: 186px;} 1905 | .m-l-187 {margin-left: 187px;} 1906 | .m-l-188 {margin-left: 188px;} 1907 | .m-l-189 {margin-left: 189px;} 1908 | .m-l-190 {margin-left: 190px;} 1909 | .m-l-191 {margin-left: 191px;} 1910 | .m-l-192 {margin-left: 192px;} 1911 | .m-l-193 {margin-left: 193px;} 1912 | .m-l-194 {margin-left: 194px;} 1913 | .m-l-195 {margin-left: 195px;} 1914 | .m-l-196 {margin-left: 196px;} 1915 | .m-l-197 {margin-left: 197px;} 1916 | .m-l-198 {margin-left: 198px;} 1917 | .m-l-199 {margin-left: 199px;} 1918 | .m-l-200 {margin-left: 200px;} 1919 | .m-l-201 {margin-left: 201px;} 1920 | .m-l-202 {margin-left: 202px;} 1921 | .m-l-203 {margin-left: 203px;} 1922 | .m-l-204 {margin-left: 204px;} 1923 | .m-l-205 {margin-left: 205px;} 1924 | .m-l-206 {margin-left: 206px;} 1925 | .m-l-207 {margin-left: 207px;} 1926 | .m-l-208 {margin-left: 208px;} 1927 | .m-l-209 {margin-left: 209px;} 1928 | .m-l-210 {margin-left: 210px;} 1929 | .m-l-211 {margin-left: 211px;} 1930 | .m-l-212 {margin-left: 212px;} 1931 | .m-l-213 {margin-left: 213px;} 1932 | .m-l-214 {margin-left: 214px;} 1933 | .m-l-215 {margin-left: 215px;} 1934 | .m-l-216 {margin-left: 216px;} 1935 | .m-l-217 {margin-left: 217px;} 1936 | .m-l-218 {margin-left: 218px;} 1937 | .m-l-219 {margin-left: 219px;} 1938 | .m-l-220 {margin-left: 220px;} 1939 | .m-l-221 {margin-left: 221px;} 1940 | .m-l-222 {margin-left: 222px;} 1941 | .m-l-223 {margin-left: 223px;} 1942 | .m-l-224 {margin-left: 224px;} 1943 | .m-l-225 {margin-left: 225px;} 1944 | .m-l-226 {margin-left: 226px;} 1945 | .m-l-227 {margin-left: 227px;} 1946 | .m-l-228 {margin-left: 228px;} 1947 | .m-l-229 {margin-left: 229px;} 1948 | .m-l-230 {margin-left: 230px;} 1949 | .m-l-231 {margin-left: 231px;} 1950 | .m-l-232 {margin-left: 232px;} 1951 | .m-l-233 {margin-left: 233px;} 1952 | .m-l-234 {margin-left: 234px;} 1953 | .m-l-235 {margin-left: 235px;} 1954 | .m-l-236 {margin-left: 236px;} 1955 | .m-l-237 {margin-left: 237px;} 1956 | .m-l-238 {margin-left: 238px;} 1957 | .m-l-239 {margin-left: 239px;} 1958 | .m-l-240 {margin-left: 240px;} 1959 | .m-l-241 {margin-left: 241px;} 1960 | .m-l-242 {margin-left: 242px;} 1961 | .m-l-243 {margin-left: 243px;} 1962 | .m-l-244 {margin-left: 244px;} 1963 | .m-l-245 {margin-left: 245px;} 1964 | .m-l-246 {margin-left: 246px;} 1965 | .m-l-247 {margin-left: 247px;} 1966 | .m-l-248 {margin-left: 248px;} 1967 | .m-l-249 {margin-left: 249px;} 1968 | .m-l-250 {margin-left: 250px;} 1969 | .m-r-0 {margin-right: 0px;} 1970 | .m-r-1 {margin-right: 1px;} 1971 | .m-r-2 {margin-right: 2px;} 1972 | .m-r-3 {margin-right: 3px;} 1973 | .m-r-4 {margin-right: 4px;} 1974 | .m-r-5 {margin-right: 5px;} 1975 | .m-r-6 {margin-right: 6px;} 1976 | .m-r-7 {margin-right: 7px;} 1977 | .m-r-8 {margin-right: 8px;} 1978 | .m-r-9 {margin-right: 9px;} 1979 | .m-r-10 {margin-right: 10px;} 1980 | .m-r-11 {margin-right: 11px;} 1981 | .m-r-12 {margin-right: 12px;} 1982 | .m-r-13 {margin-right: 13px;} 1983 | .m-r-14 {margin-right: 14px;} 1984 | .m-r-15 {margin-right: 15px;} 1985 | .m-r-16 {margin-right: 16px;} 1986 | .m-r-17 {margin-right: 17px;} 1987 | .m-r-18 {margin-right: 18px;} 1988 | .m-r-19 {margin-right: 19px;} 1989 | .m-r-20 {margin-right: 20px;} 1990 | .m-r-21 {margin-right: 21px;} 1991 | .m-r-22 {margin-right: 22px;} 1992 | .m-r-23 {margin-right: 23px;} 1993 | .m-r-24 {margin-right: 24px;} 1994 | .m-r-25 {margin-right: 25px;} 1995 | .m-r-26 {margin-right: 26px;} 1996 | .m-r-27 {margin-right: 27px;} 1997 | .m-r-28 {margin-right: 28px;} 1998 | .m-r-29 {margin-right: 29px;} 1999 | .m-r-30 {margin-right: 30px;} 2000 | .m-r-31 {margin-right: 31px;} 2001 | .m-r-32 {margin-right: 32px;} 2002 | .m-r-33 {margin-right: 33px;} 2003 | .m-r-34 {margin-right: 34px;} 2004 | .m-r-35 {margin-right: 35px;} 2005 | .m-r-36 {margin-right: 36px;} 2006 | .m-r-37 {margin-right: 37px;} 2007 | .m-r-38 {margin-right: 38px;} 2008 | .m-r-39 {margin-right: 39px;} 2009 | .m-r-40 {margin-right: 40px;} 2010 | .m-r-41 {margin-right: 41px;} 2011 | .m-r-42 {margin-right: 42px;} 2012 | .m-r-43 {margin-right: 43px;} 2013 | .m-r-44 {margin-right: 44px;} 2014 | .m-r-45 {margin-right: 45px;} 2015 | .m-r-46 {margin-right: 46px;} 2016 | .m-r-47 {margin-right: 47px;} 2017 | .m-r-48 {margin-right: 48px;} 2018 | .m-r-49 {margin-right: 49px;} 2019 | .m-r-50 {margin-right: 50px;} 2020 | .m-r-51 {margin-right: 51px;} 2021 | .m-r-52 {margin-right: 52px;} 2022 | .m-r-53 {margin-right: 53px;} 2023 | .m-r-54 {margin-right: 54px;} 2024 | .m-r-55 {margin-right: 55px;} 2025 | .m-r-56 {margin-right: 56px;} 2026 | .m-r-57 {margin-right: 57px;} 2027 | .m-r-58 {margin-right: 58px;} 2028 | .m-r-59 {margin-right: 59px;} 2029 | .m-r-60 {margin-right: 60px;} 2030 | .m-r-61 {margin-right: 61px;} 2031 | .m-r-62 {margin-right: 62px;} 2032 | .m-r-63 {margin-right: 63px;} 2033 | .m-r-64 {margin-right: 64px;} 2034 | .m-r-65 {margin-right: 65px;} 2035 | .m-r-66 {margin-right: 66px;} 2036 | .m-r-67 {margin-right: 67px;} 2037 | .m-r-68 {margin-right: 68px;} 2038 | .m-r-69 {margin-right: 69px;} 2039 | .m-r-70 {margin-right: 70px;} 2040 | .m-r-71 {margin-right: 71px;} 2041 | .m-r-72 {margin-right: 72px;} 2042 | .m-r-73 {margin-right: 73px;} 2043 | .m-r-74 {margin-right: 74px;} 2044 | .m-r-75 {margin-right: 75px;} 2045 | .m-r-76 {margin-right: 76px;} 2046 | .m-r-77 {margin-right: 77px;} 2047 | .m-r-78 {margin-right: 78px;} 2048 | .m-r-79 {margin-right: 79px;} 2049 | .m-r-80 {margin-right: 80px;} 2050 | .m-r-81 {margin-right: 81px;} 2051 | .m-r-82 {margin-right: 82px;} 2052 | .m-r-83 {margin-right: 83px;} 2053 | .m-r-84 {margin-right: 84px;} 2054 | .m-r-85 {margin-right: 85px;} 2055 | .m-r-86 {margin-right: 86px;} 2056 | .m-r-87 {margin-right: 87px;} 2057 | .m-r-88 {margin-right: 88px;} 2058 | .m-r-89 {margin-right: 89px;} 2059 | .m-r-90 {margin-right: 90px;} 2060 | .m-r-91 {margin-right: 91px;} 2061 | .m-r-92 {margin-right: 92px;} 2062 | .m-r-93 {margin-right: 93px;} 2063 | .m-r-94 {margin-right: 94px;} 2064 | .m-r-95 {margin-right: 95px;} 2065 | .m-r-96 {margin-right: 96px;} 2066 | .m-r-97 {margin-right: 97px;} 2067 | .m-r-98 {margin-right: 98px;} 2068 | .m-r-99 {margin-right: 99px;} 2069 | .m-r-100 {margin-right: 100px;} 2070 | .m-r-101 {margin-right: 101px;} 2071 | .m-r-102 {margin-right: 102px;} 2072 | .m-r-103 {margin-right: 103px;} 2073 | .m-r-104 {margin-right: 104px;} 2074 | .m-r-105 {margin-right: 105px;} 2075 | .m-r-106 {margin-right: 106px;} 2076 | .m-r-107 {margin-right: 107px;} 2077 | .m-r-108 {margin-right: 108px;} 2078 | .m-r-109 {margin-right: 109px;} 2079 | .m-r-110 {margin-right: 110px;} 2080 | .m-r-111 {margin-right: 111px;} 2081 | .m-r-112 {margin-right: 112px;} 2082 | .m-r-113 {margin-right: 113px;} 2083 | .m-r-114 {margin-right: 114px;} 2084 | .m-r-115 {margin-right: 115px;} 2085 | .m-r-116 {margin-right: 116px;} 2086 | .m-r-117 {margin-right: 117px;} 2087 | .m-r-118 {margin-right: 118px;} 2088 | .m-r-119 {margin-right: 119px;} 2089 | .m-r-120 {margin-right: 120px;} 2090 | .m-r-121 {margin-right: 121px;} 2091 | .m-r-122 {margin-right: 122px;} 2092 | .m-r-123 {margin-right: 123px;} 2093 | .m-r-124 {margin-right: 124px;} 2094 | .m-r-125 {margin-right: 125px;} 2095 | .m-r-126 {margin-right: 126px;} 2096 | .m-r-127 {margin-right: 127px;} 2097 | .m-r-128 {margin-right: 128px;} 2098 | .m-r-129 {margin-right: 129px;} 2099 | .m-r-130 {margin-right: 130px;} 2100 | .m-r-131 {margin-right: 131px;} 2101 | .m-r-132 {margin-right: 132px;} 2102 | .m-r-133 {margin-right: 133px;} 2103 | .m-r-134 {margin-right: 134px;} 2104 | .m-r-135 {margin-right: 135px;} 2105 | .m-r-136 {margin-right: 136px;} 2106 | .m-r-137 {margin-right: 137px;} 2107 | .m-r-138 {margin-right: 138px;} 2108 | .m-r-139 {margin-right: 139px;} 2109 | .m-r-140 {margin-right: 140px;} 2110 | .m-r-141 {margin-right: 141px;} 2111 | .m-r-142 {margin-right: 142px;} 2112 | .m-r-143 {margin-right: 143px;} 2113 | .m-r-144 {margin-right: 144px;} 2114 | .m-r-145 {margin-right: 145px;} 2115 | .m-r-146 {margin-right: 146px;} 2116 | .m-r-147 {margin-right: 147px;} 2117 | .m-r-148 {margin-right: 148px;} 2118 | .m-r-149 {margin-right: 149px;} 2119 | .m-r-150 {margin-right: 150px;} 2120 | .m-r-151 {margin-right: 151px;} 2121 | .m-r-152 {margin-right: 152px;} 2122 | .m-r-153 {margin-right: 153px;} 2123 | .m-r-154 {margin-right: 154px;} 2124 | .m-r-155 {margin-right: 155px;} 2125 | .m-r-156 {margin-right: 156px;} 2126 | .m-r-157 {margin-right: 157px;} 2127 | .m-r-158 {margin-right: 158px;} 2128 | .m-r-159 {margin-right: 159px;} 2129 | .m-r-160 {margin-right: 160px;} 2130 | .m-r-161 {margin-right: 161px;} 2131 | .m-r-162 {margin-right: 162px;} 2132 | .m-r-163 {margin-right: 163px;} 2133 | .m-r-164 {margin-right: 164px;} 2134 | .m-r-165 {margin-right: 165px;} 2135 | .m-r-166 {margin-right: 166px;} 2136 | .m-r-167 {margin-right: 167px;} 2137 | .m-r-168 {margin-right: 168px;} 2138 | .m-r-169 {margin-right: 169px;} 2139 | .m-r-170 {margin-right: 170px;} 2140 | .m-r-171 {margin-right: 171px;} 2141 | .m-r-172 {margin-right: 172px;} 2142 | .m-r-173 {margin-right: 173px;} 2143 | .m-r-174 {margin-right: 174px;} 2144 | .m-r-175 {margin-right: 175px;} 2145 | .m-r-176 {margin-right: 176px;} 2146 | .m-r-177 {margin-right: 177px;} 2147 | .m-r-178 {margin-right: 178px;} 2148 | .m-r-179 {margin-right: 179px;} 2149 | .m-r-180 {margin-right: 180px;} 2150 | .m-r-181 {margin-right: 181px;} 2151 | .m-r-182 {margin-right: 182px;} 2152 | .m-r-183 {margin-right: 183px;} 2153 | .m-r-184 {margin-right: 184px;} 2154 | .m-r-185 {margin-right: 185px;} 2155 | .m-r-186 {margin-right: 186px;} 2156 | .m-r-187 {margin-right: 187px;} 2157 | .m-r-188 {margin-right: 188px;} 2158 | .m-r-189 {margin-right: 189px;} 2159 | .m-r-190 {margin-right: 190px;} 2160 | .m-r-191 {margin-right: 191px;} 2161 | .m-r-192 {margin-right: 192px;} 2162 | .m-r-193 {margin-right: 193px;} 2163 | .m-r-194 {margin-right: 194px;} 2164 | .m-r-195 {margin-right: 195px;} 2165 | .m-r-196 {margin-right: 196px;} 2166 | .m-r-197 {margin-right: 197px;} 2167 | .m-r-198 {margin-right: 198px;} 2168 | .m-r-199 {margin-right: 199px;} 2169 | .m-r-200 {margin-right: 200px;} 2170 | .m-r-201 {margin-right: 201px;} 2171 | .m-r-202 {margin-right: 202px;} 2172 | .m-r-203 {margin-right: 203px;} 2173 | .m-r-204 {margin-right: 204px;} 2174 | .m-r-205 {margin-right: 205px;} 2175 | .m-r-206 {margin-right: 206px;} 2176 | .m-r-207 {margin-right: 207px;} 2177 | .m-r-208 {margin-right: 208px;} 2178 | .m-r-209 {margin-right: 209px;} 2179 | .m-r-210 {margin-right: 210px;} 2180 | .m-r-211 {margin-right: 211px;} 2181 | .m-r-212 {margin-right: 212px;} 2182 | .m-r-213 {margin-right: 213px;} 2183 | .m-r-214 {margin-right: 214px;} 2184 | .m-r-215 {margin-right: 215px;} 2185 | .m-r-216 {margin-right: 216px;} 2186 | .m-r-217 {margin-right: 217px;} 2187 | .m-r-218 {margin-right: 218px;} 2188 | .m-r-219 {margin-right: 219px;} 2189 | .m-r-220 {margin-right: 220px;} 2190 | .m-r-221 {margin-right: 221px;} 2191 | .m-r-222 {margin-right: 222px;} 2192 | .m-r-223 {margin-right: 223px;} 2193 | .m-r-224 {margin-right: 224px;} 2194 | .m-r-225 {margin-right: 225px;} 2195 | .m-r-226 {margin-right: 226px;} 2196 | .m-r-227 {margin-right: 227px;} 2197 | .m-r-228 {margin-right: 228px;} 2198 | .m-r-229 {margin-right: 229px;} 2199 | .m-r-230 {margin-right: 230px;} 2200 | .m-r-231 {margin-right: 231px;} 2201 | .m-r-232 {margin-right: 232px;} 2202 | .m-r-233 {margin-right: 233px;} 2203 | .m-r-234 {margin-right: 234px;} 2204 | .m-r-235 {margin-right: 235px;} 2205 | .m-r-236 {margin-right: 236px;} 2206 | .m-r-237 {margin-right: 237px;} 2207 | .m-r-238 {margin-right: 238px;} 2208 | .m-r-239 {margin-right: 239px;} 2209 | .m-r-240 {margin-right: 240px;} 2210 | .m-r-241 {margin-right: 241px;} 2211 | .m-r-242 {margin-right: 242px;} 2212 | .m-r-243 {margin-right: 243px;} 2213 | .m-r-244 {margin-right: 244px;} 2214 | .m-r-245 {margin-right: 245px;} 2215 | .m-r-246 {margin-right: 246px;} 2216 | .m-r-247 {margin-right: 247px;} 2217 | .m-r-248 {margin-right: 248px;} 2218 | .m-r-249 {margin-right: 249px;} 2219 | .m-r-250 {margin-right: 250px;} 2220 | .m-l-r-auto {margin-left: auto; margin-right: auto;} 2221 | .m-l-auto {margin-left: auto;} 2222 | .m-r-auto {margin-right: auto;} 2223 | 2224 | 2225 | 2226 | /*[ TEXT ] 2227 | /////////////////////////////////////////////////////////// 2228 | */ 2229 | /* ------------------------------------ */ 2230 | .text-white {color: white;} 2231 | .text-black {color: black;} 2232 | 2233 | .text-hov-white:hover {color: white;} 2234 | 2235 | /* ------------------------------------ */ 2236 | .text-up {text-transform: uppercase;} 2237 | 2238 | /* ------------------------------------ */ 2239 | .text-center {text-align: center;} 2240 | .text-left {text-align: left;} 2241 | .text-right {text-align: right;} 2242 | .text-middle {vertical-align: middle;} 2243 | 2244 | /* ------------------------------------ */ 2245 | .lh-1-0 {line-height: 1.0;} 2246 | .lh-1-1 {line-height: 1.1;} 2247 | .lh-1-2 {line-height: 1.2;} 2248 | .lh-1-3 {line-height: 1.3;} 2249 | .lh-1-4 {line-height: 1.4;} 2250 | .lh-1-5 {line-height: 1.5;} 2251 | .lh-1-6 {line-height: 1.6;} 2252 | .lh-1-7 {line-height: 1.7;} 2253 | .lh-1-8 {line-height: 1.8;} 2254 | .lh-1-9 {line-height: 1.9;} 2255 | .lh-2-0 {line-height: 2.0;} 2256 | .lh-2-1 {line-height: 2.1;} 2257 | .lh-2-2 {line-height: 2.2;} 2258 | .lh-2-3 {line-height: 2.3;} 2259 | .lh-2-4 {line-height: 2.4;} 2260 | .lh-2-5 {line-height: 2.5;} 2261 | .lh-2-6 {line-height: 2.6;} 2262 | .lh-2-7 {line-height: 2.7;} 2263 | .lh-2-8 {line-height: 2.8;} 2264 | .lh-2-9 {line-height: 2.9;} 2265 | 2266 | 2267 | 2268 | 2269 | 2270 | /*[ SHAPE ] 2271 | /////////////////////////////////////////////////////////// 2272 | */ 2273 | 2274 | /*[ Display ] 2275 | ----------------------------------------------------------- 2276 | */ 2277 | .dis-none {display: none;} 2278 | .dis-block {display: block;} 2279 | .dis-inline {display: inline;} 2280 | .dis-inline-block {display: inline-block;} 2281 | .dis-flex { 2282 | display: -webkit-box; 2283 | display: -webkit-flex; 2284 | display: -moz-box; 2285 | display: -ms-flexbox; 2286 | display: flex; 2287 | } 2288 | 2289 | /*[ Position ] 2290 | ----------------------------------------------------------- 2291 | */ 2292 | .pos-relative {position: relative;} 2293 | .pos-absolute {position: absolute;} 2294 | .pos-fixed {position: fixed;} 2295 | 2296 | /*[ float ] 2297 | ----------------------------------------------------------- 2298 | */ 2299 | .float-l {float: left;} 2300 | .float-r {float: right;} 2301 | 2302 | 2303 | /*[ Width & Height ] 2304 | ----------------------------------------------------------- 2305 | */ 2306 | .sizefull { 2307 | width: 100%; 2308 | height: 100%; 2309 | } 2310 | .w-full {width: 100%;} 2311 | .h-full {height: 100%;} 2312 | .max-w-full {max-width: 100%;} 2313 | .max-h-full {max-height: 100%;} 2314 | .min-w-full {min-width: 100%;} 2315 | .min-h-full {min-height: 100%;} 2316 | 2317 | /*[ Top Bottom Left Right ] 2318 | ----------------------------------------------------------- 2319 | */ 2320 | .top-0 {top: 0;} 2321 | .bottom-0 {bottom: 0;} 2322 | .left-0 {left: 0;} 2323 | .right-0 {right: 0;} 2324 | 2325 | .top-auto {top: auto;} 2326 | .bottom-auto {bottom: auto;} 2327 | .left-auto {left: auto;} 2328 | .right-auto {right: auto;} 2329 | 2330 | 2331 | /*[ Opacity ] 2332 | ----------------------------------------------------------- 2333 | */ 2334 | .op-0-0 {opacity: 0;} 2335 | .op-0-1 {opacity: 0.1;} 2336 | .op-0-2 {opacity: 0.2;} 2337 | .op-0-3 {opacity: 0.3;} 2338 | .op-0-4 {opacity: 0.4;} 2339 | .op-0-5 {opacity: 0.5;} 2340 | .op-0-6 {opacity: 0.6;} 2341 | .op-0-7 {opacity: 0.7;} 2342 | .op-0-8 {opacity: 0.8;} 2343 | .op-0-9 {opacity: 0.9;} 2344 | .op-1-0 {opacity: 1;} 2345 | 2346 | /*[ Background ] 2347 | ----------------------------------------------------------- 2348 | */ 2349 | .bgwhite {background-color: white;} 2350 | .bgblack {background-color: black;} 2351 | 2352 | 2353 | 2354 | /*[ Wrap Picture ] 2355 | ----------------------------------------------------------- 2356 | */ 2357 | .wrap-pic-w img {width: 100%;} 2358 | .wrap-pic-max-w img {max-width: 100%;} 2359 | 2360 | /* ------------------------------------ */ 2361 | .wrap-pic-h img {height: 100%;} 2362 | .wrap-pic-max-h img {max-height: 100%;} 2363 | 2364 | /* ------------------------------------ */ 2365 | .wrap-pic-cir { 2366 | border-radius: 50%; 2367 | overflow: hidden; 2368 | } 2369 | .wrap-pic-cir img { 2370 | width: 100%; 2371 | } 2372 | 2373 | 2374 | 2375 | /*[ Hover ] 2376 | ----------------------------------------------------------- 2377 | */ 2378 | .hov-pointer:hover {cursor: pointer;} 2379 | 2380 | /* ------------------------------------ */ 2381 | .hov-img-zoom { 2382 | display: block; 2383 | overflow: hidden; 2384 | } 2385 | .hov-img-zoom img{ 2386 | width: 100%; 2387 | -webkit-transition: all 0.6s; 2388 | -o-transition: all 0.6s; 2389 | -moz-transition: all 0.6s; 2390 | transition: all 0.6s; 2391 | } 2392 | .hov-img-zoom:hover img { 2393 | -webkit-transform: scale(1.1); 2394 | -moz-transform: scale(1.1); 2395 | -ms-transform: scale(1.1); 2396 | -o-transform: scale(1.1); 2397 | transform: scale(1.1); 2398 | } 2399 | 2400 | 2401 | 2402 | /*[ ] 2403 | ----------------------------------------------------------- 2404 | */ 2405 | .bo-cir {border-radius: 50%;} 2406 | 2407 | .of-hidden {overflow: hidden;} 2408 | 2409 | .visible-false {visibility: hidden;} 2410 | .visible-true {visibility: visible;} 2411 | 2412 | 2413 | 2414 | 2415 | /*[ Transition ] 2416 | ----------------------------------------------------------- 2417 | */ 2418 | .trans-0-1 { 2419 | -webkit-transition: all 0.1s; 2420 | -o-transition: all 0.1s; 2421 | -moz-transition: all 0.1s; 2422 | transition: all 0.1s; 2423 | } 2424 | .trans-0-2 { 2425 | -webkit-transition: all 0.2s; 2426 | -o-transition: all 0.2s; 2427 | -moz-transition: all 0.2s; 2428 | transition: all 0.2s; 2429 | } 2430 | .trans-0-3 { 2431 | -webkit-transition: all 0.3s; 2432 | -o-transition: all 0.3s; 2433 | -moz-transition: all 0.3s; 2434 | transition: all 0.3s; 2435 | } 2436 | .trans-0-4 { 2437 | -webkit-transition: all 0.4s; 2438 | -o-transition: all 0.4s; 2439 | -moz-transition: all 0.4s; 2440 | transition: all 0.4s; 2441 | } 2442 | .trans-0-5 { 2443 | -webkit-transition: all 0.5s; 2444 | -o-transition: all 0.5s; 2445 | -moz-transition: all 0.5s; 2446 | transition: all 0.5s; 2447 | } 2448 | .trans-0-6 { 2449 | -webkit-transition: all 0.6s; 2450 | -o-transition: all 0.6s; 2451 | -moz-transition: all 0.6s; 2452 | transition: all 0.6s; 2453 | } 2454 | .trans-0-9 { 2455 | -webkit-transition: all 0.9s; 2456 | -o-transition: all 0.9s; 2457 | -moz-transition: all 0.9s; 2458 | transition: all 0.9s; 2459 | } 2460 | .trans-1-0 { 2461 | -webkit-transition: all 1s; 2462 | -o-transition: all 1s; 2463 | -moz-transition: all 1s; 2464 | transition: all 1s; 2465 | } 2466 | 2467 | 2468 | 2469 | /*[ Layout ] 2470 | /////////////////////////////////////////////////////////// 2471 | */ 2472 | 2473 | /*[ Flex ] 2474 | ----------------------------------------------------------- 2475 | */ 2476 | /* ------------------------------------ */ 2477 | .flex-w { 2478 | display: -webkit-box; 2479 | display: -webkit-flex; 2480 | display: -moz-box; 2481 | display: -ms-flexbox; 2482 | display: flex; 2483 | -webkit-flex-wrap: wrap; 2484 | -moz-flex-wrap: wrap; 2485 | -ms-flex-wrap: wrap; 2486 | -o-flex-wrap: wrap; 2487 | flex-wrap: wrap; 2488 | } 2489 | 2490 | /* ------------------------------------ */ 2491 | .flex-l { 2492 | display: -webkit-box; 2493 | display: -webkit-flex; 2494 | display: -moz-box; 2495 | display: -ms-flexbox; 2496 | display: flex; 2497 | justify-content: flex-start; 2498 | } 2499 | 2500 | .flex-r { 2501 | display: -webkit-box; 2502 | display: -webkit-flex; 2503 | display: -moz-box; 2504 | display: -ms-flexbox; 2505 | display: flex; 2506 | justify-content: flex-end; 2507 | } 2508 | 2509 | .flex-c { 2510 | display: -webkit-box; 2511 | display: -webkit-flex; 2512 | display: -moz-box; 2513 | display: -ms-flexbox; 2514 | display: flex; 2515 | justify-content: center; 2516 | } 2517 | 2518 | .flex-sa { 2519 | display: -webkit-box; 2520 | display: -webkit-flex; 2521 | display: -moz-box; 2522 | display: -ms-flexbox; 2523 | display: flex; 2524 | justify-content: space-around; 2525 | } 2526 | 2527 | .flex-sb { 2528 | display: -webkit-box; 2529 | display: -webkit-flex; 2530 | display: -moz-box; 2531 | display: -ms-flexbox; 2532 | display: flex; 2533 | justify-content: space-between; 2534 | } 2535 | 2536 | /* ------------------------------------ */ 2537 | .flex-t { 2538 | display: -webkit-box; 2539 | display: -webkit-flex; 2540 | display: -moz-box; 2541 | display: -ms-flexbox; 2542 | display: flex; 2543 | -ms-align-items: flex-start; 2544 | align-items: flex-start; 2545 | } 2546 | 2547 | .flex-b { 2548 | display: -webkit-box; 2549 | display: -webkit-flex; 2550 | display: -moz-box; 2551 | display: -ms-flexbox; 2552 | display: flex; 2553 | -ms-align-items: flex-end; 2554 | align-items: flex-end; 2555 | } 2556 | 2557 | .flex-m { 2558 | display: -webkit-box; 2559 | display: -webkit-flex; 2560 | display: -moz-box; 2561 | display: -ms-flexbox; 2562 | display: flex; 2563 | -ms-align-items: center; 2564 | align-items: center; 2565 | } 2566 | 2567 | .flex-str { 2568 | display: -webkit-box; 2569 | display: -webkit-flex; 2570 | display: -moz-box; 2571 | display: -ms-flexbox; 2572 | display: flex; 2573 | -ms-align-items: stretch; 2574 | align-items: stretch; 2575 | } 2576 | 2577 | /* ------------------------------------ */ 2578 | .flex-row { 2579 | display: -webkit-box; 2580 | display: -webkit-flex; 2581 | display: -moz-box; 2582 | display: -ms-flexbox; 2583 | display: flex; 2584 | -webkit-flex-direction: row; 2585 | -moz-flex-direction: row; 2586 | -ms-flex-direction: row; 2587 | -o-flex-direction: row; 2588 | flex-direction: row; 2589 | } 2590 | 2591 | .flex-row-rev { 2592 | display: -webkit-box; 2593 | display: -webkit-flex; 2594 | display: -moz-box; 2595 | display: -ms-flexbox; 2596 | display: flex; 2597 | -webkit-flex-direction: row-reverse; 2598 | -moz-flex-direction: row-reverse; 2599 | -ms-flex-direction: row-reverse; 2600 | -o-flex-direction: row-reverse; 2601 | flex-direction: row-reverse; 2602 | } 2603 | 2604 | .flex-col { 2605 | display: -webkit-box; 2606 | display: -webkit-flex; 2607 | display: -moz-box; 2608 | display: -ms-flexbox; 2609 | display: flex; 2610 | -webkit-flex-direction: column; 2611 | -moz-flex-direction: column; 2612 | -ms-flex-direction: column; 2613 | -o-flex-direction: column; 2614 | flex-direction: column; 2615 | } 2616 | 2617 | .flex-col-rev { 2618 | display: -webkit-box; 2619 | display: -webkit-flex; 2620 | display: -moz-box; 2621 | display: -ms-flexbox; 2622 | display: flex; 2623 | -webkit-flex-direction: column-reverse; 2624 | -moz-flex-direction: column-reverse; 2625 | -ms-flex-direction: column-reverse; 2626 | -o-flex-direction: column-reverse; 2627 | flex-direction: column-reverse; 2628 | } 2629 | 2630 | /* ------------------------------------ */ 2631 | .flex-c-m { 2632 | display: -webkit-box; 2633 | display: -webkit-flex; 2634 | display: -moz-box; 2635 | display: -ms-flexbox; 2636 | display: flex; 2637 | justify-content: center; 2638 | -ms-align-items: center; 2639 | align-items: center; 2640 | } 2641 | 2642 | .flex-c-t { 2643 | display: -webkit-box; 2644 | display: -webkit-flex; 2645 | display: -moz-box; 2646 | display: -ms-flexbox; 2647 | display: flex; 2648 | justify-content: center; 2649 | -ms-align-items: flex-start; 2650 | align-items: flex-start; 2651 | } 2652 | 2653 | .flex-c-b { 2654 | display: -webkit-box; 2655 | display: -webkit-flex; 2656 | display: -moz-box; 2657 | display: -ms-flexbox; 2658 | display: flex; 2659 | justify-content: center; 2660 | -ms-align-items: flex-end; 2661 | align-items: flex-end; 2662 | } 2663 | 2664 | .flex-c-str { 2665 | display: -webkit-box; 2666 | display: -webkit-flex; 2667 | display: -moz-box; 2668 | display: -ms-flexbox; 2669 | display: flex; 2670 | justify-content: center; 2671 | -ms-align-items: stretch; 2672 | align-items: stretch; 2673 | } 2674 | 2675 | .flex-l-m { 2676 | display: -webkit-box; 2677 | display: -webkit-flex; 2678 | display: -moz-box; 2679 | display: -ms-flexbox; 2680 | display: flex; 2681 | justify-content: flex-start; 2682 | -ms-align-items: center; 2683 | align-items: center; 2684 | } 2685 | 2686 | .flex-r-m { 2687 | display: -webkit-box; 2688 | display: -webkit-flex; 2689 | display: -moz-box; 2690 | display: -ms-flexbox; 2691 | display: flex; 2692 | justify-content: flex-end; 2693 | -ms-align-items: center; 2694 | align-items: center; 2695 | } 2696 | 2697 | .flex-sa-m { 2698 | display: -webkit-box; 2699 | display: -webkit-flex; 2700 | display: -moz-box; 2701 | display: -ms-flexbox; 2702 | display: flex; 2703 | justify-content: space-around; 2704 | -ms-align-items: center; 2705 | align-items: center; 2706 | } 2707 | 2708 | .flex-sb-m { 2709 | display: -webkit-box; 2710 | display: -webkit-flex; 2711 | display: -moz-box; 2712 | display: -ms-flexbox; 2713 | display: flex; 2714 | justify-content: space-between; 2715 | -ms-align-items: center; 2716 | align-items: center; 2717 | } 2718 | 2719 | /* ------------------------------------ */ 2720 | .flex-col-l { 2721 | display: -webkit-box; 2722 | display: -webkit-flex; 2723 | display: -moz-box; 2724 | display: -ms-flexbox; 2725 | display: flex; 2726 | -webkit-flex-direction: column; 2727 | -moz-flex-direction: column; 2728 | -ms-flex-direction: column; 2729 | -o-flex-direction: column; 2730 | flex-direction: column; 2731 | -ms-align-items: flex-start; 2732 | align-items: flex-start; 2733 | } 2734 | 2735 | .flex-col-r { 2736 | display: -webkit-box; 2737 | display: -webkit-flex; 2738 | display: -moz-box; 2739 | display: -ms-flexbox; 2740 | display: flex; 2741 | -webkit-flex-direction: column; 2742 | -moz-flex-direction: column; 2743 | -ms-flex-direction: column; 2744 | -o-flex-direction: column; 2745 | flex-direction: column; 2746 | -ms-align-items: flex-end; 2747 | align-items: flex-end; 2748 | } 2749 | 2750 | .flex-col-c { 2751 | display: -webkit-box; 2752 | display: -webkit-flex; 2753 | display: -moz-box; 2754 | display: -ms-flexbox; 2755 | display: flex; 2756 | -webkit-flex-direction: column; 2757 | -moz-flex-direction: column; 2758 | -ms-flex-direction: column; 2759 | -o-flex-direction: column; 2760 | flex-direction: column; 2761 | -ms-align-items: center; 2762 | align-items: center; 2763 | } 2764 | 2765 | .flex-col-l-m { 2766 | display: -webkit-box; 2767 | display: -webkit-flex; 2768 | display: -moz-box; 2769 | display: -ms-flexbox; 2770 | display: flex; 2771 | -webkit-flex-direction: column; 2772 | -moz-flex-direction: column; 2773 | -ms-flex-direction: column; 2774 | -o-flex-direction: column; 2775 | flex-direction: column; 2776 | -ms-align-items: flex-start; 2777 | align-items: flex-start; 2778 | justify-content: center; 2779 | } 2780 | 2781 | .flex-col-r-m { 2782 | display: -webkit-box; 2783 | display: -webkit-flex; 2784 | display: -moz-box; 2785 | display: -ms-flexbox; 2786 | display: flex; 2787 | -webkit-flex-direction: column; 2788 | -moz-flex-direction: column; 2789 | -ms-flex-direction: column; 2790 | -o-flex-direction: column; 2791 | flex-direction: column; 2792 | -ms-align-items: flex-end; 2793 | align-items: flex-end; 2794 | justify-content: center; 2795 | } 2796 | 2797 | .flex-col-c-m { 2798 | display: -webkit-box; 2799 | display: -webkit-flex; 2800 | display: -moz-box; 2801 | display: -ms-flexbox; 2802 | display: flex; 2803 | -webkit-flex-direction: column; 2804 | -moz-flex-direction: column; 2805 | -ms-flex-direction: column; 2806 | -o-flex-direction: column; 2807 | flex-direction: column; 2808 | -ms-align-items: center; 2809 | align-items: center; 2810 | justify-content: center; 2811 | } 2812 | 2813 | .flex-col-str { 2814 | display: -webkit-box; 2815 | display: -webkit-flex; 2816 | display: -moz-box; 2817 | display: -ms-flexbox; 2818 | display: flex; 2819 | -webkit-flex-direction: column; 2820 | -moz-flex-direction: column; 2821 | -ms-flex-direction: column; 2822 | -o-flex-direction: column; 2823 | flex-direction: column; 2824 | -ms-align-items: stretch; 2825 | align-items: stretch; 2826 | } 2827 | 2828 | .flex-col-sb { 2829 | display: -webkit-box; 2830 | display: -webkit-flex; 2831 | display: -moz-box; 2832 | display: -ms-flexbox; 2833 | display: flex; 2834 | -webkit-flex-direction: column; 2835 | -moz-flex-direction: column; 2836 | -ms-flex-direction: column; 2837 | -o-flex-direction: column; 2838 | flex-direction: column; 2839 | justify-content: space-between; 2840 | } 2841 | 2842 | /* ------------------------------------ */ 2843 | .flex-col-rev-l { 2844 | display: -webkit-box; 2845 | display: -webkit-flex; 2846 | display: -moz-box; 2847 | display: -ms-flexbox; 2848 | display: flex; 2849 | -webkit-flex-direction: column-reverse; 2850 | -moz-flex-direction: column-reverse; 2851 | -ms-flex-direction: column-reverse; 2852 | -o-flex-direction: column-reverse; 2853 | flex-direction: column-reverse; 2854 | -ms-align-items: flex-start; 2855 | align-items: flex-start; 2856 | } 2857 | 2858 | .flex-col-rev-r { 2859 | display: -webkit-box; 2860 | display: -webkit-flex; 2861 | display: -moz-box; 2862 | display: -ms-flexbox; 2863 | display: flex; 2864 | -webkit-flex-direction: column-reverse; 2865 | -moz-flex-direction: column-reverse; 2866 | -ms-flex-direction: column-reverse; 2867 | -o-flex-direction: column-reverse; 2868 | flex-direction: column-reverse; 2869 | -ms-align-items: flex-end; 2870 | align-items: flex-end; 2871 | } 2872 | 2873 | .flex-col-rev-c { 2874 | display: -webkit-box; 2875 | display: -webkit-flex; 2876 | display: -moz-box; 2877 | display: -ms-flexbox; 2878 | display: flex; 2879 | -webkit-flex-direction: column-reverse; 2880 | -moz-flex-direction: column-reverse; 2881 | -ms-flex-direction: column-reverse; 2882 | -o-flex-direction: column-reverse; 2883 | flex-direction: column-reverse; 2884 | -ms-align-items: center; 2885 | align-items: center; 2886 | } 2887 | 2888 | .flex-col-rev-str { 2889 | display: -webkit-box; 2890 | display: -webkit-flex; 2891 | display: -moz-box; 2892 | display: -ms-flexbox; 2893 | display: flex; 2894 | -webkit-flex-direction: column-reverse; 2895 | -moz-flex-direction: column-reverse; 2896 | -ms-flex-direction: column-reverse; 2897 | -o-flex-direction: column-reverse; 2898 | flex-direction: column-reverse; 2899 | -ms-align-items: stretch; 2900 | align-items: stretch; 2901 | } 2902 | 2903 | 2904 | /*[ Absolute ] 2905 | ----------------------------------------------------------- 2906 | */ 2907 | .ab-c-m { 2908 | position: absolute; 2909 | top: 50%; 2910 | left: 50%; 2911 | -webkit-transform: translate(-50%, -50%); 2912 | -moz-transform: translate(-50%, -50%); 2913 | -ms-transform: translate(-50%, -50%); 2914 | -o-transform: translate(-50%, -50%); 2915 | transform: translate(-50%, -50%); 2916 | } 2917 | 2918 | .ab-c-t { 2919 | position: absolute; 2920 | top: 0px; 2921 | left: 50%; 2922 | -webkit-transform: translateX(-50%); 2923 | -moz-transform: translateX(-50%); 2924 | -ms-transform: translateX(-50%); 2925 | -o-transform: translateX(-50%); 2926 | transform: translateX(-50%); 2927 | } 2928 | 2929 | .ab-c-b { 2930 | position: absolute; 2931 | bottom: 0px; 2932 | left: 50%; 2933 | -webkit-transform: translateX(-50%); 2934 | -moz-transform: translateX(-50%); 2935 | -ms-transform: translateX(-50%); 2936 | -o-transform: translateX(-50%); 2937 | transform: translateX(-50%); 2938 | } 2939 | 2940 | .ab-l-m { 2941 | position: absolute; 2942 | left: 0px; 2943 | top: 50%; 2944 | -webkit-transform: translateY(-50%); 2945 | -moz-transform: translateY(-50%); 2946 | -ms-transform: translateY(-50%); 2947 | -o-transform: translateY(-50%); 2948 | transform: translateY(-50%); 2949 | } 2950 | 2951 | .ab-r-m { 2952 | position: absolute; 2953 | right: 0px; 2954 | top: 50%; 2955 | -webkit-transform: translateY(-50%); 2956 | -moz-transform: translateY(-50%); 2957 | -ms-transform: translateY(-50%); 2958 | -o-transform: translateY(-50%); 2959 | transform: translateY(-50%); 2960 | } 2961 | 2962 | .ab-t-l { 2963 | position: absolute; 2964 | left: 0px; 2965 | top: 0px; 2966 | } 2967 | 2968 | .ab-t-r { 2969 | position: absolute; 2970 | right: 0px; 2971 | top: 0px; 2972 | } 2973 | 2974 | .ab-b-l { 2975 | position: absolute; 2976 | left: 0px; 2977 | bottom: 0px; 2978 | } 2979 | 2980 | .ab-b-r { 2981 | position: absolute; 2982 | right: 0px; 2983 | bottom: 0px; 2984 | } 2985 | 2986 | 2987 | 2988 | 2989 | 2990 | 2991 | 2992 | 2993 | 2994 | --------------------------------------------------------------------------------