From 02ac5600bbb25199bd0534f2c77c20f75c5070e5 Mon Sep 17 00:00:00 2001 From: jcc Date: Tue, 27 Dec 2016 11:56:07 +0800 Subject: [PATCH] :balloon: Commit The First Version --- .env.example | 41 + .gitattributes | 3 + .gitignore | 7 + LICENSE | 21 + app/Article.php | 159 + app/Category.php | 27 + app/Comment.php | 67 + app/Console/Commands/BlogInstall.php | 59 + app/Console/Commands/CreateAdmin.php | 120 + app/Console/Kernel.php | 41 + app/Discussion.php | 91 + app/Exceptions/Handler.php | 65 + app/Exceptions/UploadException.php | 8 + app/Follower.php | 10 + app/Helpers.php | 69 + app/Http/Controllers/Api/ApiController.php | 218 + .../Controllers/Api/ArticleController.php | 97 + .../Controllers/Api/CategoryController.php | 107 + .../Controllers/Api/CommentController.php | 105 + .../Controllers/Api/DiscussionController.php | 106 + app/Http/Controllers/Api/HomeController.php | 42 + app/Http/Controllers/Api/LinkController.php | 110 + app/Http/Controllers/Api/SystemController.php | 36 + app/Http/Controllers/Api/TagController.php | 107 + app/Http/Controllers/Api/UploadController.php | 125 + app/Http/Controllers/Api/UserController.php | 109 + .../Controllers/Api/VisitorController.php | 30 + app/Http/Controllers/ArticleController.php | 44 + app/Http/Controllers/Auth/AuthController.php | 156 + .../Auth/ForgotPasswordController.php | 32 + app/Http/Controllers/Auth/LoginController.php | 57 + .../Controllers/Auth/RegisterController.php | 90 + .../Auth/ResetPasswordController.php | 39 + app/Http/Controllers/CategoryController.php | 42 + app/Http/Controllers/Controller.php | 13 + app/Http/Controllers/DiscussionController.php | 124 + app/Http/Controllers/HomeController.php | 42 + app/Http/Controllers/LinkController.php | 29 + app/Http/Controllers/SettingController.php | 63 + app/Http/Controllers/TagController.php | 44 + app/Http/Controllers/UserController.php | 250 + app/Http/Kernel.php | 58 + app/Http/Middleware/EncryptCookies.php | 17 + app/Http/Middleware/MustBeAdmin.php | 26 + .../Middleware/RedirectIfAuthenticated.php | 26 + app/Http/Middleware/VerifyCsrfToken.php | 17 + app/Http/Requests/ArticleRequest.php | 34 + app/Http/Requests/CategoryRequest.php | 30 + app/Http/Requests/CommentRequest.php | 30 + app/Http/Requests/DiscussionRequest.php | 31 + app/Http/Requests/LinkRequest.php | 31 + app/Http/Requests/TagRequest.php | 31 + app/Http/Requests/UserRequest.php | 33 + app/Link.php | 40 + app/Notifications/ReceivedComment.php | 71 + app/Policies/CommentPolicy.php | 24 + app/Policies/DiscussionPolicy.php | 36 + app/Policies/UserPolicy.php | 35 + app/Providers/AppServiceProvider.php | 37 + app/Providers/AuthServiceProvider.php | 34 + app/Providers/BroadcastServiceProvider.php | 26 + app/Providers/EventServiceProvider.php | 32 + app/Providers/RouteServiceProvider.php | 81 + app/Repositories/ArticleRepository.php | 136 + app/Repositories/BaseRepository.php | 119 + app/Repositories/CategoryRepository.php | 28 + app/Repositories/CommentRepository.php | 59 + app/Repositories/DiscussionRepository.php | 130 + app/Repositories/LinkRepository.php | 83 + app/Repositories/TagRepository.php | 28 + app/Repositories/UserRepository.php | 142 + app/Repositories/VisitorRepository.php | 84 + app/Scopes/DraftScope.php | 22 + app/Scopes/StatusScope.php | 22 + app/Services/FileManager/BaseManager.php | 288 + app/Services/FileManager/UploadManager.php | 8 + app/Services/IP.php | 38 + app/Services/Markdowner.php | 53 + app/Services/Mention.php | 71 + app/Tag.php | 47 + app/Traits/FollowTrait.php | 84 + app/Transformers/ArticleTransformer.php | 59 + app/Transformers/CategoryTransformer.php | 21 + app/Transformers/CommentTransformer.php | 44 + app/Transformers/DiscussionTransformer.php | 73 + app/Transformers/LinkTransformer.php | 21 + app/Transformers/TagTransformer.php | 21 + app/Transformers/UserTransformer.php | 26 + app/Transformers/VisitorTransformer.php | 21 + app/User.php | 97 + app/Visitor.php | 27 + artisan | 51 + bootstrap/app.php | 55 + bootstrap/autoload.php | 34 + bootstrap/cache/.gitignore | 2 + composer.json | 63 + composer.lock | 4720 +++++++++++++++ config/app.php | 234 + config/auth.php | 106 + config/blog.php | 56 + config/broadcasting.php | 58 + config/cache.php | 91 + config/compile.php | 35 + config/database.php | 128 + config/filesystems.php | 69 + config/image.php | 20 + config/mail.php | 115 + config/queue.php | 85 + config/services.php | 51 + config/session.php | 179 + config/view.php | 33 + database/.gitignore | 1 + database/factories/ModelFactory.php | 107 + database/migrations/.gitkeep | 1 + .../2014_10_12_000000_create_users_table.php | 49 + ...12_100000_create_password_resets_table.php | 32 + ...016_09_02_065857_create_articles_table.php | 46 + .../2016_09_02_065920_create_tags_table.php | 35 + ...016_09_02_065952_create_visitors_table.php | 36 + ...6_09_02_070119_create_categories_table.php | 36 + ..._09_02_070132_create_discussions_table.php | 38 + ...016_09_02_070151_create_comments_table.php | 37 + .../2016_09_13_022056_create_links_table.php | 36 + ...16_11_11_163610_create_taggables_table.php | 32 + ...16_12_11_153312_create_followers_table.php | 33 + ...2_12_171655_create_notifications_table.php | 34 + ..._12_12_205419_create_failed_jobs_table.php | 35 + database/seeds/.gitkeep | 1 + database/seeds/ArticlesTableSeeder.php | 17 + database/seeds/CategoriesTableSeeder.php | 17 + database/seeds/CommentsTableSeeder.php | 17 + database/seeds/DatabaseSeeder.php | 23 + database/seeds/DiscussionsTableSeeder.php | 17 + database/seeds/LinksTableSeeder.php | 18 + database/seeds/TagsTableSeeder.php | 18 + database/seeds/UsersTableSeeder.php | 33 + database/seeds/VisitorsTableSeeder.php | 17 + gulpfile.js | 42 + package.json | 35 + phpunit.xml | 27 + public/.DS_Store | Bin 0 -> 8196 bytes public/.gitignore | 2 + public/.htaccess | 20 + public/build/css/app-1d4afae6e1.css | 15 + public/build/css/app.css.map | 1 + public/build/css/home-64e30a6718.css | 15 + public/build/css/home.css.map | 1 + public/build/css/jcrop-5495b85c62.css | 4 + public/build/css/jcrop.css.map | 1 + public/build/fonts/iconfont.eot | Bin 0 -> 9580 bytes public/build/fonts/iconfont.svg | 88 + public/build/fonts/iconfont.ttf | Bin 0 -> 9296 bytes public/build/fonts/iconfont.woff | Bin 0 -> 6364 bytes public/build/fonts/ionicons.eot | Bin 0 -> 120724 bytes public/build/fonts/ionicons.svg | 2230 ++++++++ public/build/fonts/ionicons.ttf | Bin 0 -> 188508 bytes public/build/fonts/ionicons.woff | Bin 0 -> 67904 bytes public/build/js/app-e5ecf36f27.js | 35 + public/build/js/home-0c5ca51577.js | 13 + public/build/js/jcrop-2396e0e7c0.js | 2 + public/build/js/jcrop.js.map | 1 + public/build/rev-manifest.json | 8 + public/favicon.ico | 0 public/images/default.png | Bin 0 -> 5038 bytes public/images/favicon.ico | Bin 0 -> 67646 bytes public/index.php | 58 + public/robots.txt | 2 + readme.md | 86 + resources/assets/js/App.vue | 3 + resources/assets/js/app.js | 64 + resources/assets/js/bootstrap.js | 52 + resources/assets/js/components/Chartjs.vue | 59 + resources/assets/js/components/Comment.vue | 248 + resources/assets/js/components/Jumbotron.vue | 42 + resources/assets/js/components/Parse.vue | 24 + .../js/components/dashboard/CustomAction.vue | 67 + .../assets/js/components/dashboard/Form.vue | 26 + .../assets/js/components/dashboard/Modal.vue | 187 + .../assets/js/components/dashboard/Table.vue | 294 + .../components/dashboard/TablePagination.vue | 51 + .../dashboard/TablePaginationMixin.vue | 65 + .../dashboard/particals/FooterBar.vue | 7 + .../components/dashboard/particals/Navbar.vue | 68 + .../dashboard/particals/Sidebar.vue | 169 + .../components/passport/AuthorizedClients.vue | 95 + .../assets/js/components/passport/Clients.vue | 338 ++ .../passport/PersonalAccessTokens.vue | 286 + resources/assets/js/config/helper.js | 14 + resources/assets/js/config/menu.js | 57 + resources/assets/js/config/toastr.js | 11 + resources/assets/js/home.js | 25 + resources/assets/js/lang/en/form.js | 57 + resources/assets/js/lang/en/index.js | 11 + resources/assets/js/lang/en/page.js | 29 + resources/assets/js/lang/en/sidebar.js | 13 + resources/assets/js/lang/en/table.js | 29 + resources/assets/js/lang/index.js | 7 + resources/assets/js/lang/zh_cn/form.js | 57 + resources/assets/js/lang/zh_cn/index.js | 11 + resources/assets/js/lang/zh_cn/page.js | 29 + resources/assets/js/lang/zh_cn/sidebar.js | 13 + resources/assets/js/lang/zh_cn/table.js | 29 + resources/assets/js/routes.js | 167 + resources/assets/js/vendor/Jcrop.min.js | 6 + resources/assets/js/vendor/highlight.min.js | 3 + resources/assets/js/vendor/jquery.form.min.js | 1 + resources/assets/js/vendor/select2.min.js | 3 + resources/assets/js/views/Dashboard.vue | 144 + resources/assets/js/views/Parent.vue | 3 + resources/assets/js/views/dashboard/File.vue | 307 + resources/assets/js/views/dashboard/Home.vue | 101 + .../assets/js/views/dashboard/System.vue | 183 + .../assets/js/views/dashboard/Visitor.vue | 46 + .../js/views/dashboard/article/Article.vue | 75 + .../js/views/dashboard/article/Create.vue | 189 + .../js/views/dashboard/article/Edit.vue | 198 + .../js/views/dashboard/article/FormMixin.vue | 52 + .../js/views/dashboard/category/Category.vue | 61 + .../js/views/dashboard/category/Create.vue | 57 + .../js/views/dashboard/category/Edit.vue | 66 + .../js/views/dashboard/comment/Comment.vue | 64 + .../js/views/dashboard/comment/Edit.vue | 85 + .../js/views/dashboard/discussion/Create.vue | 134 + .../views/dashboard/discussion/Discussion.vue | 79 + .../js/views/dashboard/discussion/Edit.vue | 137 + .../assets/js/views/dashboard/link/Create.vue | 71 + .../assets/js/views/dashboard/link/Edit.vue | 82 + .../assets/js/views/dashboard/link/Link.vue | 78 + .../assets/js/views/dashboard/tag/Create.vue | 50 + .../assets/js/views/dashboard/tag/Edit.vue | 58 + .../assets/js/views/dashboard/tag/Tag.vue | 64 + .../assets/js/views/dashboard/user/Create.vue | 53 + .../assets/js/views/dashboard/user/Edit.vue | 65 + .../assets/js/views/dashboard/user/User.vue | 87 + resources/assets/js/vuex/actions.js | 1 + resources/assets/js/vuex/mutations.js | 3 + resources/assets/js/vuex/store.js | 18 + resources/assets/sass/_form.scss | 15 + resources/assets/sass/_ibox.scss | 49 + resources/assets/sass/_navbar.scss | 3 + resources/assets/sass/_pagination.scss | 354 ++ resources/assets/sass/_toastr.scss | 17 + resources/assets/sass/_togglebutton.scss | 82 + resources/assets/sass/app.scss | 22 + resources/assets/sass/home.scss | 20 + resources/assets/sass/markdown.scss | 402 ++ resources/assets/sass/public.scss | 18 + resources/assets/sass/styles.scss | 593 ++ resources/assets/sass/variables.scss | 296 + resources/assets/sass/vendor/Jcrop.min.css | 6 + .../assets/sass/vendor/highlight.min.css | 1 + resources/assets/sass/vendor/select2.min.css | 1 + .../assets/sass/vendor/simplemde.min.css | 7 + resources/assets/sass/vendor/toastr.min.css | 1 + resources/lang/en/auth.php | 19 + resources/lang/en/blog.php | 77 + resources/lang/en/pagination.php | 19 + resources/lang/en/passwords.php | 22 + resources/lang/en/validation.php | 115 + resources/lang/zh_cn/auth.php | 19 + resources/lang/zh_cn/blog.php | 77 + resources/lang/zh_cn/pagination.php | 19 + resources/lang/zh_cn/passwords.php | 22 + resources/lang/zh_cn/validation.php | 130 + resources/views/article/index.blade.php | 14 + resources/views/article/show.blade.php | 66 + .../views/auth/github_register.blade.php | 81 + resources/views/auth/login.blade.php | 83 + .../views/auth/passwords/email.blade.php | 47 + .../views/auth/passwords/reset.blade.php | 70 + resources/views/auth/register.blade.php | 88 + resources/views/category/index.blade.php | 25 + resources/views/category/show.blade.php | 25 + resources/views/dashboard/index.blade.php | 49 + resources/views/discussion/create.blade.php | 55 + resources/views/discussion/edit.blade.php | 59 + resources/views/discussion/index.blade.php | 48 + resources/views/discussion/show.blade.php | 58 + resources/views/errors/403.blade.php | 47 + resources/views/errors/404.blade.php | 47 + resources/views/errors/503.blade.php | 47 + resources/views/layouts/app.blade.php | 60 + resources/views/link/index.blade.php | 20 + resources/views/pagination/default.blade.php | 40 + resources/views/particals/footer.blade.php | 35 + resources/views/particals/navbar.blade.php | 71 + resources/views/search.blade.php | 12 + resources/views/setting/binding.blade.php | 36 + resources/views/setting/index.blade.php | 68 + .../views/setting/notification.blade.php | 41 + .../views/setting/particals/sidebar.blade.php | 15 + resources/views/tag/index.blade.php | 29 + resources/views/tag/show.blade.php | 43 + resources/views/user/comments.blade.php | 18 + resources/views/user/discussions.blade.php | 18 + resources/views/user/following.blade.php | 31 + resources/views/user/index.blade.php | 25 + .../views/user/particals/comments.blade.php | 25 + .../user/particals/discussions.blade.php | 12 + resources/views/user/particals/info.blade.php | 66 + resources/views/user/profile.blade.php | 175 + .../notifications/email-plain.blade.php | 22 + .../vendor/notifications/email.blade.php | 192 + resources/views/widgets/article.blade.php | 46 + routes/api.php | 48 + routes/console.php | 18 + routes/web.php | 50 + server.php | 21 + storage/app/.gitignore | 3 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 8 + storage/framework/cache/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + storage/oauth-private.key | 51 + storage/oauth-public.key | 14 + tests/ExampleTest.php | 19 + tests/TestCase.php | 25 + yarn.lock | 5093 +++++++++++++++++ 320 files changed, 30377 insertions(+) create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 app/Article.php create mode 100644 app/Category.php create mode 100644 app/Comment.php create mode 100644 app/Console/Commands/BlogInstall.php create mode 100644 app/Console/Commands/CreateAdmin.php create mode 100644 app/Console/Kernel.php create mode 100644 app/Discussion.php create mode 100644 app/Exceptions/Handler.php create mode 100644 app/Exceptions/UploadException.php create mode 100644 app/Follower.php create mode 100644 app/Helpers.php create mode 100644 app/Http/Controllers/Api/ApiController.php create mode 100644 app/Http/Controllers/Api/ArticleController.php create mode 100644 app/Http/Controllers/Api/CategoryController.php create mode 100644 app/Http/Controllers/Api/CommentController.php create mode 100644 app/Http/Controllers/Api/DiscussionController.php create mode 100644 app/Http/Controllers/Api/HomeController.php create mode 100644 app/Http/Controllers/Api/LinkController.php create mode 100644 app/Http/Controllers/Api/SystemController.php create mode 100644 app/Http/Controllers/Api/TagController.php create mode 100644 app/Http/Controllers/Api/UploadController.php create mode 100644 app/Http/Controllers/Api/UserController.php create mode 100644 app/Http/Controllers/Api/VisitorController.php create mode 100644 app/Http/Controllers/ArticleController.php create mode 100644 app/Http/Controllers/Auth/AuthController.php create mode 100644 app/Http/Controllers/Auth/ForgotPasswordController.php create mode 100644 app/Http/Controllers/Auth/LoginController.php create mode 100644 app/Http/Controllers/Auth/RegisterController.php create mode 100644 app/Http/Controllers/Auth/ResetPasswordController.php create mode 100644 app/Http/Controllers/CategoryController.php create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Http/Controllers/DiscussionController.php create mode 100644 app/Http/Controllers/HomeController.php create mode 100644 app/Http/Controllers/LinkController.php create mode 100644 app/Http/Controllers/SettingController.php create mode 100644 app/Http/Controllers/TagController.php create mode 100644 app/Http/Controllers/UserController.php create mode 100644 app/Http/Kernel.php create mode 100644 app/Http/Middleware/EncryptCookies.php create mode 100644 app/Http/Middleware/MustBeAdmin.php create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php create mode 100644 app/Http/Requests/ArticleRequest.php create mode 100644 app/Http/Requests/CategoryRequest.php create mode 100644 app/Http/Requests/CommentRequest.php create mode 100644 app/Http/Requests/DiscussionRequest.php create mode 100644 app/Http/Requests/LinkRequest.php create mode 100644 app/Http/Requests/TagRequest.php create mode 100644 app/Http/Requests/UserRequest.php create mode 100644 app/Link.php create mode 100644 app/Notifications/ReceivedComment.php create mode 100644 app/Policies/CommentPolicy.php create mode 100644 app/Policies/DiscussionPolicy.php create mode 100644 app/Policies/UserPolicy.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/AuthServiceProvider.php create mode 100644 app/Providers/BroadcastServiceProvider.php create mode 100644 app/Providers/EventServiceProvider.php create mode 100644 app/Providers/RouteServiceProvider.php create mode 100644 app/Repositories/ArticleRepository.php create mode 100644 app/Repositories/BaseRepository.php create mode 100644 app/Repositories/CategoryRepository.php create mode 100644 app/Repositories/CommentRepository.php create mode 100644 app/Repositories/DiscussionRepository.php create mode 100644 app/Repositories/LinkRepository.php create mode 100644 app/Repositories/TagRepository.php create mode 100644 app/Repositories/UserRepository.php create mode 100644 app/Repositories/VisitorRepository.php create mode 100644 app/Scopes/DraftScope.php create mode 100644 app/Scopes/StatusScope.php create mode 100644 app/Services/FileManager/BaseManager.php create mode 100644 app/Services/FileManager/UploadManager.php create mode 100644 app/Services/IP.php create mode 100644 app/Services/Markdowner.php create mode 100644 app/Services/Mention.php create mode 100644 app/Tag.php create mode 100644 app/Traits/FollowTrait.php create mode 100644 app/Transformers/ArticleTransformer.php create mode 100644 app/Transformers/CategoryTransformer.php create mode 100644 app/Transformers/CommentTransformer.php create mode 100644 app/Transformers/DiscussionTransformer.php create mode 100644 app/Transformers/LinkTransformer.php create mode 100644 app/Transformers/TagTransformer.php create mode 100644 app/Transformers/UserTransformer.php create mode 100644 app/Transformers/VisitorTransformer.php create mode 100644 app/User.php create mode 100644 app/Visitor.php create mode 100755 artisan create mode 100755 bootstrap/app.php create mode 100755 bootstrap/autoload.php create mode 100755 bootstrap/cache/.gitignore create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/blog.php create mode 100644 config/broadcasting.php create mode 100644 config/cache.php create mode 100644 config/compile.php create mode 100644 config/database.php create mode 100644 config/filesystems.php create mode 100644 config/image.php create mode 100644 config/mail.php create mode 100644 config/queue.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 config/view.php create mode 100644 database/.gitignore create mode 100644 database/factories/ModelFactory.php create mode 100644 database/migrations/.gitkeep create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php create mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php create mode 100644 database/migrations/2016_09_02_065857_create_articles_table.php create mode 100644 database/migrations/2016_09_02_065920_create_tags_table.php create mode 100644 database/migrations/2016_09_02_065952_create_visitors_table.php create mode 100644 database/migrations/2016_09_02_070119_create_categories_table.php create mode 100644 database/migrations/2016_09_02_070132_create_discussions_table.php create mode 100644 database/migrations/2016_09_02_070151_create_comments_table.php create mode 100644 database/migrations/2016_09_13_022056_create_links_table.php create mode 100644 database/migrations/2016_11_11_163610_create_taggables_table.php create mode 100644 database/migrations/2016_12_11_153312_create_followers_table.php create mode 100644 database/migrations/2016_12_12_171655_create_notifications_table.php create mode 100644 database/migrations/2016_12_12_205419_create_failed_jobs_table.php create mode 100644 database/seeds/.gitkeep create mode 100644 database/seeds/ArticlesTableSeeder.php create mode 100644 database/seeds/CategoriesTableSeeder.php create mode 100644 database/seeds/CommentsTableSeeder.php create mode 100644 database/seeds/DatabaseSeeder.php create mode 100644 database/seeds/DiscussionsTableSeeder.php create mode 100644 database/seeds/LinksTableSeeder.php create mode 100644 database/seeds/TagsTableSeeder.php create mode 100644 database/seeds/UsersTableSeeder.php create mode 100644 database/seeds/VisitorsTableSeeder.php create mode 100644 gulpfile.js create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 public/.DS_Store create mode 100644 public/.gitignore create mode 100644 public/.htaccess create mode 100644 public/build/css/app-1d4afae6e1.css create mode 100644 public/build/css/app.css.map create mode 100644 public/build/css/home-64e30a6718.css create mode 100644 public/build/css/home.css.map create mode 100644 public/build/css/jcrop-5495b85c62.css create mode 100644 public/build/css/jcrop.css.map create mode 100644 public/build/fonts/iconfont.eot create mode 100644 public/build/fonts/iconfont.svg create mode 100644 public/build/fonts/iconfont.ttf create mode 100644 public/build/fonts/iconfont.woff create mode 100644 public/build/fonts/ionicons.eot create mode 100644 public/build/fonts/ionicons.svg create mode 100644 public/build/fonts/ionicons.ttf create mode 100644 public/build/fonts/ionicons.woff create mode 100644 public/build/js/app-e5ecf36f27.js create mode 100644 public/build/js/home-0c5ca51577.js create mode 100644 public/build/js/jcrop-2396e0e7c0.js create mode 100644 public/build/js/jcrop.js.map create mode 100644 public/build/rev-manifest.json create mode 100644 public/favicon.ico create mode 100644 public/images/default.png create mode 100644 public/images/favicon.ico create mode 100644 public/index.php create mode 100644 public/robots.txt create mode 100644 readme.md create mode 100644 resources/assets/js/App.vue create mode 100644 resources/assets/js/app.js create mode 100644 resources/assets/js/bootstrap.js create mode 100644 resources/assets/js/components/Chartjs.vue create mode 100644 resources/assets/js/components/Comment.vue create mode 100644 resources/assets/js/components/Jumbotron.vue create mode 100644 resources/assets/js/components/Parse.vue create mode 100644 resources/assets/js/components/dashboard/CustomAction.vue create mode 100644 resources/assets/js/components/dashboard/Form.vue create mode 100644 resources/assets/js/components/dashboard/Modal.vue create mode 100644 resources/assets/js/components/dashboard/Table.vue create mode 100644 resources/assets/js/components/dashboard/TablePagination.vue create mode 100644 resources/assets/js/components/dashboard/TablePaginationMixin.vue create mode 100644 resources/assets/js/components/dashboard/particals/FooterBar.vue create mode 100644 resources/assets/js/components/dashboard/particals/Navbar.vue create mode 100644 resources/assets/js/components/dashboard/particals/Sidebar.vue create mode 100644 resources/assets/js/components/passport/AuthorizedClients.vue create mode 100644 resources/assets/js/components/passport/Clients.vue create mode 100644 resources/assets/js/components/passport/PersonalAccessTokens.vue create mode 100644 resources/assets/js/config/helper.js create mode 100644 resources/assets/js/config/menu.js create mode 100644 resources/assets/js/config/toastr.js create mode 100644 resources/assets/js/home.js create mode 100644 resources/assets/js/lang/en/form.js create mode 100644 resources/assets/js/lang/en/index.js create mode 100644 resources/assets/js/lang/en/page.js create mode 100644 resources/assets/js/lang/en/sidebar.js create mode 100644 resources/assets/js/lang/en/table.js create mode 100644 resources/assets/js/lang/index.js create mode 100644 resources/assets/js/lang/zh_cn/form.js create mode 100644 resources/assets/js/lang/zh_cn/index.js create mode 100644 resources/assets/js/lang/zh_cn/page.js create mode 100644 resources/assets/js/lang/zh_cn/sidebar.js create mode 100644 resources/assets/js/lang/zh_cn/table.js create mode 100644 resources/assets/js/routes.js create mode 100644 resources/assets/js/vendor/Jcrop.min.js create mode 100644 resources/assets/js/vendor/highlight.min.js create mode 100644 resources/assets/js/vendor/jquery.form.min.js create mode 100755 resources/assets/js/vendor/select2.min.js create mode 100644 resources/assets/js/views/Dashboard.vue create mode 100644 resources/assets/js/views/Parent.vue create mode 100644 resources/assets/js/views/dashboard/File.vue create mode 100644 resources/assets/js/views/dashboard/Home.vue create mode 100644 resources/assets/js/views/dashboard/System.vue create mode 100644 resources/assets/js/views/dashboard/Visitor.vue create mode 100644 resources/assets/js/views/dashboard/article/Article.vue create mode 100644 resources/assets/js/views/dashboard/article/Create.vue create mode 100644 resources/assets/js/views/dashboard/article/Edit.vue create mode 100644 resources/assets/js/views/dashboard/article/FormMixin.vue create mode 100644 resources/assets/js/views/dashboard/category/Category.vue create mode 100644 resources/assets/js/views/dashboard/category/Create.vue create mode 100644 resources/assets/js/views/dashboard/category/Edit.vue create mode 100644 resources/assets/js/views/dashboard/comment/Comment.vue create mode 100644 resources/assets/js/views/dashboard/comment/Edit.vue create mode 100644 resources/assets/js/views/dashboard/discussion/Create.vue create mode 100644 resources/assets/js/views/dashboard/discussion/Discussion.vue create mode 100644 resources/assets/js/views/dashboard/discussion/Edit.vue create mode 100644 resources/assets/js/views/dashboard/link/Create.vue create mode 100644 resources/assets/js/views/dashboard/link/Edit.vue create mode 100644 resources/assets/js/views/dashboard/link/Link.vue create mode 100644 resources/assets/js/views/dashboard/tag/Create.vue create mode 100644 resources/assets/js/views/dashboard/tag/Edit.vue create mode 100644 resources/assets/js/views/dashboard/tag/Tag.vue create mode 100644 resources/assets/js/views/dashboard/user/Create.vue create mode 100644 resources/assets/js/views/dashboard/user/Edit.vue create mode 100644 resources/assets/js/views/dashboard/user/User.vue create mode 100644 resources/assets/js/vuex/actions.js create mode 100644 resources/assets/js/vuex/mutations.js create mode 100644 resources/assets/js/vuex/store.js create mode 100644 resources/assets/sass/_form.scss create mode 100644 resources/assets/sass/_ibox.scss create mode 100644 resources/assets/sass/_navbar.scss create mode 100644 resources/assets/sass/_pagination.scss create mode 100644 resources/assets/sass/_toastr.scss create mode 100644 resources/assets/sass/_togglebutton.scss create mode 100644 resources/assets/sass/app.scss create mode 100644 resources/assets/sass/home.scss create mode 100644 resources/assets/sass/markdown.scss create mode 100644 resources/assets/sass/public.scss create mode 100644 resources/assets/sass/styles.scss create mode 100644 resources/assets/sass/variables.scss create mode 100644 resources/assets/sass/vendor/Jcrop.min.css create mode 100644 resources/assets/sass/vendor/highlight.min.css create mode 100755 resources/assets/sass/vendor/select2.min.css create mode 100644 resources/assets/sass/vendor/simplemde.min.css create mode 100644 resources/assets/sass/vendor/toastr.min.css create mode 100644 resources/lang/en/auth.php create mode 100644 resources/lang/en/blog.php create mode 100644 resources/lang/en/pagination.php create mode 100644 resources/lang/en/passwords.php create mode 100644 resources/lang/en/validation.php create mode 100644 resources/lang/zh_cn/auth.php create mode 100644 resources/lang/zh_cn/blog.php create mode 100644 resources/lang/zh_cn/pagination.php create mode 100644 resources/lang/zh_cn/passwords.php create mode 100644 resources/lang/zh_cn/validation.php create mode 100644 resources/views/article/index.blade.php create mode 100644 resources/views/article/show.blade.php create mode 100644 resources/views/auth/github_register.blade.php create mode 100644 resources/views/auth/login.blade.php create mode 100644 resources/views/auth/passwords/email.blade.php create mode 100644 resources/views/auth/passwords/reset.blade.php create mode 100644 resources/views/auth/register.blade.php create mode 100644 resources/views/category/index.blade.php create mode 100644 resources/views/category/show.blade.php create mode 100644 resources/views/dashboard/index.blade.php create mode 100644 resources/views/discussion/create.blade.php create mode 100644 resources/views/discussion/edit.blade.php create mode 100644 resources/views/discussion/index.blade.php create mode 100644 resources/views/discussion/show.blade.php create mode 100644 resources/views/errors/403.blade.php create mode 100644 resources/views/errors/404.blade.php create mode 100644 resources/views/errors/503.blade.php create mode 100644 resources/views/layouts/app.blade.php create mode 100644 resources/views/link/index.blade.php create mode 100644 resources/views/pagination/default.blade.php create mode 100644 resources/views/particals/footer.blade.php create mode 100644 resources/views/particals/navbar.blade.php create mode 100644 resources/views/search.blade.php create mode 100644 resources/views/setting/binding.blade.php create mode 100644 resources/views/setting/index.blade.php create mode 100644 resources/views/setting/notification.blade.php create mode 100644 resources/views/setting/particals/sidebar.blade.php create mode 100644 resources/views/tag/index.blade.php create mode 100644 resources/views/tag/show.blade.php create mode 100644 resources/views/user/comments.blade.php create mode 100644 resources/views/user/discussions.blade.php create mode 100644 resources/views/user/following.blade.php create mode 100644 resources/views/user/index.blade.php create mode 100644 resources/views/user/particals/comments.blade.php create mode 100644 resources/views/user/particals/discussions.blade.php create mode 100644 resources/views/user/particals/info.blade.php create mode 100644 resources/views/user/profile.blade.php create mode 100644 resources/views/vendor/notifications/email-plain.blade.php create mode 100644 resources/views/vendor/notifications/email.blade.php create mode 100644 resources/views/widgets/article.blade.php create mode 100644 routes/api.php create mode 100644 routes/console.php create mode 100644 routes/web.php create mode 100644 server.php create mode 100755 storage/app/.gitignore create mode 100755 storage/app/public/.gitignore create mode 100755 storage/framework/.gitignore create mode 100755 storage/framework/cache/.gitignore create mode 100755 storage/framework/sessions/.gitignore create mode 100755 storage/framework/views/.gitignore create mode 100755 storage/logs/.gitignore create mode 100755 storage/oauth-private.key create mode 100755 storage/oauth-public.key create mode 100644 tests/ExampleTest.php create mode 100644 tests/TestCase.php create mode 100644 yarn.lock diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..3e637253e --- /dev/null +++ b/.env.example @@ -0,0 +1,41 @@ +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_LOG_LEVEL=debug +APP_URL=http://localhost + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE= +DB_USERNAME= +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +QUEUE_DRIVER=sync + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST= +MAIL_PORT= +MAIL_USERNAME= +MAIL_PASSWORD= +MAIL_ENCRYPTION= +MAIL_FROM=Example +MAIL_NAME=Example + +PUSHER_KEY= +PUSHER_SECRET= +PUSHER_APP_ID= + +GITHUB_CLIENT_ID= +GITHUB_CLIENT_SECRET= +GITHUB_REDIRECT= + +YOUDAO_API_KEY= +YOUDAO_KEY_FROM= diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..a8763f8ef --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text=auto +*.css linguist-vendored +*.scss linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..a374dac7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/node_modules +/public/storage +/vendor +/.idea +Homestead.json +Homestead.yaml +.env diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..52e24c9ec --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Jiajian Chan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/app/Article.php b/app/Article.php new file mode 100644 index 000000000..1615896dc --- /dev/null +++ b/app/Article.php @@ -0,0 +1,159 @@ +belongsTo(User::class); + } + + /** + * Get the category for the blog article. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function category() + { + return $this->belongsTo(Category::class); + } + + /** + * Get the tags for the blog article. + * + * @return \Illuminate\Database\Eloquent\Relations\morphToMany + */ + public function tags() + { + return $this->morphToMany(Tag::class, 'taggable'); + } + + /** + * Get the comments for the discussion. + * + * @return \Illuminate\Database\Eloquent\Relations\morphMany + */ + public function comments() + { + return $this->morphMany(Comment::class, 'commentable'); + } + + /** + * Get the config for the configuration. + * + * @return \Illuminate\Database\Eloquent\Relations\morphMany + */ + public function config() + { + return $this->morphMany(Configuration::class, 'configuration'); + } + + /** + * Get the created at attribute. + * + * @param $value + * @return string + */ + public function getCreatedAtAttribute($value) + { + return \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $value)->diffForHumans(); + } + + /** + * Set the title and the readable slug. + * + * @param string $value + */ + public function setTitleAttribute($value) + { + $this->attributes['title'] = $value; + + if (!config('services.youdao.key') || !config('services.youdao.from')) { + $this->setUniqueSlug($value, ''); + } else { + $this->attributes['slug'] = translug($value); + } + } + + /** + * Set the unique slug. + * + * @param $value + * @param $extra + */ + public function setUniqueSlug($value, $extra) { + $slug = str_slug($value.'-'.$extra); + if (static::whereSlug($slug)->exists()) { + $this->setUniqueSlug($slug, $extra+1); + return; + } + $this->attributes['slug'] = $slug; + } + + /** + * Set the content attribute. + * + * @param $value + */ + public function setContentAttribute($value) + { + $data = [ + 'raw' => $value, + 'html' => (new Markdowner)->convertMarkdownToHtml($value) + ]; + + $this->attributes['content'] = json_encode($data); + } +} diff --git a/app/Category.php b/app/Category.php new file mode 100644 index 000000000..741ca5abf --- /dev/null +++ b/app/Category.php @@ -0,0 +1,27 @@ +hasMany(Article::Class); + } +} diff --git a/app/Comment.php b/app/Comment.php new file mode 100644 index 000000000..5719a4b72 --- /dev/null +++ b/app/Comment.php @@ -0,0 +1,67 @@ +belongsTo(User::class); + } + + /** + * Get all of the owning commentable models. + * + * @return \Illuminate\Database\Eloquent\Relations\morphTo + */ + public function commentable() + { + return $this->morphTo(); + } + + /** + * Set the content Attribute. + * + * @param $value + */ + public function setContentAttribute($value) + { + $content = (new Mention)->parse($value); + + $data = [ + 'raw' => $content, + 'html' => (new Markdowner)->convertMarkdownToHtml($content) + ]; + + $this->attributes['content'] = json_encode($data); + } + +} diff --git a/app/Console/Commands/BlogInstall.php b/app/Console/Commands/BlogInstall.php new file mode 100644 index 000000000..e70af9638 --- /dev/null +++ b/app/Console/Commands/BlogInstall.php @@ -0,0 +1,59 @@ +execShellWithPrettyPrint('php artisan key:generate'); + $this->execShellWithPrettyPrint('php artisan migrate --seed'); + $this->execShellWithPrettyPrint('php artisan passport:install'); + } + + /** + * Exec sheel with pretty print. + * + * @param string $command + * @return mixed + */ + public function execShellWithPrettyPrint($command) + { + $this->info('---'); + $this->info($command); + $output = shell_exec($command); + $this->info($output); + $this->info('---'); + } +} diff --git a/app/Console/Commands/CreateAdmin.php b/app/Console/Commands/CreateAdmin.php new file mode 100644 index 000000000..9778ed0ee --- /dev/null +++ b/app/Console/Commands/CreateAdmin.php @@ -0,0 +1,120 @@ +argument('user'); + $option = $this->option('delete'); + + if ($userId && !$option) { + $user = User::findOrFail($userId); + + $this->info('username: ' . $user->name . ', email: ' . $user->email . ', is_admin: ' . $user->is_admin); + + return; + } else if ($userId && $option) { + if (User::withoutGlobalScope(StatusScope::class)->find($userId)->delete()) { + $this->info('Deleted the user success!'); + } else { + $this->error('Sorry, the system had made a mistake! Please check the system.'); + } + return; + } + + $name = $this->ask('What is your name?'); + $email = $this->ask('What is your email?'); + $password = $this->secret('What is the password?(min: 6 character)'); + + $data = [ + 'name' => $name, + 'email' => $email, + 'password' => $password, + ]; + + if ( $this->register($data) ) { + $this->info('Register a new admin success! You can login in the dashboard by the account.'); + } else { + $this->error('Something went wrong!'); + } + } + + /** + * Create a new user instance after a valid registration. + * + * @param array $data + * @return User + */ + public function register($data) + { + $validator = Validator::make($data, [ + 'name' => 'required|max:255|unique:users', + 'email' => 'required|email|max:255|unique:users', + 'password' => 'required|min:6', + ]); + + if (!$validator->passes()) { + throw new RuntimeException($validator->errors()->first()); + } + + return $this->create($data); + } + + /** + * Create a new user instance after a valid registration. + * + * @param array $data + * @return User + */ + public function create($data) + { + return User::create([ + 'name' => $data['name'], + 'email' => $data['email'], + 'status' => true, + 'is_admin' => true, + 'password' => bcrypt($data['password']), + 'avatar' => (new Identicon())->getImageDataUri($data['name'], 256), + ]); + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 000000000..ba9f078bd --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,41 @@ +command('inspire') + // ->hourly(); + } + + /** + * Register the Closure based commands for the application. + * + * @return void + */ + protected function commands() + { + require base_path('routes/console.php'); + } +} diff --git a/app/Discussion.php b/app/Discussion.php new file mode 100644 index 000000000..30469971f --- /dev/null +++ b/app/Discussion.php @@ -0,0 +1,91 @@ +belongsTo(User::class); + } + + /** + * Get the comments for the discussion. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function comments() + { + return $this->morphMany(Comment::class, 'commentable'); + } + + /** + * Get the tags for the discussion. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function tags() + { + return $this->morphToMany(Tag::class, 'taggable'); + } + + /** + * Set the content attribute. + * + * @param $value + */ + public function setContentAttribute($value) + { + $data = [ + 'raw' => $value, + 'html' => (new Markdowner)->convertMarkdownToHtml($value) + ]; + + $this->attributes['content'] = json_encode($data); + } + +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 000000000..21c9784cb --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,65 @@ +expectsJson()) { + return response()->json(['error' => 'Unauthenticated.'], 401); + } + + return redirect()->guest('login'); + } +} diff --git a/app/Exceptions/UploadException.php b/app/Exceptions/UploadException.php new file mode 100644 index 000000000..025d9d372 --- /dev/null +++ b/app/Exceptions/UploadException.php @@ -0,0 +1,8 @@ +translate($slug); + } +} + +if(!function_exists('lang')) { + /** + * Trans for getting the language. + * + * @param string $text + * @param array $parameters + * @return string + */ + function lang($text, $parameters = []) + { + return trans('blog.'.$text, $parameters); + } +} diff --git a/app/Http/Controllers/Api/ApiController.php b/app/Http/Controllers/Api/ApiController.php new file mode 100644 index 000000000..51963f416 --- /dev/null +++ b/app/Http/Controllers/Api/ApiController.php @@ -0,0 +1,218 @@ +fractal = new Manager; + + if (isset($_GET['include'])) { + $this->fractal->parseIncludes($_GET['include']); + } + } + + /** + * Get the status code. + * + * @return int $statusCode + */ + public function getStatusCode() + { + return $this->statusCode; + } + + /** + * Set the status code. + * + * @param $statusCode + * @return $this + */ + public function setStatusCode($statusCode) + { + $this->statusCode = $statusCode; + + return $this; + } + + /** + * Repond a no content response. + * + * @return response + */ + public function noContent() + { + return response()->json(null, 204); + } + + /** + * Respond the item data. + * + * @param $item + * @param $callback + * @return mixed + */ + public function respondWithItem($item, $callback) + { + $resource = new Item($item, $callback); + + $rootScope = $this->fractal->createData($resource); + + return $this->respondWithArray($rootScope->toArray()); + } + + /** + * Respond the collection data. + * + * @param $collection + * @param $callback + * @return mixed + */ + public function respondWithCollection($collection, $callback) + { + $resource = new Collection($collection, $callback); + + $rootScope = $this->fractal->createData($resource); + + return $this->respondWithArray($rootScope->toArray()); + } + + /** + * Respond the collection data with pagination. + * + * @param $paginator + * @param $callback + * @return mixed + */ + public function respondWithPaginator($paginator, $callback) + { + $resource = new Collection($paginator->getCollection(), $callback); + + $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); + + $rootScope = $this->fractal->createData($resource); + + return $this->respondWithArray($rootScope->toArray()); + } + + /** + * Respond the data. + * + * @param array $array + * @param array $headers + * @return mixed + */ + public function respondWithArray(array $array, array $headers = []) + { + return response()->json($array, $this->statusCode, $headers); + } + + /** + * Respond the error message. + * + * @param string $message + * @param string $errorCode + * @return json + */ + protected function respondWithError($message, $errorCode) + { + if ($this->statusCode === 200) { + trigger_error( + "You better have a really good reason for erroring on a 200...", + E_USER_WARNING + ); + } + + return $this->respondWithArray([ + 'error' => [ + 'code' => $errorCode, + 'http_code' => $this->statusCode, + 'message' => $message, + ] + ]); + } + + /** + * Respond the error of 'Forbidden' + * + * @param string $message + * @return json + */ + public function errorForbidden($message = 'Forbidden') + { + return $this->setStatusCode(500) + ->respondWithError($message, self::CODE_FORBIDDEN); + } + + /** + * Respond the error of 'Internal Error'. + * + * @param string $message + * @return json + */ + public function errorInternalError($message = 'Internal Error') + { + return $this->setStatusCode(500) + ->respondWithError($message, self::CODE_INTERNAL_ERROR); + } + + /** + * Respond the error of 'Resource Not Found' + * + * @param string $message + * @return json + */ + public function errorNotFound($message = 'Resource Not Found') + { + return $this->setStatusCode(404) + ->respondWithError($message, self::CODE_NOT_FOUND); + } + + /** + * Respond the error of 'Unauthorized'. + * + * @param string $message + * @return json + */ + public function errorUnauthorized($message = 'Unauthorized') + { + return $this->setStatusCode(401) + ->respondWithError($message, self::CODE_UNAUTHORIZED); + } + + /** + * Respond the error of 'Wrong Arguments'. + * + * @param string $message + * @return json + */ + public function errorWrongArgs($message = 'Wrong Arguments') + { + return $this->setStatusCode(400) + ->respondWithError($message, self::CODE_WRONG_ARGS); + } +} diff --git a/app/Http/Controllers/Api/ArticleController.php b/app/Http/Controllers/Api/ArticleController.php new file mode 100644 index 000000000..5a5e05083 --- /dev/null +++ b/app/Http/Controllers/Api/ArticleController.php @@ -0,0 +1,97 @@ +article = $article; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->article->page(), new ArticleTransformer); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\ArticleRequest $request + * @return \Illuminate\Http\Response + */ + public function store(ArticleRequest $request) + { + $data = array_merge($request->all(), [ + 'user_id' => \Auth::id(), + 'last_user_id' => \Auth::id() + ]); + + $data['is_draft'] = isset($data['is_draft']); + $data['is_original'] = isset($data['is_original']); + + $this->article->store($data); + + $this->article->syncTag(json_decode($request->get('tags'))); + + return $this->noContent(); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWithItem($this->article->getById($id), new ArticleTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\ArticleRequest $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(ArticleRequest $request, $id) + { + $data = array_merge($request->all(), [ + 'last_user_id' => \Auth::id() + ]); + + $this->article->update($id, $data); + + $this->article->syncTag(json_decode($request->get('tags'))); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $this->article->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/CategoryController.php b/app/Http/Controllers/Api/CategoryController.php new file mode 100644 index 000000000..2bac534fe --- /dev/null +++ b/app/Http/Controllers/Api/CategoryController.php @@ -0,0 +1,107 @@ +category = $category; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->category->page(), new CategoryTransformer); + } + + /** + * Show all of the categories. + * + * @return mixed + */ + public function getList() + { + return $this->respondWithCollection($this->category->all(), new CategoryTransformer); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\CategoryRequest $request + * @return \Illuminate\Http\Response + */ + public function store(CategoryRequest $request) + { + $this->category->store($request->all()); + + return $this->noContent(); + } + + /** + * Update Discussion Status By Discussion ID + * + * @param $id + * @param Request $request + * @return \App\User + */ + public function status($id, Request $request) + { + $input = $request->all(); + + $this->category->updateColumn($id, $input); + + return $this->noContent(); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWithItem($this->category->getById($id), new CategoryTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\CategoryRequest $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(CategoryRequest $request, $id) + { + $this->category->update($id, $request->all()); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $this->category->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/CommentController.php b/app/Http/Controllers/Api/CommentController.php new file mode 100644 index 000000000..f753da86c --- /dev/null +++ b/app/Http/Controllers/Api/CommentController.php @@ -0,0 +1,105 @@ +comment = $comment; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->comment->page(), new CommentTransformer); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\CommentRequest $request + * @return \Illuminate\Http\Response + */ + public function store(CommentRequest $request) + { + $data = array_merge($request->all(), [ + 'user_id' => Auth::user()->id + ]); + + $comment = $this->comment->store($data); + + $comment->commentable->user->notify(new Received($comment)); + + return $this->respondWithItem($comment, new CommentTransformer); + } + + /** + * Display the specified resource. + * + * @param int $commentableId + * @return \Illuminate\Http\Response + */ + public function show(Request $request, $commentableId) + { + $commentableType = $request->get('commentable_type'); + $comments = $this->comment->getByCommentable($commentableId, $commentableType); + + return $this->respondWithCollection($comments, new CommentTransformer); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWithItem($this->comment->getById($id), new CommentTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\CommentRequest $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(CommentRequest $request, $id) + { + $this->comment->update($id, $request->all()); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $this->authorize('delete', $this->comment->getById($id)); + + $this->comment->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/DiscussionController.php b/app/Http/Controllers/Api/DiscussionController.php new file mode 100644 index 000000000..7997afd7c --- /dev/null +++ b/app/Http/Controllers/Api/DiscussionController.php @@ -0,0 +1,106 @@ +discussion = $discussion; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->discussion->page(10, 'desc'), new DiscussionTransformer); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\DiscussionRequest $request + * @return \Illuminate\Http\Response + */ + public function store(DiscussionRequest $request) + { + $data = array_merge($request->all(), [ + 'user_id' => \Auth::id(), + 'last_user_id' => \Auth::id() + ]); + + $this->discussion->store($data); + + return $this->noContent(); + } + + /** + * Update Discussion Status By Discussion ID + * + * @param $id + * @param Request $request + * @return \App\User + */ + public function status($id, Request $request) + { + $input = $request->all(); + + $this->discussion->update($id, $input); + + return $this->noContent(); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWIthItem($this->discussion->getById($id), new DiscussionTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\DiscussionRequest $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(DiscussionRequest $request, $id) + { + $data = array_merge($request->all(), [ + 'last_user_id' => \Auth::id() + ]); + + $this->discussion->update($id, $data); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $this->discussion->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/HomeController.php b/app/Http/Controllers/Api/HomeController.php new file mode 100644 index 000000000..9cb0efb99 --- /dev/null +++ b/app/Http/Controllers/Api/HomeController.php @@ -0,0 +1,42 @@ +user = $user; + $this->visitor = $visitor; + $this->article = $article; + $this->comment = $comment; + } + + public function statistics() + { + $users = $this->user->getNumber(); + $visitors = (int) $this->visitor->getAllClicks(); + $articles = $this->article->getNumber(); + $comments = $this->comment->getNumber(); + + $data = compact('users', 'visitors', 'articles', 'comments'); + + return $this->respondWithArray($data); + } + +} diff --git a/app/Http/Controllers/Api/LinkController.php b/app/Http/Controllers/Api/LinkController.php new file mode 100644 index 000000000..969a7e58b --- /dev/null +++ b/app/Http/Controllers/Api/LinkController.php @@ -0,0 +1,110 @@ +link = $link; + + $this->manager = $manager; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->link->page(), new LinkTransformer); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\LinkRequest $request + * @return \Illuminate\Http\Response + */ + public function store(LinkRequest $request) + { + $path = $this->manager->fileWebPath($request->file('image')->store('links')); + + $data = array_merge($request->all(), [ + 'image'=> $path + ]); + + $data['status'] = isset($data['status']); + + $this->link->store($data); + + return $this->noContent(); + } + + /** + * Update Link Status By Link ID + * + * @param $id + * @param Request $request + * @return \App\User + */ + public function status($id, Request $request) + { + $input = $request->all(); + + $this->link->update($id, $input); + + return $this->noContent(); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWithItem($this->link->getById($id), new LinkTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\LinkRequest $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(LinkRequest $request, $id) + { + $this->link->update($id, $request->all()); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $this->link->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php new file mode 100644 index 000000000..91c7d2407 --- /dev/null +++ b/app/Http/Controllers/Api/SystemController.php @@ -0,0 +1,36 @@ +getPdo(); + + $version = $pdo->query('select version()')->fetchColumn(); + + $data = [ + 'server' => $_SERVER['SERVER_SOFTWARE'], + 'http_host' => $_SERVER['HTTP_HOST'], + 'remote_host' => isset($_SERVER['REMOTE_HOST']) ? $_SERVER['REMOTE_HOST'] : $_SERVER['REMOTE_ADDR'], + 'user_agent' => $_SERVER['HTTP_USER_AGENT'], + 'php' => phpversion(), + 'sapi_name' => php_sapi_name(), + 'extensions' => implode(", ", get_loaded_extensions()), + 'db_connection' => isset($_SERVER['DB_CONNECTION']) ? $_SERVER['DB_CONNECTION'] : 'Secret', + 'db_database' => isset($_SERVER['DB_DATABASE']) ? $_SERVER['DB_DATABASE'] : 'Secret', + 'db_version' => $version, + ]; + + return $this->respondWithArray($data); + } +} diff --git a/app/Http/Controllers/Api/TagController.php b/app/Http/Controllers/Api/TagController.php new file mode 100644 index 000000000..ec71790e7 --- /dev/null +++ b/app/Http/Controllers/Api/TagController.php @@ -0,0 +1,107 @@ +tag = $tag; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->tag->page(), new TagTransformer); + } + + /** + * Show all of the tags. + * + * @return mixed + */ + public function getList() + { + return $this->respondWithCollection($this->tag->all(), new TagTransformer); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\TagRequest $request + * @return \Illuminate\Http\Response + */ + public function store(TagRequest $request) + { + $this->tag->store($request->all()); + + return $this->noContent(); + } + + /** + * Update Discussion Status By Discussion ID + * + * @param $id + * @param Request $request + * @return \App\User + */ + public function status($id, Request $request) + { + $input = $request->all(); + + $this->tag->updateColumn($id, $input); + + return $this->noContent(); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWithItem($this->tag->getById($id), new TagTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\TagRequest $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(TagRequest $request, $id) + { + $this->tag->update($id, $request->all()); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $this->tag->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/UploadController.php b/app/Http/Controllers/Api/UploadController.php new file mode 100644 index 000000000..2cf3fd2b2 --- /dev/null +++ b/app/Http/Controllers/Api/UploadController.php @@ -0,0 +1,125 @@ +manager = $manager; + + $this->link = $link; + } + + /** + * Response the folder info. + * + * @param Request $request + * @return array + */ + public function index(Request $request) + { + $data = $this->manager->folderInfo($request->get('folder')); + + return $this->respondWithArray([ 'data' => $data ]); + } + + /** + * Upload the file. + * + * @param Request $request + * @return array + */ + public function uploadFile(Request $request) + { + $file = $_FILES['file']; + + $fileName = $request->get('name'); + + $fileName = $fileName ? $fileName.'.'.explode('/', $file['type'])[1] : $file['name']; + + $path = str_finish($request->get('folder'), '/').$fileName; + + $content = \File::get($file['tmp_name']); + + if ($this->manager->checkFile($path)) { + return $this->errorWrongArgs('This File exists.'); + } + + $this->manager->saveFile($path, $content); + + return $this->respondWithArray($this->manager->fileDetail($path)); + } + + /** + * Upload file by the path. + * + * @param Request $request + * @return array + */ + public function uploadFileByPath(Request $request) + { + $path = $request->file('image')->store($request->get('path')); + + $this->link->updateColumn($request->get('id'), ['image' => '/uploads/' . $path]); + + return $this->respondWithArray($this->manager->fileDetail($path)); + } + + /** + * Create the folder. + * + * @param Request $request + * @return array + */ + public function createFolder(Request $request) + { + $folder = $request->get('folder'); + + $data = $this->manager->createFolder($folder); + + return $this->respondWithArray([ 'data' => $data ]); + } + + /** + * Delete the folder. + * + * @param Request $request + * @return array + */ + public function deleteFolder(Request $request) + { + $del_folder = $request->get('del_folder'); + + $folder = $request->get('folder') . '/' . $del_folder; + + $data = $this->manager->deleteFolder($folder); + + return $this->respondWithArray([ 'data' => $data ]); + } + + /** + * Delete the file. + * + * @param Request $request + * @return array + */ + public function deleteFile(Request $request) + { + $path = $request->get('path'); + + $data = $this->manager->deleteFile($path); + + return $this->respondWithArray([ 'data' => $data ]); + } +} diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php new file mode 100644 index 000000000..8c9e960e1 --- /dev/null +++ b/app/Http/Controllers/Api/UserController.php @@ -0,0 +1,109 @@ +user = $user; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->user->page(), new UserTransformer); + } + + /** + * Update User Status By User ID + * + * @param $id + * @param Request $request + * @return \App\User + */ + public function status($id, Request $request) + { + $input = $request->all(); + + if (auth()->user()->id == $id || $this->user->getById($id)->is_admin) { + return $this->errorUnauthorized('You can\'t change status for yourself and other Administrators!'); + } + + $this->user->update($id, $input); + + return $this->noContent(); + } + + /** + * Store a newly created resource in storage. + * + * @param \App\Http\Requests\UserRequest $request + * @return \Illuminate\Http\Response + */ + public function store(UserRequest $request) + { + $data = array_merge($request->all(), [ + 'confirm_code' => str_random(64) + ]); + + $this->user->store($data); + + return $this->noContent(); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + return $this->respondWithItem($this->user->getById($id), new UserTransformer); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $this->user->update($id, $request->all()); + + return $this->noContent(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + if (auth()->user()->id == $id || $this->user->getById($id)->is_admin) { + return $this->errorUnauthorized('You can\'t delete for yourself and other Administrators!'); + } + + $this->user->destroy($id); + + return $this->noContent(); + } +} diff --git a/app/Http/Controllers/Api/VisitorController.php b/app/Http/Controllers/Api/VisitorController.php new file mode 100644 index 000000000..b53184181 --- /dev/null +++ b/app/Http/Controllers/Api/VisitorController.php @@ -0,0 +1,30 @@ +visitor = $visitor; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->respondWithPaginator($this->visitor->page(), new VisitorTransformer); + } + +} diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php new file mode 100644 index 000000000..3595cef0c --- /dev/null +++ b/app/Http/Controllers/ArticleController.php @@ -0,0 +1,44 @@ +article = $article; + } + + /** + * Display the articles resource. + * + * @return mixed + */ + public function index() + { + $articles = $this->article->page(config('blog.article.number'), config('blog.article.sort'), config('blog.article.sortColumn')); + + return view('article.index', compact('articles')); + } + + /** + * Display the article resource by article slug. + * + * @param string $slug + * @return mixed + */ + public function show($slug) + { + $article = $this->article->getBySlug($slug); + +// $article->content = collect(json_decode($article->content))->get('html'); + + return view('article.show', compact('article')); + } +} diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php new file mode 100644 index 000000000..caf4559a1 --- /dev/null +++ b/app/Http/Controllers/Auth/AuthController.php @@ -0,0 +1,156 @@ +user = $user; + } + + /** + * Redirect the user to the GitHub authentication page. + * + * @return Response + */ + public function redirectToProvider() + { + return Socialite::driver('github')->redirect(); + } + + /** + * Obtain the user information from GitHub. + * + * @return Response + */ + public function handleProviderCallback() + { + $githubUser = Socialite::driver('github')->user(); + $user = $this->user->getByGithubId($githubUser->id); + + if (auth()->check()) { + $currentUser = auth()->user(); + + if ($currentUser->github_id) { + return redirect()->back(); + } else { + if ($user) { + return redirect()->back(); + } else { + $this->bindGithub($currentUser, $githubUser); + + return redirect()->back(); + } + } + } else { + if ($user) { + auth()->loginUsingId($user->id); + return redirect()->to('article'); + } else { + $this->registerUser($githubUser); + return redirect()->to('auth/github/register'); + } + } + } + + /** + * Bind the github account. + * + * @param $currentUser + * @param $registerData + * @return mixed + */ + public function bindGithub($currentUser, $registerData) + { + $currentUser->github_id = $registerData->user['id']; + $currentUser->github_name = $registerData->nickname; + $currentUser->github_url = $registerData->user['url']; + + return $currentUser->save(); + } + + /** + * Save the register data in session. + * + * @param $registerData + */ + public function registerUser($registerData) + { + $data['avatar'] = $registerData->user['avatar_url']; + $data['github_id'] = $registerData->user['id']; + $data['github_name'] = $registerData->nickname; + $data['github_url'] = $registerData->user['url']; + $data['name'] = $registerData->nickname; + $data['nickname'] = $registerData->user['name']; + $data['email'] = $registerData->user['email']; + + session()->put('oauthData', $data); + } + + /** + * Display the github oauth for register page. + * + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View + */ + public function create() + { + if (! session()->has('oauthData')) { + return redirect()->to('login'); + } + + $oauthData = array_merge(session('oauthData'), request()->old()); + + return view('auth.github_register', compact('oauthData')); + } + + /** + * Store a new user. + * + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function store() + { + if (! session()->has('oauthData')) { + return redirect('login'); + } + + $this->validator(request()->all())->validate(); + + $oauthData = session('oauthData'); + + $data = array_merge($oauthData, request()->all()); + + $data['password'] = bcrypt($data['password']); + + auth()->guard()->login(User::create($data)); + + session()->forget('oauthData'); + + return redirect()->to('article'); + } + + /** + * Get a validator for an incoming registration request. + * + * @param array $data + * @return \Illuminate\Contracts\Validation\Validator + */ + protected function validator(array $data) + { + return Validator::make($data, [ + 'name' => 'required|max:255', + 'email' => 'required|email|max:255|unique:users', + 'password' => 'required|min:6|confirmed', + ]); + } + +} diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php new file mode 100644 index 000000000..6a247fefd --- /dev/null +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -0,0 +1,32 @@ +middleware('guest'); + } +} diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php new file mode 100644 index 000000000..4df0a39d6 --- /dev/null +++ b/app/Http/Controllers/Auth/LoginController.php @@ -0,0 +1,57 @@ +middleware('guest', ['except' => 'logout']); + } + + /** + * Log the user out of the application. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function logout(Request $request) + { + $this->guard()->logout(); + + $request->session()->flush(); + + $request->session()->regenerate(); + + return redirect('/login'); + } +} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php new file mode 100644 index 000000000..111c1a867 --- /dev/null +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -0,0 +1,90 @@ +middleware('guest'); + } + + /** + * Get a validator for an incoming registration request. + * + * @param array $data + * @return \Illuminate\Contracts\Validation\Validator + */ + protected function validator(array $data) + { + return Validator::make($data, [ + 'name' => 'required|min:3|max:16|unique:users|regex:/^[0-9a-zA-Z-_]+$/u', + 'email' => 'required|email|max:255|unique:users', + 'password' => 'required|min:6|confirmed', + ]); + } + + /** + * Create a new user instance after a valid registration. + * + * @param array $data + * @return User + */ + protected function create(array $data) + { + return User::create([ + 'name' => $data['name'], + 'email' => $data['email'], + 'password' => bcrypt($data['password']), + 'status' => true, + 'avatar' => (new Identicon())->getImageDataUri($data['name'], 256), + ]); + } + + /** + * Handle a registration request for the application. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function register(Request $request) + { + $this->validator($request->all())->validate(); + + $this->guard()->login($this->create($request->all())); + + return redirect()->to($this->redirectTo); + } +} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php new file mode 100644 index 000000000..79b8ca979 --- /dev/null +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -0,0 +1,39 @@ +middleware('guest'); + } +} diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php new file mode 100644 index 000000000..1205b56b2 --- /dev/null +++ b/app/Http/Controllers/CategoryController.php @@ -0,0 +1,42 @@ +category = $category; + } + + /** + * Display the categories resource. + * + * @return mixed + */ + public function index() + { + $categories = $this->category->all(); + + return view('category.index', compact('categories')); + } + + /** + * Display the category resource by category name. + * + * @param string $category + * @return mixed + */ + public function show($category) + { + $articles = $this->category->getByName($category)->articles; + + return view('category.show', compact('category', 'articles')); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 000000000..03e02a23e --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ +discussion = $discussion; + $this->tag = $tag; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + $discussions = $this->discussion->page(config('blog.discussion.number'), config('blog.discussion.sort'), config('blog.discussion.sortColumn')); + + return view('discussion.index', compact('discussions')); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + $tags = $this->tag->all(); + + return view('discussion.create', compact('tags')); + } + + /** + * Store a new discussion. + * + * @param Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $data = array_merge($request->all(), [ + 'user_id' => \Auth::id(), + 'last_user_id' => \Auth::id(), + 'status' => true + ]); + + $this->discussion->store($data); + + return redirect()->to('discussion'); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + $discussion = $this->discussion->getById($id); + + return view('discussion.show', compact('discussion')); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + $discussion = $this->discussion->getById($id); + + $this->authorize('update', $discussion); + + $tags = $this->tag->all(); + + $selectTags = $this->discussion->listTagsIdsForDiscussion($discussion); + + return view('discussion.edit', compact('discussion', 'tags', 'selectTags')); + } + + /** + * Update the discussion by id. + * + * @param Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $discussion = $this->discussion->getById($id); + + $this->authorize('update', $discussion); + + $data = array_merge($request->all(), [ + 'last_user_id' => \Auth::id() + ]); + + $this->discussion->update($id, $data); + + return redirect()->to("discussion/{$id}"); + } +} diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php new file mode 100644 index 000000000..da08a7f41 --- /dev/null +++ b/app/Http/Controllers/HomeController.php @@ -0,0 +1,42 @@ +article = $article; + } + + /** + * Display the dashboard page. + * + * @return mixed + */ + public function dashboard() + { + return view('dashboard.index'); + } + + /** + * Search the article by keyword. + * + * @param Request $request + * @return mixed + */ + public function search(Request $request) + { + $key = trim($request->get('q')); + + $articles = $this->article->search($key); + + return view('search', compact('articles')); + } +} diff --git a/app/Http/Controllers/LinkController.php b/app/Http/Controllers/LinkController.php new file mode 100644 index 000000000..be4326ff6 --- /dev/null +++ b/app/Http/Controllers/LinkController.php @@ -0,0 +1,29 @@ +link = $link; + } + + /** + * Display the link resource. + * + * @return mix + */ + public function index() + { + $links = $this->link->page(); + + return view('link.index', compact('links')); + } +} diff --git a/app/Http/Controllers/SettingController.php b/app/Http/Controllers/SettingController.php new file mode 100644 index 000000000..77359d287 --- /dev/null +++ b/app/Http/Controllers/SettingController.php @@ -0,0 +1,63 @@ +user = $user; + } + + /** + * Display the current user setting list. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return view('setting.index'); + } + + /** + * Display the notification page for setting. + * + * @return \Illuminate\Http\Response + */ + public function notification() + { + return view('setting.notification'); + } + + /** + * Set the email notification. + * + * @param Request $request [description] + * @return Redirect + */ + public function setNotification(Request $request) + { + $input = [ + 'email_notify_enabled' => $request->get('email_notify_enabled') ? 'yes' : 'no' + ]; + + $this->user->update(\Auth::id(), $input); + + return redirect()->back(); + } + + /** + * Display the bindings page. + * + * @return \Illuminate\Http\Response + */ + public function binding() + { + return view('setting.binding'); + } +} diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php new file mode 100644 index 000000000..9b5b240f0 --- /dev/null +++ b/app/Http/Controllers/TagController.php @@ -0,0 +1,44 @@ +tag = $tag; + } + + /** + * Display the tag resource. + * + * @return mixed + */ + public function index() + { + $tags = $this->tag->all(); + + return view('tag.index', compact('tags')); + } + + /** + * Display the articles and discussions by the tag. + * + * @param string $tag + * @return mixed + */ + public function show($tag) + { + $tag = $this->tag->getByName($tag); + $articles = $tag->articles; + $discussions = $tag->discussions; + + return view('tag.show', compact('tag', 'articles', 'discussions')); + } +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 000000000..3eccf4631 --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,250 @@ +user = $user; + + $this->manager = $manager; + } + + /** + * Redirect to user information page. + * + * @return redirect + */ + public function index() + { + if (Auth::check()) { + return redirect()->to('/user/' . Auth::user()->name); + } + + return redirect()->to('/login'); + } + + /** + * Display the specified resource. + * + * @param int $username + * @return \Illuminate\Http\Response + */ + public function show($username) + { + $user = $this->user->getByName($username); + + if (!isset($user)) abort(404); + + $discussions = $user->discussions->take(10); + $comments = $user->comments->take(10); + + return view('user.index', compact('user', 'discussions', 'comments')); + } + + /** + * Display the following users list. + * + * @param string $username + * @return \Illuminate\Http\Response + */ + public function following($username) + { + $user = $this->user->getByName($username); + + if (!isset($user)) abort(404); + + $followings = $user->followings; + + return view('user.following', compact('user', 'followings')); + } + + /** + * Display the list of user's discussions. + * + * @param string $username + * @return \Illuminate\Http\Response + */ + public function discussions($username) + { + $user = $this->user->getByName($username); + + if (!isset($user)) abort(404); + + $discussions = $user->discussions; + + return view('user.discussions', compact('user', 'discussions')); + } + + /** + * Display the list of user's comments. + * + * @param string $username + * @return \Illuminate\Http\Response + */ + public function comments($username) + { + $user = $this->user->getByName($username); + + if (!isset($user)) abort(404); + + $comments = $user->comments; + + return view('user.comments', compact('user', 'comments')); + } + + /** + * Follow or unfollow the other user. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function doFollow($id) + { + $user = $this->user->getById($id); + + if (Auth::user()->isFollowing($id)) { + Auth::user()->unfollow($id); + } else { + Auth::user()->follow($id); + } + + return redirect()->back(); + } + + /** + * Show the form for editing the specified resource. + * + * @return \Illuminate\Http\Response + */ + public function edit() + { + if (!\Auth::id()) abort(404); + + $user = $this->user->getById(\Auth::id()); + + return view('user.profile', compact('user')); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $input = $request->except(['name', 'email', 'is_admin']); + + $user = $this->user->update($id, $input); + + return redirect()->back(); + } + + /** + * Change the user's password. + * + * @param Request $request + * @return Redirect + */ + public function changePassword(Request $request) + { + if (! Hash::check($request->get('old_password'), Auth::user()->password)) { + return redirect()->back() + ->withErrors(['old_password' => 'The password must be the same of current password.']); + } + + Validator::make($request->all(), [ + 'old_password' => 'required|max:255', + 'password' => 'required|min:6|confirmed', + ])->validate(); + + $this->user->changePassword(Auth::user(), $request->get('password')); + + return redirect()->back(); + } + + + /** + * Upload the avatar. + * + * @param Request $request + * @return mixed + */ + public function avatar(Request $request) + { + $file = $request->file('avatar'); + $input = [ 'image' => $file ]; + $rules = [ 'image' => 'image' ]; + + $validator = \Validator::make($input, $rules); + + if($validator->fails()) { + return response()->json([ + 'success' => false, + 'errors' => $validator->getMessageBag()->toArray() + ]); + } + + $destinationPath = 'avatar/' . Auth::user()->id . '/'; + + $fileType = $file->getClientOriginalExtension(); + + $filename = Auth::user()->id.'_'.time().'_'.str_random(12). '.' . $fileType; + + $file->storeAs($destinationPath, $filename); + + $imageWebpath = $this->manager->fileWebPath($destinationPath.$filename); + + $image = Image::make($imageWebpath)->fit(400)->stream(); + + $this->manager->saveFile($destinationPath.$filename, $image->__toString()); + + return response()->json([ + 'success' => true, + 'avatar' => $imageWebpath, + 'image' => $destinationPath.$filename + ]); + } + + /** + * Crop the avatar. + * + * @param Request $request + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function cropAvatar(Request $request) + { + $photo = $request->get('photo'); + + $width = (int)$request->get('w'); + $height = (int)$request->get('h'); + $xAlign = (int)$request->get('x'); + $yAlign = (int)$request->get('y'); + + $imageWebpath = $this->manager->fileWebPath($photo); + + $image = Image::make($imageWebpath)->crop($width, $height, $xAlign, $yAlign)->stream(); + + $this->manager->saveFile($photo, $image->__toString()); + + $this->user->saveAvatar(Auth::user()->id, $imageWebpath); + + return redirect('/user/profile'); + } + +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php new file mode 100644 index 000000000..e0826fb2e --- /dev/null +++ b/app/Http/Kernel.php @@ -0,0 +1,58 @@ + [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, + ], + + 'api' => [ + 'throttle:60,1', + 'bindings', + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'admin' => \App\Http\Middleware\MustBeAdmin::class, + ]; +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 000000000..3aa15f8dd --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ +is_admin) { + abort(404); + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 000000000..e27860e24 --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,26 @@ +check()) { + return redirect('/'); + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 000000000..a2c354141 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + 'required|min:3', + 'subtitle' => 'required|min:3', + 'content' => 'required', + 'category_id' => 'required', + 'published_at' => 'required', + ]; + } +} diff --git a/app/Http/Requests/CategoryRequest.php b/app/Http/Requests/CategoryRequest.php new file mode 100644 index 000000000..28a5dedd3 --- /dev/null +++ b/app/Http/Requests/CategoryRequest.php @@ -0,0 +1,30 @@ + 'required|min:2', + ]; + } +} diff --git a/app/Http/Requests/CommentRequest.php b/app/Http/Requests/CommentRequest.php new file mode 100644 index 000000000..0b7195bbc --- /dev/null +++ b/app/Http/Requests/CommentRequest.php @@ -0,0 +1,30 @@ + 'required' + ]; + } +} diff --git a/app/Http/Requests/DiscussionRequest.php b/app/Http/Requests/DiscussionRequest.php new file mode 100644 index 000000000..33938dc86 --- /dev/null +++ b/app/Http/Requests/DiscussionRequest.php @@ -0,0 +1,31 @@ + 'required|min:2', + 'content' => 'required' + ]; + } +} diff --git a/app/Http/Requests/LinkRequest.php b/app/Http/Requests/LinkRequest.php new file mode 100644 index 000000000..d97a81996 --- /dev/null +++ b/app/Http/Requests/LinkRequest.php @@ -0,0 +1,31 @@ + 'required|min:2', + 'link' => 'required|min:2' + ]; + } +} diff --git a/app/Http/Requests/TagRequest.php b/app/Http/Requests/TagRequest.php new file mode 100644 index 000000000..726015422 --- /dev/null +++ b/app/Http/Requests/TagRequest.php @@ -0,0 +1,31 @@ + 'required|unique:tags', + 'meta_description' => 'required' + ]; + } +} diff --git a/app/Http/Requests/UserRequest.php b/app/Http/Requests/UserRequest.php new file mode 100644 index 000000000..0f705ca87 --- /dev/null +++ b/app/Http/Requests/UserRequest.php @@ -0,0 +1,33 @@ + 'required|unique:users', + 'email' => 'required|email|unique:users', + 'password_confirmation' => 'required', + 'password' => 'required|confirmed', + ]; + } +} diff --git a/app/Link.php b/app/Link.php new file mode 100644 index 000000000..d6aea936a --- /dev/null +++ b/app/Link.php @@ -0,0 +1,40 @@ +comment = $comment; + } + + /** + * Get the notification's delivery channels. + * + * @param mixed $notifiable + * @return array + */ + public function via($notifiable) + { + return ['database', 'mail']; + } + + /** + * Get the mail representation of the notification. + * + * @param mixed $notifiable + * @return \Illuminate\Notifications\Messages\MailMessage + */ + public function toMail($notifiable) + { + $comment = $this->comment; + $type = lang(ucfirst($comment->commentable_type)); + $message = '您发布的' . $type . ':' . $comment->commentable->title . ', 收到了一条来自' . $comment->user->name . '的评论:'; + $url = ($comment->commentable_type == 'articles') + ? url('article', ['slug'=>$comment->commentable->slug]) + : url('discussion', ['id' => $comment->commentable->id]); + return (new MailMessage) + ->greeting('尊敬的' . $notifiable->name) + ->to($notifiable->email) + ->subject('您收到了一条新的评论') + ->line($message) + ->line(json_decode($comment->content)->raw) + ->action('查看', $url); + } + + /** + * Get the array representation of the notification. + * + * @param mixed $notifiable + * @return array + */ + public function toArray($notifiable) + { + return $this->comment->toArray(); + } +} diff --git a/app/Policies/CommentPolicy.php b/app/Policies/CommentPolicy.php new file mode 100644 index 000000000..87f64ccd2 --- /dev/null +++ b/app/Policies/CommentPolicy.php @@ -0,0 +1,24 @@ +is_admin || $comment->user_id === $user->id; + } +} diff --git a/app/Policies/DiscussionPolicy.php b/app/Policies/DiscussionPolicy.php new file mode 100644 index 000000000..73c8705de --- /dev/null +++ b/app/Policies/DiscussionPolicy.php @@ -0,0 +1,36 @@ +is_admin || $user->id === $discussion->user_id; + } + + /** + * Determine whether the user can delete the discussion. + * + * @param \App\User $user + * @param \App\Discussion $discussion + * @return mixed + */ + public function delete(User $user, Discussion $discussion) + { + return $user->is_admin; + } +} diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php new file mode 100644 index 000000000..705a0b5f2 --- /dev/null +++ b/app/Policies/UserPolicy.php @@ -0,0 +1,35 @@ +id === $user->id; + } + + /** + * Determine whether the current user can delete the user. + * + * @param \App\User $currentUser + * @param \App\User $user + * @return mixed + */ + public function delete(User $currentUser, User $user) + { + return $currentUser->is_admin; + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 000000000..b4211ec34 --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,37 @@ + Discussion::class, + 'articles' => Article::class, + ]); + } + + /** + * Register any application services. + * + * @return void + */ + public function register() + { + // + } +} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php new file mode 100644 index 000000000..975a2524e --- /dev/null +++ b/app/Providers/AuthServiceProvider.php @@ -0,0 +1,34 @@ + \App\Policies\UserPolicy::class, + \App\Comment::class => \App\Policies\CommentPolicy::class, + \App\Discussion::class => \App\Policies\DiscussionPolicy::class, + ]; + + /** + * Register any authentication / authorization services. + * + * @return void + */ + public function boot() + { + $this->registerPolicies(); + + Passport::routes(); + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 000000000..1dcf8d287 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,26 @@ +id === (int) $userId; + }); + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php new file mode 100644 index 000000000..a182657e6 --- /dev/null +++ b/app/Providers/EventServiceProvider.php @@ -0,0 +1,32 @@ + [ + 'App\Listeners\EventListener', + ], + ]; + + /** + * Register any events for your application. + * + * @return void + */ + public function boot() + { + parent::boot(); + + // + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 000000000..30999c203 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,81 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + + Route::post('/oauth/token', [ + 'uses' => '\Laravel\Passport\Http\Controllers\AccessTokenController@issueToken', + ]); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + * + * @return void + */ + protected function mapWebRoutes() + { + Route::group([ + 'middleware' => 'web', + 'namespace' => $this->namespace, + ], function ($router) { + require base_path('routes/web.php'); + }); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + * + * @return void + */ + protected function mapApiRoutes() + { + Route::group([ + 'middleware' => 'api', + 'namespace' => $this->namespace, + 'prefix' => 'api', + ], function ($router) { + require base_path('routes/api.php'); + }); + } +} diff --git a/app/Repositories/ArticleRepository.php b/app/Repositories/ArticleRepository.php new file mode 100644 index 000000000..823635438 --- /dev/null +++ b/app/Repositories/ArticleRepository.php @@ -0,0 +1,136 @@ +model = $article; + + $this->visitor = $visitor; + } + + /** + * Get the page of articles without draft scope. + * + * @param integer $number + * @param string $sort + * @param string $sortColumn + * @return collection + */ + public function page($number = 10, $sort = 'desc', $sortColumn = 'created_at') + { + $this->model = $this->checkAuthScope(); + + return $this->model->orderBy($sortColumn, $sort)->paginate($number); + } + + /** + * Get the article record without draft scope. + * + * @param int $id + * @return mixed + */ + public function getById($id) + { + return $this->model->withoutGlobalScope(DraftScope::class)->findOrFail($id); + } + + /** + * Update the article record without draft scope. + * + * @param int $id + * @param array $input + * @return boolean + */ + public function update($id, $input) + { + $this->model = $this->model->withoutGlobalScope(DraftScope::class)->findOrFail($id); + + return $this->save($this->model, $input); + } + + /** + * Get the article by article's slug. + * The Admin can preview the article if the article is drafted. + * + * @param $slug + * @return object + */ + public function getBySlug($slug) + { + $this->model = $this->checkAuthScope(); + + $article = $this->model->where('slug', $slug)->firstOrFail(); + + $article->increment('view_count'); + + $this->visitor->log($article->id); + + return $article; + } + + /** + * Check the auth and the model without global scope when user is the admin. + * + * @return Model + */ + public function checkAuthScope() + { + if (auth()->check() && auth()->user()->is_admin) { + $this->model = $this->model->withoutGlobalScope(DraftScope::class); + } + + return $this->model; + } + + /** + * Sync the tags for the article. + * + * @param int $number + * @return Paginate + */ + public function syncTag(array $tags) + { + $this->model->tags()->sync($tags); + } + + /** + * Search the articles by the keyword. + * + * @param string $key + * @return collection + */ + public function search($key) + { + $key = trim($key); + + return $this->model + ->where('title', 'like', "%{$key}%") + ->orderBy('published_at', 'desc') + ->get(); + + } + + /** + * Delete the draft article. + * + * @param int $id + * @return boolean + */ + public function destroy($id) + { + return $this->getById($id)->delete(); + } + +} diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php new file mode 100644 index 000000000..84326b741 --- /dev/null +++ b/app/Repositories/BaseRepository.php @@ -0,0 +1,119 @@ +model->count(); + } + + /** + * Update columns in the record by id. + * + * @param $id + * @param $input + * @return App\Model|User + */ + public function updateColumn($id, $input) + { + $this->model = $this->getById($id); + + foreach ($input as $key => $value) { + $this->model->{$key} = $value; + } + + return $this->model->save(); + } + + /** + * Destroy a model. + * + * @param $id + * @return mixed + */ + public function destroy($id) + { + return $this->getById($id)->delete(); + } + + /** + * Get model by id. + * + * @return App\Model + */ + public function getById($id) + { + return $this->model->findOrFail($id); + } + + /** + * Get all the records + * + * @return array User + */ + public function all() + { + return $this->model->get(); + } + + /** + * Get number of the records + * + * @param int $number + * @param string $sort + * @param string $sortColumn + * @return Paginate + */ + public function page($number = 10, $sort = 'desc', $sortColumn = 'created_at') + { + return $this->model->orderBy($sortColumn, $sort)->paginate($number); + } + + /** + * Store a new record. + * + * @param $input + * @return User + */ + public function store($input) + { + return $this->save($this->model, $input); + } + + /** + * Update a record by id. + * + * @param $id + * @param $input + * @return User + */ + public function update($id, $input) + { + $this->model = $this->getById($id); + + return $this->save($this->model, $input); + } + + /** + * Save the input's data. + * + * @param $model + * @param $input + * @return User + */ + public function save($model, $input) + { + $model->fill($input); + + $model->save(); + + return $model; + } +} diff --git a/app/Repositories/CategoryRepository.php b/app/Repositories/CategoryRepository.php new file mode 100644 index 000000000..51986cd29 --- /dev/null +++ b/app/Repositories/CategoryRepository.php @@ -0,0 +1,28 @@ +model = $category; + } + + /** + * Get record by the name. + * + * @param string $name + * @return collection + */ + public function getByName($name) + { + return $this->model->where('name', $name)->first(); + } +} diff --git a/app/Repositories/CommentRepository.php b/app/Repositories/CommentRepository.php new file mode 100644 index 000000000..5f1898d9b --- /dev/null +++ b/app/Repositories/CommentRepository.php @@ -0,0 +1,59 @@ +model = $comment; + } + + /** + * Store a new record. + * + * @param $input + * @return User + */ + public function store($input) + { + return $this->save($this->model, $input); + } + + /** + * Save the input's data. + * + * @param $model + * @param $input + * @return User + */ + public function save($model, $input) + { + $model->fill($input); + + $model->save(); + + return $model; + } + + /** + * Get comments by the commentable_id and commentable_type + * + * @param int $commentableId + * @param string $commentableType + * @return array + */ + public function getByCommentable($commentableId, $commentableType) + { + return $this->model->where('commentable_id', $commentableId) + ->where('commentable_type', $commentableType) + ->get(); + } + +} diff --git a/app/Repositories/DiscussionRepository.php b/app/Repositories/DiscussionRepository.php new file mode 100644 index 000000000..e4c2751e3 --- /dev/null +++ b/app/Repositories/DiscussionRepository.php @@ -0,0 +1,130 @@ +model = $discussion; + } + + /** + * Get number of the records. + * + * @param int $number + * @param string $sort + * @param string $sortColumn + * @return Paginate + */ + public function page($number = 10, $sort = 'asc', $sortColumn = 'created_at') + { + $this->model = $this->checkAuthScope(); + + return $this->model->orderBy($sortColumn, $sort)->paginate($number); + } + + /** + * Get the discussion record without draft scope. + * + * @param int $id + * @return mixed + */ + public function getById($id) + { + $this->model = $this->checkAuthScope(); + + return $this->model->findOrFail($id); + } + + /** + * Store a new discussion. + * @param array $data + * @return Model + */ + public function store($data) + { + $discussion = $this->model->create($data); + + if (is_array($data['tags'])) { + $this->syncTag($discussion, $data['tags']); + } else { + $this->syncTag($discussion, json_decode($data['tags'])); + } + + return $discussion; + } + + /** + * Update a record by id. + * + * @param int $id + * @param array $data + * @return boolean + */ + public function update(int $id, array $data) + { + $this->model = $this->checkAuthScope(); + + $discussion = $this->model->findOrFail($id); + + $this->syncTag($discussion, json_decode($data['tags'])); + + return $discussion->update($data); + } + + /** + * Check the auth and the model without global scope when user is the admin. + * + * @return Model + */ + public function checkAuthScope() + { + if (auth()->check() && auth()->user()->is_admin) { + $this->model = $this->model->withoutGlobalScope(StatusScope::class); + } + + return $this->model; + } + + /** + * Sync the tags for the discussion. + * + * @param int $number + * @return Paginate + */ + public function syncTag(Discussion $discussion, array $tags) + { + return $discussion->tags()->sync($tags); + } + + /** + * Get a list of tag ids that are associated with the given discussion. + * + * @param \App\Discussion $discussion + * + * @return array + */ + public function listTagsIdsForDiscussion(Discussion $discussion) + { + return $discussion->tags->pluck('id')->toArray(); + } + + /** + * Delete the draft article. + * + * @param int $id + * @return boolean + */ + public function destroy($id) + { + return $this->getById($id)->delete(); + } +} diff --git a/app/Repositories/LinkRepository.php b/app/Repositories/LinkRepository.php new file mode 100644 index 000000000..5750fa0f6 --- /dev/null +++ b/app/Repositories/LinkRepository.php @@ -0,0 +1,83 @@ +model = $link; + } + + /** + * Get number of the records + * + * @param int $number + * @param string $sort + * @param string $sortColumn + * @return Paginate + */ + public function page($number = 10, $sort = 'desc', $sortColumn = 'created_at') + { + $this->model = $this->checkAuthScope(); + + return $this->model->orderBy($sortColumn, $sort)->paginate($number); + } + + /** + * Get the article record without draft scope. + * + * @param int $id + * @return mixed + */ + public function getById($id) + { + return $this->model->withoutGlobalScope(StatusScope::class)->findOrFail($id); + } + + /** + * Update the article record without draft scope. + * + * @param int $id + * @param array $input + * @return boolean + */ + public function update($id, $input) + { + $this->model = $this->model->withoutGlobalScope(StatusScope::class)->findOrFail($id); + + return $this->save($this->model, $input); + } + + /** + * Check the auth and the model without global scope when user is the admin. + * + * @return Model + */ + public function checkAuthScope() + { + if (auth()->check() && auth()->user()->is_admin) { + $this->model = $this->model->withoutGlobalScope(StatusScope::class); + } + + return $this->model; + } + + /** + * Delete the draft article. + * + * @param int $id + * @return boolean + */ + public function destroy($id) + { + return $this->getById($id)->delete(); + } +} diff --git a/app/Repositories/TagRepository.php b/app/Repositories/TagRepository.php new file mode 100644 index 000000000..c4a27ce6a --- /dev/null +++ b/app/Repositories/TagRepository.php @@ -0,0 +1,28 @@ +model = $tag; + } + + /** + * Get record by the name. + * + * @param string $name + * @return collection + */ + public function getByName($name) + { + return $this->model->where('tag', $name)->first(); + } +} diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php new file mode 100644 index 000000000..5747f22b1 --- /dev/null +++ b/app/Repositories/UserRepository.php @@ -0,0 +1,142 @@ +model = $user; + } + + /** + * Get the list of all the user without myself. + * + * @return mixed + */ + public function getList() + { + return $this->model + ->orderBy('id', 'desc') + ->get(); + } + + /** + * Get the user by name. + * + * @param string $name + * @return mixed + */ + public function getByName($name) + { + return $this->model + ->where('name', $name) + ->first(); + } + + /** + * Get number of the records + * + * @param int $number + * @param string $sort + * @param string $sortColumn + * @return Paginate + */ + public function page($number = 10, $sort = 'desc', $sortColumn = 'created_at') + { + return $this->model->withoutGlobalScope(StatusScope::class)->orderBy($sortColumn, $sort)->paginate($number); + } + + /** + * Get the article record without draft scope. + * + * @param int $id + * @return mixed + */ + public function getById($id) + { + return $this->model->withoutGlobalScope(StatusScope::class)->findOrFail($id); + } + + /** + * Update the article record without draft scope. + * + * @param int $id + * @param array $input + * @return boolean + */ + public function update($id, $input) + { + $this->model = $this->model->withoutGlobalScope(StatusScope::class)->findOrFail($id); + + return $this->save($this->model, $input); + } + + /** + * Get user by the user github id. + * + * @param int $githubId + * @return mixed + */ + public function getByGithubId($githubId) + { + return $this->model->where('github_id', $githubId)->first(); + } + + /** + * Change the user password. + * + * @param App\User $user + * @param string $password + * @return boolean + */ + public function changePassword($user, $password) + { + return $user->update(['password' => bcrypt($password)]); + } + + /** + * Save the user avatar path. + * + * @param int $id + * @param string $photo + * @return boolean + */ + public function saveAvatar($id, $photo) + { + $user = $this->getById($id); + + $user->avatar = $photo; + + return $user->save(); + } + + /** + * Delete the draft article. + * + * @param int $id + * @return boolean + */ + public function destroy($id) + { + return $this->getById($id)->delete(); + } +} diff --git a/app/Repositories/VisitorRepository.php b/app/Repositories/VisitorRepository.php new file mode 100644 index 000000000..49a7f34c5 --- /dev/null +++ b/app/Repositories/VisitorRepository.php @@ -0,0 +1,84 @@ +model = $visitor->with('article'); + + $this->ip = $ip; + } + + /** + * Update or create the record of visitors table + * + * @param $article_id + */ + public function log($article_id) + { + $ip = $this->ip->get(); + + if ($this->hasArticleIp($article_id, $ip)) { + + $this->model->where('article_id', $article_id) + ->where('ip', $ip) + ->increment('clicks'); + + } else { + $data = [ + 'ip' => $ip, + 'article_id' => $article_id, + 'clicks' => 1 + ]; + $this->model->firstOrCreate( $data ); + } + } + + /** + * Check the record by article id and ip if it exists. + * + * @param $article_id + * @param $ip + * @return bool + */ + public function hasArticleIp($article_id, $ip) + { + return $this->model + ->where('article_id', $article_id) + ->where('ip', $ip) + ->count() ? true : false; + } + + /** + * Get all the clicks. + * + * @return int + */ + public function getAllClicks() + { + return $this->model->sum('clicks'); + } + +} diff --git a/app/Scopes/DraftScope.php b/app/Scopes/DraftScope.php new file mode 100644 index 000000000..cea0fcfd8 --- /dev/null +++ b/app/Scopes/DraftScope.php @@ -0,0 +1,22 @@ +where('is_draft', 0); + } +} diff --git a/app/Scopes/StatusScope.php b/app/Scopes/StatusScope.php new file mode 100644 index 000000000..1c31fb9e1 --- /dev/null +++ b/app/Scopes/StatusScope.php @@ -0,0 +1,22 @@ +where('status', 1); + } +} diff --git a/app/Services/FileManager/BaseManager.php b/app/Services/FileManager/BaseManager.php new file mode 100644 index 000000000..3a8aa3476 --- /dev/null +++ b/app/Services/FileManager/BaseManager.php @@ -0,0 +1,288 @@ +disk = Storage::disk(config('filesystmes.default')); + + $this->mimeDetect = $mimeDetect; + } + + /** + * Get the folder information. + * + * @param $folder + * @return array + */ + public function folderInfo($folder) + { + $folder = $this->cleanFolder($folder); + + $breadcrumbs = $this->breadcrumbs($folder); + $slice = array_slice($breadcrumbs, -1); + $folderName = current($slice); + $breadcrumbs = array_slice($breadcrumbs, 0, -1); + + $subfolders = $this->getSubfolderList($folder); + + $files = $this->getFileList($folder); + + return compact([ + 'folder', + 'folderName', + 'breadcrumbs', + 'subfolders', + 'files' + ]); + } + + /** + * Get all the subfolders by folder. + * + * @param string $folder + * @return array + */ + public function getSubfolderList($folder) + { + $subfolders = []; + foreach (array_unique($this->disk->directories($folder)) as $subfolder) { + $subfolders["/$subfolder"] = basename($subfolder); + } + + return $subfolders; + } + + /** + * Get all the files by the folder. + * + * @param string $folder + * @return array + */ + public function getFileList($folder) + { + $files = []; + + $filesContent = $this->disk->files($folder); + + foreach ($filesContent as $file) { + $files[] = $this->fileDetail($file); + } + + return $files; + } + + /** + * Clean the folder. + * + * @param $folder + * @return string + */ + public function cleanFolder($folder) + { + return '/' . trim(str_replace('..', '', $folder), '/'); //eq: ../../uploads + } + + /** + * Get the breadcrumbs by the folder. + * + * @param $folder + * @return array + */ + public function breadcrumbs($folder) + { + $folder = trim($folder, '/'); //eq: /post_img/2016/10/01/ + $crumbs = ['/' => 'root']; + + if (empty($folder)) return $crumbs; + + $folders = explode('/', $folder); // eq: ['post_img', '2016', '10', '01'] + $build = ''; + foreach ($folders as $folder) + { + $build .= '/' . $folder; + $crumbs[$build] = $folder; + } + + return $crumbs; + } + + /** + * Get the file detail by the path. + * + * @param $path + * @return array + */ + public function fileDetail($path) + { + $path = '/' . trim($path, '/'); + + return [ + 'name' => basename($path), + 'fullPath' => $path, + 'webPath' => $this->fileWebPath($path), + 'mimeType' => $this->fileMimeType($path), + 'size' => $this->fileSize($path), + 'modified' => $this->fileModified($path) + ]; + } + + /** + * Get the file's webpath by the path. + * + * @param $path + * @return \Illuminate\Contracts\Routing\UrlGenerator|string + */ + public function fileWebPath($path) + { + $path = rtrim(config('filesystems.disks.local.webpath'), '/') . '/' . ltrim($path, '/'); + + return url($path); + } + + /** + * Get the file's mime type by the path. + * + * @param $path + * @return mixed|null|string + */ + public function fileMimeType($path) + { + return $this->mimeDetect->findType( + pathinfo($path, PATHINFO_EXTENSION) + ); + } + + /** + * Get the file's size by the path. + * + * @param $path + * @return mixed + */ + public function fileSize($path) + { + return human_filesize($this->disk->size($path)); + } + + /** + * Get the file's last modified time by the path. + * + * @param $path + * @return string + */ + public function fileModified($path) + { + return Carbon::createFromTimestamp( + substr($this->disk->lastModified($path), 0, 10) + )->toDateTimeString(); + } + + /** + * Create a new folder. + * + * @param $folder + * @return string + */ + public function createFolder($folder) + { + $this->cleanFolder($folder); + + if ($this->checkFolder($folder)) { + throw new UploadException("The Folder exists."); + } + + return $this->disk->makeDirectory($folder); + } + + /** + * Check if the folder exists. + * + * @param $folder + * @return mixed + */ + public function checkFolder($folder) + { + return $this->disk->exists($folder); + } + + /** + * Save the file. + * + * @param $path + * @param $content + * @return string + */ + public function saveFile($path, $content) + { + $this->cleanFolder($path); + + return $this->disk->put($path, $content); + } + + /** + * Determine whether the file exists + * + * @param string $path + * @return boolean + */ + public function checkFile($path) + { + return $this->disk->exists($path); + } + + /** + * Delete the folder. + * + * @param $folder + * @return string + */ + public function deleteFolder($folder) + { + $this->cleanFolder($folder); + + $filesFolders = array_merge( + $this->disk->directories($folder), + $this->disk->files($folder) + ); + + if (!empty($filesFolders)) { + throw new UploadException("The directory must be empty to delete it."); + } + + return $this->disk->deleteDirectory($folder); + } + + /** + * Delete the file. + * + * @param $path + * @return mixed + */ + public function deleteFile($path) + { + $this->cleanFolder($path); + + return $this->disk->delete($path); + } +} \ No newline at end of file diff --git a/app/Services/FileManager/UploadManager.php b/app/Services/FileManager/UploadManager.php new file mode 100644 index 000000000..0a1765893 --- /dev/null +++ b/app/Services/FileManager/UploadManager.php @@ -0,0 +1,8 @@ +request = $request; + } + + /** + * Get the client ip. + * + * @return mixed|string + */ + public function get() + { + $ip = $this->request->getClientIp(); + + if($ip == '::1') { + $ip = '127.0.0.1'; + } + + return $ip; + } +} diff --git a/app/Services/Markdowner.php b/app/Services/Markdowner.php new file mode 100644 index 000000000..235b2f002 --- /dev/null +++ b/app/Services/Markdowner.php @@ -0,0 +1,53 @@ +htmlConverter = new HtmlConverter(); + + $this->markdownConverter = new Parsedown(); + } + + /** + * Convert Markdown To Html. + * + * @param $markdown + * @return string + */ + public function convertMarkdownToHtml($markdown) + { + return $this->markdownConverter + ->setBreaksEnabled(true) + ->text($markdown); + } + + /** + * Convert Html To Markdown. + * + * @param $html + * @return string + */ + public function convertHtmlToMarkdown($html) + { + return $this->htmlConverter->convert($html); + } +} diff --git a/app/Services/Mention.php b/app/Services/Mention.php new file mode 100644 index 000000000..1b60c8921 --- /dev/null +++ b/app/Services/Mention.php @@ -0,0 +1,71 @@ +content, $atlist_tmp); + + $usernames = []; + + foreach ($atlist_tmp[2] as $k=>$v) { + if ($atlist_tmp[1][$k] || strlen($v) >25) { + continue; + } + $usernames[] = $v; + } + return array_unique($usernames); + } + + /** + * Replace the `@{user}` by the user link + */ + public function replace() + { + $this->content_parsed = $this->content; + + foreach ($this->users as $user) { + $search = '@' . $user->name; + + $place = '[' . $search . '](' . url('user', $user->name) . ')'; + + $this->content_parsed = str_replace($search, $place, $this->content_parsed); + } + } + + /** + * Parse the `@` mention user in content. + * + * @param string $content + * @return string + */ + public function parse($content) + { + $this->content = $content; + + $this->usernames = $this->getMentionedUsername(); + + count($this->usernames) > 0 && $this->users = User::whereIn('name', $this->usernames)->get(); + + $this->replace(); + + return $this->content_parsed; + } +} diff --git a/app/Tag.php b/app/Tag.php new file mode 100644 index 000000000..2a549ede6 --- /dev/null +++ b/app/Tag.php @@ -0,0 +1,47 @@ +morphedByMany(Article::class, 'taggable'); + } + + /** + * Get all of the discussions that are assigned this tag. + * + * @return \Illuminate\Database\Eloquent\Relations\MorpheBymany + */ + public function discussions() + { + return $this->morphedByMany(Discussion::class, 'taggable'); + } +} diff --git a/app/Traits/FollowTrait.php b/app/Traits/FollowTrait.php new file mode 100644 index 000000000..126e5c1aa --- /dev/null +++ b/app/Traits/FollowTrait.php @@ -0,0 +1,84 @@ + + * + * This source file is subject to the MIT license that is bundled + * with this source code in the file LICENSE. + */ +namespace App\Traits; + +/** + * Trait FollowTrait. + */ +trait FollowTrait +{ + /** + * Follow a user or users. + * + * @param int|array $user + * + * @return int + */ + public function follow($user) + { + return $this->followings()->sync((array)$user, false); + } + + /** + * Unfollow a user or users. + * + * @param int|array $user + * + * @return int + */ + public function unfollow($user) + { + return $this->followings()->detach((array)$user); + } + + /** + * Check if user is following given user. + * + * @param $user + * + * @return bool + */ + public function isFollowing($user) + { + return $this->followings->contains($user); + } + + /** + * Check if user is followed by given user. + * + * @param $user + * + * @return bool + */ + public function isFollowedBy($user) + { + return $this->followers->contains($user); + } + + /** + * Return user followers. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + */ + public function followers() + { + return $this->belongsToMany(__CLASS__, 'followers', 'follow_id', 'user_id')->withTimestamps(); + } + + /** + * Return user following users. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + */ + public function followings() + { + return $this->belongsToMany(__CLASS__, 'followers', 'user_id', 'follow_id')->withTimestamps(); + } +} \ No newline at end of file diff --git a/app/Transformers/ArticleTransformer.php b/app/Transformers/ArticleTransformer.php new file mode 100644 index 000000000..655814193 --- /dev/null +++ b/app/Transformers/ArticleTransformer.php @@ -0,0 +1,59 @@ + $article->id, + 'title' => $article->title, + 'subtitle' => $article->subtitle, + 'user' => $article->user, + 'slug' => $article->slug, + 'content' => collect(json_decode($article->content))->get('raw'), + 'page_image' => $article->page_image, + 'meta_description' => $article->meta_description, + 'is_original' => $article->is_original, + 'is_draft' => $article->is_draft, + 'visitors' => $article->view_count, + 'published_at' => $article->published_at->diffForHumans(), + 'published_time' => $article->published_at->toDateTimeString(), + ]; + } + + /** + * Include Category + * + * @param Article $article + * @return \League\Fractal\Resource\Collection + */ + public function includeCategory(Article $article) + { + $category = $article->category; + + return $this->item($category, new CategoryTransformer); + } + + /** + * Include Tags + * + * @param Article $article + * @return \League\Fractal\Resource\Collection + */ + public function includeTags(Article $article) + { + $tags = $article->tags; + + return $this->collection($tags, new TagTransformer); + } +} diff --git a/app/Transformers/CategoryTransformer.php b/app/Transformers/CategoryTransformer.php new file mode 100644 index 000000000..4436cf968 --- /dev/null +++ b/app/Transformers/CategoryTransformer.php @@ -0,0 +1,21 @@ + $category->id, + 'name' => $category->name, + 'path' => $category->path, + 'description' => $category->description, + 'status' => $category->status, + 'created_at' => $category->created_at->toDateTimeString(), + ]; + } +} diff --git a/app/Transformers/CommentTransformer.php b/app/Transformers/CommentTransformer.php new file mode 100644 index 000000000..ca701b74d --- /dev/null +++ b/app/Transformers/CommentTransformer.php @@ -0,0 +1,44 @@ +content); + + return [ + 'id' => $comment->id, + 'user_id' => $comment->user_id, + 'username' => isset($comment->user) ? $comment->user->name : 'Null', + 'avatar' => isset($comment->user) ? $comment->user->avatar : config('blog.default_avatar'), + 'commentable' => isset($comment->commentable) ? $comment->commentable->title : 'Be Forbidden!', + 'type' => $comment->commentable_type, + 'content_raw' => $content->raw, + 'created_at' => $comment->created_at->diffForHumans(), + 'like' => false, + 'like_num' => 0, + ]; + } + + /** + * Include User + * + * @param Comment $comment + * @return \League\Fractal\Resource\Collection + */ + public function includeUser(Comment $comment) + { + $user = $comment->user; + + return $this->item($user, new UserTransformer); + } + +} diff --git a/app/Transformers/DiscussionTransformer.php b/app/Transformers/DiscussionTransformer.php new file mode 100644 index 000000000..b8611d694 --- /dev/null +++ b/app/Transformers/DiscussionTransformer.php @@ -0,0 +1,73 @@ +content); + + return [ + 'id' => $discussion->id, + 'user_id' => $discussion->user_id, + 'user' => [ + 'name' => $discussion->user->name + ], + 'title' => $discussion->title, + 'content_raw' => $content->raw, + 'content_html' => $content->html, + 'status' => $discussion->status, + 'comment_count' => $discussion->comments->count(), + 'created_at' => $discussion->created_at->diffForHumans(), + ]; + } + + /** + * Include Comments + * + * @param Discussion $discussion + * @return \League\Fractal\Resource\Collection + */ + public function includeComments(Discussion $discussion) + { + $comments = $discussion->comments; + + return $this->collection($comments, new CommentTransformer); + } + + /** + * Include Comments + * + * @param Discussion $discussion + * @return \League\Fractal\Resource\Collection + */ + public function includeTags(Discussion $discussion) + { + $tags = $discussion->tags; + + return $this->collection($tags, new TagTransformer); + } + + /** + * Include User + * + * @param Discussion $discussion + * @return \League\Fractal\Resource\Collection + */ + public function includeUser(Discussion $discussion) + { + $user = $discussion->user; + + return $this->item($user, new UserTransformer); + } +} diff --git a/app/Transformers/LinkTransformer.php b/app/Transformers/LinkTransformer.php new file mode 100644 index 000000000..9b2482e88 --- /dev/null +++ b/app/Transformers/LinkTransformer.php @@ -0,0 +1,21 @@ + $link->id, + 'name' => $link->name, + 'image' => $link->image, + 'link' => $link->link, + 'status' => (bool) $link->status, + 'created_at' => $link->created_at->toDateTimeString(), + ]; + } +} diff --git a/app/Transformers/TagTransformer.php b/app/Transformers/TagTransformer.php new file mode 100644 index 000000000..e1d7d2491 --- /dev/null +++ b/app/Transformers/TagTransformer.php @@ -0,0 +1,21 @@ + $tag->id, + 'tag' => $tag->tag, + 'title' => $tag->title, + 'meta_description' => $tag->meta_description, + 'status' => $tag->status, + 'created_at' => $tag->created_at->toDateTimeString(), + ]; + } +} diff --git a/app/Transformers/UserTransformer.php b/app/Transformers/UserTransformer.php new file mode 100644 index 000000000..d2bfe7d56 --- /dev/null +++ b/app/Transformers/UserTransformer.php @@ -0,0 +1,26 @@ + $user->id, + 'avatar' => $user->avatar, + 'name' => $user->name, + 'status' => $user->status, + 'email' => $user->email, + 'nickname' => $user->nickname, + 'is_admin' => $user->is_admin, + 'github_name' => $user->github_name, + 'website' => $user->website, + 'description' => $user->description, + 'created_at' => $user->created_at->toDateTimeString(), + ]; + } +} diff --git a/app/Transformers/VisitorTransformer.php b/app/Transformers/VisitorTransformer.php new file mode 100644 index 000000000..54f9841b0 --- /dev/null +++ b/app/Transformers/VisitorTransformer.php @@ -0,0 +1,21 @@ + $visitor->id, + 'article' => [ 'title' => isset($visitor->article) ? $visitor->article()->title : 'null' ], + 'ip' => $visitor->ip, + 'country' => $visitor->country, + 'clicks' => $visitor->clicks, + 'created_at' => $visitor->created_at->toDateTimeString(), + ]; + } +} diff --git a/app/User.php b/app/User.php new file mode 100644 index 000000000..d3749c9d1 --- /dev/null +++ b/app/User.php @@ -0,0 +1,97 @@ +hasMany(Discussion::class)->orderBy('created_at', 'desc'); + } + + /** + * Get the comments for the user. + * + * @return \Illuminate\Database\Eloquent\Relations\HasMany + */ + public function comments() + { + return $this->hasMany(Comment::class)->orderBy('created_at', 'desc'); + } + + /** + * Get the avatar and return the default avatar if the avatar is null. + * + * @param string $value + * @return string + */ + public function getAvatarAttribute($value) + { + return isset($value) ? $value : config('blog.default_avatar'); + } + + /** + * Route notifications for the mail channel. + * + * @return string + */ + public function routeNotificationForMail() + { + if (\Auth::id() != $this->id && $this->email_notify_enabled == 'yes') { + return $this->email; + } + } +} diff --git a/app/Visitor.php b/app/Visitor.php new file mode 100644 index 000000000..041ed6153 --- /dev/null +++ b/app/Visitor.php @@ -0,0 +1,27 @@ +belongsTo(Article::class); + } +} diff --git a/artisan b/artisan new file mode 100755 index 000000000..df630d0d6 --- /dev/null +++ b/artisan @@ -0,0 +1,51 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running. We will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100755 index 000000000..f2801adf6 --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/autoload.php b/bootstrap/autoload.php new file mode 100755 index 000000000..383013796 --- /dev/null +++ b/bootstrap/autoload.php @@ -0,0 +1,34 @@ +=5.6.4", + "laravel/framework": "5.3.*", + "laravel/passport": "^1.0", + "predis/predis": "^1.1", + "league/html-to-markdown": "^4.2", + "erusev/parsedown": "^1.6", + "dflydev/apache-mime-types": "^1.0", + "league/fractal": "^0.14.0", + "laravel/socialite": "^2.0", + "yzalis/identicon": "^1.1", + "jellybool/translug" : "~1.0", + "intervention/image": "^2.3" + }, + "require-dev": { + "fzaninotto/faker": "~1.4", + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~5.0", + "symfony/css-selector": "3.1.*", + "symfony/dom-crawler": "3.1.*" + }, + "autoload": { + "classmap": [ + "database" + ], + "psr-4": { + "App\\": "app/" + }, + "files": [ + "app/Helpers.php" + ] + }, + "autoload-dev": { + "classmap": [ + "tests/TestCase.php" + ] + }, + "scripts": { + "post-root-package-install": [ + "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "php artisan key:generate" + ], + "post-install-cmd": [ + "Illuminate\\Foundation\\ComposerScripts::postInstall", + "php artisan optimize" + ], + "post-update-cmd": [ + "Illuminate\\Foundation\\ComposerScripts::postUpdate", + "php artisan optimize" + ] + }, + "config": { + "preferred-install": "dist" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 000000000..9441c008b --- /dev/null +++ b/composer.lock @@ -0,0 +1,4720 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "99285a8db061869d2d0c5de3a605f065", + "content-hash": "4cc86eaeb7ed96b9c2291bc64e76fffc", + "packages": [ + { + "name": "classpreloader/classpreloader", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/ClassPreloader/ClassPreloader.git", + "reference": "bc7206aa892b5a33f4680421b69b191efd32b096" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/bc7206aa892b5a33f4680421b69b191efd32b096", + "reference": "bc7206aa892b5a33f4680421b69b191efd32b096", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^1.0|^2.0|^3.0", + "php": ">=5.5.9" + }, + "require-dev": { + "phpunit/phpunit": "^4.8|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "ClassPreloader\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case", + "keywords": [ + "autoload", + "class", + "preload" + ], + "time": "2016-09-16 12:50:15" + }, + { + "name": "dflydev/apache-mime-types", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-apache-mime-types.git", + "reference": "f30a57e59b7476e4c5270b6a0727d79c9c0eb861" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-apache-mime-types/zipball/f30a57e59b7476e4c5270b6a0727d79c9c0eb861", + "reference": "f30a57e59b7476e4c5270b6a0727d79c9c0eb861", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "twig/twig": "1.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\ApacheMimeTypes": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Apache MIME Types", + "keywords": [ + "apache", + "mime", + "mimetypes" + ], + "time": "2013-05-14 02:02:01" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "0.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", + "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "@stable" + }, + "type": "project", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "time": "2014-10-24 07:27:01" + }, + { + "name": "doctrine/inflector", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2015-11-06 14:35:42" + }, + { + "name": "erusev/parsedown", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "20ff8bbb57205368b4b42d094642a3e52dac85fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/20ff8bbb57205368b4b42d094642a3e52dac85fb", + "reference": "20ff8bbb57205368b4b42d094642a3e52dac85fb", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "time": "2016-11-02 15:56:58" + }, + { + "name": "firebase/php-jwt", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "dccf163dc8ed7ed6a00afc06c51ee5186a428d35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/dccf163dc8ed7ed6a00afc06c51ee5186a428d35", + "reference": "dccf163dc8ed7ed6a00afc06c51ee5186a428d35", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "time": "2016-07-18 04:51:16" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.2.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ebf29dee597f02f09f4d5bbecc68230ea9b08f60", + "reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60", + "shasum": "" + }, + "require": { + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.3.1", + "php": ">=5.5" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.0", + "psr/log": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2016-10-08 15:01:37" + }, + { + "name": "guzzlehttp/promises", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2016-12-20 10:07:11" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b", + "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "PSR-7 message implementation", + "keywords": [ + "http", + "message", + "stream", + "uri" + ], + "time": "2016-06-24 23:00:38" + }, + { + "name": "intervention/image", + "version": "2.3.8", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "4064a980324f6c3bfa2bd981dfb247afa705ec3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/4064a980324f6c3bfa2bd981dfb247afa705ec3c", + "reference": "4064a980324f6c3bfa2bd981dfb247afa705ec3c", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "3.*" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@olivervogel.net", + "homepage": "http://olivervogel.net/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "time": "2016-09-01 17:04:03" + }, + { + "name": "jakub-onderka/php-console-color", + "version": "0.1", + "source": { + "type": "git", + "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", + "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", + "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "jakub-onderka/php-code-style": "1.0", + "jakub-onderka/php-parallel-lint": "0.*", + "jakub-onderka/php-var-dump-check": "0.*", + "phpunit/phpunit": "3.7.*", + "squizlabs/php_codesniffer": "1.*" + }, + "type": "library", + "autoload": { + "psr-0": { + "JakubOnderka\\PhpConsoleColor": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "jakub.onderka@gmail.com", + "homepage": "http://www.acci.cz" + } + ], + "time": "2014-04-08 15:00:19" + }, + { + "name": "jakub-onderka/php-console-highlighter", + "version": "v0.3.2", + "source": { + "type": "git", + "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", + "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "shasum": "" + }, + "require": { + "jakub-onderka/php-console-color": "~0.1", + "php": ">=5.3.0" + }, + "require-dev": { + "jakub-onderka/php-code-style": "~1.0", + "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-var-dump-check": "~0.1", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JakubOnderka\\PhpConsoleHighlighter": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "acci@acci.cz", + "homepage": "http://www.acci.cz/" + } + ], + "time": "2015-04-20 18:58:01" + }, + { + "name": "jellybool/translug", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/JellyBool/translug.git", + "reference": "14fdc63e1977b6bb8a4214788d1519a5e4f2cc6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JellyBool/translug/zipball/14fdc63e1977b6bb8a4214788d1519a5e4f2cc6c", + "reference": "14fdc63e1977b6bb8a4214788d1519a5e4f2cc6c", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "~5.3|~6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "JellyBool\\Translug\\": "src/" + }, + "files": [ + "src/helpers/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "JellyBool", + "email": "jellybool@outlook.com" + } + ], + "description": "Translate Chinese And Then Make It Sluggable", + "keywords": [ + "slug", + "translate" + ], + "time": "2016-09-18 13:15:41" + }, + { + "name": "jeremeamia/SuperClosure", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/jeremeamia/super_closure.git", + "reference": "443c3df3207f176a1b41576ee2a66968a507b3db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/443c3df3207f176a1b41576ee2a66968a507b3db", + "reference": "443c3df3207f176a1b41576ee2a66968a507b3db", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^1.2|^2.0|^3.0", + "php": ">=5.4", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "SuperClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia", + "role": "Developer" + } + ], + "description": "Serialize Closure objects, including their context and binding", + "homepage": "https://github.com/jeremeamia/super_closure", + "keywords": [ + "closure", + "function", + "lambda", + "parser", + "serializable", + "serialize", + "tokenizer" + ], + "time": "2016-12-07 09:37:55" + }, + { + "name": "laravel/framework", + "version": "v5.3.28", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "a64fc4f8958091ca39623b2e8c8f173cb34fa47a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/a64fc4f8958091ca39623b2e8c8f173cb34fa47a", + "reference": "a64fc4f8958091ca39623b2e8c8f173cb34fa47a", + "shasum": "" + }, + "require": { + "classpreloader/classpreloader": "~3.0", + "doctrine/inflector": "~1.0", + "ext-mbstring": "*", + "ext-openssl": "*", + "jeremeamia/superclosure": "~2.2", + "league/flysystem": "~1.0", + "monolog/monolog": "~1.11", + "mtdowling/cron-expression": "~1.0", + "nesbot/carbon": "~1.20", + "paragonie/random_compat": "~1.4|~2.0", + "php": ">=5.6.4", + "psy/psysh": "0.7.*|0.8.*", + "ramsey/uuid": "~3.0", + "swiftmailer/swiftmailer": "~5.1", + "symfony/console": "3.1.*", + "symfony/debug": "3.1.*", + "symfony/finder": "3.1.*", + "symfony/http-foundation": "3.1.*", + "symfony/http-kernel": "3.1.*", + "symfony/process": "3.1.*", + "symfony/routing": "3.1.*", + "symfony/translation": "3.1.*", + "symfony/var-dumper": "3.1.*", + "vlucas/phpdotenv": "~2.2" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/exception": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version", + "tightenco/collect": "self.version" + }, + "require-dev": { + "aws/aws-sdk-php": "~3.0", + "mockery/mockery": "~0.9.4", + "pda/pheanstalk": "~3.0", + "phpunit/phpunit": "~5.4", + "predis/predis": "~1.0", + "symfony/css-selector": "3.1.*", + "symfony/dom-crawler": "3.1.*" + }, + "suggest": { + "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).", + "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", + "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", + "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", + "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).", + "symfony/css-selector": "Required to use some of the crawler integration testing tools (3.1.*).", + "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (3.1.*).", + "symfony/psr-http-message-bridge": "Required to use psr7 bridging features (0.2.*)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.3-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "time": "2016-12-15 18:03:17" + }, + { + "name": "laravel/passport", + "version": "v1.0.17", + "source": { + "type": "git", + "url": "https://github.com/laravel/passport.git", + "reference": "f2a8af3a48adac02288779f59de95f46fef69b7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/passport/zipball/f2a8af3a48adac02288779f59de95f46fef69b7a", + "reference": "f2a8af3a48adac02288779f59de95f46fef69b7a", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "~3.0|~4.0", + "guzzlehttp/guzzle": "~6.0", + "illuminate/auth": "~5.3", + "illuminate/console": "~5.3", + "illuminate/container": "~5.3", + "illuminate/contracts": "~5.3", + "illuminate/database": "~5.3", + "illuminate/encryption": "~5.3", + "illuminate/http": "~5.3", + "illuminate/support": "~5.3", + "league/oauth2-server": "~5.0", + "php": ">=5.6.4", + "phpseclib/phpseclib": "^2.0", + "symfony/psr-http-message-bridge": "~1.0", + "zendframework/zend-diactoros": "~1.0" + }, + "require-dev": { + "mockery/mockery": "~0.9", + "phpunit/phpunit": "~5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Passport\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Passport provides OAuth2 server support to Laravel.", + "keywords": [ + "laravel", + "oauth", + "passport" + ], + "time": "2016-12-21 13:51:02" + }, + { + "name": "laravel/socialite", + "version": "v2.0.20", + "source": { + "type": "git", + "url": "https://github.com/laravel/socialite.git", + "reference": "aca8de9a93a28a119714e289c8bc599bd81aa88d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/socialite/zipball/aca8de9a93a28a119714e289c8bc599bd81aa88d", + "reference": "aca8de9a93a28a119714e289c8bc599bd81aa88d", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "~5.0|~6.0", + "illuminate/contracts": "~5.0", + "illuminate/http": "~5.0", + "illuminate/support": "~5.0", + "league/oauth1-client": "~1.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9", + "phpunit/phpunit": "~4.0|~5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Socialite\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylorotwell@gmail.com" + } + ], + "description": "Laravel wrapper around OAuth 1 & OAuth 2 libraries.", + "keywords": [ + "laravel", + "oauth" + ], + "time": "2016-11-01 18:49:10" + }, + { + "name": "lcobucci/jwt", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/lcobucci/jwt.git", + "reference": "ddce703826f9c5229781933b1a39069e38e6a0f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/ddce703826f9c5229781933b1a39069e38e6a0f3", + "reference": "ddce703826f9c5229781933b1a39069e38e6a0f3", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "php": ">=5.5" + }, + "require-dev": { + "mdanter/ecc": "~0.3.1", + "mikey179/vfsstream": "~1.5", + "phpmd/phpmd": "~2.2", + "phpunit/php-invoker": "~1.1", + "phpunit/phpunit": "~4.5", + "squizlabs/php_codesniffer": "~2.3" + }, + "suggest": { + "mdanter/ecc": "Required to use Elliptic Curves based algorithms." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Lcobucci\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Luís Otávio Cobucci Oblonczyk", + "email": "lcobucci@gmail.com", + "role": "Developer" + } + ], + "description": "A simple library to work with JSON Web Token and JSON Web Signature", + "keywords": [ + "JWS", + "jwt" + ], + "time": "2016-10-31 20:09:32" + }, + { + "name": "league/event", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/event.git", + "reference": "e4bfc88dbcb60c8d8a2939a71f9813e141bbe4cd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/event/zipball/e4bfc88dbcb60c8d8a2939a71f9813e141bbe4cd", + "reference": "e4bfc88dbcb60c8d8a2939a71f9813e141bbe4cd", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "henrikbjorn/phpspec-code-coverage": "~1.0.1", + "phpspec/phpspec": "~2.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Event\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Event package", + "keywords": [ + "emitter", + "event", + "listener" + ], + "time": "2015-05-21 12:24:47" + }, + { + "name": "league/flysystem", + "version": "1.0.32", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "1b5c4a0031697f46e779a9d1b309c2e1b24daeab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1b5c4a0031697f46e779a9d1b309c2e1b24daeab", + "reference": "1b5c4a0031697f46e779a9d1b309c2e1b24daeab", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "ext-fileinfo": "*", + "mockery/mockery": "~0.9", + "phpspec/phpspec": "^2.2", + "phpunit/phpunit": "~4.8" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-copy": "Allows you to use Copy.com storage", + "league/flysystem-dropbox": "Allows you to use Dropbox storage", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "time": "2016-10-19 20:38:46" + }, + { + "name": "league/fractal", + "version": "0.14.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/fractal.git", + "reference": "56ad8933fbb40328ca3321c84143b2c16186eebf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/fractal/zipball/56ad8933fbb40328ca3321c84143b2c16186eebf", + "reference": "56ad8933fbb40328ca3321c84143b2c16186eebf", + "shasum": "" + }, + "require": { + "php": ">=5.4" + }, + "require-dev": { + "illuminate/contracts": "~5.0", + "mockery/mockery": "~0.9", + "pagerfanta/pagerfanta": "~1.0.0", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5", + "zendframework/zend-paginator": "~2.3" + }, + "suggest": { + "illuminate/pagination": "The Illuminate Pagination component.", + "pagerfanta/pagerfanta": "Pagerfanta Paginator", + "zendframework/zend-paginator": "Zend Framework Paginator" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.13-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Fractal\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Sturgeon", + "email": "me@philsturgeon.uk", + "homepage": "http://philsturgeon.uk/", + "role": "Developer" + } + ], + "description": "Handle the output of complex data structures ready for API output.", + "homepage": "http://fractal.thephpleague.com/", + "keywords": [ + "api", + "json", + "league", + "rest" + ], + "time": "2016-07-21 09:56:14" + }, + { + "name": "league/html-to-markdown", + "version": "4.3.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "c5b05d50c646d4e3cdfcc27b6d5ed62dfaeef4c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/c5b05d50c646d4e3cdfcc27b6d5ed62dfaeef4c1", + "reference": "c5b05d50c646d4e3cdfcc27b6d5ed62dfaeef4c1", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xml": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "~1.1.0", + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1" + }, + "bin": [ + "bin/html-to-markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "http://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", + "keywords": [ + "html", + "markdown" + ], + "time": "2016-10-27 20:05:57" + }, + { + "name": "league/oauth1-client", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/oauth1-client.git", + "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/fca5f160650cb74d23fc11aa570dd61f86dcf647", + "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.0", + "php": ">=5.5.0" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^4.0", + "squizlabs/php_codesniffer": "^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\OAuth1\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Corlett", + "email": "bencorlett@me.com", + "homepage": "http://www.webcomm.com.au", + "role": "Developer" + } + ], + "description": "OAuth 1.0 Client Library", + "keywords": [ + "Authentication", + "SSO", + "authorization", + "bitbucket", + "identity", + "idp", + "oauth", + "oauth1", + "single sign on", + "trello", + "tumblr", + "twitter" + ], + "time": "2016-08-17 00:36:58" + }, + { + "name": "league/oauth2-server", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/oauth2-server.git", + "reference": "f78dc2eca0774ec3958bbcf9b2a23d5ae61fb5aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/f78dc2eca0774ec3958bbcf9b2a23d5ae61fb5aa", + "reference": "f78dc2eca0774ec3958bbcf9b2a23d5ae61fb5aa", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "lcobucci/jwt": "^3.1", + "league/event": "^2.1", + "paragonie/random_compat": "^1.1 || ^2.0", + "php": ">=5.5.9", + "psr/http-message": "^1.0" + }, + "replace": { + "league/oauth2server": "*", + "lncd/oauth2": "*" + }, + "require-dev": { + "indigophp/hash-compat": "^1.1", + "phpunit/phpunit": "^4.8 || ^5.0", + "zendframework/zend-diactoros": "^1.0" + }, + "suggest": { + "indigophp/hash-compat": "Polyfill for hash_equals function for PHP 5.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-V5-WIP": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\OAuth2\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Bilbie", + "email": "hello@alexbilbie.com", + "homepage": "http://www.alexbilbie.com", + "role": "Developer" + } + ], + "description": "A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.", + "homepage": "https://oauth2.thephpleague.com/", + "keywords": [ + "Authentication", + "api", + "auth", + "authorisation", + "authorization", + "oauth", + "oauth 2", + "oauth 2.0", + "oauth2", + "protect", + "resource", + "secure", + "server" + ], + "time": "2016-10-12 14:08:15" + }, + { + "name": "monolog/monolog", + "version": "1.22.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "bad29cb8d18ab0315e6c477751418a82c850d558" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bad29cb8d18ab0315e6c477751418a82c850d558", + "reference": "bad29cb8d18ab0315e6c477751418a82c850d558", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "~5.3" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2016-11-26 00:15:39" + }, + { + "name": "mtdowling/cron-expression", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/mtdowling/cron-expression.git", + "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", + "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Cron": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "time": "2016-01-26 21:23:30" + }, + { + "name": "nesbot/carbon", + "version": "1.21.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7", + "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/translation": "~2.6|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "time": "2015-11-04 20:07:17" + }, + { + "name": "nikic/php-parser", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "adf44419c0fc014a0f191db6f89d3e55d4211744" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/adf44419c0fc014a0f191db6f89d3e55d4211744", + "reference": "adf44419c0fc014a0f191db6f89d3e55d4211744", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2016-12-06 11:30:35" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2016-11-07 23:38:38" + }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "ab8028c93c03cc8d9c824efa75dc94f1db2369bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/ab8028c93c03cc8d9c824efa75dc94f1db2369bf", + "reference": "ab8028c93c03cc8d9c824efa75dc94f1db2369bf", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "~4.0", + "sami/sami": "~2.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "time": "2016-10-04 00:57:04" + }, + { + "name": "predis/predis", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/nrk/predis.git", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "phpunit/phpunit": "~4.8" + }, + "suggest": { + "ext-curl": "Allows access to Webdis when paired with phpiredis", + "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" + }, + "type": "library", + "autoload": { + "psr-4": { + "Predis\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniele Alessandri", + "email": "suppakilla@gmail.com", + "homepage": "http://clorophilla.net" + } + ], + "description": "Flexible and feature-complete Redis client for PHP and HHVM", + "homepage": "http://github.com/nrk/predis", + "keywords": [ + "nosql", + "predis", + "redis" + ], + "time": "2016-06-16 16:22:20" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06 14:39:51" + }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10 12:19:37" + }, + { + "name": "psy/psysh", + "version": "v0.8.0", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "4a8860e13aa68a4bbf2476c014f8a1f14f1bf991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4a8860e13aa68a4bbf2476c014f8a1f14f1bf991", + "reference": "4a8860e13aa68a4bbf2476c014f8a1f14f1bf991", + "shasum": "" + }, + "require": { + "dnoegel/php-xdg-base-dir": "0.1", + "jakub-onderka/php-console-highlighter": "0.3.*", + "nikic/php-parser": "~1.3|~2.0|~3.0", + "php": ">=5.3.9", + "symfony/console": "~2.3.10|^2.4.2|~3.0", + "symfony/var-dumper": "~2.7|~3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~1.11", + "hoa/console": "~3.16|~1.14", + "phpunit/phpunit": "~4.4|~5.0", + "symfony/finder": "~2.1|~3.0" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", + "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.8.x-dev" + } + }, + "autoload": { + "files": [ + "src/Psy/functions.php" + ], + "psr-4": { + "Psy\\": "src/Psy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "time": "2016-12-07 17:15:07" + }, + { + "name": "ramsey/uuid", + "version": "3.5.2", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "5677cfe02397dd6b58c861870dfaa5d9007d3954" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5677cfe02397dd6b58c861870dfaa5d9007d3954", + "reference": "5677cfe02397dd6b58c861870dfaa5d9007d3954", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "^1.0|^2.0", + "php": ">=5.4" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "apigen/apigen": "^4.1", + "codeception/aspect-mock": "1.0.0", + "doctrine/annotations": "~1.2.0", + "goaop/framework": "1.0.0-alpha.2", + "ircmaxell/random-lib": "^1.1", + "jakub-onderka/php-parallel-lint": "^0.9.0", + "mockery/mockery": "^0.9.4", + "moontoast/math": "^1.1", + "php-mock/php-mock-phpunit": "^0.3|^1.1", + "phpunit/phpunit": "^4.7|>=5.0 <5.4", + "satooshi/php-coveralls": "^0.6.1", + "squizlabs/php_codesniffer": "^2.3" + }, + "suggest": { + "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", + "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", + "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marijn Huizendveld", + "email": "marijn.huizendveld@gmail.com" + }, + { + "name": "Thibaud Fabre", + "email": "thibaud@aztech.io" + }, + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", + "homepage": "https://github.com/ramsey/uuid", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "time": "2016-11-22 19:21:44" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.4", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "545ce9136690cea74f98f86fbb9c92dd9ab1a756" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/545ce9136690cea74f98f86fbb9c92dd9ab1a756", + "reference": "545ce9136690cea74f98f86fbb9c92dd9ab1a756", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "http://swiftmailer.org", + "keywords": [ + "email", + "mail", + "mailer" + ], + "time": "2016-11-24 01:01:23" + }, + { + "name": "symfony/console", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "221a60fb2f369a065eea1ed96b61183219fdfa6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/221a60fb2f369a065eea1ed96b61183219fdfa6e", + "reference": "221a60fb2f369a065eea1ed96b61183219fdfa6e", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/debug": "~2.8|~3.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2016-12-08 14:58:14" + }, + { + "name": "symfony/debug", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "c058661c32f5b462722e36d120905940089cbd9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/c058661c32f5b462722e36d120905940089cbd9a", + "reference": "c058661c32f5b462722e36d120905940089cbd9a", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/class-loader": "~2.8|~3.0", + "symfony/http-kernel": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2016-11-15 12:55:20" + }, + { + "name": "symfony/event-dispatcher", + "version": "v3.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e8f47a327c2f0fd5aa04fa60af2b693006ed7283", + "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2016-10-13 06:29:04" + }, + { + "name": "symfony/finder", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "74dcd370c8d057882575e535616fde935e411b19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/74dcd370c8d057882575e535616fde935e411b19", + "reference": "74dcd370c8d057882575e535616fde935e411b19", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2016-12-13 09:38:21" + }, + { + "name": "symfony/http-foundation", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "88a1d3cee2dbd06f7103ff63938743b903b65a92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/88a1d3cee2dbd06f7103ff63938743b903b65a92", + "reference": "88a1d3cee2dbd06f7103ff63938743b903b65a92", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "symfony/expression-language": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2016-11-27 04:21:07" + }, + { + "name": "symfony/http-kernel", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "d7a4671a6f8e4174127770263dcd95bee5713f76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d7a4671a6f8e4174127770263dcd95bee5713f76", + "reference": "d7a4671a6f8e4174127770263dcd95bee5713f76", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/log": "~1.0", + "symfony/debug": "~2.8|~3.0", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/http-foundation": "~2.8.13|~3.1.6|~3.2" + }, + "conflict": { + "symfony/config": "<2.8" + }, + "require-dev": { + "symfony/browser-kit": "~2.8|~3.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0", + "symfony/console": "~2.8|~3.0", + "symfony/css-selector": "~2.8|~3.0", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/dom-crawler": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0", + "symfony/routing": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0", + "symfony/templating": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", + "symfony/var-dumper": "~2.8|~3.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/class-loader": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2016-12-13 12:52:10" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4", + "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2016-11-14 01:06:16" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "1dd42b9b89556f18092f3d1ada22cb05ac85383c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/1dd42b9b89556f18092f3d1ada22cb05ac85383c", + "reference": "1dd42b9b89556f18092f3d1ada22cb05ac85383c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2016-11-14 01:06:16" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "746bce0fca664ac0a575e465f65c6643faddf7fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/746bce0fca664ac0a575e465f65c6643faddf7fb", + "reference": "746bce0fca664ac0a575e465f65c6643faddf7fb", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2016-11-14 01:06:16" + }, + { + "name": "symfony/process", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "d23427a7f97a373129f61bc3b876fe4c66e2b3c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/d23427a7f97a373129f61bc3b876fe4c66e2b3c7", + "reference": "d23427a7f97a373129f61bc3b876fe4c66e2b3c7", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2016-11-24 01:08:05" + }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "66085f246d3893cbdbcec5f5ad15ac60546cf0de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/66085f246d3893cbdbcec5f5ad15ac60546cf0de", + "reference": "66085f246d3893cbdbcec5f5ad15ac60546cf0de", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "psr/http-message": "~1.0", + "symfony/http-foundation": "~2.3|~3.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7|~3.0" + }, + "suggest": { + "psr/http-message-implementation": "To use the HttpFoundation factory", + "zendframework/zend-diactoros": "To use the Zend Diactoros factory" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "PSR HTTP message bridge", + "homepage": "http://symfony.com", + "keywords": [ + "http", + "http-message", + "psr-7" + ], + "time": "2016-09-14 18:37:20" + }, + { + "name": "symfony/routing", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "4beb3dceb14cf2dd63dd222d1825ca981a2952cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/4beb3dceb14cf2dd63dd222d1825ca981a2952cb", + "reference": "4beb3dceb14cf2dd63dd222d1825ca981a2952cb", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "symfony/config": "<2.8" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/dependency-injection": "For loading routes from a service", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2016-11-25 12:27:14" + }, + { + "name": "symfony/translation", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "2f4b6114b75c506dd1ee7eb485b35facbcb2d873" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/2f4b6114b75c506dd1ee7eb485b35facbcb2d873", + "reference": "2f4b6114b75c506dd1ee7eb485b35facbcb2d873", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/intl": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2016-11-18 21:15:08" + }, + { + "name": "symfony/var-dumper", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "5ccbd23a97035886e595ce497dbe94bc88ac0b57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5ccbd23a97035886e595ce497dbe94bc88ac0b57", + "reference": "5ccbd23a97035886e595ce497dbe94bc88ac0b57", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "twig/twig": "~1.20|~2.0" + }, + "suggest": { + "ext-symfony_debug": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2016-12-08 14:58:14" + }, + { + "name": "vlucas/phpdotenv", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", + "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "phpunit/phpunit": "^4.8 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause-Attribution" + ], + "authors": [ + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "http://www.vancelucas.com" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2016-09-01 10:05:43" + }, + { + "name": "yzalis/identicon", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/yzalis/Identicon.git", + "reference": "a99fc2a3d018512f7914bc6f972952536c0f309b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yzalis/Identicon/zipball/a99fc2a3d018512f7914bc6f972952536c0f309b", + "reference": "a99fc2a3d018512f7914bc6f972952536c0f309b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "fzaninotto/faker": "1.2.*@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-0": { + "Identicon": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Benjamin Laugueux", + "email": "benjamin@yzalis.com" + } + ], + "description": "Create awesome unique avatar.", + "homepage": "http://identicon-php.org", + "keywords": [ + "avatar", + "identicon", + "image" + ], + "time": "2014-07-13 09:19:12" + }, + { + "name": "zendframework/zend-diactoros", + "version": "1.3.7", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-diactoros.git", + "reference": "969ff423d3f201da3ff718a5831bb999bb0669b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/969ff423d3f201da3ff718a5831bb999bb0669b0", + "reference": "969ff423d3f201da3ff718a5831bb999bb0669b0", + "shasum": "" + }, + "require": { + "php": "^5.4 || ^7.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "~1.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6 || ^5.5", + "squizlabs/php_codesniffer": "^2.3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev", + "dev-develop": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Diactoros\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "description": "PSR HTTP Message implementations", + "homepage": "https://github.com/zendframework/zend-diactoros", + "keywords": [ + "http", + "psr", + "psr-7" + ], + "time": "2016-10-11 13:25:21" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14 21:17:01" + }, + { + "name": "fzaninotto/faker", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "shasum": "" + }, + "require": { + "php": "^5.3.3|^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "extra": { + "branch-alias": [] + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2016-04-29 12:21:54" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "1.3.3", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "classmap": [ + "hamcrest" + ], + "files": [ + "hamcrest/Hamcrest.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "time": "2015-05-11 14:41:42" + }, + { + "name": "mockery/mockery", + "version": "0.9.7", + "source": { + "type": "git", + "url": "https://github.com/padraic/mockery.git", + "reference": "4de7969f4664da3cef1ccd83866c9f59378c3371" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/padraic/mockery/zipball/4de7969f4664da3cef1ccd83866c9f59378c3371", + "reference": "4de7969f4664da3cef1ccd83866c9f59378c3371", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "~1.1", + "lib-pcre": ">=7.0", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", + "homepage": "http://github.com/padraic/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2016-12-19 14:50:55" + }, + { + "name": "myclabs/deep-copy", + "version": "1.5.5", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/399c1f9781e222f6eb6cc238796f5200d1b7f108", + "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "doctrine/collections": "1.*", + "phpunit/phpunit": "~4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "homepage": "https://github.com/myclabs/DeepCopy", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2016-10-31 17:19:45" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2015-12-27 11:43:31" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", + "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "phpdocumentor/reflection-common": "^1.0@dev", + "phpdocumentor/type-resolver": "^0.2.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2016-09-30 07:12:33" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.2.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", + "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2016-11-25 06:54:22" + }, + { + "name": "phpspec/prophecy", + "version": "v1.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "6c52c2722f8460122f96f86346600e1077ce22cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb", + "reference": "6c52c2722f8460122f96f86346600e1077ce22cb", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", + "sebastian/comparator": "^1.1", + "sebastian/recursion-context": "^1.0|^2.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.0", + "phpunit/phpunit": "^4.8 || ^5.6.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2016-11-21 14:58:47" + }, + { + "name": "phpunit/php-code-coverage", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "c14196e64a78570034afd0b7a9f3757ba71c2a0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c14196e64a78570034afd0b7a9f3757ba71c2a0a", + "reference": "c14196e64a78570034afd0b7a9f3757ba71c2a0a", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "^1.4.2", + "sebastian/code-unit-reverse-lookup": "~1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "~1.0|~2.0" + }, + "require-dev": { + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "^5.4" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.4.0", + "ext-xmlwriter": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2016-12-20 15:22:42" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2016-10-03 07:40:28" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21 13:50:34" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", + "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4|~5" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2016-05-12 18:03:57" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b", + "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2016-11-15 14:06:22" + }, + { + "name": "phpunit/phpunit", + "version": "5.7.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "af91da3f2671006ff5d0628023de3b7ac4d1ef09" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/af91da3f2671006ff5d0628023de3b7ac4d1ef09", + "reference": "af91da3f2671006ff5d0628023de3b7ac4d1ef09", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "~1.3", + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.6.2", + "phpunit/php-code-coverage": "^4.0.3", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "^3.2", + "sebastian/comparator": "~1.2.2", + "sebastian/diff": "~1.2", + "sebastian/environment": "^1.3.4 || ^2.0", + "sebastian/exporter": "~2.0", + "sebastian/global-state": "^1.0 || ^2.0", + "sebastian/object-enumerator": "~2.0", + "sebastian/resource-operations": "~1.0", + "sebastian/version": "~1.0|~2.0", + "symfony/yaml": "~2.1|~3.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.7.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2016-12-13 16:19:44" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", + "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.6 || ^7.0", + "phpunit/php-text-template": "^1.2", + "sebastian/exporter": "^1.2 || ^2.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.4" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2016-12-08 20:27:08" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", + "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "~5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2016-02-13 06:45:14" + }, + { + "name": "sebastian/comparator", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a1ed12e8b2409076ab22e3897126211ff8b1f7f", + "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2016-11-19 09:18:40" + }, + { + "name": "sebastian/diff", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", + "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2015-12-08 07:14:41" + }, + { + "name": "sebastian/environment", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2016-11-26 07:53:53" + }, + { + "name": "sebastian/exporter", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2016-11-19 08:54:04" + }, + { + "name": "sebastian/global-state", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2015-10-12 03:26:01" + }, + { + "name": "sebastian/object-enumerator", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35", + "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2016-11-19 07:35:10" + }, + { + "name": "sebastian/recursion-context", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2016-11-19 07:33:16" + }, + { + "name": "sebastian/resource-operations", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28 20:34:47" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03 07:35:21" + }, + { + "name": "symfony/css-selector", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "a37b3359566415a91cba55a2d95820b3fa1a9658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/a37b3359566415a91cba55a2d95820b3fa1a9658", + "reference": "a37b3359566415a91cba55a2d95820b3fa1a9658", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2016-11-03 08:04:31" + }, + { + "name": "symfony/dom-crawler", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "51e979357eba65b1e6aac7cba75cf5aa6379b8f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/51e979357eba65b1e6aac7cba75cf5aa6379b8f3", + "reference": "51e979357eba65b1e6aac7cba75cf5aa6379b8f3", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "symfony/css-selector": "~2.8|~3.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2016-12-10 14:24:45" + }, + { + "name": "symfony/yaml", + "version": "v3.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "a7095af4b97a0955f85c8989106c249fa649011f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a7095af4b97a0955f85c8989106c249fa649011f", + "reference": "a7095af4b97a0955f85c8989106c249fa649011f", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2016-12-10 10:07:06" + }, + { + "name": "webmozart/assert", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2016-11-23 20:04:58" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.6.4" + }, + "platform-dev": [] +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 000000000..3c63509b3 --- /dev/null +++ b/config/app.php @@ -0,0 +1,234 @@ + env('APPLICATION_NAME') ?: 'PJ Blog', + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services your application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://pigjian.app'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => env('TIMEZONE') ?: 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => env('LOCALE') ?: 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Logging Configuration + |-------------------------------------------------------------------------- + | + | Here you may configure the log settings for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Settings: "single", "daily", "syslog", "errorlog" + | + */ + + 'log' => env('APP_LOG', 'single'), + + 'log_level' => env('APP_LOG_LEVEL', 'debug'), + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + + /* + * Package Service Providers... + */ + Laravel\Passport\PassportServiceProvider::class, + Laravel\Socialite\SocialiteServiceProvider::class, + JellyBool\Translug\TranslugServiceProvider::class, + Intervention\Image\ImageServiceProvider::class, + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\AuthServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + + ], + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => [ + + 'App' => Illuminate\Support\Facades\App::class, + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + 'Auth' => Illuminate\Support\Facades\Auth::class, + 'Blade' => Illuminate\Support\Facades\Blade::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + 'Config' => Illuminate\Support\Facades\Config::class, + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + 'File' => Illuminate\Support\Facades\File::class, + 'Gate' => Illuminate\Support\Facades\Gate::class, + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + 'Mail' => Illuminate\Support\Facades\Mail::class, + 'Notification' => Illuminate\Support\Facades\Notification::class, + 'Password' => Illuminate\Support\Facades\Password::class, + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + 'Schema' => Illuminate\Support\Facades\Schema::class, + 'Session' => Illuminate\Support\Facades\Session::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + 'URL' => Illuminate\Support\Facades\URL::class, + 'Validator' => Illuminate\Support\Facades\Validator::class, + 'View' => Illuminate\Support\Facades\View::class, + 'Socialite' => Laravel\Socialite\Facades\Socialite::class, + 'Translug' => JellyBool\Translug\TranslugFacade::class, + 'Image' => Intervention\Image\Facades\Image::class, + ], + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 000000000..9f706b573 --- /dev/null +++ b/config/auth.php @@ -0,0 +1,106 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session", "token" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + + 'api' => [ + 'driver' => 'passport', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | Here you may set the options for resetting passwords including the view + | that is your password reset e-mail. You may also set the name of the + | table that maintains all of the reset tokens for your application. + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that the reset token should be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_resets', + 'expire' => 60, + ], + ], + +]; diff --git a/config/blog.php b/config/blog.php new file mode 100644 index 000000000..df833b4a1 --- /dev/null +++ b/config/blog.php @@ -0,0 +1,56 @@ + env('DEFAULT_AVATAR') ?: '/images/default.png', + + // Default Icon + 'default_icon' => env('DEFAULT_ICON') ?: '/images/favicon.ico', + + // Social Share + 'social_share' => [ + 'article_share' => env('ARTICLE_SHARE') ?: true, + 'discussion_share' => env('DISCUSSION_SHARE') ?: true, + 'sites' => env('SOCIAL_SHARE_SITES') ?: 'google,twitter,weibo', + 'mobile_sites' => env('SOCIAL_SHARE_MOBILE_SITES') ?: 'google,twitter,weibo,qq,wechat', + ], + + // Google Analytics + 'google' => [ + 'id' => env('GOOGLE_ANALYTICS_ID', 'Google-Analytics-ID'), + 'open' => env('GOOGLE_OPEN') ?: false + ], + + // Article Page + 'article' => [ + 'title' => 'Nothing is impossible.', + 'description' => 'https://pigjian.com', + 'number' => 15, + 'sort' => 'desc', + 'sortColumn' => 'published_at', + ], + + // Discussion Page + 'discussion' => [ + 'number' => 20, + 'sort' => 'desc', + 'sortColumn' => 'created_at', + ], + + // Footer + 'footer' => [ + 'github' => [ + 'open' => true, + 'url' => 'https://github.com/jcc', + ], + 'twitter' => [ + 'open' => true, + 'url' => 'https://twitter.com/pigjian' + ], + 'meta' => '© PJ Blog 2016. Powered By Jiajian Chan', + ], + + 'license' => 'Powered By Jiajian Chan.
This article is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.', + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 000000000..19a59bad9 --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,58 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_KEY'), + 'secret' => env('PUSHER_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + // + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 000000000..7e9c8d1f6 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,91 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing a RAM based store such as APC or Memcached, there might + | be other applications utilizing the same cache. So, we'll specify a + | value to get prefixed to all our keys so we can avoid collisions. + | + */ + + 'prefix' => 'laravel', + +]; diff --git a/config/compile.php b/config/compile.php new file mode 100644 index 000000000..04807eac4 --- /dev/null +++ b/config/compile.php @@ -0,0 +1,35 @@ + [ + // + ], + + /* + |-------------------------------------------------------------------------- + | Compiled File Providers + |-------------------------------------------------------------------------- + | + | Here you may list service providers which define a "compiles" function + | that returns additional files that should be compiled, providing an + | easy way to get common files from any packages you are utilizing. + | + */ + + 'providers' => [ + // + ], + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 000000000..3b8cfa6d9 --- /dev/null +++ b/config/database.php @@ -0,0 +1,128 @@ + PDO::FETCH_OBJ, + + /* + |-------------------------------------------------------------------------- + | Default Database Connection Name + |-------------------------------------------------------------------------- + | + | Here you may specify which of the database connections below you wish + | to use as your default connection for all database work. Of course + | you may use many connections at once using the Database library. + | + */ + + 'default' => env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'collation' => 'utf8_unicode_ci', + 'prefix' => '', + 'strict' => true, + 'engine' => null, + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'schema' => 'public', + 'sslmode' => 'prefer', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer set of commands than a typical key-value systems + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'cluster' => false, + + 'default' => [ + 'host' => env('REDIS_HOST', 'localhost'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', 6379), + 'database' => 0, + ], + + 'session' => [ + 'host' => env('REDIS_HOST', 'localhost'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', 6379), + 'database' => 1, + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 000000000..f43586e40 --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,69 @@ + 'local', + + /* + |-------------------------------------------------------------------------- + | Default Cloud Filesystem Disk + |-------------------------------------------------------------------------- + | + | Many applications store files both locally and in the cloud. For this + | reason, you may specify a default "cloud" driver here. This driver + | will be bound as the Cloud disk implementation in the container. + | + */ + + 'cloud' => 's3', + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', +// 'root' => storage_path('app'), + 'root' => public_path('uploads'), + 'webpath' => '/uploads', + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'visibility' => 'public', + ], + + 's3' => [ + 'driver' => 's3', + 'key' => 'your-key', + 'secret' => 'your-secret', + 'region' => 'your-region', + 'bucket' => 'your-bucket', + ], + + ], + +]; diff --git a/config/image.php b/config/image.php new file mode 100644 index 000000000..b106809e2 --- /dev/null +++ b/config/image.php @@ -0,0 +1,20 @@ + 'gd' + +); diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 000000000..092bcac56 --- /dev/null +++ b/config/mail.php @@ -0,0 +1,115 @@ + env('MAIL_DRIVER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | SMTP Host Address + |-------------------------------------------------------------------------- + | + | Here you may provide the host address of the SMTP server used by your + | applications. A default option is provided that is compatible with + | the Mailgun mail service which will provide reliable deliveries. + | + */ + + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + + /* + |-------------------------------------------------------------------------- + | SMTP Host Port + |-------------------------------------------------------------------------- + | + | This is the SMTP port used by your application to deliver e-mails to + | users of the application. Like the host we have set this value to + | stay compatible with the Mailgun e-mail application by default. + | + */ + + 'port' => env('MAIL_PORT', 587), + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM'), + 'name' => env('MAIL_NAME'), + ], + + /* + |-------------------------------------------------------------------------- + | E-Mail Encryption Protocol + |-------------------------------------------------------------------------- + | + | Here you may specify the encryption protocol that should be used when + | the application send e-mail messages. A sensible default using the + | transport layer security protocol should provide great security. + | + */ + + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + + /* + |-------------------------------------------------------------------------- + | SMTP Server Username + |-------------------------------------------------------------------------- + | + | If your SMTP server requires a username for authentication, you should + | set it here. This will get used to authenticate with your server on + | connection. You may also set the "password" value below this one. + | + */ + + 'username' => env('MAIL_USERNAME'), + + /* + |-------------------------------------------------------------------------- + | SMTP Server Password + |-------------------------------------------------------------------------- + | + | Here you may set the password required by your SMTP server to send out + | messages from your application. This will be given to the server on + | connection so that the application will be able to send messages. + | + */ + + 'password' => env('MAIL_PASSWORD'), + + /* + |-------------------------------------------------------------------------- + | Sendmail System Path + |-------------------------------------------------------------------------- + | + | When using the "sendmail" driver to send e-mails, we will need to know + | the path to where Sendmail lives on this server. A default path has + | been provided here, which will work well on most of your systems. + | + */ + + 'sendmail' => '/usr/sbin/sendmail -bs', + +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 000000000..549322ed9 --- /dev/null +++ b/config/queue.php @@ -0,0 +1,85 @@ + env('QUEUE_DRIVER', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => 'your-public-key', + 'secret' => 'your-secret-key', + 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', + 'queue' => 'your-queue-name', + 'region' => 'us-east-1', + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => 'default', + 'retry_after' => 90, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 000000000..e56627993 --- /dev/null +++ b/config/services.php @@ -0,0 +1,51 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + ], + + 'ses' => [ + 'key' => env('SES_KEY'), + 'secret' => env('SES_SECRET'), + 'region' => 'us-east-1', + ], + + 'sparkpost' => [ + 'secret' => env('SPARKPOST_SECRET'), + ], + + 'stripe' => [ + 'model' => App\User::class, + 'key' => env('STRIPE_KEY'), + 'secret' => env('STRIPE_SECRET'), + ], + + // Third-party login configuration + 'github' => [ + 'client_id' => env('GITHUB_CLIENT_ID'), + 'client_secret' => env('GITHUB_CLIENT_SECRET'), + 'redirect' => env('GITHUB_REDIRECT'), + ], + + // Translation + 'youdao' => [ + 'key' => env('YOUDAO_API_KEY'), + 'from' => env('YOUDAO_KEY_FROM'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 000000000..ace3ef0ef --- /dev/null +++ b/config/session.php @@ -0,0 +1,179 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => 120, + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => null, + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | When using the "apc" or "memcached" session drivers, you may specify a + | cache store that should be used for these sessions. This value must + | correspond with one of the application's configured cache stores. + | + */ + + 'store' => null, + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => 'laravel_session', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN', null), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you if it can not be done securely. + | + */ + + 'secure' => false, + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 000000000..e193ab61d --- /dev/null +++ b/config/view.php @@ -0,0 +1,33 @@ + [ + realpath(base_path('resources/views')), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => realpath(storage_path('framework/views')), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 000000000..9b1dffd90 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php new file mode 100644 index 000000000..7f693ff97 --- /dev/null +++ b/database/factories/ModelFactory.php @@ -0,0 +1,107 @@ +define(App\User::class, function (Faker\Generator $faker) { + static $password; + + return [ + 'name' => $faker->name, + 'email' => $faker->safeEmail, + 'status' => true, + 'confirm_code' => str_random(64), + 'password' => $password ?: $password = bcrypt('secret'), + 'remember_token' => str_random(10), + ]; +}); + +$factory->define(App\Category::class, function (Faker\Generator $faker) { + return [ + 'name' => $faker->name, + 'parent_id' => 0, + 'path' => $faker->url + ]; +}); + +$factory->define(App\Article::class, function (Faker\Generator $faker) { + $user_ids = \App\User::pluck('id')->random(); + $category_ids = \App\Category::pluck('id')->random(); + $title = $faker->sentence(mt_rand(3,10)); + return [ + 'user_id' => $user_ids, + 'category_id' => $category_ids, + 'last_user_id' => $user_ids, + 'slug' => str_slug($title), + 'title' => $title, + 'subtitle' => strtolower($title), + 'content' => $faker->paragraph, + 'page_image' => $faker->imageUrl(), + 'meta_description' => $faker->sentence, + 'is_draft' => false, + 'published_at' => $faker->dateTimeBetween($startDate = '-2 months', $endDate = 'now') + ]; +}); + +$factory->define(App\Tag::class, function (Faker\Generator $faker) { + return [ + 'tag' => $faker->word, + 'title' => $faker->sentence, + 'meta_description' => $faker->sentence, + ]; +}); + +$factory->define(App\Discussion::class, function (Faker\Generator $faker) { + $user_ids = \App\User::pluck('id')->random(); + return [ + 'user_id' => $user_ids, + 'last_user_id' => $user_ids, + 'title' => $faker->sentence, + 'content' => $faker->paragraph, + 'status' => true, + ]; +}); + +$factory->define(App\Comment::class, function (Faker\Generator $faker) { + $user_ids = \App\User::pluck('id')->random(); + $discussion_ids = \App\Discussion::pluck('id')->random(); + $type = ['discussions', 'articles']; + return [ + 'user_id' => $user_ids, + 'commentable_type' => $type[mt_rand(0, 1)], + 'commentable_id' => $discussion_ids, + 'content' => $faker->paragraph + ]; +}); + +$factory->define(App\Link::class, function (Faker\Generator $faker) { + return [ + 'name' => $faker->name, + 'link' => $faker->url, + 'image' => $faker->imageUrl() + ]; +}); + +$factory->define(App\Visitor::class, function (Faker\Generator $faker) { + $article_id = \App\Article::pluck('id')->random(); + $num = $faker->numberBetween(1, 100); + + $article = App\Article::find($article_id); + $article->view_count = $num; + $article->save(); + + return [ + 'article_id' => $article_id, + 'ip' => $faker->ipv4, + 'country' => 'CN', + 'clicks' => $num + ]; +}); diff --git a/database/migrations/.gitkeep b/database/migrations/.gitkeep new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/database/migrations/.gitkeep @@ -0,0 +1 @@ + diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 000000000..174c0c251 --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,49 @@ +increments('id'); + $table->string('name')->unique(); + $table->string('nickname')->nullable(); + $table->text('avatar')->nullable(); + $table->string('email')->unique(); + $table->string('confirm_code', 64)->unique()->nullable(); + $table->tinyInteger('status')->default(false); + $table->boolean('is_admin')->default(false); + $table->string('password'); + $table->string('github_id')->nullable(); + $table->string('github_name')->nullable(); + $table->string('github_url')->nullable(); + $table->string('weibo_name')->nullable(); + $table->string('weibo_link')->nullable(); + $table->string('website')->nullable(); + $table->string('description')->nullable(); + $table->enum('email_notify_enabled', ['yes', 'no'])->default('yes')->index(); + $table->rememberToken(); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('users'); + } +} diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 000000000..bda733dac --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token')->index(); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('password_resets'); + } +} diff --git a/database/migrations/2016_09_02_065857_create_articles_table.php b/database/migrations/2016_09_02_065857_create_articles_table.php new file mode 100644 index 000000000..8abc6d2df --- /dev/null +++ b/database/migrations/2016_09_02_065857_create_articles_table.php @@ -0,0 +1,46 @@ +increments('id'); + $table->integer('category_id')->unsigned(); + $table->integer('user_id')->unsigned(); + $table->integer('last_user_id')->unsigned(); + $table->string('slug')->unique(); + $table->string('title'); + $table->string('subtitle'); + // $table->json('content'); + $table->text('content'); + $table->string('page_image')->nullable(); + $table->string('meta_description')->nullable(); + $table->boolean('is_original')->default(false); + $table->boolean('is_draft')->default(false); + $table->integer('view_count')->unsigned()->default(0)->index(); + $table->timestamp('published_at')->nullable(); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('articles'); + } +} diff --git a/database/migrations/2016_09_02_065920_create_tags_table.php b/database/migrations/2016_09_02_065920_create_tags_table.php new file mode 100644 index 000000000..37cbe5e98 --- /dev/null +++ b/database/migrations/2016_09_02_065920_create_tags_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('tag')->unique(); + $table->string('title'); + $table->string('meta_description'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('tags'); + } +} diff --git a/database/migrations/2016_09_02_065952_create_visitors_table.php b/database/migrations/2016_09_02_065952_create_visitors_table.php new file mode 100644 index 000000000..3166f1a17 --- /dev/null +++ b/database/migrations/2016_09_02_065952_create_visitors_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('article_id')->unsigned(); + $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade'); + $table->string('ip', 32); + $table->string('country')->nullable(); + $table->integer('clicks')->unsigned()->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('visitors'); + } +} diff --git a/database/migrations/2016_09_02_070119_create_categories_table.php b/database/migrations/2016_09_02_070119_create_categories_table.php new file mode 100644 index 000000000..f51059545 --- /dev/null +++ b/database/migrations/2016_09_02_070119_create_categories_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->tinyInteger('parent_id')->unsigned()->default(0); + $table->string('name'); + $table->string('path'); + $table->string('description')->nullable(); + $table->string('image_url')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('categories'); + } +} diff --git a/database/migrations/2016_09_02_070132_create_discussions_table.php b/database/migrations/2016_09_02_070132_create_discussions_table.php new file mode 100644 index 000000000..b30f5d716 --- /dev/null +++ b/database/migrations/2016_09_02_070132_create_discussions_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->integer('user_id')->unsigned(); + $table->integer('last_user_id')->unsigned(); + $table->string('title'); + // $table->json('content'); + $table->text('content'); + $table->tinyInteger('status')->default(false); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('discussions'); + } +} diff --git a/database/migrations/2016_09_02_070151_create_comments_table.php b/database/migrations/2016_09_02_070151_create_comments_table.php new file mode 100644 index 000000000..1d5e15ccb --- /dev/null +++ b/database/migrations/2016_09_02_070151_create_comments_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->integer('user_id')->unsigned(); + $table->integer('commentable_id')->unsigned(); + $table->char('commentable_type'); + // $table->json('content'); + $table->text('content'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('comments'); + } +} diff --git a/database/migrations/2016_09_13_022056_create_links_table.php b/database/migrations/2016_09_13_022056_create_links_table.php new file mode 100644 index 000000000..7f83f4181 --- /dev/null +++ b/database/migrations/2016_09_13_022056_create_links_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->string('name')->index(); + $table->string('link')->index(); + $table->text('image')->nullable(); + $table->boolean('status')->default(true); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('links'); + } +} diff --git a/database/migrations/2016_11_11_163610_create_taggables_table.php b/database/migrations/2016_11_11_163610_create_taggables_table.php new file mode 100644 index 000000000..fa4e68b23 --- /dev/null +++ b/database/migrations/2016_11_11_163610_create_taggables_table.php @@ -0,0 +1,32 @@ +integer('tag_id')->unsigned()->index(); + $table->integer('taggable_id')->unsigned()->index(); + $table->string('taggable_type')->index(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('taggables'); + } +} diff --git a/database/migrations/2016_12_11_153312_create_followers_table.php b/database/migrations/2016_12_11_153312_create_followers_table.php new file mode 100644 index 000000000..62768dc74 --- /dev/null +++ b/database/migrations/2016_12_11_153312_create_followers_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->unsignedInteger('user_id'); + $table->unsignedInteger('follow_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('followers'); + } +} diff --git a/database/migrations/2016_12_12_171655_create_notifications_table.php b/database/migrations/2016_12_12_171655_create_notifications_table.php new file mode 100644 index 000000000..5ca858dd5 --- /dev/null +++ b/database/migrations/2016_12_12_171655_create_notifications_table.php @@ -0,0 +1,34 @@ +uuid('id')->primary(); + $table->string('type'); + $table->morphs('notifiable'); + $table->text('data'); + $table->timestamp('read_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('notifications'); + } +} diff --git a/database/migrations/2016_12_12_205419_create_failed_jobs_table.php b/database/migrations/2016_12_12_205419_create_failed_jobs_table.php new file mode 100644 index 000000000..843b93dc5 --- /dev/null +++ b/database/migrations/2016_12_12_205419_create_failed_jobs_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('failed_jobs'); + } +} diff --git a/database/seeds/.gitkeep b/database/seeds/.gitkeep new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/database/seeds/.gitkeep @@ -0,0 +1 @@ + diff --git a/database/seeds/ArticlesTableSeeder.php b/database/seeds/ArticlesTableSeeder.php new file mode 100644 index 000000000..44ed276f4 --- /dev/null +++ b/database/seeds/ArticlesTableSeeder.php @@ -0,0 +1,17 @@ +create(); + } +} diff --git a/database/seeds/CategoriesTableSeeder.php b/database/seeds/CategoriesTableSeeder.php new file mode 100644 index 000000000..c317b151e --- /dev/null +++ b/database/seeds/CategoriesTableSeeder.php @@ -0,0 +1,17 @@ +create(); + } +} diff --git a/database/seeds/CommentsTableSeeder.php b/database/seeds/CommentsTableSeeder.php new file mode 100644 index 000000000..56d2abeb1 --- /dev/null +++ b/database/seeds/CommentsTableSeeder.php @@ -0,0 +1,17 @@ +create(); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php new file mode 100644 index 000000000..d73a83e04 --- /dev/null +++ b/database/seeds/DatabaseSeeder.php @@ -0,0 +1,23 @@ +call(UsersTableSeeder::class); + $this->call(CategoriesTableSeeder::class); + $this->call(ArticlesTableSeeder::class); + $this->call(DiscussionsTableSeeder::class); + $this->call(CommentsTableSeeder::class); + $this->call(TagsTableSeeder::class); + $this->call(LinksTableSeeder::class); + $this->call(VisitorsTableSeeder::class); + } +} diff --git a/database/seeds/DiscussionsTableSeeder.php b/database/seeds/DiscussionsTableSeeder.php new file mode 100644 index 000000000..8859d8aef --- /dev/null +++ b/database/seeds/DiscussionsTableSeeder.php @@ -0,0 +1,17 @@ +create(); + } +} diff --git a/database/seeds/LinksTableSeeder.php b/database/seeds/LinksTableSeeder.php new file mode 100644 index 000000000..b3564840f --- /dev/null +++ b/database/seeds/LinksTableSeeder.php @@ -0,0 +1,18 @@ +create(); + } +} diff --git a/database/seeds/TagsTableSeeder.php b/database/seeds/TagsTableSeeder.php new file mode 100644 index 000000000..fa3cb222b --- /dev/null +++ b/database/seeds/TagsTableSeeder.php @@ -0,0 +1,18 @@ +create(); + } +} diff --git a/database/seeds/UsersTableSeeder.php b/database/seeds/UsersTableSeeder.php new file mode 100644 index 000000000..c8d7c5a5e --- /dev/null +++ b/database/seeds/UsersTableSeeder.php @@ -0,0 +1,33 @@ + 'admin', + 'email' => 'admin@pigjian.com', + 'password' => Hash::make('admin'), + 'status' => true, + 'is_admin' => true, + 'confirm_code' => str_random(64), + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now() + ] + ]; + + DB::table('users')->insert($users); + + factory(User::class, 10)->create(); + } +} diff --git a/database/seeds/VisitorsTableSeeder.php b/database/seeds/VisitorsTableSeeder.php new file mode 100644 index 000000000..672694082 --- /dev/null +++ b/database/seeds/VisitorsTableSeeder.php @@ -0,0 +1,17 @@ +create(); + } +} diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 000000000..18ec6a899 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,42 @@ +const elixir = require('laravel-elixir'); + +require('laravel-elixir-vue-2'); + +/* + |-------------------------------------------------------------------------- + | Elixir Asset Management + |-------------------------------------------------------------------------- + | + | Elixir provides a clean, fluent API for defining some basic Gulp tasks + | for your Laravel application. By default, we are compiling the Sass + | file for our application, as well as publishing vendor resources. + | + */ + +elixir(mix => { + + mix.sass('app.scss') + .webpack('app.js'); + + mix.sass('home.scss') + .webpack('home.js'); + + mix.sass([ + 'vendor/jcrop.min.css' + ], 'public/css/jcrop.css'); + + mix.scripts([ + 'vendor/jcrop.min.js', + 'vendor/jquery.form.min.js' + ], 'public/js/jcrop.js'); + + mix.version([ + 'public/css/app.css', + 'public/css/home.css', + 'public/css/jcrop.css', + 'public/js/app.js', + 'public/js/home.js', + 'public/js/jcrop.js' + ]); + +}); diff --git a/package.json b/package.json new file mode 100644 index 000000000..307d392d8 --- /dev/null +++ b/package.json @@ -0,0 +1,35 @@ +{ + "private": true, + "scripts": { + "prod": "gulp --production", + "dev": "gulp watch" + }, + "devDependencies": { + "bootstrap-sass": "^3.3.7", + "gulp": "^3.9.1", + "jquery": "^3.1.0", + "laravel-elixir": "^6.0.0-9", + "laravel-elixir-browsersync-official": "^1.0.0", + "laravel-elixir-vue-2": "^0.3.0", + "laravel-elixir-webpack-official": "^1.0.2", + "lodash": "^4.16.2", + "particles.js": "^2.0.0", + "sass-loader": "^4.0.1", + "vue": "^2.1.6", + "vue-resource": "^1.0.3", + "vue-router": "^2.1.1", + "vuex": "^2.1.1" + }, + "dependencies": { + "chart.js": "^2.4.0", + "ionicons": "^2.0.1", + "marked": "^0.3.6", + "simplemde": "^1.11.2", + "social-share.js": "^1.0.15", + "sweetalert": "^1.1.3", + "toastr": "^2.1.2", + "vue-datepicker": "^1.3.0", + "vue-i18n": "^4.8.0", + "vue-multiselect": "^2.0.0-beta.9" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 000000000..712e0af58 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,27 @@ + + + + + ./tests + + + + + ./app + + + + + + + + + diff --git a/public/.DS_Store b/public/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3dcdadf5efb14bed2414de29a80e8e7a9c39e595 GIT binary patch literal 8196 zcmeHM-D(p-6h4!r?ZzPXLTN4+MDQY%{Im^HgeAs{-U$)CP-%CwFh@aI=KX zlEUU$T_`y@ato0lAHY5EY1i?ovtX+Sv;tZIt$CfWy3CAM*gtF(q0O6M>wHYl`fFNGg#j1`%|eH<>x2 zB{2~w=s*M=h}@aT42AIBk!NyqAeKPgY6Y|ciwdyZeGMEKg9m;pe`kTTkM-^kUN}{; zbS6q8HsRdeYMy0m^zacRB!S1wH*G9zvg1qi^!8sTWXa)XA0a9pp+AXB~`dyr5vs~N6dW4k~W|s)$6l{1p nj>yw-#Q7hF*f-IXaV&|6KpesH-(Li%zs&XXpZh>JS5JYTa$bEk literal 0 HcmV?d00001 diff --git a/public/.gitignore b/public/.gitignore new file mode 100644 index 000000000..04805d37e --- /dev/null +++ b/public/.gitignore @@ -0,0 +1,2 @@ +/uploads/avatar +/uploads/links \ No newline at end of file diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 000000000..903f6392c --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,20 @@ + + + Options -MultiViews + + + RewriteEngine On + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^(.*)/$ /$1 [L,R=301] + + # Handle Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + diff --git a/public/build/css/app-1d4afae6e1.css b/public/build/css/app-1d4afae6e1.css new file mode 100644 index 000000000..495b789c2 --- /dev/null +++ b/public/build/css/app-1d4afae6e1.css @@ -0,0 +1,15 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.img-responsive,.img-thumbnail,.table,label{max-width:100%}.CodeMirror-gutter-wrapper,.btn,.editor-toolbar{-webkit-user-select:none;-ms-user-select:none}#toast-container,.form-control-feedback,a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.CodeMirror pre,html{-webkit-tap-highlight-color:transparent}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.btn-danger.dropdown-toggle,.open>.btn-default.dropdown-toggle,.open>.btn-info.dropdown-toggle,.open>.btn-primary.dropdown-toggle,.open>.btn-warning.dropdown-toggle{background-image:none}.img-thumbnail,body{background-color:#f9f9fb}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/bootstrap/glyphicons-halflings-regular.eot);src:url(../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/bootstrap/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/bootstrap/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/bootstrap/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.popover,.tooltip,body{font-family:lato-regular,"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Microsoft YaHei",sans-serif}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.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-lock:before{content:"\e033"}.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-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.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-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.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-bell:before{content:"\e123"}.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-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.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-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px}body{font-size:14px;line-height:1.72222;color:#636b6f}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#34495e;text-decoration:none}a:focus,a:hover{color:#19232d;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.img-responsive{display:block;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.72222;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;height:auto}.img-circle{border-radius:50%}hr{margin-top:24px;margin-bottom:24px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:400;line-height:1.2;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#bdc3c7}.h1,.h2,.h3,h1,h2,h3{margin-top:24px;margin-bottom:12px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:12px;margin-bottom:12px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:48px}.h2,h2{font-size:41px}.h3,h3{font-size:32px}.h4,h4{font-size:23px}.h5,h5{font-size:21px}.h6,h6{font-size:19px}p{margin:0 0 12px}.lead{margin-bottom:24px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.initialism,.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#bdc3c7}.text-primary{color:#34495e}a.text-primary:focus,a.text-primary:hover{color:#22303d}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#34495e}a.bg-primary:focus,a.bg-primary:hover{background-color:#22303d}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:11px;margin:48px 0 24px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:24px}ol,ul{margin-bottom:12px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd,dt{line-height:1.72222}dd{margin-left:0}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dropdown-menu>li>a,.form-horizontal .form-group:after,.ibox,.ibox-content,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.pager:after,.panel-body:after,.row:after{clear:both}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #bdc3c7}.initialism{font-size:90%}blockquote{padding:12px 24px;margin:0 0 24px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.72222;color:#bdc3c7}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{font-style:normal;line-height:1.72222}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;padding:11.5px;margin:0 0 12px;font-size:13px;line-height:1.72222;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container-fluid:after,.container-fluid:before,.container:after,.container:before,.row:after,.row:before{display:table;content:" "}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}caption{padding-top:8px;padding-bottom:8px;color:#bdc3c7}.table{width:100%;margin-bottom:24px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.72222;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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#f9f9fb}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:18px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:24px;font-size:21px;line-height:inherit;color:#636b6f}label{display:inline-block;margin-bottom:5px}.checkbox label,.checkbox-inline,.radio label,.radio-inline{font-weight:400;padding-left:20px;cursor:pointer;margin-bottom:0}input[type=search]{box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.72222;color:#95a5a6;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:41px;padding:6px 12px;background-color:#fff;border:1px solid #dce4ec;border-radius:6px;-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:#6789ab}.form-control::-moz-placeholder{color:#b1b7ba;opacity:1}.form-control:-ms-input-placeholder{color:#b1b7ba}.form-control::-webkit-input-placeholder{color:#b1b7ba}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#f4f6f6;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:41px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm>.input-group-btn>input[type=date].btn,.input-group-sm>.input-group-btn>input[type=time].btn,.input-group-sm>.input-group-btn>input[type=datetime-local].btn,.input-group-sm>.input-group-btn>input[type=month].btn,.input-group-sm>input[type=date].form-control,.input-group-sm>input[type=date].input-group-addon,.input-group-sm>input[type=time].form-control,.input-group-sm>input[type=time].input-group-addon,.input-group-sm>input[type=datetime-local].form-control,.input-group-sm>input[type=datetime-local].input-group-addon,.input-group-sm>input[type=month].form-control,.input-group-sm>input[type=month].input-group-addon,input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg>.input-group-btn>input[type=date].btn,.input-group-lg>.input-group-btn>input[type=time].btn,.input-group-lg>.input-group-btn>input[type=datetime-local].btn,.input-group-lg>.input-group-btn>input[type=month].btn,.input-group-lg>input[type=date].form-control,.input-group-lg>input[type=date].input-group-addon,.input-group-lg>input[type=time].form-control,.input-group-lg>input[type=time].input-group-addon,.input-group-lg>input[type=datetime-local].form-control,.input-group-lg>input[type=datetime-local].input-group-addon,.input-group-lg>input[type=month].form-control,.input-group-lg>input[type=month].input-group-addon,input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:54px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:24px}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;vertical-align:middle}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:38px}.form-control-static.input-lg,.form-control-static.input-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.input-group-sm>.input-group-btn>select.btn,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,select.input-sm{height:30px;line-height:30px}.input-group-sm>.input-group-btn>select[multiple].btn,.input-group-sm>.input-group-btn>textarea.btn,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:36px;padding:6px 10px;font-size:12px;line-height:1.5}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-lg{height:54px;padding:10px 16px;font-size:24px;line-height:1.3333333;border-radius:6px}.input-group-lg>.input-group-btn>select.btn,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,select.input-lg{height:54px;line-height:54px}.input-group-lg>.input-group-btn>select[multiple].btn,.input-group-lg>.input-group-btn>textarea.btn,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:10px 16px;font-size:24px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:48px;padding:11px 16px;font-size:24px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:51.25px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:41px;height:41px;line-height:41px;text-align:center}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-lg+.form-control-feedback{width:54px;height:54px;line-height:54px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:29px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#a4aaae}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:31px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:24px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:200;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.72222;border-radius:4px;-moz-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#636b6f;text-decoration:none}.btn.active,.btn:active{outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#636b6f;background-color:#f1f1f1;border-color:#e4e4e4}.btn-default.focus,.btn-default:focus{color:#636b6f;background-color:#d8d8d8;border-color:#a5a5a5}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#636b6f;background-color:#d8d8d8;border-color:#c6c6c6}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle.focus,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#636b6f;background-color:#c6c6c6;border-color:#a5a5a5}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#f1f1f1;border-color:#e4e4e4}.btn-default .badge{color:#f1f1f1;background-color:#636b6f}.btn-primary{color:#fff;background-color:#34495e;border-color:#32465b}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#22303d;border-color:#050709}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#22303d;border-color:#1c2833}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#151e26;border-color:#050709}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#34495e;border-color:#32465b}.btn-primary .badge{color:#34495e;background-color:#fff}.btn-success{color:#fff;background-color:#1abc9c;border-color:#1abc9c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#148f77;border-color:#0b4c3f}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#148f77;border-color:#13866f}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#0f705d;border-color:#0b4c3f}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#1abc9c;border-color:#1abc9c}.btn-success .badge{color:#1abc9c;background-color:#fff}.btn-info{color:#fff;background-color:#3498db;border-color:#3096da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#217dbb;border-color:#154f76}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#217dbb;border-color:#1f74ae}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#1c699d;border-color:#154f76}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#3498db;border-color:#3096da}.btn-info .badge{color:#3498db;background-color:#fff}.btn-warning{color:#fff;background-color:#f1c40f;border-color:#edc10e}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#c29d0b;border-color:#755f07}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#c29d0b;border-color:#b3920a}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#a08209;border-color:#755f07}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f1c40f;border-color:#edc10e}.btn-warning .badge{color:#f1c40f;background-color:#fff}.btn-danger{color:#fff;background-color:#e74c3c;border-color:#e64837}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d62c1a;border-color:#8d1d11}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#d62c1a;border-color:#c82919}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#b62516;border-color:#8d1d11}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#e74c3c;border-color:#e64837}.btn-danger .badge{color:#e74c3c;background-color:#fff}.btn-link{color:#34495e;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#19232d;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#bdc3c7;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:24px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].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}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#52697f;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.72222;white-space:nowrap}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.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-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:11px 0;overflow:hidden;background-color:#485c70}.dropdown-menu>li>a{font-weight:400;color:#fff}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#1abc9c}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#1abc9c}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#bdc3c7}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{font-size:12px;color:fade(#52697f,60%)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.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{margin-left:-5px}.btn-toolbar:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-group-lg>.btn .caret,.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before{content:" ";display:table}.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:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn,.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group,.input-group-btn,.input-group-btn>.btn{position:relative}.input-group{display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.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:400;line-height:1;color:#95a5a6;text-align:center;background-color:#eee;border:1px solid #dce4ec;border-radius:6px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:24px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav>li,.nav>li>a{display:block;position:relative}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#bdc3c7}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#bdc3c7;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#34495e}.nav .nav-divider{height:1px;margin:11px 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.72222;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:focus,.nav-tabs>li.active>a:hover{color:#95a5a6;background-color:#f9f9fb;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li,.nav-tabs.nav-justified>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#34495e}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#f9f9fb}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:0;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:6px}.navbar-header{float:left}.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-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:18px 15px;font-size:24px;line-height:24px;height:60px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:9px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:24px}@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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:24px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:18px;padding-bottom:18px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:9.5px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.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{margin-bottom:0;border-radius:6px 6px 0 0}.navbar-btn{margin-top:9.5px;margin-bottom:9.5px}.btn-group-sm>.navbar-btn.btn,.navbar-btn.btn-sm{margin-top:15px;margin-bottom:15px}.btn-group-xs>.navbar-btn.btn,.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:18px;margin-bottom:18px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#52697f;border-color:#dadae7}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#1abc9c;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#fff}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#1abc9c;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#fff;background-color:#1abc9c}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#52697f}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#52697f}.navbar-default .navbar-toggle .icon-bar{background-color:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dadae7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#1abc9c;color:#fff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#1abc9c;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#1abc9c}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#fff}.navbar-default .navbar-link:hover{color:#1abc9c}.navbar-default .btn-link{color:#fff}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#1abc9c}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#fff;border-color:#e6e6e6}.navbar-inverse .navbar-brand{color:#52697f}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#1abc9c;background-color:transparent}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .navbar-nav>li>a{color:#52697f}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#1abc9c;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#52697f;background-color:#1abc9c}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#1abc9c;color:#52697f}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#52697f}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#1abc9c;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#52697f;background-color:#1abc9c}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#52697f}.navbar-inverse .navbar-link:hover{color:#1abc9c}.navbar-inverse .btn-link{color:#52697f}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#1abc9c}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:24px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#bdc3c7}.pagination{padding-left:0;margin:24px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.72222;text-decoration:none;color:#34495e;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.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-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#19232d;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#34495e;border-color:#34495e;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#bdc3c7;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:24px;line-height:1.3333333}.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-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.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-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:24px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#bdc3c7;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#bdc3c7}.label-default[href]:focus,.label-default[href]:hover{background-color:#a1aab0}.label-primary{background-color:#34495e}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#22303d}.label-success{background-color:#1abc9c}.label-success[href]:focus,.label-success[href]:hover{background-color:#148f77}.label-info{background-color:#3498db}.label-info[href]:focus,.label-info[href]:hover{background-color:#217dbb}.label-warning{background-color:#f1c40f}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#c29d0b}.label-danger{background-color:#e74c3c}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d62c1a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#bdc3c7;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#34495e;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:24px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.72222;background-color:#f9f9fb;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#636b6f}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#34495e}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:24px;margin-bottom:24px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:24px;color:#fff;text-align:center;background-color:#34495e;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#1abc9c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#3498db}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f1c40f}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#e74c3c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #dadae7}.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}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#bdc3c7;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#bdc3c7}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#34495e;border-color:#34495e}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#98afc6}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:24px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.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;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dadae7;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:24px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #dadae7}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dadae7}.panel-default{border-color:#dadae7}.panel-default>.panel-heading{color:#333;background-color:#fff;border-color:#dadae7}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dadae7}.panel-default>.panel-heading .badge{color:#fff;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dadae7}.panel-primary{border-color:#34495e}.panel-primary>.panel-heading{color:#fff;background-color:#34495e;border-color:#34495e}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#34495e}.panel-primary>.panel-heading .badge{color:#34495e;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#34495e}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#ecf0f1;border-radius:4px}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.popover,.tooltip{font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.72222;text-shadow:none;white-space:normal;word-spacing:normal;word-wrap:normal;text-transform:none;text-decoration:none;word-break:normal}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-content,.popover{background-clip:padding-box}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before{display:table;content:" "}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.72222}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;text-align:left;text-align:start;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;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-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;text-align:start;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);text-align:center}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;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}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{display:block;max-width:100%;height:auto;line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.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;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;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%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:after,.clearfix:before{content:" ";display:table}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}/*! + Ionicons, v2.0.1 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons + + Android-style icons originally built by Google’s + Material Design Icons: https://github.com/google/material-design-icons + used under CC BY http://creativecommons.org/licenses/by/4.0/ + Modified icons to fit ionicon’s grid from original. +*/@font-face{font-family:Ionicons;src:url(../fonts/ionicons.eot?v=2.0.1);src:url(../fonts/ionicons.eot?v=2.0.1#iefix) format("embedded-opentype"),url(../fonts/ionicons.ttf?v=2.0.1) format("truetype"),url(../fonts/ionicons.woff?v=2.0.1) format("woff"),url(../fonts/ionicons.svg?v=2.0.1#Ionicons) format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sweet-alert,.sweet-overlay{position:fixed;display:none}.ion-alert:before{content:""}.ion-alert-circled:before{content:""}.ion-android-add:before{content:""}.ion-android-add-circle:before{content:""}.ion-android-alarm-clock:before{content:""}.ion-android-alert:before{content:""}.ion-android-apps:before{content:""}.ion-android-archive:before{content:""}.ion-android-arrow-back:before{content:""}.ion-android-arrow-down:before{content:""}.ion-android-arrow-dropdown:before{content:""}.ion-android-arrow-dropdown-circle:before{content:""}.ion-android-arrow-dropleft:before{content:""}.ion-android-arrow-dropleft-circle:before{content:""}.ion-android-arrow-dropright:before{content:""}.ion-android-arrow-dropright-circle:before{content:""}.ion-android-arrow-dropup:before{content:""}.ion-android-arrow-dropup-circle:before{content:""}.ion-android-arrow-forward:before{content:""}.ion-android-arrow-up:before{content:""}.ion-android-attach:before{content:""}.ion-android-bar:before{content:""}.ion-android-bicycle:before{content:""}.ion-android-boat:before{content:""}.ion-android-bookmark:before{content:""}.ion-android-bulb:before{content:""}.ion-android-bus:before{content:""}.ion-android-calendar:before{content:""}.ion-android-call:before{content:""}.ion-android-camera:before{content:""}.ion-android-cancel:before{content:""}.ion-android-car:before{content:""}.ion-android-cart:before{content:""}.ion-android-chat:before{content:""}.ion-android-checkbox:before{content:""}.ion-android-checkbox-blank:before{content:""}.ion-android-checkbox-outline:before{content:""}.ion-android-checkbox-outline-blank:before{content:""}.ion-android-checkmark-circle:before{content:""}.ion-android-clipboard:before{content:""}.ion-android-close:before{content:""}.ion-android-cloud:before{content:""}.ion-android-cloud-circle:before{content:""}.ion-android-cloud-done:before{content:""}.ion-android-cloud-outline:before{content:""}.ion-android-color-palette:before{content:""}.ion-android-compass:before{content:""}.ion-android-contact:before{content:""}.ion-android-contacts:before{content:""}.ion-android-contract:before{content:""}.ion-android-create:before{content:""}.ion-android-delete:before{content:""}.ion-android-desktop:before{content:""}.ion-android-document:before{content:""}.ion-android-done:before{content:""}.ion-android-done-all:before{content:""}.ion-android-download:before{content:""}.ion-android-drafts:before{content:""}.ion-android-exit:before{content:""}.ion-android-expand:before{content:""}.ion-android-favorite:before{content:""}.ion-android-favorite-outline:before{content:""}.ion-android-film:before{content:""}.ion-android-folder:before{content:""}.ion-android-folder-open:before{content:""}.ion-android-funnel:before{content:""}.ion-android-globe:before{content:""}.ion-android-hand:before{content:""}.ion-android-hangout:before{content:""}.ion-android-happy:before{content:""}.ion-android-home:before{content:""}.ion-android-image:before{content:""}.ion-android-laptop:before{content:""}.ion-android-list:before{content:""}.ion-android-locate:before{content:""}.ion-android-lock:before{content:""}.ion-android-mail:before{content:""}.ion-android-map:before{content:""}.ion-android-menu:before{content:""}.ion-android-microphone:before{content:""}.ion-android-microphone-off:before{content:""}.ion-android-more-horizontal:before{content:""}.ion-android-more-vertical:before{content:""}.ion-android-navigate:before{content:""}.ion-android-notifications:before{content:""}.ion-android-notifications-none:before{content:""}.ion-android-notifications-off:before{content:""}.ion-android-open:before{content:""}.ion-android-options:before{content:""}.ion-android-people:before{content:""}.ion-android-person:before{content:""}.ion-android-person-add:before{content:""}.ion-android-phone-landscape:before{content:""}.ion-android-phone-portrait:before{content:""}.ion-android-pin:before{content:""}.ion-android-plane:before{content:""}.ion-android-playstore:before{content:""}.ion-android-print:before{content:""}.ion-android-radio-button-off:before{content:""}.ion-android-radio-button-on:before{content:""}.ion-android-refresh:before{content:""}.ion-android-remove:before{content:""}.ion-android-remove-circle:before{content:""}.ion-android-restaurant:before{content:""}.ion-android-sad:before{content:""}.ion-android-search:before{content:""}.ion-android-send:before{content:""}.ion-android-settings:before{content:""}.ion-android-share:before{content:""}.ion-android-share-alt:before{content:""}.ion-android-star:before{content:""}.ion-android-star-half:before{content:""}.ion-android-star-outline:before{content:""}.ion-android-stopwatch:before{content:""}.ion-android-subway:before{content:""}.ion-android-sunny:before{content:""}.ion-android-sync:before{content:""}.ion-android-textsms:before{content:""}.ion-android-time:before{content:""}.ion-android-train:before{content:""}.ion-android-unlock:before{content:""}.ion-android-upload:before{content:""}.ion-android-volume-down:before{content:""}.ion-android-volume-mute:before{content:""}.ion-android-volume-off:before{content:""}.ion-android-volume-up:before{content:""}.ion-android-walk:before{content:""}.ion-android-warning:before{content:""}.ion-android-watch:before{content:""}.ion-android-wifi:before{content:""}.ion-aperture:before{content:""}.ion-archive:before{content:""}.ion-arrow-down-a:before{content:""}.ion-arrow-down-b:before{content:""}.ion-arrow-down-c:before{content:""}.ion-arrow-expand:before{content:""}.ion-arrow-graph-down-left:before{content:""}.ion-arrow-graph-down-right:before{content:""}.ion-arrow-graph-up-left:before{content:""}.ion-arrow-graph-up-right:before{content:""}.ion-arrow-left-a:before{content:""}.ion-arrow-left-b:before{content:""}.ion-arrow-left-c:before{content:""}.ion-arrow-move:before{content:""}.ion-arrow-resize:before{content:""}.ion-arrow-return-left:before{content:""}.ion-arrow-return-right:before{content:""}.ion-arrow-right-a:before{content:""}.ion-arrow-right-b:before{content:""}.ion-arrow-right-c:before{content:""}.ion-arrow-shrink:before{content:""}.ion-arrow-swap:before{content:""}.ion-arrow-up-a:before{content:""}.ion-arrow-up-b:before{content:""}.ion-arrow-up-c:before{content:""}.ion-asterisk:before{content:""}.ion-at:before{content:""}.ion-backspace:before{content:""}.ion-backspace-outline:before{content:""}.ion-bag:before{content:""}.ion-battery-charging:before{content:""}.ion-battery-empty:before{content:""}.ion-battery-full:before{content:""}.ion-battery-half:before{content:""}.ion-battery-low:before{content:""}.ion-beaker:before{content:""}.ion-beer:before{content:""}.ion-bluetooth:before{content:""}.ion-bonfire:before{content:""}.ion-bookmark:before{content:""}.ion-bowtie:before{content:""}.ion-briefcase:before{content:""}.ion-bug:before{content:""}.ion-calculator:before{content:""}.ion-calendar:before{content:""}.ion-camera:before{content:""}.ion-card:before{content:""}.ion-cash:before{content:""}.ion-chatbox:before{content:""}.ion-chatbox-working:before{content:""}.ion-chatboxes:before{content:""}.ion-chatbubble:before{content:""}.ion-chatbubble-working:before{content:""}.ion-chatbubbles:before{content:""}.ion-checkmark:before{content:""}.ion-checkmark-circled:before{content:""}.ion-checkmark-round:before{content:""}.ion-chevron-down:before{content:""}.ion-chevron-left:before{content:""}.ion-chevron-right:before{content:""}.ion-chevron-up:before{content:""}.ion-clipboard:before{content:""}.ion-clock:before{content:""}.ion-close:before{content:""}.ion-close-circled:before{content:""}.ion-close-round:before{content:""}.ion-closed-captioning:before{content:""}.ion-cloud:before{content:""}.ion-code:before{content:""}.ion-code-download:before{content:""}.ion-code-working:before{content:""}.ion-coffee:before{content:""}.ion-compass:before{content:""}.ion-compose:before{content:""}.ion-connection-bars:before{content:""}.ion-contrast:before{content:""}.ion-crop:before{content:""}.ion-cube:before{content:""}.ion-disc:before{content:""}.ion-document:before{content:""}.ion-document-text:before{content:""}.ion-drag:before{content:""}.ion-earth:before{content:""}.ion-easel:before{content:""}.ion-edit:before{content:""}.ion-egg:before{content:""}.ion-eject:before{content:""}.ion-email:before{content:""}.ion-email-unread:before{content:""}.ion-erlenmeyer-flask:before{content:""}.ion-erlenmeyer-flask-bubbles:before{content:""}.ion-eye:before{content:""}.ion-eye-disabled:before{content:""}.ion-female:before{content:""}.ion-filing:before{content:""}.ion-film-marker:before{content:""}.ion-fireball:before{content:""}.ion-flag:before{content:""}.ion-flame:before{content:""}.ion-flash:before{content:""}.ion-flash-off:before{content:""}.ion-folder:before{content:""}.ion-fork:before{content:""}.ion-fork-repo:before{content:""}.ion-forward:before{content:""}.ion-funnel:before{content:""}.ion-gear-a:before{content:""}.ion-gear-b:before{content:""}.ion-grid:before{content:""}.ion-hammer:before{content:""}.ion-happy:before{content:""}.ion-happy-outline:before{content:""}.ion-headphone:before{content:""}.ion-heart:before{content:""}.ion-heart-broken:before{content:""}.ion-help:before{content:""}.ion-help-buoy:before{content:""}.ion-help-circled:before{content:""}.ion-home:before{content:""}.ion-icecream:before{content:""}.ion-image:before{content:""}.ion-images:before{content:""}.ion-information:before{content:""}.ion-information-circled:before{content:""}.ion-ionic:before{content:""}.ion-ios-alarm:before{content:""}.ion-ios-alarm-outline:before{content:""}.ion-ios-albums:before{content:""}.ion-ios-albums-outline:before{content:""}.ion-ios-americanfootball:before{content:""}.ion-ios-americanfootball-outline:before{content:""}.ion-ios-analytics:before{content:""}.ion-ios-analytics-outline:before{content:""}.ion-ios-arrow-back:before{content:""}.ion-ios-arrow-down:before{content:""}.ion-ios-arrow-forward:before{content:""}.ion-ios-arrow-left:before{content:""}.ion-ios-arrow-right:before{content:""}.ion-ios-arrow-thin-down:before{content:""}.ion-ios-arrow-thin-left:before{content:""}.ion-ios-arrow-thin-right:before{content:""}.ion-ios-arrow-thin-up:before{content:""}.ion-ios-arrow-up:before{content:""}.ion-ios-at:before{content:""}.ion-ios-at-outline:before{content:""}.ion-ios-barcode:before{content:""}.ion-ios-barcode-outline:before{content:""}.ion-ios-baseball:before{content:""}.ion-ios-baseball-outline:before{content:""}.ion-ios-basketball:before{content:""}.ion-ios-basketball-outline:before{content:""}.ion-ios-bell:before{content:""}.ion-ios-bell-outline:before{content:""}.ion-ios-body:before{content:""}.ion-ios-body-outline:before{content:""}.ion-ios-bolt:before{content:""}.ion-ios-bolt-outline:before{content:""}.ion-ios-book:before{content:""}.ion-ios-book-outline:before{content:""}.ion-ios-bookmarks:before{content:""}.ion-ios-bookmarks-outline:before{content:""}.ion-ios-box:before{content:""}.ion-ios-box-outline:before{content:""}.ion-ios-briefcase:before{content:""}.ion-ios-briefcase-outline:before{content:""}.ion-ios-browsers:before{content:""}.ion-ios-browsers-outline:before{content:""}.ion-ios-calculator:before{content:""}.ion-ios-calculator-outline:before{content:""}.ion-ios-calendar:before{content:""}.ion-ios-calendar-outline:before{content:""}.ion-ios-camera:before{content:""}.ion-ios-camera-outline:before{content:""}.ion-ios-cart:before{content:""}.ion-ios-cart-outline:before{content:""}.ion-ios-chatboxes:before{content:""}.ion-ios-chatboxes-outline:before{content:""}.ion-ios-chatbubble:before{content:""}.ion-ios-chatbubble-outline:before{content:""}.ion-ios-checkmark:before{content:""}.ion-ios-checkmark-empty:before{content:""}.ion-ios-checkmark-outline:before{content:""}.ion-ios-circle-filled:before{content:""}.ion-ios-circle-outline:before{content:""}.ion-ios-clock:before{content:""}.ion-ios-clock-outline:before{content:""}.ion-ios-close:before{content:""}.ion-ios-close-empty:before{content:""}.ion-ios-close-outline:before{content:""}.ion-ios-cloud:before{content:""}.ion-ios-cloud-download:before{content:""}.ion-ios-cloud-download-outline:before{content:""}.ion-ios-cloud-outline:before{content:""}.ion-ios-cloud-upload:before{content:""}.ion-ios-cloud-upload-outline:before{content:""}.ion-ios-cloudy:before{content:""}.ion-ios-cloudy-night:before{content:""}.ion-ios-cloudy-night-outline:before{content:""}.ion-ios-cloudy-outline:before{content:""}.ion-ios-cog:before{content:""}.ion-ios-cog-outline:before{content:""}.ion-ios-color-filter:before{content:""}.ion-ios-color-filter-outline:before{content:""}.ion-ios-color-wand:before{content:""}.ion-ios-color-wand-outline:before{content:""}.ion-ios-compose:before{content:""}.ion-ios-compose-outline:before{content:""}.ion-ios-contact:before{content:""}.ion-ios-contact-outline:before{content:""}.ion-ios-copy:before{content:""}.ion-ios-copy-outline:before{content:""}.ion-ios-crop:before{content:""}.ion-ios-crop-strong:before{content:""}.ion-ios-download:before{content:""}.ion-ios-download-outline:before{content:""}.ion-ios-drag:before{content:""}.ion-ios-email:before{content:""}.ion-ios-email-outline:before{content:""}.ion-ios-eye:before{content:""}.ion-ios-eye-outline:before{content:""}.ion-ios-fastforward:before{content:""}.ion-ios-fastforward-outline:before{content:""}.ion-ios-filing:before{content:""}.ion-ios-filing-outline:before{content:""}.ion-ios-film:before{content:""}.ion-ios-film-outline:before{content:""}.ion-ios-flag:before{content:""}.ion-ios-flag-outline:before{content:""}.ion-ios-flame:before{content:""}.ion-ios-flame-outline:before{content:""}.ion-ios-flask:before{content:""}.ion-ios-flask-outline:before{content:""}.ion-ios-flower:before{content:""}.ion-ios-flower-outline:before{content:""}.ion-ios-folder:before{content:""}.ion-ios-folder-outline:before{content:""}.ion-ios-football:before{content:""}.ion-ios-football-outline:before{content:""}.ion-ios-game-controller-a:before{content:""}.ion-ios-game-controller-a-outline:before{content:""}.ion-ios-game-controller-b:before{content:""}.ion-ios-game-controller-b-outline:before{content:""}.ion-ios-gear:before{content:""}.ion-ios-gear-outline:before{content:""}.ion-ios-glasses:before{content:""}.ion-ios-glasses-outline:before{content:""}.ion-ios-grid-view:before{content:""}.ion-ios-grid-view-outline:before{content:""}.ion-ios-heart:before{content:""}.ion-ios-heart-outline:before{content:""}.ion-ios-help:before{content:""}.ion-ios-help-empty:before{content:""}.ion-ios-help-outline:before{content:""}.ion-ios-home:before{content:""}.ion-ios-home-outline:before{content:""}.ion-ios-infinite:before{content:""}.ion-ios-infinite-outline:before{content:""}.ion-ios-information:before{content:""}.ion-ios-information-empty:before{content:""}.ion-ios-information-outline:before{content:""}.ion-ios-ionic-outline:before{content:""}.ion-ios-keypad:before{content:""}.ion-ios-keypad-outline:before{content:""}.ion-ios-lightbulb:before{content:""}.ion-ios-lightbulb-outline:before{content:""}.ion-ios-list:before{content:""}.ion-ios-list-outline:before{content:""}.ion-ios-location:before{content:""}.ion-ios-location-outline:before{content:""}.ion-ios-locked:before{content:""}.ion-ios-locked-outline:before{content:""}.ion-ios-loop:before{content:""}.ion-ios-loop-strong:before{content:""}.ion-ios-medical:before{content:""}.ion-ios-medical-outline:before{content:""}.ion-ios-medkit:before{content:""}.ion-ios-medkit-outline:before{content:""}.ion-ios-mic:before{content:""}.ion-ios-mic-off:before{content:""}.ion-ios-mic-outline:before{content:""}.ion-ios-minus:before{content:""}.ion-ios-minus-empty:before{content:""}.ion-ios-minus-outline:before{content:""}.ion-ios-monitor:before{content:""}.ion-ios-monitor-outline:before{content:""}.ion-ios-moon:before{content:""}.ion-ios-moon-outline:before{content:""}.ion-ios-more:before{content:""}.ion-ios-more-outline:before{content:""}.ion-ios-musical-note:before{content:""}.ion-ios-musical-notes:before{content:""}.ion-ios-navigate:before{content:""}.ion-ios-navigate-outline:before{content:""}.ion-ios-nutrition:before{content:""}.ion-ios-nutrition-outline:before{content:""}.ion-ios-paper:before{content:""}.ion-ios-paper-outline:before{content:""}.ion-ios-paperplane:before{content:""}.ion-ios-paperplane-outline:before{content:""}.ion-ios-partlysunny:before{content:""}.ion-ios-partlysunny-outline:before{content:""}.ion-ios-pause:before{content:""}.ion-ios-pause-outline:before{content:""}.ion-ios-paw:before{content:""}.ion-ios-paw-outline:before{content:""}.ion-ios-people:before{content:""}.ion-ios-people-outline:before{content:""}.ion-ios-person:before{content:""}.ion-ios-person-outline:before{content:""}.ion-ios-personadd:before{content:""}.ion-ios-personadd-outline:before{content:""}.ion-ios-photos:before{content:""}.ion-ios-photos-outline:before{content:""}.ion-ios-pie:before{content:""}.ion-ios-pie-outline:before{content:""}.ion-ios-pint:before{content:""}.ion-ios-pint-outline:before{content:""}.ion-ios-play:before{content:""}.ion-ios-play-outline:before{content:""}.ion-ios-plus:before{content:""}.ion-ios-plus-empty:before{content:""}.ion-ios-plus-outline:before{content:""}.ion-ios-pricetag:before{content:""}.ion-ios-pricetag-outline:before{content:""}.ion-ios-pricetags:before{content:""}.ion-ios-pricetags-outline:before{content:""}.ion-ios-printer:before{content:""}.ion-ios-printer-outline:before{content:""}.ion-ios-pulse:before{content:""}.ion-ios-pulse-strong:before{content:""}.ion-ios-rainy:before{content:""}.ion-ios-rainy-outline:before{content:""}.ion-ios-recording:before{content:""}.ion-ios-recording-outline:before{content:""}.ion-ios-redo:before{content:""}.ion-ios-redo-outline:before{content:""}.ion-ios-refresh:before{content:""}.ion-ios-refresh-empty:before{content:""}.ion-ios-refresh-outline:before{content:""}.ion-ios-reload:before{content:""}.ion-ios-reverse-camera:before{content:""}.ion-ios-reverse-camera-outline:before{content:""}.ion-ios-rewind:before{content:""}.ion-ios-rewind-outline:before{content:""}.ion-ios-rose:before{content:""}.ion-ios-rose-outline:before{content:""}.ion-ios-search:before{content:""}.ion-ios-search-strong:before{content:""}.ion-ios-settings:before{content:""}.ion-ios-settings-strong:before{content:""}.ion-ios-shuffle:before{content:""}.ion-ios-shuffle-strong:before{content:""}.ion-ios-skipbackward:before{content:""}.ion-ios-skipbackward-outline:before{content:""}.ion-ios-skipforward:before{content:""}.ion-ios-skipforward-outline:before{content:""}.ion-ios-snowy:before{content:""}.ion-ios-speedometer:before{content:""}.ion-ios-speedometer-outline:before{content:""}.ion-ios-star:before{content:""}.ion-ios-star-half:before{content:""}.ion-ios-star-outline:before{content:""}.ion-ios-stopwatch:before{content:""}.ion-ios-stopwatch-outline:before{content:""}.ion-ios-sunny:before{content:""}.ion-ios-sunny-outline:before{content:""}.ion-ios-telephone:before{content:""}.ion-ios-telephone-outline:before{content:""}.ion-ios-tennisball:before{content:""}.ion-ios-tennisball-outline:before{content:""}.ion-ios-thunderstorm:before{content:""}.ion-ios-thunderstorm-outline:before{content:""}.ion-ios-time:before{content:""}.ion-ios-time-outline:before{content:""}.ion-ios-timer:before{content:""}.ion-ios-timer-outline:before{content:""}.ion-ios-toggle:before{content:""}.ion-ios-toggle-outline:before{content:""}.ion-ios-trash:before{content:""}.ion-ios-trash-outline:before{content:""}.ion-ios-undo:before{content:""}.ion-ios-undo-outline:before{content:""}.ion-ios-unlocked:before{content:""}.ion-ios-unlocked-outline:before{content:""}.ion-ios-upload:before{content:""}.ion-ios-upload-outline:before{content:""}.ion-ios-videocam:before{content:""}.ion-ios-videocam-outline:before{content:""}.ion-ios-volume-high:before{content:""}.ion-ios-volume-low:before{content:""}.ion-ios-wineglass:before{content:""}.ion-ios-wineglass-outline:before{content:""}.ion-ios-world:before{content:""}.ion-ios-world-outline:before{content:""}.ion-ipad:before{content:""}.ion-iphone:before{content:""}.ion-ipod:before{content:""}.ion-jet:before{content:""}.ion-key:before{content:""}.ion-knife:before{content:""}.ion-laptop:before{content:""}.ion-leaf:before{content:""}.ion-levels:before{content:""}.ion-lightbulb:before{content:""}.ion-link:before{content:""}.ion-load-a:before{content:""}.ion-load-b:before{content:""}.ion-load-c:before{content:""}.ion-load-d:before{content:""}.ion-location:before{content:""}.ion-lock-combination:before{content:""}.ion-locked:before{content:""}.ion-log-in:before{content:""}.ion-log-out:before{content:""}.ion-loop:before{content:""}.ion-magnet:before{content:""}.ion-male:before{content:""}.ion-man:before{content:""}.ion-map:before{content:""}.ion-medkit:before{content:""}.ion-merge:before{content:""}.ion-mic-a:before{content:""}.ion-mic-b:before{content:""}.ion-mic-c:before{content:""}.ion-minus:before{content:""}.ion-minus-circled:before{content:""}.ion-minus-round:before{content:""}.ion-model-s:before{content:""}.ion-monitor:before{content:""}.ion-more:before{content:""}.ion-mouse:before{content:""}.ion-music-note:before{content:""}.ion-navicon:before{content:""}.ion-navicon-round:before{content:""}.ion-navigate:before{content:""}.ion-network:before{content:""}.ion-no-smoking:before{content:""}.ion-nuclear:before{content:""}.ion-outlet:before{content:""}.ion-paintbrush:before{content:""}.ion-paintbucket:before{content:""}.ion-paper-airplane:before{content:""}.ion-paperclip:before{content:""}.ion-pause:before{content:""}.ion-person:before{content:""}.ion-person-add:before{content:""}.ion-person-stalker:before{content:""}.ion-pie-graph:before{content:""}.ion-pin:before{content:""}.ion-pinpoint:before{content:""}.ion-pizza:before{content:""}.ion-plane:before{content:""}.ion-planet:before{content:""}.ion-play:before{content:""}.ion-playstation:before{content:""}.ion-plus:before{content:""}.ion-plus-circled:before{content:""}.ion-plus-round:before{content:""}.ion-podium:before{content:""}.ion-pound:before{content:""}.ion-power:before{content:""}.ion-pricetag:before{content:""}.ion-pricetags:before{content:""}.ion-printer:before{content:""}.ion-pull-request:before{content:""}.ion-qr-scanner:before{content:""}.ion-quote:before{content:""}.ion-radio-waves:before{content:""}.ion-record:before{content:""}.ion-refresh:before{content:""}.ion-reply:before{content:""}.ion-reply-all:before{content:""}.ion-ribbon-a:before{content:""}.ion-ribbon-b:before{content:""}.ion-sad:before{content:""}.ion-sad-outline:before{content:""}.ion-scissors:before{content:""}.ion-search:before{content:""}.ion-settings:before{content:""}.ion-share:before{content:""}.ion-shuffle:before{content:""}.ion-skip-backward:before{content:""}.ion-skip-forward:before{content:""}.ion-social-android:before{content:""}.ion-social-android-outline:before{content:""}.ion-social-angular:before{content:""}.ion-social-angular-outline:before{content:""}.ion-social-apple:before{content:""}.ion-social-apple-outline:before{content:""}.ion-social-bitcoin:before{content:""}.ion-social-bitcoin-outline:before{content:""}.ion-social-buffer:before{content:""}.ion-social-buffer-outline:before{content:""}.ion-social-chrome:before{content:""}.ion-social-chrome-outline:before{content:""}.ion-social-codepen:before{content:""}.ion-social-codepen-outline:before{content:""}.ion-social-css3:before{content:""}.ion-social-css3-outline:before{content:""}.ion-social-designernews:before{content:""}.ion-social-designernews-outline:before{content:""}.ion-social-dribbble:before{content:""}.ion-social-dribbble-outline:before{content:""}.ion-social-dropbox:before{content:""}.ion-social-dropbox-outline:before{content:""}.ion-social-euro:before{content:""}.ion-social-euro-outline:before{content:""}.ion-social-facebook:before{content:""}.ion-social-facebook-outline:before{content:""}.ion-social-foursquare:before{content:""}.ion-social-foursquare-outline:before{content:""}.ion-social-freebsd-devil:before{content:""}.ion-social-github:before{content:""}.ion-social-github-outline:before{content:""}.ion-social-google:before{content:""}.ion-social-google-outline:before{content:""}.ion-social-googleplus:before{content:""}.ion-social-googleplus-outline:before{content:""}.ion-social-hackernews:before{content:""}.ion-social-hackernews-outline:before{content:""}.ion-social-html5:before{content:""}.ion-social-html5-outline:before{content:""}.ion-social-instagram:before{content:""}.ion-social-instagram-outline:before{content:""}.ion-social-javascript:before{content:""}.ion-social-javascript-outline:before{content:""}.ion-social-linkedin:before{content:""}.ion-social-linkedin-outline:before{content:""}.ion-social-markdown:before{content:""}.ion-social-nodejs:before{content:""}.ion-social-octocat:before{content:""}.ion-social-pinterest:before{content:""}.ion-social-pinterest-outline:before{content:""}.ion-social-python:before{content:""}.ion-social-reddit:before{content:""}.ion-social-reddit-outline:before{content:""}.ion-social-rss:before{content:""}.ion-social-rss-outline:before{content:""}.ion-social-sass:before{content:""}.ion-social-skype:before{content:""}.ion-social-skype-outline:before{content:""}.ion-social-snapchat:before{content:""}.ion-social-snapchat-outline:before{content:""}.ion-social-tumblr:before{content:""}.ion-social-tumblr-outline:before{content:""}.ion-social-tux:before{content:""}.ion-social-twitch:before{content:""}.ion-social-twitch-outline:before{content:""}.ion-social-twitter:before{content:""}.ion-social-twitter-outline:before{content:""}.ion-social-usd:before{content:""}.ion-social-usd-outline:before{content:""}.ion-social-vimeo:before{content:""}.ion-social-vimeo-outline:before{content:""}.ion-social-whatsapp:before{content:""}.ion-social-whatsapp-outline:before{content:""}.ion-social-windows:before{content:""}.ion-social-windows-outline:before{content:""}.ion-social-wordpress:before{content:""}.ion-social-wordpress-outline:before{content:""}.ion-social-yahoo:before{content:""}.ion-social-yahoo-outline:before{content:""}.ion-social-yen:before{content:""}.ion-social-yen-outline:before{content:""}.ion-social-youtube:before{content:""}.ion-social-youtube-outline:before{content:""}.ion-soup-can:before{content:""}.ion-soup-can-outline:before{content:""}.ion-speakerphone:before{content:""}.ion-speedometer:before{content:""}.ion-spoon:before{content:""}.ion-star:before{content:""}.ion-stats-bars:before{content:""}.ion-steam:before{content:""}.ion-stop:before{content:""}.ion-thermometer:before{content:""}.ion-thumbsdown:before{content:""}.ion-thumbsup:before{content:""}.ion-toggle:before{content:""}.ion-toggle-filled:before{content:""}.ion-transgender:before{content:""}.ion-trash-a:before{content:""}.ion-trash-b:before{content:""}.ion-trophy:before{content:""}.ion-tshirt:before{content:""}.ion-tshirt-outline:before{content:""}.ion-umbrella:before{content:""}.ion-university:before{content:""}.ion-unlocked:before{content:""}.ion-upload:before{content:""}.ion-usb:before{content:""}.ion-videocamera:before{content:""}.ion-volume-high:before{content:""}.ion-volume-low:before{content:""}.ion-volume-medium:before{content:""}.ion-volume-mute:before{content:""}.ion-wand:before{content:""}.ion-waterdrop:before{content:""}.ion-wifi:before{content:""}.ion-wineglass:before{content:""}.ion-woman:before{content:""}.ion-wrench:before{content:""}.ion-xbox:before{content:""}body.stop-scrolling{height:100%;overflow:hidden}.sweet-overlay{background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";background-color:rgba(0,0,0,.4);left:0;right:0;top:0;bottom:0;z-index:10000}.sweet-alert{background-color:#fff;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;width:478px;padding:17px;border-radius:5px;text-align:center;left:50%;top:50%;margin-left:-256px;margin-top:-200px;overflow:hidden;z-index:99999}@media all and (max-width:540px){.sweet-alert{width:auto;margin-left:0;margin-right:0;left:15px;right:15px}}.sweet-alert h2{color:#575757;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:25px 0;padding:0;line-height:40px;display:block}.sweet-alert p{color:#797979;font-size:16px;font-weight:300;position:relative;text-align:inherit;float:none;margin:0;padding:0;line-height:normal}.sweet-alert fieldset{border:none;position:relative}.sweet-alert .sa-error-container{background-color:#f1f1f1;margin-left:-17px;margin-right:-17px;overflow:hidden;padding:0 10px;max-height:0;webkit-transition:padding .15s,max-height .15s;-webkit-transition:padding .15s,max-height .15s;transition:padding .15s,max-height .15s}.sweet-alert .sa-error-container.show{padding:10px 0;max-height:100px;webkit-transition:padding .2s,max-height .2s;-webkit-transition:padding .25s,max-height .25s;transition:padding .25s,max-height .25s}.sweet-alert .sa-error-container .icon{display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:#fff;line-height:24px;text-align:center;margin-right:3px}.sweet-alert .sa-error-container p{display:inline-block}.sweet-alert .sa-input-error{position:absolute;top:29px;right:26px;width:20px;height:20px;opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:all .1s;transition:all .1s}.sweet-alert .sa-input-error::after,.sweet-alert .sa-input-error::before{content:"";width:20px;height:6px;background-color:#f06e57;border-radius:3px;position:absolute;top:50%;margin-top:-4px;left:50%;margin-left:-9px}.sweet-alert .sa-input-error::before{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-alert .sa-input-error::after{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-alert .sa-input-error.show{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.sweet-alert input{width:100%;box-sizing:border-box;border-radius:3px;border:1px solid #d7d7d7;height:43px;margin-top:10px;margin-bottom:17px;font-size:18px;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);padding:0 12px;display:none;-webkit-transition:all .3s;transition:all .3s}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer,.sweet-alert .sa-icon{box-sizing:content-box}.sweet-alert input:focus{outline:0;box-shadow:0 0 3px #c4e6f5;border:1px solid #b4dbed}.sweet-alert input:focus::-moz-placeholder{-webkit-transition:opacity .3s 30ms ease;transition:opacity .3s 30ms ease;opacity:.5}.sweet-alert input:focus:-ms-input-placeholder{-webkit-transition:opacity .3s 30ms ease;transition:opacity .3s 30ms ease;opacity:.5}.sweet-alert input:focus::-webkit-input-placeholder{-webkit-transition:opacity .3s 30ms ease;transition:opacity .3s 30ms ease;opacity:.5}.sweet-alert input::-moz-placeholder{color:#bdbdbd}.sweet-alert input:-ms-input-placeholder{color:#bdbdbd}.sweet-alert input::-webkit-input-placeholder{color:#bdbdbd}.sweet-alert.show-input input{display:block}.sweet-alert .sa-confirm-button-container{display:inline-block;position:relative}.sweet-alert .la-ball-fall{position:absolute;left:50%;top:50%;margin-left:-27px;margin-top:4px;opacity:0;visibility:hidden}.sweet-alert button{background-color:#8CD4F5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}.cm-header,.cm-strong,.toast-title{font-weight:700}.sweet-alert button:focus{outline:0;box-shadow:0 0 2px rgba(128,179,235,.5),inset 0 0 0 1px rgba(0,0,0,.05)}.sweet-alert button:hover{background-color:#7ecff4}.sweet-alert button:active{background-color:#5dc2f1}.sweet-alert button.cancel{background-color:#C1C1C1}.sweet-alert button.cancel:hover{background-color:#b9b9b9}.sweet-alert button.cancel:active{background-color:#a8a8a8}.sweet-alert button.cancel:focus{box-shadow:rgba(197,205,211,.8) 0 0 2px,rgba(0,0,0,.0470588) 0 0 0 1px inset!important}.sweet-alert button[disabled]{opacity:.6;cursor:default}.sweet-alert button.confirm[disabled]{color:transparent}.sweet-alert button.confirm[disabled]~.la-ball-fall{opacity:1;visibility:visible;-webkit-transition-delay:0s;transition-delay:0s}.sweet-alert button::-moz-focus-inner{border:0}.sweet-alert[data-has-cancel-button=false] button{box-shadow:none!important}.sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false]{padding-bottom:40px}.sweet-alert .sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;margin:20px auto;padding:0;position:relative}.sweet-alert .sa-icon.sa-error{border-color:#F27474}.sweet-alert .sa-icon.sa-error .sa-x-mark{position:relative;display:block}.sweet-alert .sa-icon.sa-error .sa-line{position:absolute;height:5px;width:47px;background-color:#F27474;display:block;top:37px;border-radius:2px}.sweet-alert .sa-icon.sa-error .sa-line.sa-left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.sweet-alert .sa-icon.sa-error .sa-line.sa-right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.sweet-alert .sa-icon.sa-warning{border-color:#F8BB86}.sweet-alert .sa-icon.sa-warning .sa-body{position:absolute;width:5px;height:47px;left:50%;top:10px;border-radius:2px;margin-left:-2px;background-color:#F8BB86}.sweet-alert .sa-icon.sa-warning .sa-dot{position:absolute;width:7px;height:7px;border-radius:50%;margin-left:-3px;left:50%;bottom:10px;background-color:#F8BB86}.sweet-alert .sa-icon.sa-info::after,.sweet-alert .sa-icon.sa-info::before{content:"";background-color:#C9DAE1;position:absolute}.sweet-alert .sa-icon.sa-info{border-color:#C9DAE1}.sweet-alert .sa-icon.sa-info::before{width:5px;height:29px;left:50%;bottom:17px;border-radius:2px;margin-left:-2px}.sweet-alert .sa-icon.sa-info::after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.sweet-alert .sa-icon.sa-success{border-color:#A5DC86}.sweet-alert .sa-icon.sa-success::after,.sweet-alert .sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sweet-alert .sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.sweet-alert .sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.sweet-alert .sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(165,220,134,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sweet-alert .sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-alert .sa-icon.sa-success .sa-line{height:5px;background-color:#A5DC86;display:block;border-radius:2px;position:absolute;z-index:2}.sweet-alert .sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-alert .sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-alert .sa-icon.sa-custom{background-size:contain;border-radius:0;border:none;background-position:center center;background-repeat:no-repeat}@-webkit-keyframes showSweetAlert{0%{transform:scale(.7);-webkit-transform:scale(.7)}45%{transform:scale(1.05);-webkit-transform:scale(1.05)}80%{transform:scale(.95);-webkit-transform:scale(.95)}100%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes showSweetAlert{0%{transform:scale(.7);-webkit-transform:scale(.7)}45%{transform:scale(1.05);-webkit-transform:scale(1.05)}80%{transform:scale(.95);-webkit-transform:scale(.95)}100%{transform:scale(1);-webkit-transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{transform:scale(1);-webkit-transform:scale(1)}100%{transform:scale(.5);-webkit-transform:scale(.5)}}@keyframes hideSweetAlert{0%{transform:scale(1);-webkit-transform:scale(1)}100%{transform:scale(.5);-webkit-transform:scale(.5)}}@-webkit-keyframes slideFromTop{0%{top:0}100%{top:50%}}@keyframes slideFromTop{0%{top:0}100%{top:50%}}@-webkit-keyframes slideToTop{0%{top:50%}100%{top:0}}@keyframes slideToTop{0%{top:50%}100%{top:0}}@-webkit-keyframes slideFromBottom{0%{top:70%}100%{top:50%}}@keyframes slideFromBottom{0%{top:70%}100%{top:50%}}@-webkit-keyframes slideToBottom{0%{top:50%}100%{top:70%}}@keyframes slideToBottom{0%{top:50%}100%{top:70%}}.showSweetAlert[data-animation=pop]{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.showSweetAlert[data-animation=none]{-webkit-animation:none;animation:none}.showSweetAlert[data-animation=slide-from-top]{-webkit-animation:slideFromTop .3s;animation:slideFromTop .3s}.showSweetAlert[data-animation=slide-from-bottom]{-webkit-animation:slideFromBottom .3s;animation:slideFromBottom .3s}.hideSweetAlert[data-animation=pop]{-webkit-animation:hideSweetAlert .2s;animation:hideSweetAlert .2s}.hideSweetAlert[data-animation=none]{-webkit-animation:none;animation:none}.hideSweetAlert[data-animation=slide-from-top]{-webkit-animation:slideToTop .4s;animation:slideToTop .4s}.hideSweetAlert[data-animation=slide-from-bottom]{-webkit-animation:slideToBottom .3s;animation:slideToBottom .3s}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}.animateSuccessTip{-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.animateSuccessLong{-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}.sa-icon.sa-success.animate::after{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animateErrorIcon{0%{transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);-webkit-transform:rotateX(0);opacity:1}}@keyframes animateErrorIcon{0%{transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);-webkit-transform:rotateX(0);opacity:1}}.animateErrorIcon{-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}@-webkit-keyframes animateXMark{0%,50%{transform:scale(.4);-webkit-transform:scale(.4);margin-top:26px;opacity:0}80%{transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px}100%{transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%,50%{transform:scale(.4);-webkit-transform:scale(.4);margin-top:26px;opacity:0}80%{transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px}100%{transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1}}.animateXMark{-webkit-animation:animateXMark .5s;animation:animateXMark .5s}@-webkit-keyframes pulseWarning{0%{border-color:#F8D486}100%{border-color:#F8BB86}}@keyframes pulseWarning{0%{border-color:#F8D486}100%{border-color:#F8BB86}}.pulseWarning{-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}@-webkit-keyframes pulseWarningIns{0%{background-color:#F8D486}100%{background-color:#F8BB86}}@keyframes pulseWarningIns{0%{background-color:#F8D486}100%{background-color:#F8BB86}}.pulseWarningIns{-webkit-animation:pulseWarningIns .75s infinite alternate;animation:pulseWarningIns .75s infinite alternate}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-top-center,.toast-top-full-width{top:0;right:0;width:100%}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;box-shadow:0 0 12px #999;color:#fff}#toast-container>:hover{box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.CodeMirror{color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:auto;min-height:300px;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:1}.CodeMirror-scroll{min-height:300px}.CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:9}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:relative;opacity:.6;-moz-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:' ';height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-webkit-gradient(linear,left top,right top,color-stop(0,#fff),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:#2c3e50!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-preview-side>p,.editor-preview>p,.ibox{margin-top:0}.editor-toolbar a.fa-header-x:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"▲"}.editor-toolbar a.fa-header-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:#fff;border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px;background:#fafafa;overflow:auto;display:none;box-sizing:border-box}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;border:1px solid #ddd}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}.form-control,.form-control:focus,input{border-width:2px;box-shadow:none;outline:0}.navbar-collapse,.well,legend{border:none}.well{box-shadow:none}.ibox-default,.ibox-title{border-color:#e7eaec}.ibox-content,.ibox-title{background-color:#fff;color:inherit;-o-border-image:none;border-image:none;border-style:solid solid none}.ibox{margin-bottom:25px;padding:0}.ibox-title{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;border-width:2px 0 0;margin-bottom:0;padding:15px 15px 7px;min-height:48px}.ibox-success{border-color:#1abc9c}.ibox-warning{border-color:#f1c40f}.ibox-danger{border-color:#e74c3c}.ibox-content{padding:15px 20px 20px;border-color:#e7eaec;border-width:1px 0}.no-padding{padding:0}.toast-success{background-color:#1abc9c}.toast-error{background-color:#e74c3c}.toast-info{background-color:#597289}.toast-warning{background-color:#f1c40f}#toast-container>div{opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=90);filter:alpha(opacity=90)}.togglebutton{vertical-align:middle}.togglebutton,.togglebutton .toggle,.togglebutton input,.togglebutton label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.togglebutton label{cursor:pointer;color:rgba(0,0,0,.26)}.togglebutton label input[type=checkbox]{opacity:0;width:0;height:0}.togglebutton label .toggle{text-align:left}.togglebutton label .toggle,.togglebutton label input[type=checkbox][disabled]+.toggle{content:"";display:inline-block;width:40px;height:18px;background-color:rgba(80,80,80,.7);border-radius:15px;margin-right:15px;-webkit-transition:background .3s ease;transition:background .3s ease;vertical-align:middle}.togglebutton label .toggle:after{content:"";display:inline-block;width:25px;height:25px;background-color:#F1F1F1;border-radius:20px;position:relative;box-shadow:0 1px 3px 1px rgba(0,0,0,.4);left:-5px;top:-4px;-webkit-transition:left .3s ease,background .3s ease,box-shadow .1s ease;transition:left .3s ease,background .3s ease,box-shadow .1s ease}.togglebutton label input[type=checkbox][disabled]+.toggle:after,.togglebutton label input[type=checkbox][disabled]:checked+.toggle:after{background-color:#BDBDBD}.togglebutton label input[type=checkbox]+.toggle:active:after,.togglebutton label input[type=checkbox][disabled]+.toggle:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(0,0,0,.1)}.togglebutton label input[type=checkbox]:checked+.toggle{background-color:rgba(26,188,156,.5)}.togglebutton label input[type=checkbox]:checked+.toggle:after{left:20px;background-color:#1abc9c}.togglebutton label input[type=checkbox]:checked+.toggle:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(26,188,156,.1)}.width-5-percent{width:5%}.width-10-percent{width:10%}.no-margin{margin:0!important} \ No newline at end of file diff --git a/public/build/css/app.css.map b/public/build/css/app.css.map new file mode 100644 index 000000000..1f38d2949 --- /dev/null +++ b/public/build/css/app.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["app.css","../../../node_modules/bootstrap-sass/assets/stylesheets/_bootstrap.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_normalize.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_print.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_glyphicons.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_scaffolding.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","variables.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_image.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_background-variant.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_clearfix.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-overflow.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_code.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_grid.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid-framework.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_tables.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_table-row.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_forms.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_forms.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_buttons.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_buttons.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_component-animations.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_dropdowns.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-divider.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-filter.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_button-groups.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_border-radius.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_input-groups.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_navs.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_navbar.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_breadcrumbs.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_pagination.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_pagination.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_pager.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_labels.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_labels.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_badges.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_jumbotron.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_thumbnails.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_alerts.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_alerts.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_progress-bars.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_gradients.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_progress-bar.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_media.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_list-group.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_list-group.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_panels.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_panels.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-embed.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_wells.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_close.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_modals.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_tooltip.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-text.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_popovers.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_carousel.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_utilities.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_center-block.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_hide-text.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-utilities.scss","../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss","../../../node_modules/ionicons/scss/ionicons.scss","../../../node_modules/ionicons/scss/_ionicons-font.scss","../../../node_modules/ionicons/scss/_ionicons-variables.scss","../../../node_modules/ionicons/scss/_ionicons-icons.scss","../../../node_modules/sweetalert/dev/sweetalert.scss","vendor/toastr.min.css","vendor/simplemde.min.css","_form.scss","_navbar.scss","_ibox.scss","_toastr.scss","_togglebutton.scss","app.scss"],"names":[],"mappings":"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AiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AASpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBAAiB,EAAI;;AACpE;EAA+C,iBA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;;;IAUI,gBAAgB;IAChB,iBAAiB,EAClB;;ACxPD;;;EACE,afkJmC;EejJnC,kBf6B4B;Ee5B5B,gBfpB0B;EeqB1B,iBfiC2B;EehC3B,mBhBH2B,EgBI5B;;AAED;;;EACE,af0ImC;EezInC,kBfyImC,EexIpC;;AAED;;;;;;;EACE,aAAa,EACd;;ADsPH;EAEI,adpHmC;EcqHnC,kBdzO4B;Ec0O5B,gBd1R0B;Ec2R1B,iBdrO2B;EcsO3B,mBfzQ2B,Ee0Q5B;;AAPH;EASI,ad3HmC;Ec4HnC,kBd5HmC,Ec6HpC;;AAXH;;EAcI,aAAa,EACd;;AAfH;EAiBI,adnImC;EcoInC,iBAAkC;EAClC,kBdzP4B;Ec0P5B,gBd1S0B;Ec2S1B,iBdrP2B,EcsP5B;;AC3RD;;;EACE,afgJkC;Ee/IlC,mBf0B4B;EezB5B,gBhBzD4B;EgB0D5B,uBfgCiC;Ee/BjC,mBhBJ2B,EgBK5B;;AAED;;;EACE,afwIkC;EevIlC,kBfuIkC,EetInC;;AAED;;;;;;;EACE,aAAa,EACd;;ADgRH;EAEI,adhJkC;EciJlC,mBdtQ4B;EcuQ5B,gBfzV4B;Ee0V5B,uBdhQiC;EciQjC,mBfpS2B,EeqS5B;;AAPH;EASI,advJkC;EcwJlC,kBdxJkC,EcyJnC;;AAXH;;EAcI,aAAa,EACd;;AAfH;EAiBI,ad/JkC;EcgKlC,iBAAkC;EAClC,mBdtR4B;EcuR5B,gBfzW4B;Ee0W5B,uBdhRiC,EciRlC;;AAQH;EAEE,mBAAmB,EAMpB;EARD;IAMI,uBAAkC,EACnC;;AAGH;EACE,mBAAmB;EACnB,OAAO;EACP,SAAS;EACT,WAAW;EACX,eAAe;EACf,YfpP6B;EeqP7B,afrP6B;EesP7B,kBftP6B;EeuP7B,mBAAmB;EACnB,qBAAqB,EACtB;;AACD;;;;;EAGE,YdrMoC;EcsMpC,adtMoC;EcuMpC,kBdvMoC,EcwMrC;;AACD;;;;;EAGE,Yd1MqC;Ec2MrC,ad3MqC;Ec4MrC,kBd5MqC,Ec6MtC;;AC/ZC;;;;;;;;;;EAUE,efseoC,EererC;;AAED;EACE,sBfkeoC;EFlb9B,iDiB/CkC,EAMzC;EARD;IAII,sBAA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AwB;IACpB,sBAAoB,EACzB;EDkDH;;IC9CI,YlBqFiC;IkBpFjC,0BAAwB;IACpB,sBAAoB,EASzB;IDmCH;;;;MCvCM,YlB8E+B;MkB7E/B,0BAAwB;MACpB,sBAAoB,EACzB;EDoCL;;IC/BI,uBAAuB,EACxB;ED8BH;;;;ICvBM,0BlBHkB;IkBId,sBlB+D6B,EkB9DlC;EAGH;IACE,elBToB;IkBUpB,uBlBuDiC,EkBtDlC;;ADmBH;ECpEE,YlB2GmC;EkB1GnC,0BlByBsB;EkBxBtB,sBlBwBsB,EiB4CvB;EAFD;IC9DI,YlBqGiC;IkBpGjC,0BAAwB;IACpB,sBAAoB,EACzB;ED2DH;ICzDI,YlBgGiC;IkB/FjC,0BAAwB;IACpB,sBAAoB,EACzB;EDsDH;;IClDI,YlByFiC;IkBxFjC,0BAAwB;IACpB,sBAAoB,EASzB;IDuCH;;;;MC3CM,YlBkF+B;MkBjF/B,0BAAwB;MACpB,sBAAoB,EACzB;EDwCL;;ICnCI,uBAAuB,EACxB;EDkCH;;;;IC3BM,0BlBfkB;IkBgBd,sBlBhBc,EkBiBnB;EAGH;IACE,elBrBoB;IkBsBpB,uBlB2DiC,EkB1DlC;;ADuBH;ECxEE,YlB+GmC;EkB9GnC,0BlB+BsB;EkB9BtB,sBlB+GqC,EiBvCtC;EAFD;IClEI,YlByGiC;IkBxGjC,0BAAwB;IACpB,sBAAoB,EACzB;ED+DH;IC7DI,YlBoGiC;IkBnGjC,0BAAwB;IACpB,sBAAoB,EACzB;ED0DH;;ICtDI,YlB6FiC;IkB5FjC,0BAAwB;IACpB,sBAAoB,EASzB;ID2CH;;;;MC/CM,YlBsF+B;MkBrF/B,0BAAwB;MACpB,sBAAoB,EACzB;ED4CL;;ICvCI,uBAAuB,EACxB;EDsCH;;;;IC/BM,0BlBTkB;IkBUd,sBlBuE6B,EkBtElC;EAGH;IACE,elBfoB;IkBgBpB,uBlB+DiC,EkB9DlC;;AD2BH;EC5EE,YlBmHmC;EkBlHnC,0BlBwCsB;EkBvCtB,sBlBmHqC,EiBvCtC;EAFD;ICtEI,YlB6GiC;IkB5GjC,0BAAwB;IACpB,sBAAoB,EACzB;EDmEH;ICjEI,YlBwGiC;IkBvGjC,0BAAwB;IACpB,sBAAoB,EACzB;ED8DH;;IC1DI,YlBiGiC;IkBhGjC,0BAAwB;IACpB,sBAAoB,EASzB;ID+CH;;;;MCnDM,YlB0F+B;MkBzF/B,0BAAwB;MACpB,sBAAoB,EACzB;EDgDL;;IC3CI,uBAAuB,EACxB;ED0CH;;;;ICnCM,0BlBAkB;IkBCd,sBlB2E6B,EkB1ElC;EAGH;IACE,elBNoB;IkBOpB,uBlBmEiC,EkBlElC;;AD+BH;EChFE,YlBuHmC;EkBtHnC,0BlB8CsB;EkB7CtB,sBlBuHqC,EiBvCtC;EAFD;IC1EI,YlBiHiC;IkBhHjC,0BAAwB;IACpB,sBAAoB,EACzB;EDuEH;ICrEI,YlB4GiC;IkB3GjC,0BAAwB;IACpB,sBAAoB,EACzB;EDkEH;;IC9DI,YlBqGiC;IkBpGjC,0BAAwB;IACpB,sBAAoB,EASzB;IDmDH;;;;MCvDM,YlB8F+B;MkB7F/B,0BAAwB;MACpB,sBAAoB,EACzB;EDoDL;;IC/CI,uBAAuB,EACxB;ED8CH;;;;ICvCM,0BlBMkB;IkBLd,sBlB+E6B,EkB9ElC;EAGH;IACE,elBAoB;IkBCpB,uBlBuEiC,EkBtElC;;ADwCH;EACE,ejBpDsB;EiBqDtB,oBAAoB;EACpB,iBAAiB,EA8BlB;EAjCD;;IAUI,8BAA8B;IlBpCxB,iBkBqCkB,EACzB;EAZH;IAiBI,0BAA0B,EAC3B;EAlBH;IAqBI,ehBhF0B;IgBiF1B,2BhB/E6B;IgBgF7B,8BAA8B,EAC/B;EAxBH;;;IA6BM,ejBnEkB;IiBoElB,sBAAsB,EACvB;;AAQL;EC1EE,mBjBsC8B;EiBrC9B,gBlB7C8B;EkB8C9B,uBjB4CmC;EiB3CnC,mBlBQ6B,EiBkE9B;;AACD;EC9EE,kBjByC8B;EiBxC9B,gBjBR4B;EiBS5B,iBjB6C6B;EiB5C7B,mBlBS6B,EiBqE9B;;AACD;EClFE,iBjB4C6B;EiB3C7B,gBjBR4B;EiBS5B,iBjB6C6B;EiB5C7B,mBlBS6B,EiBwE9B;;AAMD;EACE,eAAe;EACf,YAAY,EACb;;AAGD;EACE,gBAAgB,EACjB;;AAGD;;;EAII,YAAY,EACb;;AG7JH;EACE,WAAW;ErB+KX,yCqB9KuC;ErB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4BwOrC;IA1BL;MAuBQ,e5BnYgB;M4BoYhB,8B5BpOyC,E4BqO1C;EAzBP;IA+BQ,Y5B1OkC;I4B2OlC,0B5B5YgB,E4B6YjB;EAjCP;IAuCQ,Y5BhPkC;I4BiPlC,8B5BhPyC,E4BiP1C;EAzCP;IA8CI,sB5B5ZoB,E4BoarB;IAtDH;MAiDM,0B5B/ZkB,E4BganB;IAlDL;MAoDM,uB5BrQmC,E4BsQpC;EArDL;;IA0DI,sB5BlX0B,E4BmX3B;EA3DH;IAoEQ,0B5BhbgB;I4BibhB,Y5BhRkC,E4BiRnC;EAGH;IAzEJ;MA6EU,Y5B3RgC,E4BiSjC;MAnFT;QAgFY,e5B5bY;Q4B6bZ,8B5B7RqC,E4B8RtC;IAlFX;MAwFY,Y5BnS8B;M4BoS9B,0B5BrcY,E4Bscb;IA1FX;MAgGY,Y5BzS8B;M4B0S9B,8B5BzSqC,E4B0StC,EAAA;EAlGX;IA8GI,Y5B5TsC,E4BgUvC;IAlHH;MAgHM,e5B5dkB,E4B6dnB;EAjHL;IAqHI,Y5BnUsC,E4B+UvC;IAjIH;MAwHM,e5BpekB,E4BqenB;IAzHL;;;MA8HQ,Y5BvUkC,E4BwUnC;;AAOP;EACE,uB5BpTwC;E4BqTxC,sB5BpT0C,E4Bqb3C;EAnID;IAKI,e5BzfoB,E4B+frB;IAXH;MAQM,e5B1fkB;M4B2flB,8B5BxS2C,E4ByS5C;EAVL;IAcI,a5B/cc,E4Bgdf;EAfH;IAmBM,e5BvgBkB,E4B8gBnB;IA1BL;MAuBQ,e5BzgBgB;M4B0gBhB,8B5BrUyC,E4BsU1C;EAzBP;IA+BQ,e5BnhBgB;I4BohBhB,0B5BlhBgB,E4BmhBjB;EAjCP;IAuCQ,Y5BjVkC;I4BkVlC,8B5BjVyC,E4BkV1C;EAzCP;IA+CI,mB3B/J4C,E2BuK7C;IAvDH;MAkDM,uB3BpK0C,E2BqK3C;IAnDL;MAqDM,uB3BtK0C,E2BuK3C;EAtDL;;IA2DI,sBAAoB,EACrB;EA5DH;IAoEQ,0B5BtjBgB;I4BujBhB,e5BzjBgB,E4B0jBjB;EAGH;IAzEJ;MA6EU,sB5B/XkC,E4BgYnC;IA9ET;MAgFU,0B5BlYkC,E4BmYnC;IAjFT;MAmFU,e5BvkBc,E4B6kBf;MAzFT;QAsFY,e5BxkBY;Q4BykBZ,8B5BpYqC,E4BqYtC;IAxFX;MA8FY,e5BllBY;M4BmlBZ,0B5BjlBY,E4BklBb;IAhGX;MAsGY,Y5BhZ8B;M4BiZ9B,8B5BhZqC,E4BiZtC,EAAA;EAxGX;IA+GI,e5BnmBoB,E4BumBrB;IAnHH;MAiHM,e5BnmBkB,E4BomBnB;EAlHL;IAsHI,e5B1mBoB,E4BsnBrB;IAlIH;MAyHM,e5B3mBkB,E4B4mBnB;IA1HL;;;MA+HQ,Y5BzakC,E4B0anC;;AE7oBP;EACE,kB7BqxBkC;E6BpxBlC,oB9BY+B;E8BX/B,iBAAiB;EACjB,0B7BoxBqC;E6BnxBrC,mB9B4D6B,E8B3C9B;EAtBD;IAQI,sBAAsB,EASvB;IAjBH;MAaM,cAA2C;MAC3C,eAAe;MACf,Y7B2wB8B,E6B1wB/B;EAhBL;IAoBI,e9BgCoB,E8B/BrB;;ACvBH;EACE,sBAAsB;EACtB,gBAAgB;EAChB,eAA+B;EAC/B,mB/B+D6B,E+BK9B;EAxED;IAOI,gBAAgB,EA0BjB;IAjCH;;MAUM,mBAAmB;MACnB,YAAY;MACZ,kB9BgF0B;M8B/E1B,qB/BE6B;M+BD7B,sBAAsB;MACtB,e/B0BkB;M+BzBlB,uB9BobqC;M8BnbrC,uB9BobqC;M8BnbrC,kBAAkB,EACnB;IAnBL;;MAuBQ,eAAe;MNXrB,+BzBuD6B;MyBtD1B,4BzBsD0B,E+B1CxB;IAzBP;;MNIE,gCzB+D6B;MyB9D1B,6BzB8D0B,E+BpCxB;EA/BP;;;IAuCM,WAAW;IACX,e9BPwB;I8BQxB,0B9B7B0B;I8B8B1B,mB9B+ZqC,E8B9ZtC;EA3CL;;;;IAmDM,WAAW;IACX,Y9BuZqC;I8BtZrC,0B/BZkB;I+BalB,sB/BbkB;I+BclB,gBAAgB,EACjB;EAxDL;;;;;;IAkEM,e/BZkB;I+BalB,uB9B6YqC;I8B5YrC,mB9B6YqC;I8B5YrC,oB9B+JsC,E8B9JvC;;ACrEC;;EAEA,mB/B4F0B;E+B3F1B,gBhCS0B;EgCR1B,uB/BkG+B,E+BjGhC;;AAEG;;EPIN,+BzBwD6B;EyBvD1B,4BzBuD0B,EgCzDxB;;AAGC;;EPVN,gCzBgE6B;EyB/D1B,6BzB+D0B,EgCnDxB;;AAh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;MAClB,0BhDyEwB,EgDxEzB;IACD;MACE,YhDwJyB;MgDvJzB,0B/CH0B,E+CI3B;EAGmB;IAClB,6BhDgEwB,EgD/DzB;;AD2OL;EC7PE,sBhDyCsB,E+CsNvB;EC7PK;IACF,Y/C6sB8B;I+C5sB9B,0BhDqCoB;IgDpCpB,sBhDoCoB,EgD3BrB;IAPqB;MAClB,0BhDiCkB,EgDhCnB;IACD;MACE,ehD8BkB;MgD7BlB,uB/CosB4B,E+CnsB7B;EAGmB;IAClB,6BhDwBkB,EgDvBnB;;AD8OL;EChQE,sB/CsfqC,E8CpPtC;EChQK;IACF,e/CifoC;I+ChfpC,0B/CifoC;I+ChfpC,sB/CifmC,E+CxepC;IAPqB;MAClB,0B/C8eiC,E+C7elC;IACD;MACE,e/C0ekC;M+CzelC,0B/CwekC,E+CvenC;EAGmB;IAClB,6B/CqeiC,E+CpelC;;ADiPL;ECnQE,sB/C0fqC,E8CrPtC;ECnQK;IACF,e/CqfoC;I+CpfpC,0B/CqfoC;I+CpfpC,sB/CqfmC,E+C5epC;IAPqB;MAClB,0B/CkfiC,E+CjflC;IACD;MACE,e/C8ekC;M+C7elC,0B/C4ekC,E+C3enC;EAGmB;IAClB,6B/CyeiC,E+CxelC;;ADoPL;ECtQE,sB/C8fqC,E8CtPtC;ECtQK;IACF,e/CyfoC;I+CxfpC,0B/CyfoC;I+CxfpC,sB/CyfmC,E+ChfpC;IAPqB;MAClB,0B/CsfiC,E+CrflC;IACD;MACE,e/CkfkC;M+CjflC,0B/CgfkC,E+C/enC;EAGmB;IAClB,6B/C6eiC,E+C5elC;;ADuPL;ECzQE,sB/CkgBqC,E8CvPtC;ECzQK;IACF,e/C6foC;I+C5fpC,0B/C6foC;I+C5fpC,sB/C6fmC,E+CpfpC;IAPqB;MAClB,0B/C0fiC,E+CzflC;IACD;MACE,e/CsfkC;M+CrflC,0B/CofkC,E+CnfnC;EAGmB;IAClB,6B/CifiC,E+ChflC;;ACjBL;EACE,mBAAmB;EACnB,eAAe;EACf,UAAU;EACV,WAAW;EACX,iBAAiB,EAelB;EApBD;;;;;IAYI,mBAAmB;IACnB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,aAAa;IACb,YAAY;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EkB,EAAO;;ACD3B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE0C,EAAO;;ACDnD;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE0C,EAAO;;ACDnD;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE2C,EAAO;;ACDpD;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEwC,EAAO;;ACDjD;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE2C,EAAO;;ACDpD;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEuC,EAAO;;ACDhD;EAAE,aDEsC,EAAO;;ACD/C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEe,EAAO;;ACDxB;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEyC,EAAO;;ACDlD;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEuC,EAAO;;ACDhD;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE0C,EAAO;;ACDnD;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE0C,EAAO;;ACDnD;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEuC,EAAO;;ACDhD;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDEwC,EAAO;;ACDjD;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEgC,EAAO;;ACDzC;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsC,EAAO;;ACD/C;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsC,EAAO;;ACD/C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsC,EAAO;;ACD/C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE8B,EAAO;;ACDvC;EAAE,aDEsC,EAAO;;ACD/C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEkC,EAAO;;ACD3C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDE4B,EAAO;;ACDrC;EAAE,aDEoC,EAAO;;ACD7C;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEqC,EAAO;;ACD9C;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEiC,EAAO;;ACD1C;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE+B,EAAO;;ACDxC;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEmC,EAAO;;ACD5C;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDE6B,EAAO;;ACDtC;EAAE,aDEyB,EAAO;;ACDlC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEkB,EAAO;;ACD3B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEoB,EAAO;;ACD7B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDE2B,EAAO;;ACDpC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDEqB,EAAO;;ACD9B;EAAE,aDEmB,EAAO;;ACD5B;EAAE,aDEgB,EAAO;;ACDzB;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEuB,EAAO;;ACDhC;EAAE,aDE0B,EAAO;;ACDnC;EAAE,aDEwB,EAAO;;ACDjC;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEiB,EAAO;;ACD1B;EAAE,aDEsB,EAAO;;ACD/B;EAAE,aDEkB,EAAO;;A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","file":"app.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%; }\n\nbody {\n margin: 0; }\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block; }\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline; }\n\naudio:not([controls]) {\n display: none;\n height: 0; }\n\n[hidden],\ntemplate {\n display: none; }\n\na {\n background-color: transparent; }\n\na:active,\na:hover {\n outline: 0; }\n\nabbr[title] {\n border-bottom: 1px dotted; }\n\nb,\nstrong {\n font-weight: bold; }\n\ndfn {\n font-style: italic; }\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\n\nmark {\n background: #ff0;\n color: #000; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsup {\n top: -0.5em; }\n\nsub {\n bottom: -0.25em; }\n\nimg {\n border: 0; }\n\nsvg:not(:root) {\n overflow: hidden; }\n\nfigure {\n margin: 1em 40px; }\n\nhr {\n box-sizing: content-box;\n height: 0; }\n\npre {\n overflow: auto; }\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0; }\n\nbutton {\n overflow: visible; }\n\nbutton,\nselect {\n text-transform: none; }\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer; }\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\n\ninput {\n line-height: normal; }\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0; }\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box; }\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\n\nlegend {\n border: 0;\n padding: 0; }\n\ntextarea {\n overflow: auto; }\n\noptgroup {\n font-weight: bold; }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n\ntd,\nth {\n padding: 0; }\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important; }\n a,\n a:visited {\n text-decoration: underline; }\n a[href]:after {\n content: \" (\" attr(href) \")\"; }\n abbr[title]:after {\n content: \" (\" attr(title) \")\"; }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\"; }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n img {\n max-width: 100% !important; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n .navbar {\n display: none; }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important; }\n .label {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important; } }\n\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url(\"../fonts/bootstrap/glyphicons-halflings-regular.eot\");\n src: url(\"../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\"); }\n\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.glyphicon-asterisk:before {\n content: \"\\002a\"; }\n\n.glyphicon-plus:before {\n content: \"\\002b\"; }\n\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\"; }\n\n.glyphicon-minus:before {\n content: \"\\2212\"; }\n\n.glyphicon-cloud:before {\n content: \"\\2601\"; }\n\n.glyphicon-envelope:before {\n content: \"\\2709\"; }\n\n.glyphicon-pencil:before {\n content: \"\\270f\"; }\n\n.glyphicon-glass:before {\n content: \"\\e001\"; }\n\n.glyphicon-music:before {\n content: \"\\e002\"; }\n\n.glyphicon-search:before {\n content: \"\\e003\"; }\n\n.glyphicon-heart:before {\n content: \"\\e005\"; }\n\n.glyphicon-star:before {\n content: \"\\e006\"; }\n\n.glyphicon-star-empty:before {\n content: \"\\e007\"; }\n\n.glyphicon-user:before {\n content: \"\\e008\"; }\n\n.glyphicon-film:before {\n content: \"\\e009\"; }\n\n.glyphicon-th-large:before {\n content: \"\\e010\"; }\n\n.glyphicon-th:before {\n content: \"\\e011\"; }\n\n.glyphicon-th-list:before {\n content: \"\\e012\"; }\n\n.glyphicon-ok:before {\n content: \"\\e013\"; }\n\n.glyphicon-remove:before {\n content: \"\\e014\"; }\n\n.glyphicon-zoom-in:before {\n content: \"\\e015\"; }\n\n.glyphicon-zoom-out:before {\n content: \"\\e016\"; }\n\n.glyphicon-off:before {\n content: \"\\e017\"; }\n\n.glyphicon-signal:before {\n content: \"\\e018\"; }\n\n.glyphicon-cog:before {\n content: \"\\e019\"; }\n\n.glyphicon-trash:before {\n content: \"\\e020\"; }\n\n.glyphicon-home:before {\n content: \"\\e021\"; }\n\n.glyphicon-file:before {\n content: \"\\e022\"; }\n\n.glyphicon-time:before {\n content: \"\\e023\"; }\n\n.glyphicon-road:before {\n content: \"\\e024\"; }\n\n.glyphicon-download-alt:before {\n content: \"\\e025\"; }\n\n.glyphicon-download:before {\n content: \"\\e026\"; }\n\n.glyphicon-upload:before {\n content: \"\\e027\"; }\n\n.glyphicon-inbox:before {\n content: \"\\e028\"; }\n\n.glyphicon-play-circle:before {\n content: \"\\e029\"; }\n\n.glyphicon-repeat:before {\n content: \"\\e030\"; }\n\n.glyphicon-refresh:before {\n content: \"\\e031\"; }\n\n.glyphicon-list-alt:before {\n content: \"\\e032\"; }\n\n.glyphicon-lock:before {\n content: \"\\e033\"; }\n\n.glyphicon-flag:before {\n content: \"\\e034\"; }\n\n.glyphicon-headphones:before {\n content: \"\\e035\"; }\n\n.glyphicon-volume-off:before {\n content: \"\\e036\"; }\n\n.glyphicon-volume-down:before {\n content: \"\\e037\"; }\n\n.glyphicon-volume-up:before {\n content: \"\\e038\"; }\n\n.glyphicon-qrcode:before {\n content: \"\\e039\"; }\n\n.glyphicon-barcode:before {\n content: \"\\e040\"; }\n\n.glyphicon-tag:before {\n content: \"\\e041\"; }\n\n.glyphicon-tags:before {\n content: \"\\e042\"; }\n\n.glyphicon-book:before {\n content: \"\\e043\"; }\n\n.glyphicon-bookmark:before {\n content: \"\\e044\"; }\n\n.glyphicon-print:before {\n content: \"\\e045\"; }\n\n.glyphicon-camera:before {\n content: \"\\e046\"; }\n\n.glyphicon-font:before {\n content: \"\\e047\"; }\n\n.glyphicon-bold:before {\n content: \"\\e048\"; }\n\n.glyphicon-italic:before {\n content: \"\\e049\"; }\n\n.glyphicon-text-height:before {\n content: \"\\e050\"; }\n\n.glyphicon-text-width:before {\n content: \"\\e051\"; }\n\n.glyphicon-align-left:before {\n content: \"\\e052\"; }\n\n.glyphicon-align-center:before {\n content: \"\\e053\"; }\n\n.glyphicon-align-right:before {\n content: \"\\e054\"; }\n\n.glyphicon-align-justify:before {\n content: \"\\e055\"; }\n\n.glyphicon-list:before {\n content: \"\\e056\"; }\n\n.glyphicon-indent-left:before {\n content: \"\\e057\"; }\n\n.glyphicon-indent-right:before {\n content: \"\\e058\"; }\n\n.glyphicon-facetime-video:before {\n content: \"\\e059\"; }\n\n.glyphicon-picture:before {\n content: \"\\e060\"; }\n\n.glyphicon-map-marker:before {\n content: \"\\e062\"; }\n\n.glyphicon-adjust:before {\n content: \"\\e063\"; }\n\n.glyphicon-tint:before {\n content: \"\\e064\"; }\n\n.glyphicon-edit:before {\n content: \"\\e065\"; }\n\n.glyphicon-share:before {\n content: \"\\e066\"; }\n\n.glyphicon-check:before {\n content: \"\\e067\"; }\n\n.glyphicon-move:before {\n content: \"\\e068\"; }\n\n.glyphicon-step-backward:before {\n content: \"\\e069\"; }\n\n.glyphicon-fast-backward:before {\n content: \"\\e070\"; }\n\n.glyphicon-backward:before {\n content: \"\\e071\"; }\n\n.glyphicon-play:before {\n content: \"\\e072\"; }\n\n.glyphicon-pause:before {\n content: \"\\e073\"; }\n\n.glyphicon-stop:before {\n content: \"\\e074\"; }\n\n.glyphicon-forward:before {\n content: \"\\e075\"; }\n\n.glyphicon-fast-forward:before {\n content: \"\\e076\"; }\n\n.glyphicon-step-forward:before {\n content: \"\\e077\"; }\n\n.glyphicon-eject:before {\n content: \"\\e078\"; }\n\n.glyphicon-chevron-left:before {\n content: \"\\e079\"; }\n\n.glyphicon-chevron-right:before {\n content: \"\\e080\"; }\n\n.glyphicon-plus-sign:before {\n content: \"\\e081\"; }\n\n.glyphicon-minus-sign:before {\n content: \"\\e082\"; }\n\n.glyphicon-remove-sign:before {\n content: \"\\e083\"; }\n\n.glyphicon-ok-sign:before {\n content: \"\\e084\"; }\n\n.glyphicon-question-sign:before {\n content: \"\\e085\"; }\n\n.glyphicon-info-sign:before {\n content: \"\\e086\"; }\n\n.glyphicon-screenshot:before {\n content: \"\\e087\"; }\n\n.glyphicon-remove-circle:before {\n content: \"\\e088\"; }\n\n.glyphicon-ok-circle:before {\n content: \"\\e089\"; }\n\n.glyphicon-ban-circle:before {\n content: \"\\e090\"; }\n\n.glyphicon-arrow-left:before {\n content: \"\\e091\"; }\n\n.glyphicon-arrow-right:before {\n content: \"\\e092\"; }\n\n.glyphicon-arrow-up:before {\n content: \"\\e093\"; }\n\n.glyphicon-arrow-down:before {\n content: \"\\e094\"; }\n\n.glyphicon-share-alt:before {\n content: \"\\e095\"; }\n\n.glyphicon-resize-full:before {\n content: \"\\e096\"; }\n\n.glyphicon-resize-small:before {\n content: \"\\e097\"; }\n\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\"; }\n\n.glyphicon-gift:before {\n content: \"\\e102\"; }\n\n.glyphicon-leaf:before {\n content: \"\\e103\"; }\n\n.glyphicon-fire:before {\n content: \"\\e104\"; }\n\n.glyphicon-eye-open:before {\n content: \"\\e105\"; }\n\n.glyphicon-eye-close:before {\n content: \"\\e106\"; }\n\n.glyphicon-warning-sign:before {\n content: \"\\e107\"; }\n\n.glyphicon-plane:before {\n content: \"\\e108\"; }\n\n.glyphicon-calendar:before {\n content: \"\\e109\"; }\n\n.glyphicon-random:before {\n content: \"\\e110\"; }\n\n.glyphicon-comment:before {\n content: \"\\e111\"; }\n\n.glyphicon-magnet:before {\n content: \"\\e112\"; }\n\n.glyphicon-chevron-up:before {\n content: \"\\e113\"; }\n\n.glyphicon-chevron-down:before {\n content: \"\\e114\"; }\n\n.glyphicon-retweet:before {\n content: \"\\e115\"; }\n\n.glyphicon-shopping-cart:before {\n content: \"\\e116\"; }\n\n.glyphicon-folder-close:before {\n content: \"\\e117\"; }\n\n.glyphicon-folder-open:before {\n content: \"\\e118\"; }\n\n.glyphicon-resize-vertical:before {\n content: \"\\e119\"; }\n\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\"; }\n\n.glyphicon-hdd:before {\n content: \"\\e121\"; }\n\n.glyphicon-bullhorn:before {\n content: \"\\e122\"; }\n\n.glyphicon-bell:before {\n content: \"\\e123\"; }\n\n.glyphicon-certificate:before {\n content: \"\\e124\"; }\n\n.glyphicon-thumbs-up:before {\n content: \"\\e125\"; }\n\n.glyphicon-thumbs-down:before {\n content: \"\\e126\"; }\n\n.glyphicon-hand-right:before {\n content: \"\\e127\"; }\n\n.glyphicon-hand-left:before {\n content: \"\\e128\"; }\n\n.glyphicon-hand-up:before {\n content: \"\\e129\"; }\n\n.glyphicon-hand-down:before {\n content: \"\\e130\"; }\n\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\"; }\n\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\"; }\n\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\"; }\n\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\"; }\n\n.glyphicon-globe:before {\n content: \"\\e135\"; }\n\n.glyphicon-wrench:before {\n content: \"\\e136\"; }\n\n.glyphicon-tasks:before {\n content: \"\\e137\"; }\n\n.glyphicon-filter:before {\n content: \"\\e138\"; }\n\n.glyphicon-briefcase:before {\n content: \"\\e139\"; }\n\n.glyphicon-fullscreen:before {\n content: \"\\e140\"; }\n\n.glyphicon-dashboard:before {\n content: \"\\e141\"; }\n\n.glyphicon-paperclip:before {\n content: \"\\e142\"; }\n\n.glyphicon-heart-empty:before {\n content: \"\\e143\"; }\n\n.glyphicon-link:before {\n content: \"\\e144\"; }\n\n.glyphicon-phone:before {\n content: \"\\e145\"; }\n\n.glyphicon-pushpin:before {\n content: \"\\e146\"; }\n\n.glyphicon-usd:before {\n content: \"\\e148\"; }\n\n.glyphicon-gbp:before {\n content: \"\\e149\"; }\n\n.glyphicon-sort:before {\n content: \"\\e150\"; }\n\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\"; }\n\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\"; }\n\n.glyphicon-sort-by-order:before {\n content: \"\\e153\"; }\n\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\"; }\n\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\"; }\n\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\"; }\n\n.glyphicon-unchecked:before {\n content: \"\\e157\"; }\n\n.glyphicon-expand:before {\n content: \"\\e158\"; }\n\n.glyphicon-collapse-down:before {\n content: \"\\e159\"; }\n\n.glyphicon-collapse-up:before {\n content: \"\\e160\"; }\n\n.glyphicon-log-in:before {\n content: \"\\e161\"; }\n\n.glyphicon-flash:before {\n content: \"\\e162\"; }\n\n.glyphicon-log-out:before {\n content: \"\\e163\"; }\n\n.glyphicon-new-window:before {\n content: \"\\e164\"; }\n\n.glyphicon-record:before {\n content: \"\\e165\"; }\n\n.glyphicon-save:before {\n content: \"\\e166\"; }\n\n.glyphicon-open:before {\n content: \"\\e167\"; }\n\n.glyphicon-saved:before {\n content: \"\\e168\"; }\n\n.glyphicon-import:before {\n content: \"\\e169\"; }\n\n.glyphicon-export:before {\n content: \"\\e170\"; }\n\n.glyphicon-send:before {\n content: \"\\e171\"; }\n\n.glyphicon-floppy-disk:before {\n content: \"\\e172\"; }\n\n.glyphicon-floppy-saved:before {\n content: \"\\e173\"; }\n\n.glyphicon-floppy-remove:before {\n content: \"\\e174\"; }\n\n.glyphicon-floppy-save:before {\n content: \"\\e175\"; }\n\n.glyphicon-floppy-open:before {\n content: \"\\e176\"; }\n\n.glyphicon-credit-card:before {\n content: \"\\e177\"; }\n\n.glyphicon-transfer:before {\n content: \"\\e178\"; }\n\n.glyphicon-cutlery:before {\n content: \"\\e179\"; }\n\n.glyphicon-header:before {\n content: \"\\e180\"; }\n\n.glyphicon-compressed:before {\n content: \"\\e181\"; }\n\n.glyphicon-earphone:before {\n content: \"\\e182\"; }\n\n.glyphicon-phone-alt:before {\n content: \"\\e183\"; }\n\n.glyphicon-tower:before {\n content: \"\\e184\"; }\n\n.glyphicon-stats:before {\n content: \"\\e185\"; }\n\n.glyphicon-sd-video:before {\n content: \"\\e186\"; }\n\n.glyphicon-hd-video:before {\n content: \"\\e187\"; }\n\n.glyphicon-subtitles:before {\n content: \"\\e188\"; }\n\n.glyphicon-sound-stereo:before {\n content: \"\\e189\"; }\n\n.glyphicon-sound-dolby:before {\n content: \"\\e190\"; }\n\n.glyphicon-sound-5-1:before {\n content: \"\\e191\"; }\n\n.glyphicon-sound-6-1:before {\n content: \"\\e192\"; }\n\n.glyphicon-sound-7-1:before {\n content: \"\\e193\"; }\n\n.glyphicon-copyright-mark:before {\n content: \"\\e194\"; }\n\n.glyphicon-registration-mark:before {\n content: \"\\e195\"; }\n\n.glyphicon-cloud-download:before {\n content: \"\\e197\"; }\n\n.glyphicon-cloud-upload:before {\n content: \"\\e198\"; }\n\n.glyphicon-tree-conifer:before {\n content: \"\\e199\"; }\n\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\"; }\n\n.glyphicon-cd:before {\n content: \"\\e201\"; }\n\n.glyphicon-save-file:before {\n content: \"\\e202\"; }\n\n.glyphicon-open-file:before {\n content: \"\\e203\"; }\n\n.glyphicon-level-up:before {\n content: \"\\e204\"; }\n\n.glyphicon-copy:before {\n content: \"\\e205\"; }\n\n.glyphicon-paste:before {\n content: \"\\e206\"; }\n\n.glyphicon-alert:before {\n content: \"\\e209\"; }\n\n.glyphicon-equalizer:before {\n content: \"\\e210\"; }\n\n.glyphicon-king:before {\n content: \"\\e211\"; }\n\n.glyphicon-queen:before {\n content: \"\\e212\"; }\n\n.glyphicon-pawn:before {\n content: \"\\e213\"; }\n\n.glyphicon-bishop:before {\n content: \"\\e214\"; }\n\n.glyphicon-knight:before {\n content: \"\\e215\"; }\n\n.glyphicon-baby-formula:before {\n content: \"\\e216\"; }\n\n.glyphicon-tent:before {\n content: \"\\26fa\"; }\n\n.glyphicon-blackboard:before {\n content: \"\\e218\"; }\n\n.glyphicon-bed:before {\n content: \"\\e219\"; }\n\n.glyphicon-apple:before {\n content: \"\\f8ff\"; }\n\n.glyphicon-erase:before {\n content: \"\\e221\"; }\n\n.glyphicon-hourglass:before {\n content: \"\\231b\"; }\n\n.glyphicon-lamp:before {\n content: \"\\e223\"; }\n\n.glyphicon-duplicate:before {\n content: \"\\e224\"; }\n\n.glyphicon-piggy-bank:before {\n content: \"\\e225\"; }\n\n.glyphicon-scissors:before {\n content: \"\\e226\"; }\n\n.glyphicon-bitcoin:before {\n content: \"\\e227\"; }\n\n.glyphicon-btc:before {\n content: \"\\e227\"; }\n\n.glyphicon-xbt:before {\n content: \"\\e227\"; }\n\n.glyphicon-yen:before {\n content: \"\\00a5\"; }\n\n.glyphicon-jpy:before {\n content: \"\\00a5\"; }\n\n.glyphicon-ruble:before {\n content: \"\\20bd\"; }\n\n.glyphicon-rub:before {\n content: \"\\20bd\"; }\n\n.glyphicon-scale:before {\n content: \"\\e230\"; }\n\n.glyphicon-ice-lolly:before {\n content: \"\\e231\"; }\n\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\"; }\n\n.glyphicon-education:before {\n content: \"\\e233\"; }\n\n.glyphicon-option-horizontal:before {\n content: \"\\e234\"; }\n\n.glyphicon-option-vertical:before {\n content: \"\\e235\"; }\n\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\"; }\n\n.glyphicon-modal-window:before {\n content: \"\\e237\"; }\n\n.glyphicon-oil:before {\n content: \"\\e238\"; }\n\n.glyphicon-grain:before {\n content: \"\\e239\"; }\n\n.glyphicon-sunglasses:before {\n content: \"\\e240\"; }\n\n.glyphicon-text-size:before {\n content: \"\\e241\"; }\n\n.glyphicon-text-color:before {\n content: \"\\e242\"; }\n\n.glyphicon-text-background:before {\n content: \"\\e243\"; }\n\n.glyphicon-object-align-top:before {\n content: \"\\e244\"; }\n\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\"; }\n\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\"; }\n\n.glyphicon-object-align-left:before {\n content: \"\\e247\"; }\n\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\"; }\n\n.glyphicon-object-align-right:before {\n content: \"\\e249\"; }\n\n.glyphicon-triangle-right:before {\n content: \"\\e250\"; }\n\n.glyphicon-triangle-left:before {\n content: \"\\e251\"; }\n\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\"; }\n\n.glyphicon-triangle-top:before {\n content: \"\\e253\"; }\n\n.glyphicon-console:before {\n content: \"\\e254\"; }\n\n.glyphicon-superscript:before {\n content: \"\\e255\"; }\n\n.glyphicon-subscript:before {\n content: \"\\e256\"; }\n\n.glyphicon-menu-left:before {\n content: \"\\e257\"; }\n\n.glyphicon-menu-right:before {\n content: \"\\e258\"; }\n\n.glyphicon-menu-down:before {\n content: \"\\e259\"; }\n\n.glyphicon-menu-up:before {\n content: \"\\e260\"; }\n\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: transparent; }\n\nbody {\n font-family: \"lato-regular\", \"Helvetica Neue\", Helvetica, Arial, \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\n font-size: 14px;\n line-height: 1.72222;\n color: #636b6f;\n background-color: #f9f9fb; }\n\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\na {\n color: #34495e;\n text-decoration: none; }\n a:hover, a:focus {\n color: #19232d;\n text-decoration: underline; }\n a:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n\nfigure {\n margin: 0; }\n\nimg {\n vertical-align: middle; }\n\n.img-responsive {\n display: block;\n max-width: 100%;\n height: auto; }\n\n.img-rounded {\n border-radius: 6px; }\n\n.img-thumbnail {\n padding: 4px;\n line-height: 1.72222;\n background-color: #f9f9fb;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto; }\n\n.img-circle {\n border-radius: 50%; }\n\nhr {\n margin-top: 24px;\n margin-bottom: 24px;\n border: 0;\n border-top: 1px solid #eeeeee; }\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto; }\n\n[role=\"button\"] {\n cursor: pointer; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: inherit;\n font-weight: 400;\n line-height: 1.2;\n color: inherit; }\n h1 small,\n h1 .small, h2 small,\n h2 .small, h3 small,\n h3 .small, h4 small,\n h4 .small, h5 small,\n h5 .small, h6 small,\n h6 .small,\n .h1 small,\n .h1 .small, .h2 small,\n .h2 .small, .h3 small,\n .h3 .small, .h4 small,\n .h4 .small, .h5 small,\n .h5 .small, .h6 small,\n .h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #bdc3c7; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: 24px;\n margin-bottom: 12px; }\n h1 small,\n h1 .small, .h1 small,\n .h1 .small,\n h2 small,\n h2 .small, .h2 small,\n .h2 .small,\n h3 small,\n h3 .small, .h3 small,\n .h3 .small {\n font-size: 65%; }\n\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: 12px;\n margin-bottom: 12px; }\n h4 small,\n h4 .small, .h4 small,\n .h4 .small,\n h5 small,\n h5 .small, .h5 small,\n .h5 .small,\n h6 small,\n h6 .small, .h6 small,\n .h6 .small {\n font-size: 75%; }\n\nh1, .h1 {\n font-size: 48px; }\n\nh2, .h2 {\n font-size: 41px; }\n\nh3, .h3 {\n font-size: 32px; }\n\nh4, .h4 {\n font-size: 23px; }\n\nh5, .h5 {\n font-size: 21px; }\n\nh6, .h6 {\n font-size: 19px; }\n\np {\n margin: 0 0 12px; }\n\n.lead {\n margin-bottom: 24px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4; }\n @media (min-width: 768px) {\n .lead {\n font-size: 21px; } }\n\nsmall,\n.small {\n font-size: 85%; }\n\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em; }\n\n.text-left {\n text-align: left; }\n\n.text-right {\n text-align: right; }\n\n.text-center {\n text-align: center; }\n\n.text-justify {\n text-align: justify; }\n\n.text-nowrap {\n white-space: nowrap; }\n\n.text-lowercase {\n text-transform: lowercase; }\n\n.text-uppercase, .initialism {\n text-transform: uppercase; }\n\n.text-capitalize {\n text-transform: capitalize; }\n\n.text-muted {\n color: #bdc3c7; }\n\n.text-primary {\n color: #34495e; }\n\na.text-primary:hover,\na.text-primary:focus {\n color: #22303d; }\n\n.text-success {\n color: #3c763d; }\n\na.text-success:hover,\na.text-success:focus {\n color: #2b542c; }\n\n.text-info {\n color: #31708f; }\n\na.text-info:hover,\na.text-info:focus {\n color: #245269; }\n\n.text-warning {\n color: #8a6d3b; }\n\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c; }\n\n.text-danger {\n color: #a94442; }\n\na.text-danger:hover,\na.text-danger:focus {\n color: #843534; }\n\n.bg-primary {\n color: #fff; }\n\n.bg-primary {\n background-color: #34495e; }\n\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #22303d; }\n\n.bg-success {\n background-color: #dff0d8; }\n\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3; }\n\n.bg-info {\n background-color: #d9edf7; }\n\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee; }\n\n.bg-warning {\n background-color: #fcf8e3; }\n\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5; }\n\n.bg-danger {\n background-color: #f2dede; }\n\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9; }\n\n.page-header {\n padding-bottom: 11px;\n margin: 48px 0 24px;\n border-bottom: 1px solid #eeeeee; }\n\nul,\nol {\n margin-top: 0;\n margin-bottom: 12px; }\n ul ul,\n ul ol,\n ol ul,\n ol ol {\n margin-bottom: 0; }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px; }\n .list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px; }\n\ndl {\n margin-top: 0;\n margin-bottom: 24px; }\n\ndt,\ndd {\n line-height: 1.72222; }\n\ndt {\n font-weight: bold; }\n\ndd {\n margin-left: 0; }\n\n.dl-horizontal dd:before, .dl-horizontal dd:after {\n content: \" \";\n display: table; }\n\n.dl-horizontal dd:after {\n clear: both; }\n\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n .dl-horizontal dd {\n margin-left: 180px; } }\n\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #bdc3c7; }\n\n.initialism {\n font-size: 90%; }\n\nblockquote {\n padding: 12px 24px;\n margin: 0 0 24px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee; }\n blockquote p:last-child,\n blockquote ul:last-child,\n blockquote ol:last-child {\n margin-bottom: 0; }\n blockquote footer,\n blockquote small,\n blockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.72222;\n color: #bdc3c7; }\n blockquote footer:before,\n blockquote small:before,\n blockquote .small:before {\n content: '\\2014 \\00A0'; }\n\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right; }\n .blockquote-reverse footer:before,\n .blockquote-reverse small:before,\n .blockquote-reverse .small:before,\n blockquote.pull-right footer:before,\n blockquote.pull-right small:before,\n blockquote.pull-right .small:before {\n content: ''; }\n .blockquote-reverse footer:after,\n .blockquote-reverse small:after,\n .blockquote-reverse .small:after,\n blockquote.pull-right footer:after,\n blockquote.pull-right small:after,\n blockquote.pull-right .small:after {\n content: '\\00A0 \\2014'; }\n\naddress {\n margin-bottom: 24px;\n font-style: normal;\n line-height: 1.72222; }\n\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; }\n\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px; }\n\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none; }\n\npre {\n display: block;\n padding: 11.5px;\n margin: 0 0 12px;\n font-size: 13px;\n line-height: 1.72222;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px; }\n pre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px; }\n .container:before, .container:after {\n content: \" \";\n display: table; }\n .container:after {\n clear: both; }\n @media (min-width: 768px) {\n .container {\n width: 750px; } }\n @media (min-width: 992px) {\n .container {\n width: 970px; } }\n @media (min-width: 1200px) {\n .container {\n width: 1170px; } }\n\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px; }\n .container-fluid:before, .container-fluid:after {\n content: \" \";\n display: table; }\n .container-fluid:after {\n clear: both; }\n\n.row {\n margin-left: -15px;\n margin-right: -15px; }\n .row:before, .row:after {\n content: \" \";\n display: table; }\n .row:after {\n clear: both; }\n\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px; }\n\n.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 {\n float: left; }\n\n.col-xs-1 {\n width: 8.3333333333%; }\n\n.col-xs-2 {\n width: 16.6666666667%; }\n\n.col-xs-3 {\n width: 25%; }\n\n.col-xs-4 {\n width: 33.3333333333%; }\n\n.col-xs-5 {\n width: 41.6666666667%; }\n\n.col-xs-6 {\n width: 50%; }\n\n.col-xs-7 {\n width: 58.3333333333%; }\n\n.col-xs-8 {\n width: 66.6666666667%; }\n\n.col-xs-9 {\n width: 75%; }\n\n.col-xs-10 {\n width: 83.3333333333%; }\n\n.col-xs-11 {\n width: 91.6666666667%; }\n\n.col-xs-12 {\n width: 100%; }\n\n.col-xs-pull-0 {\n right: auto; }\n\n.col-xs-pull-1 {\n right: 8.3333333333%; }\n\n.col-xs-pull-2 {\n right: 16.6666666667%; }\n\n.col-xs-pull-3 {\n right: 25%; }\n\n.col-xs-pull-4 {\n right: 33.3333333333%; }\n\n.col-xs-pull-5 {\n right: 41.6666666667%; }\n\n.col-xs-pull-6 {\n right: 50%; }\n\n.col-xs-pull-7 {\n right: 58.3333333333%; }\n\n.col-xs-pull-8 {\n right: 66.6666666667%; }\n\n.col-xs-pull-9 {\n right: 75%; }\n\n.col-xs-pull-10 {\n right: 83.3333333333%; }\n\n.col-xs-pull-11 {\n right: 91.6666666667%; }\n\n.col-xs-pull-12 {\n right: 100%; }\n\n.col-xs-push-0 {\n left: auto; }\n\n.col-xs-push-1 {\n left: 8.3333333333%; }\n\n.col-xs-push-2 {\n left: 16.6666666667%; }\n\n.col-xs-push-3 {\n left: 25%; }\n\n.col-xs-push-4 {\n left: 33.3333333333%; }\n\n.col-xs-push-5 {\n left: 41.6666666667%; }\n\n.col-xs-push-6 {\n left: 50%; }\n\n.col-xs-push-7 {\n left: 58.3333333333%; }\n\n.col-xs-push-8 {\n left: 66.6666666667%; }\n\n.col-xs-push-9 {\n left: 75%; }\n\n.col-xs-push-10 {\n left: 83.3333333333%; }\n\n.col-xs-push-11 {\n left: 91.6666666667%; }\n\n.col-xs-push-12 {\n left: 100%; }\n\n.col-xs-offset-0 {\n margin-left: 0%; }\n\n.col-xs-offset-1 {\n margin-left: 8.3333333333%; }\n\n.col-xs-offset-2 {\n margin-left: 16.6666666667%; }\n\n.col-xs-offset-3 {\n margin-left: 25%; }\n\n.col-xs-offset-4 {\n margin-left: 33.3333333333%; }\n\n.col-xs-offset-5 {\n margin-left: 41.6666666667%; }\n\n.col-xs-offset-6 {\n margin-left: 50%; }\n\n.col-xs-offset-7 {\n margin-left: 58.3333333333%; }\n\n.col-xs-offset-8 {\n margin-left: 66.6666666667%; }\n\n.col-xs-offset-9 {\n margin-left: 75%; }\n\n.col-xs-offset-10 {\n margin-left: 83.3333333333%; }\n\n.col-xs-offset-11 {\n margin-left: 91.6666666667%; }\n\n.col-xs-offset-12 {\n margin-left: 100%; }\n\n@media (min-width: 768px) {\n .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 {\n float: left; }\n .col-sm-1 {\n width: 8.3333333333%; }\n .col-sm-2 {\n width: 16.6666666667%; }\n .col-sm-3 {\n width: 25%; }\n .col-sm-4 {\n width: 33.3333333333%; }\n .col-sm-5 {\n width: 41.6666666667%; }\n .col-sm-6 {\n width: 50%; }\n .col-sm-7 {\n width: 58.3333333333%; }\n .col-sm-8 {\n width: 66.6666666667%; }\n .col-sm-9 {\n width: 75%; }\n .col-sm-10 {\n width: 83.3333333333%; }\n .col-sm-11 {\n width: 91.6666666667%; }\n .col-sm-12 {\n width: 100%; }\n .col-sm-pull-0 {\n right: auto; }\n .col-sm-pull-1 {\n right: 8.3333333333%; }\n .col-sm-pull-2 {\n right: 16.6666666667%; }\n .col-sm-pull-3 {\n right: 25%; }\n .col-sm-pull-4 {\n right: 33.3333333333%; }\n .col-sm-pull-5 {\n right: 41.6666666667%; }\n .col-sm-pull-6 {\n right: 50%; }\n .col-sm-pull-7 {\n right: 58.3333333333%; }\n .col-sm-pull-8 {\n right: 66.6666666667%; }\n .col-sm-pull-9 {\n right: 75%; }\n .col-sm-pull-10 {\n right: 83.3333333333%; }\n .col-sm-pull-11 {\n right: 91.6666666667%; }\n .col-sm-pull-12 {\n right: 100%; }\n .col-sm-push-0 {\n left: auto; }\n .col-sm-push-1 {\n left: 8.3333333333%; }\n .col-sm-push-2 {\n left: 16.6666666667%; }\n .col-sm-push-3 {\n left: 25%; }\n .col-sm-push-4 {\n left: 33.3333333333%; }\n .col-sm-push-5 {\n left: 41.6666666667%; }\n .col-sm-push-6 {\n left: 50%; }\n .col-sm-push-7 {\n left: 58.3333333333%; }\n .col-sm-push-8 {\n left: 66.6666666667%; }\n .col-sm-push-9 {\n left: 75%; }\n .col-sm-push-10 {\n left: 83.3333333333%; }\n .col-sm-push-11 {\n left: 91.6666666667%; }\n .col-sm-push-12 {\n left: 100%; }\n .col-sm-offset-0 {\n margin-left: 0%; }\n .col-sm-offset-1 {\n margin-left: 8.3333333333%; }\n .col-sm-offset-2 {\n margin-left: 16.6666666667%; }\n .col-sm-offset-3 {\n margin-left: 25%; }\n .col-sm-offset-4 {\n margin-left: 33.3333333333%; }\n .col-sm-offset-5 {\n margin-left: 41.6666666667%; }\n .col-sm-offset-6 {\n margin-left: 50%; }\n .col-sm-offset-7 {\n margin-left: 58.3333333333%; }\n .col-sm-offset-8 {\n margin-left: 66.6666666667%; }\n .col-sm-offset-9 {\n margin-left: 75%; }\n .col-sm-offset-10 {\n margin-left: 83.3333333333%; }\n .col-sm-offset-11 {\n margin-left: 91.6666666667%; }\n .col-sm-offset-12 {\n margin-left: 100%; } }\n\n@media (min-width: 992px) {\n .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 {\n float: left; }\n .col-md-1 {\n width: 8.3333333333%; }\n .col-md-2 {\n width: 16.6666666667%; }\n .col-md-3 {\n width: 25%; }\n .col-md-4 {\n width: 33.3333333333%; }\n .col-md-5 {\n width: 41.6666666667%; }\n .col-md-6 {\n width: 50%; }\n .col-md-7 {\n width: 58.3333333333%; }\n .col-md-8 {\n width: 66.6666666667%; }\n .col-md-9 {\n width: 75%; }\n .col-md-10 {\n width: 83.3333333333%; }\n .col-md-11 {\n width: 91.6666666667%; }\n .col-md-12 {\n width: 100%; }\n .col-md-pull-0 {\n right: auto; }\n .col-md-pull-1 {\n right: 8.3333333333%; }\n .col-md-pull-2 {\n right: 16.6666666667%; }\n .col-md-pull-3 {\n right: 25%; }\n .col-md-pull-4 {\n right: 33.3333333333%; }\n .col-md-pull-5 {\n right: 41.6666666667%; }\n .col-md-pull-6 {\n right: 50%; }\n .col-md-pull-7 {\n right: 58.3333333333%; }\n .col-md-pull-8 {\n right: 66.6666666667%; }\n .col-md-pull-9 {\n right: 75%; }\n .col-md-pull-10 {\n right: 83.3333333333%; }\n .col-md-pull-11 {\n right: 91.6666666667%; }\n .col-md-pull-12 {\n right: 100%; }\n .col-md-push-0 {\n left: auto; }\n .col-md-push-1 {\n left: 8.3333333333%; }\n .col-md-push-2 {\n left: 16.6666666667%; }\n .col-md-push-3 {\n left: 25%; }\n .col-md-push-4 {\n left: 33.3333333333%; }\n .col-md-push-5 {\n left: 41.6666666667%; }\n .col-md-push-6 {\n left: 50%; }\n .col-md-push-7 {\n left: 58.3333333333%; }\n .col-md-push-8 {\n left: 66.6666666667%; }\n .col-md-push-9 {\n left: 75%; }\n .col-md-push-10 {\n left: 83.3333333333%; }\n .col-md-push-11 {\n left: 91.6666666667%; }\n .col-md-push-12 {\n left: 100%; }\n .col-md-offset-0 {\n margin-left: 0%; }\n .col-md-offset-1 {\n margin-left: 8.3333333333%; }\n .col-md-offset-2 {\n margin-left: 16.6666666667%; }\n .col-md-offset-3 {\n margin-left: 25%; }\n .col-md-offset-4 {\n margin-left: 33.3333333333%; }\n .col-md-offset-5 {\n margin-left: 41.6666666667%; }\n .col-md-offset-6 {\n margin-left: 50%; }\n .col-md-offset-7 {\n margin-left: 58.3333333333%; }\n .col-md-offset-8 {\n margin-left: 66.6666666667%; }\n .col-md-offset-9 {\n margin-left: 75%; }\n .col-md-offset-10 {\n margin-left: 83.3333333333%; }\n .col-md-offset-11 {\n margin-left: 91.6666666667%; }\n .col-md-offset-12 {\n margin-left: 100%; } }\n\n@media (min-width: 1200px) {\n .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 {\n float: left; }\n .col-lg-1 {\n width: 8.3333333333%; }\n .col-lg-2 {\n width: 16.6666666667%; }\n .col-lg-3 {\n width: 25%; }\n .col-lg-4 {\n width: 33.3333333333%; }\n .col-lg-5 {\n width: 41.6666666667%; }\n .col-lg-6 {\n width: 50%; }\n .col-lg-7 {\n width: 58.3333333333%; }\n .col-lg-8 {\n width: 66.6666666667%; }\n .col-lg-9 {\n width: 75%; }\n .col-lg-10 {\n width: 83.3333333333%; }\n .col-lg-11 {\n width: 91.6666666667%; }\n .col-lg-12 {\n width: 100%; }\n .col-lg-pull-0 {\n right: auto; }\n .col-lg-pull-1 {\n right: 8.3333333333%; }\n .col-lg-pull-2 {\n right: 16.6666666667%; }\n .col-lg-pull-3 {\n right: 25%; }\n .col-lg-pull-4 {\n right: 33.3333333333%; }\n .col-lg-pull-5 {\n right: 41.6666666667%; }\n .col-lg-pull-6 {\n right: 50%; }\n .col-lg-pull-7 {\n right: 58.3333333333%; }\n .col-lg-pull-8 {\n right: 66.6666666667%; }\n .col-lg-pull-9 {\n right: 75%; }\n .col-lg-pull-10 {\n right: 83.3333333333%; }\n .col-lg-pull-11 {\n right: 91.6666666667%; }\n .col-lg-pull-12 {\n right: 100%; }\n .col-lg-push-0 {\n left: auto; }\n .col-lg-push-1 {\n left: 8.3333333333%; }\n .col-lg-push-2 {\n left: 16.6666666667%; }\n .col-lg-push-3 {\n left: 25%; }\n .col-lg-push-4 {\n left: 33.3333333333%; }\n .col-lg-push-5 {\n left: 41.6666666667%; }\n .col-lg-push-6 {\n left: 50%; }\n .col-lg-push-7 {\n left: 58.3333333333%; }\n .col-lg-push-8 {\n left: 66.6666666667%; }\n .col-lg-push-9 {\n left: 75%; }\n .col-lg-push-10 {\n left: 83.3333333333%; }\n .col-lg-push-11 {\n left: 91.6666666667%; }\n .col-lg-push-12 {\n left: 100%; }\n .col-lg-offset-0 {\n margin-left: 0%; }\n .col-lg-offset-1 {\n margin-left: 8.3333333333%; }\n .col-lg-offset-2 {\n margin-left: 16.6666666667%; }\n .col-lg-offset-3 {\n margin-left: 25%; }\n .col-lg-offset-4 {\n margin-left: 33.3333333333%; }\n .col-lg-offset-5 {\n margin-left: 41.6666666667%; }\n .col-lg-offset-6 {\n margin-left: 50%; }\n .col-lg-offset-7 {\n margin-left: 58.3333333333%; }\n .col-lg-offset-8 {\n margin-left: 66.6666666667%; }\n .col-lg-offset-9 {\n margin-left: 75%; }\n .col-lg-offset-10 {\n margin-left: 83.3333333333%; }\n .col-lg-offset-11 {\n margin-left: 91.6666666667%; }\n .col-lg-offset-12 {\n margin-left: 100%; } }\n\ntable {\n background-color: transparent; }\n\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #bdc3c7;\n text-align: left; }\n\nth {\n text-align: left; }\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 24px; }\n .table > thead > tr > th,\n .table > thead > tr > td,\n .table > tbody > tr > th,\n .table > tbody > tr > td,\n .table > tfoot > tr > th,\n .table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.72222;\n vertical-align: top;\n border-top: 1px solid #ddd; }\n .table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd; }\n .table > caption + thead > tr:first-child > th,\n .table > caption + thead > tr:first-child > td,\n .table > colgroup + thead > tr:first-child > th,\n .table > colgroup + thead > tr:first-child > td,\n .table > thead:first-child > tr:first-child > th,\n .table > thead:first-child > tr:first-child > td {\n border-top: 0; }\n .table > tbody + tbody {\n border-top: 2px solid #ddd; }\n .table .table {\n background-color: #f9f9fb; }\n\n.table-condensed > thead > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > th,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > th,\n.table-condensed > tfoot > tr > td {\n padding: 5px; }\n\n.table-bordered {\n border: 1px solid #ddd; }\n .table-bordered > thead > tr > th,\n .table-bordered > thead > tr > td,\n .table-bordered > tbody > tr > th,\n .table-bordered > tbody > tr > td,\n .table-bordered > tfoot > tr > th,\n .table-bordered > tfoot > tr > td {\n border: 1px solid #ddd; }\n .table-bordered > thead > tr > th,\n .table-bordered > thead > tr > td {\n border-bottom-width: 2px; }\n\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9; }\n\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5; }\n\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column; }\n\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell; }\n\n.table > thead > tr > td.active,\n.table > thead > tr > th.active,\n.table > thead > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr > td.active,\n.table > tbody > tr > th.active,\n.table > tbody > tr.active > td,\n.table > tbody > tr.active > th,\n.table > tfoot > tr > td.active,\n.table > tfoot > tr > th.active,\n.table > tfoot > tr.active > td,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5; }\n\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8; }\n\n.table > thead > tr > td.success,\n.table > thead > tr > th.success,\n.table > thead > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr > td.success,\n.table > tbody > tr > th.success,\n.table > tbody > tr.success > td,\n.table > tbody > tr.success > th,\n.table > tfoot > tr > td.success,\n.table > tfoot > tr > th.success,\n.table > tfoot > tr.success > td,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8; }\n\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6; }\n\n.table > thead > tr > td.info,\n.table > thead > tr > th.info,\n.table > thead > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr > td.info,\n.table > tbody > tr > th.info,\n.table > tbody > tr.info > td,\n.table > tbody > tr.info > th,\n.table > tfoot > tr > td.info,\n.table > tfoot > tr > th.info,\n.table > tfoot > tr.info > td,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7; }\n\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3; }\n\n.table > thead > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr > td.warning,\n.table > tbody > tr > th.warning,\n.table > tbody > tr.warning > td,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr > td.warning,\n.table > tfoot > tr > th.warning,\n.table > tfoot > tr.warning > td,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3; }\n\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc; }\n\n.table > thead > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr > td.danger,\n.table > tbody > tr > th.danger,\n.table > tbody > tr.danger > td,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr > td.danger,\n.table > tfoot > tr > th.danger,\n.table > tfoot > tr.danger > td,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede; }\n\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc; }\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; }\n @media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 18px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd; }\n .table-responsive > .table {\n margin-bottom: 0; }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap; }\n .table-responsive > .table-bordered {\n border: 0; }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0; }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0; }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0; } }\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0; }\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 24px;\n font-size: 21px;\n line-height: inherit;\n color: #636b6f;\n border: 0;\n border-bottom: 1px solid #e5e5e5; }\n\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold; }\n\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal; }\n\ninput[type=\"file\"] {\n display: block; }\n\ninput[type=\"range\"] {\n display: block;\n width: 100%; }\n\nselect[multiple],\nselect[size] {\n height: auto; }\n\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.72222;\n color: #95a5a6; }\n\n.form-control {\n display: block;\n width: 100%;\n height: 41px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.72222;\n color: #95a5a6;\n background-color: white;\n background-image: none;\n border: 1px solid #dce4ec;\n border-radius: 6px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }\n .form-control:focus {\n border-color: #6789ab;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(103, 137, 171, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(103, 137, 171, 0.6); }\n .form-control::-moz-placeholder {\n color: #b1b7ba;\n opacity: 1; }\n .form-control:-ms-input-placeholder {\n color: #b1b7ba; }\n .form-control::-webkit-input-placeholder {\n color: #b1b7ba; }\n .form-control::-ms-expand {\n border: 0;\n background-color: transparent; }\n .form-control[disabled], .form-control[readonly],\n fieldset[disabled] .form-control {\n background-color: #f4f6f6;\n opacity: 1; }\n .form-control[disabled],\n fieldset[disabled] .form-control {\n cursor: not-allowed; }\n\ntextarea.form-control {\n height: auto; }\n\ninput[type=\"search\"] {\n -webkit-appearance: none; }\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 41px; }\n input[type=\"date\"].input-sm, .input-group-sm > input[type=\"date\"].form-control,\n .input-group-sm > input[type=\"date\"].input-group-addon,\n .input-group-sm > .input-group-btn > input[type=\"date\"].btn,\n .input-group-sm input[type=\"date\"],\n input[type=\"time\"].input-sm,\n .input-group-sm > input[type=\"time\"].form-control,\n .input-group-sm > input[type=\"time\"].input-group-addon,\n .input-group-sm > .input-group-btn > input[type=\"time\"].btn,\n .input-group-sm\n input[type=\"time\"],\n input[type=\"datetime-local\"].input-sm,\n .input-group-sm > input[type=\"datetime-local\"].form-control,\n .input-group-sm > input[type=\"datetime-local\"].input-group-addon,\n .input-group-sm > .input-group-btn > input[type=\"datetime-local\"].btn,\n .input-group-sm\n input[type=\"datetime-local\"],\n input[type=\"month\"].input-sm,\n .input-group-sm > input[type=\"month\"].form-control,\n .input-group-sm > input[type=\"month\"].input-group-addon,\n .input-group-sm > .input-group-btn > input[type=\"month\"].btn,\n .input-group-sm\n input[type=\"month\"] {\n line-height: 30px; }\n input[type=\"date\"].input-lg, .input-group-lg > input[type=\"date\"].form-control,\n .input-group-lg > input[type=\"date\"].input-group-addon,\n .input-group-lg > .input-group-btn > input[type=\"date\"].btn,\n .input-group-lg input[type=\"date\"],\n input[type=\"time\"].input-lg,\n .input-group-lg > input[type=\"time\"].form-control,\n .input-group-lg > input[type=\"time\"].input-group-addon,\n .input-group-lg > .input-group-btn > input[type=\"time\"].btn,\n .input-group-lg\n input[type=\"time\"],\n input[type=\"datetime-local\"].input-lg,\n .input-group-lg > input[type=\"datetime-local\"].form-control,\n .input-group-lg > input[type=\"datetime-local\"].input-group-addon,\n .input-group-lg > .input-group-btn > input[type=\"datetime-local\"].btn,\n .input-group-lg\n input[type=\"datetime-local\"],\n input[type=\"month\"].input-lg,\n .input-group-lg > input[type=\"month\"].form-control,\n .input-group-lg > input[type=\"month\"].input-group-addon,\n .input-group-lg > .input-group-btn > input[type=\"month\"].btn,\n .input-group-lg\n input[type=\"month\"] {\n line-height: 54px; } }\n\n.form-group {\n margin-bottom: 15px; }\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px; }\n .radio label,\n .checkbox label {\n min-height: 24px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer; }\n\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9; }\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; }\n\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer; }\n\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; }\n\ninput[type=\"radio\"][disabled], input[type=\"radio\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled]\ninput[type=\"checkbox\"] {\n cursor: not-allowed; }\n\n.radio-inline.disabled,\nfieldset[disabled] .radio-inline,\n.checkbox-inline.disabled,\nfieldset[disabled]\n.checkbox-inline {\n cursor: not-allowed; }\n\n.radio.disabled label,\nfieldset[disabled] .radio label,\n.checkbox.disabled label,\nfieldset[disabled]\n.checkbox label {\n cursor: not-allowed; }\n\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 38px; }\n .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control,\n .input-group-lg > .form-control-static.input-group-addon,\n .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,\n .input-group-sm > .form-control-static.input-group-addon,\n .input-group-sm > .input-group-btn > .form-control-static.btn {\n padding-left: 0;\n padding-right: 0; }\n\n.input-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px; }\n\nselect.input-sm, .input-group-sm > select.form-control,\n.input-group-sm > select.input-group-addon,\n.input-group-sm > .input-group-btn > select.btn {\n height: 30px;\n line-height: 30px; }\n\ntextarea.input-sm, .input-group-sm > textarea.form-control,\n.input-group-sm > textarea.input-group-addon,\n.input-group-sm > .input-group-btn > textarea.btn,\nselect[multiple].input-sm,\n.input-group-sm > select[multiple].form-control,\n.input-group-sm > select[multiple].input-group-addon,\n.input-group-sm > .input-group-btn > select[multiple].btn {\n height: auto; }\n\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px; }\n\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px; }\n\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto; }\n\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 36px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5; }\n\n.input-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 54px;\n padding: 10px 16px;\n font-size: 24px;\n line-height: 1.3333333;\n border-radius: 6px; }\n\nselect.input-lg, .input-group-lg > select.form-control,\n.input-group-lg > select.input-group-addon,\n.input-group-lg > .input-group-btn > select.btn {\n height: 54px;\n line-height: 54px; }\n\ntextarea.input-lg, .input-group-lg > textarea.form-control,\n.input-group-lg > textarea.input-group-addon,\n.input-group-lg > .input-group-btn > textarea.btn,\nselect[multiple].input-lg,\n.input-group-lg > select[multiple].form-control,\n.input-group-lg > select[multiple].input-group-addon,\n.input-group-lg > .input-group-btn > select[multiple].btn {\n height: auto; }\n\n.form-group-lg .form-control {\n height: 54px;\n padding: 10px 16px;\n font-size: 24px;\n line-height: 1.3333333;\n border-radius: 6px; }\n\n.form-group-lg select.form-control {\n height: 54px;\n line-height: 54px; }\n\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto; }\n\n.form-group-lg .form-control-static {\n height: 54px;\n min-height: 48px;\n padding: 11px 16px;\n font-size: 24px;\n line-height: 1.3333333; }\n\n.has-feedback {\n position: relative; }\n .has-feedback .form-control {\n padding-right: 51.25px; }\n\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 41px;\n height: 41px;\n line-height: 41px;\n text-align: center;\n pointer-events: none; }\n\n.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,\n.input-group-lg > .input-group-addon + .form-control-feedback,\n.input-group-lg > .input-group-btn > .btn + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 54px;\n height: 54px;\n line-height: 54px; }\n\n.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,\n.input-group-sm > .input-group-addon + .form-control-feedback,\n.input-group-sm > .input-group-btn > .btn + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px; }\n\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d; }\n\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n .has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; }\n\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8; }\n\n.has-success .form-control-feedback {\n color: #3c763d; }\n\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b; }\n\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n .has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; }\n\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3; }\n\n.has-warning .form-control-feedback {\n color: #8a6d3b; }\n\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442; }\n\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n .has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; }\n\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede; }\n\n.has-error .form-control-feedback {\n color: #a94442; }\n\n.has-feedback label ~ .form-control-feedback {\n top: 29px; }\n\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0; }\n\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #a4aaae; }\n\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-static {\n display: inline-block; }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle; }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto; }\n .form-inline .input-group > .form-control {\n width: 100%; }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle; }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle; }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0; }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0; }\n .form-inline .has-feedback .form-control-feedback {\n top: 0; } }\n\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px; }\n\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 31px; }\n\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px; }\n .form-horizontal .form-group:before, .form-horizontal .form-group:after {\n content: \" \";\n display: table; }\n .form-horizontal .form-group:after {\n clear: both; }\n\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px; } }\n\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px; }\n\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 24px; } }\n\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px; } }\n\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: 200;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.72222;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .btn:hover, .btn:focus, .btn.focus {\n color: #636b6f;\n text-decoration: none; }\n .btn:active, .btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .btn.disabled, .btn[disabled],\n fieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none; }\n\n.btn-default {\n color: #636b6f;\n background-color: #f1f1f1;\n border-color: #e4e4e4; }\n .btn-default:focus, .btn-default.focus {\n color: #636b6f;\n background-color: #d8d8d8;\n border-color: #a5a5a5; }\n .btn-default:hover {\n color: #636b6f;\n background-color: #d8d8d8;\n border-color: #c6c6c6; }\n .btn-default:active, .btn-default.active,\n .open > .btn-default.dropdown-toggle {\n color: #636b6f;\n background-color: #d8d8d8;\n border-color: #c6c6c6; }\n .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus,\n .open > .btn-default.dropdown-toggle:hover,\n .open > .btn-default.dropdown-toggle:focus,\n .open > .btn-default.dropdown-toggle.focus {\n color: #636b6f;\n background-color: #c6c6c6;\n border-color: #a5a5a5; }\n .btn-default:active, .btn-default.active,\n .open > .btn-default.dropdown-toggle {\n background-image: none; }\n .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus,\n fieldset[disabled] .btn-default:hover,\n fieldset[disabled] .btn-default:focus,\n fieldset[disabled] .btn-default.focus {\n background-color: #f1f1f1;\n border-color: #e4e4e4; }\n .btn-default .badge {\n color: #f1f1f1;\n background-color: #636b6f; }\n\n.btn-primary {\n color: #fff;\n background-color: #34495e;\n border-color: #32465b; }\n .btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #22303d;\n border-color: #050709; }\n .btn-primary:hover {\n color: #fff;\n background-color: #22303d;\n border-color: #1c2833; }\n .btn-primary:active, .btn-primary.active,\n .open > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #22303d;\n border-color: #1c2833; }\n .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,\n .open > .btn-primary.dropdown-toggle:hover,\n .open > .btn-primary.dropdown-toggle:focus,\n .open > .btn-primary.dropdown-toggle.focus {\n color: #fff;\n background-color: #151e26;\n border-color: #050709; }\n .btn-primary:active, .btn-primary.active,\n .open > .btn-primary.dropdown-toggle {\n background-image: none; }\n .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus,\n fieldset[disabled] .btn-primary:hover,\n fieldset[disabled] .btn-primary:focus,\n fieldset[disabled] .btn-primary.focus {\n background-color: #34495e;\n border-color: #32465b; }\n .btn-primary .badge {\n color: #34495e;\n background-color: #fff; }\n\n.btn-success {\n color: #fff;\n background-color: #1abc9c;\n border-color: #1abc9c; }\n .btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #148f77;\n border-color: #0b4c3f; }\n .btn-success:hover {\n color: #fff;\n background-color: #148f77;\n border-color: #13866f; }\n .btn-success:active, .btn-success.active,\n .open > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #148f77;\n border-color: #13866f; }\n .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,\n .open > .btn-success.dropdown-toggle:hover,\n .open > .btn-success.dropdown-toggle:focus,\n .open > .btn-success.dropdown-toggle.focus {\n color: #fff;\n background-color: #0f705d;\n border-color: #0b4c3f; }\n .btn-success:active, .btn-success.active,\n .open > .btn-success.dropdown-toggle {\n background-image: none; }\n .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus,\n fieldset[disabled] .btn-success:hover,\n fieldset[disabled] .btn-success:focus,\n fieldset[disabled] .btn-success.focus {\n background-color: #1abc9c;\n border-color: #1abc9c; }\n .btn-success .badge {\n color: #1abc9c;\n background-color: #fff; }\n\n.btn-info {\n color: #fff;\n background-color: #3498db;\n border-color: #3096da; }\n .btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #217dbb;\n border-color: #154f76; }\n .btn-info:hover {\n color: #fff;\n background-color: #217dbb;\n border-color: #1f74ae; }\n .btn-info:active, .btn-info.active,\n .open > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #217dbb;\n border-color: #1f74ae; }\n .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus,\n .open > .btn-info.dropdown-toggle:hover,\n .open > .btn-info.dropdown-toggle:focus,\n .open > .btn-info.dropdown-toggle.focus {\n color: #fff;\n background-color: #1c699d;\n border-color: #154f76; }\n .btn-info:active, .btn-info.active,\n .open > .btn-info.dropdown-toggle {\n background-image: none; }\n .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus,\n fieldset[disabled] .btn-info:hover,\n fieldset[disabled] .btn-info:focus,\n fieldset[disabled] .btn-info.focus {\n background-color: #3498db;\n border-color: #3096da; }\n .btn-info .badge {\n color: #3498db;\n background-color: #fff; }\n\n.btn-warning {\n color: #fff;\n background-color: #f1c40f;\n border-color: #edc10e; }\n .btn-warning:focus, .btn-warning.focus {\n color: #fff;\n background-color: #c29d0b;\n border-color: #755f07; }\n .btn-warning:hover {\n color: #fff;\n background-color: #c29d0b;\n border-color: #b3920a; }\n .btn-warning:active, .btn-warning.active,\n .open > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #c29d0b;\n border-color: #b3920a; }\n .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus,\n .open > .btn-warning.dropdown-toggle:hover,\n .open > .btn-warning.dropdown-toggle:focus,\n .open > .btn-warning.dropdown-toggle.focus {\n color: #fff;\n background-color: #a08209;\n border-color: #755f07; }\n .btn-warning:active, .btn-warning.active,\n .open > .btn-warning.dropdown-toggle {\n background-image: none; }\n .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus,\n fieldset[disabled] .btn-warning:hover,\n fieldset[disabled] .btn-warning:focus,\n fieldset[disabled] .btn-warning.focus {\n background-color: #f1c40f;\n border-color: #edc10e; }\n .btn-warning .badge {\n color: #f1c40f;\n background-color: #fff; }\n\n.btn-danger {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e64837; }\n .btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #d62c1a;\n border-color: #8d1d11; }\n .btn-danger:hover {\n color: #fff;\n background-color: #d62c1a;\n border-color: #c82919; }\n .btn-danger:active, .btn-danger.active,\n .open > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #d62c1a;\n border-color: #c82919; }\n .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus,\n .open > .btn-danger.dropdown-toggle:hover,\n .open > .btn-danger.dropdown-toggle:focus,\n .open > .btn-danger.dropdown-toggle.focus {\n color: #fff;\n background-color: #b62516;\n border-color: #8d1d11; }\n .btn-danger:active, .btn-danger.active,\n .open > .btn-danger.dropdown-toggle {\n background-image: none; }\n .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus,\n fieldset[disabled] .btn-danger:hover,\n fieldset[disabled] .btn-danger:focus,\n fieldset[disabled] .btn-danger.focus {\n background-color: #e74c3c;\n border-color: #e64837; }\n .btn-danger .badge {\n color: #e74c3c;\n background-color: #fff; }\n\n.btn-link {\n color: #34495e;\n font-weight: normal;\n border-radius: 0; }\n .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled],\n fieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none; }\n .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {\n border-color: transparent; }\n .btn-link:hover, .btn-link:focus {\n color: #19232d;\n text-decoration: underline;\n background-color: transparent; }\n .btn-link[disabled]:hover, .btn-link[disabled]:focus,\n fieldset[disabled] .btn-link:hover,\n fieldset[disabled] .btn-link:focus {\n color: #bdc3c7;\n text-decoration: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 24px;\n line-height: 1.3333333;\n border-radius: 6px; }\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px; }\n\n.btn-xs, .btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px; }\n\n.btn-block {\n display: block;\n width: 100%; }\n\n.btn-block + .btn-block {\n margin-top: 5px; }\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%; }\n\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear; }\n .fade.in {\n opacity: 1; }\n\n.collapse {\n display: none; }\n .collapse.in {\n display: block; }\n\ntr.collapse.in {\n display: table-row; }\n\ntbody.collapse.in {\n display: table-row-group; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease; }\n\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent; }\n\n.dropup,\n.dropdown {\n position: relative; }\n\n.dropdown-toggle:focus {\n outline: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #52697f;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box; }\n .dropdown-menu.pull-right {\n right: 0;\n left: auto; }\n .dropdown-menu .divider {\n height: 1px;\n margin: 11px 0;\n overflow: hidden;\n background-color: #485c70; }\n .dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.72222;\n color: #fff;\n white-space: nowrap; }\n\n.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #fff;\n background-color: #1abc9c; }\n\n.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {\n color: white;\n text-decoration: none;\n outline: 0;\n background-color: #1abc9c; }\n\n.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {\n color: #bdc3c7; }\n\n.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed; }\n\n.open > .dropdown-menu {\n display: block; }\n\n.open > a {\n outline: 0; }\n\n.dropdown-menu-right {\n left: auto;\n right: 0; }\n\n.dropdown-menu-left {\n left: 0;\n right: auto; }\n\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.72222;\n color: fade(#52697f, 60%);\n white-space: nowrap; }\n\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990; }\n\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto; }\n\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\"; }\n\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px; }\n\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto; }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto; } }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n float: left; }\n .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n .btn-group-vertical > .btn:hover,\n .btn-group-vertical > .btn:focus,\n .btn-group-vertical > .btn:active,\n .btn-group-vertical > .btn.active {\n z-index: 2; }\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px; }\n\n.btn-toolbar {\n margin-left: -5px; }\n .btn-toolbar:before, .btn-toolbar:after {\n content: \" \";\n display: table; }\n .btn-toolbar:after {\n clear: both; }\n .btn-toolbar .btn,\n .btn-toolbar .btn-group,\n .btn-toolbar .input-group {\n float: left; }\n .btn-toolbar > .btn,\n .btn-toolbar > .btn-group,\n .btn-toolbar > .input-group {\n margin-left: 5px; }\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0; }\n\n.btn-group > .btn:first-child {\n margin-left: 0; }\n .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n\n.btn-group > .btn-group {\n float: left; }\n\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0; }\n\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0; }\n\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px; }\n\n.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px; }\n\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none; }\n\n.btn .caret {\n margin-left: 0; }\n\n.btn-lg .caret, .btn-group-lg > .btn .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0; }\n\n.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {\n border-width: 0 5px 5px; }\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%; }\n\n.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {\n content: \" \";\n display: table; }\n\n.btn-group-vertical > .btn-group:after {\n clear: both; }\n\n.btn-group-vertical > .btn-group > .btn {\n float: none; }\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0; }\n\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0; }\n\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px; }\n\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0; }\n\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate; }\n .btn-group-justified > .btn,\n .btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%; }\n .btn-group-justified > .btn-group .btn {\n width: 100%; }\n .btn-group-justified > .btn-group .dropdown-menu {\n left: auto; }\n\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate; }\n .input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0; }\n .input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0; }\n .input-group .form-control:focus {\n z-index: 3; }\n\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell; }\n .input-group-addon:not(:first-child):not(:last-child),\n .input-group-btn:not(:first-child):not(:last-child),\n .input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0; }\n\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; }\n\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #95a5a6;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #dce4ec;\n border-radius: 6px; }\n .input-group-addon.input-sm,\n .input-group-sm > .input-group-addon,\n .input-group-sm > .input-group-btn > .input-group-addon.btn {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px; }\n .input-group-addon.input-lg,\n .input-group-lg > .input-group-addon,\n .input-group-lg > .input-group-btn > .input-group-addon.btn {\n padding: 10px 16px;\n font-size: 24px;\n border-radius: 6px; }\n .input-group-addon input[type=\"radio\"],\n .input-group-addon input[type=\"checkbox\"] {\n margin-top: 0; }\n\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n\n.input-group-addon:first-child {\n border-right: 0; }\n\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n\n.input-group-addon:last-child {\n border-left: 0; }\n\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap; }\n .input-group-btn > .btn {\n position: relative; }\n .input-group-btn > .btn + .btn {\n margin-left: -1px; }\n .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {\n z-index: 2; }\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group {\n margin-right: -1px; }\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px; }\n\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none; }\n .nav:before, .nav:after {\n content: \" \";\n display: table; }\n .nav:after {\n clear: both; }\n .nav > li {\n position: relative;\n display: block; }\n .nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px; }\n .nav > li > a:hover, .nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee; }\n .nav > li.disabled > a {\n color: #bdc3c7; }\n .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {\n color: #bdc3c7;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed; }\n .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #34495e; }\n .nav .nav-divider {\n height: 1px;\n margin: 11px 0;\n overflow: hidden;\n background-color: #e5e5e5; }\n .nav > li > a > img {\n max-width: none; }\n\n.nav-tabs {\n border-bottom: 1px solid #ddd; }\n .nav-tabs > li {\n float: left;\n margin-bottom: -1px; }\n .nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.72222;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0; }\n .nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd; }\n .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\n color: #95a5a6;\n background-color: #f9f9fb;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default; }\n\n.nav-pills > li {\n float: left; }\n .nav-pills > li > a {\n border-radius: 4px; }\n .nav-pills > li + li {\n margin-left: 2px; }\n .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #34495e; }\n\n.nav-stacked > li {\n float: none; }\n .nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0; }\n\n.nav-justified, .nav-tabs.nav-justified {\n width: 100%; }\n .nav-justified > li, .nav-tabs.nav-justified > li {\n float: none; }\n .nav-justified > li > a, .nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px; }\n .nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto; }\n @media (min-width: 768px) {\n .nav-justified > li, .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%; }\n .nav-justified > li > a, .nav-tabs.nav-justified > li > a {\n margin-bottom: 0; } }\n\n.nav-tabs-justified, .nav-tabs.nav-justified {\n border-bottom: 0; }\n .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px; }\n .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,\n .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd; }\n @media (min-width: 768px) {\n .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0; }\n .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,\n .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #f9f9fb; } }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n\n.navbar {\n position: relative;\n min-height: 60px;\n margin-bottom: 0;\n border: 1px solid transparent; }\n .navbar:before, .navbar:after {\n content: \" \";\n display: table; }\n .navbar:after {\n clear: both; }\n @media (min-width: 768px) {\n .navbar {\n border-radius: 6px; } }\n\n.navbar-header:before, .navbar-header:after {\n content: \" \";\n display: table; }\n\n.navbar-header:after {\n clear: both; }\n\n@media (min-width: 768px) {\n .navbar-header {\n float: left; } }\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch; }\n .navbar-collapse:before, .navbar-collapse:after {\n content: \" \";\n display: table; }\n .navbar-collapse:after {\n clear: both; }\n .navbar-collapse.in {\n overflow-y: auto; }\n @media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none; }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important; }\n .navbar-collapse.in {\n overflow-y: visible; }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0; } }\n\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px; }\n @media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px; } }\n\n.container > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-header,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px; }\n @media (min-width: 768px) {\n .container > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-header,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0; } }\n\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px; }\n @media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0; } }\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030; }\n @media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0; } }\n\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px; }\n\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0; }\n\n.navbar-brand {\n float: left;\n padding: 18px 15px;\n font-size: 24px;\n line-height: 24px;\n height: 60px; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n .navbar-brand > img {\n display: block; }\n @media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px; } }\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 13px;\n margin-bottom: 13px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px; }\n .navbar-toggle:focus {\n outline: 0; }\n .navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px; }\n .navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px; }\n @media (min-width: 768px) {\n .navbar-toggle {\n display: none; } }\n\n.navbar-nav {\n margin: 9px -15px; }\n .navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 24px; }\n @media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none; }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px; }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 24px; }\n .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none; } }\n @media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0; }\n .navbar-nav > li {\n float: left; }\n .navbar-nav > li > a {\n padding-top: 18px;\n padding-bottom: 18px; } }\n\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 9.5px;\n margin-bottom: 9.5px; }\n @media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle; }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .navbar-form .form-control-static {\n display: inline-block; }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle; }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto; }\n .navbar-form .input-group > .form-control {\n width: 100%; }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle; }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle; }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0; }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0; }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0; } }\n @media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px; }\n .navbar-form .form-group:last-child {\n margin-bottom: 0; } }\n @media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none; } }\n\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n\n.navbar-btn {\n margin-top: 9.5px;\n margin-bottom: 9.5px; }\n .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {\n margin-top: 15px;\n margin-bottom: 15px; }\n .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {\n margin-top: 19px;\n margin-bottom: 19px; }\n\n.navbar-text {\n margin-top: 18px;\n margin-bottom: 18px; }\n @media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px; } }\n\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important; }\n .navbar-right {\n float: right !important;\n margin-right: -15px; }\n .navbar-right ~ .navbar-right {\n margin-right: 0; } }\n\n.navbar-default {\n background-color: #52697f;\n border-color: #dadae7; }\n .navbar-default .navbar-brand {\n color: #fff; }\n .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {\n color: #1abc9c;\n background-color: transparent; }\n .navbar-default .navbar-text {\n color: #777; }\n .navbar-default .navbar-nav > li > a {\n color: #fff; }\n .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {\n color: #1abc9c;\n background-color: transparent; }\n .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #1abc9c; }\n .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent; }\n .navbar-default .navbar-toggle {\n border-color: #52697f; }\n .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {\n background-color: #52697f; }\n .navbar-default .navbar-toggle .icon-bar {\n background-color: #fff; }\n .navbar-default .navbar-collapse,\n .navbar-default .navbar-form {\n border-color: #dadae7; }\n .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {\n background-color: #1abc9c;\n color: #fff; }\n @media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #fff; }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #1abc9c;\n background-color: transparent; }\n .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 {\n color: #fff;\n background-color: #1abc9c; }\n .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 {\n color: #ccc;\n background-color: transparent; } }\n .navbar-default .navbar-link {\n color: #fff; }\n .navbar-default .navbar-link:hover {\n color: #1abc9c; }\n .navbar-default .btn-link {\n color: #fff; }\n .navbar-default .btn-link:hover, .navbar-default .btn-link:focus {\n color: #1abc9c; }\n .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus,\n fieldset[disabled] .navbar-default .btn-link:hover,\n fieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc; }\n\n.navbar-inverse {\n background-color: #fff;\n border-color: #e6e6e6; }\n .navbar-inverse .navbar-brand {\n color: #52697f; }\n .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {\n color: #1abc9c;\n background-color: transparent; }\n .navbar-inverse .navbar-text {\n color: white; }\n .navbar-inverse .navbar-nav > li > a {\n color: #52697f; }\n .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {\n color: #1abc9c;\n background-color: transparent; }\n .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus {\n color: #52697f;\n background-color: #1abc9c; }\n .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent; }\n .navbar-inverse .navbar-toggle {\n border-color: #333; }\n .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {\n background-color: #333; }\n .navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff; }\n .navbar-inverse .navbar-collapse,\n .navbar-inverse .navbar-form {\n border-color: #ededed; }\n .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #1abc9c;\n color: #52697f; }\n @media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #e6e6e6; }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #e6e6e6; }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #52697f; }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #1abc9c;\n background-color: transparent; }\n .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 {\n color: #52697f;\n background-color: #1abc9c; }\n .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 {\n color: #444;\n background-color: transparent; } }\n .navbar-inverse .navbar-link {\n color: #52697f; }\n .navbar-inverse .navbar-link:hover {\n color: #1abc9c; }\n .navbar-inverse .btn-link {\n color: #52697f; }\n .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {\n color: #1abc9c; }\n .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus,\n fieldset[disabled] .navbar-inverse .btn-link:hover,\n fieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444; }\n\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 24px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px; }\n .breadcrumb > li {\n display: inline-block; }\n .breadcrumb > li + li:before {\n content: \"/ \";\n padding: 0 5px;\n color: #ccc; }\n .breadcrumb > .active {\n color: #bdc3c7; }\n\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 24px 0;\n border-radius: 4px; }\n .pagination > li {\n display: inline; }\n .pagination > li > a,\n .pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.72222;\n text-decoration: none;\n color: #34495e;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px; }\n .pagination > li:first-child > a,\n .pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px; }\n .pagination > li:last-child > a,\n .pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px; }\n .pagination > li > a:hover, .pagination > li > a:focus,\n .pagination > li > span:hover,\n .pagination > li > span:focus {\n z-index: 2;\n color: #19232d;\n background-color: #eeeeee;\n border-color: #ddd; }\n .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,\n .pagination > .active > span,\n .pagination > .active > span:hover,\n .pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #34495e;\n border-color: #34495e;\n cursor: default; }\n .pagination > .disabled > span,\n .pagination > .disabled > span:hover,\n .pagination > .disabled > span:focus,\n .pagination > .disabled > a,\n .pagination > .disabled > a:hover,\n .pagination > .disabled > a:focus {\n color: #bdc3c7;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed; }\n\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 24px;\n line-height: 1.3333333; }\n\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px; }\n\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px; }\n\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5; }\n\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px; }\n\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px; }\n\n.pager {\n padding-left: 0;\n margin: 24px 0;\n list-style: none;\n text-align: center; }\n .pager:before, .pager:after {\n content: \" \";\n display: table; }\n .pager:after {\n clear: both; }\n .pager li {\n display: inline; }\n .pager li > a,\n .pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px; }\n .pager li > a:hover,\n .pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee; }\n .pager .next > a,\n .pager .next > span {\n float: right; }\n .pager .previous > a,\n .pager .previous > span {\n float: left; }\n .pager .disabled > a,\n .pager .disabled > a:hover,\n .pager .disabled > a:focus,\n .pager .disabled > span {\n color: #bdc3c7;\n background-color: #fff;\n cursor: not-allowed; }\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em; }\n .label:empty {\n display: none; }\n .btn .label {\n position: relative;\n top: -1px; }\n\na.label:hover, a.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer; }\n\n.label-default {\n background-color: #bdc3c7; }\n .label-default[href]:hover, .label-default[href]:focus {\n background-color: #a1aab0; }\n\n.label-primary {\n background-color: #34495e; }\n .label-primary[href]:hover, .label-primary[href]:focus {\n background-color: #22303d; }\n\n.label-success {\n background-color: #1abc9c; }\n .label-success[href]:hover, .label-success[href]:focus {\n background-color: #148f77; }\n\n.label-info {\n background-color: #3498db; }\n .label-info[href]:hover, .label-info[href]:focus {\n background-color: #217dbb; }\n\n.label-warning {\n background-color: #f1c40f; }\n .label-warning[href]:hover, .label-warning[href]:focus {\n background-color: #c29d0b; }\n\n.label-danger {\n background-color: #e74c3c; }\n .label-danger[href]:hover, .label-danger[href]:focus {\n background-color: #d62c1a; }\n\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #bdc3c7;\n border-radius: 10px; }\n .badge:empty {\n display: none; }\n .btn .badge {\n position: relative;\n top: -1px; }\n .btn-xs .badge, .btn-group-xs > .btn .badge,\n .btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px; }\n .list-group-item.active > .badge,\n .nav-pills > .active > a > .badge {\n color: #34495e;\n background-color: #fff; }\n .list-group-item > .badge {\n float: right; }\n .list-group-item > .badge + .badge {\n margin-right: 5px; }\n .nav-pills > li > a > .badge {\n margin-left: 3px; }\n\na.badge:hover, a.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer; }\n\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee; }\n .jumbotron h1,\n .jumbotron .h1 {\n color: inherit; }\n .jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200; }\n .jumbotron > hr {\n border-top-color: #d5d5d5; }\n .container .jumbotron,\n .container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px; }\n .jumbotron .container {\n max-width: 100%; }\n @media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px; }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px; }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px; } }\n\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 24px;\n line-height: 1.72222;\n background-color: #f9f9fb;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out; }\n .thumbnail > img,\n .thumbnail a > img {\n display: block;\n max-width: 100%;\n height: auto;\n margin-left: auto;\n margin-right: auto; }\n .thumbnail .caption {\n padding: 9px;\n color: #636b6f; }\n\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #34495e; }\n\n.alert {\n padding: 15px;\n margin-bottom: 24px;\n border: 1px solid transparent;\n border-radius: 4px; }\n .alert h4 {\n margin-top: 0;\n color: inherit; }\n .alert .alert-link {\n font-weight: bold; }\n .alert > p,\n .alert > ul {\n margin-bottom: 0; }\n .alert > p + p {\n margin-top: 5px; }\n\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px; }\n .alert-dismissable .close,\n .alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit; }\n\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d; }\n .alert-success hr {\n border-top-color: #c9e2b3; }\n .alert-success .alert-link {\n color: #2b542c; }\n\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f; }\n .alert-info hr {\n border-top-color: #a6e1ec; }\n .alert-info .alert-link {\n color: #245269; }\n\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b; }\n .alert-warning hr {\n border-top-color: #f7e1b5; }\n .alert-warning .alert-link {\n color: #66512c; }\n\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442; }\n .alert-danger hr {\n border-top-color: #e4b9c0; }\n .alert-danger .alert-link {\n color: #843534; }\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0; }\n to {\n background-position: 0 0; } }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n overflow: hidden;\n height: 24px;\n margin-bottom: 24px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }\n\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 24px;\n color: #fff;\n text-align: center;\n background-color: #34495e;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease; }\n\n.progress-striped .progress-bar,\n.progress-bar-striped {\n 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);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px; }\n\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite; }\n\n.progress-bar-success {\n background-color: #1abc9c; }\n .progress-striped .progress-bar-success {\n 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);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-info {\n background-color: #3498db; }\n .progress-striped .progress-bar-info {\n 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);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-warning {\n background-color: #f1c40f; }\n .progress-striped .progress-bar-warning {\n 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);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-danger {\n background-color: #e74c3c; }\n .progress-striped .progress-bar-danger {\n 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);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.media {\n margin-top: 15px; }\n .media:first-child {\n margin-top: 0; }\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden; }\n\n.media-body {\n width: 10000px; }\n\n.media-object {\n display: block; }\n .media-object.img-thumbnail {\n max-width: none; }\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px; }\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px; }\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top; }\n\n.media-middle {\n vertical-align: middle; }\n\n.media-bottom {\n vertical-align: bottom; }\n\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px; }\n\n.media-list {\n padding-left: 0;\n list-style: none; }\n\n.list-group {\n margin-bottom: 20px;\n padding-left: 0; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #dadae7; }\n .list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px; }\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px; }\n\na.list-group-item,\nbutton.list-group-item {\n color: #555; }\n a.list-group-item .list-group-item-heading,\n button.list-group-item .list-group-item-heading {\n color: #333; }\n a.list-group-item:hover, a.list-group-item:focus,\n button.list-group-item:hover,\n button.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5; }\n\nbutton.list-group-item {\n width: 100%;\n text-align: left; }\n\n.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #bdc3c7;\n cursor: not-allowed; }\n .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading {\n color: inherit; }\n .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text {\n color: #bdc3c7; }\n\n.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #34495e;\n border-color: #34495e; }\n .list-group-item.active .list-group-item-heading,\n .list-group-item.active .list-group-item-heading > small,\n .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,\n .list-group-item.active:hover .list-group-item-heading > small,\n .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,\n .list-group-item.active:focus .list-group-item-heading > small,\n .list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit; }\n .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 {\n color: #98afc6; }\n\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8; }\n\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d; }\n a.list-group-item-success .list-group-item-heading,\n button.list-group-item-success .list-group-item-heading {\n color: inherit; }\n a.list-group-item-success:hover, a.list-group-item-success:focus,\n button.list-group-item-success:hover,\n button.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6; }\n a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus,\n button.list-group-item-success.active,\n button.list-group-item-success.active:hover,\n button.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d; }\n\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7; }\n\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f; }\n a.list-group-item-info .list-group-item-heading,\n button.list-group-item-info .list-group-item-heading {\n color: inherit; }\n a.list-group-item-info:hover, a.list-group-item-info:focus,\n button.list-group-item-info:hover,\n button.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3; }\n a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus,\n button.list-group-item-info.active,\n button.list-group-item-info.active:hover,\n button.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f; }\n\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3; }\n\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b; }\n a.list-group-item-warning .list-group-item-heading,\n button.list-group-item-warning .list-group-item-heading {\n color: inherit; }\n a.list-group-item-warning:hover, a.list-group-item-warning:focus,\n button.list-group-item-warning:hover,\n button.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc; }\n a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus,\n button.list-group-item-warning.active,\n button.list-group-item-warning.active:hover,\n button.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b; }\n\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede; }\n\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442; }\n a.list-group-item-danger .list-group-item-heading,\n button.list-group-item-danger .list-group-item-heading {\n color: inherit; }\n a.list-group-item-danger:hover, a.list-group-item-danger:focus,\n button.list-group-item-danger:hover,\n button.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc; }\n a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus,\n button.list-group-item-danger.active,\n button.list-group-item-danger.active:hover,\n button.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442; }\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px; }\n\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3; }\n\n.panel {\n margin-bottom: 24px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n\n.panel-body {\n padding: 15px; }\n .panel-body:before, .panel-body:after {\n content: \" \";\n display: table; }\n .panel-body:after {\n clear: both; }\n\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px; }\n .panel-heading > .dropdown .dropdown-toggle {\n color: inherit; }\n\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit; }\n .panel-title > a,\n .panel-title > small,\n .panel-title > .small,\n .panel-title > small > a,\n .panel-title > .small > a {\n color: inherit; }\n\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dadae7;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px; }\n\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0; }\n .panel > .list-group .list-group-item,\n .panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0; }\n .panel > .list-group:first-child .list-group-item:first-child,\n .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px; }\n .panel > .list-group:last-child .list-group-item:last-child,\n .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px; }\n\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0; }\n\n.list-group + .panel-footer {\n border-top-width: 0; }\n\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0; }\n .panel > .table caption,\n .panel > .table-responsive > .table caption,\n .panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px; }\n\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px; }\n .panel > .table:first-child > thead:first-child > tr:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px; }\n .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px; }\n\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px; }\n .panel > .table:last-child > tbody:last-child > tr:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px; }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px; }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px; }\n\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd; }\n\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0; }\n\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0; }\n .panel > .table-bordered > thead > tr > th:first-child,\n .panel > .table-bordered > thead > tr > td:first-child,\n .panel > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-bordered > tfoot > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0; }\n .panel > .table-bordered > thead > tr > th:last-child,\n .panel > .table-bordered > thead > tr > td:last-child,\n .panel > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-bordered > tfoot > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0; }\n .panel > .table-bordered > thead > tr:first-child > td,\n .panel > .table-bordered > thead > tr:first-child > th,\n .panel > .table-bordered > tbody > tr:first-child > td,\n .panel > .table-bordered > tbody > tr:first-child > th,\n .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0; }\n .panel > .table-bordered > tbody > tr:last-child > td,\n .panel > .table-bordered > tbody > tr:last-child > th,\n .panel > .table-bordered > tfoot > tr:last-child > td,\n .panel > .table-bordered > tfoot > tr:last-child > th,\n .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0; }\n\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0; }\n\n.panel-group {\n margin-bottom: 24px; }\n .panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px; }\n .panel-group .panel + .panel {\n margin-top: 5px; }\n .panel-group .panel-heading {\n border-bottom: 0; }\n .panel-group .panel-heading + .panel-collapse > .panel-body,\n .panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #dadae7; }\n .panel-group .panel-footer {\n border-top: 0; }\n .panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dadae7; }\n\n.panel-default {\n border-color: #dadae7; }\n .panel-default > .panel-heading {\n color: #333333;\n background-color: #fff;\n border-color: #dadae7; }\n .panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #dadae7; }\n .panel-default > .panel-heading .badge {\n color: #fff;\n background-color: #333333; }\n .panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #dadae7; }\n\n.panel-primary {\n border-color: #34495e; }\n .panel-primary > .panel-heading {\n color: #fff;\n background-color: #34495e;\n border-color: #34495e; }\n .panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #34495e; }\n .panel-primary > .panel-heading .badge {\n color: #34495e;\n background-color: #fff; }\n .panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #34495e; }\n\n.panel-success {\n border-color: #d6e9c6; }\n .panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6; }\n .panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6; }\n .panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d; }\n .panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6; }\n\n.panel-info {\n border-color: #bce8f1; }\n .panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1; }\n .panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1; }\n .panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f; }\n .panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1; }\n\n.panel-warning {\n border-color: #faebcc; }\n .panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc; }\n .panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc; }\n .panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b; }\n .panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc; }\n\n.panel-danger {\n border-color: #ebccd1; }\n .panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1; }\n .panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1; }\n .panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442; }\n .panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1; }\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0; }\n\n.embed-responsive-16by9 {\n padding-bottom: 56.25%; }\n\n.embed-responsive-4by3 {\n padding-bottom: 75%; }\n\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #ecf0f1;\n border: 1px solid #ecf0f1;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }\n .well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15); }\n\n.well-lg {\n padding: 24px;\n border-radius: 6px; }\n\n.well-sm {\n padding: 9px;\n border-radius: 3px; }\n\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20); }\n .close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50); }\n\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none; }\n\n.modal-open {\n overflow: hidden; }\n\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0; }\n .modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out; }\n .modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0); }\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px; }\n\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0); }\n .modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50); }\n\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5; }\n .modal-header:before, .modal-header:after {\n content: \" \";\n display: table; }\n .modal-header:after {\n clear: both; }\n\n.modal-header .close {\n margin-top: -2px; }\n\n.modal-title {\n margin: 0;\n line-height: 1.72222; }\n\n.modal-body {\n position: relative;\n padding: 15px; }\n\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5; }\n .modal-footer:before, .modal-footer:after {\n content: \" \";\n display: table; }\n .modal-footer:after {\n clear: both; }\n .modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; }\n .modal-footer .btn-group .btn + .btn {\n margin-left: -1px; }\n .modal-footer .btn-block + .btn-block {\n margin-left: 0; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto; }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }\n .modal-sm {\n width: 300px; } }\n\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"lato-regular\", \"Helvetica Neue\", Helvetica, Arial, \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.72222;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0); }\n .tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90); }\n .tooltip.top {\n margin-top: -3px;\n padding: 5px 0; }\n .tooltip.right {\n margin-left: 3px;\n padding: 0 5px; }\n .tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0; }\n .tooltip.left {\n margin-left: -3px;\n padding: 0 5px; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px; }\n\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000; }\n\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000; }\n\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000; }\n\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000; }\n\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000; }\n\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000; }\n\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000; }\n\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"lato-regular\", \"Helvetica Neue\", Helvetica, Arial, \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.72222;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }\n .popover.top {\n margin-top: -10px; }\n .popover.right {\n margin-left: 10px; }\n .popover.bottom {\n margin-top: 10px; }\n .popover.left {\n margin-left: -10px; }\n\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0; }\n\n.popover-content {\n padding: 9px 14px; }\n\n.popover > .arrow, .popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n\n.popover > .arrow {\n border-width: 11px; }\n\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\"; }\n\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px; }\n .popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff; }\n\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff; }\n\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px; }\n .popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff; }\n\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px; }\n\n.carousel {\n position: relative; }\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%; }\n .carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left; }\n .carousel-inner > .item > img,\n .carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n line-height: 1; }\n @media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px; }\n .carousel-inner > .item.next, .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0; }\n .carousel-inner > .item.prev, .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0; }\n .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0; } }\n .carousel-inner > .active,\n .carousel-inner > .next,\n .carousel-inner > .prev {\n display: block; }\n .carousel-inner > .active {\n left: 0; }\n .carousel-inner > .next,\n .carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%; }\n .carousel-inner > .next {\n left: 100%; }\n .carousel-inner > .prev {\n left: -100%; }\n .carousel-inner > .next.left,\n .carousel-inner > .prev.right {\n left: 0; }\n .carousel-inner > .active.left {\n left: -100%; }\n .carousel-inner > .active.right {\n left: 100%; }\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: transparent; }\n .carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }\n .carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }\n .carousel-control:hover, .carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90); }\n .carousel-control .icon-prev,\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block; }\n .carousel-control .icon-prev,\n .carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px; }\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px; }\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif; }\n .carousel-control .icon-prev:before {\n content: '\\2039'; }\n .carousel-control .icon-next:before {\n content: '\\203a'; }\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center; }\n .carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: transparent; }\n .carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff; }\n\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }\n .carousel-caption .btn {\n text-shadow: none; }\n\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px; }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px; }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px; }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px; }\n .carousel-indicators {\n bottom: 20px; } }\n\n.clearfix:before, .clearfix:after {\n content: \" \";\n display: table; }\n\n.clearfix:after {\n clear: both; }\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto; }\n\n.pull-right {\n float: right !important; }\n\n.pull-left {\n float: left !important; }\n\n.hide {\n display: none !important; }\n\n.show {\n display: block !important; }\n\n.invisible {\n visibility: hidden; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.hidden {\n display: none !important; }\n\n.affix {\n position: fixed; }\n\n@-ms-viewport {\n width: device-width; }\n\n.visible-xs {\n display: none !important; }\n\n.visible-sm {\n display: none !important; }\n\n.visible-md {\n display: none !important; }\n\n.visible-lg {\n display: none !important; }\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important; }\n\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important; }\n table.visible-xs {\n display: table !important; }\n tr.visible-xs {\n display: table-row !important; }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important; } }\n\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important; } }\n\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important; } }\n\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important; }\n table.visible-sm {\n display: table !important; }\n tr.visible-sm {\n display: table-row !important; }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important; }\n table.visible-md {\n display: table !important; }\n tr.visible-md {\n display: table-row !important; }\n th.visible-md,\n td.visible-md {\n display: table-cell !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important; } }\n\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important; }\n table.visible-lg {\n display: table !important; }\n tr.visible-lg {\n display: table-row !important; }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important; } }\n\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important; } }\n\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important; } }\n\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important; } }\n\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important; } }\n\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important; } }\n\n.visible-print {\n display: none !important; }\n\n@media print {\n .visible-print {\n display: block !important; }\n table.visible-print {\n display: table !important; }\n tr.visible-print {\n display: table-row !important; }\n th.visible-print,\n td.visible-print {\n display: table-cell !important; } }\n\n.visible-print-block {\n display: none !important; }\n @media print {\n .visible-print-block {\n display: block !important; } }\n\n.visible-print-inline {\n display: none !important; }\n @media print {\n .visible-print-inline {\n display: inline !important; } }\n\n.visible-print-inline-block {\n display: none !important; }\n @media print {\n .visible-print-inline-block {\n display: inline-block !important; } }\n\n@media print {\n .hidden-print {\n display: none !important; } }\n\n/*!\n Ionicons, v2.0.1\n Created by Ben Sperry for the Ionic Framework, http://ionicons.com/\n https://twitter.com/benjsperry https://twitter.com/ionicframework\n MIT License: https://github.com/driftyco/ionicons\n\n Android-style icons originally built by Google’s\n Material Design Icons: https://github.com/google/material-design-icons\n used under CC BY http://creativecommons.org/licenses/by/4.0/\n Modified icons to fit ionicon’s grid from original.\n*/\n@font-face {\n font-family: \"Ionicons\";\n src: url(\"../fonts/ionicons.eot?v=2.0.1\");\n src: url(\"../fonts/ionicons.eot?v=2.0.1#iefix\") format(\"embedded-opentype\"), url(\"../fonts/ionicons.ttf?v=2.0.1\") format(\"truetype\"), url(\"../fonts/ionicons.woff?v=2.0.1\") format(\"woff\"), url(\"../fonts/ionicons.svg?v=2.0.1#Ionicons\") format(\"svg\");\n font-weight: normal;\n font-style: normal; }\n\n.ion, .ionicons,\n.ion-alert:before,\n.ion-alert-circled:before,\n.ion-android-add:before,\n.ion-android-add-circle:before,\n.ion-android-alarm-clock:before,\n.ion-android-alert:before,\n.ion-android-apps:before,\n.ion-android-archive:before,\n.ion-android-arrow-back:before,\n.ion-android-arrow-down:before,\n.ion-android-arrow-dropdown:before,\n.ion-android-arrow-dropdown-circle:before,\n.ion-android-arrow-dropleft:before,\n.ion-android-arrow-dropleft-circle:before,\n.ion-android-arrow-dropright:before,\n.ion-android-arrow-dropright-circle:before,\n.ion-android-arrow-dropup:before,\n.ion-android-arrow-dropup-circle:before,\n.ion-android-arrow-forward:before,\n.ion-android-arrow-up:before,\n.ion-android-attach:before,\n.ion-android-bar:before,\n.ion-android-bicycle:before,\n.ion-android-boat:before,\n.ion-android-bookmark:before,\n.ion-android-bulb:before,\n.ion-android-bus:before,\n.ion-android-calendar:before,\n.ion-android-call:before,\n.ion-android-camera:before,\n.ion-android-cancel:before,\n.ion-android-car:before,\n.ion-android-cart:before,\n.ion-android-chat:before,\n.ion-android-checkbox:before,\n.ion-android-checkbox-blank:before,\n.ion-android-checkbox-outline:before,\n.ion-android-checkbox-outline-blank:before,\n.ion-android-checkmark-circle:before,\n.ion-android-clipboard:before,\n.ion-android-close:before,\n.ion-android-cloud:before,\n.ion-android-cloud-circle:before,\n.ion-android-cloud-done:before,\n.ion-android-cloud-outline:before,\n.ion-android-color-palette:before,\n.ion-android-compass:before,\n.ion-android-contact:before,\n.ion-android-contacts:before,\n.ion-android-contract:before,\n.ion-android-create:before,\n.ion-android-delete:before,\n.ion-android-desktop:before,\n.ion-android-document:before,\n.ion-android-done:before,\n.ion-android-done-all:before,\n.ion-android-download:before,\n.ion-android-drafts:before,\n.ion-android-exit:before,\n.ion-android-expand:before,\n.ion-android-favorite:before,\n.ion-android-favorite-outline:before,\n.ion-android-film:before,\n.ion-android-folder:before,\n.ion-android-folder-open:before,\n.ion-android-funnel:before,\n.ion-android-globe:before,\n.ion-android-hand:before,\n.ion-android-hangout:before,\n.ion-android-happy:before,\n.ion-android-home:before,\n.ion-android-image:before,\n.ion-android-laptop:before,\n.ion-android-list:before,\n.ion-android-locate:before,\n.ion-android-lock:before,\n.ion-android-mail:before,\n.ion-android-map:before,\n.ion-android-menu:before,\n.ion-android-microphone:before,\n.ion-android-microphone-off:before,\n.ion-android-more-horizontal:before,\n.ion-android-more-vertical:before,\n.ion-android-navigate:before,\n.ion-android-notifications:before,\n.ion-android-notifications-none:before,\n.ion-android-notifications-off:before,\n.ion-android-open:before,\n.ion-android-options:before,\n.ion-android-people:before,\n.ion-android-person:before,\n.ion-android-person-add:before,\n.ion-android-phone-landscape:before,\n.ion-android-phone-portrait:before,\n.ion-android-pin:before,\n.ion-android-plane:before,\n.ion-android-playstore:before,\n.ion-android-print:before,\n.ion-android-radio-button-off:before,\n.ion-android-radio-button-on:before,\n.ion-android-refresh:before,\n.ion-android-remove:before,\n.ion-android-remove-circle:before,\n.ion-android-restaurant:before,\n.ion-android-sad:before,\n.ion-android-search:before,\n.ion-android-send:before,\n.ion-android-settings:before,\n.ion-android-share:before,\n.ion-android-share-alt:before,\n.ion-android-star:before,\n.ion-android-star-half:before,\n.ion-android-star-outline:before,\n.ion-android-stopwatch:before,\n.ion-android-subway:before,\n.ion-android-sunny:before,\n.ion-android-sync:before,\n.ion-android-textsms:before,\n.ion-android-time:before,\n.ion-android-train:before,\n.ion-android-unlock:before,\n.ion-android-upload:before,\n.ion-android-volume-down:before,\n.ion-android-volume-mute:before,\n.ion-android-volume-off:before,\n.ion-android-volume-up:before,\n.ion-android-walk:before,\n.ion-android-warning:before,\n.ion-android-watch:before,\n.ion-android-wifi:before,\n.ion-aperture:before,\n.ion-archive:before,\n.ion-arrow-down-a:before,\n.ion-arrow-down-b:before,\n.ion-arrow-down-c:before,\n.ion-arrow-expand:before,\n.ion-arrow-graph-down-left:before,\n.ion-arrow-graph-down-right:before,\n.ion-arrow-graph-up-left:before,\n.ion-arrow-graph-up-right:before,\n.ion-arrow-left-a:before,\n.ion-arrow-left-b:before,\n.ion-arrow-left-c:before,\n.ion-arrow-move:before,\n.ion-arrow-resize:before,\n.ion-arrow-return-left:before,\n.ion-arrow-return-right:before,\n.ion-arrow-right-a:before,\n.ion-arrow-right-b:before,\n.ion-arrow-right-c:before,\n.ion-arrow-shrink:before,\n.ion-arrow-swap:before,\n.ion-arrow-up-a:before,\n.ion-arrow-up-b:before,\n.ion-arrow-up-c:before,\n.ion-asterisk:before,\n.ion-at:before,\n.ion-backspace:before,\n.ion-backspace-outline:before,\n.ion-bag:before,\n.ion-battery-charging:before,\n.ion-battery-empty:before,\n.ion-battery-full:before,\n.ion-battery-half:before,\n.ion-battery-low:before,\n.ion-beaker:before,\n.ion-beer:before,\n.ion-bluetooth:before,\n.ion-bonfire:before,\n.ion-bookmark:before,\n.ion-bowtie:before,\n.ion-briefcase:before,\n.ion-bug:before,\n.ion-calculator:before,\n.ion-calendar:before,\n.ion-camera:before,\n.ion-card:before,\n.ion-cash:before,\n.ion-chatbox:before,\n.ion-chatbox-working:before,\n.ion-chatboxes:before,\n.ion-chatbubble:before,\n.ion-chatbubble-working:before,\n.ion-chatbubbles:before,\n.ion-checkmark:before,\n.ion-checkmark-circled:before,\n.ion-checkmark-round:before,\n.ion-chevron-down:before,\n.ion-chevron-left:before,\n.ion-chevron-right:before,\n.ion-chevron-up:before,\n.ion-clipboard:before,\n.ion-clock:before,\n.ion-close:before,\n.ion-close-circled:before,\n.ion-close-round:before,\n.ion-closed-captioning:before,\n.ion-cloud:before,\n.ion-code:before,\n.ion-code-download:before,\n.ion-code-working:before,\n.ion-coffee:before,\n.ion-compass:before,\n.ion-compose:before,\n.ion-connection-bars:before,\n.ion-contrast:before,\n.ion-crop:before,\n.ion-cube:before,\n.ion-disc:before,\n.ion-document:before,\n.ion-document-text:before,\n.ion-drag:before,\n.ion-earth:before,\n.ion-easel:before,\n.ion-edit:before,\n.ion-egg:before,\n.ion-eject:before,\n.ion-email:before,\n.ion-email-unread:before,\n.ion-erlenmeyer-flask:before,\n.ion-erlenmeyer-flask-bubbles:before,\n.ion-eye:before,\n.ion-eye-disabled:before,\n.ion-female:before,\n.ion-filing:before,\n.ion-film-marker:before,\n.ion-fireball:before,\n.ion-flag:before,\n.ion-flame:before,\n.ion-flash:before,\n.ion-flash-off:before,\n.ion-folder:before,\n.ion-fork:before,\n.ion-fork-repo:before,\n.ion-forward:before,\n.ion-funnel:before,\n.ion-gear-a:before,\n.ion-gear-b:before,\n.ion-grid:before,\n.ion-hammer:before,\n.ion-happy:before,\n.ion-happy-outline:before,\n.ion-headphone:before,\n.ion-heart:before,\n.ion-heart-broken:before,\n.ion-help:before,\n.ion-help-buoy:before,\n.ion-help-circled:before,\n.ion-home:before,\n.ion-icecream:before,\n.ion-image:before,\n.ion-images:before,\n.ion-information:before,\n.ion-information-circled:before,\n.ion-ionic:before,\n.ion-ios-alarm:before,\n.ion-ios-alarm-outline:before,\n.ion-ios-albums:before,\n.ion-ios-albums-outline:before,\n.ion-ios-americanfootball:before,\n.ion-ios-americanfootball-outline:before,\n.ion-ios-analytics:before,\n.ion-ios-analytics-outline:before,\n.ion-ios-arrow-back:before,\n.ion-ios-arrow-down:before,\n.ion-ios-arrow-forward:before,\n.ion-ios-arrow-left:before,\n.ion-ios-arrow-right:before,\n.ion-ios-arrow-thin-down:before,\n.ion-ios-arrow-thin-left:before,\n.ion-ios-arrow-thin-right:before,\n.ion-ios-arrow-thin-up:before,\n.ion-ios-arrow-up:before,\n.ion-ios-at:before,\n.ion-ios-at-outline:before,\n.ion-ios-barcode:before,\n.ion-ios-barcode-outline:before,\n.ion-ios-baseball:before,\n.ion-ios-baseball-outline:before,\n.ion-ios-basketball:before,\n.ion-ios-basketball-outline:before,\n.ion-ios-bell:before,\n.ion-ios-bell-outline:before,\n.ion-ios-body:before,\n.ion-ios-body-outline:before,\n.ion-ios-bolt:before,\n.ion-ios-bolt-outline:before,\n.ion-ios-book:before,\n.ion-ios-book-outline:before,\n.ion-ios-bookmarks:before,\n.ion-ios-bookmarks-outline:before,\n.ion-ios-box:before,\n.ion-ios-box-outline:before,\n.ion-ios-briefcase:before,\n.ion-ios-briefcase-outline:before,\n.ion-ios-browsers:before,\n.ion-ios-browsers-outline:before,\n.ion-ios-calculator:before,\n.ion-ios-calculator-outline:before,\n.ion-ios-calendar:before,\n.ion-ios-calendar-outline:before,\n.ion-ios-camera:before,\n.ion-ios-camera-outline:before,\n.ion-ios-cart:before,\n.ion-ios-cart-outline:before,\n.ion-ios-chatboxes:before,\n.ion-ios-chatboxes-outline:before,\n.ion-ios-chatbubble:before,\n.ion-ios-chatbubble-outline:before,\n.ion-ios-checkmark:before,\n.ion-ios-checkmark-empty:before,\n.ion-ios-checkmark-outline:before,\n.ion-ios-circle-filled:before,\n.ion-ios-circle-outline:before,\n.ion-ios-clock:before,\n.ion-ios-clock-outline:before,\n.ion-ios-close:before,\n.ion-ios-close-empty:before,\n.ion-ios-close-outline:before,\n.ion-ios-cloud:before,\n.ion-ios-cloud-download:before,\n.ion-ios-cloud-download-outline:before,\n.ion-ios-cloud-outline:before,\n.ion-ios-cloud-upload:before,\n.ion-ios-cloud-upload-outline:before,\n.ion-ios-cloudy:before,\n.ion-ios-cloudy-night:before,\n.ion-ios-cloudy-night-outline:before,\n.ion-ios-cloudy-outline:before,\n.ion-ios-cog:before,\n.ion-ios-cog-outline:before,\n.ion-ios-color-filter:before,\n.ion-ios-color-filter-outline:before,\n.ion-ios-color-wand:before,\n.ion-ios-color-wand-outline:before,\n.ion-ios-compose:before,\n.ion-ios-compose-outline:before,\n.ion-ios-contact:before,\n.ion-ios-contact-outline:before,\n.ion-ios-copy:before,\n.ion-ios-copy-outline:before,\n.ion-ios-crop:before,\n.ion-ios-crop-strong:before,\n.ion-ios-download:before,\n.ion-ios-download-outline:before,\n.ion-ios-drag:before,\n.ion-ios-email:before,\n.ion-ios-email-outline:before,\n.ion-ios-eye:before,\n.ion-ios-eye-outline:before,\n.ion-ios-fastforward:before,\n.ion-ios-fastforward-outline:before,\n.ion-ios-filing:before,\n.ion-ios-filing-outline:before,\n.ion-ios-film:before,\n.ion-ios-film-outline:before,\n.ion-ios-flag:before,\n.ion-ios-flag-outline:before,\n.ion-ios-flame:before,\n.ion-ios-flame-outline:before,\n.ion-ios-flask:before,\n.ion-ios-flask-outline:before,\n.ion-ios-flower:before,\n.ion-ios-flower-outline:before,\n.ion-ios-folder:before,\n.ion-ios-folder-outline:before,\n.ion-ios-football:before,\n.ion-ios-football-outline:before,\n.ion-ios-game-controller-a:before,\n.ion-ios-game-controller-a-outline:before,\n.ion-ios-game-controller-b:before,\n.ion-ios-game-controller-b-outline:before,\n.ion-ios-gear:before,\n.ion-ios-gear-outline:before,\n.ion-ios-glasses:before,\n.ion-ios-glasses-outline:before,\n.ion-ios-grid-view:before,\n.ion-ios-grid-view-outline:before,\n.ion-ios-heart:before,\n.ion-ios-heart-outline:before,\n.ion-ios-help:before,\n.ion-ios-help-empty:before,\n.ion-ios-help-outline:before,\n.ion-ios-home:before,\n.ion-ios-home-outline:before,\n.ion-ios-infinite:before,\n.ion-ios-infinite-outline:before,\n.ion-ios-information:before,\n.ion-ios-information-empty:before,\n.ion-ios-information-outline:before,\n.ion-ios-ionic-outline:before,\n.ion-ios-keypad:before,\n.ion-ios-keypad-outline:before,\n.ion-ios-lightbulb:before,\n.ion-ios-lightbulb-outline:before,\n.ion-ios-list:before,\n.ion-ios-list-outline:before,\n.ion-ios-location:before,\n.ion-ios-location-outline:before,\n.ion-ios-locked:before,\n.ion-ios-locked-outline:before,\n.ion-ios-loop:before,\n.ion-ios-loop-strong:before,\n.ion-ios-medical:before,\n.ion-ios-medical-outline:before,\n.ion-ios-medkit:before,\n.ion-ios-medkit-outline:before,\n.ion-ios-mic:before,\n.ion-ios-mic-off:before,\n.ion-ios-mic-outline:before,\n.ion-ios-minus:before,\n.ion-ios-minus-empty:before,\n.ion-ios-minus-outline:before,\n.ion-ios-monitor:before,\n.ion-ios-monitor-outline:before,\n.ion-ios-moon:before,\n.ion-ios-moon-outline:before,\n.ion-ios-more:before,\n.ion-ios-more-outline:before,\n.ion-ios-musical-note:before,\n.ion-ios-musical-notes:before,\n.ion-ios-navigate:before,\n.ion-ios-navigate-outline:before,\n.ion-ios-nutrition:before,\n.ion-ios-nutrition-outline:before,\n.ion-ios-paper:before,\n.ion-ios-paper-outline:before,\n.ion-ios-paperplane:before,\n.ion-ios-paperplane-outline:before,\n.ion-ios-partlysunny:before,\n.ion-ios-partlysunny-outline:before,\n.ion-ios-pause:before,\n.ion-ios-pause-outline:before,\n.ion-ios-paw:before,\n.ion-ios-paw-outline:before,\n.ion-ios-people:before,\n.ion-ios-people-outline:before,\n.ion-ios-person:before,\n.ion-ios-person-outline:before,\n.ion-ios-personadd:before,\n.ion-ios-personadd-outline:before,\n.ion-ios-photos:before,\n.ion-ios-photos-outline:before,\n.ion-ios-pie:before,\n.ion-ios-pie-outline:before,\n.ion-ios-pint:before,\n.ion-ios-pint-outline:before,\n.ion-ios-play:before,\n.ion-ios-play-outline:before,\n.ion-ios-plus:before,\n.ion-ios-plus-empty:before,\n.ion-ios-plus-outline:before,\n.ion-ios-pricetag:before,\n.ion-ios-pricetag-outline:before,\n.ion-ios-pricetags:before,\n.ion-ios-pricetags-outline:before,\n.ion-ios-printer:before,\n.ion-ios-printer-outline:before,\n.ion-ios-pulse:before,\n.ion-ios-pulse-strong:before,\n.ion-ios-rainy:before,\n.ion-ios-rainy-outline:before,\n.ion-ios-recording:before,\n.ion-ios-recording-outline:before,\n.ion-ios-redo:before,\n.ion-ios-redo-outline:before,\n.ion-ios-refresh:before,\n.ion-ios-refresh-empty:before,\n.ion-ios-refresh-outline:before,\n.ion-ios-reload:before,\n.ion-ios-reverse-camera:before,\n.ion-ios-reverse-camera-outline:before,\n.ion-ios-rewind:before,\n.ion-ios-rewind-outline:before,\n.ion-ios-rose:before,\n.ion-ios-rose-outline:before,\n.ion-ios-search:before,\n.ion-ios-search-strong:before,\n.ion-ios-settings:before,\n.ion-ios-settings-strong:before,\n.ion-ios-shuffle:before,\n.ion-ios-shuffle-strong:before,\n.ion-ios-skipbackward:before,\n.ion-ios-skipbackward-outline:before,\n.ion-ios-skipforward:before,\n.ion-ios-skipforward-outline:before,\n.ion-ios-snowy:before,\n.ion-ios-speedometer:before,\n.ion-ios-speedometer-outline:before,\n.ion-ios-star:before,\n.ion-ios-star-half:before,\n.ion-ios-star-outline:before,\n.ion-ios-stopwatch:before,\n.ion-ios-stopwatch-outline:before,\n.ion-ios-sunny:before,\n.ion-ios-sunny-outline:before,\n.ion-ios-telephone:before,\n.ion-ios-telephone-outline:before,\n.ion-ios-tennisball:before,\n.ion-ios-tennisball-outline:before,\n.ion-ios-thunderstorm:before,\n.ion-ios-thunderstorm-outline:before,\n.ion-ios-time:before,\n.ion-ios-time-outline:before,\n.ion-ios-timer:before,\n.ion-ios-timer-outline:before,\n.ion-ios-toggle:before,\n.ion-ios-toggle-outline:before,\n.ion-ios-trash:before,\n.ion-ios-trash-outline:before,\n.ion-ios-undo:before,\n.ion-ios-undo-outline:before,\n.ion-ios-unlocked:before,\n.ion-ios-unlocked-outline:before,\n.ion-ios-upload:before,\n.ion-ios-upload-outline:before,\n.ion-ios-videocam:before,\n.ion-ios-videocam-outline:before,\n.ion-ios-volume-high:before,\n.ion-ios-volume-low:before,\n.ion-ios-wineglass:before,\n.ion-ios-wineglass-outline:before,\n.ion-ios-world:before,\n.ion-ios-world-outline:before,\n.ion-ipad:before,\n.ion-iphone:before,\n.ion-ipod:before,\n.ion-jet:before,\n.ion-key:before,\n.ion-knife:before,\n.ion-laptop:before,\n.ion-leaf:before,\n.ion-levels:before,\n.ion-lightbulb:before,\n.ion-link:before,\n.ion-load-a:before,\n.ion-load-b:before,\n.ion-load-c:before,\n.ion-load-d:before,\n.ion-location:before,\n.ion-lock-combination:before,\n.ion-locked:before,\n.ion-log-in:before,\n.ion-log-out:before,\n.ion-loop:before,\n.ion-magnet:before,\n.ion-male:before,\n.ion-man:before,\n.ion-map:before,\n.ion-medkit:before,\n.ion-merge:before,\n.ion-mic-a:before,\n.ion-mic-b:before,\n.ion-mic-c:before,\n.ion-minus:before,\n.ion-minus-circled:before,\n.ion-minus-round:before,\n.ion-model-s:before,\n.ion-monitor:before,\n.ion-more:before,\n.ion-mouse:before,\n.ion-music-note:before,\n.ion-navicon:before,\n.ion-navicon-round:before,\n.ion-navigate:before,\n.ion-network:before,\n.ion-no-smoking:before,\n.ion-nuclear:before,\n.ion-outlet:before,\n.ion-paintbrush:before,\n.ion-paintbucket:before,\n.ion-paper-airplane:before,\n.ion-paperclip:before,\n.ion-pause:before,\n.ion-person:before,\n.ion-person-add:before,\n.ion-person-stalker:before,\n.ion-pie-graph:before,\n.ion-pin:before,\n.ion-pinpoint:before,\n.ion-pizza:before,\n.ion-plane:before,\n.ion-planet:before,\n.ion-play:before,\n.ion-playstation:before,\n.ion-plus:before,\n.ion-plus-circled:before,\n.ion-plus-round:before,\n.ion-podium:before,\n.ion-pound:before,\n.ion-power:before,\n.ion-pricetag:before,\n.ion-pricetags:before,\n.ion-printer:before,\n.ion-pull-request:before,\n.ion-qr-scanner:before,\n.ion-quote:before,\n.ion-radio-waves:before,\n.ion-record:before,\n.ion-refresh:before,\n.ion-reply:before,\n.ion-reply-all:before,\n.ion-ribbon-a:before,\n.ion-ribbon-b:before,\n.ion-sad:before,\n.ion-sad-outline:before,\n.ion-scissors:before,\n.ion-search:before,\n.ion-settings:before,\n.ion-share:before,\n.ion-shuffle:before,\n.ion-skip-backward:before,\n.ion-skip-forward:before,\n.ion-social-android:before,\n.ion-social-android-outline:before,\n.ion-social-angular:before,\n.ion-social-angular-outline:before,\n.ion-social-apple:before,\n.ion-social-apple-outline:before,\n.ion-social-bitcoin:before,\n.ion-social-bitcoin-outline:before,\n.ion-social-buffer:before,\n.ion-social-buffer-outline:before,\n.ion-social-chrome:before,\n.ion-social-chrome-outline:before,\n.ion-social-codepen:before,\n.ion-social-codepen-outline:before,\n.ion-social-css3:before,\n.ion-social-css3-outline:before,\n.ion-social-designernews:before,\n.ion-social-designernews-outline:before,\n.ion-social-dribbble:before,\n.ion-social-dribbble-outline:before,\n.ion-social-dropbox:before,\n.ion-social-dropbox-outline:before,\n.ion-social-euro:before,\n.ion-social-euro-outline:before,\n.ion-social-facebook:before,\n.ion-social-facebook-outline:before,\n.ion-social-foursquare:before,\n.ion-social-foursquare-outline:before,\n.ion-social-freebsd-devil:before,\n.ion-social-github:before,\n.ion-social-github-outline:before,\n.ion-social-google:before,\n.ion-social-google-outline:before,\n.ion-social-googleplus:before,\n.ion-social-googleplus-outline:before,\n.ion-social-hackernews:before,\n.ion-social-hackernews-outline:before,\n.ion-social-html5:before,\n.ion-social-html5-outline:before,\n.ion-social-instagram:before,\n.ion-social-instagram-outline:before,\n.ion-social-javascript:before,\n.ion-social-javascript-outline:before,\n.ion-social-linkedin:before,\n.ion-social-linkedin-outline:before,\n.ion-social-markdown:before,\n.ion-social-nodejs:before,\n.ion-social-octocat:before,\n.ion-social-pinterest:before,\n.ion-social-pinterest-outline:before,\n.ion-social-python:before,\n.ion-social-reddit:before,\n.ion-social-reddit-outline:before,\n.ion-social-rss:before,\n.ion-social-rss-outline:before,\n.ion-social-sass:before,\n.ion-social-skype:before,\n.ion-social-skype-outline:before,\n.ion-social-snapchat:before,\n.ion-social-snapchat-outline:before,\n.ion-social-tumblr:before,\n.ion-social-tumblr-outline:before,\n.ion-social-tux:before,\n.ion-social-twitch:before,\n.ion-social-twitch-outline:before,\n.ion-social-twitter:before,\n.ion-social-twitter-outline:before,\n.ion-social-usd:before,\n.ion-social-usd-outline:before,\n.ion-social-vimeo:before,\n.ion-social-vimeo-outline:before,\n.ion-social-whatsapp:before,\n.ion-social-whatsapp-outline:before,\n.ion-social-windows:before,\n.ion-social-windows-outline:before,\n.ion-social-wordpress:before,\n.ion-social-wordpress-outline:before,\n.ion-social-yahoo:before,\n.ion-social-yahoo-outline:before,\n.ion-social-yen:before,\n.ion-social-yen-outline:before,\n.ion-social-youtube:before,\n.ion-social-youtube-outline:before,\n.ion-soup-can:before,\n.ion-soup-can-outline:before,\n.ion-speakerphone:before,\n.ion-speedometer:before,\n.ion-spoon:before,\n.ion-star:before,\n.ion-stats-bars:before,\n.ion-steam:before,\n.ion-stop:before,\n.ion-thermometer:before,\n.ion-thumbsdown:before,\n.ion-thumbsup:before,\n.ion-toggle:before,\n.ion-toggle-filled:before,\n.ion-transgender:before,\n.ion-trash-a:before,\n.ion-trash-b:before,\n.ion-trophy:before,\n.ion-tshirt:before,\n.ion-tshirt-outline:before,\n.ion-umbrella:before,\n.ion-university:before,\n.ion-unlocked:before,\n.ion-upload:before,\n.ion-usb:before,\n.ion-videocamera:before,\n.ion-volume-high:before,\n.ion-volume-low:before,\n.ion-volume-medium:before,\n.ion-volume-mute:before,\n.ion-wand:before,\n.ion-waterdrop:before,\n.ion-wifi:before,\n.ion-wineglass:before,\n.ion-woman:before,\n.ion-wrench:before,\n.ion-xbox:before {\n display: inline-block;\n font-family: \"Ionicons\";\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n text-rendering: auto;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.ion-alert:before {\n content: \"\"; }\n\n.ion-alert-circled:before {\n content: \"\"; }\n\n.ion-android-add:before {\n content: \"\"; }\n\n.ion-android-add-circle:before {\n content: \"\"; }\n\n.ion-android-alarm-clock:before {\n content: \"\"; }\n\n.ion-android-alert:before {\n content: \"\"; }\n\n.ion-android-apps:before {\n content: \"\"; }\n\n.ion-android-archive:before {\n content: \"\"; }\n\n.ion-android-arrow-back:before {\n content: \"\"; }\n\n.ion-android-arrow-down:before {\n content: \"\"; }\n\n.ion-android-arrow-dropdown:before {\n content: \"\"; }\n\n.ion-android-arrow-dropdown-circle:before {\n content: \"\"; }\n\n.ion-android-arrow-dropleft:before {\n content: \"\"; }\n\n.ion-android-arrow-dropleft-circle:before {\n content: \"\"; }\n\n.ion-android-arrow-dropright:before {\n content: \"\"; }\n\n.ion-android-arrow-dropright-circle:before {\n content: \"\"; }\n\n.ion-android-arrow-dropup:before {\n content: \"\"; }\n\n.ion-android-arrow-dropup-circle:before {\n content: \"\"; }\n\n.ion-android-arrow-forward:before {\n content: \"\"; }\n\n.ion-android-arrow-up:before {\n content: \"\"; }\n\n.ion-android-attach:before {\n content: \"\"; }\n\n.ion-android-bar:before {\n content: \"\"; }\n\n.ion-android-bicycle:before {\n content: \"\"; }\n\n.ion-android-boat:before {\n content: \"\"; }\n\n.ion-android-bookmark:before {\n content: \"\"; }\n\n.ion-android-bulb:before {\n content: \"\"; }\n\n.ion-android-bus:before {\n content: \"\"; }\n\n.ion-android-calendar:before {\n content: \"\"; }\n\n.ion-android-call:before {\n content: \"\"; }\n\n.ion-android-camera:before {\n content: \"\"; }\n\n.ion-android-cancel:before {\n content: \"\"; }\n\n.ion-android-car:before {\n content: \"\"; }\n\n.ion-android-cart:before {\n content: \"\"; }\n\n.ion-android-chat:before {\n content: \"\"; }\n\n.ion-android-checkbox:before {\n content: \"\"; }\n\n.ion-android-checkbox-blank:before {\n content: \"\"; }\n\n.ion-android-checkbox-outline:before {\n content: \"\"; }\n\n.ion-android-checkbox-outline-blank:before {\n content: \"\"; }\n\n.ion-android-checkmark-circle:before {\n content: \"\"; }\n\n.ion-android-clipboard:before {\n content: \"\"; }\n\n.ion-android-close:before {\n content: \"\"; }\n\n.ion-android-cloud:before {\n content: \"\"; }\n\n.ion-android-cloud-circle:before {\n content: \"\"; }\n\n.ion-android-cloud-done:before {\n content: \"\"; }\n\n.ion-android-cloud-outline:before {\n content: \"\"; }\n\n.ion-android-color-palette:before {\n content: \"\"; }\n\n.ion-android-compass:before {\n content: \"\"; }\n\n.ion-android-contact:before {\n content: \"\"; }\n\n.ion-android-contacts:before {\n content: \"\"; }\n\n.ion-android-contract:before {\n content: \"\"; }\n\n.ion-android-create:before {\n content: \"\"; }\n\n.ion-android-delete:before {\n content: \"\"; }\n\n.ion-android-desktop:before {\n content: \"\"; }\n\n.ion-android-document:before {\n content: \"\"; }\n\n.ion-android-done:before {\n content: \"\"; }\n\n.ion-android-done-all:before {\n content: \"\"; }\n\n.ion-android-download:before {\n content: \"\"; }\n\n.ion-android-drafts:before {\n content: \"\"; }\n\n.ion-android-exit:before {\n content: \"\"; }\n\n.ion-android-expand:before {\n content: \"\"; }\n\n.ion-android-favorite:before {\n content: \"\"; }\n\n.ion-android-favorite-outline:before {\n content: \"\"; }\n\n.ion-android-film:before {\n content: \"\"; }\n\n.ion-android-folder:before {\n content: \"\"; }\n\n.ion-android-folder-open:before {\n content: \"\"; }\n\n.ion-android-funnel:before {\n content: \"\"; }\n\n.ion-android-globe:before {\n content: \"\"; }\n\n.ion-android-hand:before {\n content: \"\"; }\n\n.ion-android-hangout:before {\n content: \"\"; }\n\n.ion-android-happy:before {\n content: \"\"; }\n\n.ion-android-home:before {\n content: \"\"; }\n\n.ion-android-image:before {\n content: \"\"; }\n\n.ion-android-laptop:before {\n content: \"\"; }\n\n.ion-android-list:before {\n content: \"\"; }\n\n.ion-android-locate:before {\n content: \"\"; }\n\n.ion-android-lock:before {\n content: \"\"; }\n\n.ion-android-mail:before {\n content: \"\"; }\n\n.ion-android-map:before {\n content: \"\"; }\n\n.ion-android-menu:before {\n content: \"\"; }\n\n.ion-android-microphone:before {\n content: \"\"; }\n\n.ion-android-microphone-off:before {\n content: \"\"; }\n\n.ion-android-more-horizontal:before {\n content: \"\"; }\n\n.ion-android-more-vertical:before {\n content: \"\"; }\n\n.ion-android-navigate:before {\n content: \"\"; }\n\n.ion-android-notifications:before {\n content: \"\"; }\n\n.ion-android-notifications-none:before {\n content: \"\"; }\n\n.ion-android-notifications-off:before {\n content: \"\"; }\n\n.ion-android-open:before {\n content: \"\"; }\n\n.ion-android-options:before {\n content: \"\"; }\n\n.ion-android-people:before {\n content: \"\"; }\n\n.ion-android-person:before {\n content: \"\"; }\n\n.ion-android-person-add:before {\n content: \"\"; }\n\n.ion-android-phone-landscape:before {\n content: \"\"; }\n\n.ion-android-phone-portrait:before {\n content: \"\"; }\n\n.ion-android-pin:before {\n content: \"\"; }\n\n.ion-android-plane:before {\n content: \"\"; }\n\n.ion-android-playstore:before {\n content: \"\"; }\n\n.ion-android-print:before {\n content: \"\"; }\n\n.ion-android-radio-button-off:before {\n content: \"\"; }\n\n.ion-android-radio-button-on:before {\n content: \"\"; }\n\n.ion-android-refresh:before {\n content: \"\"; }\n\n.ion-android-remove:before {\n content: \"\"; }\n\n.ion-android-remove-circle:before {\n content: \"\"; }\n\n.ion-android-restaurant:before {\n content: \"\"; }\n\n.ion-android-sad:before {\n content: \"\"; }\n\n.ion-android-search:before {\n content: \"\"; }\n\n.ion-android-send:before {\n content: \"\"; }\n\n.ion-android-settings:before {\n content: \"\"; }\n\n.ion-android-share:before {\n content: \"\"; }\n\n.ion-android-share-alt:before {\n content: \"\"; }\n\n.ion-android-star:before {\n content: \"\"; }\n\n.ion-android-star-half:before {\n content: \"\"; }\n\n.ion-android-star-outline:before {\n content: \"\"; }\n\n.ion-android-stopwatch:before {\n content: \"\"; }\n\n.ion-android-subway:before {\n content: \"\"; }\n\n.ion-android-sunny:before {\n content: \"\"; }\n\n.ion-android-sync:before {\n content: \"\"; }\n\n.ion-android-textsms:before {\n content: \"\"; }\n\n.ion-android-time:before {\n content: \"\"; }\n\n.ion-android-train:before {\n content: \"\"; }\n\n.ion-android-unlock:before {\n content: \"\"; }\n\n.ion-android-upload:before {\n content: \"\"; }\n\n.ion-android-volume-down:before {\n content: \"\"; }\n\n.ion-android-volume-mute:before {\n content: \"\"; }\n\n.ion-android-volume-off:before {\n content: \"\"; }\n\n.ion-android-volume-up:before {\n content: \"\"; }\n\n.ion-android-walk:before {\n content: \"\"; }\n\n.ion-android-warning:before {\n content: \"\"; }\n\n.ion-android-watch:before {\n content: \"\"; }\n\n.ion-android-wifi:before {\n content: \"\"; }\n\n.ion-aperture:before {\n content: \"\"; }\n\n.ion-archive:before {\n content: \"\"; }\n\n.ion-arrow-down-a:before {\n content: \"\"; }\n\n.ion-arrow-down-b:before {\n content: \"\"; }\n\n.ion-arrow-down-c:before {\n content: \"\"; }\n\n.ion-arrow-expand:before {\n content: \"\"; }\n\n.ion-arrow-graph-down-left:before {\n content: \"\"; }\n\n.ion-arrow-graph-down-right:before {\n content: \"\"; }\n\n.ion-arrow-graph-up-left:before {\n content: \"\"; }\n\n.ion-arrow-graph-up-right:before {\n content: \"\"; }\n\n.ion-arrow-left-a:before {\n content: \"\"; }\n\n.ion-arrow-left-b:before {\n content: \"\"; }\n\n.ion-arrow-left-c:before {\n content: \"\"; }\n\n.ion-arrow-move:before {\n content: \"\"; }\n\n.ion-arrow-resize:before {\n content: \"\"; }\n\n.ion-arrow-return-left:before {\n content: \"\"; }\n\n.ion-arrow-return-right:before {\n content: \"\"; }\n\n.ion-arrow-right-a:before {\n content: \"\"; }\n\n.ion-arrow-right-b:before {\n content: \"\"; }\n\n.ion-arrow-right-c:before {\n content: \"\"; }\n\n.ion-arrow-shrink:before {\n content: \"\"; }\n\n.ion-arrow-swap:before {\n content: \"\"; }\n\n.ion-arrow-up-a:before {\n content: \"\"; }\n\n.ion-arrow-up-b:before {\n content: \"\"; }\n\n.ion-arrow-up-c:before {\n content: \"\"; }\n\n.ion-asterisk:before {\n content: \"\"; }\n\n.ion-at:before {\n content: \"\"; }\n\n.ion-backspace:before {\n content: \"\"; }\n\n.ion-backspace-outline:before {\n content: \"\"; }\n\n.ion-bag:before {\n content: \"\"; }\n\n.ion-battery-charging:before {\n content: \"\"; }\n\n.ion-battery-empty:before {\n content: \"\"; }\n\n.ion-battery-full:before {\n content: \"\"; }\n\n.ion-battery-half:before {\n content: \"\"; }\n\n.ion-battery-low:before {\n content: \"\"; }\n\n.ion-beaker:before {\n content: \"\"; }\n\n.ion-beer:before {\n content: \"\"; }\n\n.ion-bluetooth:before {\n content: \"\"; }\n\n.ion-bonfire:before {\n content: \"\"; }\n\n.ion-bookmark:before {\n content: \"\"; }\n\n.ion-bowtie:before {\n content: \"\"; }\n\n.ion-briefcase:before {\n content: \"\"; }\n\n.ion-bug:before {\n content: \"\"; }\n\n.ion-calculator:before {\n content: \"\"; }\n\n.ion-calendar:before {\n content: \"\"; }\n\n.ion-camera:before {\n content: \"\"; }\n\n.ion-card:before {\n content: \"\"; }\n\n.ion-cash:before {\n content: \"\"; }\n\n.ion-chatbox:before {\n content: \"\"; }\n\n.ion-chatbox-working:before {\n content: \"\"; }\n\n.ion-chatboxes:before {\n content: \"\"; }\n\n.ion-chatbubble:before {\n content: \"\"; }\n\n.ion-chatbubble-working:before {\n content: \"\"; }\n\n.ion-chatbubbles:before {\n content: \"\"; }\n\n.ion-checkmark:before {\n content: \"\"; }\n\n.ion-checkmark-circled:before {\n content: \"\"; }\n\n.ion-checkmark-round:before {\n content: \"\"; }\n\n.ion-chevron-down:before {\n content: \"\"; }\n\n.ion-chevron-left:before {\n content: \"\"; }\n\n.ion-chevron-right:before {\n content: \"\"; }\n\n.ion-chevron-up:before {\n content: \"\"; }\n\n.ion-clipboard:before {\n content: \"\"; }\n\n.ion-clock:before {\n content: \"\"; }\n\n.ion-close:before {\n content: \"\"; }\n\n.ion-close-circled:before {\n content: \"\"; }\n\n.ion-close-round:before {\n content: \"\"; }\n\n.ion-closed-captioning:before {\n content: \"\"; }\n\n.ion-cloud:before {\n content: \"\"; }\n\n.ion-code:before {\n content: \"\"; }\n\n.ion-code-download:before {\n content: \"\"; }\n\n.ion-code-working:before {\n content: \"\"; }\n\n.ion-coffee:before {\n content: \"\"; }\n\n.ion-compass:before {\n content: \"\"; }\n\n.ion-compose:before {\n content: \"\"; }\n\n.ion-connection-bars:before {\n content: \"\"; }\n\n.ion-contrast:before {\n content: \"\"; }\n\n.ion-crop:before {\n content: \"\"; }\n\n.ion-cube:before {\n content: \"\"; }\n\n.ion-disc:before {\n content: \"\"; }\n\n.ion-document:before {\n content: \"\"; }\n\n.ion-document-text:before {\n content: \"\"; }\n\n.ion-drag:before {\n content: \"\"; }\n\n.ion-earth:before {\n content: \"\"; }\n\n.ion-easel:before {\n content: \"\"; }\n\n.ion-edit:before {\n content: \"\"; }\n\n.ion-egg:before {\n content: \"\"; }\n\n.ion-eject:before {\n content: \"\"; }\n\n.ion-email:before {\n content: \"\"; }\n\n.ion-email-unread:before {\n content: \"\"; }\n\n.ion-erlenmeyer-flask:before {\n content: \"\"; }\n\n.ion-erlenmeyer-flask-bubbles:before {\n content: \"\"; }\n\n.ion-eye:before {\n content: \"\"; }\n\n.ion-eye-disabled:before {\n content: \"\"; }\n\n.ion-female:before {\n content: \"\"; }\n\n.ion-filing:before {\n content: \"\"; }\n\n.ion-film-marker:before {\n content: \"\"; }\n\n.ion-fireball:before {\n content: \"\"; }\n\n.ion-flag:before {\n content: \"\"; }\n\n.ion-flame:before {\n content: \"\"; }\n\n.ion-flash:before {\n content: \"\"; }\n\n.ion-flash-off:before {\n content: \"\"; }\n\n.ion-folder:before {\n content: \"\"; }\n\n.ion-fork:before {\n content: \"\"; }\n\n.ion-fork-repo:before {\n content: \"\"; }\n\n.ion-forward:before {\n content: \"\"; }\n\n.ion-funnel:before {\n content: \"\"; }\n\n.ion-gear-a:before {\n content: \"\"; }\n\n.ion-gear-b:before {\n content: \"\"; }\n\n.ion-grid:before {\n content: \"\"; }\n\n.ion-hammer:before {\n content: \"\"; }\n\n.ion-happy:before {\n content: \"\"; }\n\n.ion-happy-outline:before {\n content: \"\"; }\n\n.ion-headphone:before {\n content: \"\"; }\n\n.ion-heart:before {\n content: \"\"; }\n\n.ion-heart-broken:before {\n content: \"\"; }\n\n.ion-help:before {\n content: \"\"; }\n\n.ion-help-buoy:before {\n content: \"\"; }\n\n.ion-help-circled:before {\n content: \"\"; }\n\n.ion-home:before {\n content: \"\"; }\n\n.ion-icecream:before {\n content: \"\"; }\n\n.ion-image:before {\n content: \"\"; }\n\n.ion-images:before {\n content: \"\"; }\n\n.ion-information:before {\n content: \"\"; }\n\n.ion-information-circled:before {\n content: \"\"; }\n\n.ion-ionic:before {\n content: \"\"; }\n\n.ion-ios-alarm:before {\n content: \"\"; }\n\n.ion-ios-alarm-outline:before {\n content: \"\"; }\n\n.ion-ios-albums:before {\n content: \"\"; }\n\n.ion-ios-albums-outline:before {\n content: \"\"; }\n\n.ion-ios-americanfootball:before {\n content: \"\"; }\n\n.ion-ios-americanfootball-outline:before {\n content: \"\"; }\n\n.ion-ios-analytics:before {\n content: \"\"; }\n\n.ion-ios-analytics-outline:before {\n content: \"\"; }\n\n.ion-ios-arrow-back:before {\n content: \"\"; }\n\n.ion-ios-arrow-down:before {\n content: \"\"; }\n\n.ion-ios-arrow-forward:before {\n content: \"\"; }\n\n.ion-ios-arrow-left:before {\n content: \"\"; }\n\n.ion-ios-arrow-right:before {\n content: \"\"; }\n\n.ion-ios-arrow-thin-down:before {\n content: \"\"; }\n\n.ion-ios-arrow-thin-left:before {\n content: \"\"; }\n\n.ion-ios-arrow-thin-right:before {\n content: \"\"; }\n\n.ion-ios-arrow-thin-up:before {\n content: \"\"; }\n\n.ion-ios-arrow-up:before {\n content: \"\"; }\n\n.ion-ios-at:before {\n content: \"\"; }\n\n.ion-ios-at-outline:before {\n content: \"\"; }\n\n.ion-ios-barcode:before {\n content: \"\"; }\n\n.ion-ios-barcode-outline:before {\n content: \"\"; }\n\n.ion-ios-baseball:before {\n content: \"\"; }\n\n.ion-ios-baseball-outline:before {\n content: \"\"; }\n\n.ion-ios-basketball:before {\n content: \"\"; }\n\n.ion-ios-basketball-outline:before {\n content: \"\"; }\n\n.ion-ios-bell:before {\n content: \"\"; }\n\n.ion-ios-bell-outline:before {\n content: \"\"; }\n\n.ion-ios-body:before {\n content: \"\"; }\n\n.ion-ios-body-outline:before {\n content: \"\"; }\n\n.ion-ios-bolt:before {\n content: \"\"; }\n\n.ion-ios-bolt-outline:before {\n content: \"\"; }\n\n.ion-ios-book:before {\n content: \"\"; }\n\n.ion-ios-book-outline:before {\n content: \"\"; }\n\n.ion-ios-bookmarks:before {\n content: \"\"; }\n\n.ion-ios-bookmarks-outline:before {\n content: \"\"; }\n\n.ion-ios-box:before {\n content: \"\"; }\n\n.ion-ios-box-outline:before {\n content: \"\"; }\n\n.ion-ios-briefcase:before {\n content: \"\"; }\n\n.ion-ios-briefcase-outline:before {\n content: \"\"; }\n\n.ion-ios-browsers:before {\n content: \"\"; }\n\n.ion-ios-browsers-outline:before {\n content: \"\"; }\n\n.ion-ios-calculator:before {\n content: \"\"; }\n\n.ion-ios-calculator-outline:before {\n content: \"\"; }\n\n.ion-ios-calendar:before {\n content: \"\"; }\n\n.ion-ios-calendar-outline:before {\n content: \"\"; }\n\n.ion-ios-camera:before {\n content: \"\"; }\n\n.ion-ios-camera-outline:before {\n content: \"\"; }\n\n.ion-ios-cart:before {\n content: \"\"; }\n\n.ion-ios-cart-outline:before {\n content: \"\"; }\n\n.ion-ios-chatboxes:before {\n content: \"\"; }\n\n.ion-ios-chatboxes-outline:before {\n content: \"\"; }\n\n.ion-ios-chatbubble:before {\n content: \"\"; }\n\n.ion-ios-chatbubble-outline:before {\n content: \"\"; }\n\n.ion-ios-checkmark:before {\n content: \"\"; }\n\n.ion-ios-checkmark-empty:before {\n content: \"\"; }\n\n.ion-ios-checkmark-outline:before {\n content: \"\"; }\n\n.ion-ios-circle-filled:before {\n content: \"\"; }\n\n.ion-ios-circle-outline:before {\n content: \"\"; }\n\n.ion-ios-clock:before {\n content: \"\"; }\n\n.ion-ios-clock-outline:before {\n content: \"\"; }\n\n.ion-ios-close:before {\n content: \"\"; }\n\n.ion-ios-close-empty:before {\n content: \"\"; }\n\n.ion-ios-close-outline:before {\n content: \"\"; }\n\n.ion-ios-cloud:before {\n content: \"\"; }\n\n.ion-ios-cloud-download:before {\n content: \"\"; }\n\n.ion-ios-cloud-download-outline:before {\n content: \"\"; }\n\n.ion-ios-cloud-outline:before {\n content: \"\"; }\n\n.ion-ios-cloud-upload:before {\n content: \"\"; }\n\n.ion-ios-cloud-upload-outline:before {\n content: \"\"; }\n\n.ion-ios-cloudy:before {\n content: \"\"; }\n\n.ion-ios-cloudy-night:before {\n content: \"\"; }\n\n.ion-ios-cloudy-night-outline:before {\n content: \"\"; }\n\n.ion-ios-cloudy-outline:before {\n content: \"\"; }\n\n.ion-ios-cog:before {\n content: \"\"; }\n\n.ion-ios-cog-outline:before {\n content: \"\"; }\n\n.ion-ios-color-filter:before {\n content: \"\"; }\n\n.ion-ios-color-filter-outline:before {\n content: \"\"; }\n\n.ion-ios-color-wand:before {\n content: \"\"; }\n\n.ion-ios-color-wand-outline:before {\n content: \"\"; }\n\n.ion-ios-compose:before {\n content: \"\"; }\n\n.ion-ios-compose-outline:before {\n content: \"\"; }\n\n.ion-ios-contact:before {\n content: \"\"; }\n\n.ion-ios-contact-outline:before {\n content: \"\"; }\n\n.ion-ios-copy:before {\n content: \"\"; }\n\n.ion-ios-copy-outline:before {\n content: \"\"; }\n\n.ion-ios-crop:before {\n content: \"\"; }\n\n.ion-ios-crop-strong:before {\n content: \"\"; }\n\n.ion-ios-download:before {\n content: \"\"; }\n\n.ion-ios-download-outline:before {\n content: \"\"; }\n\n.ion-ios-drag:before {\n content: \"\"; }\n\n.ion-ios-email:before {\n content: \"\"; }\n\n.ion-ios-email-outline:before {\n content: \"\"; }\n\n.ion-ios-eye:before {\n content: \"\"; }\n\n.ion-ios-eye-outline:before {\n content: \"\"; }\n\n.ion-ios-fastforward:before {\n content: \"\"; }\n\n.ion-ios-fastforward-outline:before {\n content: \"\"; }\n\n.ion-ios-filing:before {\n content: \"\"; }\n\n.ion-ios-filing-outline:before {\n content: \"\"; }\n\n.ion-ios-film:before {\n content: \"\"; }\n\n.ion-ios-film-outline:before {\n content: \"\"; }\n\n.ion-ios-flag:before {\n content: \"\"; }\n\n.ion-ios-flag-outline:before {\n content: \"\"; }\n\n.ion-ios-flame:before {\n content: \"\"; }\n\n.ion-ios-flame-outline:before {\n content: \"\"; }\n\n.ion-ios-flask:before {\n content: \"\"; }\n\n.ion-ios-flask-outline:before {\n content: \"\"; }\n\n.ion-ios-flower:before {\n content: \"\"; }\n\n.ion-ios-flower-outline:before {\n content: \"\"; }\n\n.ion-ios-folder:before {\n content: \"\"; }\n\n.ion-ios-folder-outline:before {\n content: \"\"; }\n\n.ion-ios-football:before {\n content: \"\"; }\n\n.ion-ios-football-outline:before {\n content: \"\"; }\n\n.ion-ios-game-controller-a:before {\n content: \"\"; }\n\n.ion-ios-game-controller-a-outline:before {\n content: \"\"; }\n\n.ion-ios-game-controller-b:before {\n content: \"\"; }\n\n.ion-ios-game-controller-b-outline:before {\n content: \"\"; }\n\n.ion-ios-gear:before {\n content: \"\"; }\n\n.ion-ios-gear-outline:before {\n content: \"\"; }\n\n.ion-ios-glasses:before {\n content: \"\"; }\n\n.ion-ios-glasses-outline:before {\n content: \"\"; }\n\n.ion-ios-grid-view:before {\n content: \"\"; }\n\n.ion-ios-grid-view-outline:before {\n content: \"\"; }\n\n.ion-ios-heart:before {\n content: \"\"; }\n\n.ion-ios-heart-outline:before {\n content: \"\"; }\n\n.ion-ios-help:before {\n content: \"\"; }\n\n.ion-ios-help-empty:before {\n content: \"\"; }\n\n.ion-ios-help-outline:before {\n content: \"\"; }\n\n.ion-ios-home:before {\n content: \"\"; }\n\n.ion-ios-home-outline:before {\n content: \"\"; }\n\n.ion-ios-infinite:before {\n content: \"\"; }\n\n.ion-ios-infinite-outline:before {\n content: \"\"; }\n\n.ion-ios-information:before {\n content: \"\"; }\n\n.ion-ios-information-empty:before {\n content: \"\"; }\n\n.ion-ios-information-outline:before {\n content: \"\"; }\n\n.ion-ios-ionic-outline:before {\n content: \"\"; }\n\n.ion-ios-keypad:before {\n content: \"\"; }\n\n.ion-ios-keypad-outline:before {\n content: \"\"; }\n\n.ion-ios-lightbulb:before {\n content: \"\"; }\n\n.ion-ios-lightbulb-outline:before {\n content: \"\"; }\n\n.ion-ios-list:before {\n content: \"\"; }\n\n.ion-ios-list-outline:before {\n content: \"\"; }\n\n.ion-ios-location:before {\n content: \"\"; }\n\n.ion-ios-location-outline:before {\n content: \"\"; }\n\n.ion-ios-locked:before {\n content: \"\"; }\n\n.ion-ios-locked-outline:before {\n content: \"\"; }\n\n.ion-ios-loop:before {\n content: \"\"; }\n\n.ion-ios-loop-strong:before {\n content: \"\"; }\n\n.ion-ios-medical:before {\n content: \"\"; }\n\n.ion-ios-medical-outline:before {\n content: \"\"; }\n\n.ion-ios-medkit:before {\n content: \"\"; }\n\n.ion-ios-medkit-outline:before {\n content: \"\"; }\n\n.ion-ios-mic:before {\n content: \"\"; }\n\n.ion-ios-mic-off:before {\n content: \"\"; }\n\n.ion-ios-mic-outline:before {\n content: \"\"; }\n\n.ion-ios-minus:before {\n content: \"\"; }\n\n.ion-ios-minus-empty:before {\n content: \"\"; }\n\n.ion-ios-minus-outline:before {\n content: \"\"; }\n\n.ion-ios-monitor:before {\n content: \"\"; }\n\n.ion-ios-monitor-outline:before {\n content: \"\"; }\n\n.ion-ios-moon:before {\n content: \"\"; }\n\n.ion-ios-moon-outline:before {\n content: \"\"; }\n\n.ion-ios-more:before {\n content: \"\"; }\n\n.ion-ios-more-outline:before {\n content: \"\"; }\n\n.ion-ios-musical-note:before {\n content: \"\"; }\n\n.ion-ios-musical-notes:before {\n content: \"\"; }\n\n.ion-ios-navigate:before {\n content: \"\"; }\n\n.ion-ios-navigate-outline:before {\n content: \"\"; }\n\n.ion-ios-nutrition:before {\n content: \"\"; }\n\n.ion-ios-nutrition-outline:before {\n content: \"\"; }\n\n.ion-ios-paper:before {\n content: \"\"; }\n\n.ion-ios-paper-outline:before {\n content: \"\"; }\n\n.ion-ios-paperplane:before {\n content: \"\"; }\n\n.ion-ios-paperplane-outline:before {\n content: \"\"; }\n\n.ion-ios-partlysunny:before {\n content: \"\"; }\n\n.ion-ios-partlysunny-outline:before {\n content: \"\"; }\n\n.ion-ios-pause:before {\n content: \"\"; }\n\n.ion-ios-pause-outline:before {\n content: \"\"; }\n\n.ion-ios-paw:before {\n content: \"\"; }\n\n.ion-ios-paw-outline:before {\n content: \"\"; }\n\n.ion-ios-people:before {\n content: \"\"; }\n\n.ion-ios-people-outline:before {\n content: \"\"; }\n\n.ion-ios-person:before {\n content: \"\"; }\n\n.ion-ios-person-outline:before {\n content: \"\"; }\n\n.ion-ios-personadd:before {\n content: \"\"; }\n\n.ion-ios-personadd-outline:before {\n content: \"\"; }\n\n.ion-ios-photos:before {\n content: \"\"; }\n\n.ion-ios-photos-outline:before {\n content: \"\"; }\n\n.ion-ios-pie:before {\n content: \"\"; }\n\n.ion-ios-pie-outline:before {\n content: \"\"; }\n\n.ion-ios-pint:before {\n content: \"\"; }\n\n.ion-ios-pint-outline:before {\n content: \"\"; }\n\n.ion-ios-play:before {\n content: \"\"; }\n\n.ion-ios-play-outline:before {\n content: \"\"; }\n\n.ion-ios-plus:before {\n content: \"\"; }\n\n.ion-ios-plus-empty:before {\n content: \"\"; }\n\n.ion-ios-plus-outline:before {\n content: \"\"; }\n\n.ion-ios-pricetag:before {\n content: \"\"; }\n\n.ion-ios-pricetag-outline:before {\n content: \"\"; }\n\n.ion-ios-pricetags:before {\n content: \"\"; }\n\n.ion-ios-pricetags-outline:before {\n content: \"\"; }\n\n.ion-ios-printer:before {\n content: \"\"; }\n\n.ion-ios-printer-outline:before {\n content: \"\"; }\n\n.ion-ios-pulse:before {\n content: \"\"; }\n\n.ion-ios-pulse-strong:before {\n content: \"\"; }\n\n.ion-ios-rainy:before {\n content: \"\"; }\n\n.ion-ios-rainy-outline:before {\n content: \"\"; }\n\n.ion-ios-recording:before {\n content: \"\"; }\n\n.ion-ios-recording-outline:before {\n content: \"\"; }\n\n.ion-ios-redo:before {\n content: \"\"; }\n\n.ion-ios-redo-outline:before {\n content: \"\"; }\n\n.ion-ios-refresh:before {\n content: \"\"; }\n\n.ion-ios-refresh-empty:before {\n content: \"\"; }\n\n.ion-ios-refresh-outline:before {\n content: \"\"; }\n\n.ion-ios-reload:before {\n content: \"\"; }\n\n.ion-ios-reverse-camera:before {\n content: \"\"; }\n\n.ion-ios-reverse-camera-outline:before {\n content: \"\"; }\n\n.ion-ios-rewind:before {\n content: \"\"; }\n\n.ion-ios-rewind-outline:before {\n content: \"\"; }\n\n.ion-ios-rose:before {\n content: \"\"; }\n\n.ion-ios-rose-outline:before {\n content: \"\"; }\n\n.ion-ios-search:before {\n content: \"\"; }\n\n.ion-ios-search-strong:before {\n content: \"\"; }\n\n.ion-ios-settings:before {\n content: \"\"; }\n\n.ion-ios-settings-strong:before {\n content: \"\"; }\n\n.ion-ios-shuffle:before {\n content: \"\"; }\n\n.ion-ios-shuffle-strong:before {\n content: \"\"; }\n\n.ion-ios-skipbackward:before {\n content: \"\"; }\n\n.ion-ios-skipbackward-outline:before {\n content: \"\"; }\n\n.ion-ios-skipforward:before {\n content: \"\"; }\n\n.ion-ios-skipforward-outline:before {\n content: \"\"; }\n\n.ion-ios-snowy:before {\n content: \"\"; }\n\n.ion-ios-speedometer:before {\n content: \"\"; }\n\n.ion-ios-speedometer-outline:before {\n content: \"\"; }\n\n.ion-ios-star:before {\n content: \"\"; }\n\n.ion-ios-star-half:before {\n content: \"\"; }\n\n.ion-ios-star-outline:before {\n content: \"\"; }\n\n.ion-ios-stopwatch:before {\n content: \"\"; }\n\n.ion-ios-stopwatch-outline:before {\n content: \"\"; }\n\n.ion-ios-sunny:before {\n content: \"\"; }\n\n.ion-ios-sunny-outline:before {\n content: \"\"; }\n\n.ion-ios-telephone:before {\n content: \"\"; }\n\n.ion-ios-telephone-outline:before {\n content: \"\"; }\n\n.ion-ios-tennisball:before {\n content: \"\"; }\n\n.ion-ios-tennisball-outline:before {\n content: \"\"; }\n\n.ion-ios-thunderstorm:before {\n content: \"\"; }\n\n.ion-ios-thunderstorm-outline:before {\n content: \"\"; }\n\n.ion-ios-time:before {\n content: \"\"; }\n\n.ion-ios-time-outline:before {\n content: \"\"; }\n\n.ion-ios-timer:before {\n content: \"\"; }\n\n.ion-ios-timer-outline:before {\n content: \"\"; }\n\n.ion-ios-toggle:before {\n content: \"\"; }\n\n.ion-ios-toggle-outline:before {\n content: \"\"; }\n\n.ion-ios-trash:before {\n content: \"\"; }\n\n.ion-ios-trash-outline:before {\n content: \"\"; }\n\n.ion-ios-undo:before {\n content: \"\"; }\n\n.ion-ios-undo-outline:before {\n content: \"\"; }\n\n.ion-ios-unlocked:before {\n content: \"\"; }\n\n.ion-ios-unlocked-outline:before {\n content: \"\"; }\n\n.ion-ios-upload:before {\n content: \"\"; }\n\n.ion-ios-upload-outline:before {\n content: \"\"; }\n\n.ion-ios-videocam:before {\n content: \"\"; }\n\n.ion-ios-videocam-outline:before {\n content: \"\"; }\n\n.ion-ios-volume-high:before {\n content: \"\"; }\n\n.ion-ios-volume-low:before {\n content: \"\"; }\n\n.ion-ios-wineglass:before {\n content: \"\"; }\n\n.ion-ios-wineglass-outline:before {\n content: \"\"; }\n\n.ion-ios-world:before {\n content: \"\"; }\n\n.ion-ios-world-outline:before {\n content: \"\"; }\n\n.ion-ipad:before {\n content: \"\"; }\n\n.ion-iphone:before {\n content: \"\"; }\n\n.ion-ipod:before {\n content: \"\"; }\n\n.ion-jet:before {\n content: \"\"; }\n\n.ion-key:before {\n content: \"\"; }\n\n.ion-knife:before {\n content: \"\"; }\n\n.ion-laptop:before {\n content: \"\"; }\n\n.ion-leaf:before {\n content: \"\"; }\n\n.ion-levels:before {\n content: \"\"; }\n\n.ion-lightbulb:before {\n content: \"\"; }\n\n.ion-link:before {\n content: \"\"; }\n\n.ion-load-a:before {\n content: \"\"; }\n\n.ion-load-b:before {\n content: \"\"; }\n\n.ion-load-c:before {\n content: \"\"; }\n\n.ion-load-d:before {\n content: \"\"; }\n\n.ion-location:before {\n content: \"\"; }\n\n.ion-lock-combination:before {\n content: \"\"; }\n\n.ion-locked:before {\n content: \"\"; }\n\n.ion-log-in:before {\n content: \"\"; }\n\n.ion-log-out:before {\n content: \"\"; }\n\n.ion-loop:before {\n content: \"\"; }\n\n.ion-magnet:before {\n content: \"\"; }\n\n.ion-male:before {\n content: \"\"; }\n\n.ion-man:before {\n content: \"\"; }\n\n.ion-map:before {\n content: \"\"; }\n\n.ion-medkit:before {\n content: \"\"; }\n\n.ion-merge:before {\n content: \"\"; }\n\n.ion-mic-a:before {\n content: \"\"; }\n\n.ion-mic-b:before {\n content: \"\"; }\n\n.ion-mic-c:before {\n content: \"\"; }\n\n.ion-minus:before {\n content: \"\"; }\n\n.ion-minus-circled:before {\n content: \"\"; }\n\n.ion-minus-round:before {\n content: \"\"; }\n\n.ion-model-s:before {\n content: \"\"; }\n\n.ion-monitor:before {\n content: \"\"; }\n\n.ion-more:before {\n content: \"\"; }\n\n.ion-mouse:before {\n content: \"\"; }\n\n.ion-music-note:before {\n content: \"\"; }\n\n.ion-navicon:before {\n content: \"\"; }\n\n.ion-navicon-round:before {\n content: \"\"; }\n\n.ion-navigate:before {\n content: \"\"; }\n\n.ion-network:before {\n content: \"\"; }\n\n.ion-no-smoking:before {\n content: \"\"; }\n\n.ion-nuclear:before {\n content: \"\"; }\n\n.ion-outlet:before {\n content: \"\"; }\n\n.ion-paintbrush:before {\n content: \"\"; }\n\n.ion-paintbucket:before {\n content: \"\"; }\n\n.ion-paper-airplane:before {\n content: \"\"; }\n\n.ion-paperclip:before {\n content: \"\"; }\n\n.ion-pause:before {\n content: \"\"; }\n\n.ion-person:before {\n content: \"\"; }\n\n.ion-person-add:before {\n content: \"\"; }\n\n.ion-person-stalker:before {\n content: \"\"; }\n\n.ion-pie-graph:before {\n content: \"\"; }\n\n.ion-pin:before {\n content: \"\"; }\n\n.ion-pinpoint:before {\n content: \"\"; }\n\n.ion-pizza:before {\n content: \"\"; }\n\n.ion-plane:before {\n content: \"\"; }\n\n.ion-planet:before {\n content: \"\"; }\n\n.ion-play:before {\n content: \"\"; }\n\n.ion-playstation:before {\n content: \"\"; }\n\n.ion-plus:before {\n content: \"\"; }\n\n.ion-plus-circled:before {\n content: \"\"; }\n\n.ion-plus-round:before {\n content: \"\"; }\n\n.ion-podium:before {\n content: \"\"; }\n\n.ion-pound:before {\n content: \"\"; }\n\n.ion-power:before {\n content: \"\"; }\n\n.ion-pricetag:before {\n content: \"\"; }\n\n.ion-pricetags:before {\n content: \"\"; }\n\n.ion-printer:before {\n content: \"\"; }\n\n.ion-pull-request:before {\n content: \"\"; }\n\n.ion-qr-scanner:before {\n content: \"\"; }\n\n.ion-quote:before {\n content: \"\"; }\n\n.ion-radio-waves:before {\n content: \"\"; }\n\n.ion-record:before {\n content: \"\"; }\n\n.ion-refresh:before {\n content: \"\"; }\n\n.ion-reply:before {\n content: \"\"; }\n\n.ion-reply-all:before {\n content: \"\"; }\n\n.ion-ribbon-a:before {\n content: \"\"; }\n\n.ion-ribbon-b:before {\n content: \"\"; }\n\n.ion-sad:before {\n content: \"\"; }\n\n.ion-sad-outline:before {\n content: \"\"; }\n\n.ion-scissors:before {\n content: \"\"; }\n\n.ion-search:before {\n content: \"\"; }\n\n.ion-settings:before {\n content: \"\"; }\n\n.ion-share:before {\n content: \"\"; }\n\n.ion-shuffle:before {\n content: \"\"; }\n\n.ion-skip-backward:before {\n content: \"\"; }\n\n.ion-skip-forward:before {\n content: \"\"; }\n\n.ion-social-android:before {\n content: \"\"; }\n\n.ion-social-android-outline:before {\n content: \"\"; }\n\n.ion-social-angular:before {\n content: \"\"; }\n\n.ion-social-angular-outline:before {\n content: \"\"; }\n\n.ion-social-apple:before {\n content: \"\"; }\n\n.ion-social-apple-outline:before {\n content: \"\"; }\n\n.ion-social-bitcoin:before {\n content: \"\"; }\n\n.ion-social-bitcoin-outline:before {\n content: \"\"; }\n\n.ion-social-buffer:before {\n content: \"\"; }\n\n.ion-social-buffer-outline:before {\n content: \"\"; }\n\n.ion-social-chrome:before {\n content: \"\"; }\n\n.ion-social-chrome-outline:before {\n content: \"\"; }\n\n.ion-social-codepen:before {\n content: \"\"; }\n\n.ion-social-codepen-outline:before {\n content: \"\"; }\n\n.ion-social-css3:before {\n content: \"\"; }\n\n.ion-social-css3-outline:before {\n content: \"\"; }\n\n.ion-social-designernews:before {\n content: \"\"; }\n\n.ion-social-designernews-outline:before {\n content: \"\"; }\n\n.ion-social-dribbble:before {\n content: \"\"; }\n\n.ion-social-dribbble-outline:before {\n content: \"\"; }\n\n.ion-social-dropbox:before {\n content: \"\"; }\n\n.ion-social-dropbox-outline:before {\n content: \"\"; }\n\n.ion-social-euro:before {\n content: \"\"; }\n\n.ion-social-euro-outline:before {\n content: \"\"; }\n\n.ion-social-facebook:before {\n content: \"\"; }\n\n.ion-social-facebook-outline:before {\n content: \"\"; }\n\n.ion-social-foursquare:before {\n content: \"\"; }\n\n.ion-social-foursquare-outline:before {\n content: \"\"; }\n\n.ion-social-freebsd-devil:before {\n content: \"\"; }\n\n.ion-social-github:before {\n content: \"\"; }\n\n.ion-social-github-outline:before {\n content: \"\"; }\n\n.ion-social-google:before {\n content: \"\"; }\n\n.ion-social-google-outline:before {\n content: \"\"; }\n\n.ion-social-googleplus:before {\n content: \"\"; }\n\n.ion-social-googleplus-outline:before {\n content: \"\"; }\n\n.ion-social-hackernews:before {\n content: \"\"; }\n\n.ion-social-hackernews-outline:before {\n content: \"\"; }\n\n.ion-social-html5:before {\n content: \"\"; }\n\n.ion-social-html5-outline:before {\n content: \"\"; }\n\n.ion-social-instagram:before {\n content: \"\"; }\n\n.ion-social-instagram-outline:before {\n content: \"\"; }\n\n.ion-social-javascript:before {\n content: \"\"; }\n\n.ion-social-javascript-outline:before {\n content: \"\"; }\n\n.ion-social-linkedin:before {\n content: \"\"; }\n\n.ion-social-linkedin-outline:before {\n content: \"\"; }\n\n.ion-social-markdown:before {\n content: \"\"; }\n\n.ion-social-nodejs:before {\n content: \"\"; }\n\n.ion-social-octocat:before {\n content: \"\"; }\n\n.ion-social-pinterest:before {\n content: \"\"; }\n\n.ion-social-pinterest-outline:before {\n content: \"\"; }\n\n.ion-social-python:before {\n content: \"\"; }\n\n.ion-social-reddit:before {\n content: \"\"; }\n\n.ion-social-reddit-outline:before {\n content: \"\"; }\n\n.ion-social-rss:before {\n content: \"\"; }\n\n.ion-social-rss-outline:before {\n content: \"\"; }\n\n.ion-social-sass:before {\n content: \"\"; }\n\n.ion-social-skype:before {\n content: \"\"; }\n\n.ion-social-skype-outline:before {\n content: \"\"; }\n\n.ion-social-snapchat:before {\n content: \"\"; }\n\n.ion-social-snapchat-outline:before {\n content: \"\"; }\n\n.ion-social-tumblr:before {\n content: \"\"; }\n\n.ion-social-tumblr-outline:before {\n content: \"\"; }\n\n.ion-social-tux:before {\n content: \"\"; }\n\n.ion-social-twitch:before {\n content: \"\"; }\n\n.ion-social-twitch-outline:before {\n content: \"\"; }\n\n.ion-social-twitter:before {\n content: \"\"; }\n\n.ion-social-twitter-outline:before {\n content: \"\"; }\n\n.ion-social-usd:before {\n content: \"\"; }\n\n.ion-social-usd-outline:before {\n content: \"\"; }\n\n.ion-social-vimeo:before {\n content: \"\"; }\n\n.ion-social-vimeo-outline:before {\n content: \"\"; }\n\n.ion-social-whatsapp:before {\n content: \"\"; }\n\n.ion-social-whatsapp-outline:before {\n content: \"\"; }\n\n.ion-social-windows:before {\n content: \"\"; }\n\n.ion-social-windows-outline:before {\n content: \"\"; }\n\n.ion-social-wordpress:before {\n content: \"\"; }\n\n.ion-social-wordpress-outline:before {\n content: \"\"; }\n\n.ion-social-yahoo:before {\n content: \"\"; }\n\n.ion-social-yahoo-outline:before {\n content: \"\"; }\n\n.ion-social-yen:before {\n content: \"\"; }\n\n.ion-social-yen-outline:before {\n content: \"\"; }\n\n.ion-social-youtube:before {\n content: \"\"; }\n\n.ion-social-youtube-outline:before {\n content: \"\"; }\n\n.ion-soup-can:before {\n content: \"\"; }\n\n.ion-soup-can-outline:before {\n content: \"\"; }\n\n.ion-speakerphone:before {\n content: \"\"; }\n\n.ion-speedometer:before {\n content: \"\"; }\n\n.ion-spoon:before {\n content: \"\"; }\n\n.ion-star:before {\n content: \"\"; }\n\n.ion-stats-bars:before {\n content: \"\"; }\n\n.ion-steam:before {\n content: \"\"; }\n\n.ion-stop:before {\n content: \"\"; }\n\n.ion-thermometer:before {\n content: \"\"; }\n\n.ion-thumbsdown:before {\n content: \"\"; }\n\n.ion-thumbsup:before {\n content: \"\"; }\n\n.ion-toggle:before {\n content: \"\"; }\n\n.ion-toggle-filled:before {\n content: \"\"; }\n\n.ion-transgender:before {\n content: \"\"; }\n\n.ion-trash-a:before {\n content: \"\"; }\n\n.ion-trash-b:before {\n content: \"\"; }\n\n.ion-trophy:before {\n content: \"\"; }\n\n.ion-tshirt:before {\n content: \"\"; }\n\n.ion-tshirt-outline:before {\n content: \"\"; }\n\n.ion-umbrella:before {\n content: \"\"; }\n\n.ion-university:before {\n content: \"\"; }\n\n.ion-unlocked:before {\n content: \"\"; }\n\n.ion-upload:before {\n content: \"\"; }\n\n.ion-usb:before {\n content: \"\"; }\n\n.ion-videocamera:before {\n content: \"\"; }\n\n.ion-volume-high:before {\n content: \"\"; }\n\n.ion-volume-low:before {\n content: \"\"; }\n\n.ion-volume-medium:before {\n content: \"\"; }\n\n.ion-volume-mute:before {\n content: \"\"; }\n\n.ion-wand:before {\n content: \"\"; }\n\n.ion-waterdrop:before {\n content: \"\"; }\n\n.ion-wifi:before {\n content: \"\"; }\n\n.ion-wineglass:before {\n content: \"\"; }\n\n.ion-woman:before {\n content: \"\"; }\n\n.ion-wrench:before {\n content: \"\"; }\n\n.ion-xbox:before {\n content: \"\"; }\n\nbody.stop-scrolling {\n height: 100%;\n overflow: hidden; }\n\n.sweet-overlay {\n background-color: black;\n /* IE8 */\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)\";\n /* IE8 */\n background-color: rgba(0, 0, 0, 0.4);\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: none;\n z-index: 10000; }\n\n.sweet-alert {\n background-color: white;\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n width: 478px;\n padding: 17px;\n border-radius: 5px;\n text-align: center;\n position: fixed;\n left: 50%;\n top: 50%;\n margin-left: -256px;\n margin-top: -200px;\n overflow: hidden;\n display: none;\n z-index: 99999; }\n @media all and (max-width: 540px) {\n .sweet-alert {\n width: auto;\n margin-left: 0;\n margin-right: 0;\n left: 15px;\n right: 15px; } }\n .sweet-alert h2 {\n color: #575757;\n font-size: 30px;\n text-align: center;\n font-weight: 600;\n text-transform: none;\n position: relative;\n margin: 25px 0;\n padding: 0;\n line-height: 40px;\n display: block; }\n .sweet-alert p {\n color: #797979;\n font-size: 16px;\n text-align: center;\n font-weight: 300;\n position: relative;\n text-align: inherit;\n float: none;\n margin: 0;\n padding: 0;\n line-height: normal; }\n .sweet-alert fieldset {\n border: none;\n position: relative; }\n .sweet-alert .sa-error-container {\n background-color: #f1f1f1;\n margin-left: -17px;\n margin-right: -17px;\n overflow: hidden;\n padding: 0 10px;\n max-height: 0;\n webkit-transition: padding 0.15s, max-height 0.15s;\n transition: padding 0.15s, max-height 0.15s; }\n .sweet-alert .sa-error-container.show {\n padding: 10px 0;\n max-height: 100px;\n webkit-transition: padding 0.2s, max-height 0.2s;\n transition: padding 0.25s, max-height 0.25s; }\n .sweet-alert .sa-error-container .icon {\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: #ea7d7d;\n color: white;\n line-height: 24px;\n text-align: center;\n margin-right: 3px; }\n .sweet-alert .sa-error-container p {\n display: inline-block; }\n .sweet-alert .sa-input-error {\n position: absolute;\n top: 29px;\n right: 26px;\n width: 20px;\n height: 20px;\n opacity: 0;\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n -webkit-transform-origin: 50% 50%;\n transform-origin: 50% 50%;\n -webkit-transition: all 0.1s;\n transition: all 0.1s; }\n .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after {\n content: \"\";\n width: 20px;\n height: 6px;\n background-color: #f06e57;\n border-radius: 3px;\n position: absolute;\n top: 50%;\n margin-top: -4px;\n left: 50%;\n margin-left: -9px; }\n .sweet-alert .sa-input-error::before {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n .sweet-alert .sa-input-error::after {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .sweet-alert .sa-input-error.show {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1); }\n .sweet-alert input {\n width: 100%;\n box-sizing: border-box;\n border-radius: 3px;\n border: 1px solid #d7d7d7;\n height: 43px;\n margin-top: 10px;\n margin-bottom: 17px;\n font-size: 18px;\n box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06);\n padding: 0 12px;\n display: none;\n -webkit-transition: all 0.3s;\n transition: all 0.3s; }\n .sweet-alert input:focus {\n outline: none;\n box-shadow: 0px 0px 3px #c4e6f5;\n border: 1px solid #b4dbed; }\n .sweet-alert input:focus::-moz-placeholder {\n transition: opacity 0.3s 0.03s ease;\n opacity: 0.5; }\n .sweet-alert input:focus:-ms-input-placeholder {\n transition: opacity 0.3s 0.03s ease;\n opacity: 0.5; }\n .sweet-alert input:focus::-webkit-input-placeholder {\n transition: opacity 0.3s 0.03s ease;\n opacity: 0.5; }\n .sweet-alert input::-moz-placeholder {\n color: #bdbdbd; }\n .sweet-alert input:-ms-input-placeholder {\n color: #bdbdbd; }\n .sweet-alert input::-webkit-input-placeholder {\n color: #bdbdbd; }\n .sweet-alert.show-input input {\n display: block; }\n .sweet-alert .sa-confirm-button-container {\n display: inline-block;\n position: relative; }\n .sweet-alert .la-ball-fall {\n position: absolute;\n left: 50%;\n top: 50%;\n margin-left: -27px;\n margin-top: 4px;\n opacity: 0;\n visibility: hidden; }\n .sweet-alert button {\n background-color: #8CD4F5;\n color: white;\n border: none;\n box-shadow: none;\n font-size: 17px;\n font-weight: 500;\n -webkit-border-radius: 4px;\n border-radius: 5px;\n padding: 10px 32px;\n margin: 26px 5px 0 5px;\n cursor: pointer; }\n .sweet-alert button:focus {\n outline: none;\n box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); }\n .sweet-alert button:hover {\n background-color: #7ecff4; }\n .sweet-alert button:active {\n background-color: #5dc2f1; }\n .sweet-alert button.cancel {\n background-color: #C1C1C1; }\n .sweet-alert button.cancel:hover {\n background-color: #b9b9b9; }\n .sweet-alert button.cancel:active {\n background-color: #a8a8a8; }\n .sweet-alert button.cancel:focus {\n box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; }\n .sweet-alert button[disabled] {\n opacity: .6;\n cursor: default; }\n .sweet-alert button.confirm[disabled] {\n color: transparent; }\n .sweet-alert button.confirm[disabled] ~ .la-ball-fall {\n opacity: 1;\n visibility: visible;\n transition-delay: 0s; }\n .sweet-alert button::-moz-focus-inner {\n border: 0; }\n .sweet-alert[data-has-cancel-button=false] button {\n box-shadow: none !important; }\n .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] {\n padding-bottom: 40px; }\n .sweet-alert .sa-icon {\n width: 80px;\n height: 80px;\n border: 4px solid gray;\n -webkit-border-radius: 40px;\n border-radius: 40px;\n border-radius: 50%;\n margin: 20px auto;\n padding: 0;\n position: relative;\n box-sizing: content-box; }\n .sweet-alert .sa-icon.sa-error {\n border-color: #F27474; }\n .sweet-alert .sa-icon.sa-error .sa-x-mark {\n position: relative;\n display: block; }\n .sweet-alert .sa-icon.sa-error .sa-line {\n position: absolute;\n height: 5px;\n width: 47px;\n background-color: #F27474;\n display: block;\n top: 37px;\n border-radius: 2px; }\n .sweet-alert .sa-icon.sa-error .sa-line.sa-left {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n left: 17px; }\n .sweet-alert .sa-icon.sa-error .sa-line.sa-right {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n right: 16px; }\n .sweet-alert .sa-icon.sa-warning {\n border-color: #F8BB86; }\n .sweet-alert .sa-icon.sa-warning .sa-body {\n position: absolute;\n width: 5px;\n height: 47px;\n left: 50%;\n top: 10px;\n -webkit-border-radius: 2px;\n border-radius: 2px;\n margin-left: -2px;\n background-color: #F8BB86; }\n .sweet-alert .sa-icon.sa-warning .sa-dot {\n position: absolute;\n width: 7px;\n height: 7px;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n margin-left: -3px;\n left: 50%;\n bottom: 10px;\n background-color: #F8BB86; }\n .sweet-alert .sa-icon.sa-info {\n border-color: #C9DAE1; }\n .sweet-alert .sa-icon.sa-info::before {\n content: \"\";\n position: absolute;\n width: 5px;\n height: 29px;\n left: 50%;\n bottom: 17px;\n border-radius: 2px;\n margin-left: -2px;\n background-color: #C9DAE1; }\n .sweet-alert .sa-icon.sa-info::after {\n content: \"\";\n position: absolute;\n width: 7px;\n height: 7px;\n border-radius: 50%;\n margin-left: -3px;\n top: 19px;\n background-color: #C9DAE1; }\n .sweet-alert .sa-icon.sa-success {\n border-color: #A5DC86; }\n .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after {\n content: '';\n -webkit-border-radius: 40px;\n border-radius: 40px;\n border-radius: 50%;\n position: absolute;\n width: 60px;\n height: 120px;\n background: white;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .sweet-alert .sa-icon.sa-success::before {\n -webkit-border-radius: 120px 0 0 120px;\n border-radius: 120px 0 0 120px;\n top: -7px;\n left: -33px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 60px 60px;\n transform-origin: 60px 60px; }\n .sweet-alert .sa-icon.sa-success::after {\n -webkit-border-radius: 0 120px 120px 0;\n border-radius: 0 120px 120px 0;\n top: -11px;\n left: 30px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 0px 60px;\n transform-origin: 0px 60px; }\n .sweet-alert .sa-icon.sa-success .sa-placeholder {\n width: 80px;\n height: 80px;\n border: 4px solid rgba(165, 220, 134, 0.2);\n -webkit-border-radius: 40px;\n border-radius: 40px;\n border-radius: 50%;\n box-sizing: content-box;\n position: absolute;\n left: -4px;\n top: -4px;\n z-index: 2; }\n .sweet-alert .sa-icon.sa-success .sa-fix {\n width: 5px;\n height: 90px;\n background-color: white;\n position: absolute;\n left: 28px;\n top: 8px;\n z-index: 1;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n .sweet-alert .sa-icon.sa-success .sa-line {\n height: 5px;\n background-color: #A5DC86;\n display: block;\n border-radius: 2px;\n position: absolute;\n z-index: 2; }\n .sweet-alert .sa-icon.sa-success .sa-line.sa-tip {\n width: 25px;\n left: 14px;\n top: 46px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .sweet-alert .sa-icon.sa-success .sa-line.sa-long {\n width: 47px;\n right: 8px;\n top: 38px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n .sweet-alert .sa-icon.sa-custom {\n background-size: contain;\n border-radius: 0;\n border: none;\n background-position: center center;\n background-repeat: no-repeat; }\n\n/*\n * Animations\n */\n@-webkit-keyframes showSweetAlert {\n 0% {\n transform: scale(0.7);\n -webkit-transform: scale(0.7); }\n 45% {\n transform: scale(1.05);\n -webkit-transform: scale(1.05); }\n 80% {\n transform: scale(0.95);\n -webkit-transform: scale(0.95); }\n 100% {\n transform: scale(1);\n -webkit-transform: scale(1); } }\n\n@keyframes showSweetAlert {\n 0% {\n transform: scale(0.7);\n -webkit-transform: scale(0.7); }\n 45% {\n transform: scale(1.05);\n -webkit-transform: scale(1.05); }\n 80% {\n transform: scale(0.95);\n -webkit-transform: scale(0.95); }\n 100% {\n transform: scale(1);\n -webkit-transform: scale(1); } }\n\n@-webkit-keyframes hideSweetAlert {\n 0% {\n transform: scale(1);\n -webkit-transform: scale(1); }\n 100% {\n transform: scale(0.5);\n -webkit-transform: scale(0.5); } }\n\n@keyframes hideSweetAlert {\n 0% {\n transform: scale(1);\n -webkit-transform: scale(1); }\n 100% {\n transform: scale(0.5);\n -webkit-transform: scale(0.5); } }\n\n@-webkit-keyframes slideFromTop {\n 0% {\n top: 0%; }\n 100% {\n top: 50%; } }\n\n@keyframes slideFromTop {\n 0% {\n top: 0%; }\n 100% {\n top: 50%; } }\n\n@-webkit-keyframes slideToTop {\n 0% {\n top: 50%; }\n 100% {\n top: 0%; } }\n\n@keyframes slideToTop {\n 0% {\n top: 50%; }\n 100% {\n top: 0%; } }\n\n@-webkit-keyframes slideFromBottom {\n 0% {\n top: 70%; }\n 100% {\n top: 50%; } }\n\n@keyframes slideFromBottom {\n 0% {\n top: 70%; }\n 100% {\n top: 50%; } }\n\n@-webkit-keyframes slideToBottom {\n 0% {\n top: 50%; }\n 100% {\n top: 70%; } }\n\n@keyframes slideToBottom {\n 0% {\n top: 50%; }\n 100% {\n top: 70%; } }\n\n.showSweetAlert[data-animation=pop] {\n -webkit-animation: showSweetAlert 0.3s;\n animation: showSweetAlert 0.3s; }\n\n.showSweetAlert[data-animation=none] {\n -webkit-animation: none;\n animation: none; }\n\n.showSweetAlert[data-animation=slide-from-top] {\n -webkit-animation: slideFromTop 0.3s;\n animation: slideFromTop 0.3s; }\n\n.showSweetAlert[data-animation=slide-from-bottom] {\n -webkit-animation: slideFromBottom 0.3s;\n animation: slideFromBottom 0.3s; }\n\n.hideSweetAlert[data-animation=pop] {\n -webkit-animation: hideSweetAlert 0.2s;\n animation: hideSweetAlert 0.2s; }\n\n.hideSweetAlert[data-animation=none] {\n -webkit-animation: none;\n animation: none; }\n\n.hideSweetAlert[data-animation=slide-from-top] {\n -webkit-animation: slideToTop 0.4s;\n animation: slideToTop 0.4s; }\n\n.hideSweetAlert[data-animation=slide-from-bottom] {\n -webkit-animation: slideToBottom 0.3s;\n animation: slideToBottom 0.3s; }\n\n@-webkit-keyframes animateSuccessTip {\n 0% {\n width: 0;\n left: 1px;\n top: 19px; }\n 54% {\n width: 0;\n left: 1px;\n top: 19px; }\n 70% {\n width: 50px;\n left: -8px;\n top: 37px; }\n 84% {\n width: 17px;\n left: 21px;\n top: 48px; }\n 100% {\n width: 25px;\n left: 14px;\n top: 45px; } }\n\n@keyframes animateSuccessTip {\n 0% {\n width: 0;\n left: 1px;\n top: 19px; }\n 54% {\n width: 0;\n left: 1px;\n top: 19px; }\n 70% {\n width: 50px;\n left: -8px;\n top: 37px; }\n 84% {\n width: 17px;\n left: 21px;\n top: 48px; }\n 100% {\n width: 25px;\n left: 14px;\n top: 45px; } }\n\n@-webkit-keyframes animateSuccessLong {\n 0% {\n width: 0;\n right: 46px;\n top: 54px; }\n 65% {\n width: 0;\n right: 46px;\n top: 54px; }\n 84% {\n width: 55px;\n right: 0px;\n top: 35px; }\n 100% {\n width: 47px;\n right: 8px;\n top: 38px; } }\n\n@keyframes animateSuccessLong {\n 0% {\n width: 0;\n right: 46px;\n top: 54px; }\n 65% {\n width: 0;\n right: 46px;\n top: 54px; }\n 84% {\n width: 55px;\n right: 0px;\n top: 35px; }\n 100% {\n width: 47px;\n right: 8px;\n top: 38px; } }\n\n@-webkit-keyframes rotatePlaceholder {\n 0% {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg); }\n 5% {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg); }\n 12% {\n transform: rotate(-405deg);\n -webkit-transform: rotate(-405deg); }\n 100% {\n transform: rotate(-405deg);\n -webkit-transform: rotate(-405deg); } }\n\n@keyframes rotatePlaceholder {\n 0% {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg); }\n 5% {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg); }\n 12% {\n transform: rotate(-405deg);\n -webkit-transform: rotate(-405deg); }\n 100% {\n transform: rotate(-405deg);\n -webkit-transform: rotate(-405deg); } }\n\n.animateSuccessTip {\n -webkit-animation: animateSuccessTip 0.75s;\n animation: animateSuccessTip 0.75s; }\n\n.animateSuccessLong {\n -webkit-animation: animateSuccessLong 0.75s;\n animation: animateSuccessLong 0.75s; }\n\n.sa-icon.sa-success.animate::after {\n -webkit-animation: rotatePlaceholder 4.25s ease-in;\n animation: rotatePlaceholder 4.25s ease-in; }\n\n@-webkit-keyframes animateErrorIcon {\n 0% {\n transform: rotateX(100deg);\n -webkit-transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n transform: rotateX(0deg);\n -webkit-transform: rotateX(0deg);\n opacity: 1; } }\n\n@keyframes animateErrorIcon {\n 0% {\n transform: rotateX(100deg);\n -webkit-transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n transform: rotateX(0deg);\n -webkit-transform: rotateX(0deg);\n opacity: 1; } }\n\n.animateErrorIcon {\n -webkit-animation: animateErrorIcon 0.5s;\n animation: animateErrorIcon 0.5s; }\n\n@-webkit-keyframes animateXMark {\n 0% {\n transform: scale(0.4);\n -webkit-transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 50% {\n transform: scale(0.4);\n -webkit-transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 80% {\n transform: scale(1.15);\n -webkit-transform: scale(1.15);\n margin-top: -6px; }\n 100% {\n transform: scale(1);\n -webkit-transform: scale(1);\n margin-top: 0;\n opacity: 1; } }\n\n@keyframes animateXMark {\n 0% {\n transform: scale(0.4);\n -webkit-transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 50% {\n transform: scale(0.4);\n -webkit-transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 80% {\n transform: scale(1.15);\n -webkit-transform: scale(1.15);\n margin-top: -6px; }\n 100% {\n transform: scale(1);\n -webkit-transform: scale(1);\n margin-top: 0;\n opacity: 1; } }\n\n.animateXMark {\n -webkit-animation: animateXMark 0.5s;\n animation: animateXMark 0.5s; }\n\n@-webkit-keyframes pulseWarning {\n 0% {\n border-color: #F8D486; }\n 100% {\n border-color: #F8BB86; } }\n\n@keyframes pulseWarning {\n 0% {\n border-color: #F8D486; }\n 100% {\n border-color: #F8BB86; } }\n\n.pulseWarning {\n -webkit-animation: pulseWarning 0.75s infinite alternate;\n animation: pulseWarning 0.75s infinite alternate; }\n\n@-webkit-keyframes pulseWarningIns {\n 0% {\n background-color: #F8D486; }\n 100% {\n background-color: #F8BB86; } }\n\n@keyframes pulseWarningIns {\n 0% {\n background-color: #F8D486; }\n 100% {\n background-color: #F8BB86; } }\n\n.pulseWarningIns {\n -webkit-animation: pulseWarningIns 0.75s infinite alternate;\n animation: pulseWarningIns 0.75s infinite alternate; }\n\n@-webkit-keyframes rotate-loading {\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg); } }\n\n@keyframes rotate-loading {\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg); } }\n\n.toast-title {\n font-weight: 700; }\n\n.toast-message {\n -ms-word-wrap: break-word;\n word-wrap: break-word; }\n\n.toast-message a, .toast-message label {\n color: #fff; }\n\n.toast-message a:hover {\n color: #ccc;\n text-decoration: none; }\n\n.toast-close-button {\n position: relative;\n right: -.3em;\n top: -.3em;\n float: right;\n font-size: 20px;\n font-weight: 700;\n color: #fff;\n -webkit-text-shadow: 0 1px 0 #fff;\n text-shadow: 0 1px 0 #fff;\n opacity: .8;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n filter: alpha(opacity=80); }\n\n.toast-close-button:focus, .toast-close-button:hover {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: .4;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);\n filter: alpha(opacity=40); }\n\nbutton.toast-close-button {\n padding: 0;\n cursor: pointer;\n background: 0 0;\n border: 0;\n -webkit-appearance: none; }\n\n.toast-top-center {\n top: 0;\n right: 0;\n width: 100%; }\n\n.toast-bottom-center {\n bottom: 0;\n right: 0;\n width: 100%; }\n\n.toast-top-full-width {\n top: 0;\n right: 0;\n width: 100%; }\n\n.toast-bottom-full-width {\n bottom: 0;\n right: 0;\n width: 100%; }\n\n.toast-top-left {\n top: 12px;\n left: 12px; }\n\n.toast-top-right {\n top: 12px;\n right: 12px; }\n\n.toast-bottom-right {\n right: 12px;\n bottom: 12px; }\n\n.toast-bottom-left {\n bottom: 12px;\n left: 12px; }\n\n#toast-container {\n position: fixed;\n z-index: 999999;\n pointer-events: none; }\n\n#toast-container * {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n\n#toast-container > div {\n position: relative;\n pointer-events: auto;\n overflow: hidden;\n margin: 0 0 6px;\n padding: 15px 15px 15px 50px;\n width: 300px;\n -moz-border-radius: 3px;\n -webkit-border-radius: 3px;\n border-radius: 3px;\n background-position: 15px center;\n background-repeat: no-repeat;\n -moz-box-shadow: 0 0 12px #999;\n -webkit-box-shadow: 0 0 12px #999;\n box-shadow: 0 0 12px #999;\n color: #fff;\n opacity: .8;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n filter: alpha(opacity=80); }\n\n#toast-container > :hover {\n -moz-box-shadow: 0 0 12px #000;\n -webkit-box-shadow: 0 0 12px #000;\n box-shadow: 0 0 12px #000;\n opacity: 1;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);\n filter: alpha(opacity=100);\n cursor: pointer; }\n\n#toast-container > .toast-info {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=) !important; }\n\n#toast-container > .toast-error {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=) !important; }\n\n#toast-container > .toast-success {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==) !important; }\n\n#toast-container > .toast-warning {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=) !important; }\n\n#toast-container.toast-bottom-center > div, #toast-container.toast-top-center > div {\n width: 300px;\n margin-left: auto;\n margin-right: auto; }\n\n#toast-container.toast-bottom-full-width > div, #toast-container.toast-top-full-width > div {\n width: 96%;\n margin-left: auto;\n margin-right: auto; }\n\n.toast {\n background-color: #030303; }\n\n.toast-success {\n background-color: #51a351; }\n\n.toast-error {\n background-color: #bd362f; }\n\n.toast-info {\n background-color: #2f96b4; }\n\n.toast-warning {\n background-color: #f89406; }\n\n.toast-progress {\n position: absolute;\n left: 0;\n bottom: 0;\n height: 4px;\n background-color: #000;\n opacity: .4;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);\n filter: alpha(opacity=40); }\n\n@media all and (max-width: 240px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 11em; }\n #toast-container .toast-close-button {\n right: -.2em;\n top: -.2em; } }\n\n@media all and (min-width: 241px) and (max-width: 480px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 18em; }\n #toast-container .toast-close-button {\n right: -.2em;\n top: -.2em; } }\n\n@media all and (min-width: 481px) and (max-width: 768px) {\n #toast-container > div {\n padding: 15px 15px 15px 50px;\n width: 25em; } }\n\n/**\n * simplemde v1.11.2\n * Copyright Next Step Webs, Inc.\n * @link https://github.com/NextStepWebs/simplemde-markdown-editor\n * @license MIT\n */\n.CodeMirror {\n color: #000; }\n\n.CodeMirror-lines {\n padding: 4px 0; }\n\n.CodeMirror pre {\n padding: 0 4px; }\n\n.CodeMirror-gutter-filler, .CodeMirror-scrollbar-filler {\n background-color: #fff; }\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap; }\n\n.CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap; }\n\n.CodeMirror-guttermarker {\n color: #000; }\n\n.CodeMirror-guttermarker-subtle {\n color: #999; }\n\n.CodeMirror-cursor {\n border-left: 1px solid #000;\n border-right: none;\n width: 0; }\n\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver; }\n\n.cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7; }\n\n.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1; }\n\n.cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7; }\n\n@-moz-keyframes blink {\n 50% {\n background-color: transparent; } }\n\n@-webkit-keyframes blink {\n 50% {\n background-color: transparent; } }\n\n@keyframes blink {\n 50% {\n background-color: transparent; } }\n\n.cm-tab {\n display: inline-block;\n text-decoration: inherit; }\n\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n position: absolute; }\n\n.cm-s-default .cm-header {\n color: #00f; }\n\n.cm-s-default .cm-quote {\n color: #090; }\n\n.cm-negative {\n color: #d44; }\n\n.cm-positive {\n color: #292; }\n\n.cm-header, .cm-strong {\n font-weight: 700; }\n\n.cm-em {\n font-style: italic; }\n\n.cm-link {\n text-decoration: underline; }\n\n.cm-strikethrough {\n text-decoration: line-through; }\n\n.cm-s-default .cm-keyword {\n color: #708; }\n\n.cm-s-default .cm-atom {\n color: #219; }\n\n.cm-s-default .cm-number {\n color: #164; }\n\n.cm-s-default .cm-def {\n color: #00f; }\n\n.cm-s-default .cm-variable-2 {\n color: #05a; }\n\n.cm-s-default .cm-variable-3 {\n color: #085; }\n\n.cm-s-default .cm-comment {\n color: #a50; }\n\n.cm-s-default .cm-string {\n color: #a11; }\n\n.cm-s-default .cm-string-2 {\n color: #f50; }\n\n.cm-s-default .cm-meta, .cm-s-default .cm-qualifier {\n color: #555; }\n\n.cm-s-default .cm-builtin {\n color: #30a; }\n\n.cm-s-default .cm-bracket {\n color: #997; }\n\n.cm-s-default .cm-tag {\n color: #170; }\n\n.cm-s-default .cm-attribute {\n color: #00c; }\n\n.cm-s-default .cm-hr {\n color: #999; }\n\n.cm-s-default .cm-link {\n color: #00c; }\n\n.cm-invalidchar, .cm-s-default .cm-error {\n color: red; }\n\n.CodeMirror-composing {\n border-bottom: 2px solid; }\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {\n color: #0f0; }\n\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {\n color: #f22; }\n\n.CodeMirror-matchingtag {\n background: rgba(255, 150, 0, 0.3); }\n\n.CodeMirror-activeline-background {\n background: #e8f2ff; }\n\n.CodeMirror {\n position: relative;\n overflow: hidden;\n background: #fff; }\n\n.CodeMirror-scroll {\n overflow: scroll !important;\n margin-bottom: -30px;\n margin-right: -30px;\n padding-bottom: 30px;\n height: 100%;\n outline: 0;\n position: relative; }\n\n.CodeMirror-sizer {\n position: relative;\n border-right: 30px solid transparent; }\n\n.CodeMirror-gutter-filler, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-vscrollbar {\n position: absolute;\n z-index: 6;\n display: none; }\n\n.CodeMirror-vscrollbar {\n right: 0;\n top: 0;\n overflow-x: hidden;\n overflow-y: scroll; }\n\n.CodeMirror-hscrollbar {\n bottom: 0;\n left: 0;\n overflow-y: hidden;\n overflow-x: scroll; }\n\n.CodeMirror-scrollbar-filler {\n right: 0;\n bottom: 0; }\n\n.CodeMirror-gutter-filler {\n left: 0;\n bottom: 0; }\n\n.CodeMirror-gutters {\n position: absolute;\n left: 0;\n top: 0;\n min-height: 100%;\n z-index: 3; }\n\n.CodeMirror-gutter {\n white-space: normal;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n margin-bottom: -30px; }\n\n.CodeMirror-gutter-wrapper {\n position: absolute;\n z-index: 4;\n background: 0 0 !important;\n border: none !important;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 4; }\n\n.CodeMirror-gutter-elt {\n position: absolute;\n cursor: default;\n z-index: 4; }\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; }\n\n.CodeMirror pre {\n -moz-border-radius: 0;\n -webkit-border-radius: 0;\n border-radius: 0;\n border-width: 0;\n background: 0 0;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: inherit;\n color: inherit;\n z-index: 2;\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none; }\n\n.CodeMirror-wrap pre {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal; }\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 0; }\n\n.CodeMirror-linewidget {\n position: relative;\n z-index: 2;\n overflow: auto; }\n\n.CodeMirror-code {\n outline: 0; }\n\n.CodeMirror-gutter, .CodeMirror-gutters, .CodeMirror-linenumber, .CodeMirror-scroll, .CodeMirror-sizer {\n -moz-box-sizing: content-box;\n box-sizing: content-box; }\n\n.CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden; }\n\n.CodeMirror-cursor {\n position: absolute; }\n\n.CodeMirror-measure pre {\n position: static; }\n\ndiv.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n z-index: 3; }\n\n.CodeMirror-focused div.CodeMirror-cursors, div.CodeMirror-dragcursors {\n visibility: visible; }\n\n.CodeMirror-selected {\n background: #d9d9d9; }\n\n.CodeMirror-focused .CodeMirror-selected, .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection {\n background: #d7d4f0; }\n\n.CodeMirror-crosshair {\n cursor: crosshair; }\n\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection {\n background: #d7d4f0; }\n\n.cm-searching {\n background: #ffa;\n background: rgba(255, 255, 0, 0.4); }\n\n.cm-force-border {\n padding-right: .1px; }\n\n@media print {\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden; } }\n\n.cm-tab-wrap-hack:after {\n content: ''; }\n\nspan.CodeMirror-selectedtext {\n background: 0 0; }\n\n.CodeMirror {\n height: auto;\n min-height: 300px;\n border: 1px solid #ddd;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n padding: 10px;\n font: inherit;\n z-index: 1; }\n\n.CodeMirror-scroll {\n min-height: 300px; }\n\n.CodeMirror-fullscreen {\n background: #fff;\n position: fixed !important;\n top: 50px;\n left: 0;\n right: 0;\n bottom: 0;\n height: auto;\n z-index: 9; }\n\n.CodeMirror-sided {\n width: 50% !important; }\n\n.editor-toolbar {\n position: relative;\n opacity: .6;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n padding: 0 10px;\n border-top: 1px solid #bbb;\n border-left: 1px solid #bbb;\n border-right: 1px solid #bbb;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n\n.editor-toolbar:after, .editor-toolbar:before {\n display: block;\n content: ' ';\n height: 1px; }\n\n.editor-toolbar:before {\n margin-bottom: 8px; }\n\n.editor-toolbar:after {\n margin-top: 8px; }\n\n.editor-toolbar:hover, .editor-wrapper input.title:focus, .editor-wrapper input.title:hover {\n opacity: .8; }\n\n.editor-toolbar.fullscreen {\n width: 100%;\n height: 50px;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n padding-top: 10px;\n padding-bottom: 10px;\n box-sizing: border-box;\n background: #fff;\n border: 0;\n position: fixed;\n top: 0;\n left: 0;\n opacity: 1;\n z-index: 9; }\n\n.editor-toolbar.fullscreen::before {\n width: 20px;\n height: 50px;\n background: -moz-linear-gradient(left, white 0, rgba(255, 255, 255, 0) 100%);\n background: -webkit-gradient(linear, left top, right top, color-stop(0, white), color-stop(100%, rgba(255, 255, 255, 0)));\n background: -webkit-linear-gradient(left, white 0, rgba(255, 255, 255, 0) 100%);\n background: -o-linear-gradient(left, white 0, rgba(255, 255, 255, 0) 100%);\n background: -ms-linear-gradient(left, white 0, rgba(255, 255, 255, 0) 100%);\n background: linear-gradient(to right, white 0, rgba(255, 255, 255, 0) 100%);\n position: fixed;\n top: 0;\n left: 0;\n margin: 0;\n padding: 0; }\n\n.editor-toolbar.fullscreen::after {\n width: 20px;\n height: 50px;\n background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0, white 100%);\n background: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(255, 255, 255, 0)), color-stop(100%, white));\n background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0, white 100%);\n background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0, white 100%);\n background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0, white 100%);\n background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, white 100%);\n position: fixed;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0; }\n\n.editor-toolbar a {\n display: inline-block;\n text-align: center;\n text-decoration: none !important;\n color: #2c3e50 !important;\n width: 30px;\n height: 30px;\n margin: 0;\n border: 1px solid transparent;\n border-radius: 3px;\n cursor: pointer; }\n\n.editor-toolbar a.active, .editor-toolbar a:hover {\n background: #fcfcfc;\n border-color: #95a5a6; }\n\n.editor-toolbar a:before {\n line-height: 30px; }\n\n.editor-toolbar i.separator {\n display: inline-block;\n width: 0;\n border-left: 1px solid #d9d9d9;\n border-right: 1px solid #fff;\n color: transparent;\n text-indent: -10px;\n margin: 0 6px; }\n\n.editor-toolbar a.fa-header-x:after {\n font-family: Arial,\"Helvetica Neue\",Helvetica,sans-serif;\n font-size: 65%;\n vertical-align: text-bottom;\n position: relative;\n top: 2px; }\n\n.editor-toolbar a.fa-header-1:after {\n content: \"1\"; }\n\n.editor-toolbar a.fa-header-2:after {\n content: \"2\"; }\n\n.editor-toolbar a.fa-header-3:after {\n content: \"3\"; }\n\n.editor-toolbar a.fa-header-bigger:after {\n content: \"▲\"; }\n\n.editor-toolbar a.fa-header-smaller:after {\n content: \"▼\"; }\n\n.editor-toolbar.disabled-for-preview a:not(.no-disable) {\n pointer-events: none;\n background: #fff;\n border-color: transparent;\n text-shadow: inherit; }\n\n@media only screen and (max-width: 700px) {\n .editor-toolbar a.no-mobile {\n display: none; } }\n\n.editor-statusbar {\n padding: 8px 10px;\n font-size: 12px;\n color: #959694;\n text-align: right; }\n\n.editor-statusbar span {\n display: inline-block;\n min-width: 4em;\n margin-left: 1em; }\n\n.editor-preview, .editor-preview-side {\n padding: 10px;\n background: #fafafa;\n overflow: auto;\n display: none;\n box-sizing: border-box; }\n\n.editor-statusbar .lines:before {\n content: 'lines: '; }\n\n.editor-statusbar .words:before {\n content: 'words: '; }\n\n.editor-statusbar .characters:before {\n content: 'characters: '; }\n\n.editor-preview {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: 7; }\n\n.editor-preview-side {\n position: fixed;\n bottom: 0;\n width: 50%;\n top: 50px;\n right: 0;\n z-index: 9;\n border: 1px solid #ddd; }\n\n.editor-preview-active, .editor-preview-active-side {\n display: block; }\n\n.editor-preview-side > p, .editor-preview > p {\n margin-top: 0; }\n\n.editor-preview pre, .editor-preview-side pre {\n background: #eee;\n margin-bottom: 10px; }\n\n.editor-preview table td, .editor-preview table th, .editor-preview-side table td, .editor-preview-side table th {\n border: 1px solid #ddd;\n padding: 5px; }\n\n.CodeMirror .CodeMirror-code .cm-tag {\n color: #63a35c; }\n\n.CodeMirror .CodeMirror-code .cm-attribute {\n color: #795da3; }\n\n.CodeMirror .CodeMirror-code .cm-string {\n color: #183691; }\n\n.CodeMirror .CodeMirror-selected {\n background: #d9d9d9; }\n\n.CodeMirror .CodeMirror-code .cm-header-1 {\n font-size: 200%;\n line-height: 200%; }\n\n.CodeMirror .CodeMirror-code .cm-header-2 {\n font-size: 160%;\n line-height: 160%; }\n\n.CodeMirror .CodeMirror-code .cm-header-3 {\n font-size: 125%;\n line-height: 125%; }\n\n.CodeMirror .CodeMirror-code .cm-header-4 {\n font-size: 110%;\n line-height: 110%; }\n\n.CodeMirror .CodeMirror-code .cm-comment {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 2px; }\n\n.CodeMirror .CodeMirror-code .cm-link {\n color: #7f8c8d; }\n\n.CodeMirror .CodeMirror-code .cm-url {\n color: #aab2b3; }\n\n.CodeMirror .CodeMirror-code .cm-strikethrough {\n text-decoration: line-through; }\n\n.CodeMirror .CodeMirror-placeholder {\n opacity: .5; }\n\n.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word) {\n background: rgba(255, 0, 0, 0.15); }\n\n.form-control, .form-control:focus, input {\n border-width: 2px;\n -webkit-box-shadow: none;\n box-shadow: none;\n outline: 0; }\n\nlegend {\n border: none; }\n\n.well {\n border: none;\n box-shadow: none; }\n\n.navbar-collapse {\n border: none; }\n\n.ibox {\n clear: both;\n margin-bottom: 25px;\n margin-top: 0;\n padding: 0; }\n\n.ibox-title {\n -moz-border-bottom-colors: none;\n -moz-border-left-colors: none;\n -moz-border-right-colors: none;\n -moz-border-top-colors: none;\n background-color: #ffffff;\n border-color: #e7eaec;\n border-image: none;\n border-style: solid solid none;\n border-width: 2px 0 0;\n color: inherit;\n margin-bottom: 0;\n padding: 15px 15px 7px;\n min-height: 48px; }\n\n.ibox-default {\n border-color: #e7eaec; }\n\n.ibox-success {\n border-color: #3498db; }\n\n.ibox-success {\n border-color: #1abc9c; }\n\n.ibox-warning {\n border-color: #f1c40f; }\n\n.ibox-danger {\n border-color: #e74c3c; }\n\n.ibox-content {\n clear: both;\n background-color: #ffffff;\n color: inherit;\n padding: 15px 20px 20px 20px;\n border-color: #e7eaec;\n border-image: none;\n border-style: solid solid none;\n border-width: 1px 0; }\n\n.no-padding {\n padding: 0; }\n\n.toast-success {\n background-color: #1abc9c; }\n\n.toast-error {\n background-color: #e74c3c; }\n\n.toast-info {\n background-color: #597289; }\n\n.toast-warning {\n background-color: #f1c40f; }\n\n#toast-container > div {\n opacity: 0.9;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90);\n filter: alpha(opacity=90); }\n\n.togglebutton {\n vertical-align: middle; }\n .togglebutton, .togglebutton label, .togglebutton input, .togglebutton .toggle {\n user-select: none; }\n .togglebutton label {\n cursor: pointer;\n color: rgba(0,0,0, 0.26); }\n .togglebutton label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0; }\n .togglebutton label .toggle {\n text-align: left; }\n .togglebutton label .toggle,\n .togglebutton label input[type=checkbox][disabled] + .toggle {\n content: \"\";\n display: inline-block;\n width: 40px;\n height: 18px;\n background-color: rgba(80, 80, 80, 0.7);\n border-radius: 15px;\n margin-right: 15px;\n transition: background 0.3s ease;\n vertical-align: middle; }\n .togglebutton label .toggle:after {\n content: \"\";\n display: inline-block;\n width: 25px;\n height: 25px;\n background-color: #F1F1F1;\n border-radius: 20px;\n position: relative;\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);\n left: -5px;\n top: -4px;\n transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; }\n .togglebutton label input[type=checkbox][disabled] + .toggle:after,\n .togglebutton label input[type=checkbox][disabled]:checked + .toggle:after {\n background-color: #BDBDBD; }\n .togglebutton label input[type=checkbox] + .toggle:active:after,\n .togglebutton label input[type=checkbox][disabled] + .toggle:active:after {\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1); }\n .togglebutton label input[type=checkbox]:checked + .toggle:after {\n left: 20px; }\n .togglebutton label input[type=checkbox]:checked + .toggle {\n background-color: rgba(26, 188, 156, 0.5); }\n .togglebutton label input[type=checkbox]:checked + .toggle:after {\n background-color: #1abc9c; }\n .togglebutton label input[type=checkbox]:checked + .toggle:active:after {\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(26, 188, 156, 0.1); }\n\n.width-5-percent {\n width: 5%; }\n\n.width-10-percent {\n width: 10%; }\n\n.no-margin {\n margin: 0 !important; }\n","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n// Core variables and mixins\n@import \"bootstrap/variables\";\n@import \"bootstrap/mixins\";\n\n// Reset and dependencies\n@import \"bootstrap/normalize\";\n@import \"bootstrap/print\";\n@import \"bootstrap/glyphicons\";\n\n// Core CSS\n@import \"bootstrap/scaffolding\";\n@import \"bootstrap/type\";\n@import \"bootstrap/code\";\n@import \"bootstrap/grid\";\n@import \"bootstrap/tables\";\n@import \"bootstrap/forms\";\n@import \"bootstrap/buttons\";\n\n// Components\n@import \"bootstrap/component-animations\";\n@import \"bootstrap/dropdowns\";\n@import \"bootstrap/button-groups\";\n@import \"bootstrap/input-groups\";\n@import \"bootstrap/navs\";\n@import \"bootstrap/navbar\";\n@import \"bootstrap/breadcrumbs\";\n@import \"bootstrap/pagination\";\n@import \"bootstrap/pager\";\n@import \"bootstrap/labels\";\n@import \"bootstrap/badges\";\n@import \"bootstrap/jumbotron\";\n@import \"bootstrap/thumbnails\";\n@import \"bootstrap/alerts\";\n@import \"bootstrap/progress-bars\";\n@import \"bootstrap/media\";\n@import \"bootstrap/list-group\";\n@import \"bootstrap/panels\";\n@import \"bootstrap/responsive-embed\";\n@import \"bootstrap/wells\";\n@import \"bootstrap/close\";\n\n// Components w/ JavaScript\n@import \"bootstrap/modals\";\n@import \"bootstrap/tooltip\";\n@import \"bootstrap/popovers\";\n@import \"bootstrap/carousel\";\n\n// Utility classes\n@import \"bootstrap/utilities\";\n@import \"bootstrap/responsive-utilities\";\n","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n@at-root {\n // Import the fonts\n @font-face {\n font-family: 'Glyphicons Halflings';\n src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));\n src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),\n url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'),\n url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),\n url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),\n url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');\n }\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n @include box-sizing(border-box);\n}\n*:before,\n*:after {\n @include box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: $font-family-base;\n font-size: $font-size-base;\n line-height: $line-height-base;\n color: $text-color;\n background-color: $body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus {\n @include tab-focus;\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n @include img-responsive;\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: $border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: $thumbnail-padding;\n line-height: $line-height-base;\n background-color: $thumbnail-bg;\n border: 1px solid $thumbnail-border;\n border-radius: $thumbnail-border-radius;\n @include transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n @include img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: $line-height-computed;\n margin-bottom: $line-height-computed;\n border: 0;\n border-top: 1px solid $hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n@mixin animation($animation) {\n -webkit-animation: $animation;\n -o-animation: $animation;\n animation: $animation;\n}\n@mixin animation-name($name) {\n -webkit-animation-name: $name;\n animation-name: $name;\n}\n@mixin animation-duration($duration) {\n -webkit-animation-duration: $duration;\n animation-duration: $duration;\n}\n@mixin animation-timing-function($timing-function) {\n -webkit-animation-timing-function: $timing-function;\n animation-timing-function: $timing-function;\n}\n@mixin animation-delay($delay) {\n -webkit-animation-delay: $delay;\n animation-delay: $delay;\n}\n@mixin animation-iteration-count($iteration-count) {\n -webkit-animation-iteration-count: $iteration-count;\n animation-iteration-count: $iteration-count;\n}\n@mixin animation-direction($direction) {\n -webkit-animation-direction: $direction;\n animation-direction: $direction;\n}\n@mixin animation-fill-mode($fill-mode) {\n -webkit-animation-fill-mode: $fill-mode;\n animation-fill-mode: $fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n@mixin backface-visibility($visibility) {\n -webkit-backface-visibility: $visibility;\n -moz-backface-visibility: $visibility;\n backface-visibility: $visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n@mixin box-shadow($shadow...) {\n -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n -webkit-box-sizing: $boxmodel;\n -moz-box-sizing: $boxmodel;\n box-sizing: $boxmodel;\n}\n\n// CSS3 Content Columns\n@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {\n -webkit-column-count: $column-count;\n -moz-column-count: $column-count;\n column-count: $column-count;\n -webkit-column-gap: $column-gap;\n -moz-column-gap: $column-gap;\n column-gap: $column-gap;\n}\n\n// Optional hyphenation\n@mixin hyphens($mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: $mode;\n -moz-hyphens: $mode;\n -ms-hyphens: $mode; // IE10+\n -o-hyphens: $mode;\n hyphens: $mode;\n}\n\n// Placeholder text\n@mixin placeholder($color: $input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: $color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: $color; } // Safari and Chrome\n}\n\n// Transformations\n@mixin scale($ratio...) {\n -webkit-transform: scale($ratio);\n -ms-transform: scale($ratio); // IE9 only\n -o-transform: scale($ratio);\n transform: scale($ratio);\n}\n\n@mixin scaleX($ratio) {\n -webkit-transform: scaleX($ratio);\n -ms-transform: scaleX($ratio); // IE9 only\n -o-transform: scaleX($ratio);\n transform: scaleX($ratio);\n}\n@mixin scaleY($ratio) {\n -webkit-transform: scaleY($ratio);\n -ms-transform: scaleY($ratio); // IE9 only\n -o-transform: scaleY($ratio);\n transform: scaleY($ratio);\n}\n@mixin skew($x, $y) {\n -webkit-transform: skewX($x) skewY($y);\n -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX($x) skewY($y);\n transform: skewX($x) skewY($y);\n}\n@mixin translate($x, $y) {\n -webkit-transform: translate($x, $y);\n -ms-transform: translate($x, $y); // IE9 only\n -o-transform: translate($x, $y);\n transform: translate($x, $y);\n}\n@mixin translate3d($x, $y, $z) {\n -webkit-transform: translate3d($x, $y, $z);\n transform: translate3d($x, $y, $z);\n}\n@mixin rotate($degrees) {\n -webkit-transform: rotate($degrees);\n -ms-transform: rotate($degrees); // IE9 only\n -o-transform: rotate($degrees);\n transform: rotate($degrees);\n}\n@mixin rotateX($degrees) {\n -webkit-transform: rotateX($degrees);\n -ms-transform: rotateX($degrees); // IE9 only\n -o-transform: rotateX($degrees);\n transform: rotateX($degrees);\n}\n@mixin rotateY($degrees) {\n -webkit-transform: rotateY($degrees);\n -ms-transform: rotateY($degrees); // IE9 only\n -o-transform: rotateY($degrees);\n transform: rotateY($degrees);\n}\n@mixin perspective($perspective) {\n -webkit-perspective: $perspective;\n -moz-perspective: $perspective;\n perspective: $perspective;\n}\n@mixin perspective-origin($perspective) {\n -webkit-perspective-origin: $perspective;\n -moz-perspective-origin: $perspective;\n perspective-origin: $perspective;\n}\n@mixin transform-origin($origin) {\n -webkit-transform-origin: $origin;\n -moz-transform-origin: $origin;\n -ms-transform-origin: $origin; // IE9 only\n transform-origin: $origin;\n}\n\n\n// Transitions\n\n@mixin transition($transition...) {\n -webkit-transition: $transition;\n -o-transition: $transition;\n transition: $transition;\n}\n@mixin transition-property($transition-property...) {\n -webkit-transition-property: $transition-property;\n transition-property: $transition-property;\n}\n@mixin transition-delay($transition-delay) {\n -webkit-transition-delay: $transition-delay;\n transition-delay: $transition-delay;\n}\n@mixin transition-duration($transition-duration...) {\n -webkit-transition-duration: $transition-duration;\n transition-duration: $transition-duration;\n}\n@mixin transition-timing-function($timing-function) {\n -webkit-transition-timing-function: $timing-function;\n transition-timing-function: $timing-function;\n}\n@mixin transition-transform($transition...) {\n -webkit-transition: -webkit-transform $transition;\n -moz-transition: -moz-transform $transition;\n -o-transition: -o-transform $transition;\n transition: transform $transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n -webkit-user-select: $select;\n -moz-user-select: $select;\n -ms-user-select: $select; // IE10+\n user-select: $select;\n}\n","// Body\n$body-bg: #f9f9fb;\n\n// Typography\n$font-family-sans-serif: \"lato-regular\", \"Helvetica Neue\", Helvetica, Arial, \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\n$font-size-base: 14px;\n$line-height-base: 1.6;\n$text-color: #636b6f;\n\n$font-size-h1: floor(($font-size-base * 3.444)); // ~62px\n$font-size-h2: ceil(($font-size-base * 2.889)); // ~52px\n$font-size-h3: ceil(($font-size-base * 2.222)); // ~40px\n$font-size-h4: ceil(($font-size-base * 1.611)); // ~29px\n$font-size-h5: floor(($font-size-base * 1.556)); // ~28px\n$font-size-h6: ceil(($font-size-base * 1.333)); // ~24px\n\n$font-size-large: 24px; // ~24px\n\n$line-height-base: 1.72222; // 31/18\n$line-height-computed: floor(($font-size-base * $line-height-base)); // ~31px\n\n$headings-font-family: inherit;\n$headings-font-weight: 400;\n$headings-line-height: 1.2;\n$headings-color: inherit;\n\n// Buttons\n$btn-default-color: $text-color;\n\n// Colors\n$default-color: #52697f;\n\n$turquoise: #1abc9c;\n$green-sea: #16a085;\n\n$emerald: #2ecc71;\n$nephritis: #27ae60;\n\n$peter-river: #3498db;\n$belize-hole: #2980b9;\n\n$amethyst: #9b59b6;\n$wisteria: #8e44ad;\n\n$wet-asphalt: #34495e;\n$midnight-blue: #2c3e50;\n\n$sun-flower: #f1c40f;\n$orange: #f39c12;\n\n$carrot: #e67e22;\n$pumpkin: #d35400;\n\n$alizarin: #e74c3c;\n$pomegranate: #c0392b;\n\n$clouds: #ecf0f1;\n$silver: #bdc3c7;\n\n$concrete: #95a5a6;\n$asbestos: #7f8c8d;\n\n//== Components\n//\n//## Define common padding and border radius sizes and more.\n\n//** Default font-size in components\n$component-font-size-base: ceil(($font-size-base * 0.833)); // ~15px\n\n// Border-radius\n$border-radius-base: 4px;\n$border-radius-large: 6px;\n$border-radius-small: 3px;\n\n// Wells\n$well-bg: $clouds;\n$well-border: $clouds;\n\n// Grays\n$gray: $concrete;\n$gray-light: $silver;\n$inverse: white;\n\n// Borders\n$laravel-border-color: darken($body-bg, 10%);\n$list-group-border: $laravel-border-color;\n$navbar-default-border: $laravel-border-color;\n$panel-default-border: $laravel-border-color;\n$panel-inner-border: $laravel-border-color;\n\n// Brands\n$brand-default: $default-color;\n$brand-primary: $wet-asphalt;\n$brand-secondary: $turquoise;\n$brand-info: $peter-river;\n$brand-success: $turquoise;\n$brand-warning: $sun-flower;\n$brand-danger: $alizarin;\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$btn-font-weight: 200 !default;\n\n$btn-default-color: #333 !default;\n$btn-default-bg: #f1f1f1 !default;\n$btn-default-border: darken($btn-default-bg, 5%) !default;\n\n$btn-primary-color: #fff !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-primary-border: darken($btn-primary-bg, 1%) !default;\n\n$btn-success-color: #fff !default;\n$btn-success-bg: $brand-success !default;\n$btn-success-border: $btn-success-bg !default;\n\n$btn-info-color: #fff !default;\n$btn-info-bg: $brand-info !default;\n$btn-info-border: darken($btn-info-bg, 1%) !default;\n\n$btn-warning-color: #fff !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-warning-border: darken($btn-warning-bg, 1%) !default;\n\n$btn-danger-color: #fff !default;\n$btn-danger-bg: $brand-danger !default;\n$btn-danger-border: darken($btn-danger-bg, 1%) !default;\n\n$btn-link-disabled-color: $gray-light;\n\n// Inputs\n$input-border: #dce4ec;\n$input-border-focus: lighten($brand-primary, 25%);\n$input-color-placeholder: lighten($text-color, 30%);\n$input-box-shadow: none !default;\n\n// Legend\n$legend-color: $text-color;\n\n// Forms\n$input-font-size-base: $component-font-size-base;\n$input-font-size-sm: floor(($component-font-size-base * 0.867)); // ~13px\n$input-font-size-lg: ceil(($component-font-size-base * 1.133)); // ~17px\n$input-font-size-hg: floor(($component-font-size-base * 1.467)); // ~22px\n\n$input-line-height-base: 1.467; // ~22px\n$input-line-height-sm: 1.462; // ~19px\n$input-line-height-lg: 1.235; // ~21px\n$input-line-height-hg: 1.318; // ~29px\n\n$input-icon-font-size: ceil(($component-font-size-base * 1.067)); // ~16px\n$input-icon-font-size-lg: ceil(($component-font-size-base * 1.2)); // ~18px\n$input-icon-font-size-hg: ceil(($component-font-size-base * 1.333)); // ~20px\n\n$input-bg: $inverse;\n$input-bg-disabled: mix($gray, white, 10%);\n\n$input-height-sm: 35px;\n$input-height-base: 41px;\n$input-height-lg: 45px;\n$input-height-hg: 53px;\n\n$input-border-radius: $border-radius-large;\n\n// Panels\n$panel-default-heading-bg: #fff;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n$navbar-default-bg: $brand-default;\n$zindex-navbar: 1000;\n$zindex-navbar-fixed: 1030;\n$navbar-height: 60px;\n$navbar-height-base: 53px;\n$navbar-height-large: 76px;\n$navbar-input-line-height: 1.4; // ~21px\n$navbar-margin-bottom: 0;\n$navbar-border-radius: $border-radius-large;\n\n// Navbar Toggle\n$navbar-default-toggle-border-color: $brand-default;\n$navbar-default-toggle-hover-bg: $brand-default;\n$navbar-default-toggle-icon-bar-bg: #fff;\n\n// Navbar links\n$navbar-default-link-color: #fff;\n$navbar-default-link-hover-color: $brand-secondary;\n$navbar-default-link-hover-bg: transparent;\n$navbar-default-link-active-color: #fff;\n$navbar-default-link-active-bg: $turquoise;\n$navbar-default-link-disabled-color: #ccc;\n$navbar-default-link-disabled-bg: transparent;\n\n// Navbar nav carets\n$navbar-default-caret-color: $navbar-default-link-color;\n$navbar-default-caret-hover-color: $navbar-default-link-hover-color;\n$navbar-default-caret-active-color: $navbar-default-link-active-color;\n\n// Navbar brand label\n$navbar-default-brand-color: $navbar-default-link-color;\n$navbar-default-brand-hover-color: $navbar-default-link-hover-color;\n$navbar-default-brand-hover-bg: transparent;\n\n// Navbar toggle\n$navbar-default-toggle-color: $navbar-default-link-color;\n$navbar-default-toggle-hover-color: $navbar-default-link-hover-color;\n\n// Navbar form\n$navbar-default-form-placeholder: spin(tint($brand-primary, 60%), 2);\n$navbar-default-form-border: shade($navbar-default-bg, 3%);\n\n\n// Inverted navbar\n// Reset inverted navbar basics\n$navbar-inverse-divider: darken($brand-primary, 3%);\n\n// Reset inverted navbar basics\n$navbar-inverse-color: $inverse;\n$navbar-inverse-bg: #fff;\n$navbar-inverse-border: darken($navbar-inverse-bg, 10%);\n\n// Inverted navbar links\n$navbar-inverse-link-color: $brand-default;\n$navbar-inverse-link-hover-color: $brand-secondary;\n$navbar-inverse-link-hover-bg: transparent;\n$navbar-inverse-link-active-color: $navbar-inverse-link-color;\n$navbar-inverse-link-active-bg: $brand-secondary;\n$navbar-inverse-link-disabled-color: #444;\n$navbar-inverse-link-disabled-bg: transparent;\n\n// Navbar nav carets\n$navbar-inverse-caret-color: lighten(desaturate($brand-primary, 7%), 9%);\n$navbar-inverse-caret-hover-color: $navbar-inverse-link-hover-color;\n$navbar-inverse-caret-active-color: $navbar-inverse-link-active-color;\n\n// Inverted navbar brand label\n$navbar-inverse-brand-color: $navbar-inverse-link-color;\n$navbar-inverse-brand-hover-color: $navbar-inverse-link-hover-color;\n$navbar-inverse-brand-hover-bg: transparent;\n\n// Inverted navbar toggle\n$navbar-inverse-toggle-color: $navbar-inverse-link-color;\n$navbar-inverse-toggle-hover-color: $navbar-inverse-link-hover-color;\n\n// Navbar form\n$navbar-inverse-form-bg: darken($brand-primary, 6%);\n$navbar-inverse-form-placeholder: desaturate(lighten($brand-primary, 13%), 7%);\n$navbar-inverse-form-icon: desaturate(lighten($brand-primary, 13%), 6%);\n$navbar-inverse-form-border: $navbar-inverse-divider;\n\n// Navbar dropdowns\n$navbar-inverse-dropdown-bg: $navbar-inverse-bg;\n$navbar-inverse-dropdown-link-color: mix($navbar-inverse-bg, $navbar-inverse-color, 15%);\n$navbar-inverse-dropdown-link-hover-color: $inverse;\n$navbar-inverse-dropdown-link-hover-bg: $brand-secondary;\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n$zindex-dropdown: 1000;\n$dropdown-border-radius: $border-radius-base;\n\n//** Background for the dropdown menu.\n$dropdown-bg: $brand-default;\n\n//** Dropdown link text color.\n$dropdown-link-color: #fff;\n//** Hover color for dropdown links.\n$dropdown-link-hover-color: #fff;\n//** Hover background for dropdown links.\n$dropdown-link-hover-bg: $brand-secondary;\n\n//** Active dropdown menu item text color.\n$dropdown-link-active-color: $inverse;\n//** Active dropdown menu item background color.\n$dropdown-link-active-bg: $brand-secondary;\n\n//** Disabled dropdown menu item background color.\n$dropdown-link-disabled-color: $gray-light;\n\n//** Divider color for between dropdown items.\n$dropdown-divider-bg: darken($brand-default, 5%);\n\n//** Text color for headers within dropdown menus.\n$dropdown-header-color: fade($brand-default, 60%);\n\n// Toggle\n$rgb-black: \"0,0,0\" !default;\n$mdb-label-color: unquote(\"rgba(#{$rgb-black}, 0.26)\") !default;\n$mdb-label-color-toggle-focus: unquote(\"rgba(#{$rgb-black}, .54)\") !default;\n$mdb-toggle-label-color: $mdb-label-color !default;\n","$bootstrap-sass-asset-helper: false !default;\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n$gray-base: #000 !default;\n$gray-darker: lighten($gray-base, 13.5%) !default; // #222\n$gray-dark: lighten($gray-base, 20%) !default; // #333\n$gray: lighten($gray-base, 33.5%) !default; // #555\n$gray-light: lighten($gray-base, 46.7%) !default; // #777\n$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee\n\n$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7\n$brand-success: #5cb85c !default;\n$brand-info: #5bc0de !default;\n$brand-warning: #f0ad4e !default;\n$brand-danger: #d9534f !default;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for ``.\n$body-bg: #fff !default;\n//** Global text color on ``.\n$text-color: $gray-dark !default;\n\n//** Global textual link color.\n$link-color: $brand-primary !default;\n//** Link hover color set via `darken()` function.\n$link-hover-color: darken($link-color, 15%) !default;\n//** Link hover decoration.\n$link-hover-decoration: underline !default;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$font-family-serif: Georgia, \"Times New Roman\", Times, serif !default;\n//** Default monospace fonts for ``, ``, and `
`.\n$font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace !default;\n$font-family-base:        $font-family-sans-serif !default;\n\n$font-size-base:          14px !default;\n$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px\n\n$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px\n$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px\n$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px\n$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-h5:            $font-size-base !default;\n$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n$line-height-base:        1.428571429 !default; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px\n\n//** By default, this inherits from the ``.\n$headings-font-family:    inherit !default;\n$headings-font-weight:    500 !default;\n$headings-line-height:    1.1 !default;\n$headings-color:          inherit !default;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n\n// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.\n// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.\n$icon-font-path: if($bootstrap-sass-asset-helper, \"bootstrap/\", \"../fonts/bootstrap/\") !default;\n\n//** File name for all font files.\n$icon-font-name:          \"glyphicons-halflings-regular\" !default;\n//** Element ID within SVG icon file.\n$icon-font-svg-id:        \"glyphicons_halflingsregular\" !default;\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n$padding-base-vertical:     6px !default;\n$padding-base-horizontal:   12px !default;\n\n$padding-large-vertical:    10px !default;\n$padding-large-horizontal:  16px !default;\n\n$padding-small-vertical:    5px !default;\n$padding-small-horizontal:  10px !default;\n\n$padding-xs-vertical:       1px !default;\n$padding-xs-horizontal:     5px !default;\n\n$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome\n$line-height-small:         1.5 !default;\n\n$border-radius-base:        4px !default;\n$border-radius-large:       6px !default;\n$border-radius-small:       3px !default;\n\n//** Global color for active items (e.g., navs or dropdowns).\n$component-active-color:    #fff !default;\n//** Global background color for active items (e.g., navs or dropdowns).\n$component-active-bg:       $brand-primary !default;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n$caret-width-base:          4px !default;\n//** Carets increase slightly in size for larger components.\n$caret-width-large:         5px !default;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for ``s and ``s.\n$table-cell-padding:            8px !default;\n//** Padding for cells in `.table-condensed`.\n$table-condensed-cell-padding:  5px !default;\n\n//** Default background color used for all tables.\n$table-bg:                      transparent !default;\n//** Background color used for `.table-striped`.\n$table-bg-accent:               #f9f9f9 !default;\n//** Background color used for `.table-hover`.\n$table-bg-hover:                #f5f5f5 !default;\n$table-bg-active:               $table-bg-hover !default;\n\n//** Border color for table and cell borders.\n$table-border-color:            #ddd !default;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$btn-font-weight:                normal !default;\n\n$btn-default-color:              #333 !default;\n$btn-default-bg:                 #fff !default;\n$btn-default-border:             #ccc !default;\n\n$btn-primary-color:              #fff !default;\n$btn-primary-bg:                 $brand-primary !default;\n$btn-primary-border:             darken($btn-primary-bg, 5%) !default;\n\n$btn-success-color:              #fff !default;\n$btn-success-bg:                 $brand-success !default;\n$btn-success-border:             darken($btn-success-bg, 5%) !default;\n\n$btn-info-color:                 #fff !default;\n$btn-info-bg:                    $brand-info !default;\n$btn-info-border:                darken($btn-info-bg, 5%) !default;\n\n$btn-warning-color:              #fff !default;\n$btn-warning-bg:                 $brand-warning !default;\n$btn-warning-border:             darken($btn-warning-bg, 5%) !default;\n\n$btn-danger-color:               #fff !default;\n$btn-danger-bg:                  $brand-danger !default;\n$btn-danger-border:              darken($btn-danger-bg, 5%) !default;\n\n$btn-link-disabled-color:        $gray-light !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius-base:         $border-radius-base !default;\n$btn-border-radius-large:        $border-radius-large !default;\n$btn-border-radius-small:        $border-radius-small !default;\n\n\n//== Forms\n//\n//##\n\n//** `` background color\n$input-bg:                       #fff !default;\n//** `` background color\n$input-bg-disabled:              $gray-lighter !default;\n\n//** Text color for ``s\n$input-color:                    $gray !default;\n//** `` border color\n$input-border:                   #ccc !default;\n\n// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on ``s in CSS.\n$input-border-radius:            $border-radius-base !default;\n//** Large `.form-control` border radius\n$input-border-radius-large:      $border-radius-large !default;\n//** Small `.form-control` border radius\n$input-border-radius-small:      $border-radius-small !default;\n\n//** Border color for inputs on focus\n$input-border-focus:             #66afe9 !default;\n\n//** Placeholder text color\n$input-color-placeholder:        #999 !default;\n\n//** Default `.form-control` height\n$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;\n//** Large `.form-control` height\n$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;\n//** Small `.form-control` height\n$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;\n\n//** `.form-group` margin\n$form-group-margin-bottom:       15px !default;\n\n$legend-color:                   $gray-dark !default;\n$legend-border-color:            #e5e5e5 !default;\n\n//** Background color for textual input addons\n$input-group-addon-bg:           $gray-lighter !default;\n//** Border color for textual input addons\n$input-group-addon-border-color: $input-border !default;\n\n//** Disabled cursor for form controls and buttons.\n$cursor-disabled:                not-allowed !default;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n$dropdown-bg:                    #fff !default;\n//** Dropdown menu `border-color`.\n$dropdown-border:                rgba(0,0,0,.15) !default;\n//** Dropdown menu `border-color` **for IE8**.\n$dropdown-fallback-border:       #ccc !default;\n//** Divider color for between dropdown items.\n$dropdown-divider-bg:            #e5e5e5 !default;\n\n//** Dropdown link text color.\n$dropdown-link-color:            $gray-dark !default;\n//** Hover color for dropdown links.\n$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;\n//** Hover background for dropdown links.\n$dropdown-link-hover-bg:         #f5f5f5 !default;\n\n//** Active dropdown menu item text color.\n$dropdown-link-active-color:     $component-active-color !default;\n//** Active dropdown menu item background color.\n$dropdown-link-active-bg:        $component-active-bg !default;\n\n//** Disabled dropdown menu item background color.\n$dropdown-link-disabled-color:   $gray-light !default;\n\n//** Text color for headers within dropdown menus.\n$dropdown-header-color:          $gray-light !default;\n\n//** Deprecated `$dropdown-caret-color` as of v3.1.0\n$dropdown-caret-color:           #000 !default;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n$zindex-navbar:            1000 !default;\n$zindex-dropdown:          1000 !default;\n$zindex-popover:           1060 !default;\n$zindex-tooltip:           1070 !default;\n$zindex-navbar-fixed:      1030 !default;\n$zindex-modal-background:  1040 !default;\n$zindex-modal:             1050 !default;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `$screen-xs` as of v3.0.1\n$screen-xs:                  480px !default;\n//** Deprecated `$screen-xs-min` as of v3.2.0\n$screen-xs-min:              $screen-xs !default;\n//** Deprecated `$screen-phone` as of v3.0.1\n$screen-phone:               $screen-xs-min !default;\n\n// Small screen / tablet\n//** Deprecated `$screen-sm` as of v3.0.1\n$screen-sm:                  768px !default;\n$screen-sm-min:              $screen-sm !default;\n//** Deprecated `$screen-tablet` as of v3.0.1\n$screen-tablet:              $screen-sm-min !default;\n\n// Medium screen / desktop\n//** Deprecated `$screen-md` as of v3.0.1\n$screen-md:                  992px !default;\n$screen-md-min:              $screen-md !default;\n//** Deprecated `$screen-desktop` as of v3.0.1\n$screen-desktop:             $screen-md-min !default;\n\n// Large screen / wide desktop\n//** Deprecated `$screen-lg` as of v3.0.1\n$screen-lg:                  1200px !default;\n$screen-lg-min:              $screen-lg !default;\n//** Deprecated `$screen-lg-desktop` as of v3.0.1\n$screen-lg-desktop:          $screen-lg-min !default;\n\n// So media queries don't overlap when required, provide a maximum\n$screen-xs-max:              ($screen-sm-min - 1) !default;\n$screen-sm-max:              ($screen-md-min - 1) !default;\n$screen-md-max:              ($screen-lg-min - 1) !default;\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n$grid-columns:              12 !default;\n//** Padding between columns. Gets divided in half for the left and right.\n$grid-gutter-width:         30px !default;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n$grid-float-breakpoint:     $screen-sm-min !default;\n//** Point at which the navbar begins collapsing.\n$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n$container-tablet:             (720px + $grid-gutter-width) !default;\n//** For `$screen-sm-min` and up.\n$container-sm:                 $container-tablet !default;\n\n// Medium screen / desktop\n$container-desktop:            (940px + $grid-gutter-width) !default;\n//** For `$screen-md-min` and up.\n$container-md:                 $container-desktop !default;\n\n// Large screen / wide desktop\n$container-large-desktop:      (1140px + $grid-gutter-width) !default;\n//** For `$screen-lg-min` and up.\n$container-lg:                 $container-large-desktop !default;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n$navbar-height:                    50px !default;\n$navbar-margin-bottom:             $line-height-computed !default;\n$navbar-border-radius:             $border-radius-base !default;\n$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;\n$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;\n$navbar-collapse-max-height:       340px !default;\n\n$navbar-default-color:             #777 !default;\n$navbar-default-bg:                #f8f8f8 !default;\n$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;\n\n// Navbar links\n$navbar-default-link-color:                #777 !default;\n$navbar-default-link-hover-color:          #333 !default;\n$navbar-default-link-hover-bg:             transparent !default;\n$navbar-default-link-active-color:         #555 !default;\n$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;\n$navbar-default-link-disabled-color:       #ccc !default;\n$navbar-default-link-disabled-bg:          transparent !default;\n\n// Navbar brand label\n$navbar-default-brand-color:               $navbar-default-link-color !default;\n$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;\n$navbar-default-brand-hover-bg:            transparent !default;\n\n// Navbar toggle\n$navbar-default-toggle-hover-bg:           #ddd !default;\n$navbar-default-toggle-icon-bar-bg:        #888 !default;\n$navbar-default-toggle-border-color:       #ddd !default;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n$navbar-inverse-color:                      lighten($gray-light, 15%) !default;\n$navbar-inverse-bg:                         #222 !default;\n$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;\n\n// Inverted navbar links\n$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;\n$navbar-inverse-link-hover-color:           #fff !default;\n$navbar-inverse-link-hover-bg:              transparent !default;\n$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;\n$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;\n$navbar-inverse-link-disabled-color:        #444 !default;\n$navbar-inverse-link-disabled-bg:           transparent !default;\n\n// Inverted navbar brand label\n$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;\n$navbar-inverse-brand-hover-color:          #fff !default;\n$navbar-inverse-brand-hover-bg:             transparent !default;\n\n// Inverted navbar toggle\n$navbar-inverse-toggle-hover-bg:            #333 !default;\n$navbar-inverse-toggle-icon-bar-bg:         #fff !default;\n$navbar-inverse-toggle-border-color:        #333 !default;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n$nav-link-padding:                          10px 15px !default;\n$nav-link-hover-bg:                         $gray-lighter !default;\n\n$nav-disabled-link-color:                   $gray-light !default;\n$nav-disabled-link-hover-color:             $gray-light !default;\n\n//== Tabs\n$nav-tabs-border-color:                     #ddd !default;\n\n$nav-tabs-link-hover-border-color:          $gray-lighter !default;\n\n$nav-tabs-active-link-hover-bg:             $body-bg !default;\n$nav-tabs-active-link-hover-color:          $gray !default;\n$nav-tabs-active-link-hover-border-color:   #ddd !default;\n\n$nav-tabs-justified-link-border-color:            #ddd !default;\n$nav-tabs-justified-active-link-border-color:     $body-bg !default;\n\n//== Pills\n$nav-pills-border-radius:                   $border-radius-base !default;\n$nav-pills-active-link-hover-bg:            $component-active-bg !default;\n$nav-pills-active-link-hover-color:         $component-active-color !default;\n\n\n//== Pagination\n//\n//##\n\n$pagination-color:                     $link-color !default;\n$pagination-bg:                        #fff !default;\n$pagination-border:                    #ddd !default;\n\n$pagination-hover-color:               $link-hover-color !default;\n$pagination-hover-bg:                  $gray-lighter !default;\n$pagination-hover-border:              #ddd !default;\n\n$pagination-active-color:              #fff !default;\n$pagination-active-bg:                 $brand-primary !default;\n$pagination-active-border:             $brand-primary !default;\n\n$pagination-disabled-color:            $gray-light !default;\n$pagination-disabled-bg:               #fff !default;\n$pagination-disabled-border:           #ddd !default;\n\n\n//== Pager\n//\n//##\n\n$pager-bg:                             $pagination-bg !default;\n$pager-border:                         $pagination-border !default;\n$pager-border-radius:                  15px !default;\n\n$pager-hover-bg:                       $pagination-hover-bg !default;\n\n$pager-active-bg:                      $pagination-active-bg !default;\n$pager-active-color:                   $pagination-active-color !default;\n\n$pager-disabled-color:                 $pagination-disabled-color !default;\n\n\n//== Jumbotron\n//\n//##\n\n$jumbotron-padding:              30px !default;\n$jumbotron-color:                inherit !default;\n$jumbotron-bg:                   $gray-lighter !default;\n$jumbotron-heading-color:        inherit !default;\n$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;\n$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n$state-success-text:             #3c763d !default;\n$state-success-bg:               #dff0d8 !default;\n$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;\n\n$state-info-text:                #31708f !default;\n$state-info-bg:                  #d9edf7 !default;\n$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;\n\n$state-warning-text:             #8a6d3b !default;\n$state-warning-bg:               #fcf8e3 !default;\n$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;\n\n$state-danger-text:              #a94442 !default;\n$state-danger-bg:                #f2dede !default;\n$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n$tooltip-max-width:           200px !default;\n//** Tooltip text color\n$tooltip-color:               #fff !default;\n//** Tooltip background color\n$tooltip-bg:                  #000 !default;\n$tooltip-opacity:             .9 !default;\n\n//** Tooltip arrow width\n$tooltip-arrow-width:         5px !default;\n//** Tooltip arrow color\n$tooltip-arrow-color:         $tooltip-bg !default;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n$popover-bg:                          #fff !default;\n//** Popover maximum width\n$popover-max-width:                   276px !default;\n//** Popover border color\n$popover-border-color:                rgba(0,0,0,.2) !default;\n//** Popover fallback border color\n$popover-fallback-border-color:       #ccc !default;\n\n//** Popover title background color\n$popover-title-bg:                    darken($popover-bg, 3%) !default;\n\n//** Popover arrow width\n$popover-arrow-width:                 10px !default;\n//** Popover arrow color\n$popover-arrow-color:                 $popover-bg !default;\n\n//** Popover outer arrow width\n$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;\n//** Popover outer arrow color\n$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;\n//** Popover outer arrow fallback color\n$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n$label-default-bg:            $gray-light !default;\n//** Primary label background color\n$label-primary-bg:            $brand-primary !default;\n//** Success label background color\n$label-success-bg:            $brand-success !default;\n//** Info label background color\n$label-info-bg:               $brand-info !default;\n//** Warning label background color\n$label-warning-bg:            $brand-warning !default;\n//** Danger label background color\n$label-danger-bg:             $brand-danger !default;\n\n//** Default label text color\n$label-color:                 #fff !default;\n//** Default text color of a linked label\n$label-link-hover-color:      #fff !default;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n$modal-inner-padding:         15px !default;\n\n//** Padding applied to the modal title\n$modal-title-padding:         15px !default;\n//** Modal title line-height\n$modal-title-line-height:     $line-height-base !default;\n\n//** Background color of modal content area\n$modal-content-bg:                             #fff !default;\n//** Modal content border color\n$modal-content-border-color:                   rgba(0,0,0,.2) !default;\n//** Modal content border color **for IE8**\n$modal-content-fallback-border-color:          #999 !default;\n\n//** Modal backdrop background color\n$modal-backdrop-bg:           #000 !default;\n//** Modal backdrop opacity\n$modal-backdrop-opacity:      .5 !default;\n//** Modal header border color\n$modal-header-border-color:   #e5e5e5 !default;\n//** Modal footer border color\n$modal-footer-border-color:   $modal-header-border-color !default;\n\n$modal-lg:                    900px !default;\n$modal-md:                    600px !default;\n$modal-sm:                    300px !default;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n$alert-padding:               15px !default;\n$alert-border-radius:         $border-radius-base !default;\n$alert-link-font-weight:      bold !default;\n\n$alert-success-bg:            $state-success-bg !default;\n$alert-success-text:          $state-success-text !default;\n$alert-success-border:        $state-success-border !default;\n\n$alert-info-bg:               $state-info-bg !default;\n$alert-info-text:             $state-info-text !default;\n$alert-info-border:           $state-info-border !default;\n\n$alert-warning-bg:            $state-warning-bg !default;\n$alert-warning-text:          $state-warning-text !default;\n$alert-warning-border:        $state-warning-border !default;\n\n$alert-danger-bg:             $state-danger-bg !default;\n$alert-danger-text:           $state-danger-text !default;\n$alert-danger-border:         $state-danger-border !default;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n$progress-bg:                 #f5f5f5 !default;\n//** Progress bar text color\n$progress-bar-color:          #fff !default;\n//** Variable for setting rounded corners on progress bar.\n$progress-border-radius:      $border-radius-base !default;\n\n//** Default progress bar color\n$progress-bar-bg:             $brand-primary !default;\n//** Success progress bar color\n$progress-bar-success-bg:     $brand-success !default;\n//** Warning progress bar color\n$progress-bar-warning-bg:     $brand-warning !default;\n//** Danger progress bar color\n$progress-bar-danger-bg:      $brand-danger !default;\n//** Info progress bar color\n$progress-bar-info-bg:        $brand-info !default;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n$list-group-bg:                 #fff !default;\n//** `.list-group-item` border color\n$list-group-border:             #ddd !default;\n//** List group border radius\n$list-group-border-radius:      $border-radius-base !default;\n\n//** Background color of single list items on hover\n$list-group-hover-bg:           #f5f5f5 !default;\n//** Text color of active list items\n$list-group-active-color:       $component-active-color !default;\n//** Background color of active list items\n$list-group-active-bg:          $component-active-bg !default;\n//** Border color of active list elements\n$list-group-active-border:      $list-group-active-bg !default;\n//** Text color for content within active list items\n$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;\n\n//** Text color of disabled list items\n$list-group-disabled-color:      $gray-light !default;\n//** Background color of disabled list items\n$list-group-disabled-bg:         $gray-lighter !default;\n//** Text color for content within disabled list items\n$list-group-disabled-text-color: $list-group-disabled-color !default;\n\n$list-group-link-color:         #555 !default;\n$list-group-link-hover-color:   $list-group-link-color !default;\n$list-group-link-heading-color: #333 !default;\n\n\n//== Panels\n//\n//##\n\n$panel-bg:                    #fff !default;\n$panel-body-padding:          15px !default;\n$panel-heading-padding:       10px 15px !default;\n$panel-footer-padding:        $panel-heading-padding !default;\n$panel-border-radius:         $border-radius-base !default;\n\n//** Border color for elements within panels\n$panel-inner-border:          #ddd !default;\n$panel-footer-bg:             #f5f5f5 !default;\n\n$panel-default-text:          $gray-dark !default;\n$panel-default-border:        #ddd !default;\n$panel-default-heading-bg:    #f5f5f5 !default;\n\n$panel-primary-text:          #fff !default;\n$panel-primary-border:        $brand-primary !default;\n$panel-primary-heading-bg:    $brand-primary !default;\n\n$panel-success-text:          $state-success-text !default;\n$panel-success-border:        $state-success-border !default;\n$panel-success-heading-bg:    $state-success-bg !default;\n\n$panel-info-text:             $state-info-text !default;\n$panel-info-border:           $state-info-border !default;\n$panel-info-heading-bg:       $state-info-bg !default;\n\n$panel-warning-text:          $state-warning-text !default;\n$panel-warning-border:        $state-warning-border !default;\n$panel-warning-heading-bg:    $state-warning-bg !default;\n\n$panel-danger-text:           $state-danger-text !default;\n$panel-danger-border:         $state-danger-border !default;\n$panel-danger-heading-bg:     $state-danger-bg !default;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n$thumbnail-padding:           4px !default;\n//** Thumbnail background color\n$thumbnail-bg:                $body-bg !default;\n//** Thumbnail border color\n$thumbnail-border:            #ddd !default;\n//** Thumbnail border radius\n$thumbnail-border-radius:     $border-radius-base !default;\n\n//** Custom text color for thumbnail captions\n$thumbnail-caption-color:     $text-color !default;\n//** Padding around the thumbnail caption\n$thumbnail-caption-padding:   9px !default;\n\n\n//== Wells\n//\n//##\n\n$well-bg:                     #f5f5f5 !default;\n$well-border:                 darken($well-bg, 7%) !default;\n\n\n//== Badges\n//\n//##\n\n$badge-color:                 #fff !default;\n//** Linked badge text color on hover\n$badge-link-hover-color:      #fff !default;\n$badge-bg:                    $gray-light !default;\n\n//** Badge text color in active nav link\n$badge-active-color:          $link-color !default;\n//** Badge background color in active nav link\n$badge-active-bg:             #fff !default;\n\n$badge-font-weight:           bold !default;\n$badge-line-height:           1 !default;\n$badge-border-radius:         10px !default;\n\n\n//== Breadcrumbs\n//\n//##\n\n$breadcrumb-padding-vertical:   8px !default;\n$breadcrumb-padding-horizontal: 15px !default;\n//** Breadcrumb background color\n$breadcrumb-bg:                 #f5f5f5 !default;\n//** Breadcrumb text color\n$breadcrumb-color:              #ccc !default;\n//** Text color of current page in the breadcrumb\n$breadcrumb-active-color:       $gray-light !default;\n//** Textual separator for between breadcrumb elements\n$breadcrumb-separator:          \"/\" !default;\n\n\n//== Carousel\n//\n//##\n\n$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;\n\n$carousel-control-color:                      #fff !default;\n$carousel-control-width:                      15% !default;\n$carousel-control-opacity:                    .5 !default;\n$carousel-control-font-size:                  20px !default;\n\n$carousel-indicator-active-bg:                #fff !default;\n$carousel-indicator-border-color:             #fff !default;\n\n$carousel-caption-color:                      #fff !default;\n\n\n//== Close\n//\n//##\n\n$close-font-weight:           bold !default;\n$close-color:                 #000 !default;\n$close-text-shadow:           0 1px 0 #fff !default;\n\n\n//== Code\n//\n//##\n\n$code-color:                  #c7254e !default;\n$code-bg:                     #f9f2f4 !default;\n\n$kbd-color:                   #fff !default;\n$kbd-bg:                      #333 !default;\n\n$pre-bg:                      #f5f5f5 !default;\n$pre-color:                   $gray-dark !default;\n$pre-border-color:            #ccc !default;\n$pre-scrollable-max-height:   340px !default;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n$component-offset-horizontal: 180px !default;\n//** Text muted color\n$text-muted:                  $gray-light !default;\n//** Abbreviations and acronyms border color\n$abbr-border-color:           $gray-light !default;\n//** Headings small color\n$headings-small-color:        $gray-light !default;\n//** Blockquote small color\n$blockquote-small-color:      $gray-light !default;\n//** Blockquote font size\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n//** Blockquote border color\n$blockquote-border-color:     $gray-lighter !default;\n//** Page header border color\n$page-header-border-color:    $gray-lighter !default;\n//** Width of horizontal description list titles\n$dl-horizontal-offset:        $component-offset-horizontal !default;\n//** Point at which .dl-horizontal becomes horizontal\n$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;\n//** Horizontal line color.\n$hr-border:                   $gray-lighter !default;\n","// WebKit-style focus\n\n@mixin tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n@mixin img-responsive($display: block) {\n  display: $display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path(\"#{$file-1x}\"), \"#{$file-1x}\"));\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and (   min--moz-device-pixel-ratio: 2),\n  only screen and (     -o-min-device-pixel-ratio: 2/1),\n  only screen and (        min-device-pixel-ratio: 2),\n  only screen and (                min-resolution: 192dpi),\n  only screen and (                min-resolution: 2dppx) {\n    background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path(\"#{$file-2x}\"), \"#{$file-2x}\"));\n    background-size: $width-1x $height-1x;\n  }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n\n  small,\n  .small {\n    font-weight: normal;\n    line-height: 1;\n    color: $headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: $line-height-computed;\n  margin-bottom: ($line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: ($line-height-computed / 2);\n  margin-bottom: ($line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: $font-size-h1; }\nh2, .h2 { font-size: $font-size-h2; }\nh3, .h3 { font-size: $font-size-h3; }\nh4, .h4 { font-size: $font-size-h4; }\nh5, .h5 { font-size: $font-size-h5; }\nh6, .h6 { font-size: $font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 ($line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: $line-height-computed;\n  font-size: floor(($font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: $screen-sm-min) {\n    font-size: ($font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor((100% * $font-size-small / $font-size-base));\n}\n\nmark,\n.mark {\n  background-color: $state-warning-bg;\n  padding: .2em;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: $text-muted;\n}\n\n@include text-emphasis-variant('.text-primary', $brand-primary);\n\n@include text-emphasis-variant('.text-success', $state-success-text);\n\n@include text-emphasis-variant('.text-info', $state-info-text);\n\n@include text-emphasis-variant('.text-warning', $state-warning-text);\n\n@include text-emphasis-variant('.text-danger', $state-danger-text);\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n}\n@include bg-variant('.bg-primary', $brand-primary);\n\n@include bg-variant('.bg-success', $state-success-bg);\n\n@include bg-variant('.bg-info', $state-info-bg);\n\n@include bg-variant('.bg-warning', $state-warning-bg);\n\n@include bg-variant('.bg-danger', $state-danger-bg);\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: (($line-height-computed / 2) - 1);\n  margin: ($line-height-computed * 2) 0 $line-height-computed;\n  border-bottom: 1px solid $page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: ($line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// [converter] extracted from `.list-unstyled` for libsass compatibility\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n// [converter] extracted as `@mixin list-unstyled` for libsass compatibility\n.list-unstyled {\n  @include list-unstyled;\n}\n\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled;\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: $line-height-computed;\n}\ndt,\ndd {\n  line-height: $line-height-base;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    @include clearfix; // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: $dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: ($dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      @include text-overflow;\n    }\n    dd {\n      margin-left: $dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted $abbr-border-color;\n}\n.initialism {\n  font-size: 90%;\n  @extend .text-uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: ($line-height-computed / 2) $line-height-computed;\n  margin: 0 0 $line-height-computed;\n  font-size: $blockquote-font-size;\n  border-left: 5px solid $blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: $line-height-base;\n    color: $blockquote-small-color;\n\n    &:before {\n      content: '\\2014 \\00A0'; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid $blockquote-border-color;\n  border-left: 0;\n  text-align: right;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: ''; }\n    &:after {\n      content: '\\00A0 \\2014'; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: $line-height-computed;\n  font-style: normal;\n  line-height: $line-height-base;\n}\n","// Typography\n\n// [converter] $parent hack\n@mixin text-emphasis-variant($parent, $color) {\n  #{$parent} {\n    color: $color;\n  }\n  a#{$parent}:hover,\n  a#{$parent}:focus {\n    color: darken($color, 10%);\n  }\n}\n","// Contextual backgrounds\n\n// [converter] $parent hack\n@mixin bg-variant($parent, $color) {\n  #{$parent} {\n    background-color: $color;\n  }\n  a#{$parent}:hover,\n  a#{$parent}:focus {\n    background-color: darken($color, 10%);\n  }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n@mixin clearfix() {\n  &:before,\n  &:after {\n    content: \" \"; // 1\n    display: table; // 2\n  }\n  &:after {\n    clear: both;\n  }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n@mixin text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: $code-color;\n  background-color: $code-bg;\n  border-radius: $border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  border-radius: $border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: bold;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: (($line-height-computed - 1) / 2);\n  margin: 0 0 ($line-height-computed / 2);\n  font-size: ($font-size-base - 1); // 14px to 13px\n  line-height: $line-height-base;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: $pre-color;\n  background-color: $pre-bg;\n  border: 1px solid $pre-border-color;\n  border-radius: $border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  @include container-fixed;\n\n  @media (min-width: $screen-sm-min) {\n    width: $container-sm;\n  }\n  @media (min-width: $screen-md-min) {\n    width: $container-md;\n  }\n  @media (min-width: $screen-lg-min) {\n    width: $container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  @include container-fixed;\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  @include make-row;\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@include make-grid-columns;\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n@include make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: $screen-sm-min) {\n  @include make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: $screen-md-min) {\n  @include make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: $screen-lg-min) {\n  @include make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n@mixin container-fixed($gutter: $grid-gutter-width) {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left:  floor(($gutter / 2));\n  padding-right: ceil(($gutter / 2));\n  @include clearfix;\n}\n\n// Creates a wrapper for a series of columns\n@mixin make-row($gutter: $grid-gutter-width) {\n  margin-left:  ceil(($gutter / -2));\n  margin-right: floor(($gutter / -2));\n  @include clearfix;\n}\n\n// Generate the extra small columns\n@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage(($columns / $grid-columns));\n  min-height: 1px;\n  padding-left:  ($gutter / 2);\n  padding-right: ($gutter / 2);\n}\n@mixin make-xs-column-offset($columns) {\n  margin-left: percentage(($columns / $grid-columns));\n}\n@mixin make-xs-column-push($columns) {\n  left: percentage(($columns / $grid-columns));\n}\n@mixin make-xs-column-pull($columns) {\n  right: percentage(($columns / $grid-columns));\n}\n\n// Generate the small columns\n@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  ($gutter / 2);\n  padding-right: ($gutter / 2);\n\n  @media (min-width: $screen-sm-min) {\n    float: left;\n    width: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-sm-column-offset($columns) {\n  @media (min-width: $screen-sm-min) {\n    margin-left: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-sm-column-push($columns) {\n  @media (min-width: $screen-sm-min) {\n    left: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-sm-column-pull($columns) {\n  @media (min-width: $screen-sm-min) {\n    right: percentage(($columns / $grid-columns));\n  }\n}\n\n// Generate the medium columns\n@mixin make-md-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  ($gutter / 2);\n  padding-right: ($gutter / 2);\n\n  @media (min-width: $screen-md-min) {\n    float: left;\n    width: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-md-column-offset($columns) {\n  @media (min-width: $screen-md-min) {\n    margin-left: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-md-column-push($columns) {\n  @media (min-width: $screen-md-min) {\n    left: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-md-column-pull($columns) {\n  @media (min-width: $screen-md-min) {\n    right: percentage(($columns / $grid-columns));\n  }\n}\n\n// Generate the large columns\n@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  ($gutter / 2);\n  padding-right: ($gutter / 2);\n\n  @media (min-width: $screen-lg-min) {\n    float: left;\n    width: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-lg-column-offset($columns) {\n  @media (min-width: $screen-lg-min) {\n    margin-left: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-lg-column-push($columns) {\n  @media (min-width: $screen-lg-min) {\n    left: percentage(($columns / $grid-columns));\n  }\n}\n@mixin make-lg-column-pull($columns) {\n  @media (min-width: $screen-lg-min) {\n    right: percentage(($columns / $grid-columns));\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin make-grid-columns($i: 1, $list: \".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}\") {\n  @for $i from (1 + 1) through $grid-columns {\n    $list: \"#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}\";\n  }\n  #{$list} {\n    position: relative;\n    // Prevent columns from collapsing when empty\n    min-height: 1px;\n    // Inner gutter via padding\n    padding-left:  ceil(($grid-gutter-width / 2));\n    padding-right: floor(($grid-gutter-width / 2));\n  }\n}\n\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin float-grid-columns($class, $i: 1, $list: \".col-#{$class}-#{$i}\") {\n  @for $i from (1 + 1) through $grid-columns {\n    $list: \"#{$list}, .col-#{$class}-#{$i}\";\n  }\n  #{$list} {\n    float: left;\n  }\n}\n\n\n@mixin calc-grid-column($index, $class, $type) {\n  @if ($type == width) and ($index > 0) {\n    .col-#{$class}-#{$index} {\n      width: percentage(($index / $grid-columns));\n    }\n  }\n  @if ($type == push) and ($index > 0) {\n    .col-#{$class}-push-#{$index} {\n      left: percentage(($index / $grid-columns));\n    }\n  }\n  @if ($type == push) and ($index == 0) {\n    .col-#{$class}-push-0 {\n      left: auto;\n    }\n  }\n  @if ($type == pull) and ($index > 0) {\n    .col-#{$class}-pull-#{$index} {\n      right: percentage(($index / $grid-columns));\n    }\n  }\n  @if ($type == pull) and ($index == 0) {\n    .col-#{$class}-pull-0 {\n      right: auto;\n    }\n  }\n  @if ($type == offset) {\n    .col-#{$class}-offset-#{$index} {\n      margin-left: percentage(($index / $grid-columns));\n    }\n  }\n}\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin loop-grid-columns($columns, $class, $type) {\n  @for $i from 0 through $columns {\n    @include calc-grid-column($i, $class, $type);\n  }\n}\n\n\n// Create grid for specific class\n@mixin make-grid($class) {\n  @include float-grid-columns($class);\n  @include loop-grid-columns($grid-columns, $class, width);\n  @include loop-grid-columns($grid-columns, $class, pull);\n  @include loop-grid-columns($grid-columns, $class, push);\n  @include loop-grid-columns($grid-columns, $class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: $table-bg;\n}\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $text-muted;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: $line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: $table-cell-padding;\n        line-height: $line-height-base;\n        vertical-align: top;\n        border-top: 1px solid $table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid $table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid $table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: $body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: $table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid $table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid $table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: $table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: $table-bg-hover;\n  }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n  position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n  float: none;\n  display: table-column;\n}\ntable {\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      float: none;\n      display: table-cell;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n@include table-row-variant('active', $table-bg-active);\n@include table-row-variant('success', $state-success-bg);\n@include table-row-variant('info', $state-info-bg);\n@include table-row-variant('warning', $state-warning-bg);\n@include table-row-variant('danger', $state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n  @media screen and (max-width: $screen-xs-max) {\n    width: 100%;\n    margin-bottom: ($line-height-computed * 0.75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid $table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.#{$state},\n    > th.#{$state},\n    &.#{$state} > td,\n    &.#{$state} > th {\n      background-color: $background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.#{$state}:hover,\n    > th.#{$state}:hover,\n    &.#{$state}:hover > td,\n    &:hover > .#{$state},\n    &.#{$state}:hover > th {\n      background-color: darken($background, 5%);\n    }\n  }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: $line-height-computed;\n  font-size: ($font-size-base * 1.5);\n  line-height: inherit;\n  color: $legend-color;\n  border: 0;\n  border-bottom: 1px solid $legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n  @include box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  @include tab-focus;\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: ($padding-base-vertical + 1);\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: $padding-base-vertical $padding-base-horizontal;\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $input-color;\n  background-color: $input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid $input-border;\n  border-radius: $input-border-radius; // Note: This has no effect on s in CSS.\n  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus;\n\n  // Placeholder\n  @include placeholder;\n\n  // Unstyle the caret on ``\n// element gets special love because it's special, and that's a fact!\n// [converter] $parent hack\n@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  #{$parent} {\n    height: $input-height;\n    padding: $padding-vertical $padding-horizontal;\n    font-size: $font-size;\n    line-height: $line-height;\n    border-radius: $border-radius;\n  }\n\n  select#{$parent} {\n    height: $input-height;\n    line-height: $input-height;\n  }\n\n  textarea#{$parent},\n  select[multiple]#{$parent} {\n    height: auto;\n  }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: $btn-font-weight;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  white-space: nowrap;\n  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);\n  @include user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      @include tab-focus;\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: $btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    outline: 0;\n    background-image: none;\n    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n    @include opacity(.65);\n    @include box-shadow(none);\n  }\n\n  // [converter] extracted a& to a.btn\n}\n\na.btn {\n  &.disabled,\n  fieldset[disabled] & {\n    pointer-events: none; // Future-proof disabling of clicks on `` elements\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);\n}\n.btn-primary {\n  @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  color: $link-color;\n  font-weight: normal;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    @include box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: $btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);\n}\n.btn-xs {\n  @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($color, $background, $border) {\n  color: $color;\n  background-color: $background;\n  border-color: $border;\n\n  &:focus,\n  &.focus {\n    color: $color;\n    background-color: darken($background, 10%);\n        border-color: darken($border, 25%);\n  }\n  &:hover {\n    color: $color;\n    background-color: darken($background, 10%);\n        border-color: darken($border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > &.dropdown-toggle {\n    color: $color;\n    background-color: darken($background, 10%);\n        border-color: darken($border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: $color;\n      background-color: darken($background, 17%);\n          border-color: darken($border, 25%);\n    }\n  }\n  &:active,\n  &.active,\n  .open > &.dropdown-toggle {\n    background-image: none;\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus,\n    &.focus {\n      background-color: $background;\n          border-color: $border;\n    }\n  }\n\n  .badge {\n    color: $background;\n    background-color: $color;\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  padding: $padding-vertical $padding-horizontal;\n  font-size: $font-size;\n  line-height: $line-height;\n  border-radius: $border-radius;\n}\n","// Opacity\n\n@mixin opacity($opacity) {\n  opacity: $opacity;\n  // IE8 filter\n  $opacity-ie: ($opacity * 100);\n  filter: alpha(opacity=$opacity-ie);\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  @include transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  // [converter] extracted tr&.in to tr.collapse.in\n  // [converter] extracted tbody&.in to tbody.collapse.in\n}\n\ntr.collapse.in    { display: table-row; }\n\ntbody.collapse.in { display: table-row-group; }\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition-property(height, visibility);\n  @include transition-duration(.35s);\n  @include transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top:   $caret-width-base dashed;\n  border-top:   $caret-width-base solid \\9; // IE8\n  border-right: $caret-width-base solid transparent;\n  border-left:  $caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  font-size: $font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  background-color: $dropdown-bg;\n  border: 1px solid $dropdown-fallback-border; // IE8 fallback\n  border: 1px solid $dropdown-border;\n  border-radius: $border-radius-base;\n  @include box-shadow(0 6px 12px rgba(0,0,0,.175));\n  background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    @include nav-divider($dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: $line-height-base;\n    color: $dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n  }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: $dropdown-link-hover-color;\n    background-color: $dropdown-link-hover-bg;\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    outline: 0;\n    background-color: $dropdown-link-active-bg;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: $dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    @include reset-filter;\n    cursor: $cursor-disabled;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  left: auto; // Reset the default from `.dropdown-menu`\n  right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: $font-size-small;\n  line-height: $line-height-base;\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: ($zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: $caret-width-base dashed;\n    border-bottom: $caret-width-base solid \\9; // IE8\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: $grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      right: 0; left: auto;\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      left: 0; right: auto;\n    }\n  }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5e5) {\n  height: 1px;\n  margin: (($line-height-computed / 2) - 1) 0;\n  overflow: hidden;\n  background-color: $color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n@mixin reset-filter() {\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  @include clearfix;\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    @include border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  @include border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    @include border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  @include border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { @extend .btn-xs; }\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: $caret-width-large $caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 $caret-width-large $caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    @include clearfix;\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    @include border-top-radius($btn-border-radius-base);\n    @include border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    @include border-top-radius(0);\n    @include border-bottom-radius($btn-border-radius-base);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    @include border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  @include border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0,0,0,0);\n      pointer-events: none;\n    }\n  }\n}\n","// Single side border-radius\n\n@mixin border-top-radius($radius) {\n  border-top-right-radius: $radius;\n   border-top-left-radius: $radius;\n}\n@mixin border-right-radius($radius) {\n  border-bottom-right-radius: $radius;\n     border-top-right-radius: $radius;\n}\n@mixin border-bottom-radius($radius) {\n  border-bottom-right-radius: $radius;\n   border-bottom-left-radius: $radius;\n}\n@mixin border-left-radius($radius) {\n  border-bottom-left-radius: $radius;\n     border-top-left-radius: $radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  @extend .input-lg;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  @extend .input-sm;\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: $padding-base-vertical $padding-base-horizontal;\n  font-size: $font-size-base;\n  font-weight: normal;\n  line-height: 1;\n  color: $input-color;\n  text-align: center;\n  background-color: $input-group-addon-bg;\n  border: 1px solid $input-group-addon-border-color;\n  border-radius: $input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: $padding-small-vertical $padding-small-horizontal;\n    font-size: $font-size-small;\n    border-radius: $input-border-radius-small;\n  }\n  &.input-lg {\n    padding: $padding-large-vertical $padding-large-horizontal;\n    font-size: $font-size-large;\n    border-radius: $input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  @include border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  @include border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0; // Override default ul/ol\n  list-style: none;\n  @include clearfix;\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: $nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: $nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: $nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: $nav-disabled-link-hover-color;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: $cursor-disabled;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: $nav-link-hover-bg;\n      border-color: $link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    @include nav-divider;\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid $nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: $line-height-base;\n      border: 1px solid transparent;\n      border-radius: $border-radius-base $border-radius-base 0 0;\n      &:hover {\n        border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $nav-tabs-active-link-hover-color;\n        background-color: $nav-tabs-active-link-hover-bg;\n        border: 1px solid $nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n        cursor: default;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    @extend .nav-justified;\n    @extend .nav-tabs-justified;\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: $nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $nav-pills-active-link-hover-color;\n        background-color: $nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      text-align: center;\n      margin-bottom: 5px;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: $screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: $border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid $nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: $screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid $nav-tabs-justified-link-border-color;\n      border-radius: $border-radius-base $border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: $nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  @include border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: $navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  @include clearfix;\n\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: $navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  @include clearfix;\n\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: $navbar-padding-horizontal;\n  padding-left:  $navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n  @include clearfix;\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: $navbar-collapse-max-height;\n\n    @media (max-device-width: $screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -$navbar-padding-horizontal;\n    margin-left:  -$navbar-padding-horizontal;\n\n    @media (min-width: $grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left:  0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: $zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: $zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  padding: $navbar-padding-vertical $navbar-padding-horizontal;\n  font-size: $font-size-large;\n  line-height: $line-height-computed;\n  height: $navbar-height;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -$navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: $navbar-padding-horizontal;\n  padding: 9px 10px;\n  @include navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: $border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);\n\n  > li > a {\n    padding-top:    10px;\n    padding-bottom: 10px;\n    line-height: $line-height-computed;\n  }\n\n  @media (max-width: $grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: $line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top:    $navbar-padding-vertical;\n        padding-bottom: $navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  margin-left: -$navbar-padding-horizontal;\n  margin-right: -$navbar-padding-horizontal;\n  padding: 10px $navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n  @include box-shadow($shadow);\n\n  // Mixin behavior for optimum display\n  @include form-inline;\n\n  .form-group {\n    @media (max-width: $grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  @include navbar-vertical-align($input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: $grid-float-breakpoint) {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    @include box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  @include border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  @include border-top-radius($navbar-border-radius);\n  @include border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  @include navbar-vertical-align($input-height-base);\n\n  &.btn-sm {\n    @include navbar-vertical-align($input-height-small);\n  }\n  &.btn-xs {\n    @include navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  @include navbar-vertical-align($line-height-computed);\n\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n    margin-left: $navbar-padding-horizontal;\n    margin-right: $navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: $grid-float-breakpoint) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n  margin-right: -$navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: $navbar-default-bg;\n  border-color: $navbar-default-border;\n\n  .navbar-brand {\n    color: $navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: $navbar-default-brand-hover-color;\n      background-color: $navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: $navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: $navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-hover-color;\n        background-color: $navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-active-color;\n        background-color: $navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-disabled-color;\n        background-color: $navbar-default-link-disabled-bg;\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: $navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: $navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: $navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: $navbar-default-border;\n  }\n\n  // Dropdown menu items\n  .navbar-nav {\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: $navbar-default-link-active-bg;\n        color: $navbar-default-link-active-color;\n      }\n    }\n\n    @media (max-width: $grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: $navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-hover-color;\n            background-color: $navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-active-color;\n            background-color: $navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-disabled-color;\n            background-color: $navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: $navbar-default-link-color;\n    &:hover {\n      color: $navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: $navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: $navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: $navbar-inverse-bg;\n  border-color: $navbar-inverse-border;\n\n  .navbar-brand {\n    color: $navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: $navbar-inverse-brand-hover-color;\n      background-color: $navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: $navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: $navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-hover-color;\n        background-color: $navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-active-color;\n        background-color: $navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-disabled-color;\n        background-color: $navbar-inverse-link-disabled-bg;\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: $navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: $navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: $navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken($navbar-inverse-bg, 7%);\n  }\n\n  // Dropdowns\n  .navbar-nav {\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: $navbar-inverse-link-active-bg;\n        color: $navbar-inverse-link-active-color;\n      }\n    }\n\n    @media (max-width: $grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: $navbar-inverse-border;\n        }\n        .divider {\n          background-color: $navbar-inverse-border;\n        }\n        > li > a {\n          color: $navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-hover-color;\n            background-color: $navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-active-color;\n            background-color: $navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-disabled-color;\n            background-color: $navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-link {\n    color: $navbar-inverse-link-color;\n    &:hover {\n      color: $navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: $navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: $navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n@mixin navbar-vertical-align($element-height) {\n  margin-top: (($navbar-height - $element-height) / 2);\n  margin-bottom: (($navbar-height - $element-height) / 2);\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;\n  margin-bottom: $line-height-computed;\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  border-radius: $border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      // [converter] Workaround for https://github.com/sass/libsass/issues/1115\n      $nbsp: \"\\00a0\";\n      content: \"#{$breadcrumb-separator}#{$nbsp}\"; // Unicode space added since inline-block means non-collapsing white-space\n      padding: 0 5px;\n      color: $breadcrumb-color;\n    }\n  }\n\n  > .active {\n    color: $breadcrumb-active-color;\n  }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: $line-height-computed 0;\n  border-radius: $border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: $padding-base-vertical $padding-base-horizontal;\n      line-height: $line-height-base;\n      text-decoration: none;\n      color: $pagination-color;\n      background-color: $pagination-bg;\n      border: 1px solid $pagination-border;\n      margin-left: -1px;\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        @include border-left-radius($border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        @include border-right-radius($border-radius-base);\n      }\n    }\n  }\n\n  > li > a,\n  > li > span {\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: $pagination-hover-color;\n      background-color: $pagination-hover-bg;\n      border-color: $pagination-hover-border;\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: $pagination-active-color;\n      background-color: $pagination-active-bg;\n      border-color: $pagination-active-border;\n      cursor: default;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: $pagination-disabled-color;\n      background-color: $pagination-disabled-bg;\n      border-color: $pagination-disabled-border;\n      cursor: $cursor-disabled;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);\n}\n","// Pagination\n\n@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: $padding-vertical $padding-horizontal;\n      font-size: $font-size;\n      line-height: $line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: $line-height-computed 0;\n  list-style: none;\n  text-align: center;\n  @include clearfix;\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: $pager-bg;\n      border: 1px solid $pager-border;\n      border-radius: $pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: $pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: $pager-disabled-color;\n      background-color: $pager-bg;\n      cursor: $cursor-disabled;\n    }\n  }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: $label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // [converter] extracted a& to a.label\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Add hover effects, but only for links\na.label {\n  &:hover,\n  &:focus {\n    color: $label-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  @include label-variant($label-default-bg);\n}\n\n.label-primary {\n  @include label-variant($label-primary-bg);\n}\n\n.label-success {\n  @include label-variant($label-success-bg);\n}\n\n.label-info {\n  @include label-variant($label-info-bg);\n}\n\n.label-warning {\n  @include label-variant($label-warning-bg);\n}\n\n.label-danger {\n  @include label-variant($label-danger-bg);\n}\n","// Labels\n\n@mixin label-variant($color) {\n  background-color: $color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken($color, 10%);\n    }\n  }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: $font-size-small;\n  font-weight: $badge-font-weight;\n  color: $badge-color;\n  line-height: $badge-line-height;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: $badge-bg;\n  border-radius: $badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // [converter] extracted a& to a.badge\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: $badge-active-color;\n    background-color: $badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n\n// Hover state, but only for links\na.badge {\n  &:hover,\n  &:focus {\n    color: $badge-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top:    $jumbotron-padding;\n  padding-bottom: $jumbotron-padding;\n  margin-bottom: $jumbotron-padding;\n  color: $jumbotron-color;\n  background-color: $jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: $jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: ($jumbotron-padding / 2);\n    font-size: $jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken($jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container\n    padding-left:  ($grid-gutter-width / 2);\n    padding-right: ($grid-gutter-width / 2);\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: $screen-sm-min) {\n    padding-top:    ($jumbotron-padding * 1.6);\n    padding-bottom: ($jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-left:  ($jumbotron-padding * 2);\n      padding-right: ($jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: $jumbotron-heading-font-size;\n    }\n  }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: $thumbnail-padding;\n  margin-bottom: $line-height-computed;\n  line-height: $line-height-base;\n  background-color: $thumbnail-bg;\n  border: 1px solid $thumbnail-border;\n  border-radius: $thumbnail-border-radius;\n  @include transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    @include img-responsive;\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active\n\n  // Image captions\n  .caption {\n    padding: $thumbnail-caption-padding;\n    color: $thumbnail-caption-color;\n  }\n}\n\n// Add a hover state for linked versions only\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: $link-color;\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: $alert-padding;\n  margin-bottom: $line-height-computed;\n  border: 1px solid transparent;\n  border-radius: $alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    // Specified for the h4 to prevent conflicts of changing $headings-color\n    color: inherit;\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: $alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n  padding-right: ($alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);\n}\n\n.alert-info {\n  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);\n}\n\n.alert-warning {\n  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);\n}\n\n.alert-danger {\n  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);\n}\n","// Alerts\n\n@mixin alert-variant($background, $border, $text-color) {\n  background-color: $background;\n  border-color: $border;\n  color: $text-color;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n  .alert-link {\n    color: darken($text-color, 10%);\n  }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: $line-height-computed;\n  margin-bottom: $line-height-computed;\n  background-color: $progress-bg;\n  border-radius: $progress-border-radius;\n  @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: $font-size-small;\n  line-height: $line-height-computed;\n  color: $progress-bar-color;\n  text-align: center;\n  background-color: $progress-bar-bg;\n  @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  @include transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  @include gradient-striped;\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  @include animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  @include progress-bar-variant($progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  @include progress-bar-variant($progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  @include progress-bar-variant($progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  @include progress-bar-variant($progress-bar-danger-bg);\n}\n","// Gradients\n\n\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n// Color stops are not available in IE9 and below.\n@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n  background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n// Color stops are not available in IE9 and below.\n@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n  background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Opera 12\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down\n}\n\n@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {\n  background-repeat: repeat-x;\n  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12\n  background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n}\n@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);\n  background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback\n}\n@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback\n}\n@mixin gradient-radial($inner-color: #555, $outer-color: #333) {\n  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {\n  background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// Progress bars\n\n@mixin progress-bar-variant($color) {\n  background-color: $color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    @include gradient-striped;\n  }\n}\n",".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on ",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("unselect",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html(''),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('
    '),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('
  • ×
  • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e0||0===c.length)){var d=a('×');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change"); +if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){d.status&&"0"===d.status||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("focus",function(){c.isOpen()&&e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
  • '),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(""),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null; +},e.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=c[b].apply(c,f)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}); \ No newline at end of file diff --git a/resources/assets/js/views/Dashboard.vue b/resources/assets/js/views/Dashboard.vue new file mode 100644 index 000000000..125fff5d9 --- /dev/null +++ b/resources/assets/js/views/Dashboard.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/resources/assets/js/views/Parent.vue b/resources/assets/js/views/Parent.vue new file mode 100644 index 000000000..e3bc8ac8d --- /dev/null +++ b/resources/assets/js/views/Parent.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/resources/assets/js/views/dashboard/File.vue b/resources/assets/js/views/dashboard/File.vue new file mode 100644 index 000000000..b36026d84 --- /dev/null +++ b/resources/assets/js/views/dashboard/File.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/Home.vue b/resources/assets/js/views/dashboard/Home.vue new file mode 100644 index 000000000..7b8d0edd9 --- /dev/null +++ b/resources/assets/js/views/dashboard/Home.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/System.vue b/resources/assets/js/views/dashboard/System.vue new file mode 100644 index 000000000..020be2ff5 --- /dev/null +++ b/resources/assets/js/views/dashboard/System.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/Visitor.vue b/resources/assets/js/views/dashboard/Visitor.vue new file mode 100644 index 000000000..07f59d902 --- /dev/null +++ b/resources/assets/js/views/dashboard/Visitor.vue @@ -0,0 +1,46 @@ + + + diff --git a/resources/assets/js/views/dashboard/article/Article.vue b/resources/assets/js/views/dashboard/article/Article.vue new file mode 100644 index 000000000..8681dfb24 --- /dev/null +++ b/resources/assets/js/views/dashboard/article/Article.vue @@ -0,0 +1,75 @@ + + + diff --git a/resources/assets/js/views/dashboard/article/Create.vue b/resources/assets/js/views/dashboard/article/Create.vue new file mode 100644 index 000000000..70413ca09 --- /dev/null +++ b/resources/assets/js/views/dashboard/article/Create.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/article/Edit.vue b/resources/assets/js/views/dashboard/article/Edit.vue new file mode 100644 index 000000000..0bda3a74f --- /dev/null +++ b/resources/assets/js/views/dashboard/article/Edit.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/article/FormMixin.vue b/resources/assets/js/views/dashboard/article/FormMixin.vue new file mode 100644 index 000000000..ceb5f74fa --- /dev/null +++ b/resources/assets/js/views/dashboard/article/FormMixin.vue @@ -0,0 +1,52 @@ + \ No newline at end of file diff --git a/resources/assets/js/views/dashboard/category/Category.vue b/resources/assets/js/views/dashboard/category/Category.vue new file mode 100644 index 000000000..48425b2a3 --- /dev/null +++ b/resources/assets/js/views/dashboard/category/Category.vue @@ -0,0 +1,61 @@ + + + diff --git a/resources/assets/js/views/dashboard/category/Create.vue b/resources/assets/js/views/dashboard/category/Create.vue new file mode 100644 index 000000000..4bb7ab01c --- /dev/null +++ b/resources/assets/js/views/dashboard/category/Create.vue @@ -0,0 +1,57 @@ + + + diff --git a/resources/assets/js/views/dashboard/category/Edit.vue b/resources/assets/js/views/dashboard/category/Edit.vue new file mode 100644 index 000000000..5672f00ed --- /dev/null +++ b/resources/assets/js/views/dashboard/category/Edit.vue @@ -0,0 +1,66 @@ + + + diff --git a/resources/assets/js/views/dashboard/comment/Comment.vue b/resources/assets/js/views/dashboard/comment/Comment.vue new file mode 100644 index 000000000..6dfb9bdcb --- /dev/null +++ b/resources/assets/js/views/dashboard/comment/Comment.vue @@ -0,0 +1,64 @@ + + + diff --git a/resources/assets/js/views/dashboard/comment/Edit.vue b/resources/assets/js/views/dashboard/comment/Edit.vue new file mode 100644 index 000000000..5dcc911bf --- /dev/null +++ b/resources/assets/js/views/dashboard/comment/Edit.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/discussion/Create.vue b/resources/assets/js/views/dashboard/discussion/Create.vue new file mode 100644 index 000000000..47c3cbb7e --- /dev/null +++ b/resources/assets/js/views/dashboard/discussion/Create.vue @@ -0,0 +1,134 @@ + + + + + + diff --git a/resources/assets/js/views/dashboard/discussion/Discussion.vue b/resources/assets/js/views/dashboard/discussion/Discussion.vue new file mode 100644 index 000000000..731dce98f --- /dev/null +++ b/resources/assets/js/views/dashboard/discussion/Discussion.vue @@ -0,0 +1,79 @@ + + + diff --git a/resources/assets/js/views/dashboard/discussion/Edit.vue b/resources/assets/js/views/dashboard/discussion/Edit.vue new file mode 100644 index 000000000..9c40c0c8b --- /dev/null +++ b/resources/assets/js/views/dashboard/discussion/Edit.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/resources/assets/js/views/dashboard/link/Create.vue b/resources/assets/js/views/dashboard/link/Create.vue new file mode 100644 index 000000000..6b6deadc4 --- /dev/null +++ b/resources/assets/js/views/dashboard/link/Create.vue @@ -0,0 +1,71 @@ + + + diff --git a/resources/assets/js/views/dashboard/link/Edit.vue b/resources/assets/js/views/dashboard/link/Edit.vue new file mode 100644 index 000000000..f9927a9e0 --- /dev/null +++ b/resources/assets/js/views/dashboard/link/Edit.vue @@ -0,0 +1,82 @@ + + + diff --git a/resources/assets/js/views/dashboard/link/Link.vue b/resources/assets/js/views/dashboard/link/Link.vue new file mode 100644 index 000000000..ca45d75ce --- /dev/null +++ b/resources/assets/js/views/dashboard/link/Link.vue @@ -0,0 +1,78 @@ + + + diff --git a/resources/assets/js/views/dashboard/tag/Create.vue b/resources/assets/js/views/dashboard/tag/Create.vue new file mode 100644 index 000000000..ba91f8fd6 --- /dev/null +++ b/resources/assets/js/views/dashboard/tag/Create.vue @@ -0,0 +1,50 @@ + + + + diff --git a/resources/assets/js/views/dashboard/tag/Edit.vue b/resources/assets/js/views/dashboard/tag/Edit.vue new file mode 100644 index 000000000..3b64aabc9 --- /dev/null +++ b/resources/assets/js/views/dashboard/tag/Edit.vue @@ -0,0 +1,58 @@ + + + diff --git a/resources/assets/js/views/dashboard/tag/Tag.vue b/resources/assets/js/views/dashboard/tag/Tag.vue new file mode 100644 index 000000000..635aafa9f --- /dev/null +++ b/resources/assets/js/views/dashboard/tag/Tag.vue @@ -0,0 +1,64 @@ + + + diff --git a/resources/assets/js/views/dashboard/user/Create.vue b/resources/assets/js/views/dashboard/user/Create.vue new file mode 100644 index 000000000..ad876ad73 --- /dev/null +++ b/resources/assets/js/views/dashboard/user/Create.vue @@ -0,0 +1,53 @@ + + + diff --git a/resources/assets/js/views/dashboard/user/Edit.vue b/resources/assets/js/views/dashboard/user/Edit.vue new file mode 100644 index 000000000..cfdffcde6 --- /dev/null +++ b/resources/assets/js/views/dashboard/user/Edit.vue @@ -0,0 +1,65 @@ + + + diff --git a/resources/assets/js/views/dashboard/user/User.vue b/resources/assets/js/views/dashboard/user/User.vue new file mode 100644 index 000000000..5e2a22914 --- /dev/null +++ b/resources/assets/js/views/dashboard/user/User.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/resources/assets/js/vuex/actions.js b/resources/assets/js/vuex/actions.js new file mode 100644 index 000000000..890cac18f --- /dev/null +++ b/resources/assets/js/vuex/actions.js @@ -0,0 +1 @@ +export const toggle = ({ commit }) => commit('toggle') diff --git a/resources/assets/js/vuex/mutations.js b/resources/assets/js/vuex/mutations.js new file mode 100644 index 000000000..1b055c1f5 --- /dev/null +++ b/resources/assets/js/vuex/mutations.js @@ -0,0 +1,3 @@ +export const toggle = state => { + return state.sidebar.opened = !state.sidebar.opened +} \ No newline at end of file diff --git a/resources/assets/js/vuex/store.js b/resources/assets/js/vuex/store.js new file mode 100644 index 000000000..8133d4312 --- /dev/null +++ b/resources/assets/js/vuex/store.js @@ -0,0 +1,18 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import * as actions from './actions.js'; +import * as mutations from './mutations.js'; + +Vue.use(Vuex); + +const state = { + sidebar: { + opened: false + } +}; + +export default new Vuex.Store({ + state, + actions, + mutations +}); diff --git a/resources/assets/sass/_form.scss b/resources/assets/sass/_form.scss new file mode 100644 index 000000000..4587f628a --- /dev/null +++ b/resources/assets/sass/_form.scss @@ -0,0 +1,15 @@ +.form-control, .form-control:focus, input{ + border-width: 2px; + -webkit-box-shadow: none; + box-shadow: none; + outline: 0; +} + +legend { + border: none; +} + +.well { + border: none; + box-shadow: none; +} \ No newline at end of file diff --git a/resources/assets/sass/_ibox.scss b/resources/assets/sass/_ibox.scss new file mode 100644 index 000000000..a636d5f69 --- /dev/null +++ b/resources/assets/sass/_ibox.scss @@ -0,0 +1,49 @@ +.ibox { + clear: both; + margin-bottom: 25px; + margin-top: 0; + padding: 0; +} +.ibox-title { + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + background-color: #ffffff; + border-color: #e7eaec; + border-image: none; + border-style: solid solid none; + border-width: 2px 0 0; + color: inherit; + margin-bottom: 0; + padding: 15px 15px 7px; + min-height: 48px; +} +.ibox-default { + border-color: #e7eaec; +} +.ibox-success { + border-color: #3498db; +} +.ibox-success { + border-color: #1abc9c; +} +.ibox-warning { + border-color: #f1c40f; +} +.ibox-danger { + border-color: #e74c3c; +} +.ibox-content { + clear: both; + background-color: #ffffff; + color: inherit; + padding: 15px 20px 20px 20px; + border-color: #e7eaec; + border-image: none; + border-style: solid solid none; + border-width: 1px 0; +} +.no-padding { + padding: 0; +} \ No newline at end of file diff --git a/resources/assets/sass/_navbar.scss b/resources/assets/sass/_navbar.scss new file mode 100644 index 000000000..2c7d647bc --- /dev/null +++ b/resources/assets/sass/_navbar.scss @@ -0,0 +1,3 @@ +.navbar-collapse { + border: none; +} \ No newline at end of file diff --git a/resources/assets/sass/_pagination.scss b/resources/assets/sass/_pagination.scss new file mode 100644 index 000000000..d73aff2ff --- /dev/null +++ b/resources/assets/sass/_pagination.scss @@ -0,0 +1,354 @@ + +.pagination { + position: relative; + /*display: block;*/ +} +@media (min-width: 768px) { + .pagination { + display: inline-block; + } +} +.pagination > ul { + background: #d6dbdf; + color: #ffffff; + padding: 0; + margin: 0; + display: inline-block; + border-radius: 6px; + word-spacing: -0.5px; +} +@media (max-width: 767px) { + .pagination > ul { + height: 41px; + padding: 0 55px 0 52px; + overflow: auto; + white-space: nowrap; + border-radius: 6px; + } +} +.pagination li { + display: inline-block; + margin-right: -3px; + word-spacing: normal; +} +.pagination li.active > a, +.pagination li.active > span { + background-color: #1abc9c; + color: #ffffff; + border-color: #dfe2e5; +} +.pagination li.active.previous > a, +.pagination li.active.next > a, +.pagination li.active.previous > span, +.pagination li.active.next > span { + margin: 0; +} +.pagination li.active.previous > a, +.pagination li.active.next > a, +.pagination li.active.previous > span, +.pagination li.active.next > span, +.pagination li.active.previous > a:hover, +.pagination li.active.next > a:hover, +.pagination li.active.previous > span:hover, +.pagination li.active.next > span:hover, +.pagination li.active.previous > a:focus, +.pagination li.active.next > a:focus, +.pagination li.active.previous > span:focus, +.pagination li.active.next > span:focus { + background-color: #1abc9c; + color: #ffffff; +} +.pagination li:first-child > a, +.pagination li:first-child > span { + border-radius: 6px 0 0 6px; + border-left: none; +} +.pagination li:first-child.previous + li > a, +.pagination li:first-child.previous + li > span { + border-left-width: 0; +} +.pagination li:last-child { + margin-right: 0; +} +.pagination li:last-child > a, +.pagination li:last-child > span, +.pagination li:last-child > a:hover, +.pagination li:last-child > span:hover, +.pagination li:last-child > a:focus, +.pagination li:last-child > span:focus { + border-radius: 0 6px 6px 0; +} +.pagination li.previous > a, +.pagination li.next > a, +.pagination li.previous > span, +.pagination li.next > span { + border-right: 2px solid #e4e7ea; + font-size: 16px; + min-width: auto; + padding: 12px 17px; + background-color: transparent; +} +.pagination li.next > a, +.pagination li.next > span { + border-right: none; +} +.pagination li.disabled > a, +.pagination li.disabled > span { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.3); + border-right-color: #dfe2e5; + cursor: not-allowed; +} +.pagination li.disabled > a:hover, +.pagination li.disabled > span:hover, +.pagination li.disabled > a:focus, +.pagination li.disabled > span:focus, +.pagination li.disabled > a:active, +.pagination li.disabled > span:active { + background-color: rgba(255, 255, 255, 0.4); + color: #ffffff; +} +@media (max-width: 767px) { + .pagination li.next, + .pagination li.previous { + background-color: #d6dbdf; + position: absolute; + right: 0; + top: 0; + z-index: 10; + border-radius: 0 6px 6px 0; + } + .pagination li.previous { + left: 0; + right: auto; + border-radius: 6px 0 0 6px; + } +} +.pagination li > a, +.pagination li > span { + display: inline-block; + background: transparent; + border: none; + border-left: 2px solid #e4e7ea; + color: #ffffff; + font-size: 14px; + line-height: 16px; + min-height: 41px; + min-width: 41px; + outline: none; + padding: 12px 10px; + text-align: center; + -webkit-transition: 0.25s ease-out; + transition: 0.25s ease-out; +} +.pagination li > a:hover, +.pagination li > span:hover, +.pagination li > a:focus, +.pagination li > span:focus { + background-color: #1abc9c; + color: #ffffff; +} +.pagination li > a:active, +.pagination li > span:active { + background-color: #1abc9c; + color: #ffffff; +} +.pagination > .btn.previous, +.pagination > .btn.next { + margin-right: 8px; + font-size: 14px; + line-height: 1.429; + padding-left: 23px; + padding-right: 23px; +} +.pagination > .btn.previous [class*="fui-"], +.pagination > .btn.next [class*="fui-"] { + font-size: 16px; + margin-left: -2px; + margin-top: -2px; +} +.pagination > .btn.next { + margin-left: 8px; + margin-right: 0; +} +.pagination > .btn.next [class*="fui-"] { + margin-right: -2px; + margin-left: 4px; +} +@media (max-width: 767px) { + .pagination > .btn { + display: block; + margin: 0; + width: 50%; + } + .pagination > .btn:first-child { + border-bottom: 2px solid #dfe2e5; + border-radius: 6px 0 0; + } + .pagination > .btn:first-child.btn-primary { + border-bottom-color: #48c9b0; + } + .pagination > .btn:first-child.btn-danger { + border-bottom-color: #ec7063; + } + .pagination > .btn:first-child.btn-warning { + border-bottom-color: #f4d03f; + } + .pagination > .btn:first-child.btn-success { + border-bottom-color: #58d68d; + } + .pagination > .btn:first-child.btn-info { + border-bottom-color: #5dade2; + } + .pagination > .btn:first-child.btn-inverse { + border-bottom-color: #5d6d7e; + } + .pagination > .btn:first-child > [class*="fui"] { + margin-left: -20px; + } + .pagination > .btn + ul { + padding: 0; + text-align: center; + border-radius: 0 0 6px 6px; + } + .pagination > .btn + ul + .btn { + border-bottom: 2px solid #dfe2e5; + position: absolute; + right: 0; + top: 0; + border-radius: 0 6px 0 0; + } + .pagination > .btn + ul + .btn.btn-primary { + border-bottom-color: #48c9b0; + } + .pagination > .btn + ul + .btn.btn-danger { + border-bottom-color: #ec7063; + } + .pagination > .btn + ul + .btn.btn-warning { + border-bottom-color: #f4d03f; + } + .pagination > .btn + ul + .btn.btn-success { + border-bottom-color: #58d68d; + } + .pagination > .btn + ul + .btn.btn-info { + border-bottom-color: #5dade2; + } + .pagination > .btn + ul + .btn.btn-inverse { + border-bottom-color: #5d6d7e; + } + .pagination > .btn + ul + .btn > [class*="fui"] { + margin-right: -20px; + } + .pagination ul { + display: block; + } + .pagination ul > li > a { + border-radius: 0; + } +} +.pagination-minimal > ul > li:first-child { + border-radius: 6px 0 0 6px; +} +.pagination-minimal > ul > li:first-child.previous + li > a, +.pagination-minimal > ul > li:first-child.previous + li > span { + border-left-width: 5px !important; +} +.pagination-minimal > ul > li:last-child { + border-radius: 0 6px 6px 0; +} +.pagination-minimal > ul > li.previous > a, +.pagination-minimal > ul > li.next > a, +.pagination-minimal > ul > li.previous > span, +.pagination-minimal > ul > li.next > span { + background: transparent; + border: none; + border-right: 2px solid #e4e7ea; + margin: 0 9px 0 0; + padding: 15px 17px; + border-radius: 6px 0 0 6px; +} +.pagination-minimal > ul > li.previous > a, +.pagination-minimal > ul > li.next > a, +.pagination-minimal > ul > li.previous > span, +.pagination-minimal > ul > li.next > span, +.pagination-minimal > ul > li.previous > a:hover, +.pagination-minimal > ul > li.next > a:hover, +.pagination-minimal > ul > li.previous > span:hover, +.pagination-minimal > ul > li.next > span:hover, +.pagination-minimal > ul > li.previous > a:focus, +.pagination-minimal > ul > li.next > a:focus, +.pagination-minimal > ul > li.previous > span:focus, +.pagination-minimal > ul > li.next > span:focus { + border-color: #e4e7ea !important; +} +@media (max-width: 767px) { + .pagination-minimal > ul > li.previous > a, + .pagination-minimal > ul > li.next > a, + .pagination-minimal > ul > li.previous > span, + .pagination-minimal > ul > li.next > span { + margin-right: 0; + } +} +.pagination-minimal > ul > li.next { + margin-left: 9px; +} +.pagination-minimal > ul > li.next > a, +.pagination-minimal > ul > li.next > span { + border-left: 2px solid #e4e7ea; + border-right: none; + margin: 0; + border-radius: 0 6px 6px 0; +} +.pagination-minimal > ul > li.active > a, +.pagination-minimal > ul > li.active > span { + background-color: #ffffff; + border-color: #ffffff; + color: #d6dbdf; + margin: 10px 5px 9px; + line-height: 16px; +} +.pagination-minimal > ul > li.active > a:hover, +.pagination-minimal > ul > li.active > span:hover, +.pagination-minimal > ul > li.active > a:focus, +.pagination-minimal > ul > li.active > span:focus { + background-color: #ffffff; + border-color: #ffffff; + color: #d6dbdf; +} +.pagination-minimal > ul > li.active.previous, +.pagination-minimal > ul > li.active.next { + border-color: #e4e7ea; +} +.pagination-minimal > ul > li.active.previous { + margin-right: 6px; +} +.pagination-minimal > ul > li > a, +.pagination-minimal > ul > li > span { + background: #ffffff; + border: 5px solid #d6dbdf; + color: #ffffff; + line-height: 15px; + margin: 7px 2px 6px; + min-width: 0; + min-height: 16px; + padding: 0 4px; + border-radius: 50px; + background-clip: padding-box; + -webkit-transition: background 0.2s ease-out, border-color 0s ease-out, color 0.2s ease-out; + transition: background 0.2s ease-out, border-color 0s ease-out, color 0.2s ease-out; +} +.pagination-minimal > ul > li > a:hover, +.pagination-minimal > ul > li > span:hover, +.pagination-minimal > ul > li > a:focus, +.pagination-minimal > ul > li > span:focus { + background-color: #1abc9c; + border-color: #1abc9c; + color: #ffffff; + -webkit-transition: background 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out; + transition: background 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out; +} +.pagination-minimal > ul > li > a:active, +.pagination-minimal > ul > li > span:active { + background-color: #16a085; + border-color: #16a085; +} \ No newline at end of file diff --git a/resources/assets/sass/_toastr.scss b/resources/assets/sass/_toastr.scss new file mode 100644 index 000000000..f40760876 --- /dev/null +++ b/resources/assets/sass/_toastr.scss @@ -0,0 +1,17 @@ +.toast-success { + background-color: #1abc9c; +} +.toast-error { + background-color: #e74c3c; +} +.toast-info { + background-color: #597289; +} +.toast-warning { + background-color: #f1c40f; +} +#toast-container > div { + opacity: 0.9; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90); + filter: alpha(opacity=90); +} \ No newline at end of file diff --git a/resources/assets/sass/_togglebutton.scss b/resources/assets/sass/_togglebutton.scss new file mode 100644 index 000000000..6faaccf64 --- /dev/null +++ b/resources/assets/sass/_togglebutton.scss @@ -0,0 +1,82 @@ +.togglebutton { + vertical-align: middle; + &, label, input, .toggle { + user-select: none; + } + label { + cursor: pointer; + color: $mdb-toggle-label-color; + + // Hide original checkbox + input[type=checkbox] { + opacity: 0; + width: 0; + height: 0; + } + + .toggle { + text-align: left; // Issue #737 horizontal form + } + // Switch bg off and disabled + .toggle, + input[type=checkbox][disabled] + .toggle { + content: ""; + display: inline-block; + width: 40px; + height: 18px; + background-color: rgba(80, 80, 80, 0.7); + border-radius: 15px; + margin-right: 15px; + transition: background 0.3s ease; + vertical-align: middle; + } + // Handle off + .toggle:after { + content: ""; + display: inline-block; + width: 25px; + height: 25px; + background-color: #F1F1F1; + border-radius: 20px; + position: relative; + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); + left: -5px; + top: -4px; + transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; + } + input[type=checkbox] { + // Handle disabled + &[disabled] { + & + .toggle:after, + &:checked + .toggle:after { + background-color: #BDBDBD; + } + } + + & + .toggle:active:after, + &[disabled] + .toggle:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1); + } + + // Ripple off and disabled + &:checked + .toggle:after { + left: 20px; + } + } + + // set bg when checked + input[type=checkbox]:checked { + + .toggle { + background-color: rgba($brand-secondary, (50/100)); // Switch bg on + } + + + .toggle:after { + background-color: $brand-secondary; // Handle on + } + + + .toggle:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba($brand-secondary, (10/100)); // Ripple on + } + } + } +} \ No newline at end of file diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss new file mode 100644 index 000000000..87ddebe8e --- /dev/null +++ b/resources/assets/sass/app.scss @@ -0,0 +1,22 @@ + +// Public +@import "public"; + +//Simplemde +@import "vendor/simplemde.min"; + +@import "_form"; +@import "_navbar"; +@import "_ibox"; +@import "_toastr"; +@import "_togglebutton"; + +.width-5-percent { + width: 5%; +} +.width-10-percent { + width: 10%; +} +.no-margin { + margin: 0 !important; +} \ No newline at end of file diff --git a/resources/assets/sass/home.scss b/resources/assets/sass/home.scss new file mode 100644 index 000000000..fd52de980 --- /dev/null +++ b/resources/assets/sass/home.scss @@ -0,0 +1,20 @@ + +// Public +@import "public"; + +// Share.js +@import "node_modules/social-share.js/src/css/share.scss"; + +// Select 2 +@import "vendor/select2.min"; + +// Markdown +@import "markdown"; +@import "vendor/highlight.min"; + +@import "_form"; +@import "_navbar"; +@import "_pagination"; +@import "_togglebutton"; +@import "_toastr"; +@import "styles"; diff --git a/resources/assets/sass/markdown.scss b/resources/assets/sass/markdown.scss new file mode 100644 index 000000000..6c0d0d415 --- /dev/null +++ b/resources/assets/sass/markdown.scss @@ -0,0 +1,402 @@ +.markdown { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + color: #636b6f; + overflow: hidden; + line-height: 2; + word-wrap: break-word; + + a { + background: transparent; + } + + a:active, + a:hover { + outline: 0; + } + + ol li { + margin: 8px 0; + } + + pre[class*=language-] { + margin: 1.2em 0 !important; + } + + strong { + font-weight: bold; + } + + h1 { + font-size: 2em; + margin: 0.67em 0; + } + + img { + border: 0; + } + + hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; + } + + table { + border-collapse: collapse; + border-spacing: 0; + } + + td, + th { + padding: 0; + } + + * { + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + a { + color: #16A085; + text-decoration: none; + } + + a:hover, + a:focus, + a:active { + text-decoration: underline; + } + + hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #ddd; + } + + hr:before, + hr:after { + display: table; + content: " "; + } + + hr:after { + clear: both; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + margin-top: 15px; + margin-bottom: 15px; + line-height: 1.1; + } + + h1 { + font-size: 30px; + } + + h2 { + font-size: 21px; + } + + h3 { + font-size: 16px; + } + + h4 { + font-size: 14px; + } + + h5 { + font-size: 12px; + } + + h6 { + font-size: 11px; + } + + blockquote { + margin: 0; + } + + ul, + ol { + padding: 0; + margin-top: 0; + margin-bottom: 0; + } + + ol ol { + list-style-type: lower-roman; + } + + dd { + margin-left: 0; + } + + code, + pre { + font-family: monaco, Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 1em; + } + + pre { + margin-top: 0; + margin-bottom: 0; + overflow: auto; + } + + .markdown-body > *:first-child { + margin-top: 0 !important; + } + + .markdown-body > *:last-child { + margin-bottom: 0 !important; + } + + .anchor { + position: absolute; + top: 0; + bottom: 0; + left: 0; + display: block; + padding-right: 6px; + padding-left: 30px; + margin-left: -30px; + } + + .anchor:focus { + outline: none; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + position: relative; + margin-top: 1.0em; + margin-bottom: 16px; + font-weight: bold; + line-height: 1.4; + } + + h1 { + padding-bottom: 0.3em; + font-size: 2.25em; + line-height: 1.2; + border-bottom: 2px solid #eee; + } + + h2 { + padding-bottom: 0.3em; + font-size: 1.75em; + line-height: 1.225; + border-bottom: 2px solid #eee; + } + + h3 { + font-size: 1.5em; + line-height: 1.43; + } + + h4 { + font-size: 1.25em; + } + + h5 { + font-size: 1em; + } + + h6 { + font-size: 1em; + color: #777; + } + + p, + blockquote, + ul, + ol, + dl, + table, + pre { + margin-top: 0; + margin-bottom: 10px; + } + + hr { + height: 4px; + padding: 0; + margin: 16px 0; + background-color: #e7e7e7; + border: 0 none; + } + + ul, + ol { + padding-left: 2em; + } + + ol ol, + ol ul { + margin-top: 0; + margin-bottom: 0; + } + + li > p { + margin-top: 16px; + } + + dl { + padding: 0; + } + + dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: bold; + } + + dl dd { + padding: 0 16px; + margin-bottom: 16px; + } + + blockquote { + font-size: inherit; + padding: 0 15px; + color: #7F8C8D; + border-left: 4px solid #ecf0f1; + } + + blockquote > :first-child { + margin-top: 20; + } + + blockquote > :last-child { + margin-bottom: 20; + } + + blockquote { + margin: 20px 0 !important; + background-color: rgba(102,128,153,.03); + padding: 6px 8px; + } + + table { + display: block; + width: 100%; + overflow: auto; + margin: 25px 0; + } + + table th { + font-weight: bold; + } + + table th, + table td { + padding: 6px 13px; + border: 1px solid #ddd; + } + + table tr { + background-color: #fff; + border-top: 1px solid #ccc; + } + + table tr:nth-child(2n) { + background-color: #f8f8f8; + } + + img { + max-width: 100%; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + img:not(.emoji) { + border: 1px solid #ddd; + max-width: 95%; + box-shadow: 0 0 30px #ccc; + -moz-box-shadow: 0 0 30px #ccc; + -webkit-box-shadow: 0 0 30px #ccc; + margin-bottom: 30px; + margin-top: 10px; + margin-left: 2%; + } + + code { + margin: 0; + color: #C2627B; + background-color: rgba(0, 0, 0, 0.04); + border-radius: 3px; + background-color: #ECF0F1; + max-width: 740px; + overflow-x: auto; + } + + code:before, + code:after { + letter-spacing: -0.2em; + content: "\00a0"; + } + + pre > code { + padding: 0; + margin: 0; + font-size: 100%; + white-space: pre; + background: transparent; + border: 0; + color: #E6E8D3; + } + + .highlight { + margin-bottom: 16px; + } + + .highlight pre, + pre { + padding: 14px; + overflow: auto; + line-height: 1.45; + background-color: #4e4e4e; + border-radius: 3px; + color: #fff; + border: none; + } + + .highlight pre { + margin-bottom: 0; + } + + pre { + word-wrap: normal; + } + + pre code { + padding: 0; + margin: 0; + overflow: initial; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; + } + + pre code:before, + pre code:after { + content: normal; + } +} diff --git a/resources/assets/sass/public.scss b/resources/assets/sass/public.scss new file mode 100644 index 000000000..95bf7a103 --- /dev/null +++ b/resources/assets/sass/public.scss @@ -0,0 +1,18 @@ + +// Fonts +// @import url(https://fonts.googleapis.com/css?family=Raleway:400); + +// Variables +@import "variables"; + +// Bootstrap +@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; + +// Ionicons +@import 'node_modules/ionicons/scss/ionicons'; + +//Sweetalert +@import "node_modules/sweetalert/dev/sweetalert.scss"; + +// Toastr +@import "vendor/toastr.min"; diff --git a/resources/assets/sass/styles.scss b/resources/assets/sass/styles.scss new file mode 100644 index 000000000..23481f3f3 --- /dev/null +++ b/resources/assets/sass/styles.scss @@ -0,0 +1,593 @@ +// Basic +[v-cloak] { display: none; } +.navbar-default { + border: none !important; +} +.avatar { + width: 50px !important; +} +html { + height: 100%; +} +body{ + min-height: 100%; + position: relative; + box-sizing: border-box; + padding-bottom: 140px; +} +footer{ + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 140px; +} +a:hover { + text-decoration: none; + color: #18bc9c; +} +textarea { + resize: none; +} +.container-fluid { + padding: 0; + + .jumbotron { + border-radius: 0; + padding-top: 30px; + padding-bottom: 30px; + background-color: #597289; + color: #fff; + } +} +i.large { + line-height: 1; + vertical-align: middle; + font-size: 1.5em; + display: inline-block; + opacity: 1; + margin: 0 .25rem 0 0; + width: 1.18em; + height: 1em; + font-family: Icons; + font-style: normal; + font-weight: 400; + text-decoration: inherit; + text-align: center; + speak: none; + font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.main { + margin-bottom: 30px; +} + +// Article Show Page +.article .social-share { + margin-bottom: 20px; +} +.header { + margin-top: 10px; + + i{ + padding-right: 8px; + } + a { + font-size: 16px; + color: #fff; + text-decoration: none; + } + a:hover { + color: #18bc9c; + } +} + +// Discussion Index +.discussion { + .media:last-child { + margin-bottom: 2em; + } + .media, .media-body { + position: relative; + padding-top: 8px; + } + .media-left { + float: left; + display: block; + margin-top: 4px; + } + .media-heading{ + margin-right: 25%; + } + .media-conversation-meta { + position: absolute; + right: 0; + top: 8px; + } + .media-conversation-replies { + text-align: center; + font-size: 12px; + color: #A7B3C2; + margin-top: 2px; + display: block; + } + .media-conversation-replies a { + font-weight: 700; + display: block; + color: #4B4B4B; + line-height: 18px; + font-size: 18px; + margin-bottom: -1px; + } +} +@media screen and (max-width: 767px) { + .discussion .media-left { + display: none; + } +} + +// Discussion Show +.edit-discuss { + margin-top: 10px; +} +.discuss-show { + i { + margin-right: 5px; + } + .media-left:hover img{ + -webkit-transform: rotateZ(360deg); + -moz-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } + .box-body { + border: 1px solid $clouds; + border-radius: 5px; + background-color: #fff; + color: $asbestos; + } + .heading { + padding: 10px 20px; + background: $clouds; + } + .discuss-body { + padding: 30px 50px; + color: $wet-asphalt; + } + .comment-editor { + margin-top: 40px; + } + .footing { + padding: 10px 20px; + border-top: 1px dashed $clouds; + } +} + + +// Strike +.strike { + display: block; + text-align: center; + overflow: hidden; + white-space: nowrap; + margin-bottom: 15px; + + span { + font-size: 18px; + color: #818181; + position: relative; + display: inline-block; + } + span:before { + right: 100%; + margin-right: 15px; + } + span:after { + left: 100%; + margin-left: 15px; + } + span:before, span:after { + content: ""; + position: absolute; + top: 50%; + width: 9999px; + height: 1px; + background: #e4e4e4; + } +} + +// Navbar +.navbar { + font-family: Lato, "微软雅黑", 'Helvetica Neue', Arial, Helvetica, sans-serif; + border: none; +} +.navbar-nav > li > .dropdown-menu { + margin-top: 4px; + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.navbar-nav > li > .dropdown-menu > li i { + margin-right: 15px; +} +.navbar-nav > li > .dropdown-toggle { + height:60px; + line-height:60px; + padding:0 10px; + min-width:110px; +} +.navbar-default .navbar-form { + border-color: transparent; +} +.navbar-toggle { + margin-top: 12px; + margin-bottom: 11px; + + .icon-bar { + display: block; + width: 22px; + height: 3px; + border-radius: 25%; + } +} +.search { + margin-right: 5px; + + input{ + color: #fff; + border: 2px solid #597289; + background-color: transparent; + } + input:focus { + border-color: #6789ab; + } +} +.divider { + margin: 5px 0; +} + +// Footer +.footer { + background-color: #597289; + color: #fff; + margin-top: 30px; + + .copy-right { + background-color: $default-color; + padding-top: 10px; + padding-bottom: 10px; + } + ul { + padding: 0; + list-style: none; + } + li { + display: inline-block; + } + a { + color: #fff; + text-decoration: none; + } + a:hover { + color: $turquoise; + } +} +.content { + padding-top: 25px; + padding-bottom: 10px; +} +.links li { + margin-top: 5px; + margin-bottom: 5px; +} +.links > a { + color: #fff; + padding: 0 25px; + font-size: 12px; + font-weight: 600; + letter-spacing: .1rem; + text-decoration: none; + text-transform: uppercase; +} + +// User Profile +.user { + .avatar { + width: 120px !important; + } + .content { + padding: 0; + + .header { + font-size: 18px; + font-weight: bold; + } + .description { + font-size: 16px; + margin: 10px 0; + } + .footer { + margin-top: 10px !important; + } + } +} +.profile { + margin-top: 40px; + font-weight: bold; + + .cover-avatar { + position: relative; + } + .cover-avatar input { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + opacity: 0; + cursor: pointer; + } + + + .cover-avatar .avatar { + width: 150px !important; + height: 150px; + border-radius: 50%; + -webkit-transition: transition .6s ease-in; + -moz-transition: transition .6s ease-in; + transition: transform .6s ease-in; + margin-bottom: 20px; + } + .cover-avatar:hover .avatar { + -webkit-transform: rotateZ(360deg); + -moz-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } +} +@media only screen and (max-width: 990px) { + .profile .cover-avatar input { + left: 40%; + } + .user .content { + margin-left: 30px; + } +} +@media only screen and (max-width: 568px) { + .profile .cover-avatar input { + left: 30%; + } +} +@media only screen and (min-width: 568px) and (max-width: 767px) { + .profile .cover-avatar input { + left: 35%; + } +} +@media only screen and (max-width: 767px) { + .search { + display: none; + } + .user .content { + margin-left: 0; + margin-top: 10px; + text-align: center; + } +} +@media only screen and (min-width: 767px) and (max-width: 990px) { + .col-sm-5 { + width: 35% !important; + } + .user-follow { + margin-top: 0 !important; + } +} +#validate-errors{ + color: #c00; +} +/*PROFILE CSS END*/ + +/* Article List */ +.list { + .media { + border-top: 1px solid rgba(34,36,38,.15); + margin: 0; + padding: 2em 0; + + &:first-child { + margin-top: 30px !important; + border: none; + padding-top: 0; + } + .media-left img { + border-radius: 5px; + width: 260px; + } + .media-body { + .media-heading > a { + color: $wet-asphalt; + font-size: 1.28571429em; + display: inline-block; + font-weight: 400; + + &:hover { + color: #18bc9c; + } + } + .meta { + margin: .5em 0; + font-size: 1.4em; + line-height: 1em; + color: $asbestos; + } + .description { + margin-top: .6em; + font-size: 1.2em; + line-height: 1.4285em; + color: $concrete; + } + .extra { + margin-top: 15px; + + .info { + color: $concrete; + font-size: 1em; + + i { + margin-left: .4em; + margin-right: .4em; + } + } + .info > a { + display: inline-block; + color: #18bc9c; + } + } + .extra > a { + margin: 0 5px; + background-color: #e8e8e8; + color: rgba(0,0,0,.6); + } + .extra > a > .label { + display: inline-block; + line-height: 1; + vertical-align: baseline; + background-color: #e8e8e8; + background-image: none; + padding: .5833em .833em; + color: rgba(0,0,0,.6); + text-transform: none; + border: 0 solid transparent; + border-radius: .28571429rem; + -webkit-transition: background .1s ease; + transition: background .1s ease; + margin-top: 5px; + margin-bottom: 5px; + + i { + padding-right: 10px; + } + } + } + } +} +@media (max-width: 767px) { + .list { + .media-left { + display: block; + + img { + display: block; + width: 100%; + height: auto; + border-radius: 5px; + margin: 0 auto; + max-width: 250px; + } + } + .media-body { + padding: 1.5em 0 0; + } + } +} + +/* User Index List */ +.user-follow { + margin-top: 20px; + a { + display: block; + text-align: center; + color: #fff; + } + a.counter { + font-size: 28px; + } + a.text { + font-size: 16px; + color: #18bc9c; + } +} +.panel-default, .panel-info { + border: none; +} +.panel-default > .panel-heading { + color: $asbestos; + background-color: $clouds; + border: none; + font-size: 16px; +} +.panel-info > .panel-heading { + color: #fff; + background-color: #597289; + border: none; + font-size: 16px; +} +.list-group-item { + border-color: #f9f9f9; + + a { + color: #18bc9c; + + img { + margin-right: 10px; + } + &:hover { + text-decoration: underline; + } + } + &:hover { + color: #fff; + background-color: #7cd6c4; + + a, span{ + color: #fff; + font-size: 16px; + } + span.meta { + color: #597289; + } + span.timeago { + color: $default-color; + } + } +} +span.meta { + font-size: 12px; + color: #ccc; +} +span.timeago { + color: #aaa; +} +.nothing { + font-size: 20px; + list-style: none; + padding: 15px; + color: #ccc; +} +.list-group-item.active{ + &, &:hover, &:focus { + z-index: 2; + color: #597289; + background-color: $clouds; + border-color: $clouds; + } +} + +/* Setting Styles */ +.setting { + margin-top: 40px; + + .list-group a i { + margin-right: 10px; + font-size: 16px; + } +} + +// Links +.links { + padding: 0; + + li { + list-style: none; + font-size: 20px; + } +} diff --git a/resources/assets/sass/variables.scss b/resources/assets/sass/variables.scss new file mode 100644 index 000000000..e4b8892bb --- /dev/null +++ b/resources/assets/sass/variables.scss @@ -0,0 +1,296 @@ +// Body +$body-bg: #f9f9fb; + +// Typography +$font-family-sans-serif: "lato-regular", "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Microsoft YaHei", sans-serif; +$font-size-base: 14px; +$line-height-base: 1.6; +$text-color: #636b6f; + +$font-size-h1: floor(($font-size-base * 3.444)); // ~62px +$font-size-h2: ceil(($font-size-base * 2.889)); // ~52px +$font-size-h3: ceil(($font-size-base * 2.222)); // ~40px +$font-size-h4: ceil(($font-size-base * 1.611)); // ~29px +$font-size-h5: floor(($font-size-base * 1.556)); // ~28px +$font-size-h6: ceil(($font-size-base * 1.333)); // ~24px + +$font-size-large: 24px; // ~24px + +$line-height-base: 1.72222; // 31/18 +$line-height-computed: floor(($font-size-base * $line-height-base)); // ~31px + +$headings-font-family: inherit; +$headings-font-weight: 400; +$headings-line-height: 1.2; +$headings-color: inherit; + +// Buttons +$btn-default-color: $text-color; + +// Colors +$default-color: #52697f; + +$turquoise: #1abc9c; +$green-sea: #16a085; + +$emerald: #2ecc71; +$nephritis: #27ae60; + +$peter-river: #3498db; +$belize-hole: #2980b9; + +$amethyst: #9b59b6; +$wisteria: #8e44ad; + +$wet-asphalt: #34495e; +$midnight-blue: #2c3e50; + +$sun-flower: #f1c40f; +$orange: #f39c12; + +$carrot: #e67e22; +$pumpkin: #d35400; + +$alizarin: #e74c3c; +$pomegranate: #c0392b; + +$clouds: #ecf0f1; +$silver: #bdc3c7; + +$concrete: #95a5a6; +$asbestos: #7f8c8d; + +//== Components +// +//## Define common padding and border radius sizes and more. + +//** Default font-size in components +$component-font-size-base: ceil(($font-size-base * 0.833)); // ~15px + +// Border-radius +$border-radius-base: 4px; +$border-radius-large: 6px; +$border-radius-small: 3px; + +// Wells +$well-bg: $clouds; +$well-border: $clouds; + +// Grays +$gray: $concrete; +$gray-light: $silver; +$inverse: white; + +// Borders +$laravel-border-color: darken($body-bg, 10%); +$list-group-border: $laravel-border-color; +$navbar-default-border: $laravel-border-color; +$panel-default-border: $laravel-border-color; +$panel-inner-border: $laravel-border-color; + +// Brands +$brand-default: $default-color; +$brand-primary: $wet-asphalt; +$brand-secondary: $turquoise; +$brand-info: $peter-river; +$brand-success: $turquoise; +$brand-warning: $sun-flower; +$brand-danger: $alizarin; + +//== Buttons +// +//## For each of Bootstrap's buttons, define text, background and border color. + +$btn-font-weight: 200 !default; + +$btn-default-color: #333 !default; +$btn-default-bg: #f1f1f1 !default; +$btn-default-border: darken($btn-default-bg, 5%) !default; + +$btn-primary-color: #fff !default; +$btn-primary-bg: $brand-primary !default; +$btn-primary-border: darken($btn-primary-bg, 1%) !default; + +$btn-success-color: #fff !default; +$btn-success-bg: $brand-success !default; +$btn-success-border: $btn-success-bg !default; + +$btn-info-color: #fff !default; +$btn-info-bg: $brand-info !default; +$btn-info-border: darken($btn-info-bg, 1%) !default; + +$btn-warning-color: #fff !default; +$btn-warning-bg: $brand-warning !default; +$btn-warning-border: darken($btn-warning-bg, 1%) !default; + +$btn-danger-color: #fff !default; +$btn-danger-bg: $brand-danger !default; +$btn-danger-border: darken($btn-danger-bg, 1%) !default; + +$btn-link-disabled-color: $gray-light; + +// Inputs +$input-border: #dce4ec; +$input-border-focus: lighten($brand-primary, 25%); +$input-color-placeholder: lighten($text-color, 30%); +$input-box-shadow: none !default; + +// Legend +$legend-color: $text-color; + +// Forms +$input-font-size-base: $component-font-size-base; +$input-font-size-sm: floor(($component-font-size-base * 0.867)); // ~13px +$input-font-size-lg: ceil(($component-font-size-base * 1.133)); // ~17px +$input-font-size-hg: floor(($component-font-size-base * 1.467)); // ~22px + +$input-line-height-base: 1.467; // ~22px +$input-line-height-sm: 1.462; // ~19px +$input-line-height-lg: 1.235; // ~21px +$input-line-height-hg: 1.318; // ~29px + +$input-icon-font-size: ceil(($component-font-size-base * 1.067)); // ~16px +$input-icon-font-size-lg: ceil(($component-font-size-base * 1.2)); // ~18px +$input-icon-font-size-hg: ceil(($component-font-size-base * 1.333)); // ~20px + +$input-bg: $inverse; +$input-bg-disabled: mix($gray, white, 10%); + +$input-height-sm: 35px; +$input-height-base: 41px; +$input-height-lg: 45px; +$input-height-hg: 53px; + +$input-border-radius: $border-radius-large; + +// Panels +$panel-default-heading-bg: #fff; + + +//== Navbar +// +//## + +// Basics of a navbar +$navbar-default-bg: $brand-default; +$zindex-navbar: 1000; +$zindex-navbar-fixed: 1030; +$navbar-height: 60px; +$navbar-height-base: 53px; +$navbar-height-large: 76px; +$navbar-input-line-height: 1.4; // ~21px +$navbar-margin-bottom: 0; +$navbar-border-radius: $border-radius-large; + +// Navbar Toggle +$navbar-default-toggle-border-color: $brand-default; +$navbar-default-toggle-hover-bg: $brand-default; +$navbar-default-toggle-icon-bar-bg: #fff; + +// Navbar links +$navbar-default-link-color: #fff; +$navbar-default-link-hover-color: $brand-secondary; +$navbar-default-link-hover-bg: transparent; +$navbar-default-link-active-color: #fff; +$navbar-default-link-active-bg: $turquoise; +$navbar-default-link-disabled-color: #ccc; +$navbar-default-link-disabled-bg: transparent; + +// Navbar nav carets +$navbar-default-caret-color: $navbar-default-link-color; +$navbar-default-caret-hover-color: $navbar-default-link-hover-color; +$navbar-default-caret-active-color: $navbar-default-link-active-color; + +// Navbar brand label +$navbar-default-brand-color: $navbar-default-link-color; +$navbar-default-brand-hover-color: $navbar-default-link-hover-color; +$navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +$navbar-default-toggle-color: $navbar-default-link-color; +$navbar-default-toggle-hover-color: $navbar-default-link-hover-color; + +// Navbar form +$navbar-default-form-placeholder: spin(tint($brand-primary, 60%), 2); +$navbar-default-form-border: shade($navbar-default-bg, 3%); + + +// Inverted navbar +// Reset inverted navbar basics +$navbar-inverse-divider: darken($brand-primary, 3%); + +// Reset inverted navbar basics +$navbar-inverse-color: $inverse; +$navbar-inverse-bg: #fff; +$navbar-inverse-border: darken($navbar-inverse-bg, 10%); + +// Inverted navbar links +$navbar-inverse-link-color: $brand-default; +$navbar-inverse-link-hover-color: $brand-secondary; +$navbar-inverse-link-hover-bg: transparent; +$navbar-inverse-link-active-color: $navbar-inverse-link-color; +$navbar-inverse-link-active-bg: $brand-secondary; +$navbar-inverse-link-disabled-color: #444; +$navbar-inverse-link-disabled-bg: transparent; + +// Navbar nav carets +$navbar-inverse-caret-color: lighten(desaturate($brand-primary, 7%), 9%); +$navbar-inverse-caret-hover-color: $navbar-inverse-link-hover-color; +$navbar-inverse-caret-active-color: $navbar-inverse-link-active-color; + +// Inverted navbar brand label +$navbar-inverse-brand-color: $navbar-inverse-link-color; +$navbar-inverse-brand-hover-color: $navbar-inverse-link-hover-color; +$navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar toggle +$navbar-inverse-toggle-color: $navbar-inverse-link-color; +$navbar-inverse-toggle-hover-color: $navbar-inverse-link-hover-color; + +// Navbar form +$navbar-inverse-form-bg: darken($brand-primary, 6%); +$navbar-inverse-form-placeholder: desaturate(lighten($brand-primary, 13%), 7%); +$navbar-inverse-form-icon: desaturate(lighten($brand-primary, 13%), 6%); +$navbar-inverse-form-border: $navbar-inverse-divider; + +// Navbar dropdowns +$navbar-inverse-dropdown-bg: $navbar-inverse-bg; +$navbar-inverse-dropdown-link-color: mix($navbar-inverse-bg, $navbar-inverse-color, 15%); +$navbar-inverse-dropdown-link-hover-color: $inverse; +$navbar-inverse-dropdown-link-hover-bg: $brand-secondary; + +//== Dropdowns +// +//## Dropdown menu container and contents. +$zindex-dropdown: 1000; +$dropdown-border-radius: $border-radius-base; + +//** Background for the dropdown menu. +$dropdown-bg: $brand-default; + +//** Dropdown link text color. +$dropdown-link-color: #fff; +//** Hover color for dropdown links. +$dropdown-link-hover-color: #fff; +//** Hover background for dropdown links. +$dropdown-link-hover-bg: $brand-secondary; + +//** Active dropdown menu item text color. +$dropdown-link-active-color: $inverse; +//** Active dropdown menu item background color. +$dropdown-link-active-bg: $brand-secondary; + +//** Disabled dropdown menu item background color. +$dropdown-link-disabled-color: $gray-light; + +//** Divider color for between dropdown items. +$dropdown-divider-bg: darken($brand-default, 5%); + +//** Text color for headers within dropdown menus. +$dropdown-header-color: fade($brand-default, 60%); + +// Toggle +$rgb-black: "0,0,0" !default; +$mdb-label-color: unquote("rgba(#{$rgb-black}, 0.26)") !default; +$mdb-label-color-toggle-focus: unquote("rgba(#{$rgb-black}, .54)") !default; +$mdb-toggle-label-color: $mdb-label-color !default; diff --git a/resources/assets/sass/vendor/Jcrop.min.css b/resources/assets/sass/vendor/Jcrop.min.css new file mode 100644 index 000000000..40c7966d3 --- /dev/null +++ b/resources/assets/sass/vendor/Jcrop.min.css @@ -0,0 +1,6 @@ +/*! Jcrop.min.css v2.0.4 - build: 20151117 + * Copyright 2008-2015 Tapmodo Interactive LLC + * Free software under MIT License + **/ + +.jcrop-active{direction:ltr;text-align:left;box-sizing:border-box;-ms-touch-action:none}.jcrop-dragging{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.jcrop-selection{z-index:2}.jcrop-selection.jcrop-current{z-index:4}.jcrop-border{background:#fff url(Jcrop.gif);line-height:1px!important;font-size:0!important;overflow:hidden;position:absolute;filter:alpha(opacity=50)!important;opacity:.5!important}.jcrop-border.ord-w,.jcrop-border.ord-e,.jcrop-border.ord-n{top:0}.jcrop-border.ord-n,.jcrop-border.ord-s{width:100%;height:1px!important}.jcrop-border.ord-w,.jcrop-border.ord-e{height:100%;width:1px!important}.jcrop-border.ord-e{right:-1px}.jcrop-border.ord-n{top:-1px}.jcrop-border.ord-w{left:-1px}.jcrop-border.ord-s{bottom:-1px}.jcrop-selection{position:absolute}.jcrop-box{z-index:2;display:block;background:0 0;border:0;padding:0;margin:0;font-size:0}.jcrop-box:hover{background:0 0}.jcrop-box:active{background:0 0}.jcrop-box:focus{outline:1px rgba(128,128,128,.65) dotted}.jcrop-active,.jcrop-box{position:relative}.jcrop-box{width:100%;height:100%;cursor:move}.jcrop-handle{z-index:4;background-color:rgba(49,28,28,.58);border:1px #eee solid;width:9px;height:9px;font-size:0;position:absolute;filter:alpha(opacity=80)!important;opacity:.8!important}.jcrop-handle.ord-n{left:50%;margin-left:-5px;margin-top:-5px;top:0;cursor:n-resize}.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px;cursor:s-resize}.jcrop-handle.ord-e{margin-right:-5px;margin-top:-5px;right:0;top:50%;cursor:e-resize}.jcrop-handle.ord-w{left:0;margin-left:-5px;margin-top:-5px;top:50%;cursor:w-resize}.jcrop-handle.ord-nw{left:0;margin-left:-5px;margin-top:-5px;top:0;cursor:nw-resize}.jcrop-handle.ord-ne{margin-right:-5px;margin-top:-5px;right:0;top:0;cursor:ne-resize}.jcrop-handle.ord-se{bottom:0;margin-bottom:-5px;margin-right:-5px;right:0;cursor:se-resize}.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px;cursor:sw-resize}.jcrop-touch .jcrop-handle{z-index:4;background-color:rgba(49,28,28,.58);border:1px #eee solid;width:18px;height:18px;font-size:0;position:absolute;filter:alpha(opacity=80)!important;opacity:.8!important}.jcrop-touch .jcrop-handle.ord-n{left:50%;margin-left:-10px;margin-top:-10px;top:0;cursor:n-resize}.jcrop-touch .jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-10px;margin-left:-10px;cursor:s-resize}.jcrop-touch .jcrop-handle.ord-e{margin-right:-10px;margin-top:-10px;right:0;top:50%;cursor:e-resize}.jcrop-touch .jcrop-handle.ord-w{left:0;margin-left:-10px;margin-top:-10px;top:50%;cursor:w-resize}.jcrop-touch .jcrop-handle.ord-nw{left:0;margin-left:-10px;margin-top:-10px;top:0;cursor:nw-resize}.jcrop-touch .jcrop-handle.ord-ne{margin-right:-10px;margin-top:-10px;right:0;top:0;cursor:ne-resize}.jcrop-touch .jcrop-handle.ord-se{bottom:0;margin-bottom:-10px;margin-right:-10px;right:0;cursor:se-resize}.jcrop-touch .jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-10px;margin-left:-10px;cursor:sw-resize}.jcrop-dragbar{font-size:0;position:absolute}.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:9px!important;width:100%}.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{top:0;height:100%;width:9px!important}.jcrop-dragbar.ord-n{margin-top:-5px;cursor:n-resize;top:0}.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-5px;cursor:s-resize}.jcrop-dragbar.ord-e{margin-right:-5px;right:0;cursor:e-resize}.jcrop-dragbar.ord-w{margin-left:-5px;cursor:w-resize}.jcrop-shades{position:relative;top:0;left:0}.jcrop-shades div{cursor:crosshair}.jcrop-noresize .jcrop-dragbar,.jcrop-noresize .jcrop-handle{display:none}.jcrop-selection.jcrop-nodrag .jcrop-box,.jcrop-nodrag .jcrop-shades div{cursor:default}.jcrop-light .jcrop-border{background:#fff;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-light .jcrop-handle{background-color:#000;border-color:#fff}.jcrop-dark .jcrop-border{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-dark .jcrop-handle{background-color:#fff;border-color:#000}.solid-line .jcrop-border{background:#fff}.jcrop-thumb{position:absolute;overflow:hidden;z-index:5}.jcrop-active img,.jcrop-thumb img,.jcrop-thumb canvas{min-width:none;min-height:none;max-width:none;max-height:none}.jcrop-hl-active .jcrop-border{filter:alpha(opacity=20)!important;opacity:.2!important}.jcrop-hl-active .jcrop-handle{filter:alpha(opacity=10)!important;opacity:.1!important}.jcrop-hl-active .jcrop-selection:hover{}.jcrop-hl-active .jcrop-selection:hover .jcrop-border{background-color:#ccc;filter:alpha(opacity=50)!important;opacity:.5!important}.jcrop-hl-active .jcrop-selection.jcrop-current .jcrop-border{background:gray url(Jcrop.gif);opacity:.35!important;filter:alpha(opacity=35)!important}.jcrop-hl-active .jcrop-selection.jcrop-current .jcrop-handle{filter:alpha(opacity=30)!important;opacity:.3!important}.jcrop-hl-active .jcrop-selection.jcrop-focus .jcrop-border{background:url(Jcrop.gif);opacity:.65!important;filter:alpha(opacity=65)!important}.jcrop-hl-active .jcrop-selection.jcrop-focus .jcrop-handle{filter:alpha(opacity=60)!important;opacity:.6!important}button.jcrop-box{background:0 0} \ No newline at end of file diff --git a/resources/assets/sass/vendor/highlight.min.css b/resources/assets/sass/vendor/highlight.min.css new file mode 100644 index 000000000..01c548f5b --- /dev/null +++ b/resources/assets/sass/vendor/highlight.min.css @@ -0,0 +1 @@ +.hljs{display:block;overflow-x:auto;padding:0.5em;color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta-string{color:#98c379}.hljs-built_in,.hljs-class .hljs-title{color:#e6c07b}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.hljs-link{text-decoration:underline} \ No newline at end of file diff --git a/resources/assets/sass/vendor/select2.min.css b/resources/assets/sass/vendor/select2.min.css new file mode 100755 index 000000000..76de04d92 --- /dev/null +++ b/resources/assets/sass/vendor/select2.min.css @@ -0,0 +1 @@ +.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/resources/assets/sass/vendor/simplemde.min.css b/resources/assets/sass/vendor/simplemde.min.css new file mode 100644 index 000000000..d62f4d771 --- /dev/null +++ b/resources/assets/sass/vendor/simplemde.min.css @@ -0,0 +1,7 @@ +/** + * simplemde v1.11.2 + * Copyright Next Step Webs, Inc. + * @link https://github.com/NextStepWebs/simplemde-markdown-editor + * @license MIT + */ +.CodeMirror{color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:auto;min-height:300px;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:1}.CodeMirror-scroll{min-height:300px}.CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:9}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:relative;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:' ';height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,1)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,rgba(255,255,255,1)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:#2c3e50!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"▲"}.editor-toolbar a.fa-header-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:#fff;border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px;background:#fafafa;overflow:auto;display:none;box-sizing:border-box}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;border:1px solid #ddd}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:0}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)} \ No newline at end of file diff --git a/resources/assets/sass/vendor/toastr.min.css b/resources/assets/sass/vendor/toastr.min.css new file mode 100644 index 000000000..d109d13a1 --- /dev/null +++ b/resources/assets/sass/vendor/toastr.min.css @@ -0,0 +1 @@ +.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}} \ No newline at end of file diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php new file mode 100644 index 000000000..e5506df29 --- /dev/null +++ b/resources/lang/en/auth.php @@ -0,0 +1,19 @@ + 'These credentials do not match our records.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +]; diff --git a/resources/lang/en/blog.php b/resources/lang/en/blog.php new file mode 100644 index 000000000..3cc0670c2 --- /dev/null +++ b/resources/lang/en/blog.php @@ -0,0 +1,77 @@ + 'Articles', + 'Discussions' => 'Discussions', + 'Follow' => 'Follow', + 'Following' => 'Following', + 'Comments' => 'Comments', + 'Discussion Num' => 'Discussions', + 'Following Num' => 'Followings', + 'Comment Num' => 'Comments', + 'Recent Discussions' => 'Recent Discussions', + 'Recent Comments' => 'Recent Comments', + 'Your Followings' => 'Your Followings', + 'Your Discussions' => 'Your Discussions', + 'Your Comments' => 'Your Comments', + 'Search' => 'Search', + 'Personal Center' => 'Personal Center', + 'Settings' => 'Settings', + 'Dashboard' => 'Dashboard', + 'Logout' => 'Logout', + 'Login' => 'Login In', + 'Register' => 'Register', + 'Edit Profile'=> 'Edit Profile', + 'Discuss Problem' => 'Discuss Problem', + 'Discuss Subtitle' => 'Welcome to submit all kind of the problems', + 'Submit Problem' => 'Submit Problems', + 'Edit Problem' => 'Edit Problems', + 'Replies' => 'Replies', + 'Replies Num' => 'Replies', + 'Published At' => 'Published At', + 'Account Setting' => 'Account', + 'Notification Setting' => 'Notifications', + 'Account Binding' => 'Account Bindings', + 'Reset Password' => 'Reset password', + 'Old Password' => 'Old password', + 'New Password' => 'New password', + 'Confirm New Password' => 'Confirm new password', + 'Update Password' => 'Update Password', + 'Email Notification' => 'Email Notification', + 'Binding Github' => 'Binding Github', + 'Submit' => 'Submit', + 'Username' => 'Username', + 'Email' => 'E-Mail Address', + 'Nickname' => 'Nickname', + 'Website' => 'Website', + 'Weibo Name' => 'Weibo Name', + 'Weibo Home' => 'Weibo Home', + 'Description' => 'Description', + 'Update Profile' => 'Update Profile', + 'Update Notice' => 'Click the avatar for uploading, the picture\'s size can\' more than 2 MB.', + 'Password' => 'Password', + 'Remember Me' => 'Remember Me', + 'Login With Github' => 'Login In With Github?', + 'Forgot Password' => 'Forgot Your Password?', + 'Input Email' => 'Please input your e-mail address', + 'Input Password' => 'Please input your password', + 'Input Name' => 'Please input your name', + 'Input Confirm Password' => 'Please input the password confirmation', + 'Confirm Password' => 'Confirm Password', + 'Has Account' => 'Are you had a account? Click Here.', + 'Reset Password Link' => 'Send Password Reset Link', + 'Links' => 'Links', + 'Contact Me' => 'Contact Me', + 'About Me' => 'ABOUT ME', + 'Tags' => 'Tags', + 'Tag Meta' => 'All the articles and discussions for the tag.', + 'Tags Meta' => 'The categories for all the articles and the discussions.', + 'For Articles' => 'For Articles', + 'For Discussions' => 'For Discussions', + 'Categories' => 'Categories', + 'Categories Meta' => 'The categories for all the articles.', + 'Category Meta' => 'All the articles for the category.', + 'Nothing' => 'Nothing in here...', + 'Forbidden' => 'The record was forbidden to show!!!', + +]; \ No newline at end of file diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php new file mode 100644 index 000000000..fcab34b25 --- /dev/null +++ b/resources/lang/en/pagination.php @@ -0,0 +1,19 @@ + '« Previous', + 'next' => 'Next »', + +]; diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php new file mode 100644 index 000000000..e5544d201 --- /dev/null +++ b/resources/lang/en/passwords.php @@ -0,0 +1,22 @@ + 'Passwords must be at least six characters and match the confirmation.', + 'reset' => 'Your password has been reset!', + 'sent' => 'We have e-mailed your password reset link!', + 'token' => 'This password reset token is invalid.', + 'user' => "We can't find a user with that e-mail address.", + +]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php new file mode 100644 index 000000000..28c6677f5 --- /dev/null +++ b/resources/lang/en/validation.php @@ -0,0 +1,115 @@ + 'The :attribute must be accepted.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'alpha' => 'The :attribute may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', + 'alpha_num' => 'The :attribute may only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'between' => [ + 'numeric' => 'The :attribute must be between :min and :max.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => 'The :attribute must have between :min and :max items.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'email' => 'The :attribute must be a valid email address.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field is required.', + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'max' => [ + 'numeric' => 'The :attribute may not be greater than :max.', + 'file' => 'The :attribute may not be greater than :max kilobytes.', + 'string' => 'The :attribute may not be greater than :max characters.', + 'array' => 'The :attribute may not have more than :max items.', + ], + 'mimes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', + ], + 'not_in' => 'The selected :attribute is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'present' => 'The :attribute field must be present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values is present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid zone.', + 'unique' => 'The :attribute has already been taken.', + 'url' => 'The :attribute format is invalid.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + +]; diff --git a/resources/lang/zh_cn/auth.php b/resources/lang/zh_cn/auth.php new file mode 100644 index 000000000..6041fbbe9 --- /dev/null +++ b/resources/lang/zh_cn/auth.php @@ -0,0 +1,19 @@ + '用户名/密码不匹配.', + 'throttle' => '登录尝试次数过多。 请在以下时间后重试 :seconds 秒.', + +]; diff --git a/resources/lang/zh_cn/blog.php b/resources/lang/zh_cn/blog.php new file mode 100644 index 000000000..e37e77d18 --- /dev/null +++ b/resources/lang/zh_cn/blog.php @@ -0,0 +1,77 @@ + '文章', + 'Discussions' => '讨论', + 'Follow' => '关注', + 'Following' => '关注中', + 'Comments' => '评论数', + 'Discussion Num' => '讨论数', + 'Following Num' => '关注数', + 'Comment Num' => '评论数', + 'Recent Discussions' => '最近的讨论', + 'Recent Comments' => '最近的评论', + 'Your Followings' => '您关注的用户', + 'Your Discussions' => '您的讨论', + 'Your Comments' => '您的评论', + 'Search' => '搜索', + 'Personal Center' => '个人中心', + 'Settings' => '个人设置', + 'Dashboard' => '面板', + 'Logout' => '退出', + 'Login' => '登录', + 'Register' => '注册', + 'Edit Profile'=> '编辑资料', + 'Discuss Problem' => '问题讨论', + 'Discuss Subtitle' => '欢迎,提出各种问题', + 'Submit Problem' => '提出问题', + 'Edit Problem' => '编辑问题', + 'Replies' => '回复', + 'Replies Num' => '回复数', + 'Published At' => '发表时间', + 'Account Setting' => '账号设置', + 'Notification Setting' => '通知设置', + 'Account Binding' => '账号绑定', + 'Reset Password' => '重置密码', + 'Old Password' => '旧密码', + 'New Password' => '新密码', + 'Confirm New Password' => '确认新密码', + 'Update Password' => '更新密码', + 'Email Notification' => '邮件通知', + 'Binding Github' => '绑定 Github', + 'Submit' => '提交', + 'Username' => '用户名', + 'Email' => '邮箱地址', + 'Nickname' => '昵称', + 'Website' => '网站', + 'Weibo Name' => '微博名', + 'Weibo Home' => '微博主页', + 'Description' => '个人简叙', + 'Update Profile' => '更新资料', + 'Update Notice' => '点击头像上传图片, 图像大小不要超过 2 MB,长宽不要超过 3000 px', + 'Password' => '密码', + 'Remember Me' => '记住我', + 'Login With Github' => '登录 Github', + 'Forgot Password' => '忘记密码?', + 'Input Email' => '请输入邮箱', + 'Input Password' => '请输入密码', + 'Input Name' => '请输入用户名', + 'Input Confirm Password' => '请输入确认密码', + 'Confirm Password' => '确认密码', + 'Has Account' => '您已经有账号?点击此处', + 'Reset Password Link' => '发送密码重置链接', + 'Links' => '友情链接', + 'Contact Me' => '联系我', + 'About Me' => '关于我', + 'Tags' => '所有标签', + 'Tag Meta' => '标签下所有文章和讨论', + 'Tags Meta' => '所有文章和讨论的标签', + 'For Articles' => '文章', + 'For Discussions' => '讨论', + 'Categories' => '所有分类', + 'Categories Meta' => '文章所有分类', + 'Category Meta' => '分类下所有文章', + 'Nothing' => 'Nothing in here...', + 'Forbidden' => '此内容被禁止显示!!!', + +]; \ No newline at end of file diff --git a/resources/lang/zh_cn/pagination.php b/resources/lang/zh_cn/pagination.php new file mode 100644 index 000000000..f1fc4b5ae --- /dev/null +++ b/resources/lang/zh_cn/pagination.php @@ -0,0 +1,19 @@ + '« 上一页', + 'next' => '下一页 »', + +]; diff --git a/resources/lang/zh_cn/passwords.php b/resources/lang/zh_cn/passwords.php new file mode 100644 index 000000000..d87a4501b --- /dev/null +++ b/resources/lang/zh_cn/passwords.php @@ -0,0 +1,22 @@ + '密码必须至少为六个字符,并与确认密码相匹配.', + 'reset' => '您的密码已重置!', + 'sent' => '我们已通过电子邮件发送您的密码重置链接!', + 'token' => '此密码重置令牌无效.', + 'user' => "我们找不到具有该电子邮件地址的用户.", + +]; diff --git a/resources/lang/zh_cn/validation.php b/resources/lang/zh_cn/validation.php new file mode 100644 index 000000000..28ba6f64d --- /dev/null +++ b/resources/lang/zh_cn/validation.php @@ -0,0 +1,130 @@ + ':attribute必须接受', + 'active_url' => ':attribute必须是一个合法的 URL', + 'after' => ':attribute 必须是 :date 之后的一个日期', + 'alpha' => ':attribute只能包含字母', + 'alpha_dash' => ':attribute只能包含字母、数字、中划线或下划线', + 'alpha_num' => ':attribute只能包含字母和数字', + 'array' => ':attribute必须是一个数组', + 'before' => ':attribute 必须是 :date 之前的一个日期', + 'between' => [ + 'numeric' => ':attribute 必须在 :min 到 :max 之间', + 'file' => ':attribute 必须在 :min 到 :max KB 之间', + 'string' => ':attribute 必须在 :min 到 :max 个字符之间', + 'array' => ':attribute 必须在 :min 到 :max 项之间', + ], + 'boolean' => ':attribute 字符必须是 true 或 false', + 'confirmed' => ':attribute 二次确认不匹配', + 'date' => ':attribute 必须是一个合法的日期', + 'date_format' => ':attribute 与给定的格式 :format 不符合', + 'different' => ':attribute 必须不同于 :other', + 'digits' => ':attribute必须是 :digits 位.', + 'digits_between' => ':attribute 必须在 :min 和 :max 位之间', + 'dimensions' => ':attribute具有无效的图片尺寸', + 'distinct' => ':attribute字段具有重复值', + 'email' => ':attribute必须是一个合法的电子邮件地址', + 'exists' => '选定的 :attribute 是无效的.', + 'file' => ':attribute必须是一个文件', + 'filled' => ':attribute的字段是必填的', + 'image' => ':attribute必须是 jpeg, png, bmp 或者 gif 格式的图片', + 'in' => '选定的 :attribute 是无效的', + 'in_array' => ':attribute 字段不存在于 :other', + 'integer' => ':attribute 必须是个整数', + 'ip' => ':attribute必须是一个合法的 IP 地址。', + 'json' => ':attribute必须是一个合法的 JSON 字符串', + 'max' => [ + 'numeric' => ':attribute 的最大长度为 :max 位', + 'file' => ':attribute 的最大为 :max', + 'string' => ':attribute 的最大长度为 :max 字符', + 'array' => ':attribute 的最大个数为 :max 个.', + ], + 'mimes' => ':attribute 的文件类型必须是 :values', + 'min' => [ + 'numeric' => ':attribute 的最小长度为 :min 位', + 'file' => ':attribute 大小至少为 :min KB', + 'string' => ':attribute 的最小长度为 :min 字符', + 'array' => ':attribute 至少有 :min 项', + ], + 'not_in' => '选定的 :attribute 是无效的', + 'numeric' => ':attribute 必须是数字', + 'present' => ':attribute 字段必须存在', + 'regex' => ':attribute 格式是无效的', + 'required' => ':attribute 字段是必须的', + 'required_if' => ':attribute 字段是必须的当 :other 是 :value', + 'required_unless' => ':attribute 字段是必须的,除非 :other 是在 :values 中', + 'required_with' => ':attribute 字段是必须的当 :values 是存在的', + 'required_with_all' => ':attribute 字段是必须的当 :values 是存在的', + 'required_without' => ':attribute 字段是必须的当 :values 是不存在的', + 'required_without_all' => ':attribute 字段是必须的当 没有一个 :values 是存在的', + 'same' => ':attribute和:other必须匹配', + 'size' => [ + 'numeric' => ':attribute 必须是 :size 位', + 'file' => ':attribute 必须是 :size KB', + 'string' => ':attribute 必须是 :size 个字符', + 'array' => ':attribute 必须包括 :size 项', + ], + 'string' => ':attribute 必须是一个字符串', + 'timezone' => ':attribute 必须是个有效的时区.', + 'unique' => ':attribute 已存在', + 'url' => ':attribute 无效的格式', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [ + 'name' => '名字', + 'username' => '用户名', + 'email' => '邮箱', + 'password' => '密码', + 'old_password' => '旧密码', + 'image' => '图片', + 'password_confirmation' => '密码确认', + 'title' => '标题', + 'subtitle' => '副标题', + 'content' => '内容', + 'published_at' => '发布时间', + 'tag' => '标签', + 'meta_description' => '主要描述', + 'link' => '链接', + ], + +]; diff --git a/resources/views/article/index.blade.php b/resources/views/article/index.blade.php new file mode 100644 index 000000000..e585ff5e3 --- /dev/null +++ b/resources/views/article/index.blade.php @@ -0,0 +1,14 @@ +@extends('layouts.app') + +@section('content') + +

    {{ config('blog.article.title') }}

    + +
    {{ config('blog.article.description') }}
    +
    + + @include('widgets.article') + + {{ $articles->links('pagination.default') }} + +@endsection \ No newline at end of file diff --git a/resources/views/article/show.blade.php b/resources/views/article/show.blade.php new file mode 100644 index 000000000..8599cf483 --- /dev/null +++ b/resources/views/article/show.blade.php @@ -0,0 +1,66 @@ +@extends('layouts.app') + +@section('content') + +

    {{ $article->title }}

    + +
    {{ $article->subtitle }}
    + +
    + {{ $article->user->name or 'null' }}, + @if(count($article->tags)) + + @foreach($article->tags as $tag) + {{ $tag->tag }}, + @endforeach + @endif + {{ $article->published_at->diffForHumans() }} +
    +
    + +
    +
    +
    + + + + @if($article->is_original) +
    + + {!! config('blog.license') !!} +
    + @endif + @if(config('blog.social_share.article_share')) +
    +