From 35a5c04b8c109a5f84e374457928a72328ad1c82 Mon Sep 17 00:00:00 2001 From: mh4x0f Date: Sat, 6 Apr 2019 12:58:36 -0300 Subject: [PATCH 1/6] added new moduled captive portal plugin --- CHANGELOG | 4 + core/config/app/config.ini | 1 + core/config/commits/Lcommits.cfg | 6 + core/servers/http_handler/ServerHTTP.py | 122 +- core/servers/proxy/package/CaptivePortal.py | 451 + core/servers/proxy/package/ProxyMode.py | 12 +- core/utility/constants.py | 14 +- core/utility/threads.py | 5 +- core/widgets/pluginssettings.py | 99 + icons/captive_portal.png | Bin 0 -> 928 bytes installer.sh | 2 +- plugins/captivePortal/DarkLogin.py | 42 + plugins/captivePortal/__init__.py | 5 + plugins/captivePortal/flask_demo.py | 50 + plugins/captivePortal/loginPage.py | 43 + plugins/captivePortal/login_v4.py | 43 + plugins/captivePortal/plugin.py | 62 + plugins/captivePortal/server.py | 55 + .../templates/DarkLogin/preview.png | Bin 0 -> 17993 bytes .../DarkLogin/static/css/bootstrap.min.css | 9 + .../templates/DarkLogin/static/css/main.css | 462 + .../templates/DarkLogin/static/css/styles.css | 0 .../templates/DarkLogin/static/css/util.css | 2993 ++++++ .../DarkLogin/static/fonts/google_fonts.css | 112 + .../DarkLogin/static/js/bootstrap.min.js | 6 + .../DarkLogin/static/js/jquery-1.11.1.min.js | 4 + .../templates/DarkLogin/static/js/main.js | 57 + .../templates/DarkLogin/templates/login.html | 267 + .../DarkLogin/templates/login_successful.html | 249 + .../Flask/language/En/templates/login.html | 50 + .../En/templates/login_successful.html | 12 + .../Flask/language/ptBr/templates/login.html | 50 + .../ptBr/templates/login_successful.html | 12 + .../captivePortal/templates/Flask/preview.png | Bin 0 -> 22084 bytes .../Flask/static/css/bootstrap.min.css | 9 + .../templates/Flask/static/css/main.css | 127 + .../templates/Flask/static/css/styles.css | 0 .../templates/Flask/static/css/util.css | 2993 ++++++ .../Flask/static/fonts/google_fonts.css | 112 + .../Flask/static/js/bootstrap.min.js | 6 + .../Flask/static/js/jquery-1.11.1.min.js | 4 + .../templates/Flask/static/js/main.js | 57 + .../templates/Flask/templates/login.html | 50 + .../Flask/templates/login_successful.html | 12 + .../templates/Login_v4/preview.png | Bin 0 -> 413975 bytes .../templates/Login_v4/static/css/main.css | 476 + .../templates/Login_v4/static/css/util.css | 2993 ++++++ .../fonts/font-awesome-4.7.0/HELP-US-OUT.txt | 7 + .../font-awesome-4.7.0/css/font-awesome.css | 2337 +++++ .../css/font-awesome.min.css | 4 + .../font-awesome-4.7.0/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../fonts/fontawesome-webfont.svg | 2671 ++++++ .../fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../font-awesome-4.7.0/less/animated.less | 34 + .../less/bordered-pulled.less | 25 + .../fonts/font-awesome-4.7.0/less/core.less | 12 + .../font-awesome-4.7.0/less/fixed-width.less | 6 + .../font-awesome-4.7.0/less/font-awesome.less | 18 + .../fonts/font-awesome-4.7.0/less/icons.less | 789 ++ .../fonts/font-awesome-4.7.0/less/larger.less | 13 + .../fonts/font-awesome-4.7.0/less/list.less | 19 + .../fonts/font-awesome-4.7.0/less/mixins.less | 60 + .../fonts/font-awesome-4.7.0/less/path.less | 15 + .../less/rotated-flipped.less | 20 + .../less/screen-reader.less | 5 + .../font-awesome-4.7.0/less/stacked.less | 20 + .../font-awesome-4.7.0/less/variables.less | 800 ++ .../font-awesome-4.7.0/scss/_animated.scss | 34 + .../scss/_bordered-pulled.scss | 25 + .../fonts/font-awesome-4.7.0/scss/_core.scss | 12 + .../font-awesome-4.7.0/scss/_fixed-width.scss | 6 + .../fonts/font-awesome-4.7.0/scss/_icons.scss | 789 ++ .../font-awesome-4.7.0/scss/_larger.scss | 13 + .../fonts/font-awesome-4.7.0/scss/_list.scss | 19 + .../font-awesome-4.7.0/scss/_mixins.scss | 60 + .../fonts/font-awesome-4.7.0/scss/_path.scss | 15 + .../scss/_rotated-flipped.scss | 20 + .../scss/_screen-reader.scss | 5 + .../font-awesome-4.7.0/scss/_stacked.scss | 20 + .../font-awesome-4.7.0/scss/_variables.scss | 800 ++ .../font-awesome-4.7.0/scss/font-awesome.scss | 18 + .../css/material-design-iconic-font.css | 5166 +++++++++++ .../css/material-design-iconic-font.min.css | 1 + .../fonts/Material-Design-Iconic-Font.eot | Bin 0 -> 42495 bytes .../fonts/Material-Design-Iconic-Font.svg | 787 ++ .../fonts/Material-Design-Iconic-Font.ttf | Bin 0 -> 99212 bytes .../fonts/Material-Design-Iconic-Font.woff | Bin 0 -> 50312 bytes .../fonts/Material-Design-Iconic-Font.woff2 | Bin 0 -> 38384 bytes .../static/fonts/poppins/Poppins-Black.ttf | Bin 0 -> 139056 bytes .../fonts/poppins/Poppins-BlackItalic.ttf | Bin 0 -> 155956 bytes .../static/fonts/poppins/Poppins-Bold.ttf | Bin 0 -> 141260 bytes .../fonts/poppins/Poppins-BoldItalic.ttf | Bin 0 -> 160224 bytes .../fonts/poppins/Poppins-ExtraBold.ttf | Bin 0 -> 140220 bytes .../fonts/poppins/Poppins-ExtraBoldItalic.ttf | Bin 0 -> 158708 bytes .../fonts/poppins/Poppins-ExtraLight.ttf | Bin 0 -> 147952 bytes .../poppins/Poppins-ExtraLightItalic.ttf | Bin 0 -> 170912 bytes .../static/fonts/poppins/Poppins-Italic.ttf | Bin 0 -> 167140 bytes .../static/fonts/poppins/Poppins-Light.ttf | Bin 0 -> 146472 bytes .../fonts/poppins/Poppins-LightItalic.ttf | Bin 0 -> 168944 bytes .../static/fonts/poppins/Poppins-Medium.ttf | Bin 0 -> 143516 bytes .../fonts/poppins/Poppins-MediumItalic.ttf | Bin 0 -> 165512 bytes .../static/fonts/poppins/Poppins-Regular.ttf | Bin 0 -> 145312 bytes .../static/fonts/poppins/Poppins-SemiBold.ttf | Bin 0 -> 142148 bytes .../fonts/poppins/Poppins-SemiBoldItalic.ttf | Bin 0 -> 161896 bytes .../static/fonts/poppins/Poppins-Thin.ttf | Bin 0 -> 148976 bytes .../fonts/poppins/Poppins-ThinItalic.ttf | Bin 0 -> 172308 bytes .../Login_v4/static/images/bg-01.jpg | Bin 0 -> 114272 bytes .../Login_v4/static/images/icons/favicon.ico | Bin 0 -> 32038 bytes .../templates/Login_v4/static/js/main.js | 71 + .../static/vendor/animate/animate.css | 1579 ++++ .../vendor/animsition/css/animsition.css | 1957 ++++ .../vendor/animsition/css/animsition.min.css | 7 + .../static/vendor/animsition/js/animsition.js | 361 + .../vendor/animsition/js/animsition.min.js | 8 + .../vendor/bootstrap/css/bootstrap-grid.css | 1353 +++ .../bootstrap/css/bootstrap-grid.css.map | 1 + .../bootstrap/css/bootstrap-grid.min.css | 2 + .../bootstrap/css/bootstrap-grid.min.css.map | 1 + .../vendor/bootstrap/css/bootstrap-reboot.css | 330 + .../bootstrap/css/bootstrap-reboot.css.map | 1 + .../bootstrap/css/bootstrap-reboot.min.css | 2 + .../css/bootstrap-reboot.min.css.map | 1 + .../static/vendor/bootstrap/css/bootstrap.css | 8185 +++++++++++++++++ .../vendor/bootstrap/css/bootstrap.css.map | 1 + .../vendor/bootstrap/css/bootstrap.min.css | 7 + .../bootstrap/css/bootstrap.min.css.map | 1 + .../static/vendor/bootstrap/js/bootstrap.js | 3831 ++++++++ .../vendor/bootstrap/js/bootstrap.min.js | 6 + .../static/vendor/bootstrap/js/popper.js | 2448 +++++ .../static/vendor/bootstrap/js/popper.min.js | 5 + .../static/vendor/bootstrap/js/tooltip.js | 539 ++ .../vendor/countdowntime/countdowntime.js | 45 + .../vendor/css-hamburgers/hamburgers.css | 626 ++ .../vendor/css-hamburgers/hamburgers.min.css | 7 + .../daterangepicker/daterangepicker.css | 269 + .../vendor/daterangepicker/daterangepicker.js | 1628 ++++ .../static/vendor/daterangepicker/moment.js | 4040 ++++++++ .../vendor/daterangepicker/moment.min.js | 7 + .../static/vendor/jquery/jquery-3.2.1.min.js | 4 + .../perfect-scrollbar/perfect-scrollbar.css | 112 + .../perfect-scrollbar.min.js | 6 + .../static/vendor/select2/select2.css | 484 + .../Login_v4/static/vendor/select2/select2.js | 6450 +++++++++++++ .../static/vendor/select2/select2.min.css | 1 + .../static/vendor/select2/select2.min.js | 3 + .../templates/Login_v4/templates/login.html | 122 + .../Login_v4/templates/login_successful.html | 65 + .../templates/loginPage/preview.png | Bin 0 -> 50109 bytes .../loginPage/static/css/bootstrap.min.css | 7 + .../loginPage/static/images/avatar_2x.png | Bin 0 -> 626 bytes .../loginPage/static/js/bootstrap.min.js | 7 + .../loginPage/static/js/jquery-1.11.1.min.js | 4 + .../templates/loginPage/templates/login.html | 182 + .../loginPage/templates/login_successful.html | 168 + requirements.txt | 1 + 158 files changed, 61708 insertions(+), 10 deletions(-) mode change 100755 => 100644 CHANGELOG create mode 100644 core/servers/proxy/package/CaptivePortal.py create mode 100644 icons/captive_portal.png mode change 100755 => 100644 installer.sh create mode 100644 plugins/captivePortal/DarkLogin.py create mode 100644 plugins/captivePortal/__init__.py create mode 100644 plugins/captivePortal/flask_demo.py create mode 100644 plugins/captivePortal/loginPage.py create mode 100644 plugins/captivePortal/login_v4.py create mode 100644 plugins/captivePortal/plugin.py create mode 100644 plugins/captivePortal/server.py create mode 100644 plugins/captivePortal/templates/DarkLogin/preview.png create mode 100644 plugins/captivePortal/templates/DarkLogin/static/css/bootstrap.min.css create mode 100644 plugins/captivePortal/templates/DarkLogin/static/css/main.css create mode 100644 plugins/captivePortal/templates/DarkLogin/static/css/styles.css create mode 100644 plugins/captivePortal/templates/DarkLogin/static/css/util.css create mode 100644 plugins/captivePortal/templates/DarkLogin/static/fonts/google_fonts.css create mode 100644 plugins/captivePortal/templates/DarkLogin/static/js/bootstrap.min.js create mode 100644 plugins/captivePortal/templates/DarkLogin/static/js/jquery-1.11.1.min.js create mode 100644 plugins/captivePortal/templates/DarkLogin/static/js/main.js create mode 100644 plugins/captivePortal/templates/DarkLogin/templates/login.html create mode 100644 plugins/captivePortal/templates/DarkLogin/templates/login_successful.html create mode 100644 plugins/captivePortal/templates/Flask/language/En/templates/login.html create mode 100644 plugins/captivePortal/templates/Flask/language/En/templates/login_successful.html create mode 100644 plugins/captivePortal/templates/Flask/language/ptBr/templates/login.html create mode 100644 plugins/captivePortal/templates/Flask/language/ptBr/templates/login_successful.html create mode 100644 plugins/captivePortal/templates/Flask/preview.png create mode 100644 plugins/captivePortal/templates/Flask/static/css/bootstrap.min.css create mode 100644 plugins/captivePortal/templates/Flask/static/css/main.css create mode 100644 plugins/captivePortal/templates/Flask/static/css/styles.css create mode 100644 plugins/captivePortal/templates/Flask/static/css/util.css create mode 100644 plugins/captivePortal/templates/Flask/static/fonts/google_fonts.css create mode 100644 plugins/captivePortal/templates/Flask/static/js/bootstrap.min.js create mode 100644 plugins/captivePortal/templates/Flask/static/js/jquery-1.11.1.min.js create mode 100644 plugins/captivePortal/templates/Flask/static/js/main.js create mode 100644 plugins/captivePortal/templates/Flask/templates/login.html create mode 100644 plugins/captivePortal/templates/Flask/templates/login_successful.html create mode 100644 plugins/captivePortal/templates/Login_v4/preview.png create mode 100644 plugins/captivePortal/templates/Login_v4/static/css/main.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/css/util.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/HELP-US-OUT.txt create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/css/font-awesome.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/css/font-awesome.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/fonts/FontAwesome.otf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.eot create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.svg create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.woff create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/animated.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/bordered-pulled.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/core.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/fixed-width.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/font-awesome.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/icons.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/larger.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/list.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/mixins.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/path.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/rotated-flipped.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/screen-reader.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/stacked.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/less/variables.less create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_animated.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_bordered-pulled.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_core.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_fixed-width.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_icons.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_larger.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_list.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_mixins.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_path.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_rotated-flipped.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_screen-reader.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_stacked.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/_variables.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/font-awesome-4.7.0/scss/font-awesome.scss create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/css/material-design-iconic-font.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/css/material-design-iconic-font.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/fonts/Material-Design-Iconic-Font.eot create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/fonts/Material-Design-Iconic-Font.svg create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/fonts/Material-Design-Iconic-Font.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/fonts/Material-Design-Iconic-Font.woff create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/iconic/fonts/Material-Design-Iconic-Font.woff2 create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Black.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-BlackItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Bold.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-BoldItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-ExtraBold.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-ExtraBoldItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-ExtraLight.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-ExtraLightItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Italic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Light.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-LightItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Medium.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-MediumItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Regular.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-SemiBold.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-SemiBoldItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-Thin.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/fonts/poppins/Poppins-ThinItalic.ttf create mode 100644 plugins/captivePortal/templates/Login_v4/static/images/bg-01.jpg create mode 100644 plugins/captivePortal/templates/Login_v4/static/images/icons/favicon.ico create mode 100644 plugins/captivePortal/templates/Login_v4/static/js/main.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/animate/animate.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/animsition/css/animsition.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/animsition/css/animsition.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/animsition/js/animsition.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/animsition/js/animsition.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-grid.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-grid.css.map create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-grid.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-grid.min.css.map create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-reboot.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-reboot.css.map create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-reboot.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap-reboot.min.css.map create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap.css.map create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/css/bootstrap.min.css.map create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/js/bootstrap.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/js/bootstrap.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/js/popper.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/js/popper.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/bootstrap/js/tooltip.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/countdowntime/countdowntime.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/css-hamburgers/hamburgers.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/css-hamburgers/hamburgers.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/daterangepicker/daterangepicker.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/daterangepicker/daterangepicker.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/daterangepicker/moment.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/daterangepicker/moment.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/jquery/jquery-3.2.1.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/perfect-scrollbar/perfect-scrollbar.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/perfect-scrollbar/perfect-scrollbar.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/select2/select2.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/select2/select2.js create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/select2/select2.min.css create mode 100644 plugins/captivePortal/templates/Login_v4/static/vendor/select2/select2.min.js create mode 100644 plugins/captivePortal/templates/Login_v4/templates/login.html create mode 100644 plugins/captivePortal/templates/Login_v4/templates/login_successful.html create mode 100644 plugins/captivePortal/templates/loginPage/preview.png create mode 100644 plugins/captivePortal/templates/loginPage/static/css/bootstrap.min.css create mode 100644 plugins/captivePortal/templates/loginPage/static/images/avatar_2x.png create mode 100644 plugins/captivePortal/templates/loginPage/static/js/bootstrap.min.js create mode 100644 plugins/captivePortal/templates/loginPage/static/js/jquery-1.11.1.min.js create mode 100644 plugins/captivePortal/templates/loginPage/templates/login.html create mode 100644 plugins/captivePortal/templates/loginPage/templates/login_successful.html diff --git a/CHANGELOG b/CHANGELOG old mode 100755 new mode 100644 index 6ce86aa..469ac2c --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +Version 0.8.8 +------------- +- added new moduled captive portal plugin + Version 0.8.7 ------------- - modularized and auto loaded proxy package diff --git a/core/config/app/config.ini b/core/config/app/config.ini index e81827e..f73ff0e 100644 --- a/core/config/app/config.ini +++ b/core/config/app/config.ini @@ -127,6 +127,7 @@ Pumpkin%20Proxy=true BDF%20Proxy=false No%20Proxy=false TCP%20Proxy=true +Captive%20Portal=false [iptables] iptables_0_masq=iptables -P FORWARD ACCEPT diff --git a/core/config/commits/Lcommits.cfg b/core/config/commits/Lcommits.cfg index 7a39f68..9cc52b7 100644 --- a/core/config/commits/Lcommits.cfg +++ b/core/config/commits/Lcommits.cfg @@ -1,4 +1,10 @@ master: +[ + { Version: '0.8.8'} + { changelog : 'added new moduled captive portal plugin' }, +] + +WiFiPumpkin087: [ { Version: '0.8.7'} { changelog : 'fixed version beta alert and constants' }, diff --git a/core/servers/http_handler/ServerHTTP.py b/core/servers/http_handler/ServerHTTP.py index e80c68a..8a086fe 100644 --- a/core/servers/http_handler/ServerHTTP.py +++ b/core/servers/http_handler/ServerHTTP.py @@ -1,6 +1,6 @@ from PyQt4.QtCore import QThread,pyqtSignal from core.utils import setup_logger -from core.utility.constants import LOG_PHISHING +from core.utility.constants import LOG_PHISHING,LOG_CAPTIVEPORTALPROXY import SimpleHTTPServer import BaseHTTPServer import SocketServer @@ -9,6 +9,7 @@ import logging import socket import cgi +import re class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): @@ -123,4 +124,121 @@ def stop(self): try: self.httpd.shutdown() self.httpd.server_close() - except AttributeError: pass \ No newline at end of file + except AttributeError: pass + + + +class ThreadCaptivePortalHTTPServer(QThread): + ''' server http for website custom module Phishing ''' + requestCredentails = pyqtSignal(object) + requestLogin = pyqtSignal(object) + def __init__(self,Address,PORT,plugin=None,session=str()): + self.Address,self.PORT = Address,PORT + self.session = session + self.Handler = ServerHandlerCaptivePortal + self.Handler.redirect_Original_website = plugin.Redirect + self.Handler.redirect_Path = plugin.TemplatePath + QThread.__init__(self) + + def run(self): + self.httpd = None + #self.httpd = MyHTTPServer((self.Address, self.PORT), self.Handler,on_before_serve = self.httpd) + self.Handler.log_message_creds = self.Method_POST_DATA + self.Handler.log_message_post = self.Mehtod_POST_LOG + setup_logger('captivePortal', LOG_CAPTIVEPORTALPROXY, key=self.session) + self.log_captiveportal = logging.getLogger('captivePortal') + #self.httpd.serve_forever() + + def Method_POST_DATA(self,format, *args): + self.log_captiveportal.info(list(args)[0]) + self.requestCredentails.emit(list(args)[0]) + + def Mehtod_POST_LOG(self, format, *args): + self.requestLogin.emit(list(args)[0]) + + def stop(self): + try: + self.httpd.shutdown() + self.httpd.server_close() + except AttributeError: pass + + + +class ServerHandlerCaptivePortal(SimpleHTTPServer.SimpleHTTPRequestHandler): + ''' server http for website clone module Phishing''' + redirect_Original_website,redirect_Path = None,None + + def do_GET(self): + if self.path =='/':self.path = self.redirect_Path + if self.path.startswith('/'): self.path = self.redirect_Path + self.path + SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self) + + def log_message_creds(self, format, *args): + return + + def log_message_post(self, format, *args): + return + + def log_message(self, format, *args): + return + + def redirect(self, page="/"): + + # https://stackoverflow.com/questions/7160737/python-how-to-validate-a-url-in-python-malformed-or-not + regex = re.compile(r'^(?:http|ftp)s?://' # http:// or https:// + r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain... + r'localhost|' #localhost... + r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip + r'(?::\d+)?' # optional port + r'(?:/?|[/?]\S+)$', re.IGNORECASE) + + if re.match(regex, page): + if not page.startswith('http://'): + page = 'http://' + page + self.send_response(301) + self.send_header('Location', page) + self.end_headers() + else: + self.path = self.redirect_Path + self.path + self.redirect_Original_website + + def do_POST(self): + redirect = False + + try: + content_length = int(self.headers['Content-Length']) + post_data = self.rfile.read(content_length) + print(post_data) + + + user_regex = '([Ee]mail|%5B[Ee]mail%5D|[Uu]ser|[Uu]sername|' \ + '[Nn]ame|[Ll]ogin|[Ll]og|[Ll]ogin[Ii][Dd])=([^&|;]*)' + pw_regex = '([Pp]assword|[Pp]ass|[Pp]asswd|[Pp]wd|[Pp][Ss][Ww]|' \ + '[Pp]asswrd|[Pp]assw|%5B[Pp]assword%5D)=([^&|;]*)' + username = re.findall(user_regex, post_data) + password = re.findall(pw_regex, post_data) + + if not username ==[] and not password == []: + self.log_message_creds('',{'CaptiveCreds':{'User':username[0][1], + 'Pass': password[0][1], 'Client': self.client_address[0]}}) + redirect = True + except: + pass + + # form = cgi.FieldStorage( + # fp=self.rfile, + # headers=self.headers, + # environ={'REQUEST_METHOD':'POST', + # 'CONTENT_TYPE':self.headers['Content-Type'], + # } + # ) + + # if not form.list: return + # redirect = True + # for item in form.list: + # if item.name and item.value: + # self.log_message('',item.name+' : '+item.value) + if redirect: + # send confirmation the cliente this to access to server + self.log_message_post('', self.client_address[0]) + self.redirect(self.redirect_Original_website) + SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self) \ No newline at end of file diff --git a/core/servers/proxy/package/CaptivePortal.py b/core/servers/proxy/package/CaptivePortal.py new file mode 100644 index 0000000..2f2ee0c --- /dev/null +++ b/core/servers/proxy/package/CaptivePortal.py @@ -0,0 +1,451 @@ +from collections import OrderedDict +from datetime import datetime +from functools import partial +from os import path,system +from subprocess import call +import core.utility.constants as C +from core.main import QtGui,QtCore +from core.servers.proxy.package.ProxyMode import ProxyMode +from core.utility.collection import SettingsINI +from core.utils import Refactor, exec_bash +from core.widgets.customiseds import AutoGridLayout +from core.utility.threads import (ProcessThread) +from core.widgets.pluginssettings import CaptivePortalSettings, CaptivePortalPreviewImage +from core.widgets.docks.dock import DockableWidget +from plugins.captivePortal import * +from core.servers.http_handler.ServerHTTP import ThreadCaptivePortalHTTPServer +from ast import literal_eval +from urllib2 import urlopen +from zipfile import ZipFile + +class CaptivePortalDock(DockableWidget): + ''' get all output and filter data from Pumpkin-Proxy plugin''' + def __init__(self, parent=None,title="",info={}): + super(CaptivePortalDock, self).__init__(parent,title,info) + self.setObjectName(title) + self.logger = info + self.processThread = None + self.maindockwidget = QtGui.QTableWidget() + self.pluginsName = [] + self.maindockwidget.setColumnCount(2) + self.maindockwidget.resizeRowsToContents() + self.maindockwidget.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + self.maindockwidget.horizontalHeader().setStretchLastSection(True) + self.maindockwidget.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) + self.maindockwidget.verticalHeader().setVisible(False) + self.maindockwidget.verticalHeader().setDefaultSectionSize(27) + self.maindockwidget.setSortingEnabled(True) + self.THeaders = OrderedDict([ ('CaptivePortal',[]),('Logger',[])]) + self.maindockwidget.setHorizontalHeaderLabels(self.THeaders.keys()) + self.maindockwidget.horizontalHeader().resizeSection(0,150) + self.get_AllPluginName() + self.setWidget(self.maindockwidget) + + def get_AllPluginName(self): + ''' get all name plugins CaptivePortal-Proxy''' + plugin_classes = plugin.CaptiveTemplatePlugin.__subclasses__() + for p in plugin_classes: + self.pluginsName.append(p().Name) + + def writeModeData(self,data, plugin): + ''' get data output and add on QtableWidgets''' + #for name in self.pluginsName: + self.THeaders['CaptivePortal'].append(plugin) + self.THeaders['Logger'].append(data) + + Headers = [] + self.maindockwidget.setRowCount(len(self.THeaders['CaptivePortal'])) + for n, key in enumerate(self.THeaders.keys()): + Headers.append(key) + for m, item in enumerate(self.THeaders[key]): + item = QtGui.QTableWidgetItem(item) + item.setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter) + self.maindockwidget.setItem(m, n, item) + self.maindockwidget.setHorizontalHeaderLabels(self.THeaders.keys()) + self.maindockwidget.verticalHeader().setDefaultSectionSize(27) + self.maindockwidget.scrollToBottom() + + def stopProcess(self): + self.maindockwidget.setRowCount(0) + self.maindockwidget.clearContents() + self.maindockwidget.setHorizontalHeaderLabels(self.THeaders.keys()) + +class CaptivePortal(ProxyMode): + ''' settings Captive Portal Proxy ''' + Name = "Captive Portal" + Author = "Pumpkin-Dev" + Description = "Intercepting HTTP data, this proxy server that allows to intercept requests and response on the fly" + Icon = "icons/captive_portal.png" + ModSettings = True + Hidden = False + ModType = "proxy" # proxy or server + _cmd_array = [] + sendError = QtCore.pyqtSignal(str) + + def __init__(self, parent,**kwargs): + super(CaptivePortal,self).__init__(parent) + self.mainLayout = QtGui.QVBoxLayout() + self.config = SettingsINI(C.CAPTIVEPORTAL_INI) + self.plugins = [] + self.plugin_activated = None + self.main_method = parent + self.bt_SettingsDict = {} + self.check_PluginDict = {} + self.ClientsLogged = {} + self.btn_previewSettings = {} + self.search_all_ProxyPlugins() + #scroll area + self.scrollwidget = QtGui.QWidget() + self.scrollwidget.setLayout(self.mainLayout) + self.scroll = QtGui.QScrollArea() + self.scroll.setWidgetResizable(True) + self.scroll.setWidget(self.scrollwidget) + self.dockwidget = CaptivePortalDock(None,title=self.Name) + + # create for add dock logging + self.tabcontrol = QtGui.QTabWidget() + self.tab1 = QtGui.QWidget() + self.tab2 = QtGui.QWidget() + self.page_1 = QtGui.QVBoxLayout(self.tab1) + self.page_2 = QtGui.QVBoxLayout(self.tab2) + + self.tabcontrol.addTab(self.tab1, 'Plugins') + self.tabcontrol.addTab(self.tab2, 'Manager') + self.TabCtrlClients = QtGui.QTableWidget() + self.TabCtrlClients.setColumnCount(3) + #self.TabCtrlClients.setRowCount(len(self.plugins)) + self.TabCtrlClients.resizeRowsToContents() + self.TabCtrlClients.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + self.TabCtrlClients.horizontalHeader().setStretchLastSection(True) + self.TabCtrlClients.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) + self.TabCtrlClients.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) + self.TabCtrlClients.verticalHeader().setVisible(False) + self.TabCtrlClients.verticalHeader().setDefaultSectionSize(27) + self.TabCtrlClients.setSortingEnabled(True) + self.THeadersCtrlClients = OrderedDict([('IpAddress',[]),('MacAddress',[]),('Status Internet',[])]) + self.TabCtrlClients.setHorizontalHeaderLabels(self.THeadersCtrlClients.keys()) + + + + self.mainLayout_settings = QtGui.QVBoxLayout() + #scroll area + self.scrollwidget_settings = QtGui.QWidget() + self.scrollwidget_settings.setLayout(self.mainLayout_settings) + self.scroll_settings = QtGui.QScrollArea() + self.scroll_settings.setWidgetResizable(True) + self.scroll_settings.setWidget(self.scrollwidget_settings) + + + # create widgets + self.argsLabel = QtGui.QLabel('') + self.hBox = QtGui.QHBoxLayout() + self.btnEnable = QtGui.QPushButton('Allow') + self.btncancel = QtGui.QPushButton('Deny') + + # size buttons + self.btnEnable.setFixedWidth(100) + self.btncancel.setFixedWidth(100) + + self.comboxBoxIPAddress = QtGui.QComboBox() + self.btncancel.setIcon(QtGui.QIcon('icons/cancel.png')) + self.btnEnable.setIcon(QtGui.QIcon('icons/accept.png')) + + # group settings + self.GroupSettings = QtGui.QGroupBox() + self.GroupSettings.setTitle('Manage clients access:') + self.SettingsLayout = QtGui.QFormLayout() + self.hBox.addWidget(self.comboxBoxIPAddress) + self.hBox.addWidget(self.btnEnable) + self.hBox.addWidget(self.btncancel) + self.SettingsLayout.addRow(self.hBox) + self.GroupSettings.setLayout(self.SettingsLayout) + #self.GroupSettings.setFixedWidth(450) + + + #group logger + self.GroupLogger = QtGui.QGroupBox() + self.logger_portal = QtGui.QListWidget() + self.GroupLogger.setTitle('Logger events:') + self.LoggerLayout = QtGui.QVBoxLayout() + self.LoggerLayout.addWidget(self.logger_portal) + self.GroupLogger.setLayout(self.LoggerLayout) + #self.GroupLogger.setFixedWidth(450) + + + #connections + # self.btnLoader.clicked.connect(self.SearchProxyPlugins) + self.connect(self.comboxBoxIPAddress,QtCore.SIGNAL('currentIndexChanged(QString)'),self.checkStatusClient) + self.btnEnable.clicked.connect(self.enableInternetConnection) + self.btncancel.clicked.connect(self.disableInternetConnection) + # self.btnbrownser.clicked.connect(self.get_filenameToInjection) + # add widgets + self.mainLayout_settings.addWidget(self.GroupSettings) + self.mainLayout_settings.addWidget(self.GroupLogger) + + + + self.TabPlugins = QtGui.QTableWidget() + self.TabPlugins.setColumnCount(5) + self.TabPlugins.setRowCount(len(self.plugins)) + self.TabPlugins.resizeRowsToContents() + self.TabPlugins.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + self.TabPlugins.horizontalHeader().setStretchLastSection(True) + self.TabPlugins.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) + self.TabPlugins.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) + self.TabPlugins.verticalHeader().setVisible(False) + self.TabPlugins.verticalHeader().setDefaultSectionSize(27) + self.TabPlugins.setSortingEnabled(True) + self.THeaders = OrderedDict([ ('Captive Name',[]),('Preview',[]),('Author',[]),('Settings',[]),('Description',[])]) + self.TabPlugins.setHorizontalHeaderLabels(self.THeaders.keys()) + self.TabPlugins.horizontalHeader().resizeSection(0,158) + self.TabPlugins.horizontalHeader().resizeSection(1,80) + + # add on tab + self.page_1.addWidget(self.TabPlugins) + self.page_2.addWidget(self.scroll_settings) + + # get all plugins and add into TabWidget + Headers = [] + for plugin in self.plugins: + if plugin.ConfigParser: + self.bt_SettingsDict[plugin.Name] = QtGui.QPushButton('Settings') + self.bt_SettingsDict[plugin.Name].clicked.connect(partial(self.setSettingsPlgins,plugin.Name)) + else: + self.bt_SettingsDict[plugin.Name] = QtGui.QPushButton('None') + + if (path.isfile(plugin.Preview)): + self.btn_previewSettings[plugin.Name] = QtGui.QPushButton('Preview') + self.btn_previewSettings[plugin.Name].setObjectName(plugin.Preview) + self.btn_previewSettings[plugin.Name].clicked.connect(partial(self.showPreviewCaptivePortal,plugin.Name)) + else: + self.btn_previewSettings[plugin.Name] = QtGui.QPushButton('Not found') + + self.check_PluginDict[plugin.Name] = QtGui.QRadioButton(plugin.Name) + self.check_PluginDict[plugin.Name].setObjectName(plugin.Name) + self.check_PluginDict[plugin.Name].clicked.connect(partial(self.setPluginOption,plugin.Name)) + self.THeaders['Captive Name'].append(self.check_PluginDict[plugin.Name]) + self.THeaders['Preview'].append(self.btn_previewSettings[plugin.Name]) + self.THeaders['Author'].append(plugin.Author) + self.THeaders['Settings'].append({'name': plugin.Name}) + self.THeaders['Description'].append(plugin.Description) + for n, key in enumerate(self.THeaders.keys()): + Headers.append(key) + for m, item in enumerate(self.THeaders[key]): + if type(item) == type(QtGui.QRadioButton()): + self.TabPlugins.setCellWidget(m,n,item) + elif type(item) == type(dict()): + self.TabPlugins.setCellWidget(m,n,self.bt_SettingsDict[item['name']]) + elif type(item) == type(QtGui.QPushButton()): + self.TabPlugins.setCellWidget(m,n,item) + else: + item = QtGui.QTableWidgetItem(item) + self.TabPlugins.setItem(m, n, item) + self.TabPlugins.setHorizontalHeaderLabels(self.THeaders.keys()) + + # check status all checkbox plugins + for box in self.check_PluginDict.keys(): + self.check_PluginDict[box].setChecked(self.config.get_setting('plugins',box,format=bool)) + + self.btn_updateCaptive = QtGui.QPushButton("Update") + self.btn_updateCaptive.setIcon(QtGui.QIcon('icons/updates_.png')) + self.btn_updateCaptive.setFixedWidth(130) + self.btn_updateCaptive.clicked.connect(self.disableBtnForUpdates) + + + self.mainLayout.addWidget(self.tabcontrol) + self.mainLayout.addWidget(self.btn_updateCaptive) + self.layout = QtGui.QHBoxLayout() + self.layout.addWidget(self.scroll) + self.setLayout(self.layout) + + + def disableBtnForUpdates(self): + ''' update captive portals from github ''' + self.btn_updateCaptive.setEnabled(False) + self.btn_updateCaptive.setText('Downloading...') + QtCore.QTimer.singleShot(3000, lambda: self.downloadCaptiveportals()) + + def downloadCaptiveportals(self): + ''' check interfaces on background ''' + try: + data_file = urlopen(C.EXTRACAPTIVETHEMES) + with open(C.CAPTIVETHEMESZIP,'wb') as output: + output.write(data_file.read()) + except Exception as e: + self.btn_updateCaptive.setEnabled(True) + self.btn_updateCaptive.setText('Update') + return QtGui.QMessageBox.information(self, 'Error: Download data ',str(e)) + + zip_ref = ZipFile(C.CAPTIVETHEMESZIP, 'r') + zip_ref.extractall(C.TEMPPATH) + zip_ref.close() + + source_path_templates = C.CAPTIVEPATH_TMP_TEMPLATES + source_path_plugins = C.CAPTIVEPATH_TMP_PLUGINS + config_captive = SettingsINI(C.PATHCAPTIVEFINI) + + for plugin in config_captive.get_all_childname('plugins'): + if (not plugin in self.config.get_all_childname('plugins')): + + system('cp -r {src} {dst}'.format(src=source_path_templates+plugin, + dst=C.CAPTIVE_PATH_TEMPLATES)) + self.config.set_setting('plugins', plugin, False) + + for subplugin in config_captive.get_all_childname('set_{}'.format(plugin)): + if subplugin != 'Default': + self.config.set_setting('set_{}'.format(plugin), subplugin, False) + else: + self.config.set_setting('set_{}'.format(plugin), subplugin, True) + + system('cp {src} {dst}'.format(src='{}{}.py'.format(source_path_plugins,plugin), + dst=C.CAPTIVE_PATH_PLUGINS)) + + self.btn_updateCaptive.setEnabled(True) + self.btn_updateCaptive.setText('Update') + QtGui.QMessageBox.information(self,'Update Captive-Portals', + "Already up-to-date. Please restart WiFi-Pumpkin to apply this update.") + + + def enableInternetConnection(self): + ipaddress = str(self.comboxBoxIPAddress.currentText()) + exec_bash('iptables -D FORWARD -s {ip} -j REJECT'.format(ip=ipaddress)) + exec_bash('iptables -I FORWARD -s {ip} -j ACCEPT'.format(ip=ipaddress)) + self.btnEnable.setEnabled(False) + self.btncancel.setEnabled(True) + self.ClientsLogged[ipaddress]['Status'] = True + self.logger_portal.addItem('Allow access the internet to {}'.format(ipaddress)) + + def disableInternetConnection(self): + ipaddress = str(self.comboxBoxIPAddress.currentText()) + exec_bash('iptables -D FORWARD -s {ip} -j ACCEPT'.format(ip=ipaddress)) + exec_bash('iptables -I FORWARD -s {ip} -j REJECT'.format(ip=ipaddress)) + self.btnEnable.setEnabled(True) + self.btncancel.setEnabled(False) + self.ClientsLogged[ipaddress]['Status'] = False + self.logger_portal.addItem('Deny access the internet to {}'.format(ipaddress)) + + + def checkStatusClient(self): + if (str(self.comboxBoxIPAddress.currentText()) != ''): + if (self.ClientsLogged[str(self.comboxBoxIPAddress.currentText())]['Status']): + self.btnEnable.setEnabled(False) + self.btncancel.setEnabled(True) + return None + self.btnEnable.setEnabled(True) + self.btncancel.setEnabled(False) + + def showPreviewCaptivePortal(self, plugin, status): + self.preview_form = CaptivePortalPreviewImage(plugin, self.btn_previewSettings[plugin].objectName()) + self.preview_form.show() + + def search_all_ProxyPlugins(self): + ''' load all plugins function ''' + plugin_classes = plugin.CaptiveTemplatePlugin.__subclasses__() + for p in plugin_classes: + self.plugins.append(p()) + + def setSettingsPlgins(self,plugin): + ''' open settings options for each plugins''' + key = 'set_{}'.format(plugin) + self.widget = CaptivePortalSettings(key,self.config.get_all_childname(key)) + self.widget.show() + + def getPluginActivated(self): + for plugin in self.plugins: + if (self.config.get_setting('plugins',plugin.Name,format=bool)): + self.plugin_activated = plugin + self.plugin_activated.initialize() # change language if exist + return self.plugin_activated + + + def shutdown(self): + self.logger_portal.clear() + self.comboxBoxIPAddress.clear() + self.ClearRules() + self.ClientsLogged = {} + + def boot(self): + + # self.reactor = ThreadCaptivePortalHTTPServer('0.0.0.0',80,plugin_activated,self.parent.currentSessionID) + # self.reactor.requestCredentails.connect(self.LogOutput) + # self.reactor.requestLogin.connect(self.allowAccessLogin) + # self.reactor.setObjectName(self.Name) + + self.reactor= ProcessThread({'python': ["server.py", + '-t',self.getPluginActivated().TemplatePath, '-r',self.parent.SessionConfig.DHCP.conf['router'], + '-s',self.getPluginActivated().StaticPath]}, "plugins/captivePortal/") + self.reactor._ProcssOutput.connect(self.LogOutput) + self.reactor.setObjectName(self.Name) + + # settings iptables for add support captive portal + IFACE = self.parent.SessionConfig.Wireless.WLANCard.currentText() + IP_ADDRESS = self.parent.SessionConfig.DHCP.conf['router'] + PORT= 80 + + print('[*] Settings for captive portal:') + print(" -> Allow FORWARD UDP DNS") + self.search[self.Name+"_forward"] = str('iptables -A FORWARD -i {iface} -p tcp --dport 53 -j ACCEPT'.format(iface=IFACE)) + print(" -> Allow traffic to captive portal") + self.search[self.Name+"_allow"] = str('iptables -A FORWARD -i {iface} -p tcp --dport {port} -d {ip} -j ACCEPT'.format(iface=IFACE, port=PORT, ip=IP_ADDRESS)) + print(" -> Block all other traffic in access point") + self.search[self.Name+"_block"] = str('iptables -A FORWARD -i {iface} -j DROP '.format(iface=IFACE)) + print(" -> Redirecting HTTP traffic to captive portal") + self.search[self.Name+"redirect"] = str('iptables -t nat -A PREROUTING -i {iface} -p tcp --dport 80 -j DNAT --to-destination {ip}:{port}'.format(iface=IFACE,ip=IP_ADDRESS, port=PORT)) + + + self.SetRules(self.Name+"_forward") + self.SetRules(self.Name+"_allow") + self.SetRules(self.Name+"_block") + self.SetRules(self.Name+"redirect") + + # print('[*] Settings for captive portal:') + # print(" -> Allow FORWARD UDP DNS") + # call(["iptables", "-A", "FORWARD", "-i", IFACE, "-p", "udp", "--dport", "53", "-j" ,"ACCEPT"]) + # print(" -> Allow traffic to captive portal") + # call(["iptables", "-A", "FORWARD", "-i", IFACE, "-p", "tcp", "--dport", str(PORT),"-d", IP_ADDRESS, "-j" ,"ACCEPT"]) + # print(" -> Block all other traffic in access point") + # call(["iptables", "-A", "FORWARD", "-i", IFACE, "-j" ,"DROP"]) + # print(" -> Redirecting HTTP traffic to captive portal") + # call(["iptables", "-t", "nat", "-A", "PREROUTING", "-i", IFACE, "-p", "tcp", "--dport", "80", "-j" ,"DNAT", "--to-destination", "{}:{}".format(IP_ADDRESS, PORT)]) + + + + def addClientCtrlManager(self,IPADDRESS): + ''' get data output and add on QtableWidgets''' + #for name in self.pluginsName: + clientsTabHome = self.parent.Home.DHCP.ClientTable.APclients + self.ClientsLogged[IPADDRESS] = { 'MAC': 'unknow', 'Status': True} + for mac_address in clientsTabHome.keys(): + if (clientsTabHome[mac_address]['IP'] == IPADDRESS): + self.ClientsLogged[IPADDRESS]['MAC'] = clientsTabHome[mac_address]['MAC'] + + self.comboxBoxIPAddress.addItems([IPADDRESS]) + self.logger_portal.addItem('Authorized user: [ IP: {} MAC: {} ]'.format(IPADDRESS, + self.ClientsLogged[IPADDRESS]['MAC'])) + + def LogOutput(self, data): + if self.FSettings.Settings.get_setting('accesspoint', 'statusAP', format=bool): + self.dockwidget.writeModeData(data, self.plugin_activated.Name) + self.logger.info(data) + + try: + dict_data = literal_eval(data) + self.addClientCtrlManager(dict_data.keys()[0]) + except Exception: + pass + + def setPluginOption(self, name,status): + ''' get each plugins status''' + self.config.set_setting('plugins',name,status) + for plugin in self.plugins: + if (plugin.Name != name): + self.config.set_setting('plugins',plugin.Name,False) + + + + def Serve(self,on=True): + pass + + def onProxyEnabled(self): + self.SetRules(self.Name) + diff --git a/core/servers/proxy/package/ProxyMode.py b/core/servers/proxy/package/ProxyMode.py index 72bc878..16b1839 100644 --- a/core/servers/proxy/package/ProxyMode.py +++ b/core/servers/proxy/package/ProxyMode.py @@ -45,7 +45,8 @@ def __init__(self,parent): ' --destination-port 80 -j REDIRECT --to-port ' + self.FSettings.redirectport.text()), 'dns2proxy': str('iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53'), 'bdfproxy': str('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080'), - 'PumpkinProxy': str('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080')} + 'PumpkinProxy': str('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080') + } self.search[self.Name]=self.iptablesrules self.popup = QtGui.QWidget() @@ -145,13 +146,14 @@ def shutdown(self): @property def isEnabled(self): pass - def optionsRules(self): - return "No Rules" + def Initialize(self): pass + def optionsRules(self,type): ''' add rules iptable by type plugins''' return self.search[type] + def SetRules(self,strrules=""): items = [] for index in xrange(self.FSettings.ListRules.count()): @@ -178,13 +180,13 @@ def LogOutput(self,data): def Configure(self): self.ConfigWindow.show() - def unset_Rules(self,type): + def unset_Rules(self,iptables): ''' remove rules from Listwidget in settings widget''' items = [] for index in xrange(self.FSettings.ListRules.count()): items.append(str(self.FSettings.ListRules.item(index).text())) for position,line in enumerate(items): - if self.optionsRules(type) == line: + if self.optionsRules(iptables) == line: self.FSettings.ListRules.takeItem(position) def SaveLog(self): pass diff --git a/core/utility/constants.py b/core/utility/constants.py index fd71482..44793aa 100644 --- a/core/utility/constants.py +++ b/core/utility/constants.py @@ -1,5 +1,5 @@ import os - +from tempfile import gettempdir dir_of_executable = os.path.dirname(__file__) # window constants @@ -43,6 +43,7 @@ # logging LOG_PUMPKINPROXY = 'logs/AccessPoint/pumpkin-proxy.log' +LOG_CAPTIVEPORTALPROXY = 'logs/AccessPoint/captivePortal-proxy.log' LOG_URLCAPTURE = 'logs/AccessPoint/urls.log' LOG_CREDSCAPTURE = 'logs/AccessPoint/credentials.log' LOG_TCPPROXY = 'logs/AccessPoint/tcp-proxy.log' @@ -61,6 +62,7 @@ CONFIG_INI = 'core/config/app/config.ini' TCPPROXY_INI = 'core/config/app/tcpproxy.ini' PUMPPROXY_INI = 'core/config/app/proxy.ini' +CAPTIVEPORTAL_INI = 'core/config/app/captive-portal.ini' TEMPLATES = 'templates/fakeupdate/Windows_Update/Settins_WinUpdate.html' TEMPLATES_WWW = 'templates/www/portal/index.html' TEMPLATE_PH = 'templates/phishing/custom/index.html' @@ -87,3 +89,13 @@ YELLOW = '\033[33m' RED = '\033[91m' ENDC = '\033[0m' + +# extra captive portal themes +EXTRACAPTIVETHEMES = 'https://github.com/mh4x0f/captiveportals/archive/master.zip' +CAPTIVETHEMESZIP = '{}'.format(gettempdir() + "/download.zip") +PATHCAPTIVEFINI = '{}/captiveportals-master/settings.ini'.format(gettempdir()) +TEMPPATH = gettempdir() +CAPTIVEPATH_TMP_TEMPLATES = '{}/captiveportals-master/templates/'.format(gettempdir()) +CAPTIVEPATH_TMP_PLUGINS = '{}/captiveportals-master/plugins/'.format(gettempdir()) +CAPTIVE_PATH_TEMPLATES = 'plugins/captivePortal/templates/' +CAPTIVE_PATH_PLUGINS = 'plugins/captivePortal' diff --git a/core/utility/threads.py b/core/utility/threads.py index a186837..6fa809e 100644 --- a/core/utility/threads.py +++ b/core/utility/threads.py @@ -190,9 +190,10 @@ def stop(self): class ProcessThread(QObject): _ProcssOutput = pyqtSignal(object) - def __init__(self,cmd,): + def __init__(self,cmd,directory=None): QObject.__init__(self) self.cmd = cmd + self.directory = directory def getNameThread(self): return '[New Thread {} ({})]'.format(self.procThread.pid(),self.objectName()) @@ -204,6 +205,8 @@ def readProcessOutput(self): def start(self): self.procThread = QProcess(self) + if (self.directory): + self.procThread.setWorkingDirectory(self.directory) self.procThread.setProcessChannelMode(QProcess.MergedChannels) QObject.connect(self.procThread, SIGNAL('readyReadStandardOutput()'), self, SLOT('readProcessOutput()')) self.procThread.start(self.cmd.keys()[0],self.cmd[self.cmd.keys()[0]]) diff --git a/core/widgets/pluginssettings.py b/core/widgets/pluginssettings.py index bcb6867..86c1ef4 100644 --- a/core/widgets/pluginssettings.py +++ b/core/widgets/pluginssettings.py @@ -3,6 +3,8 @@ import modules as GUI from core.loaders.models.PackagesUI import * import core.utility.constants as C +import os +from functools import partial """ Description: This program is a core for modules wifi-pumpkin.py. file which includes all Implementation @@ -286,4 +288,101 @@ def GUI(self): self.layout.addWidget(self.GroupBox) self.layout.addWidget(self.btnSave) self.main.addWidget(self.widget) + self.setLayout(self.main) + +class CaptivePortalSettings(PumpkinModule): + def __init__(self,plugin,items,parent=None): + super(CaptivePortalSettings, self).__init__(parent) + self.setWindowTitle('Settings: {} '.format(plugin[4:])) + self.THeaders = {'Language':[] } + self.config = SettingsINI(C.CAPTIVEPORTAL_INI) + self.main = QtGui.QVBoxLayout() + self.plugin_items = items + self.plugin_key = plugin + self.options = {} + self.setGeometry(0,0,300, 250) + self.center() + self.GUI() + + def addRowTableWidget(self, _key, _value): + ''' add items into TableWidget ''' + self.options[_key] = QtGui.QRadioButton(_key) + self.options[_key].setObjectName(_key) + self.options[_key].setChecked(_value) + self.SettingsLayout.addRow(self.options[_key]) + self.options[_key].clicked.connect(partial(self.setPluginOption,self.options[_key].objectName())) + + def setPluginOption(self, name,status): + ''' get each plugins status''' + # enable realtime disable and enable plugin + self.config.set_setting(self.plugin_key,name,status) + for plugin in self.plugin_items: + if (plugin != name): + self.config.set_setting(self.plugin_key,plugin,False) + + def GUI(self): + self.TabSettings = QtGui.QTableWidget(len(self.plugin_items),2) + self.GroupBox = QtGui.QGroupBox(self) + self.widget = QtGui.QWidget() + self.layoutGroup = QtGui.QVBoxLayout(self.widget) + self.GroupBox.setLayout(self.layoutGroup) + self.GroupBox.setTitle('Options') + + + self.GroupSettings = QtGui.QGroupBox() + self.GroupSettings.setTitle('Language settings:') + self.SettingsLayout = QtGui.QFormLayout() + self.GroupSettings.setLayout(self.SettingsLayout) + + for item in self.plugin_items: + self.addRowTableWidget(item,self.config.get_setting(self.plugin_key,item, format=bool)) + + self.layout = QtGui.QVBoxLayout(self.widget) + self.layoutGroup.addWidget(self.GroupSettings) + self.layout.addWidget(self.GroupBox) + self.main.addWidget(self.widget) + self.setLayout(self.main) + +class LabelImageViewResize(QtGui.QWidget): + #https://stackoverflow.com/questions/44505229/pyqt-automatically-resizing-widget-picture + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent=parent) + self.p = QtGui.QPixmap() + + def setPixmap(self, p): + self.p = p + self.update() + + def paintEvent(self, event): + if not self.p.isNull(): + painter = QtGui.QPainter(self) + painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform) + painter.drawPixmap(self.rect(), self.p) + + +class CaptivePortalPreviewImage(PumpkinModule): + def __init__(self,plugin,image,parent=None): + super(CaptivePortalPreviewImage, self).__init__(parent) + self.setWindowTitle('Preview Captive Portal: {} '.format(plugin)) + self.image_preview = image + self.setGeometry(0,0,500, 400) + self.main = QtGui.QVBoxLayout() + self.center() + self.GUI() + + def GUI(self): + self.widget = QtGui.QWidget() + self.layoutGroup = QtGui.QVBoxLayout(self.widget) + self.GroupBox = QtGui.QGroupBox(self) + self.GroupBox.setLayout(self.layoutGroup) + + self.lb = LabelImageViewResize(self) + self.pixmap = QtGui.QPixmap(os.getcwd() + "/{}".format(self.image_preview)) + self.lb.resize(1024, 720) + self.lb.setPixmap(self.pixmap.scaled(self.lb.size(), QtCore.Qt.IgnoreAspectRatio)) + + self.layout = QtGui.QVBoxLayout(self.widget) + self.layoutGroup.addWidget(self.lb) + self.layout.addWidget(self.GroupBox) + self.main.addWidget(self.widget) self.setLayout(self.main) \ No newline at end of file diff --git a/icons/captive_portal.png b/icons/captive_portal.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6899fb83164fb66cf3e69014758ae5dd6a72bb GIT binary patch literal 928 zcmV;R17G}!P)hs%noRAR^{)I}YIi9Kc?*@jK4rYn;PIL~IYEU)VE9 zlWCNbH0sq7hF$#3J0GV)N2%A3-9 zP}S~^s4HNlr2H~2R%m|#IgxYH%3T|E1gvV@6E;kyEvi`{NpCeQk zyIw%)IuH@_(#+89o41x!pN)t+GUe@v__;2rh?vEy6m!>bIU;hglNS&XOVYw~H|D!u z&FAVDoqdui-^N|lX!l@6%C**{pg$K8CvqwHKLkWXOCtYb?tKa7aA&4Gmp)Xrx7KCz zpfsB6{hOg&4D6SZtR`v3sL;YuiCYhH0_HWGlShnM85iF5v(Qw)PWJm!jJ7m0^`pOh zMn!I;7SNLN{SLNpDN}C~8(sewRE)!MxX_WV-1oERpQozoPb|& zX5@70568{Df&c +""" + + +class DarkLogin(CaptiveTemplatePlugin): + meta = { + 'Name' : 'DarkLogin', + 'Version' : '1.0', + 'Description' : 'Example is a simple portal default page', + 'Author' : 'Pumpkin-Dev', + 'TemplatePath' : 'templates/DarkLogin', + 'StaticPath' : 'templates/DarkLogin/static', + 'Preview' : 'plugins/captivePortal/templates/DarkLogin/preview.png' + } + + def __init__(self): + for key,value in self.meta.items(): + self.__dict__[key] = value + self.dict_domain = {} + self.ConfigParser = False \ No newline at end of file diff --git a/plugins/captivePortal/__init__.py b/plugins/captivePortal/__init__.py new file mode 100644 index 0000000..f8d8359 --- /dev/null +++ b/plugins/captivePortal/__init__.py @@ -0,0 +1,5 @@ +#Hack grabbed from http://stackoverflow.com/questions/1057431/loading-all-modules-in-a-folder-in-python +#Has to be a cleaner way to do this, but it works for now +import os +import glob +__all__ = [ os.path.basename(f)[:-3] for f in glob.glob(os.path.dirname(__file__)+"/*.py")] \ No newline at end of file diff --git a/plugins/captivePortal/flask_demo.py b/plugins/captivePortal/flask_demo.py new file mode 100644 index 0000000..a7d18f2 --- /dev/null +++ b/plugins/captivePortal/flask_demo.py @@ -0,0 +1,50 @@ +import re +from ast import literal_eval +from plugins.captivePortal.plugin import CaptiveTemplatePlugin + +""" +Description: + This program is a core for wifi-pumpkin.py. file which includes functionality + plugins for Pumpkin-Proxy. + +Copyright: + Copyright (C) 2015-2016 Marcos Nesster P0cl4bs Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +""" + + +class FlaskDemo(CaptiveTemplatePlugin): + meta = { + 'Name' : 'FlaskDemo', + 'Version' : '1.0', + 'Description' : 'Example is a simple portal default page', + 'Author' : 'Pumpkin-Dev', + 'TemplatePath' : 'templates/Flask', + 'StaticPath' : 'templates/Flask/static', + 'Preview' : 'plugins/captivePortal/templates/Flask/preview.png' + } + + def __init__(self): + for key,value in self.meta.items(): + self.__dict__[key] = value + self.dict_domain = {} + self.ConfigParser = True + + + def init_language(self, lang): + if (lang.lower() != 'default'): + self.TemplatePath = 'templates/Flask/language/{}'.format(lang) + return + for key,value in self.meta.items(): + self.__dict__[key] = value \ No newline at end of file diff --git a/plugins/captivePortal/loginPage.py b/plugins/captivePortal/loginPage.py new file mode 100644 index 0000000..0ac844c --- /dev/null +++ b/plugins/captivePortal/loginPage.py @@ -0,0 +1,43 @@ +import re +from ast import literal_eval +from plugins.captivePortal.plugin import CaptiveTemplatePlugin + +""" +Description: + This program is a core for wifi-pumpkin.py. file which includes functionality + plugins for Pumpkin-Proxy. + +Copyright: + Copyright (C) 2015-2016 Marcos Nesster P0cl4bs Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +""" + + +class LoginPage(CaptiveTemplatePlugin): + meta = { + 'Name' : 'loginPage', + 'Version' : '1.0', + 'Description' : 'Example is a simple portal default page', + 'Author' : 'Pumpkin-Dev', + 'Language' : 'En', + 'TemplatePath' : 'templates/loginPage', + 'StaticPath' : 'templates/loginPage/static', + 'Preview' : 'plugins/captivePortal/templates/loginPage/preview.png' + } + + def __init__(self): + for key,value in self.meta.items(): + self.__dict__[key] = value + self.dict_domain = {} + self.ConfigParser = False \ No newline at end of file diff --git a/plugins/captivePortal/login_v4.py b/plugins/captivePortal/login_v4.py new file mode 100644 index 0000000..3b51f12 --- /dev/null +++ b/plugins/captivePortal/login_v4.py @@ -0,0 +1,43 @@ +import re +from ast import literal_eval +from plugins.captivePortal.plugin import CaptiveTemplatePlugin + +""" +Description: + This program is a core for wifi-pumpkin.py. file which includes functionality + plugins for Pumpkin-Proxy. + +Copyright: + Copyright (C) 2015-2016 Marcos Nesster P0cl4bs Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +""" + + +class Loginv4(CaptiveTemplatePlugin): + meta = { + 'Name' : 'Login_v4', + 'Version' : '1.0', + 'Description' : 'Example is a simple portal default page', + 'Author' : 'Pumpkin-Dev', + 'Language' : 'En', + 'TemplatePath' : 'templates/Login_v4', + 'StaticPath' : 'templates/Login_v4/static', + 'Preview' : 'plugins/captivePortal/templates/Login_v4/preview.png' + } + + def __init__(self): + for key,value in self.meta.items(): + self.__dict__[key] = value + self.dict_domain = {} + self.ConfigParser = False \ No newline at end of file diff --git a/plugins/captivePortal/plugin.py b/plugins/captivePortal/plugin.py new file mode 100644 index 0000000..a0cf394 --- /dev/null +++ b/plugins/captivePortal/plugin.py @@ -0,0 +1,62 @@ +import logging +from core.utility.collection import SettingsINI +import core.utility.constants as C + + + +""" +Description: + This program is a core for wifi-pumpkin.py. file which includes functionality + plugins for CaptivePortal-Proxy. + +Copyright: + Copyright (C) 2015-2016 Marcos Nesster P0cl4bs Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +""" + +class CaptiveTemplatePlugin(object): + Name = 'plugin template captive-portal' + version = '1.0' + config = SettingsINI(C.CAPTIVEPORTAL_INI) + loggers = {} + + def init_logger(self,session): + self.loggers['CaptivePortal'] = self.setup_logger('CaptivePortal', + 'logs/AccessPoint/captive-portal.log',session) + self.log = self.loggers['CaptivePortal'] + + def init_language(self, lang): + pass + + def getSellectedLanguage(self): + selected_lang,key = None,'set_{}'.format(self.Name) + for lang in self.config.get_all_childname(key): + if (self.config.get_setting(key,lang, format=bool)): + selected_lang = lang + return selected_lang + + def initialize(self): + self.init_language(self.getSellectedLanguage()) + + def setup_logger(self,logger_name, log_file,key=str(), level=logging.INFO): + if self.loggers.get(logger_name): + return self.loggers.get(logger_name) + else: + logger = logging.getLogger(logger_name) + formatter = logging.Formatter('SessionID[{}] %(asctime)s : %(message)s'.format(key)) + fileHandler = logging.FileHandler(log_file, mode='a') + fileHandler.setFormatter(formatter) + logger.setLevel(logging.INFO) + logger.addHandler(fileHandler) + return logger \ No newline at end of file diff --git a/plugins/captivePortal/server.py b/plugins/captivePortal/server.py new file mode 100644 index 0000000..4f8a3f0 --- /dev/null +++ b/plugins/captivePortal/server.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python2.7 + +from flask import Flask, request, redirect, render_template,Response +import urllib +import os,sys +import subprocess +import argparse + +# app = Flask(__name__,static_url_path='/templates/flask/static', +# static_folder='templates/flask/static', +# template_folder='templates/flask') +app = Flask(__name__) + +def login_user(ip): + subprocess.call(["iptables","-t", "nat", "-I", "PREROUTING","1", "-s", ip, "-j" ,"ACCEPT"]) + subprocess.call(["iptables", "-I", "FORWARD", "-s", ip, "-j" ,"ACCEPT"]) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST' and 'login' in request.form and 'password' in request.form: + sys.stdout.write(str({ request.remote_addr: {"login": request.form['login'], "password": request.form['password']}})) + sys.stdout.flush() + login_user(request.remote_addr) + if 'orig_url' in request.args and len(request.args['orig_url']) > 0: + return redirect(urllib.unquote(request.args['orig_url'])) + else: + return render_template('templates/login_successful.html') + else: + return render_template('templates/login.html', orig_url=urllib.urlencode({'orig_url': request.args.get('orig_url', '')})) + +@app.route('/favicon.ico') +def favicon(): + return app.send_static_file('templates/favicon.ico') + + +@app.route('/', defaults={'path': ''}) +@app.route('/') +def catch_all(path): + global REDIRECT + return redirect("http://{}/login?".format(REDIRECT) + urllib.urlencode({'orig_url': request.url})) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('-t','--tamplate' ,dest = 'template', help='path the theme login captive portal') + parser.add_argument('-s','--static' ,dest = 'static', help='path of the static files from webpage') + parser.add_argument('-r','--redirect' ,dest = 'redirect', help='IpAddress from gataway captive portal') + args = parser.parse_args() + REDIRECT = args.redirect + + app.static_url_path = '\{}'.format(args.static) + app.static_folder= '{}'.format(args.static) + app.template_folder= args.template + + app.run('0.0.0.0', port=80) diff --git a/plugins/captivePortal/templates/DarkLogin/preview.png b/plugins/captivePortal/templates/DarkLogin/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2753bf571351556a24416f5208ed746d0be27587 GIT binary patch literal 17993 zcmeIZcT`hZ|2G=Nk;kzhAVsRmAV?9BUgJnp5fK4FLU9s$M|zD8BM<^)RC*midNUv$ z0xBU=Bc0F!300b*B!q=VJbq+! z{%4_|K_Jli`}g#pfIz3DKp>7g|2hp^5rlDm1r8_tpBUW*RS$}+0Vk(iel__O1VW?E zGJpFCI6vci@0mXc#4maLcjEq&Uw(i<26OlIf3*m)-<&<0Y!@6k$so27x6y_YZhIf( z2(?asC=Nc!M+(02J)2|+L4cbx$aS8n*71P=Ee{L}Q$X#5i! z|4fH}lEeQ$^I_TBS*|TR>C_YB$?-co(z3G1VII-_rSj5BnN-m8o|zfj{{F$P(NRbA z=_@*H66bjK+qZ8^tILz(cYgluB&fPho4Jx#cYgo8nay{9ersXo#J{Zl%VjDGKE8k7 z#0i@DS5c9ZnH9uphU1=bHfTJVX>kGgns<`+V+%`50UBtSTk55Xq`3Rfpc!qtTQaB& z!P}V$O*#W=YGy(~)@MbIS18bZ1TXM;=LzW)aQHJ>{RD9MMe-5w`L}3lJLTl$WM*gA z9@3X~0`zj*wr7izcJopnsAufy#3f@7V>dUqfXY@08=Fj|it*{wrwdDH*z~+Sh4D&x zz7$I=56E`z+mGkyQ-8+1;RRWlJ$b?dX$-LAx&DIQ!VIUYfp5|2Q(1`v-vlAB1{ zJGcT703sowU1wfaxVpQ`q~6@NX#fW0sT6S6ua=feq)qqgz*ejG-vcR~9^0r1FCV$5 zwuXJFA$AS3v!^papbx*RpYZ*uuFfAjJl3A<1@!tX@Xut^v$Bu~1cEfTv^2dq4TQWx zjxpk-N3Ts=va2q^$q3g%n)@CW7FJjT|EsAnXeQYhv0M_ku@#s33Pw?jjX|bVd^KI4 zoD+Y#hE)$@ntA9;!2X3rYMKN zrl+OnRJ)RDf(W8xGdGDkkVPJZcC5Hak+5VO`7!H2GKD~Ef%-$dECg!Y=J$F+79LWk ztmuDKyKg0EwN4cj$#mT9zuTXb*oEMgB9DIE7(NYBhz16#ETwAt!`e!`)5}GfUfKAf zdKeUXTc$#$u*H3!<0yY&VRbDM-PG8SoRT77toAt6E}*&s72lJ;DwZzuw7Q^Jqs68I z3jIs%a7X>m3VVU@AfLGL;kDK6H3Y9qEYugO+FSm;uqaICQJyGjcObt~aSOv9oV2#$ zfko>0Rk}!bKX5N>uToJ}HOSV{;$Pvy3((3G`Ma+dc;Rw}%yjuU^k9m*iu^}MFvS${ zJ%ue(ul}@gY{P(wB3M(<UmW5Q#|pS2!~C9Y2uNG=yt7Rsuonsy=E+lRDTE~W&YADWuuQ6aEK zJ*T-L6;g!?46OinSIq|%X}PV1Q0+&~w6uz~Hd*_+`WxlWMg`Bw+2`?w!JeD&`~bvp3x?(Qny))aCH z3xj!jYL5q3LS}BV=N1?FE`0N;trwGW*HpzW$E>LzZseAbj|8^#LQ zyKv5k_?-Lt3nasww?1%}027N72s48H65ju2;gkA^7VrLgR$={%>x0=jO&`S1z8fO$ zLIY?Qx;s~gSxM*ijo|nF160S1)(&caJn2FdA5N97f<;WlG=-yK^mXB+xjJJMaeP=P z5H?F$+;u5XfVZKC)EOk#s3!l`V1HJ7N7Bx%)gi-#=1WMdjvP1F<=dcSBIDQ}c z3xD$w5^c~cjs1{SXY0aOHAE0m45tQ&I4J(~b%Rhhq$FTAGJZ+c^k*4`%Sq9(oK`wI zq-+8vR~`Mr=1udbRXqN2Sq&;>;z~wd$KI#wr;Yec!DSWCyaEP7vNe_L+cN7q-7$?+Rj-_=x+|k?>aL$Ve>K)XP(0QU#HvY#$w0%2kb=7rDlnt(8%S2uQ}mN zilE(){EIYudXbEfP;V_x2>FI@Io9i#>&RR!VSKFsv*Nm|bH z?D{J#X~(@SE%iWDO*i5=YNq(Y#pS41^DcgzB=PK8{YxO@wMW=td6C(rlubXjWDU60 z%RvLf0h%Ab_6Q_rZf`HPzaNNgPg8&=FwspdgrT{RAfghbi^c2be63(1$pkH>^`paQ zwx|$f7}iSeThbV>*E+DYxGS2qH8dnr>7F4lChZ30M*aRj(_?GZ>kS`K|o~dQ!a!D~Y(d%?; zk7WpIz1^-54fJVHr|e7h6P>}XGK1Nd5z=mPTHBt8 za?8{AEb4s_TDuiq=h_6@CvLUnx5=?XGLgHxcY#dV^J&9lH)e9E<#6qGk=g;TSCF@x zOK)Eve@Cv>xS*Em?16^i=`cr+z?9&>`cpE<3odLA}IFJEbn-{Dib zI_Jp8$2TgI!>QnjFw<|Y)#~|4{ugN%Kqna z^fcpEK|{U7lt*#F_UPk9E1{gc8;Q$6f}b4a8Au@<)%Lo2L&Sr<90ckmBov?Kw09$O zYqW(X>J7{juo-h_YslFts192LJxGA6;kkV(_D8dL_T|J+ue(=WJ(32KmP>1@6MBcg zyY|g(4-O{!O)O6df+N>pCv1^rWm&iVFLXN5CC_%=4tdtEeZa5B`zDrh}n zzkXNIcgIz`xr0XH*lb=<|53F~pqD8zF}waN|AEI&@?8jj8Ch9}ouxZ2E-tXJuua=Rvux13O&sqXchad3#g#?s zlm|en_m%HDb4A7fZv%|~gU>rNZ+F~skOS~(<5|Cx*5=F0%kh9NHXn5L5y+#rf5Wq1 zLGBU_(4MAWsh_CSFds2L384NNLtxn-cxG)K*HhM$o{^)-d3^EogCKCzM2*x5`}|Cy zETkl;sV#ru6ZFiL^Ai74zG_Nre!~BOAIQ}pU*W!$kdyaJ03GY)^eB^Q`_ROM|KGF& z=zwZ+ECNkIlf>@W95agFn$Rb$73|=J+!gPT}x)bpQT+3oA<_gV5KvPJkw! ziLrL^gqXt^Y59GPvz6yr9;YfbEK@AaY@R%s;Q)F6F+5ybT2Uptb>cm+_Y1A>C|Bkk-gEaYAzGBPp*MTL&+RPvr~bQ98EE92 z8JY`3CFDftQgd=|jytb=2*JL@1P&1%i}Ec=5;9+>=VZst@#09U^Bcp4D;6ra zoau3ca4*Z`m1mK^U3D(L4lS*bO3D^X%qXg=#@P8=wQW@|8&f4GzSYZaZA+sF0;n#c zn6Ui#%`)po9kD4}J{?YsXzWef_mVO~Q{+LD^@5^mPc#*ef7I2vrsUV87GBMlS5436 z4o=IB!*N~EH&`!ja`E>cU8)J6w`LB|Ipq=M4TF=-`6@!?wcAb%u*SGJ4waqs+N71d zmAVkZ+D9M_NpRen+9RA#8(@}cGQ&s3g>f6Wfl2>M63mF?!h0I)1pkF&lMRffUu!=e8RrR<2(Pw6b|Bc@_DNyR+-Y%BvCBz>sievJwYwiRYYKE4f(^4L*`C^w zzH57FUm^{%OFdCJ1X#DDkM_}ko?nwxxM@6YCRnDR%4zLw0|->353CMqkDq;PT$XrT z40CnG`mk06NHb_wD6a&-zMfj~sx6<&BM1s-4Fpx(%uLn!)c~ePjUX$IDv80&_~aA& zs&74c=LJdKoci{9#As@~(J1g?7h>y^@grjTn$~5h?wwa6!TQs^L%dE-ih(<>BH|r; z3B8#O<6nton0GpgXwo#VOIX3mj(_b*(98~C(NuT5eJfq#l~AP>+&!3Dn=Yy@DpjrR zW%S!kXRAv{1m=|>q!dv_o8t>^urye6FEMrm^q@ESZ_*QcUES3MuEdY1UN?fe1}N{u z41XK-WpUINbO1v8PZ?(tgjreC`wT3@3DMV__f;SiZ^ z68(6)oyMk9{eu#^5>i`OVg3?NEW94{lOtL*HqUap$f zlrVlP{Ce&r{Mz6{edQVS4QiXa)lB0Ssp5_8NYL3r#bngoQrYDkSNDX}bR;XkC|^|X z3yi>4)%Q1#s!RUnx@=M)ygV_ z9(qQsXRTbX5lKX6L|A<4FWP;a-FQ(6#^D#jW`!^zQUyK@+L-_|h%q*lvh`{u2nuD! zmsTQ+%i|ixyW^S{JmE+mAcYa{&dGh30A!>ajAq0T#fhQ9#~XU*hCI?q$=ueHlKqyD zZnOUpHTDp@NK&yjPQCf6CB84a=p^Vz{4v1vx3o0!ih8f3%P%2oB#}IBIE#(G`cwt1 zauFZAqLT0I=J>_Q*1HveRp|rcV`FxLm;Iv3V_&}!?2r1Tz_A#B!8G16)nz>WUl#mOrtgyvG$2JXPV6ImS(1Ek0uW_%=@;-3n zPklrwtxP;GUr#_Kb=`?7#@*J_ae-ZPhnidYTT}`TKc1^qR2?(u&)tNGyz;BMe)@FU z&B7KxyV1&s{&6knZ28qwK)~dC&c>L4t>id!~6)ru1n7l-#WvRI$e z^Bjch1X5G%s9n+Pr7}}$%0`#YnXl8Tn{*@6QA4aZ>1EZ3<-=}QFR%E9nDTV-O~eXU zcKkwl!)j@+I@@};h;L|S@{-AbiJuY1%UEwTWuU7w;~kp4dMBH)vRCij=%~9alUZ1& z7!EgNkiH=ac@RpDfxo}m&=h~D*5x&w%Q~<$R>oiw)d>GJVpLffC%QQ>lnZtUrACw> zS0IY+q;kJ&N?Mv1+s&PZ(%X}$Ocmt`Bkaaw5e;AMmX+@X6_QZYh znm;w6-P5W|z6L%q3q8-P4)UEA77~+71r6U?`FnZ{9=*)Z5$I!0ZEJz&Sk1PEbe^l^Z|#9zeq$ zgE6%&2iARh=(>VtYYvdD52y2KGMU4)tE?FfJ%2|titkLN#%F*Nh0tBRSQ%%J2M=IP zdA(O3f;tD@z?YZv+W%v7y~Qh@0BkSa@K^PBj=iyn9b?e^GKFxq@~2}`-y{S0XSTR$}#BGf6etxU0> zB}zy$V4<5~Gq(7%inKQ!>g=Ok%(j;qi$gdy)f6mHCw_D|yt5=n)IAMj>A)}TV%w1& zX<13H!Ax>`xa0dK_@~!LeGT-_@c3r1gY9|SZdx|$#eX?(zOte7=gp{fHK?~B_7OuRD00Tm~S0=UUMscIFBu5MvbP)VUw1AyJlr~8SSQ*jG^R0u}%S=$YJr2 zGx%^j3&S4vVHi98#7iqs-U`UKZ}OrO*w-{!4#nfb30v3;>3Zk~Xx;o#wBa|WDyBt> z*gJ5oM)=*bJ~-r6WXIz9Xw}QP((S!)poe zvgvEGr%=t->b0I=`~7n1Svxu6Jr{iUXGgT{kXX@nxTPN_sEH47c76L+69r}Xcj^3d z^dmDWN3g+t^s;2=(YUmmOsdjZ6dRSUaD6DEhqXnpR-cgS%`Ds#47-0C%A$ON zYSgV`q{IKRJ`M8L0Fe63?OY_C9ok?$XrZj%LyI&`KI(2wz5Y?|sl&T{OYB|mUr1|x zISqdDn9I9xbfxD^phI$$13H33K7vKDR%Zt}ZezhwUrgez0m2=Cc{=4C7tT7wH`h2B zEeaId#+7>6w_S22)UcwZ+sB7EH}2FYjD)HWmAFR z9WzlPqd4p0&q=r$xR#}yi)OI?nwAfhPY?8R9e|)OA^o4Xqi#5ZS^Mem7e7e%hDN!I zz&l*kUN64BDuXVBY4GjBgW9YIKl&sM(`NsuaAnfjadg1{4`9vK2w~g zXMxx`a-l`8?CS4ni|zJFO+<{vWZk~M#1zQwSRF2q)RIMN0nrJh(3cQ{XO_vH)BHu- zaHC}QIF|vPy<08KXxxt9Au=)28bsM;=mOmZxg?v#-l!8W)L1N(!mRI`Q6X$cieevY zlV(J(&lanVf6e|8AeY^-xMniEtKSc%4jYAmKpxS@Q?4MsHjcV1O&Aq1v#adWc_;dw zod%`5@0eY1P_LDH>?k86AYSJP0A1V4@E#x%ajAATd)J>Gd?w1bev}6J%5oo%CS}i@ z@GHB_dNmJoAR|h56LATLE^u}5_~#ui8)uS#Tj+qxFGn3JKv_K-D@ISVFT4eBEe6Pm z^yKb#V7hSaz=Nyx#Tz3}0y*Hggrj|7*W!e2MaODHH~0zmVRvb9zV{x|FK4PWUD^|l;r>A79@<5+}Z!!j|;R`)zjQQl?1`yR5im; zMC#8VVp+saUqliDs7{f%{<2>GKQL&g;vUf5zeVlW^MTcf{dMv}`!pcKc5VU{n=e(W zG&O_UHSJp~Bp_i$;gEREA=sg7+WP-Alz;7ptETO@+Oe~PZ^`kH#Sk=}Tl zd*U0X$1P^q7vywT8eDH|y{Nd67~j&cIu#YXL3qcW?eVFJ=iHj(7v1N>s#>9Uy(mKt zhbYR|JRKefwv8WSR{>YZCa#bt;9EMBA2HC@)ua)Q5$=(~A+^W<{a3xpG&LK8^aJnv z(N34Uy0)E5Z$lyG9k_u|zlKT}Vio3g5H37l}bDB1{E z$R{$;YSfgg3tc#C+{ns^JKXmp&c%|p%&`q<1zq~9Mx5~6;TKAe6w(sZ>6PzDiw+lv zcLLe3?U<4Y#jXa|%i28fV8>Ex+U?}0T`gWT>~eR$ z`rh7~AALX4B*0bV+)2R_a>kJkdMa-`@##}D?z2itiVial7UMkA+tWPqyi!o&r#eOR zO8YgPJl2agc(7AK6xpAmCr*Dtl}Viz^NIBLU=pnIq_;Rgjk10x=Ys%azl_WYi3(`0DB9Jb&(Fq8_?;4kJ4kC#e{&_O{!caUl(9Ew# zu)RmUncZxe>z^?kU+S|KXR@AI&`^Hu!7jJhu9Bke46hL?Cy|0odTUh|aHk^*FuV@C z0zP_A@k4Cf3*@HLA{-c|B8Woz8pm-xOG8)pcuT2G#MKePy1JNAcxro+Q?L6}0bpXf z>d;zBaHNejm|p?>kiwFCMJ%;o~OX(E&W6rla{9hV>3CiqhGGQC_KS#}6Ko>QNWEKH=C`qNwj2o^gl2 z0OlnZ>s}je!D-u)x)QY^?2t%g^{nInwFq9bb z3$oGtP4Fw(@)n5(FYm;10wsiE!BU#_dl7QgJxdMSK0Qqqa?y;djqhHa3N;O|G*u8w z7T3|aNIt7FgxTL}s%yTfxs6e47{@zt9stop5Y_{NXthl?D0oZ&<@@WiAP~Deyrn=V zeAdO(nUUPSl~2#KZd{scayfF}e(p3{JvO-#< zx$s7Pk2ULa%OyV9q6r96Yg&0+FLN^3edp(C$K@TiTikd@W5~AC8gss;yCZZ$4_#C# zg<)}a@Qbs7cd^Y3q(SEq&08URBYC~!ky`~X9}`%QnTH)mLm^F(za&Mj*N}&5wvjMB z?tMEhY%83}OWE4pwVeT_*iq&jdU9K33w-GQK1W*zKT6;#x&Z_DSs}8m=UYnGbFCAIG)A*R05}?f$unUhR9?;al;OJ9gV~sH5K6 ziKBfo^0&gMk=&4h;mprkwH<7O(a8_8a~&ToCV7eN@_9PT53^M#e|ow85U_IW5_94u z+DEuma?txp9@;ZC(-*ZgJ)qt{tRvP5(S8RH9rkGZT?^6p?#9}}n&u63kY_1mD#%&x zkn=Ru(XWl|nc&z*KVrRFNN=0^8jDb(Y+!u4G0{c^t!nHHjC$lEU0pj}G;zGqAlwo? zJEmNXTz;d6-tHVGXY2UOrg(zAz2a+oazn0%&*F9?d+llYNBHicg}AA~s-e&xN|eDzq8a}zUR!{(HJr3@ z$0tBM?B<0_+jJdBMFFkZh1@JrQXmD7#9ioCnk7W1j2eV{`1v;38ki)X7fJ9DRp&2Z zq~@}JymBFDD7`bY>A2C*aFcNlp229vR7e!8&<_l$xgxqjauYo&In zCa)*xy=>47!&dw7ARo&3EIJLt{jefSu@)GlSlt~Yh2n5fcJL_}ek;laPGzZWBDRl+ z@tfX%9PXo?c529EaVD6=nWjT?!6@>ZHS4ezj97l?g)xinRJ$rlzYAE<2TtsW&pTKw zAxY^nF(G~UqrmLJ4%)YADBZwBlgM~;&{zdY~9&im?~ zE4=RRkveWWYrQ9Tezxhk_m$IzwKbATeyUoo4ooad<19?^mioI$h43UN&TT%g%^{21 z0xqVxNj*sW;D+i(1qSiEs|O}P`LiwDC%b+1Of4jvZ5ts>|x(Du~s@umzUGj)OJTi*0O%~a!qf|;_XpU&hYBw z>(_D*gY%GJjpU=t%A4`Q?7bE88$A4)?qRi#G3VC_$MDgWc8`xzxek7Jn4`NoikXpK z>mjql@yK&s<_^rIrh|<{B}%gtmjTsESF^DL<~DZz#gCdO%I6!Gkb_+U;G;CZTMWkI z=A(Q*37+ctZw}p3?A3>UB|i?VYH2!*sTN%^Tbp;!#JA}VK?Y9L7IF6HlAEDhMqoNN zqzxRtWmkiu$tC56$X$?2ZQ4hZ?U2IqVFzPbg}UJhFnCHwV<38ejA$1jwOhS8^epwr zOoS+a;;#VBhXM4#+lBBcghttTUjP24s*iWy1=E`MVK;v6Pw1K~uM;2a`sN$-!TgEv zem%B)-80HN1;JPC=q%T*K$xJXL$nWpk~a#LPaq=)V#a%WA8CYxDQ1eFsZmyH7Zfh{ zxG6fQ*fPcIh{^+h89gY`Oq%;a1b2^cqzs8j#lSJ}TPf0rIJ1L9?x0Oz-T1;uRpJNw5foE6IBLDn2Pukunl>Rm z5^7RfhB`0%D0X#bJX7?Z(cV6DU^ss1`e4_q8vee%#77F<2;ueHB|6!MPel3(?+zSJ zHb;E@!k4X^fqHB0=8#~!a}B6hqF)wB3!kNoh3tfgebgiHk)hKC#vmHB5AacnRm2EYU8c+^+r;F(;qN97!Uovs1zIo|( zNig7uSx}2AD-X^e$voIWrDUXIrkYP!J)T9YsE((0f1?1)j~?Ce4Tqw#YWo4?D1)A+ zIWr$7ZFt==mQ2>8FJ`ATS4CC#?VFp0_V8(>S{ROz;!+9F6+ z5!G>A47M-)5iUU2>}%kdXe8ZD+bLz}!$;EXV%Q!Qswf809Fxd9*x6hs>(GLn;9eK7 z=2*$QrtpPnKRHIrQgx$2Tcnj|8A4E}9h_@(s0y;R0@O6*a_pn7p-;`&id&vu&*Z@m zyM3cJyW?X@A^XzJ*D{6bIBH%~1dlG9<{lkgloEZ|y*er54<4QSt4FRH>L}M??F{>< zEXACZt4N$0o1?`ax_%{hO@?G=9qt-#ZZBr6khZBbN4TaMA>2W{HS5|17CwbnXYSre zD6xk%T;Dxj#3v9sFe{4ORj90%oZ7N?QvMnf+?ATN;i0S06_{tXV{H7+ae4PyTd3Or zc20!LdvN928lunvV)Kqc%4a60GizIXAVQb@zQ5jh^K*$9BvS(RrTXB<5q&);35HMi zIr&mpFB|mNEddUkX;-K1vyYxF67EkkDt~+5sHSzR3UNNmrT~iN(-^d~c~Q;A3R+XM z_KPaKE%(w|oB+Olj8AIEu6?U#E+gy;C#%iBJ9 z{#uT?$cdoN=};ON6LUtnCatFHQyqPxda`-v8wE$26)>4^)}1?A zQ0q?GXwTB!(~qdO4%dlX_FzDjZJ^s+OnvP(=+3uxFe@phm4D?DA=nEA4TAij~oRd9+j* z>9skp*>IcWR>#WVs?7vXmHc{v2SW$#0tuSe_S2*WJ47Jj@>xa3R^Dyv)vNA(4L<8} zWh2B*45Kh^abJkN|H2clcJ%1;5zXnlKfFFf{7Q1#!{1jN0O+T?~Vi z>y=edCqG?NEsu`G=}y z6arCJwIiFz@}cbKu9Xsxau2F%0P({iit(-=%6o3Y5ete$}Jq@#xu=#;k?5VhDR^6sr74op}kVe(RGjT=VjcLkeq23$!sh;LfFiO>t5oz(8=csZ6u6w`^jc%9BEa!*r zZ6FnWqiakxbR%wGh-5s^&aRB34sJxw%v`Qgp)*)_wcoWX$eRA%%wlNq6_R(kcX<`l z^XB|bE?|}Lj+_);!Y7|_E6*O5oPdvTZS)>%D};#x^MUvB@peuZqGL&4@c;cG26@p%)zxXpt&O z)j?(Bwo9(s`*^s#*d`G9?0ull>5^9FHAA0+Q@JiAB$!@9BEy;bB3T}Z49t3~Kpq2= z8V4gDJcu~VtD(+d+jyHd@QdgatIPE7nBAH>_E(3j<1A8qEJfAeK0XD3CT1b<1sb_9 ze4RufGM+QP`qaGW0cIYr1MBsK(fUwLx3KPyK5TD*?jhZXRAo0yaq&4^IB-N?05xd> zm8>sS+)bJ7Uh>?93^ID`v;G!kNU*2Fepg!%)M@hzpy_&yVg!2>w4V^UY1?)-{^)(m z4.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/plugins/captivePortal/templates/DarkLogin/static/css/main.css b/plugins/captivePortal/templates/DarkLogin/static/css/main.css new file mode 100644 index 0000000..607568f --- /dev/null +++ b/plugins/captivePortal/templates/DarkLogin/static/css/main.css @@ -0,0 +1,462 @@ + + + + +/*////////////////////////////////////////////////////////////////// +[ FONT ]*/ + +@font-face { + font-family: Poppins-Regular; + src: url('../fonts/poppins/Poppins-Regular.ttf'); +} + +@font-face { + font-family: Poppins-Bold; + src: url('../fonts/poppins/Poppins-Bold.ttf'); +} + +@font-face { + font-family: Poppins-Medium; + src: url('../fonts/poppins/Poppins-Medium.ttf'); +} + +@font-face { + font-family: Montserrat-Bold; + src: url('../fonts/montserrat/Montserrat-Bold.ttf'); +} + +/*////////////////////////////////////////////////////////////////// +[ RESTYLE TAG ]*/ + +* { + margin: 0px; + padding: 0px; + box-sizing: border-box; +} + +body, html { + height: 100%; + font-family: Poppins-Regular, sans-serif; +} + +/*---------------------------------------------*/ +a { + font-family: Poppins-Regular; + font-size: 14px; + line-height: 1.7; + color: #666666; + margin: 0px; + transition: all 0.4s; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + -moz-transition: all 0.4s; +} + +a:focus { + outline: none !important; +} + +a:hover { + text-decoration: none; + color: #57b846; +} + +/*---------------------------------------------*/ +h1,h2,h3,h4,h5,h6 { + margin: 0px; +} + +p { + font-family: Poppins-Regular; + font-size: 14px; + line-height: 1.7; + color: #666666; + margin: 0px; +} + +ul, li { + margin: 0px; + list-style-type: none; +} + + +/*---------------------------------------------*/ +input { + outline: none; + border: none; +} + +textarea { + outline: none; + border: none; +} + +textarea:focus, input:focus { + border-color: transparent !important; +} + +input:focus::-webkit-input-placeholder { color:transparent; } +input:focus:-moz-placeholder { color:transparent; } +input:focus::-moz-placeholder { color:transparent; } +input:focus:-ms-input-placeholder { color:transparent; } + +textarea:focus::-webkit-input-placeholder { color:transparent; } +textarea:focus:-moz-placeholder { color:transparent; } +textarea:focus::-moz-placeholder { color:transparent; } +textarea:focus:-ms-input-placeholder { color:transparent; } + +input::-webkit-input-placeholder { color: #999999; } +input:-moz-placeholder { color: #999999; } +input::-moz-placeholder { color: #999999; } +input:-ms-input-placeholder { color: #999999; } + +textarea::-webkit-input-placeholder { color: #999999; } +textarea:-moz-placeholder { color: #999999; } +textarea::-moz-placeholder { color: #999999; } +textarea:-ms-input-placeholder { color: #999999; } + +/*---------------------------------------------*/ +button { + outline: none !important; + border: none; + background: transparent; +} + +button:hover { + cursor: pointer; +} + +iframe { + border: none !important; +} + + +/*////////////////////////////////////////////////////////////////// +[ Utility ]*/ +.txt1 { + font-family: Poppins-Regular; + font-size: 13px; + line-height: 1.5; + color: #999999; +} + +.txt2 { + font-family: Poppins-Regular; + font-size: 13px; + line-height: 1.5; + color: #666666; +} + + +/*////////////////////////////////////////////////////////////////// +[ login ]*/ + +.limiter { + width: 100%; + margin: 0 auto; +} + +.container-login100 { + width: 100%; + min-height: 100vh; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + padding: 15px; + background: #9053c7; + background: -webkit-linear-gradient(-135deg, #c850c0, #4158d0); + background: -o-linear-gradient(-135deg, #c850c0, #4158d0); + background: -moz-linear-gradient(-135deg, #c850c0, #4158d0); + background: linear-gradient(-135deg, #c850c0, #4158d0); +} + +.wrap-login100 { + width: 960px; + background: #fff; + border-radius: 10px; + overflow: hidden; + + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + padding: 177px 130px 33px 95px; +} + +/*------------------------------------------------------------------ +[ ]*/ +.login100-pic { + width: 316px; +} + +.login100-pic img { + max-width: 100%; +} + + +/*------------------------------------------------------------------ +[ ]*/ +.login100-form { + width: 290px; +} + +.login100-form-title { + font-family: Poppins-Bold; + font-size: 24px; + color: #333333; + line-height: 1.2; + text-align: center; + + width: 100%; + display: block; + padding-bottom: 54px; +} + + +/*---------------------------------------------*/ +.wrap-input100 { + position: relative; + width: 100%; + z-index: 1; + margin-bottom: 10px; +} + +.input100 { + font-family: Poppins-Medium; + font-size: 15px; + line-height: 1.5; + color: #666666; + + display: block; + width: 100%; + background: #e6e6e6; + height: 50px; + border-radius: 25px; + padding: 0 30px 0 68px; +} + + +/*------------------------------------------------------------------ +[ Focus ]*/ +.focus-input100 { + display: block; + position: absolute; + border-radius: 25px; + bottom: 0; + left: 0; + z-index: -1; + width: 100%; + height: 100%; + box-shadow: 0px 0px 0px 0px; + color: rgba(87,184,70, 0.8); +} + +.input100:focus + .focus-input100 { + -webkit-animation: anim-shadow 0.5s ease-in-out forwards; + animation: anim-shadow 0.5s ease-in-out forwards; +} + +@-webkit-keyframes anim-shadow { + to { + box-shadow: 0px 0px 70px 25px; + opacity: 0; + } +} + +@keyframes anim-shadow { + to { + box-shadow: 0px 0px 70px 25px; + opacity: 0; + } +} + +.symbol-input100 { + font-size: 15px; + + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + align-items: center; + position: absolute; + border-radius: 25px; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + padding-left: 35px; + pointer-events: none; + color: #666666; + + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + -moz-transition: all 0.4s; + transition: all 0.4s; +} + +.input100:focus + .focus-input100 + .symbol-input100 { + color: #57b846; + padding-left: 28px; +} + +/*------------------------------------------------------------------ +[ Button ]*/ +.container-login100-form-btn { + width: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + flex-wrap: wrap; + justify-content: center; + padding-top: 20px; +} + +.login100-form-btn { + font-family: Montserrat-Bold; + font-size: 15px; + line-height: 1.5; + color: #fff; + text-transform: uppercase; + + width: 100%; + height: 50px; + border-radius: 25px; + background: #57b846; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: center; + align-items: center; + padding: 0 25px; + + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + -moz-transition: all 0.4s; + transition: all 0.4s; +} + +.login100-form-btn:hover { + background: #333333; +} + + + +/*------------------------------------------------------------------ +[ Responsive ]*/ + + + +@media (max-width: 992px) { + .wrap-login100 { + padding: 177px 90px 33px 85px; + } + + .login100-pic { + width: 35%; + } + + .login100-form { + width: 50%; + } +} + +@media (max-width: 768px) { + .wrap-login100 { + padding: 100px 80px 33px 80px; + } + + .login100-pic { + display: none; + } + + .login100-form { + width: 100%; + } +} + +@media (max-width: 576px) { + .wrap-login100 { + padding: 100px 15px 33px 15px; + } +} + + +/*------------------------------------------------------------------ +[ Alert validate ]*/ + +.validate-input { + position: relative; +} + +.alert-validate::before { + content: attr(data-validate); + position: absolute; + max-width: 70%; + background-color: white; + border: 1px solid #c80000; + border-radius: 13px; + padding: 4px 25px 4px 10px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); + right: 8px; + pointer-events: none; + + font-family: Poppins-Medium; + color: #c80000; + font-size: 13px; + line-height: 1.4; + text-align: left; + + visibility: hidden; + opacity: 0; + + -webkit-transition: opacity 0.4s; + -o-transition: opacity 0.4s; + -moz-transition: opacity 0.4s; + transition: opacity 0.4s; +} + +.alert-validate::after { + content: "\f06a"; + font-family: FontAwesome; + display: block; + position: absolute; + color: #c80000; + font-size: 15px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); + right: 13px; +} + +.alert-validate:hover:before { + visibility: visible; + opacity: 1; +} + +@media (max-width: 992px) { + .alert-validate::before { + visibility: visible; + opacity: 1; + } +} \ No newline at end of file diff --git a/plugins/captivePortal/templates/DarkLogin/static/css/styles.css b/plugins/captivePortal/templates/DarkLogin/static/css/styles.css new file mode 100644 index 0000000..e69de29 diff --git a/plugins/captivePortal/templates/DarkLogin/static/css/util.css b/plugins/captivePortal/templates/DarkLogin/static/css/util.css new file mode 100644 index 0000000..44d41a4 --- /dev/null +++ b/plugins/captivePortal/templates/DarkLogin/static/css/util.css @@ -0,0 +1,2993 @@ +/*[ FONT SIZE ] +/////////////////////////////////////////////////////////// +*/ +.fs-1 {font-size: 1px;} +.fs-2 {font-size: 2px;} +.fs-3 {font-size: 3px;} +.fs-4 {font-size: 4px;} +.fs-5 {font-size: 5px;} +.fs-6 {font-size: 6px;} +.fs-7 {font-size: 7px;} +.fs-8 {font-size: 8px;} +.fs-9 {font-size: 9px;} +.fs-10 {font-size: 10px;} +.fs-11 {font-size: 11px;} +.fs-12 {font-size: 12px;} +.fs-13 {font-size: 13px;} +.fs-14 {font-size: 14px;} +.fs-15 {font-size: 15px;} +.fs-16 {font-size: 16px;} +.fs-17 {font-size: 17px;} +.fs-18 {font-size: 18px;} +.fs-19 {font-size: 19px;} +.fs-20 {font-size: 20px;} +.fs-21 {font-size: 21px;} +.fs-22 {font-size: 22px;} +.fs-23 {font-size: 23px;} +.fs-24 {font-size: 24px;} +.fs-25 {font-size: 25px;} +.fs-26 {font-size: 26px;} +.fs-27 {font-size: 27px;} +.fs-28 {font-size: 28px;} +.fs-29 {font-size: 29px;} +.fs-30 {font-size: 30px;} +.fs-31 {font-size: 31px;} +.fs-32 {font-size: 32px;} +.fs-33 {font-size: 33px;} +.fs-34 {font-size: 34px;} +.fs-35 {font-size: 35px;} +.fs-36 {font-size: 36px;} +.fs-37 {font-size: 37px;} +.fs-38 {font-size: 38px;} +.fs-39 {font-size: 39px;} +.fs-40 {font-size: 40px;} +.fs-41 {font-size: 41px;} +.fs-42 {font-size: 42px;} +.fs-43 {font-size: 43px;} +.fs-44 {font-size: 44px;} +.fs-45 {font-size: 45px;} +.fs-46 {font-size: 46px;} +.fs-47 {font-size: 47px;} +.fs-48 {font-size: 48px;} +.fs-49 {font-size: 49px;} +.fs-50 {font-size: 50px;} +.fs-51 {font-size: 51px;} +.fs-52 {font-size: 52px;} +.fs-53 {font-size: 53px;} +.fs-54 {font-size: 54px;} +.fs-55 {font-size: 55px;} +.fs-56 {font-size: 56px;} +.fs-57 {font-size: 57px;} +.fs-58 {font-size: 58px;} +.fs-59 {font-size: 59px;} +.fs-60 {font-size: 60px;} +.fs-61 {font-size: 61px;} +.fs-62 {font-size: 62px;} +.fs-63 {font-size: 63px;} +.fs-64 {font-size: 64px;} +.fs-65 {font-size: 65px;} +.fs-66 {font-size: 66px;} +.fs-67 {font-size: 67px;} +.fs-68 {font-size: 68px;} +.fs-69 {font-size: 69px;} +.fs-70 {font-size: 70px;} +.fs-71 {font-size: 71px;} +.fs-72 {font-size: 72px;} +.fs-73 {font-size: 73px;} +.fs-74 {font-size: 74px;} +.fs-75 {font-size: 75px;} +.fs-76 {font-size: 76px;} +.fs-77 {font-size: 77px;} +.fs-78 {font-size: 78px;} +.fs-79 {font-size: 79px;} +.fs-80 {font-size: 80px;} +.fs-81 {font-size: 81px;} +.fs-82 {font-size: 82px;} +.fs-83 {font-size: 83px;} +.fs-84 {font-size: 84px;} +.fs-85 {font-size: 85px;} +.fs-86 {font-size: 86px;} +.fs-87 {font-size: 87px;} +.fs-88 {font-size: 88px;} +.fs-89 {font-size: 89px;} +.fs-90 {font-size: 90px;} +.fs-91 {font-size: 91px;} +.fs-92 {font-size: 92px;} +.fs-93 {font-size: 93px;} +.fs-94 {font-size: 94px;} +.fs-95 {font-size: 95px;} +.fs-96 {font-size: 96px;} +.fs-97 {font-size: 97px;} +.fs-98 {font-size: 98px;} +.fs-99 {font-size: 99px;} +.fs-100 {font-size: 100px;} +.fs-101 {font-size: 101px;} +.fs-102 {font-size: 102px;} +.fs-103 {font-size: 103px;} +.fs-104 {font-size: 104px;} +.fs-105 {font-size: 105px;} +.fs-106 {font-size: 106px;} +.fs-107 {font-size: 107px;} +.fs-108 {font-size: 108px;} +.fs-109 {font-size: 109px;} +.fs-110 {font-size: 110px;} +.fs-111 {font-size: 111px;} +.fs-112 {font-size: 112px;} +.fs-113 {font-size: 113px;} +.fs-114 {font-size: 114px;} +.fs-115 {font-size: 115px;} +.fs-116 {font-size: 116px;} +.fs-117 {font-size: 117px;} +.fs-118 {font-size: 118px;} +.fs-119 {font-size: 119px;} +.fs-120 {font-size: 120px;} +.fs-121 {font-size: 121px;} +.fs-122 {font-size: 122px;} +.fs-123 {font-size: 123px;} +.fs-124 {font-size: 124px;} +.fs-125 {font-size: 125px;} +.fs-126 {font-size: 126px;} +.fs-127 {font-size: 127px;} +.fs-128 {font-size: 128px;} +.fs-129 {font-size: 129px;} +.fs-130 {font-size: 130px;} +.fs-131 {font-size: 131px;} +.fs-132 {font-size: 132px;} +.fs-133 {font-size: 133px;} +.fs-134 {font-size: 134px;} +.fs-135 {font-size: 135px;} +.fs-136 {font-size: 136px;} +.fs-137 {font-size: 137px;} +.fs-138 {font-size: 138px;} +.fs-139 {font-size: 139px;} +.fs-140 {font-size: 140px;} +.fs-141 {font-size: 141px;} +.fs-142 {font-size: 142px;} +.fs-143 {font-size: 143px;} +.fs-144 {font-size: 144px;} +.fs-145 {font-size: 145px;} +.fs-146 {font-size: 146px;} +.fs-147 {font-size: 147px;} +.fs-148 {font-size: 148px;} +.fs-149 {font-size: 149px;} +.fs-150 {font-size: 150px;} +.fs-151 {font-size: 151px;} +.fs-152 {font-size: 152px;} +.fs-153 {font-size: 153px;} +.fs-154 {font-size: 154px;} +.fs-155 {font-size: 155px;} +.fs-156 {font-size: 156px;} +.fs-157 {font-size: 157px;} +.fs-158 {font-size: 158px;} +.fs-159 {font-size: 159px;} +.fs-160 {font-size: 160px;} +.fs-161 {font-size: 161px;} +.fs-162 {font-size: 162px;} +.fs-163 {font-size: 163px;} +.fs-164 {font-size: 164px;} +.fs-165 {font-size: 165px;} +.fs-166 {font-size: 166px;} +.fs-167 {font-size: 167px;} +.fs-168 {font-size: 168px;} +.fs-169 {font-size: 169px;} +.fs-170 {font-size: 170px;} +.fs-171 {font-size: 171px;} +.fs-172 {font-size: 172px;} +.fs-173 {font-size: 173px;} +.fs-174 {font-size: 174px;} +.fs-175 {font-size: 175px;} +.fs-176 {font-size: 176px;} +.fs-177 {font-size: 177px;} +.fs-178 {font-size: 178px;} +.fs-179 {font-size: 179px;} +.fs-180 {font-size: 180px;} +.fs-181 {font-size: 181px;} +.fs-182 {font-size: 182px;} +.fs-183 {font-size: 183px;} +.fs-184 {font-size: 184px;} +.fs-185 {font-size: 185px;} +.fs-186 {font-size: 186px;} +.fs-187 {font-size: 187px;} +.fs-188 {font-size: 188px;} +.fs-189 {font-size: 189px;} +.fs-190 {font-size: 190px;} +.fs-191 {font-size: 191px;} +.fs-192 {font-size: 192px;} +.fs-193 {font-size: 193px;} +.fs-194 {font-size: 194px;} +.fs-195 {font-size: 195px;} +.fs-196 {font-size: 196px;} +.fs-197 {font-size: 197px;} +.fs-198 {font-size: 198px;} +.fs-199 {font-size: 199px;} +.fs-200 {font-size: 200px;} + +/*[ PADDING ] +/////////////////////////////////////////////////////////// +*/ +.p-t-0 {padding-top: 0px;} +.p-t-1 {padding-top: 1px;} +.p-t-2 {padding-top: 2px;} +.p-t-3 {padding-top: 3px;} +.p-t-4 {padding-top: 4px;} +.p-t-5 {padding-top: 5px;} +.p-t-6 {padding-top: 6px;} +.p-t-7 {padding-top: 7px;} +.p-t-8 {padding-top: 8px;} +.p-t-9 {padding-top: 9px;} +.p-t-10 {padding-top: 10px;} +.p-t-11 {padding-top: 11px;} +.p-t-12 {padding-top: 12px;} +.p-t-13 {padding-top: 13px;} +.p-t-14 {padding-top: 14px;} +.p-t-15 {padding-top: 15px;} +.p-t-16 {padding-top: 16px;} +.p-t-17 {padding-top: 17px;} +.p-t-18 {padding-top: 18px;} +.p-t-19 {padding-top: 19px;} +.p-t-20 {padding-top: 20px;} +.p-t-21 {padding-top: 21px;} +.p-t-22 {padding-top: 22px;} +.p-t-23 {padding-top: 23px;} +.p-t-24 {padding-top: 24px;} +.p-t-25 {padding-top: 25px;} +.p-t-26 {padding-top: 26px;} +.p-t-27 {padding-top: 27px;} +.p-t-28 {padding-top: 28px;} +.p-t-29 {padding-top: 29px;} +.p-t-30 {padding-top: 30px;} +.p-t-31 {padding-top: 31px;} +.p-t-32 {padding-top: 32px;} +.p-t-33 {padding-top: 33px;} +.p-t-34 {padding-top: 34px;} +.p-t-35 {padding-top: 35px;} +.p-t-36 {padding-top: 36px;} +.p-t-37 {padding-top: 37px;} +.p-t-38 {padding-top: 38px;} +.p-t-39 {padding-top: 39px;} +.p-t-40 {padding-top: 40px;} +.p-t-41 {padding-top: 41px;} +.p-t-42 {padding-top: 42px;} +.p-t-43 {padding-top: 43px;} +.p-t-44 {padding-top: 44px;} +.p-t-45 {padding-top: 45px;} +.p-t-46 {padding-top: 46px;} +.p-t-47 {padding-top: 47px;} +.p-t-48 {padding-top: 48px;} +.p-t-49 {padding-top: 49px;} +.p-t-50 {padding-top: 50px;} +.p-t-51 {padding-top: 51px;} +.p-t-52 {padding-top: 52px;} +.p-t-53 {padding-top: 53px;} +.p-t-54 {padding-top: 54px;} +.p-t-55 {padding-top: 55px;} +.p-t-56 {padding-top: 56px;} +.p-t-57 {padding-top: 57px;} +.p-t-58 {padding-top: 58px;} +.p-t-59 {padding-top: 59px;} +.p-t-60 {padding-top: 60px;} +.p-t-61 {padding-top: 61px;} +.p-t-62 {padding-top: 62px;} +.p-t-63 {padding-top: 63px;} +.p-t-64 {padding-top: 64px;} +.p-t-65 {padding-top: 65px;} +.p-t-66 {padding-top: 66px;} +.p-t-67 {padding-top: 67px;} +.p-t-68 {padding-top: 68px;} +.p-t-69 {padding-top: 69px;} +.p-t-70 {padding-top: 70px;} +.p-t-71 {padding-top: 71px;} +.p-t-72 {padding-top: 72px;} +.p-t-73 {padding-top: 73px;} +.p-t-74 {padding-top: 74px;} +.p-t-75 {padding-top: 75px;} +.p-t-76 {padding-top: 76px;} +.p-t-77 {padding-top: 77px;} +.p-t-78 {padding-top: 78px;} +.p-t-79 {padding-top: 79px;} +.p-t-80 {padding-top: 80px;} +.p-t-81 {padding-top: 81px;} +.p-t-82 {padding-top: 82px;} +.p-t-83 {padding-top: 83px;} +.p-t-84 {padding-top: 84px;} +.p-t-85 {padding-top: 85px;} +.p-t-86 {padding-top: 86px;} +.p-t-87 {padding-top: 87px;} +.p-t-88 {padding-top: 88px;} +.p-t-89 {padding-top: 89px;} +.p-t-90 {padding-top: 90px;} +.p-t-91 {padding-top: 91px;} +.p-t-92 {padding-top: 92px;} +.p-t-93 {padding-top: 93px;} +.p-t-94 {padding-top: 94px;} +.p-t-95 {padding-top: 95px;} +.p-t-96 {padding-top: 96px;} +.p-t-97 {padding-top: 97px;} +.p-t-98 {padding-top: 98px;} +.p-t-99 {padding-top: 99px;} +.p-t-100 {padding-top: 100px;} +.p-t-101 {padding-top: 101px;} +.p-t-102 {padding-top: 102px;} +.p-t-103 {padding-top: 103px;} +.p-t-104 {padding-top: 104px;} +.p-t-105 {padding-top: 105px;} +.p-t-106 {padding-top: 106px;} +.p-t-107 {padding-top: 107px;} +.p-t-108 {padding-top: 108px;} +.p-t-109 {padding-top: 109px;} +.p-t-110 {padding-top: 110px;} +.p-t-111 {padding-top: 111px;} +.p-t-112 {padding-top: 112px;} +.p-t-113 {padding-top: 113px;} +.p-t-114 {padding-top: 114px;} +.p-t-115 {padding-top: 115px;} +.p-t-116 {padding-top: 116px;} +.p-t-117 {padding-top: 117px;} +.p-t-118 {padding-top: 118px;} +.p-t-119 {padding-top: 119px;} +.p-t-120 {padding-top: 120px;} +.p-t-121 {padding-top: 121px;} +.p-t-122 {padding-top: 122px;} +.p-t-123 {padding-top: 123px;} +.p-t-124 {padding-top: 124px;} +.p-t-125 {padding-top: 125px;} +.p-t-126 {padding-top: 126px;} +.p-t-127 {padding-top: 127px;} +.p-t-128 {padding-top: 128px;} +.p-t-129 {padding-top: 129px;} +.p-t-130 {padding-top: 130px;} +.p-t-131 {padding-top: 131px;} +.p-t-132 {padding-top: 132px;} +.p-t-133 {padding-top: 133px;} +.p-t-134 {padding-top: 134px;} +.p-t-135 {padding-top: 135px;} +.p-t-136 {padding-top: 136px;} +.p-t-137 {padding-top: 137px;} +.p-t-138 {padding-top: 138px;} +.p-t-139 {padding-top: 139px;} +.p-t-140 {padding-top: 140px;} +.p-t-141 {padding-top: 141px;} +.p-t-142 {padding-top: 142px;} +.p-t-143 {padding-top: 143px;} +.p-t-144 {padding-top: 144px;} +.p-t-145 {padding-top: 145px;} +.p-t-146 {padding-top: 146px;} +.p-t-147 {padding-top: 147px;} +.p-t-148 {padding-top: 148px;} +.p-t-149 {padding-top: 149px;} +.p-t-150 {padding-top: 150px;} +.p-t-151 {padding-top: 151px;} +.p-t-152 {padding-top: 152px;} +.p-t-153 {padding-top: 153px;} +.p-t-154 {padding-top: 154px;} +.p-t-155 {padding-top: 155px;} +.p-t-156 {padding-top: 156px;} +.p-t-157 {padding-top: 157px;} +.p-t-158 {padding-top: 158px;} +.p-t-159 {padding-top: 159px;} +.p-t-160 {padding-top: 160px;} +.p-t-161 {padding-top: 161px;} +.p-t-162 {padding-top: 162px;} +.p-t-163 {padding-top: 163px;} +.p-t-164 {padding-top: 164px;} +.p-t-165 {padding-top: 165px;} +.p-t-166 {padding-top: 166px;} +.p-t-167 {padding-top: 167px;} +.p-t-168 {padding-top: 168px;} +.p-t-169 {padding-top: 169px;} +.p-t-170 {padding-top: 170px;} +.p-t-171 {padding-top: 171px;} +.p-t-172 {padding-top: 172px;} +.p-t-173 {padding-top: 173px;} +.p-t-174 {padding-top: 174px;} +.p-t-175 {padding-top: 175px;} +.p-t-176 {padding-top: 176px;} +.p-t-177 {padding-top: 177px;} +.p-t-178 {padding-top: 178px;} +.p-t-179 {padding-top: 179px;} +.p-t-180 {padding-top: 180px;} +.p-t-181 {padding-top: 181px;} +.p-t-182 {padding-top: 182px;} +.p-t-183 {padding-top: 183px;} +.p-t-184 {padding-top: 184px;} +.p-t-185 {padding-top: 185px;} +.p-t-186 {padding-top: 186px;} +.p-t-187 {padding-top: 187px;} +.p-t-188 {padding-top: 188px;} +.p-t-189 {padding-top: 189px;} +.p-t-190 {padding-top: 190px;} +.p-t-191 {padding-top: 191px;} +.p-t-192 {padding-top: 192px;} +.p-t-193 {padding-top: 193px;} +.p-t-194 {padding-top: 194px;} +.p-t-195 {padding-top: 195px;} +.p-t-196 {padding-top: 196px;} +.p-t-197 {padding-top: 197px;} +.p-t-198 {padding-top: 198px;} +.p-t-199 {padding-top: 199px;} +.p-t-200 {padding-top: 200px;} +.p-t-201 {padding-top: 201px;} +.p-t-202 {padding-top: 202px;} +.p-t-203 {padding-top: 203px;} +.p-t-204 {padding-top: 204px;} +.p-t-205 {padding-top: 205px;} +.p-t-206 {padding-top: 206px;} +.p-t-207 {padding-top: 207px;} +.p-t-208 {padding-top: 208px;} +.p-t-209 {padding-top: 209px;} +.p-t-210 {padding-top: 210px;} +.p-t-211 {padding-top: 211px;} +.p-t-212 {padding-top: 212px;} +.p-t-213 {padding-top: 213px;} +.p-t-214 {padding-top: 214px;} +.p-t-215 {padding-top: 215px;} +.p-t-216 {padding-top: 216px;} +.p-t-217 {padding-top: 217px;} +.p-t-218 {padding-top: 218px;} +.p-t-219 {padding-top: 219px;} +.p-t-220 {padding-top: 220px;} +.p-t-221 {padding-top: 221px;} +.p-t-222 {padding-top: 222px;} +.p-t-223 {padding-top: 223px;} +.p-t-224 {padding-top: 224px;} +.p-t-225 {padding-top: 225px;} +.p-t-226 {padding-top: 226px;} +.p-t-227 {padding-top: 227px;} +.p-t-228 {padding-top: 228px;} +.p-t-229 {padding-top: 229px;} +.p-t-230 {padding-top: 230px;} +.p-t-231 {padding-top: 231px;} +.p-t-232 {padding-top: 232px;} +.p-t-233 {padding-top: 233px;} +.p-t-234 {padding-top: 234px;} +.p-t-235 {padding-top: 235px;} +.p-t-236 {padding-top: 236px;} +.p-t-237 {padding-top: 237px;} +.p-t-238 {padding-top: 238px;} +.p-t-239 {padding-top: 239px;} +.p-t-240 {padding-top: 240px;} +.p-t-241 {padding-top: 241px;} +.p-t-242 {padding-top: 242px;} +.p-t-243 {padding-top: 243px;} +.p-t-244 {padding-top: 244px;} +.p-t-245 {padding-top: 245px;} +.p-t-246 {padding-top: 246px;} +.p-t-247 {padding-top: 247px;} +.p-t-248 {padding-top: 248px;} +.p-t-249 {padding-top: 249px;} +.p-t-250 {padding-top: 250px;} +.p-b-0 {padding-bottom: 0px;} +.p-b-1 {padding-bottom: 1px;} +.p-b-2 {padding-bottom: 2px;} +.p-b-3 {padding-bottom: 3px;} +.p-b-4 {padding-bottom: 4px;} +.p-b-5 {padding-bottom: 5px;} +.p-b-6 {padding-bottom: 6px;} +.p-b-7 {padding-bottom: 7px;} +.p-b-8 {padding-bottom: 8px;} +.p-b-9 {padding-bottom: 9px;} +.p-b-10 {padding-bottom: 10px;} +.p-b-11 {padding-bottom: 11px;} +.p-b-12 {padding-bottom: 12px;} +.p-b-13 {padding-bottom: 13px;} +.p-b-14 {padding-bottom: 14px;} +.p-b-15 {padding-bottom: 15px;} +.p-b-16 {padding-bottom: 16px;} +.p-b-17 {padding-bottom: 17px;} +.p-b-18 {padding-bottom: 18px;} +.p-b-19 {padding-bottom: 19px;} +.p-b-20 {padding-bottom: 20px;} +.p-b-21 {padding-bottom: 21px;} +.p-b-22 {padding-bottom: 22px;} +.p-b-23 {padding-bottom: 23px;} +.p-b-24 {padding-bottom: 24px;} +.p-b-25 {padding-bottom: 25px;} +.p-b-26 {padding-bottom: 26px;} +.p-b-27 {padding-bottom: 27px;} +.p-b-28 {padding-bottom: 28px;} +.p-b-29 {padding-bottom: 29px;} +.p-b-30 {padding-bottom: 30px;} +.p-b-31 {padding-bottom: 31px;} +.p-b-32 {padding-bottom: 32px;} +.p-b-33 {padding-bottom: 33px;} +.p-b-34 {padding-bottom: 34px;} +.p-b-35 {padding-bottom: 35px;} +.p-b-36 {padding-bottom: 36px;} +.p-b-37 {padding-bottom: 37px;} +.p-b-38 {padding-bottom: 38px;} +.p-b-39 {padding-bottom: 39px;} +.p-b-40 {padding-bottom: 40px;} +.p-b-41 {padding-bottom: 41px;} +.p-b-42 {padding-bottom: 42px;} +.p-b-43 {padding-bottom: 43px;} +.p-b-44 {padding-bottom: 44px;} +.p-b-45 {padding-bottom: 45px;} +.p-b-46 {padding-bottom: 46px;} +.p-b-47 {padding-bottom: 47px;} +.p-b-48 {padding-bottom: 48px;} +.p-b-49 {padding-bottom: 49px;} +.p-b-50 {padding-bottom: 50px;} +.p-b-51 {padding-bottom: 51px;} +.p-b-52 {padding-bottom: 52px;} +.p-b-53 {padding-bottom: 53px;} +.p-b-54 {padding-bottom: 54px;} +.p-b-55 {padding-bottom: 55px;} +.p-b-56 {padding-bottom: 56px;} +.p-b-57 {padding-bottom: 57px;} +.p-b-58 {padding-bottom: 58px;} +.p-b-59 {padding-bottom: 59px;} +.p-b-60 {padding-bottom: 60px;} +.p-b-61 {padding-bottom: 61px;} +.p-b-62 {padding-bottom: 62px;} +.p-b-63 {padding-bottom: 63px;} +.p-b-64 {padding-bottom: 64px;} +.p-b-65 {padding-bottom: 65px;} +.p-b-66 {padding-bottom: 66px;} +.p-b-67 {padding-bottom: 67px;} +.p-b-68 {padding-bottom: 68px;} +.p-b-69 {padding-bottom: 69px;} +.p-b-70 {padding-bottom: 70px;} +.p-b-71 {padding-bottom: 71px;} +.p-b-72 {padding-bottom: 72px;} +.p-b-73 {padding-bottom: 73px;} +.p-b-74 {padding-bottom: 74px;} +.p-b-75 {padding-bottom: 75px;} +.p-b-76 {padding-bottom: 76px;} +.p-b-77 {padding-bottom: 77px;} +.p-b-78 {padding-bottom: 78px;} +.p-b-79 {padding-bottom: 79px;} +.p-b-80 {padding-bottom: 80px;} +.p-b-81 {padding-bottom: 81px;} +.p-b-82 {padding-bottom: 82px;} +.p-b-83 {padding-bottom: 83px;} +.p-b-84 {padding-bottom: 84px;} +.p-b-85 {padding-bottom: 85px;} +.p-b-86 {padding-bottom: 86px;} +.p-b-87 {padding-bottom: 87px;} +.p-b-88 {padding-bottom: 88px;} +.p-b-89 {padding-bottom: 89px;} +.p-b-90 {padding-bottom: 90px;} +.p-b-91 {padding-bottom: 91px;} +.p-b-92 {padding-bottom: 92px;} +.p-b-93 {padding-bottom: 93px;} +.p-b-94 {padding-bottom: 94px;} +.p-b-95 {padding-bottom: 95px;} +.p-b-96 {padding-bottom: 96px;} +.p-b-97 {padding-bottom: 97px;} +.p-b-98 {padding-bottom: 98px;} +.p-b-99 {padding-bottom: 99px;} +.p-b-100 {padding-bottom: 100px;} +.p-b-101 {padding-bottom: 101px;} +.p-b-102 {padding-bottom: 102px;} +.p-b-103 {padding-bottom: 103px;} +.p-b-104 {padding-bottom: 104px;} +.p-b-105 {padding-bottom: 105px;} +.p-b-106 {padding-bottom: 106px;} +.p-b-107 {padding-bottom: 107px;} +.p-b-108 {padding-bottom: 108px;} +.p-b-109 {padding-bottom: 109px;} +.p-b-110 {padding-bottom: 110px;} +.p-b-111 {padding-bottom: 111px;} +.p-b-112 {padding-bottom: 112px;} +.p-b-113 {padding-bottom: 113px;} +.p-b-114 {padding-bottom: 114px;} +.p-b-115 {padding-bottom: 115px;} +.p-b-116 {padding-bottom: 116px;} +.p-b-117 {padding-bottom: 117px;} +.p-b-118 {padding-bottom: 118px;} +.p-b-119 {padding-bottom: 119px;} +.p-b-120 {padding-bottom: 120px;} +.p-b-121 {padding-bottom: 121px;} +.p-b-122 {padding-bottom: 122px;} +.p-b-123 {padding-bottom: 123px;} +.p-b-124 {padding-bottom: 124px;} +.p-b-125 {padding-bottom: 125px;} +.p-b-126 {padding-bottom: 126px;} +.p-b-127 {padding-bottom: 127px;} +.p-b-128 {padding-bottom: 128px;} +.p-b-129 {padding-bottom: 129px;} +.p-b-130 {padding-bottom: 130px;} +.p-b-131 {padding-bottom: 131px;} +.p-b-132 {padding-bottom: 132px;} +.p-b-133 {padding-bottom: 133px;} +.p-b-134 {padding-bottom: 134px;} +.p-b-135 {padding-bottom: 135px;} +.p-b-136 {padding-bottom: 136px;} +.p-b-137 {padding-bottom: 137px;} +.p-b-138 {padding-bottom: 138px;} +.p-b-139 {padding-bottom: 139px;} +.p-b-140 {padding-bottom: 140px;} +.p-b-141 {padding-bottom: 141px;} +.p-b-142 {padding-bottom: 142px;} +.p-b-143 {padding-bottom: 143px;} +.p-b-144 {padding-bottom: 144px;} +.p-b-145 {padding-bottom: 145px;} +.p-b-146 {padding-bottom: 146px;} +.p-b-147 {padding-bottom: 147px;} +.p-b-148 {padding-bottom: 148px;} +.p-b-149 {padding-bottom: 149px;} +.p-b-150 {padding-bottom: 150px;} +.p-b-151 {padding-bottom: 151px;} +.p-b-152 {padding-bottom: 152px;} +.p-b-153 {padding-bottom: 153px;} +.p-b-154 {padding-bottom: 154px;} +.p-b-155 {padding-bottom: 155px;} +.p-b-156 {padding-bottom: 156px;} +.p-b-157 {padding-bottom: 157px;} +.p-b-158 {padding-bottom: 158px;} +.p-b-159 {padding-bottom: 159px;} +.p-b-160 {padding-bottom: 160px;} +.p-b-161 {padding-bottom: 161px;} +.p-b-162 {padding-bottom: 162px;} +.p-b-163 {padding-bottom: 163px;} +.p-b-164 {padding-bottom: 164px;} +.p-b-165 {padding-bottom: 165px;} +.p-b-166 {padding-bottom: 166px;} +.p-b-167 {padding-bottom: 167px;} +.p-b-168 {padding-bottom: 168px;} +.p-b-169 {padding-bottom: 169px;} +.p-b-170 {padding-bottom: 170px;} +.p-b-171 {padding-bottom: 171px;} +.p-b-172 {padding-bottom: 172px;} +.p-b-173 {padding-bottom: 173px;} +.p-b-174 {padding-bottom: 174px;} +.p-b-175 {padding-bottom: 175px;} +.p-b-176 {padding-bottom: 176px;} +.p-b-177 {padding-bottom: 177px;} +.p-b-178 {padding-bottom: 178px;} +.p-b-179 {padding-bottom: 179px;} +.p-b-180 {padding-bottom: 180px;} +.p-b-181 {padding-bottom: 181px;} +.p-b-182 {padding-bottom: 182px;} +.p-b-183 {padding-bottom: 183px;} +.p-b-184 {padding-bottom: 184px;} +.p-b-185 {padding-bottom: 185px;} +.p-b-186 {padding-bottom: 186px;} +.p-b-187 {padding-bottom: 187px;} +.p-b-188 {padding-bottom: 188px;} +.p-b-189 {padding-bottom: 189px;} +.p-b-190 {padding-bottom: 190px;} +.p-b-191 {padding-bottom: 191px;} +.p-b-192 {padding-bottom: 192px;} +.p-b-193 {padding-bottom: 193px;} +.p-b-194 {padding-bottom: 194px;} +.p-b-195 {padding-bottom: 195px;} +.p-b-196 {padding-bottom: 196px;} +.p-b-197 {padding-bottom: 197px;} +.p-b-198 {padding-bottom: 198px;} +.p-b-199 {padding-bottom: 199px;} +.p-b-200 {padding-bottom: 200px;} +.p-b-201 {padding-bottom: 201px;} +.p-b-202 {padding-bottom: 202px;} +.p-b-203 {padding-bottom: 203px;} +.p-b-204 {padding-bottom: 204px;} +.p-b-205 {padding-bottom: 205px;} +.p-b-206 {padding-bottom: 206px;} +.p-b-207 {padding-bottom: 207px;} +.p-b-208 {padding-bottom: 208px;} +.p-b-209 {padding-bottom: 209px;} +.p-b-210 {padding-bottom: 210px;} +.p-b-211 {padding-bottom: 211px;} +.p-b-212 {padding-bottom: 212px;} +.p-b-213 {padding-bottom: 213px;} +.p-b-214 {padding-bottom: 214px;} +.p-b-215 {padding-bottom: 215px;} +.p-b-216 {padding-bottom: 216px;} +.p-b-217 {padding-bottom: 217px;} +.p-b-218 {padding-bottom: 218px;} +.p-b-219 {padding-bottom: 219px;} +.p-b-220 {padding-bottom: 220px;} +.p-b-221 {padding-bottom: 221px;} +.p-b-222 {padding-bottom: 222px;} +.p-b-223 {padding-bottom: 223px;} +.p-b-224 {padding-bottom: 224px;} +.p-b-225 {padding-bottom: 225px;} +.p-b-226 {padding-bottom: 226px;} +.p-b-227 {padding-bottom: 227px;} +.p-b-228 {padding-bottom: 228px;} +.p-b-229 {padding-bottom: 229px;} +.p-b-230 {padding-bottom: 230px;} +.p-b-231 {padding-bottom: 231px;} +.p-b-232 {padding-bottom: 232px;} +.p-b-233 {padding-bottom: 233px;} +.p-b-234 {padding-bottom: 234px;} +.p-b-235 {padding-bottom: 235px;} +.p-b-236 {padding-bottom: 236px;} +.p-b-237 {padding-bottom: 237px;} +.p-b-238 {padding-bottom: 238px;} +.p-b-239 {padding-bottom: 239px;} +.p-b-240 {padding-bottom: 240px;} +.p-b-241 {padding-bottom: 241px;} +.p-b-242 {padding-bottom: 242px;} +.p-b-243 {padding-bottom: 243px;} +.p-b-244 {padding-bottom: 244px;} +.p-b-245 {padding-bottom: 245px;} +.p-b-246 {padding-bottom: 246px;} +.p-b-247 {padding-bottom: 247px;} +.p-b-248 {padding-bottom: 248px;} +.p-b-249 {padding-bottom: 249px;} +.p-b-250 {padding-bottom: 250px;} +.p-l-0 {padding-left: 0px;} +.p-l-1 {padding-left: 1px;} +.p-l-2 {padding-left: 2px;} +.p-l-3 {padding-left: 3px;} +.p-l-4 {padding-left: 4px;} +.p-l-5 {padding-left: 5px;} +.p-l-6 {padding-left: 6px;} +.p-l-7 {padding-left: 7px;} +.p-l-8 {padding-left: 8px;} +.p-l-9 {padding-left: 9px;} +.p-l-10 {padding-left: 10px;} +.p-l-11 {padding-left: 11px;} +.p-l-12 {padding-left: 12px;} +.p-l-13 {padding-left: 13px;} +.p-l-14 {padding-left: 14px;} +.p-l-15 {padding-left: 15px;} +.p-l-16 {padding-left: 16px;} +.p-l-17 {padding-left: 17px;} +.p-l-18 {padding-left: 18px;} +.p-l-19 {padding-left: 19px;} +.p-l-20 {padding-left: 20px;} +.p-l-21 {padding-left: 21px;} +.p-l-22 {padding-left: 22px;} +.p-l-23 {padding-left: 23px;} +.p-l-24 {padding-left: 24px;} +.p-l-25 {padding-left: 25px;} +.p-l-26 {padding-left: 26px;} +.p-l-27 {padding-left: 27px;} +.p-l-28 {padding-left: 28px;} +.p-l-29 {padding-left: 29px;} +.p-l-30 {padding-left: 30px;} +.p-l-31 {padding-left: 31px;} +.p-l-32 {padding-left: 32px;} +.p-l-33 {padding-left: 33px;} +.p-l-34 {padding-left: 34px;} +.p-l-35 {padding-left: 35px;} +.p-l-36 {padding-left: 36px;} +.p-l-37 {padding-left: 37px;} +.p-l-38 {padding-left: 38px;} +.p-l-39 {padding-left: 39px;} +.p-l-40 {padding-left: 40px;} +.p-l-41 {padding-left: 41px;} +.p-l-42 {padding-left: 42px;} +.p-l-43 {padding-left: 43px;} +.p-l-44 {padding-left: 44px;} +.p-l-45 {padding-left: 45px;} +.p-l-46 {padding-left: 46px;} +.p-l-47 {padding-left: 47px;} +.p-l-48 {padding-left: 48px;} +.p-l-49 {padding-left: 49px;} +.p-l-50 {padding-left: 50px;} +.p-l-51 {padding-left: 51px;} +.p-l-52 {padding-left: 52px;} +.p-l-53 {padding-left: 53px;} +.p-l-54 {padding-left: 54px;} +.p-l-55 {padding-left: 55px;} +.p-l-56 {padding-left: 56px;} +.p-l-57 {padding-left: 57px;} +.p-l-58 {padding-left: 58px;} +.p-l-59 {padding-left: 59px;} +.p-l-60 {padding-left: 60px;} +.p-l-61 {padding-left: 61px;} +.p-l-62 {padding-left: 62px;} +.p-l-63 {padding-left: 63px;} +.p-l-64 {padding-left: 64px;} +.p-l-65 {padding-left: 65px;} +.p-l-66 {padding-left: 66px;} +.p-l-67 {padding-left: 67px;} +.p-l-68 {padding-left: 68px;} +.p-l-69 {padding-left: 69px;} +.p-l-70 {padding-left: 70px;} +.p-l-71 {padding-left: 71px;} +.p-l-72 {padding-left: 72px;} +.p-l-73 {padding-left: 73px;} +.p-l-74 {padding-left: 74px;} +.p-l-75 {padding-left: 75px;} +.p-l-76 {padding-left: 76px;} +.p-l-77 {padding-left: 77px;} +.p-l-78 {padding-left: 78px;} +.p-l-79 {padding-left: 79px;} +.p-l-80 {padding-left: 80px;} +.p-l-81 {padding-left: 81px;} +.p-l-82 {padding-left: 82px;} +.p-l-83 {padding-left: 83px;} +.p-l-84 {padding-left: 84px;} +.p-l-85 {padding-left: 85px;} +.p-l-86 {padding-left: 86px;} +.p-l-87 {padding-left: 87px;} +.p-l-88 {padding-left: 88px;} +.p-l-89 {padding-left: 89px;} +.p-l-90 {padding-left: 90px;} +.p-l-91 {padding-left: 91px;} +.p-l-92 {padding-left: 92px;} +.p-l-93 {padding-left: 93px;} +.p-l-94 {padding-left: 94px;} +.p-l-95 {padding-left: 95px;} +.p-l-96 {padding-left: 96px;} +.p-l-97 {padding-left: 97px;} +.p-l-98 {padding-left: 98px;} +.p-l-99 {padding-left: 99px;} +.p-l-100 {padding-left: 100px;} +.p-l-101 {padding-left: 101px;} +.p-l-102 {padding-left: 102px;} +.p-l-103 {padding-left: 103px;} +.p-l-104 {padding-left: 104px;} +.p-l-105 {padding-left: 105px;} +.p-l-106 {padding-left: 106px;} +.p-l-107 {padding-left: 107px;} +.p-l-108 {padding-left: 108px;} +.p-l-109 {padding-left: 109px;} +.p-l-110 {padding-left: 110px;} +.p-l-111 {padding-left: 111px;} +.p-l-112 {padding-left: 112px;} +.p-l-113 {padding-left: 113px;} +.p-l-114 {padding-left: 114px;} +.p-l-115 {padding-left: 115px;} +.p-l-116 {padding-left: 116px;} +.p-l-117 {padding-left: 117px;} +.p-l-118 {padding-left: 118px;} +.p-l-119 {padding-left: 119px;} +.p-l-120 {padding-left: 120px;} +.p-l-121 {padding-left: 121px;} +.p-l-122 {padding-left: 122px;} +.p-l-123 {padding-left: 123px;} +.p-l-124 {padding-left: 124px;} +.p-l-125 {padding-left: 125px;} +.p-l-126 {padding-left: 126px;} +.p-l-127 {padding-left: 127px;} +.p-l-128 {padding-left: 128px;} +.p-l-129 {padding-left: 129px;} +.p-l-130 {padding-left: 130px;} +.p-l-131 {padding-left: 131px;} +.p-l-132 {padding-left: 132px;} +.p-l-133 {padding-left: 133px;} +.p-l-134 {padding-left: 134px;} +.p-l-135 {padding-left: 135px;} +.p-l-136 {padding-left: 136px;} +.p-l-137 {padding-left: 137px;} +.p-l-138 {padding-left: 138px;} +.p-l-139 {padding-left: 139px;} +.p-l-140 {padding-left: 140px;} +.p-l-141 {padding-left: 141px;} +.p-l-142 {padding-left: 142px;} +.p-l-143 {padding-left: 143px;} +.p-l-144 {padding-left: 144px;} +.p-l-145 {padding-left: 145px;} +.p-l-146 {padding-left: 146px;} +.p-l-147 {padding-left: 147px;} +.p-l-148 {padding-left: 148px;} +.p-l-149 {padding-left: 149px;} +.p-l-150 {padding-left: 150px;} +.p-l-151 {padding-left: 151px;} +.p-l-152 {padding-left: 152px;} +.p-l-153 {padding-left: 153px;} +.p-l-154 {padding-left: 154px;} +.p-l-155 {padding-left: 155px;} +.p-l-156 {padding-left: 156px;} +.p-l-157 {padding-left: 157px;} +.p-l-158 {padding-left: 158px;} +.p-l-159 {padding-left: 159px;} +.p-l-160 {padding-left: 160px;} +.p-l-161 {padding-left: 161px;} +.p-l-162 {padding-left: 162px;} +.p-l-163 {padding-left: 163px;} +.p-l-164 {padding-left: 164px;} +.p-l-165 {padding-left: 165px;} +.p-l-166 {padding-left: 166px;} +.p-l-167 {padding-left: 167px;} +.p-l-168 {padding-left: 168px;} +.p-l-169 {padding-left: 169px;} +.p-l-170 {padding-left: 170px;} +.p-l-171 {padding-left: 171px;} +.p-l-172 {padding-left: 172px;} +.p-l-173 {padding-left: 173px;} +.p-l-174 {padding-left: 174px;} +.p-l-175 {padding-left: 175px;} +.p-l-176 {padding-left: 176px;} +.p-l-177 {padding-left: 177px;} +.p-l-178 {padding-left: 178px;} +.p-l-179 {padding-left: 179px;} +.p-l-180 {padding-left: 180px;} +.p-l-181 {padding-left: 181px;} +.p-l-182 {padding-left: 182px;} +.p-l-183 {padding-left: 183px;} +.p-l-184 {padding-left: 184px;} +.p-l-185 {padding-left: 185px;} +.p-l-186 {padding-left: 186px;} +.p-l-187 {padding-left: 187px;} +.p-l-188 {padding-left: 188px;} +.p-l-189 {padding-left: 189px;} +.p-l-190 {padding-left: 190px;} +.p-l-191 {padding-left: 191px;} +.p-l-192 {padding-left: 192px;} +.p-l-193 {padding-left: 193px;} +.p-l-194 {padding-left: 194px;} +.p-l-195 {padding-left: 195px;} +.p-l-196 {padding-left: 196px;} +.p-l-197 {padding-left: 197px;} +.p-l-198 {padding-left: 198px;} +.p-l-199 {padding-left: 199px;} +.p-l-200 {padding-left: 200px;} +.p-l-201 {padding-left: 201px;} +.p-l-202 {padding-left: 202px;} +.p-l-203 {padding-left: 203px;} +.p-l-204 {padding-left: 204px;} +.p-l-205 {padding-left: 205px;} +.p-l-206 {padding-left: 206px;} +.p-l-207 {padding-left: 207px;} +.p-l-208 {padding-left: 208px;} +.p-l-209 {padding-left: 209px;} +.p-l-210 {padding-left: 210px;} +.p-l-211 {padding-left: 211px;} +.p-l-212 {padding-left: 212px;} +.p-l-213 {padding-left: 213px;} +.p-l-214 {padding-left: 214px;} +.p-l-215 {padding-left: 215px;} +.p-l-216 {padding-left: 216px;} +.p-l-217 {padding-left: 217px;} +.p-l-218 {padding-left: 218px;} +.p-l-219 {padding-left: 219px;} +.p-l-220 {padding-left: 220px;} +.p-l-221 {padding-left: 221px;} +.p-l-222 {padding-left: 222px;} +.p-l-223 {padding-left: 223px;} +.p-l-224 {padding-left: 224px;} +.p-l-225 {padding-left: 225px;} +.p-l-226 {padding-left: 226px;} +.p-l-227 {padding-left: 227px;} +.p-l-228 {padding-left: 228px;} +.p-l-229 {padding-left: 229px;} +.p-l-230 {padding-left: 230px;} +.p-l-231 {padding-left: 231px;} +.p-l-232 {padding-left: 232px;} +.p-l-233 {padding-left: 233px;} +.p-l-234 {padding-left: 234px;} +.p-l-235 {padding-left: 235px;} +.p-l-236 {padding-left: 236px;} +.p-l-237 {padding-left: 237px;} +.p-l-238 {padding-left: 238px;} +.p-l-239 {padding-left: 239px;} +.p-l-240 {padding-left: 240px;} +.p-l-241 {padding-left: 241px;} +.p-l-242 {padding-left: 242px;} +.p-l-243 {padding-left: 243px;} +.p-l-244 {padding-left: 244px;} +.p-l-245 {padding-left: 245px;} +.p-l-246 {padding-left: 246px;} +.p-l-247 {padding-left: 247px;} +.p-l-248 {padding-left: 248px;} +.p-l-249 {padding-left: 249px;} +.p-l-250 {padding-left: 250px;} +.p-r-0 {padding-right: 0px;} +.p-r-1 {padding-right: 1px;} +.p-r-2 {padding-right: 2px;} +.p-r-3 {padding-right: 3px;} +.p-r-4 {padding-right: 4px;} +.p-r-5 {padding-right: 5px;} +.p-r-6 {padding-right: 6px;} +.p-r-7 {padding-right: 7px;} +.p-r-8 {padding-right: 8px;} +.p-r-9 {padding-right: 9px;} +.p-r-10 {padding-right: 10px;} +.p-r-11 {padding-right: 11px;} +.p-r-12 {padding-right: 12px;} +.p-r-13 {padding-right: 13px;} +.p-r-14 {padding-right: 14px;} +.p-r-15 {padding-right: 15px;} +.p-r-16 {padding-right: 16px;} +.p-r-17 {padding-right: 17px;} +.p-r-18 {padding-right: 18px;} +.p-r-19 {padding-right: 19px;} +.p-r-20 {padding-right: 20px;} +.p-r-21 {padding-right: 21px;} +.p-r-22 {padding-right: 22px;} +.p-r-23 {padding-right: 23px;} +.p-r-24 {padding-right: 24px;} +.p-r-25 {padding-right: 25px;} +.p-r-26 {padding-right: 26px;} +.p-r-27 {padding-right: 27px;} +.p-r-28 {padding-right: 28px;} +.p-r-29 {padding-right: 29px;} +.p-r-30 {padding-right: 30px;} +.p-r-31 {padding-right: 31px;} +.p-r-32 {padding-right: 32px;} +.p-r-33 {padding-right: 33px;} +.p-r-34 {padding-right: 34px;} +.p-r-35 {padding-right: 35px;} +.p-r-36 {padding-right: 36px;} +.p-r-37 {padding-right: 37px;} +.p-r-38 {padding-right: 38px;} +.p-r-39 {padding-right: 39px;} +.p-r-40 {padding-right: 40px;} +.p-r-41 {padding-right: 41px;} +.p-r-42 {padding-right: 42px;} +.p-r-43 {padding-right: 43px;} +.p-r-44 {padding-right: 44px;} +.p-r-45 {padding-right: 45px;} +.p-r-46 {padding-right: 46px;} +.p-r-47 {padding-right: 47px;} +.p-r-48 {padding-right: 48px;} +.p-r-49 {padding-right: 49px;} +.p-r-50 {padding-right: 50px;} +.p-r-51 {padding-right: 51px;} +.p-r-52 {padding-right: 52px;} +.p-r-53 {padding-right: 53px;} +.p-r-54 {padding-right: 54px;} +.p-r-55 {padding-right: 55px;} +.p-r-56 {padding-right: 56px;} +.p-r-57 {padding-right: 57px;} +.p-r-58 {padding-right: 58px;} +.p-r-59 {padding-right: 59px;} +.p-r-60 {padding-right: 60px;} +.p-r-61 {padding-right: 61px;} +.p-r-62 {padding-right: 62px;} +.p-r-63 {padding-right: 63px;} +.p-r-64 {padding-right: 64px;} +.p-r-65 {padding-right: 65px;} +.p-r-66 {padding-right: 66px;} +.p-r-67 {padding-right: 67px;} +.p-r-68 {padding-right: 68px;} +.p-r-69 {padding-right: 69px;} +.p-r-70 {padding-right: 70px;} +.p-r-71 {padding-right: 71px;} +.p-r-72 {padding-right: 72px;} +.p-r-73 {padding-right: 73px;} +.p-r-74 {padding-right: 74px;} +.p-r-75 {padding-right: 75px;} +.p-r-76 {padding-right: 76px;} +.p-r-77 {padding-right: 77px;} +.p-r-78 {padding-right: 78px;} +.p-r-79 {padding-right: 79px;} +.p-r-80 {padding-right: 80px;} +.p-r-81 {padding-right: 81px;} +.p-r-82 {padding-right: 82px;} +.p-r-83 {padding-right: 83px;} +.p-r-84 {padding-right: 84px;} +.p-r-85 {padding-right: 85px;} +.p-r-86 {padding-right: 86px;} +.p-r-87 {padding-right: 87px;} +.p-r-88 {padding-right: 88px;} +.p-r-89 {padding-right: 89px;} +.p-r-90 {padding-right: 90px;} +.p-r-91 {padding-right: 91px;} +.p-r-92 {padding-right: 92px;} +.p-r-93 {padding-right: 93px;} +.p-r-94 {padding-right: 94px;} +.p-r-95 {padding-right: 95px;} +.p-r-96 {padding-right: 96px;} +.p-r-97 {padding-right: 97px;} +.p-r-98 {padding-right: 98px;} +.p-r-99 {padding-right: 99px;} +.p-r-100 {padding-right: 100px;} +.p-r-101 {padding-right: 101px;} +.p-r-102 {padding-right: 102px;} +.p-r-103 {padding-right: 103px;} +.p-r-104 {padding-right: 104px;} +.p-r-105 {padding-right: 105px;} +.p-r-106 {padding-right: 106px;} +.p-r-107 {padding-right: 107px;} +.p-r-108 {padding-right: 108px;} +.p-r-109 {padding-right: 109px;} +.p-r-110 {padding-right: 110px;} +.p-r-111 {padding-right: 111px;} +.p-r-112 {padding-right: 112px;} +.p-r-113 {padding-right: 113px;} +.p-r-114 {padding-right: 114px;} +.p-r-115 {padding-right: 115px;} +.p-r-116 {padding-right: 116px;} +.p-r-117 {padding-right: 117px;} +.p-r-118 {padding-right: 118px;} +.p-r-119 {padding-right: 119px;} +.p-r-120 {padding-right: 120px;} +.p-r-121 {padding-right: 121px;} +.p-r-122 {padding-right: 122px;} +.p-r-123 {padding-right: 123px;} +.p-r-124 {padding-right: 124px;} +.p-r-125 {padding-right: 125px;} +.p-r-126 {padding-right: 126px;} +.p-r-127 {padding-right: 127px;} +.p-r-128 {padding-right: 128px;} +.p-r-129 {padding-right: 129px;} +.p-r-130 {padding-right: 130px;} +.p-r-131 {padding-right: 131px;} +.p-r-132 {padding-right: 132px;} +.p-r-133 {padding-right: 133px;} +.p-r-134 {padding-right: 134px;} +.p-r-135 {padding-right: 135px;} +.p-r-136 {padding-right: 136px;} +.p-r-137 {padding-right: 137px;} +.p-r-138 {padding-right: 138px;} +.p-r-139 {padding-right: 139px;} +.p-r-140 {padding-right: 140px;} +.p-r-141 {padding-right: 141px;} +.p-r-142 {padding-right: 142px;} +.p-r-143 {padding-right: 143px;} +.p-r-144 {padding-right: 144px;} +.p-r-145 {padding-right: 145px;} +.p-r-146 {padding-right: 146px;} +.p-r-147 {padding-right: 147px;} +.p-r-148 {padding-right: 148px;} +.p-r-149 {padding-right: 149px;} +.p-r-150 {padding-right: 150px;} +.p-r-151 {padding-right: 151px;} +.p-r-152 {padding-right: 152px;} +.p-r-153 {padding-right: 153px;} +.p-r-154 {padding-right: 154px;} +.p-r-155 {padding-right: 155px;} +.p-r-156 {padding-right: 156px;} +.p-r-157 {padding-right: 157px;} +.p-r-158 {padding-right: 158px;} +.p-r-159 {padding-right: 159px;} +.p-r-160 {padding-right: 160px;} +.p-r-161 {padding-right: 161px;} +.p-r-162 {padding-right: 162px;} +.p-r-163 {padding-right: 163px;} +.p-r-164 {padding-right: 164px;} +.p-r-165 {padding-right: 165px;} +.p-r-166 {padding-right: 166px;} +.p-r-167 {padding-right: 167px;} +.p-r-168 {padding-right: 168px;} +.p-r-169 {padding-right: 169px;} +.p-r-170 {padding-right: 170px;} +.p-r-171 {padding-right: 171px;} +.p-r-172 {padding-right: 172px;} +.p-r-173 {padding-right: 173px;} +.p-r-174 {padding-right: 174px;} +.p-r-175 {padding-right: 175px;} +.p-r-176 {padding-right: 176px;} +.p-r-177 {padding-right: 177px;} +.p-r-178 {padding-right: 178px;} +.p-r-179 {padding-right: 179px;} +.p-r-180 {padding-right: 180px;} +.p-r-181 {padding-right: 181px;} +.p-r-182 {padding-right: 182px;} +.p-r-183 {padding-right: 183px;} +.p-r-184 {padding-right: 184px;} +.p-r-185 {padding-right: 185px;} +.p-r-186 {padding-right: 186px;} +.p-r-187 {padding-right: 187px;} +.p-r-188 {padding-right: 188px;} +.p-r-189 {padding-right: 189px;} +.p-r-190 {padding-right: 190px;} +.p-r-191 {padding-right: 191px;} +.p-r-192 {padding-right: 192px;} +.p-r-193 {padding-right: 193px;} +.p-r-194 {padding-right: 194px;} +.p-r-195 {padding-right: 195px;} +.p-r-196 {padding-right: 196px;} +.p-r-197 {padding-right: 197px;} +.p-r-198 {padding-right: 198px;} +.p-r-199 {padding-right: 199px;} +.p-r-200 {padding-right: 200px;} +.p-r-201 {padding-right: 201px;} +.p-r-202 {padding-right: 202px;} +.p-r-203 {padding-right: 203px;} +.p-r-204 {padding-right: 204px;} +.p-r-205 {padding-right: 205px;} +.p-r-206 {padding-right: 206px;} +.p-r-207 {padding-right: 207px;} +.p-r-208 {padding-right: 208px;} +.p-r-209 {padding-right: 209px;} +.p-r-210 {padding-right: 210px;} +.p-r-211 {padding-right: 211px;} +.p-r-212 {padding-right: 212px;} +.p-r-213 {padding-right: 213px;} +.p-r-214 {padding-right: 214px;} +.p-r-215 {padding-right: 215px;} +.p-r-216 {padding-right: 216px;} +.p-r-217 {padding-right: 217px;} +.p-r-218 {padding-right: 218px;} +.p-r-219 {padding-right: 219px;} +.p-r-220 {padding-right: 220px;} +.p-r-221 {padding-right: 221px;} +.p-r-222 {padding-right: 222px;} +.p-r-223 {padding-right: 223px;} +.p-r-224 {padding-right: 224px;} +.p-r-225 {padding-right: 225px;} +.p-r-226 {padding-right: 226px;} +.p-r-227 {padding-right: 227px;} +.p-r-228 {padding-right: 228px;} +.p-r-229 {padding-right: 229px;} +.p-r-230 {padding-right: 230px;} +.p-r-231 {padding-right: 231px;} +.p-r-232 {padding-right: 232px;} +.p-r-233 {padding-right: 233px;} +.p-r-234 {padding-right: 234px;} +.p-r-235 {padding-right: 235px;} +.p-r-236 {padding-right: 236px;} +.p-r-237 {padding-right: 237px;} +.p-r-238 {padding-right: 238px;} +.p-r-239 {padding-right: 239px;} +.p-r-240 {padding-right: 240px;} +.p-r-241 {padding-right: 241px;} +.p-r-242 {padding-right: 242px;} +.p-r-243 {padding-right: 243px;} +.p-r-244 {padding-right: 244px;} +.p-r-245 {padding-right: 245px;} +.p-r-246 {padding-right: 246px;} +.p-r-247 {padding-right: 247px;} +.p-r-248 {padding-right: 248px;} +.p-r-249 {padding-right: 249px;} +.p-r-250 {padding-right: 250px;} + +/*[ MARGIN ] +/////////////////////////////////////////////////////////// +*/ +.m-t-0 {margin-top: 0px;} +.m-t-1 {margin-top: 1px;} +.m-t-2 {margin-top: 2px;} +.m-t-3 {margin-top: 3px;} +.m-t-4 {margin-top: 4px;} +.m-t-5 {margin-top: 5px;} +.m-t-6 {margin-top: 6px;} +.m-t-7 {margin-top: 7px;} +.m-t-8 {margin-top: 8px;} +.m-t-9 {margin-top: 9px;} +.m-t-10 {margin-top: 10px;} +.m-t-11 {margin-top: 11px;} +.m-t-12 {margin-top: 12px;} +.m-t-13 {margin-top: 13px;} +.m-t-14 {margin-top: 14px;} +.m-t-15 {margin-top: 15px;} +.m-t-16 {margin-top: 16px;} +.m-t-17 {margin-top: 17px;} +.m-t-18 {margin-top: 18px;} +.m-t-19 {margin-top: 19px;} +.m-t-20 {margin-top: 20px;} +.m-t-21 {margin-top: 21px;} +.m-t-22 {margin-top: 22px;} +.m-t-23 {margin-top: 23px;} +.m-t-24 {margin-top: 24px;} +.m-t-25 {margin-top: 25px;} +.m-t-26 {margin-top: 26px;} +.m-t-27 {margin-top: 27px;} +.m-t-28 {margin-top: 28px;} +.m-t-29 {margin-top: 29px;} +.m-t-30 {margin-top: 30px;} +.m-t-31 {margin-top: 31px;} +.m-t-32 {margin-top: 32px;} +.m-t-33 {margin-top: 33px;} +.m-t-34 {margin-top: 34px;} +.m-t-35 {margin-top: 35px;} +.m-t-36 {margin-top: 36px;} +.m-t-37 {margin-top: 37px;} +.m-t-38 {margin-top: 38px;} +.m-t-39 {margin-top: 39px;} +.m-t-40 {margin-top: 40px;} +.m-t-41 {margin-top: 41px;} +.m-t-42 {margin-top: 42px;} +.m-t-43 {margin-top: 43px;} +.m-t-44 {margin-top: 44px;} +.m-t-45 {margin-top: 45px;} +.m-t-46 {margin-top: 46px;} +.m-t-47 {margin-top: 47px;} +.m-t-48 {margin-top: 48px;} +.m-t-49 {margin-top: 49px;} +.m-t-50 {margin-top: 50px;} +.m-t-51 {margin-top: 51px;} +.m-t-52 {margin-top: 52px;} +.m-t-53 {margin-top: 53px;} +.m-t-54 {margin-top: 54px;} +.m-t-55 {margin-top: 55px;} +.m-t-56 {margin-top: 56px;} +.m-t-57 {margin-top: 57px;} +.m-t-58 {margin-top: 58px;} +.m-t-59 {margin-top: 59px;} +.m-t-60 {margin-top: 60px;} +.m-t-61 {margin-top: 61px;} +.m-t-62 {margin-top: 62px;} +.m-t-63 {margin-top: 63px;} +.m-t-64 {margin-top: 64px;} +.m-t-65 {margin-top: 65px;} +.m-t-66 {margin-top: 66px;} +.m-t-67 {margin-top: 67px;} +.m-t-68 {margin-top: 68px;} +.m-t-69 {margin-top: 69px;} +.m-t-70 {margin-top: 70px;} +.m-t-71 {margin-top: 71px;} +.m-t-72 {margin-top: 72px;} +.m-t-73 {margin-top: 73px;} +.m-t-74 {margin-top: 74px;} +.m-t-75 {margin-top: 75px;} +.m-t-76 {margin-top: 76px;} +.m-t-77 {margin-top: 77px;} +.m-t-78 {margin-top: 78px;} +.m-t-79 {margin-top: 79px;} +.m-t-80 {margin-top: 80px;} +.m-t-81 {margin-top: 81px;} +.m-t-82 {margin-top: 82px;} +.m-t-83 {margin-top: 83px;} +.m-t-84 {margin-top: 84px;} +.m-t-85 {margin-top: 85px;} +.m-t-86 {margin-top: 86px;} +.m-t-87 {margin-top: 87px;} +.m-t-88 {margin-top: 88px;} +.m-t-89 {margin-top: 89px;} +.m-t-90 {margin-top: 90px;} +.m-t-91 {margin-top: 91px;} +.m-t-92 {margin-top: 92px;} +.m-t-93 {margin-top: 93px;} +.m-t-94 {margin-top: 94px;} +.m-t-95 {margin-top: 95px;} +.m-t-96 {margin-top: 96px;} +.m-t-97 {margin-top: 97px;} +.m-t-98 {margin-top: 98px;} +.m-t-99 {margin-top: 99px;} +.m-t-100 {margin-top: 100px;} +.m-t-101 {margin-top: 101px;} +.m-t-102 {margin-top: 102px;} +.m-t-103 {margin-top: 103px;} +.m-t-104 {margin-top: 104px;} +.m-t-105 {margin-top: 105px;} +.m-t-106 {margin-top: 106px;} +.m-t-107 {margin-top: 107px;} +.m-t-108 {margin-top: 108px;} +.m-t-109 {margin-top: 109px;} +.m-t-110 {margin-top: 110px;} +.m-t-111 {margin-top: 111px;} +.m-t-112 {margin-top: 112px;} +.m-t-113 {margin-top: 113px;} +.m-t-114 {margin-top: 114px;} +.m-t-115 {margin-top: 115px;} +.m-t-116 {margin-top: 116px;} +.m-t-117 {margin-top: 117px;} +.m-t-118 {margin-top: 118px;} +.m-t-119 {margin-top: 119px;} +.m-t-120 {margin-top: 120px;} +.m-t-121 {margin-top: 121px;} +.m-t-122 {margin-top: 122px;} +.m-t-123 {margin-top: 123px;} +.m-t-124 {margin-top: 124px;} +.m-t-125 {margin-top: 125px;} +.m-t-126 {margin-top: 126px;} +.m-t-127 {margin-top: 127px;} +.m-t-128 {margin-top: 128px;} +.m-t-129 {margin-top: 129px;} +.m-t-130 {margin-top: 130px;} +.m-t-131 {margin-top: 131px;} +.m-t-132 {margin-top: 132px;} +.m-t-133 {margin-top: 133px;} +.m-t-134 {margin-top: 134px;} +.m-t-135 {margin-top: 135px;} +.m-t-136 {margin-top: 136px;} +.m-t-137 {margin-top: 137px;} +.m-t-138 {margin-top: 138px;} +.m-t-139 {margin-top: 139px;} +.m-t-140 {margin-top: 140px;} +.m-t-141 {margin-top: 141px;} +.m-t-142 {margin-top: 142px;} +.m-t-143 {margin-top: 143px;} +.m-t-144 {margin-top: 144px;} +.m-t-145 {margin-top: 145px;} +.m-t-146 {margin-top: 146px;} +.m-t-147 {margin-top: 147px;} +.m-t-148 {margin-top: 148px;} +.m-t-149 {margin-top: 149px;} +.m-t-150 {margin-top: 150px;} +.m-t-151 {margin-top: 151px;} +.m-t-152 {margin-top: 152px;} +.m-t-153 {margin-top: 153px;} +.m-t-154 {margin-top: 154px;} +.m-t-155 {margin-top: 155px;} +.m-t-156 {margin-top: 156px;} +.m-t-157 {margin-top: 157px;} +.m-t-158 {margin-top: 158px;} +.m-t-159 {margin-top: 159px;} +.m-t-160 {margin-top: 160px;} +.m-t-161 {margin-top: 161px;} +.m-t-162 {margin-top: 162px;} +.m-t-163 {margin-top: 163px;} +.m-t-164 {margin-top: 164px;} +.m-t-165 {margin-top: 165px;} +.m-t-166 {margin-top: 166px;} +.m-t-167 {margin-top: 167px;} +.m-t-168 {margin-top: 168px;} +.m-t-169 {margin-top: 169px;} +.m-t-170 {margin-top: 170px;} +.m-t-171 {margin-top: 171px;} +.m-t-172 {margin-top: 172px;} +.m-t-173 {margin-top: 173px;} +.m-t-174 {margin-top: 174px;} +.m-t-175 {margin-top: 175px;} +.m-t-176 {margin-top: 176px;} +.m-t-177 {margin-top: 177px;} +.m-t-178 {margin-top: 178px;} +.m-t-179 {margin-top: 179px;} +.m-t-180 {margin-top: 180px;} +.m-t-181 {margin-top: 181px;} +.m-t-182 {margin-top: 182px;} +.m-t-183 {margin-top: 183px;} +.m-t-184 {margin-top: 184px;} +.m-t-185 {margin-top: 185px;} +.m-t-186 {margin-top: 186px;} +.m-t-187 {margin-top: 187px;} +.m-t-188 {margin-top: 188px;} +.m-t-189 {margin-top: 189px;} +.m-t-190 {margin-top: 190px;} +.m-t-191 {margin-top: 191px;} +.m-t-192 {margin-top: 192px;} +.m-t-193 {margin-top: 193px;} +.m-t-194 {margin-top: 194px;} +.m-t-195 {margin-top: 195px;} +.m-t-196 {margin-top: 196px;} +.m-t-197 {margin-top: 197px;} +.m-t-198 {margin-top: 198px;} +.m-t-199 {margin-top: 199px;} +.m-t-200 {margin-top: 200px;} +.m-t-201 {margin-top: 201px;} +.m-t-202 {margin-top: 202px;} +.m-t-203 {margin-top: 203px;} +.m-t-204 {margin-top: 204px;} +.m-t-205 {margin-top: 205px;} +.m-t-206 {margin-top: 206px;} +.m-t-207 {margin-top: 207px;} +.m-t-208 {margin-top: 208px;} +.m-t-209 {margin-top: 209px;} +.m-t-210 {margin-top: 210px;} +.m-t-211 {margin-top: 211px;} +.m-t-212 {margin-top: 212px;} +.m-t-213 {margin-top: 213px;} +.m-t-214 {margin-top: 214px;} +.m-t-215 {margin-top: 215px;} +.m-t-216 {margin-top: 216px;} +.m-t-217 {margin-top: 217px;} +.m-t-218 {margin-top: 218px;} +.m-t-219 {margin-top: 219px;} +.m-t-220 {margin-top: 220px;} +.m-t-221 {margin-top: 221px;} +.m-t-222 {margin-top: 222px;} +.m-t-223 {margin-top: 223px;} +.m-t-224 {margin-top: 224px;} +.m-t-225 {margin-top: 225px;} +.m-t-226 {margin-top: 226px;} +.m-t-227 {margin-top: 227px;} +.m-t-228 {margin-top: 228px;} +.m-t-229 {margin-top: 229px;} +.m-t-230 {margin-top: 230px;} +.m-t-231 {margin-top: 231px;} +.m-t-232 {margin-top: 232px;} +.m-t-233 {margin-top: 233px;} +.m-t-234 {margin-top: 234px;} +.m-t-235 {margin-top: 235px;} +.m-t-236 {margin-top: 236px;} +.m-t-237 {margin-top: 237px;} +.m-t-238 {margin-top: 238px;} +.m-t-239 {margin-top: 239px;} +.m-t-240 {margin-top: 240px;} +.m-t-241 {margin-top: 241px;} +.m-t-242 {margin-top: 242px;} +.m-t-243 {margin-top: 243px;} +.m-t-244 {margin-top: 244px;} +.m-t-245 {margin-top: 245px;} +.m-t-246 {margin-top: 246px;} +.m-t-247 {margin-top: 247px;} +.m-t-248 {margin-top: 248px;} +.m-t-249 {margin-top: 249px;} +.m-t-250 {margin-top: 250px;} +.m-b-0 {margin-bottom: 0px;} +.m-b-1 {margin-bottom: 1px;} +.m-b-2 {margin-bottom: 2px;} +.m-b-3 {margin-bottom: 3px;} +.m-b-4 {margin-bottom: 4px;} +.m-b-5 {margin-bottom: 5px;} +.m-b-6 {margin-bottom: 6px;} +.m-b-7 {margin-bottom: 7px;} +.m-b-8 {margin-bottom: 8px;} +.m-b-9 {margin-bottom: 9px;} +.m-b-10 {margin-bottom: 10px;} +.m-b-11 {margin-bottom: 11px;} +.m-b-12 {margin-bottom: 12px;} +.m-b-13 {margin-bottom: 13px;} +.m-b-14 {margin-bottom: 14px;} +.m-b-15 {margin-bottom: 15px;} +.m-b-16 {margin-bottom: 16px;} +.m-b-17 {margin-bottom: 17px;} +.m-b-18 {margin-bottom: 18px;} +.m-b-19 {margin-bottom: 19px;} +.m-b-20 {margin-bottom: 20px;} +.m-b-21 {margin-bottom: 21px;} +.m-b-22 {margin-bottom: 22px;} +.m-b-23 {margin-bottom: 23px;} +.m-b-24 {margin-bottom: 24px;} +.m-b-25 {margin-bottom: 25px;} +.m-b-26 {margin-bottom: 26px;} +.m-b-27 {margin-bottom: 27px;} +.m-b-28 {margin-bottom: 28px;} +.m-b-29 {margin-bottom: 29px;} +.m-b-30 {margin-bottom: 30px;} +.m-b-31 {margin-bottom: 31px;} +.m-b-32 {margin-bottom: 32px;} +.m-b-33 {margin-bottom: 33px;} +.m-b-34 {margin-bottom: 34px;} +.m-b-35 {margin-bottom: 35px;} +.m-b-36 {margin-bottom: 36px;} +.m-b-37 {margin-bottom: 37px;} +.m-b-38 {margin-bottom: 38px;} +.m-b-39 {margin-bottom: 39px;} +.m-b-40 {margin-bottom: 40px;} +.m-b-41 {margin-bottom: 41px;} +.m-b-42 {margin-bottom: 42px;} +.m-b-43 {margin-bottom: 43px;} +.m-b-44 {margin-bottom: 44px;} +.m-b-45 {margin-bottom: 45px;} +.m-b-46 {margin-bottom: 46px;} +.m-b-47 {margin-bottom: 47px;} +.m-b-48 {margin-bottom: 48px;} +.m-b-49 {margin-bottom: 49px;} +.m-b-50 {margin-bottom: 50px;} +.m-b-51 {margin-bottom: 51px;} +.m-b-52 {margin-bottom: 52px;} +.m-b-53 {margin-bottom: 53px;} +.m-b-54 {margin-bottom: 54px;} +.m-b-55 {margin-bottom: 55px;} +.m-b-56 {margin-bottom: 56px;} +.m-b-57 {margin-bottom: 57px;} +.m-b-58 {margin-bottom: 58px;} +.m-b-59 {margin-bottom: 59px;} +.m-b-60 {margin-bottom: 60px;} +.m-b-61 {margin-bottom: 61px;} +.m-b-62 {margin-bottom: 62px;} +.m-b-63 {margin-bottom: 63px;} +.m-b-64 {margin-bottom: 64px;} +.m-b-65 {margin-bottom: 65px;} +.m-b-66 {margin-bottom: 66px;} +.m-b-67 {margin-bottom: 67px;} +.m-b-68 {margin-bottom: 68px;} +.m-b-69 {margin-bottom: 69px;} +.m-b-70 {margin-bottom: 70px;} +.m-b-71 {margin-bottom: 71px;} +.m-b-72 {margin-bottom: 72px;} +.m-b-73 {margin-bottom: 73px;} +.m-b-74 {margin-bottom: 74px;} +.m-b-75 {margin-bottom: 75px;} +.m-b-76 {margin-bottom: 76px;} +.m-b-77 {margin-bottom: 77px;} +.m-b-78 {margin-bottom: 78px;} +.m-b-79 {margin-bottom: 79px;} +.m-b-80 {margin-bottom: 80px;} +.m-b-81 {margin-bottom: 81px;} +.m-b-82 {margin-bottom: 82px;} +.m-b-83 {margin-bottom: 83px;} +.m-b-84 {margin-bottom: 84px;} +.m-b-85 {margin-bottom: 85px;} +.m-b-86 {margin-bottom: 86px;} +.m-b-87 {margin-bottom: 87px;} +.m-b-88 {margin-bottom: 88px;} +.m-b-89 {margin-bottom: 89px;} +.m-b-90 {margin-bottom: 90px;} +.m-b-91 {margin-bottom: 91px;} +.m-b-92 {margin-bottom: 92px;} +.m-b-93 {margin-bottom: 93px;} +.m-b-94 {margin-bottom: 94px;} +.m-b-95 {margin-bottom: 95px;} +.m-b-96 {margin-bottom: 96px;} +.m-b-97 {margin-bottom: 97px;} +.m-b-98 {margin-bottom: 98px;} +.m-b-99 {margin-bottom: 99px;} +.m-b-100 {margin-bottom: 100px;} +.m-b-101 {margin-bottom: 101px;} +.m-b-102 {margin-bottom: 102px;} +.m-b-103 {margin-bottom: 103px;} +.m-b-104 {margin-bottom: 104px;} +.m-b-105 {margin-bottom: 105px;} +.m-b-106 {margin-bottom: 106px;} +.m-b-107 {margin-bottom: 107px;} +.m-b-108 {margin-bottom: 108px;} +.m-b-109 {margin-bottom: 109px;} +.m-b-110 {margin-bottom: 110px;} +.m-b-111 {margin-bottom: 111px;} +.m-b-112 {margin-bottom: 112px;} +.m-b-113 {margin-bottom: 113px;} +.m-b-114 {margin-bottom: 114px;} +.m-b-115 {margin-bottom: 115px;} +.m-b-116 {margin-bottom: 116px;} +.m-b-117 {margin-bottom: 117px;} +.m-b-118 {margin-bottom: 118px;} +.m-b-119 {margin-bottom: 119px;} +.m-b-120 {margin-bottom: 120px;} +.m-b-121 {margin-bottom: 121px;} +.m-b-122 {margin-bottom: 122px;} +.m-b-123 {margin-bottom: 123px;} +.m-b-124 {margin-bottom: 124px;} +.m-b-125 {margin-bottom: 125px;} +.m-b-126 {margin-bottom: 126px;} +.m-b-127 {margin-bottom: 127px;} +.m-b-128 {margin-bottom: 128px;} +.m-b-129 {margin-bottom: 129px;} +.m-b-130 {margin-bottom: 130px;} +.m-b-131 {margin-bottom: 131px;} +.m-b-132 {margin-bottom: 132px;} +.m-b-133 {margin-bottom: 133px;} +.m-b-134 {margin-bottom: 134px;} +.m-b-135 {margin-bottom: 135px;} +.m-b-136 {margin-bottom: 136px;} +.m-b-137 {margin-bottom: 137px;} +.m-b-138 {margin-bottom: 138px;} +.m-b-139 {margin-bottom: 139px;} +.m-b-140 {margin-bottom: 140px;} +.m-b-141 {margin-bottom: 141px;} +.m-b-142 {margin-bottom: 142px;} +.m-b-143 {margin-bottom: 143px;} +.m-b-144 {margin-bottom: 144px;} +.m-b-145 {margin-bottom: 145px;} +.m-b-146 {margin-bottom: 146px;} +.m-b-147 {margin-bottom: 147px;} +.m-b-148 {margin-bottom: 148px;} +.m-b-149 {margin-bottom: 149px;} +.m-b-150 {margin-bottom: 150px;} +.m-b-151 {margin-bottom: 151px;} +.m-b-152 {margin-bottom: 152px;} +.m-b-153 {margin-bottom: 153px;} +.m-b-154 {margin-bottom: 154px;} +.m-b-155 {margin-bottom: 155px;} +.m-b-156 {margin-bottom: 156px;} +.m-b-157 {margin-bottom: 157px;} +.m-b-158 {margin-bottom: 158px;} +.m-b-159 {margin-bottom: 159px;} +.m-b-160 {margin-bottom: 160px;} +.m-b-161 {margin-bottom: 161px;} +.m-b-162 {margin-bottom: 162px;} +.m-b-163 {margin-bottom: 163px;} +.m-b-164 {margin-bottom: 164px;} +.m-b-165 {margin-bottom: 165px;} +.m-b-166 {margin-bottom: 166px;} +.m-b-167 {margin-bottom: 167px;} +.m-b-168 {margin-bottom: 168px;} +.m-b-169 {margin-bottom: 169px;} +.m-b-170 {margin-bottom: 170px;} +.m-b-171 {margin-bottom: 171px;} +.m-b-172 {margin-bottom: 172px;} +.m-b-173 {margin-bottom: 173px;} +.m-b-174 {margin-bottom: 174px;} +.m-b-175 {margin-bottom: 175px;} +.m-b-176 {margin-bottom: 176px;} +.m-b-177 {margin-bottom: 177px;} +.m-b-178 {margin-bottom: 178px;} +.m-b-179 {margin-bottom: 179px;} +.m-b-180 {margin-bottom: 180px;} +.m-b-181 {margin-bottom: 181px;} +.m-b-182 {margin-bottom: 182px;} +.m-b-183 {margin-bottom: 183px;} +.m-b-184 {margin-bottom: 184px;} +.m-b-185 {margin-bottom: 185px;} +.m-b-186 {margin-bottom: 186px;} +.m-b-187 {margin-bottom: 187px;} +.m-b-188 {margin-bottom: 188px;} +.m-b-189 {margin-bottom: 189px;} +.m-b-190 {margin-bottom: 190px;} +.m-b-191 {margin-bottom: 191px;} +.m-b-192 {margin-bottom: 192px;} +.m-b-193 {margin-bottom: 193px;} +.m-b-194 {margin-bottom: 194px;} +.m-b-195 {margin-bottom: 195px;} +.m-b-196 {margin-bottom: 196px;} +.m-b-197 {margin-bottom: 197px;} +.m-b-198 {margin-bottom: 198px;} +.m-b-199 {margin-bottom: 199px;} +.m-b-200 {margin-bottom: 200px;} +.m-b-201 {margin-bottom: 201px;} +.m-b-202 {margin-bottom: 202px;} +.m-b-203 {margin-bottom: 203px;} +.m-b-204 {margin-bottom: 204px;} +.m-b-205 {margin-bottom: 205px;} +.m-b-206 {margin-bottom: 206px;} +.m-b-207 {margin-bottom: 207px;} +.m-b-208 {margin-bottom: 208px;} +.m-b-209 {margin-bottom: 209px;} +.m-b-210 {margin-bottom: 210px;} +.m-b-211 {margin-bottom: 211px;} +.m-b-212 {margin-bottom: 212px;} +.m-b-213 {margin-bottom: 213px;} +.m-b-214 {margin-bottom: 214px;} +.m-b-215 {margin-bottom: 215px;} +.m-b-216 {margin-bottom: 216px;} +.m-b-217 {margin-bottom: 217px;} +.m-b-218 {margin-bottom: 218px;} +.m-b-219 {margin-bottom: 219px;} +.m-b-220 {margin-bottom: 220px;} +.m-b-221 {margin-bottom: 221px;} +.m-b-222 {margin-bottom: 222px;} +.m-b-223 {margin-bottom: 223px;} +.m-b-224 {margin-bottom: 224px;} +.m-b-225 {margin-bottom: 225px;} +.m-b-226 {margin-bottom: 226px;} +.m-b-227 {margin-bottom: 227px;} +.m-b-228 {margin-bottom: 228px;} +.m-b-229 {margin-bottom: 229px;} +.m-b-230 {margin-bottom: 230px;} +.m-b-231 {margin-bottom: 231px;} +.m-b-232 {margin-bottom: 232px;} +.m-b-233 {margin-bottom: 233px;} +.m-b-234 {margin-bottom: 234px;} +.m-b-235 {margin-bottom: 235px;} +.m-b-236 {margin-bottom: 236px;} +.m-b-237 {margin-bottom: 237px;} +.m-b-238 {margin-bottom: 238px;} +.m-b-239 {margin-bottom: 239px;} +.m-b-240 {margin-bottom: 240px;} +.m-b-241 {margin-bottom: 241px;} +.m-b-242 {margin-bottom: 242px;} +.m-b-243 {margin-bottom: 243px;} +.m-b-244 {margin-bottom: 244px;} +.m-b-245 {margin-bottom: 245px;} +.m-b-246 {margin-bottom: 246px;} +.m-b-247 {margin-bottom: 247px;} +.m-b-248 {margin-bottom: 248px;} +.m-b-249 {margin-bottom: 249px;} +.m-b-250 {margin-bottom: 250px;} +.m-l-0 {margin-left: 0px;} +.m-l-1 {margin-left: 1px;} +.m-l-2 {margin-left: 2px;} +.m-l-3 {margin-left: 3px;} +.m-l-4 {margin-left: 4px;} +.m-l-5 {margin-left: 5px;} +.m-l-6 {margin-left: 6px;} +.m-l-7 {margin-left: 7px;} +.m-l-8 {margin-left: 8px;} +.m-l-9 {margin-left: 9px;} +.m-l-10 {margin-left: 10px;} +.m-l-11 {margin-left: 11px;} +.m-l-12 {margin-left: 12px;} +.m-l-13 {margin-left: 13px;} +.m-l-14 {margin-left: 14px;} +.m-l-15 {margin-left: 15px;} +.m-l-16 {margin-left: 16px;} +.m-l-17 {margin-left: 17px;} +.m-l-18 {margin-left: 18px;} +.m-l-19 {margin-left: 19px;} +.m-l-20 {margin-left: 20px;} +.m-l-21 {margin-left: 21px;} +.m-l-22 {margin-left: 22px;} +.m-l-23 {margin-left: 23px;} +.m-l-24 {margin-left: 24px;} +.m-l-25 {margin-left: 25px;} +.m-l-26 {margin-left: 26px;} +.m-l-27 {margin-left: 27px;} +.m-l-28 {margin-left: 28px;} +.m-l-29 {margin-left: 29px;} +.m-l-30 {margin-left: 30px;} +.m-l-31 {margin-left: 31px;} +.m-l-32 {margin-left: 32px;} +.m-l-33 {margin-left: 33px;} +.m-l-34 {margin-left: 34px;} +.m-l-35 {margin-left: 35px;} +.m-l-36 {margin-left: 36px;} +.m-l-37 {margin-left: 37px;} +.m-l-38 {margin-left: 38px;} +.m-l-39 {margin-left: 39px;} +.m-l-40 {margin-left: 40px;} +.m-l-41 {margin-left: 41px;} +.m-l-42 {margin-left: 42px;} +.m-l-43 {margin-left: 43px;} +.m-l-44 {margin-left: 44px;} +.m-l-45 {margin-left: 45px;} +.m-l-46 {margin-left: 46px;} +.m-l-47 {margin-left: 47px;} +.m-l-48 {margin-left: 48px;} +.m-l-49 {margin-left: 49px;} +.m-l-50 {margin-left: 50px;} +.m-l-51 {margin-left: 51px;} +.m-l-52 {margin-left: 52px;} +.m-l-53 {margin-left: 53px;} +.m-l-54 {margin-left: 54px;} +.m-l-55 {margin-left: 55px;} +.m-l-56 {margin-left: 56px;} +.m-l-57 {margin-left: 57px;} +.m-l-58 {margin-left: 58px;} +.m-l-59 {margin-left: 59px;} +.m-l-60 {margin-left: 60px;} +.m-l-61 {margin-left: 61px;} +.m-l-62 {margin-left: 62px;} +.m-l-63 {margin-left: 63px;} +.m-l-64 {margin-left: 64px;} +.m-l-65 {margin-left: 65px;} +.m-l-66 {margin-left: 66px;} +.m-l-67 {margin-left: 67px;} +.m-l-68 {margin-left: 68px;} +.m-l-69 {margin-left: 69px;} +.m-l-70 {margin-left: 70px;} +.m-l-71 {margin-left: 71px;} +.m-l-72 {margin-left: 72px;} +.m-l-73 {margin-left: 73px;} +.m-l-74 {margin-left: 74px;} +.m-l-75 {margin-left: 75px;} +.m-l-76 {margin-left: 76px;} +.m-l-77 {margin-left: 77px;} +.m-l-78 {margin-left: 78px;} +.m-l-79 {margin-left: 79px;} +.m-l-80 {margin-left: 80px;} +.m-l-81 {margin-left: 81px;} +.m-l-82 {margin-left: 82px;} +.m-l-83 {margin-left: 83px;} +.m-l-84 {margin-left: 84px;} +.m-l-85 {margin-left: 85px;} +.m-l-86 {margin-left: 86px;} +.m-l-87 {margin-left: 87px;} +.m-l-88 {margin-left: 88px;} +.m-l-89 {margin-left: 89px;} +.m-l-90 {margin-left: 90px;} +.m-l-91 {margin-left: 91px;} +.m-l-92 {margin-left: 92px;} +.m-l-93 {margin-left: 93px;} +.m-l-94 {margin-left: 94px;} +.m-l-95 {margin-left: 95px;} +.m-l-96 {margin-left: 96px;} +.m-l-97 {margin-left: 97px;} +.m-l-98 {margin-left: 98px;} +.m-l-99 {margin-left: 99px;} +.m-l-100 {margin-left: 100px;} +.m-l-101 {margin-left: 101px;} +.m-l-102 {margin-left: 102px;} +.m-l-103 {margin-left: 103px;} +.m-l-104 {margin-left: 104px;} +.m-l-105 {margin-left: 105px;} +.m-l-106 {margin-left: 106px;} +.m-l-107 {margin-left: 107px;} +.m-l-108 {margin-left: 108px;} +.m-l-109 {margin-left: 109px;} +.m-l-110 {margin-left: 110px;} +.m-l-111 {margin-left: 111px;} +.m-l-112 {margin-left: 112px;} +.m-l-113 {margin-left: 113px;} +.m-l-114 {margin-left: 114px;} +.m-l-115 {margin-left: 115px;} +.m-l-116 {margin-left: 116px;} +.m-l-117 {margin-left: 117px;} +.m-l-118 {margin-left: 118px;} +.m-l-119 {margin-left: 119px;} +.m-l-120 {margin-left: 120px;} +.m-l-121 {margin-left: 121px;} +.m-l-122 {margin-left: 122px;} +.m-l-123 {margin-left: 123px;} +.m-l-124 {margin-left: 124px;} +.m-l-125 {margin-left: 125px;} +.m-l-126 {margin-left: 126px;} +.m-l-127 {margin-left: 127px;} +.m-l-128 {margin-left: 128px;} +.m-l-129 {margin-left: 129px;} +.m-l-130 {margin-left: 130px;} +.m-l-131 {margin-left: 131px;} +.m-l-132 {margin-left: 132px;} +.m-l-133 {margin-left: 133px;} +.m-l-134 {margin-left: 134px;} +.m-l-135 {margin-left: 135px;} +.m-l-136 {margin-left: 136px;} +.m-l-137 {margin-left: 137px;} +.m-l-138 {margin-left: 138px;} +.m-l-139 {margin-left: 139px;} +.m-l-140 {margin-left: 140px;} +.m-l-141 {margin-left: 141px;} +.m-l-142 {margin-left: 142px;} +.m-l-143 {margin-left: 143px;} +.m-l-144 {margin-left: 144px;} +.m-l-145 {margin-left: 145px;} +.m-l-146 {margin-left: 146px;} +.m-l-147 {margin-left: 147px;} +.m-l-148 {margin-left: 148px;} +.m-l-149 {margin-left: 149px;} +.m-l-150 {margin-left: 150px;} +.m-l-151 {margin-left: 151px;} +.m-l-152 {margin-left: 152px;} +.m-l-153 {margin-left: 153px;} +.m-l-154 {margin-left: 154px;} +.m-l-155 {margin-left: 155px;} +.m-l-156 {margin-left: 156px;} +.m-l-157 {margin-left: 157px;} +.m-l-158 {margin-left: 158px;} +.m-l-159 {margin-left: 159px;} +.m-l-160 {margin-left: 160px;} +.m-l-161 {margin-left: 161px;} +.m-l-162 {margin-left: 162px;} +.m-l-163 {margin-left: 163px;} +.m-l-164 {margin-left: 164px;} +.m-l-165 {margin-left: 165px;} +.m-l-166 {margin-left: 166px;} +.m-l-167 {margin-left: 167px;} +.m-l-168 {margin-left: 168px;} +.m-l-169 {margin-left: 169px;} +.m-l-170 {margin-left: 170px;} +.m-l-171 {margin-left: 171px;} +.m-l-172 {margin-left: 172px;} +.m-l-173 {margin-left: 173px;} +.m-l-174 {margin-left: 174px;} +.m-l-175 {margin-left: 175px;} +.m-l-176 {margin-left: 176px;} +.m-l-177 {margin-left: 177px;} +.m-l-178 {margin-left: 178px;} +.m-l-179 {margin-left: 179px;} +.m-l-180 {margin-left: 180px;} +.m-l-181 {margin-left: 181px;} +.m-l-182 {margin-left: 182px;} +.m-l-183 {margin-left: 183px;} +.m-l-184 {margin-left: 184px;} +.m-l-185 {margin-left: 185px;} +.m-l-186 {margin-left: 186px;} +.m-l-187 {margin-left: 187px;} +.m-l-188 {margin-left: 188px;} +.m-l-189 {margin-left: 189px;} +.m-l-190 {margin-left: 190px;} +.m-l-191 {margin-left: 191px;} +.m-l-192 {margin-left: 192px;} +.m-l-193 {margin-left: 193px;} +.m-l-194 {margin-left: 194px;} +.m-l-195 {margin-left: 195px;} +.m-l-196 {margin-left: 196px;} +.m-l-197 {margin-left: 197px;} +.m-l-198 {margin-left: 198px;} +.m-l-199 {margin-left: 199px;} +.m-l-200 {margin-left: 200px;} +.m-l-201 {margin-left: 201px;} +.m-l-202 {margin-left: 202px;} +.m-l-203 {margin-left: 203px;} +.m-l-204 {margin-left: 204px;} +.m-l-205 {margin-left: 205px;} +.m-l-206 {margin-left: 206px;} +.m-l-207 {margin-left: 207px;} +.m-l-208 {margin-left: 208px;} +.m-l-209 {margin-left: 209px;} +.m-l-210 {margin-left: 210px;} +.m-l-211 {margin-left: 211px;} +.m-l-212 {margin-left: 212px;} +.m-l-213 {margin-left: 213px;} +.m-l-214 {margin-left: 214px;} +.m-l-215 {margin-left: 215px;} +.m-l-216 {margin-left: 216px;} +.m-l-217 {margin-left: 217px;} +.m-l-218 {margin-left: 218px;} +.m-l-219 {margin-left: 219px;} +.m-l-220 {margin-left: 220px;} +.m-l-221 {margin-left: 221px;} +.m-l-222 {margin-left: 222px;} +.m-l-223 {margin-left: 223px;} +.m-l-224 {margin-left: 224px;} +.m-l-225 {margin-left: 225px;} +.m-l-226 {margin-left: 226px;} +.m-l-227 {margin-left: 227px;} +.m-l-228 {margin-left: 228px;} +.m-l-229 {margin-left: 229px;} +.m-l-230 {margin-left: 230px;} +.m-l-231 {margin-left: 231px;} +.m-l-232 {margin-left: 232px;} +.m-l-233 {margin-left: 233px;} +.m-l-234 {margin-left: 234px;} +.m-l-235 {margin-left: 235px;} +.m-l-236 {margin-left: 236px;} +.m-l-237 {margin-left: 237px;} +.m-l-238 {margin-left: 238px;} +.m-l-239 {margin-left: 239px;} +.m-l-240 {margin-left: 240px;} +.m-l-241 {margin-left: 241px;} +.m-l-242 {margin-left: 242px;} +.m-l-243 {margin-left: 243px;} +.m-l-244 {margin-left: 244px;} +.m-l-245 {margin-left: 245px;} +.m-l-246 {margin-left: 246px;} +.m-l-247 {margin-left: 247px;} +.m-l-248 {margin-left: 248px;} +.m-l-249 {margin-left: 249px;} +.m-l-250 {margin-left: 250px;} +.m-r-0 {margin-right: 0px;} +.m-r-1 {margin-right: 1px;} +.m-r-2 {margin-right: 2px;} +.m-r-3 {margin-right: 3px;} +.m-r-4 {margin-right: 4px;} +.m-r-5 {margin-right: 5px;} +.m-r-6 {margin-right: 6px;} +.m-r-7 {margin-right: 7px;} +.m-r-8 {margin-right: 8px;} +.m-r-9 {margin-right: 9px;} +.m-r-10 {margin-right: 10px;} +.m-r-11 {margin-right: 11px;} +.m-r-12 {margin-right: 12px;} +.m-r-13 {margin-right: 13px;} +.m-r-14 {margin-right: 14px;} +.m-r-15 {margin-right: 15px;} +.m-r-16 {margin-right: 16px;} +.m-r-17 {margin-right: 17px;} +.m-r-18 {margin-right: 18px;} +.m-r-19 {margin-right: 19px;} +.m-r-20 {margin-right: 20px;} +.m-r-21 {margin-right: 21px;} +.m-r-22 {margin-right: 22px;} +.m-r-23 {margin-right: 23px;} +.m-r-24 {margin-right: 24px;} +.m-r-25 {margin-right: 25px;} +.m-r-26 {margin-right: 26px;} +.m-r-27 {margin-right: 27px;} +.m-r-28 {margin-right: 28px;} +.m-r-29 {margin-right: 29px;} +.m-r-30 {margin-right: 30px;} +.m-r-31 {margin-right: 31px;} +.m-r-32 {margin-right: 32px;} +.m-r-33 {margin-right: 33px;} +.m-r-34 {margin-right: 34px;} +.m-r-35 {margin-right: 35px;} +.m-r-36 {margin-right: 36px;} +.m-r-37 {margin-right: 37px;} +.m-r-38 {margin-right: 38px;} +.m-r-39 {margin-right: 39px;} +.m-r-40 {margin-right: 40px;} +.m-r-41 {margin-right: 41px;} +.m-r-42 {margin-right: 42px;} +.m-r-43 {margin-right: 43px;} +.m-r-44 {margin-right: 44px;} +.m-r-45 {margin-right: 45px;} +.m-r-46 {margin-right: 46px;} +.m-r-47 {margin-right: 47px;} +.m-r-48 {margin-right: 48px;} +.m-r-49 {margin-right: 49px;} +.m-r-50 {margin-right: 50px;} +.m-r-51 {margin-right: 51px;} +.m-r-52 {margin-right: 52px;} +.m-r-53 {margin-right: 53px;} +.m-r-54 {margin-right: 54px;} +.m-r-55 {margin-right: 55px;} +.m-r-56 {margin-right: 56px;} +.m-r-57 {margin-right: 57px;} +.m-r-58 {margin-right: 58px;} +.m-r-59 {margin-right: 59px;} +.m-r-60 {margin-right: 60px;} +.m-r-61 {margin-right: 61px;} +.m-r-62 {margin-right: 62px;} +.m-r-63 {margin-right: 63px;} +.m-r-64 {margin-right: 64px;} +.m-r-65 {margin-right: 65px;} +.m-r-66 {margin-right: 66px;} +.m-r-67 {margin-right: 67px;} +.m-r-68 {margin-right: 68px;} +.m-r-69 {margin-right: 69px;} +.m-r-70 {margin-right: 70px;} +.m-r-71 {margin-right: 71px;} +.m-r-72 {margin-right: 72px;} +.m-r-73 {margin-right: 73px;} +.m-r-74 {margin-right: 74px;} +.m-r-75 {margin-right: 75px;} +.m-r-76 {margin-right: 76px;} +.m-r-77 {margin-right: 77px;} +.m-r-78 {margin-right: 78px;} +.m-r-79 {margin-right: 79px;} +.m-r-80 {margin-right: 80px;} +.m-r-81 {margin-right: 81px;} +.m-r-82 {margin-right: 82px;} +.m-r-83 {margin-right: 83px;} +.m-r-84 {margin-right: 84px;} +.m-r-85 {margin-right: 85px;} +.m-r-86 {margin-right: 86px;} +.m-r-87 {margin-right: 87px;} +.m-r-88 {margin-right: 88px;} +.m-r-89 {margin-right: 89px;} +.m-r-90 {margin-right: 90px;} +.m-r-91 {margin-right: 91px;} +.m-r-92 {margin-right: 92px;} +.m-r-93 {margin-right: 93px;} +.m-r-94 {margin-right: 94px;} +.m-r-95 {margin-right: 95px;} +.m-r-96 {margin-right: 96px;} +.m-r-97 {margin-right: 97px;} +.m-r-98 {margin-right: 98px;} +.m-r-99 {margin-right: 99px;} +.m-r-100 {margin-right: 100px;} +.m-r-101 {margin-right: 101px;} +.m-r-102 {margin-right: 102px;} +.m-r-103 {margin-right: 103px;} +.m-r-104 {margin-right: 104px;} +.m-r-105 {margin-right: 105px;} +.m-r-106 {margin-right: 106px;} +.m-r-107 {margin-right: 107px;} +.m-r-108 {margin-right: 108px;} +.m-r-109 {margin-right: 109px;} +.m-r-110 {margin-right: 110px;} +.m-r-111 {margin-right: 111px;} +.m-r-112 {margin-right: 112px;} +.m-r-113 {margin-right: 113px;} +.m-r-114 {margin-right: 114px;} +.m-r-115 {margin-right: 115px;} +.m-r-116 {margin-right: 116px;} +.m-r-117 {margin-right: 117px;} +.m-r-118 {margin-right: 118px;} +.m-r-119 {margin-right: 119px;} +.m-r-120 {margin-right: 120px;} +.m-r-121 {margin-right: 121px;} +.m-r-122 {margin-right: 122px;} +.m-r-123 {margin-right: 123px;} +.m-r-124 {margin-right: 124px;} +.m-r-125 {margin-right: 125px;} +.m-r-126 {margin-right: 126px;} +.m-r-127 {margin-right: 127px;} +.m-r-128 {margin-right: 128px;} +.m-r-129 {margin-right: 129px;} +.m-r-130 {margin-right: 130px;} +.m-r-131 {margin-right: 131px;} +.m-r-132 {margin-right: 132px;} +.m-r-133 {margin-right: 133px;} +.m-r-134 {margin-right: 134px;} +.m-r-135 {margin-right: 135px;} +.m-r-136 {margin-right: 136px;} +.m-r-137 {margin-right: 137px;} +.m-r-138 {margin-right: 138px;} +.m-r-139 {margin-right: 139px;} +.m-r-140 {margin-right: 140px;} +.m-r-141 {margin-right: 141px;} +.m-r-142 {margin-right: 142px;} +.m-r-143 {margin-right: 143px;} +.m-r-144 {margin-right: 144px;} +.m-r-145 {margin-right: 145px;} +.m-r-146 {margin-right: 146px;} +.m-r-147 {margin-right: 147px;} +.m-r-148 {margin-right: 148px;} +.m-r-149 {margin-right: 149px;} +.m-r-150 {margin-right: 150px;} +.m-r-151 {margin-right: 151px;} +.m-r-152 {margin-right: 152px;} +.m-r-153 {margin-right: 153px;} +.m-r-154 {margin-right: 154px;} +.m-r-155 {margin-right: 155px;} +.m-r-156 {margin-right: 156px;} +.m-r-157 {margin-right: 157px;} +.m-r-158 {margin-right: 158px;} +.m-r-159 {margin-right: 159px;} +.m-r-160 {margin-right: 160px;} +.m-r-161 {margin-right: 161px;} +.m-r-162 {margin-right: 162px;} +.m-r-163 {margin-right: 163px;} +.m-r-164 {margin-right: 164px;} +.m-r-165 {margin-right: 165px;} +.m-r-166 {margin-right: 166px;} +.m-r-167 {margin-right: 167px;} +.m-r-168 {margin-right: 168px;} +.m-r-169 {margin-right: 169px;} +.m-r-170 {margin-right: 170px;} +.m-r-171 {margin-right: 171px;} +.m-r-172 {margin-right: 172px;} +.m-r-173 {margin-right: 173px;} +.m-r-174 {margin-right: 174px;} +.m-r-175 {margin-right: 175px;} +.m-r-176 {margin-right: 176px;} +.m-r-177 {margin-right: 177px;} +.m-r-178 {margin-right: 178px;} +.m-r-179 {margin-right: 179px;} +.m-r-180 {margin-right: 180px;} +.m-r-181 {margin-right: 181px;} +.m-r-182 {margin-right: 182px;} +.m-r-183 {margin-right: 183px;} +.m-r-184 {margin-right: 184px;} +.m-r-185 {margin-right: 185px;} +.m-r-186 {margin-right: 186px;} +.m-r-187 {margin-right: 187px;} +.m-r-188 {margin-right: 188px;} +.m-r-189 {margin-right: 189px;} +.m-r-190 {margin-right: 190px;} +.m-r-191 {margin-right: 191px;} +.m-r-192 {margin-right: 192px;} +.m-r-193 {margin-right: 193px;} +.m-r-194 {margin-right: 194px;} +.m-r-195 {margin-right: 195px;} +.m-r-196 {margin-right: 196px;} +.m-r-197 {margin-right: 197px;} +.m-r-198 {margin-right: 198px;} +.m-r-199 {margin-right: 199px;} +.m-r-200 {margin-right: 200px;} +.m-r-201 {margin-right: 201px;} +.m-r-202 {margin-right: 202px;} +.m-r-203 {margin-right: 203px;} +.m-r-204 {margin-right: 204px;} +.m-r-205 {margin-right: 205px;} +.m-r-206 {margin-right: 206px;} +.m-r-207 {margin-right: 207px;} +.m-r-208 {margin-right: 208px;} +.m-r-209 {margin-right: 209px;} +.m-r-210 {margin-right: 210px;} +.m-r-211 {margin-right: 211px;} +.m-r-212 {margin-right: 212px;} +.m-r-213 {margin-right: 213px;} +.m-r-214 {margin-right: 214px;} +.m-r-215 {margin-right: 215px;} +.m-r-216 {margin-right: 216px;} +.m-r-217 {margin-right: 217px;} +.m-r-218 {margin-right: 218px;} +.m-r-219 {margin-right: 219px;} +.m-r-220 {margin-right: 220px;} +.m-r-221 {margin-right: 221px;} +.m-r-222 {margin-right: 222px;} +.m-r-223 {margin-right: 223px;} +.m-r-224 {margin-right: 224px;} +.m-r-225 {margin-right: 225px;} +.m-r-226 {margin-right: 226px;} +.m-r-227 {margin-right: 227px;} +.m-r-228 {margin-right: 228px;} +.m-r-229 {margin-right: 229px;} +.m-r-230 {margin-right: 230px;} +.m-r-231 {margin-right: 231px;} +.m-r-232 {margin-right: 232px;} +.m-r-233 {margin-right: 233px;} +.m-r-234 {margin-right: 234px;} +.m-r-235 {margin-right: 235px;} +.m-r-236 {margin-right: 236px;} +.m-r-237 {margin-right: 237px;} +.m-r-238 {margin-right: 238px;} +.m-r-239 {margin-right: 239px;} +.m-r-240 {margin-right: 240px;} +.m-r-241 {margin-right: 241px;} +.m-r-242 {margin-right: 242px;} +.m-r-243 {margin-right: 243px;} +.m-r-244 {margin-right: 244px;} +.m-r-245 {margin-right: 245px;} +.m-r-246 {margin-right: 246px;} +.m-r-247 {margin-right: 247px;} +.m-r-248 {margin-right: 248px;} +.m-r-249 {margin-right: 249px;} +.m-r-250 {margin-right: 250px;} +.m-l-r-auto {margin-left: auto; margin-right: auto;} +.m-l-auto {margin-left: auto;} +.m-r-auto {margin-right: auto;} + + + +/*[ TEXT ] +/////////////////////////////////////////////////////////// +*/ +/* ------------------------------------ */ +.text-white {color: white;} +.text-black {color: black;} + +.text-hov-white:hover {color: white;} + +/* ------------------------------------ */ +.text-up {text-transform: uppercase;} + +/* ------------------------------------ */ +.text-center {text-align: center;} +.text-left {text-align: left;} +.text-right {text-align: right;} +.text-middle {vertical-align: middle;} + +/* ------------------------------------ */ +.lh-1-0 {line-height: 1.0;} +.lh-1-1 {line-height: 1.1;} +.lh-1-2 {line-height: 1.2;} +.lh-1-3 {line-height: 1.3;} +.lh-1-4 {line-height: 1.4;} +.lh-1-5 {line-height: 1.5;} +.lh-1-6 {line-height: 1.6;} +.lh-1-7 {line-height: 1.7;} +.lh-1-8 {line-height: 1.8;} +.lh-1-9 {line-height: 1.9;} +.lh-2-0 {line-height: 2.0;} +.lh-2-1 {line-height: 2.1;} +.lh-2-2 {line-height: 2.2;} +.lh-2-3 {line-height: 2.3;} +.lh-2-4 {line-height: 2.4;} +.lh-2-5 {line-height: 2.5;} +.lh-2-6 {line-height: 2.6;} +.lh-2-7 {line-height: 2.7;} +.lh-2-8 {line-height: 2.8;} +.lh-2-9 {line-height: 2.9;} + + + + + +/*[ SHAPE ] +/////////////////////////////////////////////////////////// +*/ + +/*[ Display ] +----------------------------------------------------------- +*/ +.dis-none {display: none;} +.dis-block {display: block;} +.dis-inline {display: inline;} +.dis-inline-block {display: inline-block;} +.dis-flex { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; +} + +/*[ Position ] +----------------------------------------------------------- +*/ +.pos-relative {position: relative;} +.pos-absolute {position: absolute;} +.pos-fixed {position: fixed;} + +/*[ float ] +----------------------------------------------------------- +*/ +.float-l {float: left;} +.float-r {float: right;} + + +/*[ Width & Height ] +----------------------------------------------------------- +*/ +.sizefull { + width: 100%; + height: 100%; +} +.w-full {width: 100%;} +.h-full {height: 100%;} +.max-w-full {max-width: 100%;} +.max-h-full {max-height: 100%;} +.min-w-full {min-width: 100%;} +.min-h-full {min-height: 100%;} + +/*[ Top Bottom Left Right ] +----------------------------------------------------------- +*/ +.top-0 {top: 0;} +.bottom-0 {bottom: 0;} +.left-0 {left: 0;} +.right-0 {right: 0;} + +.top-auto {top: auto;} +.bottom-auto {bottom: auto;} +.left-auto {left: auto;} +.right-auto {right: auto;} + + +/*[ Opacity ] +----------------------------------------------------------- +*/ +.op-0-0 {opacity: 0;} +.op-0-1 {opacity: 0.1;} +.op-0-2 {opacity: 0.2;} +.op-0-3 {opacity: 0.3;} +.op-0-4 {opacity: 0.4;} +.op-0-5 {opacity: 0.5;} +.op-0-6 {opacity: 0.6;} +.op-0-7 {opacity: 0.7;} +.op-0-8 {opacity: 0.8;} +.op-0-9 {opacity: 0.9;} +.op-1-0 {opacity: 1;} + +/*[ Background ] +----------------------------------------------------------- +*/ +.bgwhite {background-color: white;} +.bgblack {background-color: black;} + + + +/*[ Wrap Picture ] +----------------------------------------------------------- +*/ +.wrap-pic-w img {width: 100%;} +.wrap-pic-max-w img {max-width: 100%;} + +/* ------------------------------------ */ +.wrap-pic-h img {height: 100%;} +.wrap-pic-max-h img {max-height: 100%;} + +/* ------------------------------------ */ +.wrap-pic-cir { + border-radius: 50%; + overflow: hidden; +} +.wrap-pic-cir img { + width: 100%; +} + + + +/*[ Hover ] +----------------------------------------------------------- +*/ +.hov-pointer:hover {cursor: pointer;} + +/* ------------------------------------ */ +.hov-img-zoom { + display: block; + overflow: hidden; +} +.hov-img-zoom img{ + width: 100%; + -webkit-transition: all 0.6s; + -o-transition: all 0.6s; + -moz-transition: all 0.6s; + transition: all 0.6s; +} +.hov-img-zoom:hover img { + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -ms-transform: scale(1.1); + -o-transform: scale(1.1); + transform: scale(1.1); +} + + + +/*[ ] +----------------------------------------------------------- +*/ +.bo-cir {border-radius: 50%;} + +.of-hidden {overflow: hidden;} + +.visible-false {visibility: hidden;} +.visible-true {visibility: visible;} + + + + +/*[ Transition ] +----------------------------------------------------------- +*/ +.trans-0-1 { + -webkit-transition: all 0.1s; + -o-transition: all 0.1s; + -moz-transition: all 0.1s; + transition: all 0.1s; +} +.trans-0-2 { + -webkit-transition: all 0.2s; + -o-transition: all 0.2s; + -moz-transition: all 0.2s; + transition: all 0.2s; +} +.trans-0-3 { + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + -moz-transition: all 0.3s; + transition: all 0.3s; +} +.trans-0-4 { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + -moz-transition: all 0.4s; + transition: all 0.4s; +} +.trans-0-5 { + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + -moz-transition: all 0.5s; + transition: all 0.5s; +} +.trans-0-6 { + -webkit-transition: all 0.6s; + -o-transition: all 0.6s; + -moz-transition: all 0.6s; + transition: all 0.6s; +} +.trans-0-9 { + -webkit-transition: all 0.9s; + -o-transition: all 0.9s; + -moz-transition: all 0.9s; + transition: all 0.9s; +} +.trans-1-0 { + -webkit-transition: all 1s; + -o-transition: all 1s; + -moz-transition: all 1s; + transition: all 1s; +} + + + +/*[ Layout ] +/////////////////////////////////////////////////////////// +*/ + +/*[ Flex ] +----------------------------------------------------------- +*/ +/* ------------------------------------ */ +.flex-w { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -moz-flex-wrap: wrap; + -ms-flex-wrap: wrap; + -o-flex-wrap: wrap; + flex-wrap: wrap; +} + +/* ------------------------------------ */ +.flex-l { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: flex-start; +} + +.flex-r { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: flex-end; +} + +.flex-c { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: center; +} + +.flex-sa { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: space-around; +} + +.flex-sb { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: space-between; +} + +/* ------------------------------------ */ +.flex-t { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -ms-align-items: flex-start; + align-items: flex-start; +} + +.flex-b { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -ms-align-items: flex-end; + align-items: flex-end; +} + +.flex-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -ms-align-items: center; + align-items: center; +} + +.flex-str { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -ms-align-items: stretch; + align-items: stretch; +} + +/* ------------------------------------ */ +.flex-row { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: row; + -moz-flex-direction: row; + -ms-flex-direction: row; + -o-flex-direction: row; + flex-direction: row; +} + +.flex-row-rev { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: row-reverse; + -moz-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + -o-flex-direction: row-reverse; + flex-direction: row-reverse; +} + +.flex-col { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; +} + +.flex-col-rev { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column-reverse; + -moz-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + -o-flex-direction: column-reverse; + flex-direction: column-reverse; +} + +/* ------------------------------------ */ +.flex-c-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: center; + -ms-align-items: center; + align-items: center; +} + +.flex-c-t { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: center; + -ms-align-items: flex-start; + align-items: flex-start; +} + +.flex-c-b { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: center; + -ms-align-items: flex-end; + align-items: flex-end; +} + +.flex-c-str { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: center; + -ms-align-items: stretch; + align-items: stretch; +} + +.flex-l-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: flex-start; + -ms-align-items: center; + align-items: center; +} + +.flex-r-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: flex-end; + -ms-align-items: center; + align-items: center; +} + +.flex-sa-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: space-around; + -ms-align-items: center; + align-items: center; +} + +.flex-sb-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + justify-content: space-between; + -ms-align-items: center; + align-items: center; +} + +/* ------------------------------------ */ +.flex-col-l { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: flex-start; + align-items: flex-start; +} + +.flex-col-r { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: flex-end; + align-items: flex-end; +} + +.flex-col-c { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: center; + align-items: center; +} + +.flex-col-l-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: flex-start; + align-items: flex-start; + justify-content: center; +} + +.flex-col-r-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: flex-end; + align-items: flex-end; + justify-content: center; +} + +.flex-col-c-m { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: center; + align-items: center; + justify-content: center; +} + +.flex-col-str { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + -ms-align-items: stretch; + align-items: stretch; +} + +.flex-col-sb { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + -o-flex-direction: column; + flex-direction: column; + justify-content: space-between; +} + +/* ------------------------------------ */ +.flex-col-rev-l { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column-reverse; + -moz-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + -o-flex-direction: column-reverse; + flex-direction: column-reverse; + -ms-align-items: flex-start; + align-items: flex-start; +} + +.flex-col-rev-r { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column-reverse; + -moz-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + -o-flex-direction: column-reverse; + flex-direction: column-reverse; + -ms-align-items: flex-end; + align-items: flex-end; +} + +.flex-col-rev-c { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column-reverse; + -moz-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + -o-flex-direction: column-reverse; + flex-direction: column-reverse; + -ms-align-items: center; + align-items: center; +} + +.flex-col-rev-str { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column-reverse; + -moz-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + -o-flex-direction: column-reverse; + flex-direction: column-reverse; + -ms-align-items: stretch; + align-items: stretch; +} + + +/*[ Absolute ] +----------------------------------------------------------- +*/ +.ab-c-m { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.ab-c-t { + position: absolute; + top: 0px; + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); +} + +.ab-c-b { + position: absolute; + bottom: 0px; + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); +} + +.ab-l-m { + position: absolute; + left: 0px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); +} + +.ab-r-m { + position: absolute; + right: 0px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); +} + +.ab-t-l { + position: absolute; + left: 0px; + top: 0px; +} + +.ab-t-r { + position: absolute; + right: 0px; + top: 0px; +} + +.ab-b-l { + position: absolute; + left: 0px; + bottom: 0px; +} + +.ab-b-r { + position: absolute; + right: 0px; + bottom: 0px; +} + + + + + + + + + diff --git a/plugins/captivePortal/templates/DarkLogin/static/fonts/google_fonts.css b/plugins/captivePortal/templates/DarkLogin/static/fonts/google_fonts.css new file mode 100644 index 0000000..33bcdab --- /dev/null +++ b/plugins/captivePortal/templates/DarkLogin/static/fonts/google_fonts.css @@ -0,0 +1,112 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v16/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOX-hpOqc.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOVuhpOqc.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOUehpOqc.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v16/mem5YaGs126MiZpBA-UN7rgOUuhp.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/plugins/captivePortal/templates/DarkLogin/static/js/bootstrap.min.js b/plugins/captivePortal/templates/DarkLogin/static/js/bootstrap.min.js new file mode 100644 index 0000000..1765631 --- /dev/null +++ b/plugins/captivePortal/templates/DarkLogin/static/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/** +* bootstrap.js v3.0.0 by @fat and @mdo +* Copyright 2013 Twitter Inc. +* http://www.apache.org/licenses/LICENSE-2.0 +*/ +if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery); \ No newline at end of file diff --git a/plugins/captivePortal/templates/DarkLogin/static/js/jquery-1.11.1.min.js b/plugins/captivePortal/templates/DarkLogin/static/js/jquery-1.11.1.min.js new file mode 100644 index 0000000..ab28a24 --- /dev/null +++ b/plugins/captivePortal/templates/DarkLogin/static/js/jquery-1.11.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("