From cf25d7718593a96b7216b7be2268a62939f1cb88 Mon Sep 17 00:00:00 2001 From: Philipp Bayer Date: Thu, 1 Jun 2017 20:47:00 +0800 Subject: [PATCH] Mateus' PR (#365), closes #264 #333 * Renaming '.env.example' to '.env' * Removing bootstrap gem * Adding newest version of Bootstrap(3.3.6) and setting it up * Renamed 'database.yml.example' to 'database.yml' * Deleted common.css.scss * Deleting active_admin/application requirement * Adding style file that import all style partials and adding javascript file * Updating application.html.erb and includes(footer and navbar) * Removing from news all the updates(new users, new pheno...) and putting on updates page * Updating user views * Updating phenotype views * Updating index page * Updating FAQ and Stats pages * Updating genotype views * Updating messages views * Updating snps views and signin page * Updating fitbit and picture_phenotype views * Updating warning * Adding base style and variable of style * Adding style of index, faq and stats page * Adding style for user views * Adding style for footer and navbar * Adding modules of style * Adding style for fitbit, genotype, phenotype and message views * Adding style for snps and updates views * Updating serverscript * Adding new logo and RSS new image * Adding style files for: comments, password reset, picture phenotypes, achievements and search results * Removing !important and updating some styles * Updating view from achievements * Updating views from fitbit profiles * Updating genotypes views * Updating navbar view * Updating password reset view * Updating phenotype comments views * Updating phenotypes views * Updating views: search result, snps, user phenotypes and users * Updating views: updates and picture phenotypes * Adding updates page's routes * Modify flash messages and change number of fitbit profiles and genotypes per page(20 -> 15) * Replace will_paginate to a version that works with bootstraps * Change serverscript to make Sidekiq work propely * Updates user's views * Updates script to run only when page is fully loaded * Moves script tags to head and updates flash messages' views * Updates and add style for: picture_phenotypes, snps, userpages, press, warnings * Updates views for: genotypes, messages, fitbit_profiles, phenotype comments, phenotypes * Updates views for: picture phenotype, picture phenotype comments, warnings and errors, snps, snps comments * Updates views for: press, picture phenotype user, user session and snps user * Updates views from: user, updates, press and stats * Updates views from: snps, picture phenotypes, phenotypes, genotypes * Updates views from: fitbit profiles, navbar, application, messages and news * Updates script file * Updates style files * Changes modal views * Renaming '.env.example' to '.env' * Removing bootstrap gem * Adding newest version of Bootstrap(3.3.6) and setting it up * Renamed 'database.yml.example' to 'database.yml' * Deleted common.css.scss * Deleting active_admin/application requirement * Adding style file that import all style partials and adding javascript file * Updating application.html.erb and includes(footer and navbar) * Removing from news all the updates(new users, new pheno...) and putting on updates page * Updating user views * Updating phenotype views * Updating index page * Updating FAQ and Stats pages * Updating genotype views * Updating messages views * Updating snps views and signin page * Updating fitbit and picture_phenotype views * Updating warning * Adding base style and variable of style * Adding style of index, faq and stats page * Adding style for user views * Adding style for footer and navbar * Adding modules of style * Adding style for fitbit, genotype, phenotype and message views * Adding style for snps and updates views * Updating serverscript * Adding new logo and RSS new image * Adding style files for: comments, password reset, picture phenotypes, achievements and search results * Removing !important and updating some styles * Updating view from achievements * Updating views from fitbit profiles * Updating genotypes views * Updating navbar view * Updating password reset view * Updating phenotype comments views * Updating phenotypes views * Updating views: search result, snps, user phenotypes and users * Updating views: updates and picture phenotypes * Adding updates page's routes * Modify flash messages and change number of fitbit profiles and genotypes per page(20 -> 15) * Replace will_paginate to a version that works with bootstraps * Change serverscript to make Sidekiq work propely * Updates user's views * Updates script to run only when page is fully loaded * Moves script tags to head and updates flash messages' views * Updates and add style for: picture_phenotypes, snps, userpages, press, warnings * Updates views for: genotypes, messages, fitbit_profiles, phenotype comments, phenotypes * Updates views for: picture phenotype, picture phenotype comments, warnings and errors, snps, snps comments * Updates views for: press, picture phenotype user, user session and snps user * Updates views from: user, updates, press and stats * Updates views from: snps, picture phenotypes, phenotypes, genotypes * Updates views from: fitbit profiles, navbar, application, messages and news * Updates script file * Updates style files * Changes modal views * Updates script file * Add style file for modal * Updates views from: snp comments, user phenotypes, modal and picture phenotypes * Removes empty style files * Moves comments style to modules directory * Creates a more general class for containers and titles * Removing more specific classes for containers and titles * Changes load order, now variables are loaded before base styles * Replaces all containers and titles classes with the more general class for them * Corrects styles order and organization * Updates minimum height for content container * Organizes and refactors script file * Updates views for fitbit and user * Removes 'test-' from all classes and updates some views * Updates settings view * Updates gitignore * Changes config files * Removes some file from .gitignore * Readds the example files * Changes all unnecessary double-quotes to single-quotes * Corrects script file * Updates hound file to ignore JS files * Hopefully merged both * fixes typos, gem installation * Adds missing pagination gem * Deletes Vagrantfile * Automatically replaced all pre Ruby 1.9 hashes with new style to satisfy Hound * More changes for Hound, triggered by me automatically changing the hash syntax * More hound changes * Fully satisfy the hound * Fix some more style issues, delete some old Vagrant stuff * Fix usermailer complaints * Changed some stuff in fitbit notification worker - prob. needs bigger refactor, long lines, cannot change * Two more borked tests * Get rid of useless asset pipeline errors * Skipping search test for now. * added about us here * disclaimer now also for genotypes * working a bit on the hound * fixed FAQ language --- .hound.yml | 2 + .jshintignore | 1 + Gemfile | 7 +- Gemfile.lock | 21 +- .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 ++++ .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes app/assets/images/avatar-bastian.jpeg | Bin 0 -> 5123 bytes app/assets/images/avatar-helge.png | Bin 0 -> 42931 bytes app/assets/images/avatar-philipp.png | Bin 0 -> 46486 bytes app/assets/images/opensnp-logo.png | Bin 0 -> 45345 bytes app/assets/images/rss.png | Bin 14796 -> 1100 bytes app/assets/javascripts/application.js | 9 +- app/assets/javascripts/bootstrap.min.js | 7 + app/assets/javascripts/script.js | 79 ++ app/assets/stylesheets/application.css | 13 +- app/assets/stylesheets/application/_base.sass | 16 + .../stylesheets/application/_variables.sass | 9 + .../application/layout/_achievements.sass | 19 + .../stylesheets/application/layout/_faq.sass | 34 + .../application/layout/_fitbit.sass | 19 + .../application/layout/_footer.sass | 16 + .../application/layout/_genotype.sass | 13 + .../application/layout/_index.sass | 42 + .../application/layout/_message.sass | 27 + .../application/layout/_modal.sass | 10 + .../application/layout/_new-genotype.sass | 6 + .../application/layout/_new-message.sass | 7 + .../application/layout/_password-reset.sass | 7 + .../application/layout/_phenotype.sass | 41 + .../layout/_picture-phenotype.sass | 21 + .../application/layout/_search.sass | 5 + .../application/layout/_settings.sass | 62 + .../application/layout/_signup.sass | 12 + .../stylesheets/application/layout/_snps.sass | 20 + .../application/layout/_stats.sass | 22 + .../application/layout/_updates.sass | 7 + .../application/layout/_userpage.sass | 62 + .../application/modules/_comments.sass | 49 + .../application/modules/_navbar.sass | 61 + .../application/modules/_news_list.sass | 15 + .../application/modules/_simple-form.sass | 23 + .../application/modules/_tabs.sass | 6 + .../application/modules/_warnings.sass | 23 + app/assets/stylesheets/bootstrap.min.css | 6 + app/assets/stylesheets/common.css.scss | 3 - app/assets/stylesheets/style.sass | 5 + app/controllers/achievements_controller.rb | 4 +- app/controllers/application_controller.rb | 6 +- app/controllers/beacon_controller.rb | 6 +- app/controllers/das_controller.rb | 72 +- app/controllers/fitbit_profiles_controller.rb | 44 +- app/controllers/genotypes_controller.rb | 20 +- app/controllers/messages_controller.rb | 4 +- app/controllers/news_controller.rb | 19 +- app/controllers/password_resets_controller.rb | 20 +- .../phenotype_comments_controller.rb | 12 +- app/controllers/phenotype_sets_controller.rb | 20 +- app/controllers/phenotypes_controller.rb | 88 +- .../picture_phenotype_comments_controller.rb | 14 +- .../picture_phenotypes_controller.rb | 52 +- app/controllers/search_results_controller.rb | 2 +- app/controllers/snp_comments_controller.rb | 2 +- app/controllers/snps_controller.rb | 152 +- app/controllers/static_controller.rb | 44 +- app/controllers/updates_controller.rb | 21 + app/controllers/user_phenotypes_controller.rb | 24 +- .../user_picture_phenotypes_controller.rb | 24 +- app/controllers/user_sessions_controller.rb | 12 +- app/controllers/user_snps_controller.rb | 2 +- app/controllers/users_controller.rb | 76 +- app/mailers/user_mailer.rb | 68 +- app/models/fitbit_activity.rb | 2 +- app/models/fitbit_body.rb | 2 +- app/models/fitbit_sleep.rb | 2 +- app/models/message.rb | 6 +- app/models/user_picture_phenotype.rb | 12 +- app/views/achievements/show.html.erb | 45 +- app/views/fitbit_profiles/_form.html.erb | 45 +- app/views/fitbit_profiles/edit.html.erb | 4 +- app/views/fitbit_profiles/index.html.erb | 85 +- app/views/fitbit_profiles/info.html.erb | 33 +- app/views/fitbit_profiles/show.html.erb | 348 ++--- app/views/genotypes/_form.html.erb | 92 +- app/views/genotypes/index.html.erb | 78 +- app/views/genotypes/new.html.erb | 18 +- app/views/genotypes/show.html.erb | 10 +- app/views/index/index.html.erb | 120 +- app/views/layouts/_footer.html.erb | 31 +- app/views/layouts/_modal.html.erb | 18 +- app/views/layouts/_navbar.html.erb | 73 + app/views/layouts/application.html.erb | 168 +-- app/views/messages/new.html.erb | 38 +- app/views/messages/show.html.erb | 36 +- app/views/news/index.html.erb | 250 +--- app/views/password_resets/new.html.erb | 19 +- app/views/phenotype_comments/_form.html.erb | 29 +- app/views/phenotype_comments/_show.html.erb | 45 +- app/views/phenotypes/index.html.erb | 59 +- app/views/phenotypes/new.html.erb | 68 +- app/views/phenotypes/show.html.erb | 153 +- .../picture_phenotype_comments/_form.html.erb | 29 +- .../picture_phenotype_comments/_show.html.erb | 41 +- app/views/picture_phenotypes/index.html.erb | 61 +- app/views/picture_phenotypes/new.html.erb | 75 +- app/views/picture_phenotypes/show.html.erb | 87 +- app/views/search_results/search.html.erb | 370 ++--- app/views/shared/_error_messages.html.erb | 13 +- app/views/shared/_warning.html.erb | 8 +- app/views/snp_comments/_form.html.erb | 28 +- app/views/snp_comments/_show.html.erb | 44 +- app/views/snps/_snpedia_papers.html.erb | 23 +- app/views/snps/index.html.erb | 76 +- app/views/snps/show.html.erb | 553 ++++---- app/views/static/_disclaimer.html.erb | 88 +- app/views/static/_faq.html.erb | 1264 ++++++++++------- app/views/static/about_us.html.erb | 67 + app/views/static/press.html.erb | 40 +- app/views/static/statistics.html.erb | 89 +- app/views/updates/index.html.erb | 173 +++ app/views/user_phenotypes/_form.html.erb | 103 +- app/views/user_phenotypes/_new.html.erb | 36 +- .../user_picture_phenotypes/_edit.html.erb | 41 +- .../user_picture_phenotypes/_form.html.erb | 34 +- app/views/user_sessions/new.html.erb | 33 +- app/views/user_snps/index.html.erb | 50 +- app/views/users/_edit.html.erb | 236 +-- app/views/users/_snps.html.erb | 27 - app/views/users/_user_is_not_user.html.erb | 135 +- app/views/users/_user_is_user.html.erb | 393 +++-- app/views/users/_variations.html.erb | 28 +- app/views/users/changepassword.html.erb | 46 +- app/views/users/edit.html.erb | 6 +- app/views/users/index.html.erb | 44 +- app/views/users/new.html.erb | 45 +- app/views/users/show.html.erb | 8 +- app/views/users/update.html.erb | 7 +- app/workers/fitbit_dump.rb | 2 +- app/workers/fitbit_edit.rb | 24 +- app/workers/fitbit_endsubscription.rb | 4 +- app/workers/fitbit_init.rb | 2 +- app/workers/fitbit_notification.rb | 55 +- app/workers/fixphenotypes.rb | 2 +- app/workers/genome_gov.rb | 2 +- app/workers/mendeley_details.rb | 2 +- app/workers/mendeley_search.rb | 2 +- app/workers/pgpannotation.rb | 14 +- app/workers/plos_details.rb | 2 +- app/workers/preparsing.rb | 5 +- app/workers/snpedia.rb | 2 +- app/workers/zipfulldata.rb | 2 +- config/database.yml.example | 2 +- config/deploy/production.rb | 5 - config/deploy/staging.rb | 5 - config/deploy/vagrant.rb | 6 - config/environments/development.rb | 4 +- config/environments/test.rb | 3 + config/initializers/session_store.rb | 2 +- config/routes.rb | 92 +- db/migrate/20110608000645_create_users.rb | 37 +- .../20110615045458_create_phenotypes.rb | 14 +- db/migrate/20110615173154_create_genotypes.rb | 8 +- db/migrate/20110616192820_create_snps.rb | 30 +- ...20110917193600_add_help_columns_to_user.rb | 8 +- ...10926172905_add_sex_age_columns_to_user.rb | 6 +- ...1005210020_add_notifier_columns_to_user.rb | 6 +- ...006133700_add_newsletter_column_to_user.rb | 2 +- ...63700_add_phenotype_mail_column_to_user.rb | 2 +- .../20111007141500_add_user_snp_index.rb | 6 +- .../20111007145000_add_snp_ranking_index.rb | 6 +- .../20111018040633_add_user_snp_bigint.rb | 4 +- ...20111028190606_create_friendly_id_slugs.rb | 8 +- .../20111028212506_add_slug_column_to_snps.rb | 2 +- ...102033039_add_revision_to_snpedia_paper.rb | 10 +- .../20120208020405_add_snp_pos_chrom_index.rb | 4 +- ...035_truly_add_revision_to_snpedia_paper.rb | 21 +- .../20120902113435_create_fitbit_profiles.rb | 20 +- ...te_phenotype_sets_phenotypes_join_table.rb | 10 +- ...0121123234958_create_picture_phenotypes.rb | 14 +- ...0130904010945_devise_create_admin_users.rb | 21 +- .../20130904010949_create_admin_notes.rb | 6 +- ...0904010950_move_admin_notes_to_comments.rb | 12 +- db/seeds.rb | 5 +- serverscript | 2 +- spec/features/delete_genotype_spec.rb | 8 +- spec/features/download_full_dump_spec.rb | 2 +- spec/features/entering_new_phenotypes_spec.rb | 4 +- spec/features/messaging_spec.rb | 6 +- .../features/phenotype_recommendation_spec.rb | 2 +- spec/features/search_spec.rb | 41 +- spec/features/snp_comments_spec.rb | 2 +- spec/spec_helper.rb | 1 + spec/support/authlogic.rb | 7 +- test/test_helper.rb | 2 +- 196 files changed, 5291 insertions(+), 3480 deletions(-) create mode 100644 .jshintignore create mode 100644 app/assets/fonts/glyphicons-halflings-regular.eot create mode 100644 app/assets/fonts/glyphicons-halflings-regular.svg create mode 100644 app/assets/fonts/glyphicons-halflings-regular.ttf create mode 100644 app/assets/fonts/glyphicons-halflings-regular.woff create mode 100644 app/assets/fonts/glyphicons-halflings-regular.woff2 create mode 100644 app/assets/images/avatar-bastian.jpeg create mode 100644 app/assets/images/avatar-helge.png create mode 100644 app/assets/images/avatar-philipp.png create mode 100644 app/assets/images/opensnp-logo.png create mode 100644 app/assets/javascripts/bootstrap.min.js create mode 100644 app/assets/javascripts/script.js create mode 100644 app/assets/stylesheets/application/_base.sass create mode 100644 app/assets/stylesheets/application/_variables.sass create mode 100644 app/assets/stylesheets/application/layout/_achievements.sass create mode 100644 app/assets/stylesheets/application/layout/_faq.sass create mode 100644 app/assets/stylesheets/application/layout/_fitbit.sass create mode 100644 app/assets/stylesheets/application/layout/_footer.sass create mode 100644 app/assets/stylesheets/application/layout/_genotype.sass create mode 100644 app/assets/stylesheets/application/layout/_index.sass create mode 100644 app/assets/stylesheets/application/layout/_message.sass create mode 100644 app/assets/stylesheets/application/layout/_modal.sass create mode 100644 app/assets/stylesheets/application/layout/_new-genotype.sass create mode 100644 app/assets/stylesheets/application/layout/_new-message.sass create mode 100644 app/assets/stylesheets/application/layout/_password-reset.sass create mode 100644 app/assets/stylesheets/application/layout/_phenotype.sass create mode 100644 app/assets/stylesheets/application/layout/_picture-phenotype.sass create mode 100644 app/assets/stylesheets/application/layout/_search.sass create mode 100644 app/assets/stylesheets/application/layout/_settings.sass create mode 100644 app/assets/stylesheets/application/layout/_signup.sass create mode 100644 app/assets/stylesheets/application/layout/_snps.sass create mode 100644 app/assets/stylesheets/application/layout/_stats.sass create mode 100644 app/assets/stylesheets/application/layout/_updates.sass create mode 100644 app/assets/stylesheets/application/layout/_userpage.sass create mode 100644 app/assets/stylesheets/application/modules/_comments.sass create mode 100644 app/assets/stylesheets/application/modules/_navbar.sass create mode 100644 app/assets/stylesheets/application/modules/_news_list.sass create mode 100644 app/assets/stylesheets/application/modules/_simple-form.sass create mode 100644 app/assets/stylesheets/application/modules/_tabs.sass create mode 100644 app/assets/stylesheets/application/modules/_warnings.sass create mode 100644 app/assets/stylesheets/bootstrap.min.css delete mode 100644 app/assets/stylesheets/common.css.scss create mode 100644 app/assets/stylesheets/style.sass create mode 100644 app/controllers/updates_controller.rb create mode 100644 app/views/layouts/_navbar.html.erb create mode 100644 app/views/static/about_us.html.erb create mode 100644 app/views/updates/index.html.erb delete mode 100644 app/views/users/_snps.html.erb delete mode 100644 config/deploy/production.rb delete mode 100644 config/deploy/staging.rb delete mode 100644 config/deploy/vagrant.rb diff --git a/.hound.yml b/.hound.yml index 5d0ff60..821b9dc 100644 --- a/.hound.yml +++ b/.hound.yml @@ -1,2 +1,4 @@ ruby: config_file: .rubocop.yml +jshint: + ignore_file: .jshintignore diff --git a/.jshintignore b/.jshintignore new file mode 100644 index 0000000..e95f15f --- /dev/null +++ b/.jshintignore @@ -0,0 +1 @@ +./app/assets/javascripts/ diff --git a/Gemfile b/Gemfile index a41e7d3..4ceeda6 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,6 @@ gem 'rails', '~> 4.2' gem 'authlogic' # lots of user-related magic gem 'i18n', '>= 0.6.6' gem 'rails3-generators' -gem 'jquery-rails' gem 'bcrypt-ruby', require: 'bcrypt' gem 'sanitize' gem 'recaptcha', require: 'recaptcha/rails' @@ -33,6 +32,7 @@ gem 'pg_search' gem 'rubyzip' gem 'will_paginate' +gem 'will_paginate-bootstrap' gem 'nested_form', git: 'https://github.com/ryanb/nested_form' gem 'json' gem 'mediawiki-gateway' @@ -53,10 +53,9 @@ gem 'whenever', require: false gem 'therubyracer' gem 'execjs' gem 'uglifier' -gem 'twitter-bootstrap-rails' -gem 'jquery-ui-rails' +gem 'jquery-rails' +gem 'jquery-ui-rails', '~> 4.2.1' gem 'sass-rails' - #group :production do # gem 'rpm_contrib' #end diff --git a/Gemfile.lock b/Gemfile.lock index d671c0d..3d09365 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -97,7 +97,6 @@ GEM codeclimate-test-reporter (1.0.8) simplecov (<= 0.13) coderay (1.1.1) - commonjs (0.2.7) composite_primary_keys (8.1.5) activerecord (~> 4.2.0) concurrent-ruby (1.0.5) @@ -156,18 +155,11 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - jquery-ui-rails (6.0.1) + jquery-ui-rails (4.2.1) railties (>= 3.2.16) json (2.1.0) launchy (2.4.3) addressable (~> 2.3) - less (2.6.0) - commonjs (~> 0.2.7) - less-rails (2.8.0) - actionpack (>= 4.0) - less (~> 2.6.0) - sprockets (> 2, < 4) - tilt libv8 (3.16.14.19) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) @@ -374,11 +366,6 @@ GEM thread_safe (0.3.6) tilt (1.4.1) timecop (0.8.1) - twitter-bootstrap-rails (3.2.2) - actionpack (>= 3.1) - execjs (>= 2.2.2, >= 2.2) - less-rails (>= 2.5.0) - railties (>= 3.1) tzinfo (1.2.3) thread_safe (~> 0.1) uglifier (3.2.0) @@ -399,6 +386,8 @@ GEM whenever (0.9.7) chronic (>= 0.6.3) will_paginate (3.1.5) + will_paginate-bootstrap (1.0.1) + will_paginate (>= 3.0.3) xpath (2.0.0) nokogiri (~> 1.3) yajl-ruby (1.3.0) @@ -425,7 +414,7 @@ DEPENDENCIES guard-rspec i18n (>= 0.6.6) jquery-rails - jquery-ui-rails + jquery-ui-rails (~> 4.2.1) json launchy lograge @@ -462,13 +451,13 @@ DEPENDENCIES test-unit therubyracer timecop - twitter-bootstrap-rails uglifier uuidtools vcr webmock whenever will_paginate + will_paginate-bootstrap BUNDLED WITH 1.14.6 diff --git a/app/assets/fonts/glyphicons-halflings-regular.eot b/app/assets/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/fonts/glyphicons-halflings-regular.ttf b/app/assets/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/app/assets/fonts/glyphicons-halflings-regular.woff2 b/app/assets/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/avatar-bastian.jpeg b/app/assets/images/avatar-bastian.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b61861793ceef70467d9313376121e40d91a4f26 GIT binary patch literal 5123 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/avatar-helge.png b/app/assets/images/avatar-helge.png new file mode 100644 index 0000000000000000000000000000000000000000..898cc46204e24ce3cdd7204a683ac52085d0a411 GIT binary patch literal 42931 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/avatar-philipp.png b/app/assets/images/avatar-philipp.png new file mode 100644 index 0000000000000000000000000000000000000000..32bc0af490c47403d81382dd68546318e739832c GIT binary patch literal 46486 zcmY(q1y~$Gvo5@gyUSvWySo!CxO;GSclRJcgZmQPCAho0yAucmg1g;(=bZoi_s;Y5 zba!=iyS)ipKIDoWC*NQ6iL00321MpErxp7x)F0Qc`K1a#T|m%&(xDT)CA^$EzY zCb0kNWM(pIiU5Ew4FC`v4gfs=BL)8k06f?LfKy`tKp+DEz<17RR~7o#faomq#SH*J z#{N$N0 z-oh0B#Ub#o{2wwa1=)YGxZ4R+=qRd?NjSM$ka4qcv9M8yAd!)g3AvhE3aCj+{ZIFQ zHDL;CcXww2R#q=BFBUIO7AIFLR(5`VepWUPRt^s4e;mwiK924t-pr0}l>aT{|C1wW z;b!J)v6#oJG-{Zf>>272B|06lN{f}Dz6lDER3oAPd8|(kd z{?}FLKU4u_R~w6e$p4Wq!Y=e*oc|B)e{h6Y{{#Mi4d%Z!{V(c2RYj15SpWC3i6ANT z(|!Q}L;ep^p{3QOB~C&ZAO@ApH+4FkB-}-4I$gEd1lPwY zlb%N-mvGY8-OHGPG!nE(n`}G_xdOJZ-;M=D!d}{5Q<`4j8KI|_s`4{%pgJ;YGb`8}Tvo$PReM;^;!((`9?& z*u|h&O?Jta`zd$gYU9r4RsY6Cm73ZKXYJT zdx?ebdvlfC#>7s?KD2lGIEjG6b*;@=oUVKyILkVnTqXch7Dq2#H0gWXPpuEfJ5Pi& zzwVjRaxcby3B9~k)_%R>x~t~>;5jEf16EuVNmXaD&>VOVGyPTp&;u}20VpAarFQnqG|%u>rj3+MyNE!b4D?5j)u9qM3RV)(NZ?OLtS2&jaPRTxV9 z2XObFB@Scy;+sOZUKiqC!9Qxpt<$b;o)l4~bL6(}7_}FT*)|q7^i6-3X^W+Dd19YW zwynGt#!p?_UGAP19lhpH#%$Jib`m^2(sXS+9H^^n>}TOI@G>7Wd*AO5oO&#}Nn89` z0xxNe4lewAUJPj)gn7DPGDfb`623T!8Fis;&TOZ0B*RS{5Vt#Uated6TglF zdbW_F6A7+k?q=?8*Z12}-5<6OZVO4@$lgvMfwTr|Yf4>x7Acbg z&xLZGi1uJz9d&yz`>Go}S*OkvJ5cY>N12D`Y~lDYS=&`Mo}g zB5~@a(R6q-^JtJDR~{;$u$NY5im@pkqO|^hK7Mf8;|+x zYgb(Z14YIA4w>=oe2BMey#*Z8`*i;G=02@a!y_|v-d3j-W=h`7NFMCBku46g1Nfj$ zmax7z|E>L&W5}C#&&uPN#i6TEDH0~kuZbJ*MD~NXgAn><4&-6s;r;njkyGH!%7R^O zcUr{2Tya{MtQ=g1^?9lSuBaK&^t95#-@k>8505qi!XgT80;`~iwC@V%Xjmozl+4vt zrG3sxTIt%~>7;Xx2|>ak(F2%}J+eF2>4mx-Md_EwletpJoT^{>k_~=v7oXw{;*7n9 zx?fweW6yi)?dDBwe#J_gB{kLDrD=xe1He2CiQ=hb!3E$Y0x5Frfk$YUsmAmd=g`cO z$&#~maVa!ZeluY`Cp|Aki|TMW*IIA;37mcYffhL+!cd#c!^894)J|p~GedPSrB0Uu)zaaokB`ls<9e%|e-; z8}v!9^i?m~n*Zrb+FtiaXN&iA4o`j1TG~)M&T*Gk2X*nq+okl$<38D2L(n^kJOk)J zHUwv9Q8hb~$D`x;^YzjF#2 z=_iG3y_IqcYE-}DRi$M2K;H-)Tc|uZ;{mXSt}4Ff54~!w_=FiOrgKZiyY{ZzTYp|| z)r8uvTU(hDTIIZ=t}WW~<+9S;>bS=4w&+{?BIHw^9P&La&-rmV!F84DrNm+lO3rn7 z+0{;FEFsdDj&9C_E*4H%kJOgeD*xP_CxP0lPQ5@+xTqf3ILOe{O`Af3o|ab2`}?;a@AyAm$4;DglW_a2{_eQ@Yu>ULIWn4f5 zh@2Z25StMGc}OHFkt3qafO-gl-V>?rbjnuO2AcSkBg_4}=cK9A+?-$)y$CqqK_ z`rNY5xT3s7^5uQp#Xl<=6s>@szlF}(2SI9$SQT9jn{pFGb~59#0_%c<@fD>jhJGQw znhTK-|M07ztYx;zmS(TI(&YtbA^8`p!p83UT%P(|@_D29-SH$#}Ql3G*Bl@hJ8*KgxByZZ?frhNLV!Y4)litxPFFz721>&$6nn%8 zk{+i}C)}x)l}pwsDh%?JlNw~|&O<<44*lU?t-(Nv_v+OWAso{4;sy{JZ0?LGZB4G= zBal9pne`#*aD*qalcj+-uu&tth3~O9d!wL4@_eo6A%MyIH=B0ygwa52S{`2ux3u~Q zK_*6SxZ7S|Ut(^~6cWMe!E9l3j(6F@5cUA0;giW6{|knHzO%*(4Fs1zK0YUX4kvyy1q zY!gmW@-3x#A%-3Z5FKmt?Mg#?P+Its{5-b}m*m*I9fxMsAqS19BKsyX0~^ecL}+Ma zRh~S4qw9Np8{Dq2kUFi@?saVPToja4gYD^k@-;nCji@{!ML;+^e^`5dsY&y!Ubk_{ z>IB1Jx9qmVsyr*Ri%!;h4qwmm6d!)|i5hMq&Zr(&K@$omi6)FT$WNYyG3eM7FX-Pw zhs+IYM(0MH55;twgcz4aX>nV26fAR554>K;tE19 z>Fa%A*#5E>c>;M|2nspol7$35s|tt+$^Cl_kc+0r=72M#1@Vc7Y@i{+Q|BmYDw$JI z56C&Ce8r;c_$0+UG1jR6k;SaT8h#3p%g%hB%TFfs=}&>9blHk3A=%zAr6&FPFMm`~ zF8UQ3RDL5U48@|{)25Acv)DqGkuo7&UIImzH`S0-U4iXS{Us6sJUjpf(PV=Z&95R; zc)x&;SPpp@Q03Zs0HI=%zg?jDcp~|erF5g>?ej$viJoVME5>s+(}dgowc;-vQWTyY zr9w{e=6WAP&S5A#N3QsrA)(tlbSElJu9P<|dHH$RLkzGD-l_LKnQ+3HhKOtJRUEo3sSz~FL zx28dO0eGcpWy#wt)0&6m=^5zBP2{5G(;s|M<6*e550qK!ZId!iv$8*{Dx%(3!|m+T z_!;P6-y{<8F4T4T+N9C#%Zci}T(u|@5PLH`k2L&-m82>%05}05S>+%)|?X5LA!y=i%Y8k!3DG?RA1Uwf6@clWEQf7CCg zoi1e8CS|W%>JF#FrV6G2A1yKkh#72pT9}t&NQtn`aapPuoI==FM$TXh)f;&EMp`1( zk=lK|7#mMWj=v9;x8K)lY>E4UL`OcxAT2Xd2(r zgHuCxVX=mpIe9og86_`Sz2{OZZ@T;JG>izf=qRy;g3rA~{t6RlJUuh*1=h2q3y;JU zRIuUxq#r+1dG4s7C(w(6iWXlK30QfP#Oq>PHUY5iKh8(ELW)Vf0_Ip&7h}Fx zB_iDL{Sn45bsuF+Nw(C?u+WgITXDpYZ!@25gUBU2?gUv#VsL3a}UTb z_5t+ysHhk99*Q7JXrJWay+c-N^rc;^i;y+`VEu@FA7VPsgA~<|zWn8zIBOHRK>Cn>wVsgJ@jsoBJHye zox^2s9qOr_4{TG&H{!zW>6vM@nLpMsXkYJs-?_Y{@&M|-$!VFMTBiWVGYyG7u=6c$ zJ9dE(H4NE9XEf10f^9P@BNcc9AY`~j^xUKYaXqf7iS3z0(uus9W;FpH^pp}WM{7L6 zjVex~dDg=nVF9zu;8HPV_vd6d4u5`1kG15y+96LY=H&7%hJ{9y6jyiT)_D}6d#)Y_ zineSDnAEOicUg`XHft10)=)zh+#{6!DW<2V^E$nDY9+uYu8NtbSRH^Ues~O*Om2Ba z+=v!Y(X}|`rqRda@6z?)=e&>DGU4{FQ9tFdGm?N#Az!$ko85mvorR6)o}@tY`(j0}CPv?vzaxu`~HJY04n9`*RoGlJop zMC*=ooq>Dn`^uBYTcKPt^9{_-5ncN4t(hP-++omT)fMrnRb9%xU5kaEe6Y=eMkOT` zO+3`xl>kak{?FJ*dLV7tUPvc!Bw^03T(jNYq3E{gI z*Q2&p-3dc^ocrdg%H8xrrmc@R5QIH53=WHE9st_Ky*c8~fUNRit3!Fonk9Ep0`b%+ zf6qWBorCaWi!blv4{Lb<>g}KZrxhx;CbM zcG55qNq=j9A_fZdlB9f2A7v1wj_p@D4*W9+`&#UnX7#pe!bye6>)cj&8}z3A!E1;U zGVVjY<#Rz2`wRFYwDa8WFFeEoclD(OA-Kjv%Y?HTBK?EnLHo=jK z1*KK1Rqlb5*iu{bW8V`%45pcvoN;3V@1E?hscs_>sf6_mtp1{5FK<#jWBMC(epgFz zU3s#89(TLBv~jY32-RzH#>r&PTl7s#S+jatHMiFuO-UM_43>8CagvYVzVhCozd&Go zU|ZX-1# z=>7g4cjWDnRwNbPlUQBXzhtB^S(I24@;yk93O%YBQ6OC3mR&!2TD2kA!lD>k)d#xq zNS4{8k@bdOIyX+WP%|fjkPAZY;0I7T7Q1i}-M#&{zsl?J6zsYiXj!=Aotgi`+6h-z zzjwx+BAgHH?t&v{@q4!4xuqIIr{Nb0k*lZ>W2ZRcc{2j|K^QFj_2M(!vE5Ao5G!OK zx>c*d+-$~>{zuO$3j}tykYia>dsDPzW^`uk<%!^F!*%n)A0->WM6ib)EH4zHPHsaM zKzygqMpJVL4=?_8ZrBe6wDa_M-dNwBD)PKRT1xP@xp@LZP)3uxk8UO2b+r_VPM~$` z&mX%v#Kz2$oYEl~R?2;}Ybctc*wazpX+9@9G5g5d1KZ@|ESVAHpU5bQYVI1gxXziS zzm%yf?z9a)k3yj@dHQVns@}0xkP!ZKvZ?%1d&NNVYg#x^k5Nb(F3O6#OGz~RnM>yn|#k-If9{ zyQQ3kl(}q<$yv)-V{4$pANlB1g7M_QkiK`r%}y3ho}Ggh2#Qp#*C%MDjRQ6B&+6u* zvCy*=LKL;=G=Rw=j;4ldr`oaXk|F3s$tsCR$ysX##5gSqq%0fFl}alayLh3?i~Y4XJoCcFZ;j$sP;*Q;b`e zE*na@JuH`^HH%I9VAxA@OI)cIJNe*gJ|Z!-qVx#&FA0+zzz|o_rm}jGJxk59AIYF` zF$*HCs99)SgB=~zksqNZZ~cdsz7K^75}JCn0fS?W=)s7m`&`I)cSgsh2eEI>9KqW#%q9?Cr6BQvIeYLkBOJnvWdB3m4+=EAXZeB)~rDDqmB)XD$m_GyJY(7 z0DV7FL|JRUsmv<;Ah3r7KbcyT!7j52JP6HILVdQ6H1LYR?}TX$q8A+(HVPgIXhA6$ zdh=(3?%jF9=DiwmyXWf}(zW!2lP^=Mnb@8F=NuL`+SCJZLuPiq$^|#DEk;CSCALAO z>p@8h^*}{&^%h52O!GY*&L!XObvPC2&Ge**_*_W%+LMMdnHif=mbcd_hMTOi3YiYJ zZedF5!|7Kt7NyNLD6@>dQ(@RBEfY3NkrZU3ZBk^b!x8G)hDU14!2b~LFL4_!mQ*G+ zX|a(;Mfm1P0uC)_sN=X-CLz-`qOOePy0a9hjbL}mFte#vyu^tf5sv=?hPW>*gkdl4 zsoAp6c6D_VVvX5HirHYy+eJ~u?J2;Wdo%? zjqIF7YLEU9!8$56XW`0HJ*O%)K8~6{QOn#H>3jP~bHAS0gHUqf^@P-; z>4S>;+E?aZuG*<{*G5(mi{8?OPcTJ zPeTD0QzJropW1S)W}Y@U-lp>nn3U_D1#6(W;3WA~gd_&ODKf@Tg72l-q*U+6q)Cgn zPYl~V{xsbVdwmcB*o8unu%i&N#07etfhD;=;u;jNHU)Oq0xsEdg#u!KU+m`9mTJkdrB`lo6RkW-hZUX3=lJe$N+hukzxj>ia-bE7p zXb+&sB+KO~lguPD|FT;K2G@^74ScHjq@Zw|T#9;_Is_)*wFL*^Fp7LGIYI7;@s(e-@9kBjn9Or_q|v55i$*QL?>kC>Ab#^ z8T_ClazVW=J#>}|<)4RbOrYO}Qmhjgzy0G&t}Z)Nlwi!nX6bBx!aT~-QQf3+;C0t+ zwbL8T{k+h*NZ{xraXtO?GFw^K#&NkwQ&9)v}ZF~(Xwnm5j)xmf)xHq2^9-vQ-qLJu=||Y zY(x@Xd$NQSuH2Lwj7S3Fd={5Av3;m6ljx8efx7Tu+ZQQ0W@g^`zCLo>gjKvuwBfmX zw1+x=y_3^vH~la-34KP5J&FYmfVs5@c(M&fN`&?JpLN>cJ~r|;J%U$z)0%yJofcwg zst;-t+F<^~xC5!xdp$2sJCx=d8u=sxfwJbPRtb}9;@x?)StmF8?PJRM@y`0;FqyBa zJB5hMB?Ul`%IYX;F}v?YN-C?`a_OTJsjzl~CW1q(8-_tx+QG^Mq9UB+H{Nk}Yjvk+ zsVa|aRTE;VBqDJwQH3&`3LS+fvm-cAS2b$nW~Ieu4J7jFluuT#<1MOHFAut05)U`c ze_zdYNY*#(7qRXs9zJP#UJzv;M?DYNlZSG6j$LEaK?pSKT2zb(;7L?dG}CnljBr%?oZ?hPF>`W$ z;OS@nc+z>FM!ENbGufVbIJ_9L6HYrX8M>+P1Rghm9}c=Lj?JFdo;rFvdRagtUx5s| zqd^Z(TJrtFe&~No1tHz(?}y4CUslE7mA$Txlz>=IGN5Maq@!Eia^kL_c-t>AeFumP zW$Jpv%cg9gyVg)beTo)aM2RM``;fjNhCE1u=XxsENMZyQf|lvyJe)=rnJUE$EbGoX z&o~+Zv2lNxJA!mAwwG|x&fxd}U7yqBu$b|mC?*Lx2K>5?j9_22b~36uthn=ssDU{! z^fVgp)nlSss7R-rty-aooX9lJa61+$fd9F#8ptt%7m#3?=L!DagT0GTSV_v zO0>c2OySMaS&&5zDiYI#W986}VCG=wTsinRWwXBD=M5=~9DBh@iKNxuc(F`)%fqFP zaH`zg+_XHjeA4&(HVv;UV&4t3k_(;*1(eZs0fMQL&yFd8^!xnGjfJ6K@mkHN$=+`H6f~=0;kb zZmU22r!nsNjHp}1)s9nEZv>AVpUZ4k&*rlp_aG{x0$td+6bVc|=eI{pcdj0V9KIh1 z?_ncly*yYST7$Qzd<>@%91QCw6sevlVyc_?lO9G97M50)zMBr;%m1xyC{Q!_WDHS6 zlgB#Utm#*kfygk3{lAR#FFe{wuqlhOo;FDtS(-Zvi$365>|Y0iAuaP z>@QTC7#`9PjXo6s>_w$Q4wADMdrqznd0utmz~`gZKbZo7_|d_DlFJNDKN&^e-b6Me z4d~uQx$-cFqj1e+!qUmoMduYEf}2-*Pm^@>zS2l#7ojrjbNci)yc5*px&ws)8f0kM zM`Q^B0y-m(NnN~+efEDJ0&iM^|LtlUs8i+2PYuUyQNS?0Nk{rm#HRB01Co+l~~BPyM>XQ&)#oyiMN(Hg@7XD@7>e znECUgW0CG?K`to7tnQb774UR)-`y>fbbreFV=po8xMhfxVoyd>;^t-|g4_v1kwgnu zCw+JwbhFD#2?w&d^0cVoN)(Nc3tfqM>FZ>M2-x&-#LVMY@ySRQBaOR*t zI;)sW;=cg)8)=%}cnv9H;hO9*Vw(YL#J1;I+HECY3^lw8;;8d+iPq-TpuIG#wXS1D5 z>zry!H&{E7<}Q87LV7Eb8$Z3eEX2L5C?`1cd}T2Ye}|0ccA zCygp>1{tv!#q}~455jgnI3-lZA8@Rrc-)_dr_G3z5fw8IK`Y;3)uh*3yx#%bT_aS< zz=n+eVTNyS7Boi(ffG!h2oPe9xnyz+OSiqSji1{6Av=ywf)~es_7CxoyY7Fk7>RgY zJ?odCkE?MklI^mTgb~EyomedEx2B7H9B$nvypKUze99QLlKffmIDX^iB_Ko8v4O;ZaAQ_G=*4_J?gU}n4I#zG2eVr$@k z7Zbg3Y4v?Wx-bkh96!ul zyfaC7ZTGdm@6~WqR6cKAfO+h@eyj8qX#Lw3c5mohU?kDso2OEom<*herT6d_$``kY zXP4*nc^SQLp$AWxYbAWz7C;{21MoENTK-u?yEuo5xnGAxmI?V|)}oWrsPQIsZLV|h zL8J*0dAWTFgNbxJg#R;CmJN-atB z@QC`XGGet*`s&uKfY$go)&9rj`)Hr=9Qsa4F>>2ZBfnT*>`x4RbbY_7EvN#7f=S&AYuK1Nolo8HPKL z;=P$3NVWOZ?gc!Hz)NGK*7>;1+KH)nZmBF6rmz$Zg3|9|M~wjvVIsVi&d(u){8SZo z>h}5@NEC`Ec%b?UbgPFU0-4NXGJimeD$A-Pf?Zf14^(*at3LHcXVsyzh#ETH} zP~otSkWC*=3%(K_d01_P#3mD{seIKJh=+dhkCKbld9 zqcyz==VcNR0CEPacnQLOaXr<+7Ka@8j;OOb69ozoi;r|5+^^6`7exi#-Oa8JFVn74 zy%xiwdUN1xc22I_#oyzUew<52iC!VGWWA{@0J#I>8#Qi96}}8cPNg zD!Ug!d^|xhdg4up*BoZS@nmrad|2_WDRh=S>&h@?N|9y}B38jjG2UPY&X<0Vc5BRe zxyy0&PSeiM1B6Ky{Rl&}5dSnopS#rCRD7es935)12~qB~QdDvF?8EVoB<+ko?C>9n zWF^J*xCx9J$vwzqzBPaXuGa*I?LVNDq$v*Aed+V_1)52Ip?!>~h@-#Bv_BSv zYk+pjEE!r#q=C0$7;C+|gI0+$Vn_Hvl=lFq{ zhR7D5H+!l*$!aHDPhw*quB$mJ75tXaV^CZJoorURFJkiqtYxGb6tdRIw_w(&`$Juxe0z{L;A_9iJ-_6z zbEEc-elH;|j;*O1hNze5Uy3JCgt{rfEUliIV90f1LFcOoOWozRmS1h{SWL+?sE}jW ze1=J9bH7}iyOp5f%Sk$872}eNOH9bz;iV3AJD^b?L?q0sUtSDv;_ygUoFTCT2oB&Oyvv^BJ8`H>0whMn&qsVisdzAL1t*WOtwpIiSgqY#2!a zD3Q@cpx#pH(Bbx{xOnCEVIkUr>Xg(uctNjnm!3(I-c?+NoRrWvXK5rN55(`~Q%YO2XnRHhwE6gSb=^9HdQqK1;l zVA8;avSicIC4DJAo!_yOh6;Lpq?(8~$(eBTR0t`lzo@nVS$kGC_~>UUk4gUkQXsSC zsK5xX9s2;)v(yYMs}fYdil{$8eyVI>orwDOvyWhU9M{G6={H4?wNMILvn1Y$AD`;D zz9`}l3zHPheEQ%DI3Vg7cw3&c!sB*$x#5Y?Z6MunD0U&{YW2SQHBRYF@ZTgYUWl&SVX+7(|-tN;-=Y zM9B0s?vwdKKUxU*!aab-)HqPVnXTrkHO=!kEsmux3HS4V_Yk*taebSiJA?ClA%MR` zdZ28{9JB8U#?%g9Emg2;uBzW8Bns~CeF+$^06yOKY(I6})0`G3P@>D+v1PE&Agyzw z{xVp-ROFAOFnt5qBIM_Y=2Iy!>n4p-yOAw4)%1fxEJz826-h_)IO}WQPx)9qq=2z; znYow?<1BwpQ2PYN%LQ5$yCTBrS*&}w{?_A#=ZXiClR`zoiNT`5$xHrG9_{&wH-XZ) z0oHVXAl3zB`9gC>Oy7>ZTof1f^hg`7TLK;b)=?k5HsAsZSn980f>hGo(MjWMI1zFqYUR*M8#Qf+K9r<-$w@!En4S zv$FybPq4t2Ew0eu29C-`Py-M_ZXxV|v!HL#z}j7*MOqy6yRw%!9je{)oaW|ac^(fN zC0;4AOn$g?be@ac@gql{V)2OZz+YYC5~VJ5Bb3lJ@4g&r%f931#ufhtU3I?<`iTmL zuB=HFtw7WYl(;jXuZWZ^#4gVZM?iz3M}kyE2fz&;YD#1QF#2?915RrGMRiMr>Q|Ut zgk`z&Ik5OZvz0|2NnDPi?Q(N5ts8674G_#5;8D#rEOt9Ufo|@rL)jU8Vjwu!)@Ex? zfI}+njdMVIpBg^f$$d(Yd9@bN$@^9ULN6HJ=rHaTF4sFzpMtnd+TUL$)ja!%=!Y6eY-4B%p5tA~FRBu$B}S_UWL=-2S3wuozhQ0BdJ07c^q zVbJq}87xXD@_XL?5kzqgyZL_@d5y^Jeq0jHwJl0o%KK*&5dz?s)#3aUI+&n>=lG(k zTHt=1U-6HE?o%ofUvkI<>ITR^H?~L=s3b97X8IOjvgA%xuqhjkfn8YljSm+u?Z1!3 zG1QgepkCqxRecZ6Bn!AbBUY8P{9(EP5DLFX|H8&_p_fe0mdHE1>4ZHpQ`y@$6}!wtYQ3=D>~6^E8u;dA=+q{5SJ z&NIAhX3>l+n2UoDz3VcQ9c*Nkv_XA_>K5Dc2>Dj^9?TW#+ z-{53V)4%axGF)j?YtphXg)apB8|D`XCsH}z+*fW`_K{yEaS}u-lq4GegsXr`#tRT) z*G+#P5YFwI1(zSUMV@Oid27K|ZH*Q!stB8U;AlS67?b20B+kS)hN=vGW359a0$MQd(5}iOPDTOoe{tO(82O;eQbh>oehz+J(zmOOZ}ciYpzpcUX_9WE zD{@SAB_ZZXpAhr1+RV7yXw}yrz?7JM^*3&4ZI2B=|+mJxjOd=Mg zD6aeoX#V)eH^$nzufl?Y;s*Oy0FbccNC65_ptB{vnX@Qk-ugv^v81iD~S32#+%pP!a#^!fLd ziR3Tow}snrH(qhw@^M8|^+U$FM!WIgNoILizl>hBsV_ahQyZ1DT?Uc3N}@B0eUyIY z-wF1}QSS7@ddP#^83VsT{!mGEvvagA0k z=nytrpLm98b`c1EOhJF5TsfH25f#dSjQj4L1?1obSc^u#S11i*P4;?!t!7l9IxkB2 z)J6nY-8Qr+?~embEcof^(Wq@wSY?;1;$BB*v7H4IpCh966RYU_$*KrF7ARvdkz2I^ z){G+Is-%B+rs~V!fSo768dDi2Z!kqu@?0ROtRC$YIeuF%xjn~CvqCV>m4$=SX=2_; zN%9=dQNlJZ?nF-erhm%zk|9e-v#2>5i13ZW+S=e;2?ODzd_~%-xgC)xw;fj&`YIvf+rnymPG~JuLFR( zdFHXZr$8)$<9vwzxa@)$jEeOA)vRoC@AL^Ug~n~}IUG4BBVSwUiOE;a7;|N-g*Ldr zJ){+qTv5r+cvX_WImC$4O;E0hfXD-Fv2I~PjyTBeb~j{8*FFfXr^v4qb@kA zU+O_awE32E$mM%Qf9eVeSpYILh2v;)w0bUmn}?!k8*W?T4)Py<%1Q5p&TYGCT0LQ>ok1`0=1!LqIN?`m$d3Y(JZ?^)1CZ%vVXT6(bTx)?1_<^Y=vleK@W|lnUHJ=&xEd#Wn`Sr z@rSV7SV$q2{w9t7IEwhqjAoAE4%V4S^O%AvLh|e^z`7d9n$ex3gWBtM+R6`SGm_!h5)(ZH zI^7Z_N{UEl7aCU1xxlGz#NJ1^iBfPw`Cn*W?@t*Y$aX;lXKjRgN96xbMM)%!yL zD+wIfCb_ZSsE;mx^k(*P$ScFiqzhm=_3k#_0!=V%%;6ghTABULj44yo>Pjc4B_GvT z7b)j$hZA_pMQP&+#2+|3QbhDo0 z;^<^;PMl5&z9=PFIzR(;YLN9KNrEp4`G*(_+&ZO)xzf5XYIu+*{{Wo%#(+L89fR z&@7mOS@@w!vZx8bRGA+ow4HWg^h@nJKm5&RYEFU&)o~){7A%)952KyvH>lr3w8En* zD0%MV*flQy4e(QEnc}-DcIOP1LX}6esYiDzDqOCO_K3~79J5&PAt&G|kqgc;_))z4#hc~mHt1s8~h}7K4VF>j0&d36_ zRNBQMJlQ$dTs4K?%t;D-S4fiK$8YB&lZu+G3#HD>uyP-l14xOJ;R5Upg-_XC~}teA|)gQ?=?%!L|~DljPB8>K!for3^f` z7~Ep^$2gk?TJrpR!rXa5d$4#ltDj_1?PK`Cr|&0$GKP^5du2a2Mh|U6Ic2YlQW8`H z5xIHxGJ?48>&LiwWuKpCljYfl=vsv*-z&sP#Tb{&k&l*O3iC+S3Wu&^OWT}*tDgCn%4K{Uda8H{L#m1(8Hi&jY1f-BgD zyYAj%D2aX+-_$tfV>5#*t@tSZkbxYniVcT*4r9KM&8s)9mejD|U*4tXDI1wg?=pmq zBgF{|onO4YhTS?v)%7TVmk|Q3EBOV>y|@%Uo>NSEcw`75sD$ zgINUQ!We5i^W1l|YZw_w+=}8Cx8p1Ld3XS(uwy_sBfE3DDyra5vtY&?J+|8 zqi)P+!;9VEv+gIc^)CUFP((18<&_g^e@)7G(-4^Uw;8cWKqbv7GYHVyz^{!cyOp5M z$f~mAO0ks2btNVI4yZbYlz;zQmrlvH*Z1iWgSTY4f3l~4srI(WTuEk2uipz6w7*-T z%9tzTG?jBJ>1V8`Gr}#!WIjjr1Si&cUt9?jGeWgNh5HKg^GT6`KB*&cY<^9P`nnCn ze5dNWPJbK0TfetFR_yxfgxkF#Jmb^z!(+9V>G{AZh}vNwrU%AYKHQZ-Mx<-nOhfPC z_@Z>Gvhrlvtwk0?A62~%H?=ZS+7C2FD`}z~rP1KYDJ(|(8#sE#W2;jBi&zLc`8#hs zU0k15Zy|7+*<{mp1!sV0sEfRO9|;rg?Wus7jkFelDvQq&P6EYKO{*#fkuSy4_n)D3 za9&J!C+?5Ui7c_60<-EJPu@MwWG+Ea;e_8fYf^Vj3H1{lY|@Z_>MxOYU}gupkPFc) zCc+j_{`3}WD?wE>1N*={CsEt|s^)D_m~c@PbZf_2>eT&e*FIHczNuU){c^H5AnW^b z%SO_7#_byrqX1|SP<)AA3bV+L-HmSun!Uj6uF44~S6;W`i$QvoE~u^`b1U4|{TqXPWmqUh)yZP8haC$k&pP&M4S zgaD85UX>2MW!g`7M>$=EsM-Z?@pQ_y^`Dg&MUwt@DBmy46~0{(wtcg4>2$bjo4Vbo z-A0&w{oU8q2xF%ChE6J?@G(aE5$O9?jK4sTOlPTBRN)^{x&*x_8{48N>lHE@zn!g_ zuS(;sPdh%^!20w(WL*SGxeNz-@imy;SCPDrjKd*n>WX%$plgCi9CsctXF(uGt8R1l zgkVk;S3si_>1XiO*erq|)>3e>5G`SGT?Hb;Rnmd4R!288A~V|a%Ij40aWWH>_x|V8 z3(Z{6Fkj#RmJB6zFMN1){A1Y1z*XV&J-lA6e@F;T{GJS zP-;0Z56$6Ev`1U>A9+v}aE5CPl<107;Zn{hNAqxzlBRl^YB93c}YEGQCT9NHOP zB<0Rnp-+$SN^PAbv<)5MaQQqsu7lf#7i74dDDv5mbV|Rv!$+uD9i?x*d@Fs*$cXDZ$f!91a9`iz3~VRyI_@a*&EBXwjYq~S0lH)< zv~g3NKGY{yO2Dl;508on9($nb$QMI8?i4vna7`DaKl3RPOzIqu)%bsy9JQvjO)06+jqL_t(Ns}jM-=QcJ{2T9!oXxsGmP2yn< zdc0EeA2Ka$1qnXI_M8&scijdT$#C(G4r;22T9`oe9*N{j)T50Qh)#vNLDoVSoC3II z?VJuzHIb+o+yV?b`f{ccb%poQxe7DDWhlvV<*i*|Qea;;SggZ|r7_rSCpWgr5Q}sb zDj^8qjiHfQy!?sv=;4Q}C(9>a!Rrcs5ekAIM$VeP47ARxQb%^JZ*V>A9BGt^rejiWDo=A*{ECR>2T%B&4*Ydt_<60^q z)wKO4dX9VyTR6|oAmjjhsZApXjD1#@wgC{tmuW~RG#-_*$3qvuW9-Wzu4k&k@ay^JXN&q^c~EOD7de2?)`eq5GACdG>_OI4>2IBfDg|cLU?XWCMS%;?h=8f z9GU#cFqy_Y&*D(rH^DxdLxXKp<`&Bc_`aScz+`-??i@=5h+gTG>HE^w@Wqs|W3|RD zJ=S+Ap0VQFFW$goZ>Qb&@29~J-%6yNq^&>u?R529-!2vf3H|GMlU^9Ht1^w%ixD8I zK}EStjC>zw+TsG+Gi;;;u;&H1I98}Vjutoz(aS*wcR8k%!^=`7IgqKejJI+DAn#N1 z*pOvAZy}+@8@sd4rx##I2y0eb=)*M2~5H6+eGX?rkq>1chdM2 z+lAM(nfXy>To6(qNdY{m!eM<<7dxn`Qi4zmK5nJ-m|*l32HG9Ekv^^^UnJB)Bh3x| zO_7MIc4LEjhB{F3MpwR_2ocvXiKGZXLq7m#w!<=Q?g6j?+CUDOzGRAw64$s^1&O%> zf3LAZjB%;sIgSP@Q>|e@)MqrztAno-B=3x41K&?bKHCyyZLpsE#k|WBP7LP&ni(tj z4gTFD?(e4l-+PpfZr)1O4uLzZc-J^@VAGtN;i(R$*DZ(3N#PiI+E(gNGdN>?P9AEb zl{)?t80_-Fv!izlG=Zn8iot9EDdQ`6HLmz(z;Vh)qc=n|XSKDegdhwhL@F(f)y^^) zs^c&sT|>{N)q#9;SLhq{a#=@UPc2}G$Jn#Snd5$qXu3hxQ;cqBtQbrb^EFhj`Er)@DQqJ(7*F4^E8JTVsN(%Taxn9E?gEas;NpQm4c;raC1#+7u3IW6t~ z;_oqPFiW@o{%|svuE-`JUs$Lp%j~omrgWw$gaR z0s<%!?5Ku~4ACs$XsqqEetI&d${J@e+u``^fOCjP?4`&MA!-GZz@*As)GUf}~M}0NW_j7+OU8A*O^Eq=wD4D;#vSu703UFi@kkLij|9(m+CP zUcVZkGI?!I8&!W}f}t9_G1v|`)VnQcbeplq$H&kI26pJd6X+FyLW)hML2Gzb^VXXGb3oJ));) z%=9SPYfg~TK#~lIHX}P==n2Cn4q4FKGXY?!Oo`6IefBVE;792tKxDRdfNx)LU^+xL zs*r9H*T@84!YDYEl71IpG*Qr3&SD?Yi^9gjJG94}4r9*@gBRjChNu;wk?(aBL;aDi z3{wc!$Ghj;1JUSlWjawvSAgg1Im*;)lekp~UKqF1VTnWTk2!r|@7Yt4jA6{!GTK2M zcX&0(;NgC{^XLiQ+fpnzrk7Pks>G_$bcP5zB8}IS(EN7PM9;B`3M+!VJcnbH2w*q{ zXbZZTR4532oN5u8&>76ckh%g`$rYIdR9pe+W=ayj02IKoV{y!^5!Lh>VT~13ZHLba z`EW|02?$XO6iWs`CFrRaIcBYh0k8b6p*}01R9YS5wZ8ny%jv@h zPt((jx6{)uQXfrLI-!$4c}Oh~2-+1kbi(?V{W1g0=xIf=y0^_DslvsT?VO_~<7KFm zNKHjH>CTSqYdWNZU<%R9{b5%KK8Rz?N>!rtaXrs-6YhAX#{{R6CbA`9j+;`_u{Gmr z4pNUXHuYMU$z|8rHZbb&4?>&g4MLooj$;s0AixRAbc$4kEP&7NyL*g9 z)={lP*PpzAJZ*SKl#6zWE`qvC+Qw0X-_i;)mYPAskPh+3%ac*hM= zEF=dWshpqEDa=5XmMArtqj&*Kd_{dZQP7)N=%p={68ZiaDh7BA!hKi`0lQG1NfL9_`@7%i|s)BGt z^d`+q4Kl~bIz)7hz$ZUq}j zAZnbtKDt0O@y|_TaBGE$4O~Cu%~D4fM2t~UYsS$izerldYBGN&bF3dFgZv+918TFm2+^tk6aWV5@UpW<-xwN@@#*?P8gN z9x14e70GknYnSD?F{WjPVa6jQs2(I}vo6K~CxCrMtjz>F9i0;2nj2PBdYO$73##cz zC=KZ%JRqJkkFqR}tC8+yg1shS+6e=coX}g=3$$K#c2#^W90tJ3+N8d8yj8;!rA~%I zoT;>mP37B9<0VbRo=5Rk)B%g*5&=Le9X#9%&)766`ClV|R%JeB13R@tzFQept~5S4 z*+=qIC*o-*d&O(^u*#8$EEqx!UG@2h_2uzwRYOQ52;qB*LnL#7A&3q}njYFQ%n$DI zR|DT5ps6&6B_hd4pbY|x2Slb#0CQPE0pYTX%LEm*$0U*?^+wK7>f}vb!NbD_!G*m> zJn6Y>FOhoEN&CC^!dS0BaL3rDfYbrhQ{qdjcySJ*s=A%0=un0s5R(%FT+~hC3nm+= zv4?w4hBUE?h8es|o>Gg(U)pT+fYBjvkO84XL6Hgt~C81vnp}2m7+iWS5-_ z$Wh-lSf)M^U02mneyq?3os1P}e}*jzn3PH`<>1PEP?(PrMk&QXB%`_Hh+T;v=L>ta zP=6sUwXLkDl8RfR21w@kjqPeg-Jv7t?J|$*m_?V%pq7$ihb?Bh2k{XjnUd3W5BS2|y zHm#(MG3L$MP>NwELj;pxl%2}vYhO50zef73#;EZY6X{0I4>Y3^sZ!?w#)Py56p8f< zqyP<#K;NYu(V{WSyf$_=WhopA-($GQ)C>o48%RHi97%)NK*uEUIX1Zo03~=to1we8 z;bVfhB|N)mC}PUx3Ka>EK7itb3sqz1DVUSio<479msPn2J3I5FiG6X2@rM-HV z6ZMtGkVQhsZ~%0{@wRyBdw@}Ct+DK|jb?>5b-RI(o}r84 zw%}m}gv%d0iD8%;0o=&|2@4NL(10fY2IMRHW@$?x^oUc5#owgwy5BPN2 zKSzj|A%Qmx0jh^AhVLA;M%79HEr$jc(8R zf(5Eg;P2qd%Uq?EhJ*~#nANWG-Y|%{-o-l<=K}~crE&2L#JT{MoD%+sSH5j+Z2)vb z5E2yfQMW3YkM$ubHh49>%QG5ERF(UrwsuNk_xT$o&GP|;y^f9(@&^Js^q?xLQ75ww zoK>XME~64lb$TljM2W1l@SQkyBFau>*TS#Rjk= zv>lvuQpPMgqFlL!=aWFD zXsZ+1W@v#%Jl=gmo)%+Q7^15yES-qquH7{n^CD}!jF}7J(;$K1rw-w?DP+F-zeVQ2 z2;;m6YuH2R#awRLvOI=eFzV;Hx^5EE{3j)+2D?3Qb)CU+y1q{_BoX!oW!G?j9Y&Z; zNt@=*V3y@mm7+$%TZyKKE@sB4hEPaElCjUImt%*H>SN$}Wg#^fnO2$65lb_DHQmCv>a%m5c44?7A~D09kmA`nVheoXNJ0ia~efViOrLl1g` zN^VC%q=7b8c)-*}31#A70a||Y&km^B;Sx>)PYtQG(Ec-CXkJ`{7eSQ~tx-QKCZ(u{ zGt!-m(H_#-$*re{VvZOuBsr01`^sMz_3aX`bEH7N?J}->%4<$;BxhwoDtKg*Lcm~4 z+5tzbRVst4%Y^mUeFHhfT*F9n;-|oJ&7^zx?nRF@7Nq{Ze&q@-H9`_w%A~OC1RqVl z_n|h`XuK-W2@r}%b#9ErE2%o`NTot#2Vs>eQ9W;^GH%>2C=JLC=s~9#?HcliGMvjO zTvWflgU^{dMzRHH3&YWCByyza2s#KG-keNg?euWZDZvz9XYd-Yi52&BLI4Kc+tNZR znyx&+^E5!(XYks%Sd-94jm0obQjD@Nsx`>1y6tfG^BfRXS$U;QCoG1%=+{U9B_$6F z69btOcAXO`Vrm(Hwxd~)bPb6Gw*-xzpq)S|U^`=KzU_=o%WoPSVI9hH3rzs9q=U86 zrs8&27DR=7l&=cbAoqJn zavF*vyhB3=0W5rEas?vb8YBD=Mlk3l2^j4~1i9o3fE#2bb`KGhhH^%=f*K;kpcI?I zR3~Ga7}tat#yWWJ3_mVnjIub6EJJoPA=88z}0mZ)FV7p!zRYvXtnx} zCsH5lz`ezq57gGEwvk5~PIUkSJssc(edpuhM7cjw)zE z#0o|Vge;s#?b2@9REB=x5yMX@bj~6wW8P1=x`mf$S`S{kId0NVM`(k*JYVV3C4M!b z%{5*rcmK(8`uJdvbxmm8b_Dsjls+`i2I@Yp4v3OZ5mB#TVaJ z#Y(ywugENdlj?4y1_V+!p z7OJz(=L{$xBB7S>#yOlmxc4xfGDB;#+)f9~Oh094%C+9r30I=&|XjN*Hfs!)RIiA)(pF6l8s zJi!=T=NhZw{e^vm{Q}c^B)gsSdFhoK7|c#BQi|#TSf&f((-W;5z_bxXJq0yoqb96x z#on%@001%8XE!D`<08CMp3j+Jf-12Ls0J|V2%9e6yk%Qx$0;7;0cpQoQk%P|cWoI* z|8FpF@#Ym{Zy4Lq!*vi$9@GOXQU4*to={H;#@0a-APscOU9(+HVfzKf1odm(lrpiF zmC}~;VP{D>`9WKxp=ySUqSM$#rVve4D2Rep{uNbRD=h_Ev^@&29NG&#d}WETtCiIq zymwSNJaW>p?~8T4gcKU_!o+3fLN2vd(}$luPCxkU!^nUzN%NSQPL97Cy>~@F zJC?_zCZV%Yh1Mqr+EiOqAt0|PE{t-2vJXY9qi;?yx5zkF+(&U-i0GD>0uC>U%Gp30 zt}G7Fu&W^+`%q6X2^LXMJd5+FOv^buxKB`SmBy2Ej}$Q`WujYLPK8@cPYWA_dyCi@ zpPoB zsLco!RB5~Qc2;%|dt~G|8lI!m&sLDG6`UJWZ6xyyDe4;PWkwq6btEEViN?~%lomag zQi&@u(u>G79g)rxyn*I1C@pQhJm?8s14+`4H zvG?lf`FcBfTO$Xo1L)6?FzT&%pW-OC5FqYfYPwj$m(_Krr7C(i5 z0c{VhhP`J^RLyD+X=9j5+yH7$Qh{(CX_4S@Q_mL0p`a;xh{On{0VI0`Wk!RlfYHJ{ z6vnzZ@B)sT*KRJBjSndjWfws966zAq^cj}1yZa~%N8ct@lz$0k8Xx5YDmT?hJVX9) zucd@RALjrO$HRt;<1$5QHBNgNu05pKDd$(|nT7-etRT1U655<@4e_GG!$=4!TMA~< z4UxPqJFR*%^3DbmoqQ|uVj4XK#gKKeIh!xz%@QpLv$ znJB}-emi6=0nTh}0V9a?NF_qh+VG3Cu%YtJeLfUTTWK%AqAx&TJ9xnxk82wmz_v~l zNq)KjsXXjq$Ltf?eeo3>3jS&5*!o}=R~XfofB_(m+bb8UT|ARAwe#Y+mKt?~ zX4p~(M+S3oASmM;DdzB084po4ZyPHZwIzsHVjQgwvD<`Vw2R<0b)XjpV+%lAh5=qB zozZL4T}&p74rJZbTBeLbxY- za0Xp8z{*omdjPG7N=No4gtEOw+J%jQC^n8`N<&3$*hCQAMi)kD!E{S0E@V~-a~n0@ zH`aM$I(71CN~HqKfDa<_KfVQ(#Dpg_jK8$fCtJ4FvyR1m#HkeF5cC-LSqbfD3_(W> zMAs^3*w_xq09vGuBLEE~Qk5K~h%5^`Ey!Gt`5ShU>)*f4C2FaZKP#NG`Tbf9dq}lf$K2D$QAEeJ%3Y~Y( zrX5zCR+8Q~pTIf$SUd~mSKS^(GaHhA+?*k0C2 z6(tEIT=7gLlF?}wE{mu+haFn6ZsGD$52vj8+wm)xu{=8Mk~6=V&KN{J!G3bk^bA04 z@GJ>ryv_wqw96!%FCQ|zU`uE&2;iCc-87Zn2-v8v?-mRRjU=N95iT&p*3PL5@3C<8 zWh#UGK^uS(k##*v>Ksxnn#FUuuIP}3^PKr>G1R1nj0Uex%&d}e75r@;6 z(M$8X05kV$`>5{xxcuYegS#;^36q$5P17!m!u;g3d+8&FYuXG;ZIR)yMg1<2+>T7R zS)OCT0s5$j^^hl=*1#H zKWVN%$XaQ7<{|uzN;!K&*17DA)s#C&w?-;sE zW}Y0^DjM`S+jy^i+Iqssf?%}MjydjX$~Q>^k_YnC+%7wi4wdh%cDTv$%jk8|S|0FK z@QFu>li-+NnhjK3F&wq<;p%U1k?8`A3JSgud-SM4C0B%M^CEkS*DId*Dabr$FLJZT zdrX5j)SGBx1EBiANL|Ltg)(k3LK;zKFIw^jQ>GHIJ}D)QZZyujyQ zVblvrqxA$0#n4PD2p0f2@)(;4Psr0S3rQd~RNTsT7u)*EOC&tqTOPXo2MJjFFd7n}8>T&0r1Anlg`J=e&T@GRLkInaRa z!NFPTke_~)F;1Es?Najil5E#ka7m*BlG4`9^sEvb#HcL|SZ;FvRO2I3eB;$>Fb6Wh zNF(<=8z)b-Letr(o!p}17?gDLa15l=Rt;nQtReTg6p#b*G>zkekIn$oWO@f9S+hYf zDnX4y8CR1(LP-$NV9MnSa6tt+1LbMs@rDfuD_PZy5+KfLL?e;{fU17$s?lxC$!rWu zwz3ATJtmO^j?%OMsWuZsUPx_&!=}nue1MBR_k#rSw>ZaTv5_@QZ7zWzaQrR7{Dhd} zw+**ahP^x<1E^G9??8bl7(Jo1i`WYL+FKqkbTqw@vL!~=+1?^3EW>rToSwAqdv7Si z=UVGxPF+FVAh2DD8zX~~<_R);d|ZrMZ#%TV+{#FfjjL_4Jc&agh3t{Wh$7}i#JS0u z1TXRWS%;?j1WcV2am+hnc3GW|`R~MWkRcG-SHH~&np(E&lWN?%BB3vaqy_ZoOAwec z10$u9J=jo3kY2CLDndsGk7I#a-1(SJ~ROBGDcXe zzHA$zEzhg-R(U0wwvyA_T<%ixX+rqzM?Tn26A0Yor~A^GCPEVyAtvrtr0sCOQjRmK z!yzFW$8ISk$SnOYcla*anx$4Dxq?N^qh#KkPj@&ZjAUJv%Ns8F_u623j17%}S-{c9*gZWtOxJGS4v+uj%F|Oj~8s|ptoxmCU5LK^k6=}B3f*jv_ z;=xCIseOeoD4H=pp~5(VF&op7|05f@a&Az$UX-I z!uwPc$yIrvhiQj5SIadW%sw457r6htN2 z8#ouzi-V#5Jm7xFHo@jTmEuN$;+C(sbbCm+!Yr8>Dl(cvpXPqWDii@Qlqp#JM_Cf% zj3p5(WGQZLy50fLp{!7WfYPiArP>@(?ePGll7QduGaYq=!4GiB{dYoe$x1U2r@et^`{v0dbX^{bvwd*%g zQBy`1K4Ntk*7YJQ_6Dg(wn0VWDl#rlDP06aNPnIyxo1i|I)eiSq*qTWyf%nWjYSo82B6T+mMMu9=SozED;)3gzK=fqIQ{wm@#nn7>eck_-3RG8 zUXA8V=SlCFn2qX6>561Fbs0uQ8n07T@bGHnksC^wkoP~tfcGWk#*R98o=rTGwBF9X!j6c8!(OWMfgW|gEDkhi-A5hRlmTNw_H~x zt!$)oYhv+2NW zChxJnl{1(rdl`lYpf9f}`lq&!&{CaPCo3gGyq}pph^Q8JiHpj8@X@{Wum0!%jk-ML zeS25a&&ZHri&u7PRN6rh&kl znM_7Wtk2h&y%eVJaWA+PB74+4d zqVvgj4iF%v2S)w4h=PQhC#?+s3xIgsa{0u#QlOpQ#RCLR^la`E1QNjM;7X9Nt)fDd z$2oVsUOUP}I^$KFTV|yeFB)?4s?V-Bi1>1`vuVu7_uV=Um$b2Y;6k|S>i-CV1YP~Z zspyG3S4l&am70axrsu*O32$o5{ksp-|M)-rtMtxK|G#wY`P)&a9vCuBH>424%S6OB6;Rm0kGgjR@#)#QtA>Gg4{~Vv4^-ue(N5yk)<8*v}XE!~(zsr!+ zypo2*x?+wc%+*FJLO(DRsb-w3 z%9MDek@7{8B9`0Kp+F@{P!k7LgN_Ik9nJD+J#_SKt`?~nR0c%&!*XC`XcARw&r{E2?AqQf$zFS9?JAOGMR$>uNJ^x51#ckkHxgt%pKqT7GO0b} z55My}XQrpSr>CcK$O4oayJtWfV#1p(kSV5+Iz2-dO<5gNpW`YHO1~_^3>-O=7pR~`< zoM~_V=54eVdoLV20ZmpK^Tw3*f6kq6FS7^KDZ*bo8RH>w;cC-;)6?yXU;SPCVB=aF zA!K(a`){f>rr6)=5O_||02VoP|y`e-(hhAD5ZSuLYWWEUg#P-4v zcOYOMdDP8L=iYiPZ$F&ll}$3`P<~b&DWC|gMOmNey#&z}mZ~L>c=D9zqQ$6Ffl%#Q zm?I|{9gAP}1S9OmqNc3?9>tr^jbM1iw;ZwCFIz^WdgI;7_jeEimXVe2XX-9~x-8t! zbeu31djJ8GdLLASc6oF!u96=T<3x~}mME4FvJ91Z-Oq#a`vC=Nz_h_BqzE#cCK zkuudB8Hq=L;4M<&DA1qNKpX?BuSgRpb}nO-dU3GDz? zTS>m~LMZQKpkkWJ6Dm3EyERx{>7p?DTV)G-(t>sVWe-sj4;fP8TpQatJLl!}fak@S z$0>~4gvUszo6qaB*^8D?Jx64NG39_l1RHpUY^>skazLN~uH8{SFH(VIm#Qiw1uE>oM^duw0TUT{kr{bl_k;T=3P{=_xGYnm?=sX2h)Sa+1?@h5hr3X9q) z4H{whol{YoA*tj5S8%8RA<+lh9q+}Lc9ivqSJ+}nJ+831<4tx36f|k!Zk|Vw6ed22 zssInQcrUy|Y8MSRi6mJBDV4;%Eg%3WAc1HS)ZN215TaGm4{x#|MeU{nJqU?}IMPV$ zH!!?6jGE9;?ge2b>xovd@PBk4=EKqdlmhQ)^%w^g_61zWH(??Q%zz69wo4G5&L&RZ#xMnBJ`wA z#7E)+-k!~S`2kclnE+8d$_+||3MaRW_1pehqZkk*(E8^a03s(Chpx69umq5;9eriw zBurK)Mp=@dMHHklpUkP@s0A~^!Pm60F^{GiX$Od85Hi?6Al)27s&mwqPUgI+7U6G3 z`3Rx-X{+fi&gN^RLqDWp@Ty(G=zjN|ciV5?c(Yx(c#*D;wTIy5iDb3kgDwqlqa1-| zu>@Mn)@ZpWX|?ZsaiM+xxo0!WKj7&QRKm=m!|mk$qwVWE7qGwB_J@_+yU?0@(QK0} z`7*4=J>7*Tp&1p^7aK-$fUf++G2-_b0j{qzUF0${w07d}9dRaTkh~b%sSAV%F-WEB z0?@H5Kcvs^2Zm9zY>OJenC?sv>?mZ2kK#nKbe;OJXvhkw%!gj>H`O~}st)aEB+QxHAi^(D8%>3RDY;iyR6~WK)>*bCqDJSiuE>av@9swkuSqI)Sn!CfAFWdaS>klF=dP*|tY07qsxaSUNzXWytnHX*TF zibhkLkluN^1m{^7(r6<_NFOo@PAm?*RO`!Ws#NW^K}3RUA?c=+2rCp zBh;D>(dK9}-AIn;9Pz1K#7`{~_XW79I^1J^4;Krn}5n=SD&6WRI;O1 z6JK5mG@}j$3&xAInbU%(1l4(YDxd^FRw}Q#moyOYn+kAyM58DTFVTK-S}4h6Ea{Tm z^rVfg#!Jt4aU-t-Gc$!4@U*c!_G&Tl_z zul?m~?aJkgbXj}aNp_ku492~)v`<{AY2YjP)NkXl%A)!3jtfBMd`w^`uodtUcyi= zeCL)*){}Uniues*1f+drHzoqc@3`6m)rCf=Bh3URAT@~h**paJ;2Z`DL&MP7^k^$2 zIJl4|LMSqPBxD&sl76d6G=TORB2z>H%ptKF#nzU^65&QMqRKWs6^Rq`=IrhE&O0Bp zU%vik`-D{_(`5S7_)SI;sC55AMrJNkIb}})?aQDSI@P(*iFkGynrX`5#`t*+$T!+!5IFwJqM=I z;v7~mx6mFqZM6s658oE(qdBNfx+q6z+Jy3Yi?}K)TmCw_v`$>S;e4x_M&sHg_S!Ix z`Vs_4J{c`-DlBPrbnkSMj!r{hJg~sQPB!u2HH3=-yr(|I19-7h;Xki{Xp_MkIVu%W(hug`sg8qoGrkaiW$JhJNn!+#COdQiF%KjgS*M&{uBzq zFcA`CxKBn{hQ7|k^b!Mstqpdw8K zygn!+WILsu)k2!&G6=S%QADVu$BKsx&}Rh75-qf(CQr760)TZK<)9EkaD*7`D4!FC zgoFxH?z>FSQMC~vYnTu9R37o^u7U+!U1Lz&sFjH`XI>>|_}^!v6_D->Xn zRE#a*T6lnR@BWz*rW7lnnIr|cnkZcuX%w`)=iaz01#pt#yBb0UdWnPSSGApBuoKFa zzl7P69ri8}v;O99-f2JnA3tgHcdsH;6Ip<<$_UeVY(YUqcr&`1b#PV}TyG#uJD@+3oW5+GuUu>ImtW*K_T`c(;BeG%t#vuf> z8bUUKg%?>#&Dn{|4%ylNYY?GoY#k1Rc?a+0DR~?@JNaDubHO{7xVe`oy&akfJY)`C znMb@ttI;poVEa?jb`YlHR!XUB1Z9iOIMy%^mI!lMffs5Wqa|QP_+jDE`qCXOC&`qn zKqEYk`nA(kBieU%i)uQy_l*o#P$vP~ys~WT$p$IYSXp*$}v)btjp9ktBTY?-O1iYHhpH3i>3)0w%6 z265jiw_H@PeQwmm<*%=|pa1L^?Jxf9&)d{~7t9Xe3nOI3c}E!OoK`&0Fz6tzf%5sF zxhPMDWY|qn+8BnW*o8P+ePjcIxegxWPkcUTuL<6rzdqX*38XtPPQ&8};myl;7}|Sg zBH=i6Q8ohYpu|oA+l@gsIYn&~$Lav1(c!(=o#cC@0Kp@4Hnb{KjA%Vj01YVaDI0uH zGH6(O3ex&dUXExC^DQ6cl{Cgh;!qCZGp)~DM0$^zf>k8bSbgVP?R~OMr}^QdK%y)H zx$YI#^bVn&bnwrq9|s|Ej)HFnZe95bPI|5U24wf!pW?ACSfjK?FW}~{2L^b`rVKL_ z_6dPS(v@EORSilIk9^tkL5>fv0w?O3-`Rf(1f|K**CO53{sVQat})?GJ6O4T?a58~ zAkD{R^a{IM{TN#O8J_bW{mD5gp(7*g)CW^HX}z{s zTdC(*tHt;ewIB6ONoua`drB{+7Y$>K-flBVew(g4$ICGpy}@yD>oksxavcdlqq6eI zFju;dEw^7pYYwpi?*J|YT-nAwhi3!eswO~1DbolQ5e@WJJWc3t!hdN{?uVh^c)FHb z3b<92czdXl-6OZrI4K$)8cw{-s^&!|@z*G07k1n(N0}tdCT!snoP14_G#Ja!Fk&0~;W*5*-|U7VTJ z%sLp9wZvYDIF%KN^(8N?L@`$Y4IB$LJn?j{Wp>~5xzjT;Rwj9wzl=W0f$@(9a6w=r zDbe@lR`8m?)&A^9|BGJXj!tj(BW1@L1aFPjna$dO?Qq@QQtWo!NJOEOiE1rJjoPTK1unH!Kd(nZEaH%V7u{RN5Pw~o--AX;k0Z+)v76TBqkHTtp=l`-Ahi-3R zggH)ov(_nMBzR$_g{i3P{na zD+rTO7YhjUT{fI0Sxyi$eqD#R_}9{~!ojZJh7e;t0)V!&Cy^igmVV0+kmz>Yi9pJ) z6wuXgzCg?}&F81I6=m{IEy`SBsnT*{QUa;%KCe923N()tO!-;8nDFdos~faj`Dq0CJ~ zo@F$=bT^pr9V|2czEw`le*EV3V0HAeEsEf}~m@Qfpycy`c6ZGZETAAeNbv=dt--u zZl$R^KQo871z`1gw}!i6#zgRd1Y1h!+Y1W%Q&#o)?8NnI8yGASB^rTg2 z6<2B;2*98$r%19tyJY#yzW_^^i}189NN;&=Nv?A?8Hm$|oFwE#Boru-a8E0%##+=s zzxdUS_S!H0roHjnYcP_j4_4wVG0YbS&uVtsM;xtGHB_`zDvk10&45w>t*~K-)M89o zVTLt^(X2rF+h|q4o$kpxO6V>hoL!~@04)s9+)mtM)bz5uKf^=Lw{br%5B1g-aSBHP zhe71&x^?-5P-TBAk&+7rp2NZsJoc`LHZR;|w7H(`lD6Epiv$X|@#b65>BMv5Tl&4~%389YtH^K;xXz%I}k5SxYzK7=8ic4xhx%(@aQYgBK7Jhh%| zFwSDQd!OtQb@QmTykbho7_MHJqEw*UGIH-r?uYDmtKCr;(3D(@bq@o*>B|`0;W7m% zP0B@#UPo3CoYtFKfDo8vUK!xXYkd`GCSKeX)U}5)x$sn{q%g=FVXX27+ovC&YybU^ zf80L(;4St{V4EPcoPIA2bhm9(xD*NvbGs7ng+XzJlQ%x%@|^~7wgTsOrc1!latr^W z!EQ6&Zt%4td}rLZ%0oeo@ek8wlv5b)?TME&6`FZRaI;am1WR{~5v61VhG_QHPVlU zD#xR(MP@2ws#4N1?V)h)Vb08vq+!XaOb~T%beZ<%Z+_eU%YXc14D!oNViO02AX>3& z>?xpNNr?7OFH~ufs!X^MO$8Hl=s96)`h?YjpY68ZqXE!%F;20ob%?6j9yzRqQ(5B( zEbSM0QLV4m5w5U`DMF2Kd6dWyjm-wKlZxA{vKI z5c|ySkk;sG+~{l#*NT2DXTTgFJVaAri14uj;UBahZrEb14Pd}<$N4+l6T69%--W&E z>g8SZEDF^y4I&c4FaLtAj!nRY8FZhi`I%E5ZmD0VK*V^NI59_6>HQ6pVs zMcX!_s&sn5{@&FeB2GO-11eO;)$hhHWm;__@JtfJ zbT_C_Q|U=pGfIqb?Yk9#R2B@X%XgGRI-e`dmTgz*h{-uDE7}z<1D@MV^ngO5F>P1v zWV&(Qf^%>p(lWyg8i9;$cLE?u57%;GuD8 zMta(?H4UP*Wj=Y;Ug9m2@()~L0K$ye+JL&}pum3xNlivqtO)?!x<?~s1!UJYobSa=|kNDrn5zhh<}|L8D==`88gBXncBie0Jd;j0-B6>R)#_# zEGx*$ox5{~%9Rl91lH5RTp4h0Zn^!%|NL3|qksLc+KZgOyt%=11i?tlRa^=DXA_gz;XI#L^-? zMmHlIVfYDTh_S&K4d5Z1TZsq&g7hok;Nr;3Za<=EWkGLdFvyz~&>n!r(yBp1n4Q~m zgWe^!%v@o!eSL-5WP^&=uBj%3281Zr2e^CjGTO;WdzZRtRD1gEPIxR6$F!hc* zN{{^5bOn?;krHmZ(P%0t^xF{1gb{Q3SW&bJGw;Z=3N7x3rMM{{awZL~<9V;Cgl~QK zSKsh$Q1mXP8q3qF5l3+V(D+o7i$r`bY2h`0XhCW9A_b$>7HT8^oe=Yh001+ONkl2C_EsfW0EpUs7kmb$Y;{17JTKqFSH;2@DJPVTXXHtfATZ-K(K`&cvc|v zWU&Fb(|LeDpDqqcyR3Gy;T@G$JMAIpYL~?|9K!H|E~wlaVNR8cfLVarFX2Qn1& z{>Jb%y51nTP>vB06^CvYY@I6H*h^jS5qXno(3=h2Fwm{%TC;$Qf!`iVut7exbavJu zz4dD&cjO({4Ir#<8?pKOOZzMJ1$DR?eHW^nIJ?GKL!Nd;1v zJE+tG3@VfYEW%GzB|wC!n?YB?Zo*0IdL+VSUO)Tk&)e&N^mb@i~*3+*{(<N=GPXb_D4Vs83n>WEIX#R3|1gTuCW(QqX&4&HJIVNEPx6G0fDmm2)m9-GsJ2OQ-+Hi@(tE!U8VG8J^(nyeg+J;%E zifO4%kTjp8Ku3k;yQ z?WOPju)X$Izl5or6gG7vaLtopJV^PkR;-ACMA`m=P8cTB6kPSDLvF)H#u$EIxqPkN zzCD)^<77~1!X#LqRtRJT03lUV`_A)tT*5Dd)B^KMi5CPB3ED(<-#N zjC*=S4UWJMt5)<}OCWF5I9M-qf2$bm3KsjwV_Mut&}_)@VWBAoSO#VltkVVA^{u1X ztcNk&6WUXrHMk3-T|3V~jMG8s&cRtlK*14oh09gf(ihtj)5CpM6?At@=8LolF<4o} zY9ps~=>6D2lVkW8AUt9_%eae3!)rj=Llw^>FAyllq}6}r{wXuX_tx8x^FJF4E*H=bcL$T7D&SPUX?JEUJei|9# z31};5GwL%&^(Gq1ke6&vM7~KTviCAYmG~$%g54NeO`Vjk$F7iuV1o)V*s`wjv2wN3 z2RwlT-lzd}Er2%VB3wvO23eGQpI*s9!6w>j9&NR>yZ|(9KFtP4gT-@sRGMC4EBTOp zDidvPFU!q0vXi|V9HxiIWH6Ig@fZZjXoE2P)B}dR3`g;jIALk@X%{Grv0*TjO{36G z69iX=xEiihys_&qy!dS@#Z54_+Hc=}H}E`)4keM%lL8eaK&QHDe)2EclxN=e_MNRU zWg~Hp9xq?I+&(*fCdb`LbQol17HMGs`YFFD1&;U;cNJG}`QnbgG=|WU92AUbc8Cw9j zYD2q+1)?h57kzg2Zu{Fe-fH`aadO&1t!df_frcP3qK&ZWgs)~)KBBp}lZcX+Vz7jH zT-vVKbv3tU<4E^O-Z(5}16)=xg{?ruCIat*-qBAvM#Wycaig923bzZZwvVxK+tefd zQRe48@#i+M6@5;!2={^lxoqe(noBo^{wli`r^wc!eHDJV?Ko|fk{t!>*CIXT8-?oT zCA;wFxz00NoKuz!#90FCC-#!K^YIerR4nOqx++Z8k#s2)ng68ztTU2C37EqZMToH_rkNsISO|VduK8HXAw!ZwRU)pUE^Vs zIy|i$mrgw(0zrqZPE8%88stk%9@};5ic#UXW6m;uE%S^cOnYb)qwrUUr?FJE{Svbc z)JZi?1q+(PcNztB24{#=(;2GdURkL>l!eb#g&Z@id{PpWs$yGD{8%};w z(Uv4ML>nX&vLey~(hS6l|B6X2zLFlKWrmD5Nt!1%hb=G5#C^o`>aO_)hfdUZZpBzu z3AL>;+RW$Bw87-_7hhf^ri>FBFbVcd?rH~E24*Ak#QI^coFp&i{xP`wO_bajmO$fJF%7Tq8u{2ud;Tbnq+sVAR5d8z5;g}f=wAV@SS ze`o6>`D6xPa^sf@gfQ|>>UgNv)$9ssj6i>Zjb3H7j^Px#Yy_nLYZ$B3)359bMIcd{ zXd46Ttf<`>o=z<&kRoC}pDV;N-M!cE-oDLKFA611)~1ohd?f(n?GTR8a4($xDu0T? z0z*53eP60vYA9EDT?UmQ#dJUl?>wOO)t(n>x;OP)iz#XD=_u|E}x%dli6L^CzdTf^^x~f80nnw9?2+> zEeA;ERgs)DTm-^?R6!c-CYr@nlznbcrGo9itL!Bkjm~0mg3kz^yu8n#W|1XpON)2N zTS_85SnAU}k8!j7QZ!Ohb*RQthyW^=!!w1~#){=dLRz}-BmJ}#5lm|)l^eaL73$K3 zo??3X8H`K9KM*Vpz=DsxK><$VXqekQ6Ef1pj)NR&Jg zXHA!d4USD_f3g8~iPqhqmLqX+2`@WdkuiDXi##;Hnl<&qz1aD;@)mz}#F#ut`7(V! zz-7=NDm@!dkRnlu1n^hI!d$4dTeFZA?h9{c`ZwZ|(2LG1x=XrROQf9i$$@|tgR#a} z&9k4>9?rvyc7g#0wUHVGY=PY6hY!5KQ2c%F3(C!F1yE*NQZJOG(_1V}Ix)Q}ZbN}qg^PmiJE9Tj=IDRok0M}!4c!<`G7|P+ z0tgQ;s<^EYaoEYbfcnKBVWdA}JnfAA8qN|8bi} z?nCoglG9|h656+6qs8+|;{5PWS?r};sV}DHCTViUGXV7@^O7h}SK2r-(v*!#G_T`7K|wivL^yfVvF(xsB}jhWq%PsB~^gf=ZUtrpXg- zZJGQkW<`8V$qS!X9#k85!sA&dTw+j~jWpmW9+pLt?Moh*K5Xn>_`1>-?=0VwO0Tdf zzaznC*%Ex;YMshB@#ESA>nu!=Bs+w0wb%pn0b)gwW`+$TD{FW#zM) zSzM(U_~k|@n$tVbcVrGwy1+%#N%O{*vy4z(nOi5E=|%~ve2Z2uUZ{y;+E7>ig8@)i zav(p|rV&_ZcL1dOLk1bQrch~8;clZMJD_R7A}%A5ij3X>sX*~S*kN!laQ?P+>p0B{ zX9UGf#k3Db3FqjgJC$qqE`ofhUSKlZrPVI7KtUISufi4?k&09-I!zdX@VOOQFsxh! z(-v%{*tMjaflwN^YzW@MwC;spm!%hj#itqy2_hDyDZGy;lF|1zGEIZrlT!Wwf#2dJ z41V~#`*<&GN7c4$Ltd=xX9uR)wFdfiY+^X!P>(is-q2{*6*RcMt6jvf8Nw~5&M`V! zt+2ZUPTOS!O=g@GAf25_!z-5x_vF#n6$dt0dj6uCPVc%jZD875Ti|HD+gE|a2$lQ} zuEe*rbNAiJLFkj%PzUYs*REWmyQ=UdxDRt+gVa`* z<5hy_jqI^o>xHTWFo^(aa`7~wA;${WZRQ8V&%=+}%oIEEFcOT5M^?kXA$&=33ow;) zcMb2iT7XilC^E)wBX9^IH*^WE1oys6qMj^QTCkC&-zD}=D!a8nMu5EA8ra!pml3R+ zmzm01Kx10JcCF&fKMBo$DL^JVT4aum%1^m1kE=f9>W*eO^<_#IK?K8y%VLGupRb>hD)Peuun z3|4CLb`_quAa*u1lubt??Uoi3O=`EVsWx zBI)y-hZdE1`HnBq=Dc_J7V%3ZP=O#35Ed19yer3L378zvGp{{5hi}i3nm(n&GkdZZ zYQNHX(9>Aa2E+6r4+wwOvARj6I|9wf3xqN{cW^~7VW}z!HCQX&_0Q#xbz{l$GJ-F^$e%ba%t{nr zPH){i!H$eF(#*~snK=wZ>arK5fT$oV#9~ZW1^G+4lzC7R-s;f90A;zkoAz%o(ds$U z8L^OB8>mpFa#WWv?#m08+D-Pcnwr_oZ#4%HDZ@(Y3gn9){I|7>p#Lne1W`uXvS_)w z1F#_+3F#lRLAZaZL5!t!WTbfoUf-4zdZ;1!5W6zq6?#+&S7}cirKta+-%7JG3XYZP zU4A=P2V!aI0q%1I9~{#?poLah+V;iO**H{>vT4X3G`*9`I(r>)>acyp$pzAz(J=U^ zeQbmZl3lX?DTPhi6yj*lNEvjfG3Z(~#*L0}8*(-xZ*!cNc=hIWc7(>RBA+XsWP|t@ zUGiO+)_HyR&;6E0pG&9T@>HJb?A1p&bAS^-4otO4y72^M)=(YcLKVj!B?wy~i6yQY zB$`2>!jb1G@(8I*_9@|B_az~-407He#Br=b@Fs#=G$V9-( zG;y@$%4BIESsI3o$wWRkpEi^)g_rcab?KXnC?cpGOdgX);VRtS=JLxMx6(}=ncma( zPOuG>b|yRzJ{b7J&ie_AF89GO8i%}D+yVvn-5(3%NaLQ?;|@xJ?{YSG*l|?4!XQc^ zCXl(!tqm}BhEQ!%rfIT#4qTzL1f=-f&Ht*#CQib z)s%E3;teT8le{i^h#Lgq&Hh*HeV_q6xT9j>6KVouq{ELwV+r1?opezQMgSCW%aj8O z8uw_~v|a_1w1a2|Bq1_kYSUiVCS!UWn2IIi+>18Y>6@jDTtKb(Mhv-cCgb&~l}lk0Uppr+Wh~gaT9iD1+b9Dqn;kZZh9HH9gt* zt&LiZCBn$N8ihHE9cVWQ(OzUq=-I>j+o7pRw*O|f0=SOKBj^e-uy%?snrR2ZVb7qg zmk=1<>AP|bqzwQovn@UxYqvSt?#?~73%_@TzH|kjnHtj(TiImQKx`DHwdJZj5%k7$*+SutD1>%ktLR`3u)r@YWGIX=UJhYB+lJ91Dmg2A$muZJjn2-0{zV(7m6{Kr zAwswci$hn5Qn;!-zIj&_r?B{`@@1wbPwf*?T2*O$%oO?5aY+~ykjPF(Ytdv;HQ^xi zz+}?&d!DQE6)rVlEKMp!dc!%&=oY8&ZoR~^>Yp3wr{IIMGW8Rt3AbD-4b9QYaGfWSdl zX(@`0aLcn0$a8rwzu;Rw*0<)KK+8ZG_;-cnFc@wvxpCoY6J_gTwqj}h7j{FsDVh*^=a(b!Hpcb$U;7gH*Y;v zSOnln+7{O%G?ytc~eVw~S&eBBnpCU3JlGkDs_Xyo?n4XT;w!6)4nu~3#ScgH z-+Ash5ga?(O%|x!nqLMN;>O@fv~%b-muclC8cRdZQXLX2ZA!71?9i+J*kEQ3uOL{_y!4M5WeES`v{idrvHUAdrO;{?m1o)X$z}?Tr~DQeU}Ok{Rm-jP zaV*kk{FV=PooewIxiH&UE$OYY%qu?CP!v@0ut3*0dPR%+n|r%VcM244;6p>sH9`m>(b37+s|eezySu46rtEifZ6T>i{Rh6jmjp=;WEK zQycX{C4SQGB|N)eqkBh*xj%K{Xtu2S>gyYA2_B4MtoLb6-wUkwLXZVRi8Ktr4rxjh z1zDl!n5l-<9Zh-0A1X_v?6UM5Ilba;GBV1Paek6l)vdOX-R`IP)y1!wPPo=4_C1xL zI5Fv^o`fC3mEW?3mT(+!rwSOtPX+2BvNiWZ@CclKKltJ^a;8D}Z8;X7m^X3Znf&WN!dFvP zL#FX|La`G#*$GQHxgR!sfyT@8qIfmP)t zGrwVQ;>HX-{Kiv<*y(4zeRSalVLXLP2uWhg5QZNw@Ugez4rSgyR%^*znV#aJoyyoG zmB@5RNQ|Sa^uIjSzA}P9H-kpHgs2Z=0+BYh6YuBQxAWYY&)Ocm&W>zM7ef+esgbO- zl)>|A*A^=*Q}RxxQYR4#o&|GIvvO+~&LeYL2mBMBc7imPH{ADL!Y2hu>>dNDySJ-x zmMIpP<>nIzN#A#GR*YrzT1`RlnOawT;y2SxP=(jGxba&Pp|5nY+3s5L<*8kJ0r6cT z8o)tbOPc|M!g!oU>>)T*_?O@Q?}XQMy%3qw%>D1Op9*hZsZk+=o@9&jgLbv2SUR_~ zu-49A;s6FWk~0lJMCCEuy0=jC2RFXay5;cd*egz;&nPem1Xh?;Kot_1ZHuGjs&@Ik zirtjy2)ak#S-92NSDI36n9TgWrFQ=OC6*!lkqpAJ+iWOE*lh1VI`t5Ex3T&Uw!b&srg-fIN(9V~_ z(DN)B0~pqmsR{-+T)i;*Y#TQjWHrDCO`i>7-;HK{=GbAJ*vkmjEriNNG?v$YQoH&6 zBtLv#DG)3RlL(1cTRDxu7aD|bD$T98jfOOf%gr-&0{7K4E>+P_<*^_-M%^(*N@Exc zgbEgZB2&?D3+zHXd+kO$`OI{}Yb2=lmI6BEMF3?!|M&%S5J=j07$U}MFX4(Gf>HvI z7d&P5n0 zzQRnWz&q#XvnM|anS$I`aKS7XYA@$qwdbA`E=`ulW%dn3!RiIy*Hz(x*P-|%Z10~G zY|GCmP9A{c1|IueoH6~(iG$fq@!Z$52o-**yqC}-*5C5f-k=&rl`9Md+Qx2|A8ljH z-EgfO4_vV=S7aQK8cu?!2X^K!Em=w^6Nq7ikM#8>tO5;U(h2Gim6* z6`Ekqy9)PF$h6CfBA*Gv#U_t!JHZ!y(jHu`66=Ofo>@lsTl~T|=;2Z5s4_~Rg;wwF zie2M~p*}v`zIpNpBlop-&h8IaM|_yzX5Q^`w)2W_$$^}+AnQZihSu><=z-4umM}w& zG{Q`{b>T>{LSIZSV~U6X(ZEH6Xt-+^>}E1`jIQv0816`i50&M{EKtp^bE7OTV(iXU zhOKwb>)~g?7`BxPFQX~Sj%pWao(WPR?-^mfv=q~mreibdz;ipV@QZmeR(h=uz32r; zd#;`f#UwH*-!cf;GCXA~=;X7z?=SItEL>dyyfl4{jIlMjS4iyIEVJ;l)V^CSFMMd_ zz4hRPbk85%8)~iI?y_>z^>?s(TpkNi|3o}OUA{?Pc!_^K-cA^AI-dJs4)*-k$>Z6K z8;HnPCzw*cmrB(RrVD^1Z*=Xni}`9 zO9Fy2t&QzVpgqp=!q)4wPA^=RsZf{D`mI12LoQAF_7tvO)7cFwJnJ+x+_J>7u`3^^ zS*);HMlIz#%kX1fze{_SrhF1N?|tuOxxE=uxbzxax)rLzvBy)z;i{oAj???jH%?@W zrO(b^kJHmuq2t?pWXq*YJjs>tMAjhiFoT!5k5u`$R zCcqRXf?b{4UAGcZK`m2>Xssa}vdhlcQ{?pDRcdLK0`s*~fGb zV=KjW0!fNZc``zwk;rHb3}XZN`YugD>Fq!T(}ofa2O>!$E!ZeY2b|J|J+oz;1yuv; zS<|cjf{lg|Nx2#(KNcwIN&XO4n%2o+8=9I%VKPEi0q|Y`P85@p6FSD*kt4^_Fz?*D z(-ybt;7tpP@KBa86g0J$y@NdN1<4|P*O#Ar;3G~!QyxfK2}cm$POIkACf>~?xImJf-P}nOZ7G{%QrVAr6WC)X+d+5X*aE=Zd zeP*dz~=eJ;J?<0>1YLPyY& zPRK8?gx%}Fp?&Sx(G!>t6C91Q(Z0TVmECa&H6gviQ4OOSrsb`$$W>TwP2hZ;S6_Zr zd>-)!ep1o-2VIq>zO8;)DZZ8=-|tiBKYZo+wz+b@z5DT5;^;W87#=Ar=2iFtgPi8~ z#|NPwqJ_}&IoLerHe7Tor{C?vYS9j>Mno*G}9c9jPF``>#W!A7V) zIL}6P6JbTn0eBtZ5vW&ys|T%%(o){19(d|&xEA<6Gw+Zag&6`X!tPG8MxmZPXjkXu zG=~fq>9lVCC~%5aA~k85J+T%x%^^iI)BDL^N1MQt_9bTteu>9@*cRVBs9Zx>=7~{N zrUL7|k1Wjc#F#dS&>GXu9TlnYR12~Ea>hzXv;=w0CUIc^_f|rWe`uhLXfEhd*eou& z$Y@@P)X5;DEIZEK9v>1|R&e9JT}&}INC#gl&iC3+cB6aQlj7i!BWzGIow+`j*iHow*aIIe!-iTk7QK0EisZ2rdD-XY26qG9 zmMv2a@2T0`vmzA~<vR*i#f3Yhao}R(?dYOhg~o2mMv>xq zXLzyux9&qg=N4D8sKOq@bGfC>`(A^YN3NDuDdF^4UA%!7H!JyrfA}qiX*=2*@115F zRnJnQN0JHT-fk@6N#SM#b8w@XDZXCS6M0|nO0JT?nsiDBf~;g1{%Dg*!AQiVPPfRh zC3Iy@O(=K|B-R?D(xb(w7#F7wj-Y`6bYy0_9b!w!>L%T;=s`Po@haWlE%F$LzRqc* z``Cr%VcT~=qSYp#iLqX4N~C~9IUdrKD+1yO%aiRpB6;SX=#I+tjK|Oizi2?16Bma} z5MQozYvRo(t(byK*sMe~LpV)LPJ3!P9?2_xktQNNC-{wRKEQcS=<8WAahD5 zj~ybKa56Ut z+x;X~9Zi_7449;-v~VfJAZTS|o43mxkd@Yo^RZ0L)ur*RmC(B;k`4{y_CF?06h*-C zjAocF76C>lRX*Nn`>CPaQDz#=G{Yuu?k??u(;@c9a9NN9r;&;f z|4RTKHvr*TzBa3kMHHmZM!(E?Ia3^JKFuid`W+Vd8qq-IMN4iIC>zMd$44b3MZfp+ z3#;wrmriA*{{H)y+7QOHTLB~{Y#WB9$}nO0?L}FB@v86c9>4PiSCUFg{q(QF!9hgh zbPK5-WYMI0`XMcA3ymc59s*F>ft(!>^cFcEwii!5%R0GzSyV})c9XOE&Rw{K!8*^9 zaa28?`DdR#o>9=vn*^X)UevBWCPrrb-tOOJq|M3V1TOTDEjZK~XW-;X{(7GfT91aNt=45e-L0xK6M4kelt~$!7`4 zwdv{UcKoSt zqOFKFMR+|@B*XVG2Fwy1r&z>ij|Qq7-jI%RzQsFqvAm%mDy>QYc;m|a;3 zS}_A)MRmAWsZH0nbQ_Jo6H|9^^Y-kmc4u%d0~rrdUzne#aD-iE+kF7U za>db)mzAR(q^;+bt)cj?%CgIL%E?Py>&|X)h8VU<&Ocltg43=o0>OKegp5ksX&A-L zXc|VA6C-g_U%7URqw-eT-pNt4Zu&M-Q~|=0S6;#@VG}|LUNuN*DZbSEE*%-F{OX1y zY<5GHDIlV$P&G)iUUUj2hr(uPjAsn$67ZCBH+Y@c%{D&tcN*B&XXo14bLZRoGDq6p zA=diAdi&P%&tt?Mqos{!Pl97d54V?J{Z6~|^<}z+j(NaWK;p^9RqMT&q#Lp|Qn5a= z^?E@j?<52we8FW4)zNAme&r)^m8JyC5t>*1^}D-E#q&Gq3r2a>ZIMD#2)dk|cC-Ry ztax0y^i{iZ^6B;w}2D>!p#(rqj?)%mtS~NR`d|~hbBGA@x#kFKrddKW9uaX0_m!&kyM$<(@Sv2 zzsG#k7Va8FN3$gazC8*&&<0Qa0M6$&kiqfEJ?uosR@E{qAGH!G=x&S{jbB5gd1klc zUYy4c9ZU_Cm??D9sKibui{j@_Gcd*beti<{V%2CnygW%qdX-=Y(mQEBnLL9-1x%c{6{ zkdT!)z_k(;GI!=%T;5;{Nj454055#%@DNvN6uwt!K6kyr2A<(yQ0n07jX4^)(`O1{ z(Hn(Q<;?#Q4GXU z9HO4Dlgh;_@0!9~z;-0JEj-|m$_2}cokFN#wu>3OLWJK@To7zJIgodCZ%P|SJy*9? zYxB1)v}mh5Rp|va!d4wf(p7g@3>LnHnM)XTBa?a3mDLN--}fEZ)(n?;^p#(L1X02s zf`F-z7Ty)1Ya_Q@dFXC}dnTsn68Er};cgBS5UwyX$l?CU^5pIGUgl`gc5X>IMx45h z(a|u-L{X4i5WuiuTJmFDWpCl^v*Mp(Wf>?c>XIIYZyQP9Fw)aGP)V#51$k8LI@2>I zaxqk7x1BH$I8)6B^`;j_O{pdw7Eu z7MlfT^#_kTk2j1zYZzCbDtn((`5qfLJ~q^T z|Mz~6N!8QL#J?XzOE z!drqP6MIIc@*@zvKv{5#j*!@RDt|q%22+|wAxqarjfu%)m}&)un)j5Y3utkfl{k#( zrl%M*(YQ+p9}8~*ARn5~ov4>F`aKXT-5-3iuB#OBfC0jl5B|zG)Y+&y{-wLDx2A{^ z(P3c9JEJ>xCAe<#jXU|&Jo^zppj^;(180@s7)iQ7=> z%8-o0qq;Py@*vBZ18i^3>)W`0+%id8)MVjFSDrj5wnH1`!%p7YB~lO3)ZQ0daZ{MI zBmH>aM{h{m|9>&7z~m=+Wu{;~U0vgMika?{M~^V-8_U#<%cJhyz1O}t_jQ}QeKUrp zGxB>TN7_p-zk(~_P+*IcCvUkQyh3W>Mm3!K;(UASt+(1CU^1=x5oiA-AZ*w^!xG#$fuQ5B^C@-7UKS-?ptse{}}>qD4q)M!RE;kKB_Pg3_y znBU38Zy@E?*fi6Liys9-8lxRe2OedsBy;{qhtFf9@kAQxDoxxAj}=`=^zTz7rU*O{ z2ro78?dJB3v)+(nP&NTp@pAH}ccoy2B>5c+_F^D7MDHn$2(B;;1x{YF-rlTzej35Lu!-`BdXcpMwV$YsHzhy{uZ7_|z zrjc$xzW4GgaFW*dRq3X8a1ll+oF?~+Px6afa74^_U^?NX8_Rt;YkgkARkWxH>heaQ z(&^=W!54;)rP~6z|?gU?;O`h&zxsfkwcOF1$3;D33U9-vR8%pf}0000< KMNUMnLSTYniLplj literal 0 HcmV?d00001 diff --git a/app/assets/images/opensnp-logo.png b/app/assets/images/opensnp-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a62dc23e4dbf5a36d0c978b21a9308acb4f36f41 GIT binary patch literal 45345 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/rss.png b/app/assets/images/rss.png index c68d9e35cd5a97ba1016fc7f99bc4637317bf36b..05d1e3594262c762627b6b4723ac608588704435 100644 GIT binary patch literal 1100 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 new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/app/assets/javascripts/script.js b/app/assets/javascripts/script.js new file mode 100644 index 0000000..7e1aa96 --- /dev/null +++ b/app/assets/javascripts/script.js @@ -0,0 +1,79 @@ +(function(window, document) { + 'use strict'; + $(document).ready(function() { + + var snpApp = function () { + var $searchButton = $('[data-js="search-button"]'); + var $searchForm = $('[data-js="search-form"]'); + var $panelHeader = $('[data-js="panel-header"]'); + var $extendButton = $('[data-js="extend-button"]'); + var $pictureReplyButton = $('[data-js="picture-reply-button"]'); + var $snpReplyButton = $('[data-js="snp-reply-button"]'); + + var init = function () { + $('[data-toggle="tooltip"]').tooltip(); + initEvent(); + }; + + var initEvent = function () { + $searchButton.on('click', searchButtonCallback); + $panelHeader.on('click', panelHeaderCallback); + $extendButton.on('click', extendButtonCallback); + $pictureReplyButton.on('click', pictureReplyButtonCallback); + + $snpReplyButton.on('click', snpReplyButtonCallback); + }; + + var sendCommentId = function (e, text) { + e.value = text + e.value; + }; + + var searchButtonCallback = function (event) { + event.preventDefault(); + if ($searchForm.hasClass('showed')) { + $searchForm.animate({top: '0'}); + } else { + $searchForm.animate({top: '50px'}); + } + $searchForm.toggleClass('showed'); + }; + + var panelHeaderCallback = function (event) { + event.preventDefault(); + if ($(this).siblings('.faq__title-extend').text() === '+') { + $(this).siblings('.faq__title-extend').text('-'); + } else if ($(this).siblings('.faq__title-extend').text() === '-') { + $(this).siblings('.faq__title-extend').text('+'); + } + }; + + var extendButtonCallback = function (event) { + event.preventDefault(); + if ($(this).text() === '+') { + $(this).text('-'); + } else if ($(this).text() === '-') { + $(this).text('+'); + } + }; + + var pictureReplyButtonCallback = function (event) { + event.preventDefault(); + sendCommentId(document.new_comment.picture_phenotype_comment_comment_text, '@#' + this.id); + return false; + }; + + var snpReplyButtonCallback = function (event) { + event.preventDefault(); + sendCommentId(document.new_comment.snp_comment_comment_text, '@#' + this.id); + return false; + }; + + return { + init: init + }; + + }; + + snpApp().init(); + }); +})(window, document); diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 764a108..a83ce33 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -1,4 +1,11 @@ /* -*= require_self -*= require_tree . -*/ + *= require bootstrap.min + *= require_self + *= require style + */ + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('/assets/glyphicons-halflings-regular.eot'); + src: url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/glyphicons-halflings-regular.woff') format('woff'), url('/assets/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} diff --git a/app/assets/stylesheets/application/_base.sass b/app/assets/stylesheets/application/_base.sass new file mode 100644 index 0000000..cfb65e7 --- /dev/null +++ b/app/assets/stylesheets/application/_base.sass @@ -0,0 +1,16 @@ +.table-cell.vertical-centered + vertical-align: middle + +.general__container + min-height: 500px + margin-top: 40px + margin-bottom: 20px + + @media #{$tablet-breakpoint} + min-height: 677px + margin-top: 20px + +.general__title + margin: 0 0 20px 0 + padding-bottom: 15px + border-bottom: 1px solid rgba(#000, 0.3) diff --git a/app/assets/stylesheets/application/_variables.sass b/app/assets/stylesheets/application/_variables.sass new file mode 100644 index 0000000..366853a --- /dev/null +++ b/app/assets/stylesheets/application/_variables.sass @@ -0,0 +1,9 @@ +$screen: "only screen" !default +$small-range: 769px +$tablet-breakpoint: "#{$screen} and (min-width:#{$small-range})" !default + +$smaller-range: 321px +$mobile-breakpoint: "#{$screen} and (min-width:#{$smaller-range})" !default + +$main-color1: #316b94 +$main-color2: #17415d diff --git a/app/assets/stylesheets/application/layout/_achievements.sass b/app/assets/stylesheets/application/layout/_achievements.sass new file mode 100644 index 0000000..ef9c319 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_achievements.sass @@ -0,0 +1,19 @@ +.achievements__image + float: left + margin-right: 10px + margin-top: 10px + +.achievements__title + margin-top: 10px + +.achievements__table-title + margin-top: 10px + margin-bottom: 20px + + @media #{$tablet-breakpoint} + margin-bottom: 10px + + +div.achievements__table + margin-top: 50px + background-color: #fff diff --git a/app/assets/stylesheets/application/layout/_faq.sass b/app/assets/stylesheets/application/layout/_faq.sass new file mode 100644 index 0000000..da7b8bb --- /dev/null +++ b/app/assets/stylesheets/application/layout/_faq.sass @@ -0,0 +1,34 @@ +.faq__questions-tabs + margin-bottom: 10px + +.faq__questions-list + margin-top: 20px + +div.faq__single-question-div + border-color: $main-color2 + +.panel-default div.faq__single-question-panel + border-color: $main-color2 + background-color: $main-color2 + color: white + +.faq__question-title + position: relative + +.faq__title-content + width: 95% + +.faq__title-extend + position: absolute + top: 18% + font-size: 20px + text-decoration: none + + @media #{$tablet-breakpoint} + position: relative + +.faq__title-extend:hover + text-decoration: none + +.faq__title-extend:focus + text-decoration: none diff --git a/app/assets/stylesheets/application/layout/_fitbit.sass b/app/assets/stylesheets/application/layout/_fitbit.sass new file mode 100644 index 0000000..3be3a7b --- /dev/null +++ b/app/assets/stylesheets/application/layout/_fitbit.sass @@ -0,0 +1,19 @@ +.fitbit__download-button + width: 175px + margin-bottom: 10px + +.fitbit__download-text + font-size: 10px + +.fitbit__download-container + margin-top: 30px + +.fitbit__table + clear: both + margin-top: 30px + +.fitbit__form + margin: 30px 0 + +.fitbit__form-submit-button + margin-top: 20px diff --git a/app/assets/stylesheets/application/layout/_footer.sass b/app/assets/stylesheets/application/layout/_footer.sass new file mode 100644 index 0000000..fd55380 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_footer.sass @@ -0,0 +1,16 @@ +.footer + padding-top: 20px + background-color: $main-color1 + color: white + +.footer a + color: white + +.footer__links-bottom + margin-top: 30px + +.footer__texts + font-size: 10pt + + @media #{tablet-breakpoint} + font-size: 15pt diff --git a/app/assets/stylesheets/application/layout/_genotype.sass b/app/assets/stylesheets/application/layout/_genotype.sass new file mode 100644 index 0000000..5d2b2ec --- /dev/null +++ b/app/assets/stylesheets/application/layout/_genotype.sass @@ -0,0 +1,13 @@ +.genotype__download-button + width: 175px + margin-bottom: 10px + +.genotype__download-text + font-size: 10px + +.genotype__download-container + margin-top: 30px + +.genotype__table + clear: both + margin-top: 30px diff --git a/app/assets/stylesheets/application/layout/_index.sass b/app/assets/stylesheets/application/layout/_index.sass new file mode 100644 index 0000000..f591f09 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_index.sass @@ -0,0 +1,42 @@ +.index__jumbotron + width: 100% + position: relative + margin-top: 50px + text-align: center + background-color: $main-color2 + z-index: 0 + + @media #{$tablet-breakpoint} + margin-top: 0 + text-align: left + + +.index__jumbotron-title + font-size: 43px + +.index__jumbotron-image + margin-top: 25px + +.index__jumbotron-container + color: white + +.index__jumbotron-buttons + padding-bottom: 10px + + a + margin-top: 15px + +p.index__jumbotron-paragraph + margin-bottom: 20px + + @media #{$tablet-breakpoint} + +.index__about-text-icons + font-size: 40px + +.index__about-texts, .index__about-title + margin-bottom: 40px + +.index__about-title + border-bottom: 1px solid black + padding-bottom: 20px diff --git a/app/assets/stylesheets/application/layout/_message.sass b/app/assets/stylesheets/application/layout/_message.sass new file mode 100644 index 0000000..7dbd510 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_message.sass @@ -0,0 +1,27 @@ +.message__message-informations + position: relative + margin-bottom: 20px + +.message__message-date + position: absolute + top: 0px + right: 0 + +.message__reply-button + float: left + margin: 0 10px 0 33% + + @media #{$tablet-breakpoint} + margin: 0 10px 0 45% + +.message__delete-button + float: left + +div.message__message + background-color: #fff + +.message__message-subject + margin: 0px 0 20px 0 + +.message__message-body + font-size: 13pt diff --git a/app/assets/stylesheets/application/layout/_modal.sass b/app/assets/stylesheets/application/layout/_modal.sass new file mode 100644 index 0000000..d4727ef --- /dev/null +++ b/app/assets/stylesheets/application/layout/_modal.sass @@ -0,0 +1,10 @@ +.modal__text + color: #fff + white-space: normal + opacity: 1 + +.radio.modal__radio, .modal__input-text + margin-bottom: 10px + +.modal__save-button + margin-top: 10px diff --git a/app/assets/stylesheets/application/layout/_new-genotype.sass b/app/assets/stylesheets/application/layout/_new-genotype.sass new file mode 100644 index 0000000..2dbe700 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_new-genotype.sass @@ -0,0 +1,6 @@ +.new-genotype__form + background-color: #fff + +.new-genotype__disclaimer + height: 438px + overflow: auto diff --git a/app/assets/stylesheets/application/layout/_new-message.sass b/app/assets/stylesheets/application/layout/_new-message.sass new file mode 100644 index 0000000..1212f1e --- /dev/null +++ b/app/assets/stylesheets/application/layout/_new-message.sass @@ -0,0 +1,7 @@ +.new-message__select-input + width: 220px + height: 25px + background-color: #fff + +div.new-message__received-message + background-color: #fff diff --git a/app/assets/stylesheets/application/layout/_password-reset.sass b/app/assets/stylesheets/application/layout/_password-reset.sass new file mode 100644 index 0000000..5c8a3e4 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_password-reset.sass @@ -0,0 +1,7 @@ +input.password-reset__submit-button + margin-top: 20px + background-color: $main-color1 + transition: background-color 0.7s + +input.password-reset__submit-button:hover + background-color: $main-color2 diff --git a/app/assets/stylesheets/application/layout/_phenotype.sass b/app/assets/stylesheets/application/layout/_phenotype.sass new file mode 100644 index 0000000..e851438 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_phenotype.sass @@ -0,0 +1,41 @@ +.phenotype__add-button + margin: 20px 0 + +.phenotype__side-menu + margin: 50px 0 -10px 30% + + @media #{$tablet-breakpoint} + margin: 20px 0 0 20px + +form.phenotype__new-form + padding: 30px 20px + background-color: #fff + +div.phenotype__download-area + background-color: #fff + +.phenotype__upload-date + font-size: 15pt + + @media #{$tablet-breakpoint} + font-size: 13pt + +a.phenotype__download-button + margin-top: 20px + background-color: $main-color1 + transition: background-color 0.7s + +a.phenotype__download-button:hover + background-color: $main-color2 + +.phenotype__add-phenotype-text + margin-bottom: 20px + +.phenotype__add-phenotype-form + margin-bottom: 20px + +div.phenotype__add-phenotype-form-options:last-of-type + margin-bottom: 20px + +div.phenotype__variation-form + background-color: #fff diff --git a/app/assets/stylesheets/application/layout/_picture-phenotype.sass b/app/assets/stylesheets/application/layout/_picture-phenotype.sass new file mode 100644 index 0000000..2a63ebb --- /dev/null +++ b/app/assets/stylesheets/application/layout/_picture-phenotype.sass @@ -0,0 +1,21 @@ +.pictures-phenotype__add-button + margin: 20px 0 + +form.picture-phenotype__new-form + padding: 30px 20px + background-color: #fff + +.picture-phenotype__buttons + margin: 20px 0 + +.picture-phenotype__upload-div + margin: 20px 0 + +.picture-phenotype__submit-button + margin: 20px 0 30px + +.pictures-phenotype__picture-div + margin: 10px 0 + +.pictures-phenotype__change-pic-div + margin: 10px 0 diff --git a/app/assets/stylesheets/application/layout/_search.sass b/app/assets/stylesheets/application/layout/_search.sass new file mode 100644 index 0000000..ea926ec --- /dev/null +++ b/app/assets/stylesheets/application/layout/_search.sass @@ -0,0 +1,5 @@ +.search__user-cell + width: 150px + + @media #{$tablet-breakpoint} + width: 25% diff --git a/app/assets/stylesheets/application/layout/_settings.sass b/app/assets/stylesheets/application/layout/_settings.sass new file mode 100644 index 0000000..c2b7380 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_settings.sass @@ -0,0 +1,62 @@ +.settings__general-change-password + margin-top: 50px + margin-bottom: 30px + +.settings__general-username-div + @media #{$tablet-breakpoint} + margin-left: 10% + +.settings__general-change-picutre-text + margin: 10px 0 + +.settings__general-add-genotype + margin-top: 40px + width: 175px + +input.settings__confirm-changes + margin-bottom: 20px + border-color: $main-color1 + background-color: $main-color1 + transition: background-color .7s, border-color .7s + +input.settings__confirm-changes:hover + border-color: darken($main-color1, 20) + background-color: darken($main-color1, 20) + +.settings__phenotypes-select-input + width: 220px + height: 25px + background-color: #fff + +.settings__phenotypes-options-sex, +.settings__phenotypes-options-birth + margin-bottom: 30px + +.settings__additional-phenotypes + clear: both + margin-top: 30px + +.settings__single-additional-phenotypes + margin-top: 10px + padding-bottom: 20px + border-bottom: 1px solid rgba(#000, 0.3) + +.settings__additional-phenotypes-remove + margin-top: 10px + +.settings__add-phenotype-button + width: 175px + margin-top: 40px + margin-bottom: 20px + +.settings__notifications-options + margin-top: 30px + + @media #{$tablet-breakpoint} + width: 50% + +.settings__deleting-button + margin: 5px 0px + + @media #{$tablet-breakpoint} + margin: 5px 20px diff --git a/app/assets/stylesheets/application/layout/_signup.sass b/app/assets/stylesheets/application/layout/_signup.sass new file mode 100644 index 0000000..c3dc5aa --- /dev/null +++ b/app/assets/stylesheets/application/layout/_signup.sass @@ -0,0 +1,12 @@ +.signup__form + background-color: #fff + +.signup__disclaimer + height: 570px + overflow: auto + +.signup__recaptcha + margin: 20px 0 + +.signup__advise + margin: 20px 0 0 0 diff --git a/app/assets/stylesheets/application/layout/_snps.sass b/app/assets/stylesheets/application/layout/_snps.sass new file mode 100644 index 0000000..ed3dbc6 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_snps.sass @@ -0,0 +1,20 @@ +.snps__download-button + width: 175px + margin-bottom: 10px + +.snps__download-text + font-size: 10px + +.snps__download-container + margin-top: 30px + +.snps__table + clear: both + margin-top: 30px + +.snps__container .snps__genome-browser + padding-bottom: 50px + background-color: #fff + +.snps__graphs + margin-bottom: 30px diff --git a/app/assets/stylesheets/application/layout/_stats.sass b/app/assets/stylesheets/application/layout/_stats.sass new file mode 100644 index 0000000..9e49074 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_stats.sass @@ -0,0 +1,22 @@ +.statistic__list-item + margin-bottom: 20px + +.statistic__list-item-button + margin-left: 34% + margin-top: 20px + border-color: $main-color1 + background-color: $main-color1 + transition: background-color .5s, border-color .5s + +.statistic__list-item-button:hover + border-color: darken($main-color1, 20) + background-color: darken($main-color1, 20) + +.statistic__images + width: 275px + + @media #{$mobile-breakpoint} + width: 300px + + @media #{$tablet-breakpoint} + width: 400px diff --git a/app/assets/stylesheets/application/layout/_updates.sass b/app/assets/stylesheets/application/layout/_updates.sass new file mode 100644 index 0000000..fe03f46 --- /dev/null +++ b/app/assets/stylesheets/application/layout/_updates.sass @@ -0,0 +1,7 @@ +.updates__tab-title + margin: 30px 0 + +.updates__tab-button + width: 175px + margin-top: 20px + margin-bottom: 20px diff --git a/app/assets/stylesheets/application/layout/_userpage.sass b/app/assets/stylesheets/application/layout/_userpage.sass new file mode 100644 index 0000000..23e20ba --- /dev/null +++ b/app/assets/stylesheets/application/layout/_userpage.sass @@ -0,0 +1,62 @@ +.userpage__profile-picture + width: 125px + margin: 0px 20px 0px 0px + + @media #{$tablet-breakpoint} + width: 170px + margin: 25px 20px 10px 10px + +.userpage__description + font-size: 15pt + + @media #{$tablet-breakpoint} + font-size: 12pt + +.userpage__new-messages + margin-top: 10px + + @media #{$tablet-breakpoint} + position: absolute + bottom: 10px + left: 215px + margin-top: 0 + +.userpage__profile-informations + position: relative + margin-bottom: 20px + +.userpage__phenotype-button + margin: 10px 0 + +.userpage__received-title, .userpage__sent-title + margin: 20px 0 + padding-bottom: 10px + border-bottom: 1px solid rgba(#000, 0.2) + +.userpage__no-messages + margin: 30px 0 + +.userpage__user-cell + width: 150px + + @media #{$tablet-breakpoint} + width: 25% + +.userpage__subject-cell + width: 300px + + @media #{$tablet-breakpoint} + width: 60% + +.userpage__status-cell + width: 100px + + @media #{$tablet-breakpoint} + width: 15% + +.userpage__help-text-icons + font-size: 40px + color: #000 + +.userpage__help-block + margin-top: 30px diff --git a/app/assets/stylesheets/application/modules/_comments.sass b/app/assets/stylesheets/application/modules/_comments.sass new file mode 100644 index 0000000..38a519a --- /dev/null +++ b/app/assets/stylesheets/application/modules/_comments.sass @@ -0,0 +1,49 @@ +.comments__single-comment + margin-bottom: 10px + padding: 15px 10px + border: 1px solid #e3e3e3 + border-radius: 3px + +.comments__comment-photo-div + margin-right: 20px + margin-top: 10px + +.comments__comment-photo + width: 60px + + @media #{$tablet-breakpoint} + width: 90px + +.comments__comment-text-div + position: relative + padding-top: 5px + +.comments__comment-text + margin-top: 25px + margin-bottom: 15px + + @media #{$tablet-breakpoint} + margin-top: 0 + margin-bottom: 10px + +.comments__comment-username + margin-bottom: 5px + font-size: 12pt + +.comments__comment-subject + font-weight: bold + +.comments__comment-date + position: absolute + top: 0 + right: 0 + +.comments__comment-reply-button + @media #{$tablet-breakpoint} + position: absolute + bottom: 0 + right: 0 + +div.comments__comment-box + margin-top: 20px + background-color: #fff diff --git a/app/assets/stylesheets/application/modules/_navbar.sass b/app/assets/stylesheets/application/modules/_navbar.sass new file mode 100644 index 0000000..9966f92 --- /dev/null +++ b/app/assets/stylesheets/application/modules/_navbar.sass @@ -0,0 +1,61 @@ +.navbar-menu + position: relative + margin-bottom: 0 + background-color: $main-color1 + border-color: $main-color1 + z-index: 2 + +.container .navbar-header a.navbar-menu__brand + color: white + +.container ul li a.navbar-menu__options, +.nav .dropdown .dropdown-menu li a.navbar-menu__options + color: white + transition: background-color .7s + +.navbar-default .container ul li a.navbar-menu__options:hover, +.navbar-default .container ul li a.navbar-menu__options:active, +.nav .dropdown .dropdown-menu li a.navbar-menu__options:hover, +.nav .dropdown .dropdown-menu li a.navbar-menu__options:active + background-color: #6292b5 + color: white + +.navbar-default .container ul li a.navbar-menu__options:focus, +.nav .dropdown .dropdown-menu li a.navbar-menu__options:focus + color: white + background-color: $main-color1 + +li a.navbar-menu__profile-option + padding: 9px + +.navbar-menu__search-input + width: 150px + position: absolute + top: 0px + left: 30% + margin: 0 + + @media #{$mobile-breakpoint} + width: 180px + + @media #{$tablet-breakpoint} + width: 220px + left: 0 + margin-left: 69% + +.navbar-menu__search-input-content + box-shadow: 0 6px 12px rgba(0, 0, 0, .175) + z-index: 2 + + @media #{$tablet-breakpoint} + z-index: 1 + +.navbar-menu__info-menu, .navbar-menu__profile-menu + background-color: $main-color1 + +.container .navbar-header .navbar-menu__hamburger-menu:hover, +.container .navbar-header .navbar-menu__hamburger-menu:focus + background-color: $main-color1 + +.navbar-header .navbar-menu__hamburger-menu .navbar-menu__hamburger-menu-icon + background-color: #fff diff --git a/app/assets/stylesheets/application/modules/_news_list.sass b/app/assets/stylesheets/application/modules/_news_list.sass new file mode 100644 index 0000000..d2bf367 --- /dev/null +++ b/app/assets/stylesheets/application/modules/_news_list.sass @@ -0,0 +1,15 @@ +.news__single-news + position: relative + padding-bottom: 20px + border-bottom: 1px solid black + +.news__single-news-title + margin-bottom: 20px + +.news__single-news-date + position: absolute + bottom: 0 + right: 0 + + @media #{$tablet-breakpoint} + top: 0 diff --git a/app/assets/stylesheets/application/modules/_simple-form.sass b/app/assets/stylesheets/application/modules/_simple-form.sass new file mode 100644 index 0000000..20a699e --- /dev/null +++ b/app/assets/stylesheets/application/modules/_simple-form.sass @@ -0,0 +1,23 @@ +.simple-form__container + min-height: 500px + margin-top: 40px + margin-bottom: 20px + + @media #{$tablet-breakpoint} + min-height: 600px + margin-top: 100px + +.simple-form__title + text-align: center + +.simple-form__form + + @media #{$tablet-breakpoint} + width: 50% + margin-top: 20px + +.simple-form__links + margin-top: 10px + + li + margin-top: 10px diff --git a/app/assets/stylesheets/application/modules/_tabs.sass b/app/assets/stylesheets/application/modules/_tabs.sass new file mode 100644 index 0000000..7d37b3b --- /dev/null +++ b/app/assets/stylesheets/application/modules/_tabs.sass @@ -0,0 +1,6 @@ +.tabs__one-tab + margin-bottom: 20px + background-color: #fff + +.tabs__one-tab-title + margin-bottom: 40px diff --git a/app/assets/stylesheets/application/modules/_warnings.sass b/app/assets/stylesheets/application/modules/_warnings.sass new file mode 100644 index 0000000..60aa9e6 --- /dev/null +++ b/app/assets/stylesheets/application/modules/_warnings.sass @@ -0,0 +1,23 @@ +.warnings_container + width: 100% + position: absolute + z-index: 4 + +.warning__alert + width: 200px + margin-bottom: 0 + + @media #{$tablet-breakpoint} + width: 500px + +.warning__alert.alert.alert-danger + border-color: rgba(#f2dede , 0.5) + background-color: rgba(#f2dede , 0.5) + +.warning__alert.alert.alert-success + border-color: rgba(#dff0d8, 0.5) + background-color: rgba(#dff0d8, 0.5) + +.warning__alert.alert.alert-info + border-color: rgba(#d9edf7, 0.5) + background-color: rgba(#d9edf7, 0.5) diff --git a/app/assets/stylesheets/bootstrap.min.css b/app/assets/stylesheets/bootstrap.min.css new file mode 100644 index 0000000..4cf729e --- /dev/null +++ b/app/assets/stylesheets/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 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 */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}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}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-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;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}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}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub: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"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.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:500;line-height:1.1;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:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.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:10px;margin-bottom:10px}.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:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.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}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.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:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.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}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.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{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-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-right:15px;padding-left:15px}.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{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@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-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@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-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@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-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.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.42857143;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:#fff}.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{border:1px solid #ddd}.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{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.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-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{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;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{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}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:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@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:34px}.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[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[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}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}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}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:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.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}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.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;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.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;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.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 .control-label{margin-bottom:0;vertical-align:middle}.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 .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.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:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.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>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.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:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.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>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.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:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.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>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{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:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.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>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.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:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.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>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.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:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.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>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.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:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;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:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;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;-o-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{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.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,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.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{right:auto;left:0}}.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 .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;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{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left: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-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.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}.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:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=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-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn: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-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.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{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;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:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.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-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.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:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-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{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-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{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@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}@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-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.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;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;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}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;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:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.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 .control-label{margin-bottom:0;vertical-align:middle}.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}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.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:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;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:#555;background-color:#e7e7e7}.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:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.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:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.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:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;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:#fff;background-color:#080808}.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:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.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:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;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;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager 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:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;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}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.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}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.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}}@-o-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:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{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:-o-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);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-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:-o-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)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{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:-o-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)}.progress-bar-warning{background-color:#f0ad4e}.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);background-image:-o-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)}.progress-bar-danger{background-color:#d9534f}.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:-o-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{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.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{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-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{color:#555;text-decoration:none;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{color:#777;cursor:not-allowed;background-color:#eee}.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:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.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:#c7ddef}.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}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.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-left-radius:3px;border-top-right-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-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.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>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.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,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.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>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-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-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-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>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.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-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{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.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;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height: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:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.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;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-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;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.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{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;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;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.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{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";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;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition: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{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,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;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.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;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{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{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@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}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.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}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.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}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.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}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!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}}@media (min-width:1200px){.hidden-lg{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}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/app/assets/stylesheets/common.css.scss b/app/assets/stylesheets/common.css.scss deleted file mode 100644 index f4d336f..0000000 --- a/app/assets/stylesheets/common.css.scss +++ /dev/null @@ -1,3 +0,0 @@ -.hidden { - display: none; -} diff --git a/app/assets/stylesheets/style.sass b/app/assets/stylesheets/style.sass new file mode 100644 index 0000000..bde579f --- /dev/null +++ b/app/assets/stylesheets/style.sass @@ -0,0 +1,5 @@ +@import "./application/variables" +@import "./application/base" +@import "./application/layout/*" +@import "./application/modules/*" +// @import "./application/helpers/*" diff --git a/app/controllers/achievements_controller.rb b/app/controllers/achievements_controller.rb index 6bab958..c240d71 100644 --- a/app/controllers/achievements_controller.rb +++ b/app/controllers/achievements_controller.rb @@ -4,11 +4,11 @@ class AchievementsController < ApplicationController def show @achievement = Achievement.find(params[:id]) - @title = "Achievements" + @title = 'Achievements' respond_to do |format| format.html format.xml end end -end \ No newline at end of file +end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8481f00..a5b4988 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -5,7 +5,7 @@ class ApplicationController < ActionController::Base helper_method :current_user_session, :current_user def not_found - raise ActionController::RoutingError.new("Not found") + raise ActionController::RoutingError.new('Not found') end private @@ -23,7 +23,7 @@ class ApplicationController < ActionController::Base def require_user unless current_user store_location - flash[:warning] = "You must be logged in to access this page!" + flash[:warning] = 'You must be logged in to access this page' redirect_to root_url return false end @@ -32,7 +32,7 @@ class ApplicationController < ActionController::Base def require_no_user if current_user store_location - flash[:warning] = "You must be logged out to access this page" + flash[:warning] = 'You must be logged out to access this page' redirect_to current_user return false end diff --git a/app/controllers/beacon_controller.rb b/app/controllers/beacon_controller.rb index 16c1e9e..aaf6183 100644 --- a/app/controllers/beacon_controller.rb +++ b/app/controllers/beacon_controller.rb @@ -16,15 +16,15 @@ class BeaconController < ApplicationController @snps = Snp.where(position: @position, chromosome: @chromosome) @snps.each do |s| if s.allele_frequency[@allele] > 0 - render :text => 'YES' and return + render text: 'YES' and return break end end # not found? return no - render :text => 'NO' and return + render text: 'NO' and return rescue # did something break: return none (not useful, but the API standard…) - render :text => 'NONE' + render text: 'NONE' end end end diff --git a/app/controllers/das_controller.rb b/app/controllers/das_controller.rb index ec7bc30..669c19f 100644 --- a/app/controllers/das_controller.rb +++ b/app/controllers/das_controller.rb @@ -10,7 +10,7 @@ class DasController < ApplicationController @positions = [] @id = [] @unkown_chromosome = [] - @known_chromosomes = ("1".."22").to_a << "X" << "MT" << "Y" + @known_chromosomes = ('1'..'22').to_a << 'X' << 'MT' << 'Y' # user_snps is an array of arrays, each inner array having all user_snps from one specified segment @user_snps = [] @has_start = [] @@ -21,13 +21,13 @@ class DasController < ApplicationController if request.query_string @query_string = CGI.parse request.query_string @types = [] - - @query_string["type"].each do |t| + + @query_string['type'].each do |t| @types << t end - - @query_string["segment"].each do |q| - @pos = q.split(":") + + @query_string['segment'].each do |q| + @pos = q.split(':') # append chromosome-id to the array of ids @id << @pos[0] if @known_chromosomes.include? @pos[0] @@ -37,9 +37,9 @@ class DasController < ApplicationController end if @pos[1] != nil - @start_and_end << @pos[1].split(",") - @start = @pos[1].split(",")[0] - @end = @pos[1].split(",")[1] + @start_and_end << @pos[1].split(',') + @start = @pos[1].split(',')[0] + @end = @pos[1].split(',')[1] @has_start << true @snps = @user.snps.where('CAST(position as integer) <= ? AND CAST(position as integer) >= ? AND CAST(chromosome as text) = ?', @end, @start, @pos[0]) @tmp_user_snps = [] @@ -60,7 +60,7 @@ class DasController < ApplicationController # there are no positions, so use only chromosome @snps = @user.snps.where('CAST(chromosome as text) = ?', @id) @tmp_user_snps = [] - + @snps.each do |s| # there is only one user_snp for each snps if @types != [] @@ -72,53 +72,51 @@ class DasController < ApplicationController @tmp_user_snps << s.user_snps.find_by_genotype_id(@genotype.id) end end - - @user_snps << @tmp_user_snps + + @user_snps << @tmp_user_snps @has_start << false end end # When everything went correctly, send back 200 - response.headers["X-DAS-Status"] = "200" + response.headers['X-DAS-Status'] = '200' else # no chromosome or start/end, so get nothing @user_snps = [] #@user.user_snps - @id = "" - @start = "" - @end = "" + @id = '' + @start = '' + @end = '' # Bad command arguments (arguments invalid) - response.headers["X-DAS-Status"] = "402" + response.headers['X-DAS-Status'] = '402' end - response.headers["X-DAS-Version"] = "DAS/1.53E" + response.headers['X-DAS-Version'] = 'DAS/1.53E' # Change these capabilities once we implement more - response.headers["X-DAS-Capabilities"] = "features/1.1; sources/1.0" + response.headers['X-DAS-Capabilities'] = 'features/1.1; sources/1.0' # Put in the servername and version - response.headers["X-DAS-Server"] = request.env["SERVER_SOFTWARE"].split(" ")[0] - response.headers["Access-Control-Allow-Origin"] = "*" + response.headers['X-DAS-Server'] = request.env['SERVER_SOFTWARE'].split(' ')[0] + response.headers['Access-Control-Allow-Origin'] = '*' - render :template => 'das/show.xml.erb', :layout => false + render template: 'das/show.xml.erb', layout: false end def sources @users = User.all - response.headers["X-DAS-Version"] = "DAS/1.53E" - response.headers["X-DAS-Status"] = "200" - response.headers["X-DAS-Capabilities"] = "features/1.1; sources/1.0" + response.headers['X-DAS-Version'] = 'DAS/1.53E' + response.headers['X-DAS-Status'] = '200' + response.headers['X-DAS-Capabilities'] = 'features/1.1; sources/1.0' - response.headers["X-DAS-Server"] = request.env["SERVER_SOFTWARE"].split(" ")[0] - - render :template => 'das/sources.xml.erb', :layout => false + response.headers['X-DAS-Server'] = request.env['SERVER_SOFTWARE'].split(' ')[0] + + render template: 'das/sources.xml.erb', layout: false end - + def startpoint @user = User.find_by_id(params[:id]) - response.headers["X-DAS-Version"] = "DAS/1.53E" - response.headers["X-DAS-Status"] = "200" - response.headers["X-DAS-Capabilities"] = "features/1.1; sources/1.0" - response.headers["X-DAS-Server"] = request.env["SERVER_SOFTWARE"].split(" ")[0] - - render :template => 'das/startpoint.xhtml.erb', :layout => false + response.headers['X-DAS-Version'] = 'DAS/1.53E' + response.headers['X-DAS-Status'] = '200' + response.headers['X-DAS-Capabilities'] = 'features/1.1; sources/1.0' + response.headers['X-DAS-Server'] = request.env['SERVER_SOFTWARE'].split(' ')[0] + + render template: 'das/startpoint.xhtml.erb', layout: false end end - - diff --git a/app/controllers/fitbit_profiles_controller.rb b/app/controllers/fitbit_profiles_controller.rb index 66c40ee..bcb09ba 100644 --- a/app/controllers/fitbit_profiles_controller.rb +++ b/app/controllers/fitbit_profiles_controller.rb @@ -2,20 +2,20 @@ class FitbitProfilesController < ApplicationController before_filter :require_user, except: [:new_notification, :show, :index] before_filter :require_user, only: [:update,:destroy,:init,:edit,:start_auth,:verify_auth,:dump] - protect_from_forgery :except => :new_notification + protect_from_forgery except: :new_notification helper_method :sort_column, :sort_direction def index - @title = "Listing all connected Fitbit accounts" + @title = 'Listing all connected Fitbit accounts' @fitbit_profiles = FitbitProfile .includes(:user) .order("#{sort_column} #{sort_direction}") - .paginate(page: params[:page], per_page: 20) + .paginate(page: params[:page], per_page: 15) end def show @fitbit_profile = FitbitProfile.find_by_id(params[:id]) || not_found - @title = "Fitbit profile" + @title = 'Fitbit profile' #grab activity measures for graphs if @fitbit_profile.activities @@ -146,12 +146,12 @@ class FitbitProfilesController < ApplicationController def update @fitbit_profile = FitbitProfile.find_by_id(params[:fitbit_profile][:id]) - @fitbit_profile.body = params[:fitbit_profile]["body"] - @fitbit_profile.activities = params[:fitbit_profile]["activities"] - @fitbit_profile.sleep = params[:fitbit_profile]["sleep"] + @fitbit_profile.body = params[:fitbit_profile]['body'] + @fitbit_profile.activities = params[:fitbit_profile]['activities'] + @fitbit_profile.sleep = params[:fitbit_profile]['sleep'] @fitbit_profile.save FitbitEdit.perform_async(@fitbit_profile.id) - redirect_to "/fitbit/edit" + redirect_to '/fitbit/edit' end def start_auth @@ -182,33 +182,33 @@ class FitbitProfilesController < ApplicationController secret = @fitbit_profile.request_secret verifier = params[:oauth_verifier] begin - access_token = @client.authorize(token, secret, { :oauth_verifier => verifier }) + access_token = @client.authorize(token, secret, { oauth_verifier: verifier }) rescue - flash[:warning] = "Something went wrong while authenticating your FitBit-Account. Please try again." - redirect_to :action => "info" + flash[:warning] = 'Something went wrong while authenticating your FitBit-Account. Please try again' + redirect_to action: 'info' end @fitbit_profile.access_token = access_token.token @fitbit_profile.access_secret = access_token.secret @fitbit_profile.verifier = verifier @fitbit_profile.save FitbitInit.perform_async(@fitbit_profile.id) - flash[:notice] = "Successful login with FitBit!" - redirect_to :action => "init" + flash[:notice] = 'Successful login with FitBit' + redirect_to action: 'init' else - flash[:warning] = "Something went wrong while authenticating your FitBit-Account. Please try again." - redirect_to :action => "info" + flash[:warning] = 'Something went wrong while authenticating your FitBit-Account. Please try again' + redirect_to action: 'info' end end def new_notification puts params - @json_object = params["updates"] + @json_object = params['updates'] @json_unparsed = @json_object.read @notification = JSON.parse(@json_unparsed) puts @notification[0] - puts @notification[0]["collectionType"] + puts @notification[0]['collectionType'] FitbitNotification.perform_async(@notification) - render :nothing => true, :status => 204 + render nothing: true, status: 204 end private @@ -219,19 +219,19 @@ class FitbitProfilesController < ApplicationController if current_user return true else - flash[:notice] = "You need to be logged in" - redirect_to "/signin" + flash[:notice] = 'You need to be logged in' + redirect_to '/signin' end return false end end def sort_column - Genotype.column_names.include?(params[:sort]) ? params[:sort] : "created_at" + Genotype.column_names.include?(params[:sort]) ? params[:sort] : 'created_at' end def sort_direction - %w[desc asc].include?(params[:direction]) ? params[:direction] : "desc" + %w[desc asc].include?(params[:direction]) ? params[:direction] : 'desc' end end diff --git a/app/controllers/genotypes_controller.rb b/app/controllers/genotypes_controller.rb index 092a4b3..462b9d1 100644 --- a/app/controllers/genotypes_controller.rb +++ b/app/controllers/genotypes_controller.rb @@ -15,7 +15,7 @@ class GenotypesController < ApplicationController def new @genotype = Genotype.new - @title = "Add Genotype-File" + @title = 'Add Genotype-File' end def create @@ -24,12 +24,12 @@ class GenotypesController < ApplicationController if @genotype.valid? && @genotype.save Preparsing.perform_async(@genotype.id) # award for genotyping-upload - @award = Achievement.find_by_award("Published genotyping") + @award = Achievement.find_by_award('Published genotyping') user_achievement_attrs = { achievement_id: @award.id, user_id: current_user.id } if UserAchievement.where(user_achievement_attrs).count.zero? UserAchievement.create(user_achievement_attrs) - flash[:achievement] = "Congratulations! You've unlocked an achievement:" + + flash[:achievement] = 'Congratulations! You\'ve unlocked an achievement:' + " #{@award.award}" end @@ -38,37 +38,37 @@ class GenotypesController < ApplicationController end redirect_to(current_user, notice: 'Genotype was successfully uploaded! Parsing and annotating might take a couple of hours days.') else - render :action => "new" + render action: 'new' end end def show @genotype = Genotype.find(params[:id]) @user = @genotype.user - @title = "Genotypes" + @title = 'Genotypes' end def feed # for rss-feeds @genotypes = Genotype.order('created_at DESC').limit(20) - render :action => "rss", :layout => false + render action: 'rss', layout: false end def destroy genotype = current_user.genotypes.find(params[:id]) DeleteGenotype.perform_async(genotype_id: genotype.id) - flash[:notice] = 'Your Genotyping will be deleted. This may take a few minutes.' + flash[:notice] = 'Your Genotyping will be deleted. This may take a few minutes...' redirect_to current_user end - private + private def sort_column - Genotype.column_names.include?(params[:sort]) ? params[:sort] : "created_at" + Genotype.column_names.include?(params[:sort]) ? params[:sort] : 'created_at' end def sort_direction - %w[desc asc].include?(params[:direction]) ? params[:direction] : "desc" + %w[desc asc].include?(params[:direction]) ? params[:direction] : 'desc' end def genotype_params diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index b483fbb..5a94d8a 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -20,7 +20,7 @@ class MessagesController < ApplicationController @message = Message.new(message_params) if @message.save && @message.send_message(@message.from_id, @message.to_id) - flash[:notice] = 'Message sent!' + flash[:notice] = 'Message sent' redirect_to "/users/#{current_user.id}#messages" else render action: 'new' @@ -47,7 +47,7 @@ class MessagesController < ApplicationController message = Message.where(from_id: current_user.id, id: params[:id]).first if message message.destroy - flash[:notice] = 'Message deleted.' + flash[:notice] = 'Message deleted' redirect_to '/users/' + current_user.id.to_s + '#messages' else render text: 'Unauthorized', status: :unauthorized diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index 452d51c..fb36a15 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -2,24 +2,9 @@ class NewsController < ApplicationController def index - @title = "News" - @new_genotypes = Genotype.order('created_at DESC').limit(20) - @new_users = User.order('created_at DESC').limit(20) - @new_phenotypes = Phenotype.order('created_at DESC').limit(20) - @new_phenotype_comments = PhenotypeComment.order('created_at DESC').limit(20) - @new_snp_comments = SnpComment.order('created_at DESC').limit(20) - @newest_plos_paper = PlosPaper.order('created_at DESC').limit(20) - @newest_mendeley_paper = MendeleyPaper.order('created_at DESC').limit(20) - - @newest_paper = @newest_mendeley_paper | @newest_plos_paper - @newest_paper.sort! { |a,b| b.created_at <=> a.created_at } - - respond_to do |format| - format.html - end end - + def paper_rss @newest_plos_paper = PlosPaper.order('created_at DESC').limit(20) @newest_mendeley_paper = MendeleyPaper.order('created_at DESC').limit(20) @@ -27,7 +12,7 @@ class NewsController < ApplicationController @newest_paper = @newest_mendeley_paper | @newest_plos_paper @newest_paper.sort! { |a,b| b.created_at <=> a.created_at } - render :action => "paper_rss", :layout => false + render action: 'paper_rss', layout: false end end diff --git a/app/controllers/password_resets_controller.rb b/app/controllers/password_resets_controller.rb index 0dc0b7f..46f1e51 100644 --- a/app/controllers/password_resets_controller.rb +++ b/app/controllers/password_resets_controller.rb @@ -1,16 +1,16 @@ # frozen_string_literal: true class PasswordResetsController < ApplicationController - before_filter :load_user_using_perishable_token, :only => [:edit, :update] + before_filter :load_user_using_perishable_token, only: [:edit, :update] before_filter :require_no_user def new - @title = "password reset" + @title = 'password reset' render end def edit - @title = "editing your password" + @title = 'editing your password' render end @@ -18,10 +18,10 @@ class PasswordResetsController < ApplicationController @user.password = params[:user][:password] @user.password_confirmation = params[:user][:password_confirmation] if @user.save - flash[:notice] = "Password successfully updated" - redirect_to "/" + flash[:notice] = 'Password successfully updated' + redirect_to '/' else - render :action => :edit + render action: :edit end end @@ -29,11 +29,11 @@ class PasswordResetsController < ApplicationController @user = User.find_by_email(params[:email]) if @user @user.deliver_password_reset_instructions! - flash[:notice] = "Instructions to reset your password have been mailed to you. Please check your email." + flash[:notice] = 'Instructions to reset your password have been mailed to you. Please check your email' redirect_to root_url else - flash[:notice] = "No user was found with that email adress" - render :action => :new + flash[:notice] = 'No user was found with that email adress' + render action: :new end end @@ -42,7 +42,7 @@ class PasswordResetsController < ApplicationController def load_user_using_perishable_token @user = User.find_using_perishable_token(params[:id]) unless @user - flash[:notice] = "We're sorry, but we couldn't locate your account. Try copy and pasting the url from the mail you received from us or restarting the password reset process" + flash[:notice] = 'We\'re sorry, but we couldn\'t locate your account. Try copy and pasting the url from the mail you received from us or restarting the password reset process' redirect_to root_url end end diff --git a/app/controllers/phenotype_comments_controller.rb b/app/controllers/phenotype_comments_controller.rb index 4b64a97..88be304 100644 --- a/app/controllers/phenotype_comments_controller.rb +++ b/app/controllers/phenotype_comments_controller.rb @@ -4,11 +4,11 @@ class PhenotypeCommentsController < ApplicationController def new @phenotype_comment = PhenotypeComment.new - @title = "Add comment" + @title = 'Add comment' respond_to do |format| format.html - format.xml { render :xml => @phenotype } + format.xml { render xml: @phenotype } end end @@ -18,14 +18,14 @@ class PhenotypeCommentsController < ApplicationController @phenotype_comment.reply_to_id = -1 else - @potential_reply_id = @phenotype_comment.comment_text.split()[0].chomp(":").gsub("@#","").to_i + @potential_reply_id = @phenotype_comment.comment_text.split()[0].chomp(':').gsub('@#','').to_i if PhenotypeComment.find_by_id(@potential_reply_id) != nil @phenotype_comment.reply_to_id = @potential_reply_id else @phenotype_comment.reply_to_id = -1 end - @phenotype_comment.comment_text = @phenotype_comment.comment_text.gsub(/\A(\@\#\d*\:)/,"") + @phenotype_comment.comment_text = @phenotype_comment.comment_text.gsub(/\A(\@\#\d*\:)/,'') end @phenotype_comment.user_id = current_user.id @phenotype_comment.phenotype_id = params[:phenotype_comment][:phenotype_id] @@ -38,9 +38,9 @@ class PhenotypeCommentsController < ApplicationController end end end - redirect_to "/phenotypes/"+@phenotype_comment.phenotype_id.to_s+"#comments", :notice => 'Comment succesfully created.' + redirect_to '/phenotypes/' +@phenotype_comment.phenotype_id.to_s+'#comments', notice: 'Comment succesfully created.' else - render :action => "new" + render action: 'new' end end diff --git a/app/controllers/phenotype_sets_controller.rb b/app/controllers/phenotype_sets_controller.rb index f2e99ad..ab18924 100644 --- a/app/controllers/phenotype_sets_controller.rb +++ b/app/controllers/phenotype_sets_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class PhenotypeSetsController < ApplicationController before_filter :require_user - + def enter_userphenotypes puts params @phenotypeset = PhenotypeSet.find_by_id(params[:id]) @@ -14,24 +14,24 @@ class PhenotypeSetsController < ApplicationController end @user = current_user end - + def save_user_phenotypes - @user_phenotypes = params[:user_phenotypes]["user_phenotypes"] + @user_phenotypes = params[:user_phenotypes]['user_phenotypes'] puts @user_phenotypes @user_phenotypes.each do |up| - if not up["variation"].empty? - @phenotype = Phenotype.find_by_id(up["phenotype"].to_s) - @user_phenotype = UserPhenotype.find_by_user_id_and_phenotype_id(current_user.id,up["phenotype"].to_s) + if not up['variation'].empty? + @phenotype = Phenotype.find_by_id(up['phenotype'].to_s) + @user_phenotype = UserPhenotype.find_by_user_id_and_phenotype_id(current_user.id,up['phenotype'].to_s) if @user_phenotype == nil @user_phenotype = current_user.user_phenotypes.build - @user_phenotype.phenotype_id = up["phenotype"].to_s + @user_phenotype.phenotype_id = up['phenotype'].to_s end - @user_phenotype.variation = up["variation"] + @user_phenotype.variation = up['variation'] @user_phenotype.save @phenotype.save end end end - - + + end diff --git a/app/controllers/phenotypes_controller.rb b/app/controllers/phenotypes_controller.rb index 660f2c2..9fd71b3 100644 --- a/app/controllers/phenotypes_controller.rb +++ b/app/controllers/phenotypes_controller.rb @@ -14,7 +14,7 @@ class PhenotypesController < ApplicationController respond_to do |format| format.html - format.xml + format.xml format.json do phenotypes_json = @phenotypes.find_each.map do |p| @@ -25,7 +25,7 @@ class PhenotypesController < ApplicationController number_of_users: p.number_of_users } end - render :json => phenotypes_json + render json: phenotypes_json end end end @@ -33,7 +33,10 @@ class PhenotypesController < ApplicationController def new @phenotype = Phenotype.new @user_phenotype = UserPhenotype.new - @title = "Create a new phenotype" + @title = 'Create a new phenotype' + + # Make list of phenotypes for autocomplete + @phenotype_list = Phenotype.pluck(:characteristic).to_json # Make list of phenotypes for autocomplete @phenotype_list = Phenotype.pluck(:characteristic).to_json @@ -124,9 +127,9 @@ class PhenotypesController < ApplicationController @user_phenotype = UserPhenotype.find_by_phenotype_id_and_user_id(params[:id],current_user.id) if @user_phenotype != nil @users_variation = @user_phenotype.variation - @variation_recommend_request = params[:id]+"=>"+@users_variation + @variation_recommend_request = params[:id] + '=>' + @users_variation else - @variation_recommend_request = "" + @variation_recommend_request = '' end @similar_combinations = @phenotype_recommender.for(@variation_recommend_request) @@ -135,7 +138,7 @@ class PhenotypesController < ApplicationController @similar_combinations.each do |s| if @combination_counter < 3 - @phenotype = Phenotype.find_by_id(s.item_id.split("=>")[0]) + @phenotype = Phenotype.find_by(id: s.item_id.split('=>')[0]) if current_user.phenotypes.include?(@phenotype) == false @similar_variations << s @combination_counter += 1 @@ -145,11 +148,11 @@ class PhenotypesController < ApplicationController end end - @phenotype = Phenotype.find_by_id(params[:id]) + @phenotype = Phenotype.find_by(id: params[:id]) if @similar_phenotypes == [] and @similar_variations == [] - redirect_to :action => "index" - else + redirect_to action: 'index' + else respond_to do |format| format.html end @@ -168,7 +171,7 @@ class PhenotypesController < ApplicationController @genotypes.sort!{ |b,a| a.created_at <=> b.created_at } - render :action => "rss", :layout => false + render action: 'rss', layout: false end def get_genotypes @@ -185,29 +188,30 @@ class PhenotypesController < ApplicationController def json_variation @result = {} begin - @phenotype = Phenotype.find_by_id(params[:phenotype_id]) - @result["id"] = @phenotype.id - @result["characteristic"] = @phenotype.characteristic - @result["description"] = @phenotype.description - @result["known_variations"] = @phenotype.known_phenotypes - @result["users"] = [] + @phenotype = Phenotype.find_by(id: params[:phenotype_id]) + @result['id'] = @phenotype.id + @result['characteristic'] = @phenotype.characteristic + @result['description'] = @phenotype.description + @result['known_variations'] = @phenotype.known_phenotypes + @result['users'] = [] @phenotype.user_phenotypes.each do |up| - @user_phenotype = {"user_id" => up.user_id,"variation" => up.variation} - @result["users"] << @user_phenotype + @user_phenotype = { 'user_id' => up.user_id, + 'variation' => up.variation } + @result['users'] << @user_phenotype end rescue - @result["error"] = "Sorry, this phenotype doesn't exist" + @result['error'] = 'Sorry, this phenotype doesn\'t exist' end respond_to do |format| - format.json { render :json => @result } - end + format.json { render json: @result } + end end def json - if params[:user_id].index(",") - @user_ids = params[:user_id].split(",") + if params[:user_id].index(',') + @user_ids = params[:user_id].split(',') @results = [] @user_ids.each do |id| @new_param = {} @@ -215,9 +219,9 @@ class PhenotypesController < ApplicationController @results << json_element(@new_param) end - elsif params[:user_id].index("-") + elsif params[:user_id].index('-') @results = [] - @id_array = params[:user_id].split("-") + @id_array = params[:user_id].split('-') @user_ids = (@id_array[0].to_i..@id_array[1].to_i).to_a @user_ids.each do |id| @new_param = {} @@ -225,37 +229,37 @@ class PhenotypesController < ApplicationController @results << json_element(@new_param) end - else - @results = json_element(params) - end + else + @results = json_element(params) + end respond_to do |format| - format.json { render :json => @results } + format.json { render json: @results } end end def json_element(params) begin - @user = User.find_by_id(params[:user_id]) + @user = User.find_by(id: params[:user_id]) @result = {} @user_phenotypes = UserPhenotype.where(user_id: @user.id) - @result["user"] = {} - @result["user"]["name"] = @user.name - @result["user"]["id"] = @user.id + @result['user'] = {} + @result['user']['name'] = @user.name + @result['user']['id'] = @user.id @phenotype_hash = {} @user_phenotypes.each do |up| @phenotype_hash[up.phenotype.characteristic] = {} - @phenotype_hash[up.phenotype.characteristic]["phenotype_id"] = up.phenotype.id - @phenotype_hash[up.phenotype.characteristic]["variation"] = up.variation + @phenotype_hash[up.phenotype.characteristic]['phenotype_id'] = up.phenotype.id + @phenotype_hash[up.phenotype.characteristic]['variation'] = up.variation end - @result["phenotypes"] = @phenotype_hash + @result['phenotypes'] = @phenotype_hash rescue @result = {} - @result["error"] = "Sorry, we couldn't find any information for this user" + @result['error'] = 'Sorry, we couldn\'t find any information for this user' end return @result end @@ -263,24 +267,24 @@ class PhenotypesController < ApplicationController private def sort_column - Phenotype.column_names.include?(params[:sort]) ? params[:sort] : "number_of_users" + Phenotype.column_names.include?(params[:sort]) ? params[:sort] : 'number_of_users' end private def sort_column - Phenotype.column_names.include?(params[:sort]) ? params[:sort] : "number_of_users" + Phenotype.column_names.include?(params[:sort]) ? params[:sort] : 'number_of_users' end def sort_direction - %w[desc asc].include?(params[:direction]) ? params[:direction] : "desc" + %w[desc asc].include?(params[:direction]) ? params[:direction] : 'desc' end def check_and_award_new_phenotypes(amount, achievement_string) @achievement = Achievement.find_by_award(achievement_string) if current_user.phenotype_creation_counter >= amount and UserAchievement.find_by_achievement_id_and_user_id(@achievement.id,current_user.id) == nil - UserAchievement.create(:achievement_id => @achievement.id, :user_id => current_user.id) + UserAchievement.create(achievement_id: @achievement.id, user_id: current_user.id) flash[:achievement] = %(Congratulations! You've unlocked an achievement: #{@achievement.award}).html_safe end end @@ -288,7 +292,7 @@ class PhenotypesController < ApplicationController def check_and_award_additional_phenotypes(amount, achievement_string) @achievement = Achievement.find_by_award(achievement_string) if current_user.phenotype_count >= amount and UserAchievement.find_by_achievement_id_and_user_id(@achievement.id,current_user.id) == nil - UserAchievement.create(:user_id => current_user.id, :achievement_id => @achievement.id) + UserAchievement.create(user_id: current_user.id, achievement_id: @achievement.id) flash[:achievement] = %(Congratulations! You've unlocked an achievement: #{@achievement.award}).html_safe end end diff --git a/app/controllers/picture_phenotype_comments_controller.rb b/app/controllers/picture_phenotype_comments_controller.rb index 2e0cf9b..28472966 100644 --- a/app/controllers/picture_phenotype_comments_controller.rb +++ b/app/controllers/picture_phenotype_comments_controller.rb @@ -4,11 +4,11 @@ class PicturePhenotypeCommentsController < ApplicationController def new @phenotype_comment = PicturePhenotypeComment.new - @title = "Add comment" + @title = 'Add comment' respond_to do |format| format.html - format.xml { render :xml => @phenotype } + format.xml { render xml: @phenotype } end end @@ -18,19 +18,19 @@ class PicturePhenotypeCommentsController < ApplicationController @phenotype_comment.reply_to_id = -1 else - @potential_reply_id = @phenotype_comment.comment_text.split()[0].chomp(":").gsub("@#","").to_i + @potential_reply_id = @phenotype_comment.comment_text.split()[0].chomp(':').gsub('@#', '').to_i if PicturePhenotypeComment.find_by_id(@potential_reply_id) != nil @phenotype_comment.reply_to_id = @potential_reply_id else @phenotype_comment.reply_to_id = -1 end - @phenotype_comment.comment_text = @phenotype_comment.comment_text.gsub(/\A(\@\#\d*\:)/,"") + @phenotype_comment.comment_text = @phenotype_comment.comment_text.gsub(/\A(\@\#\d*\:)/, '') end @phenotype_comment.user_id = current_user.id @phenotype_comment.picture_phenotype_id = params[:picture_phenotype_comment][:picture_phenotype_id] if @phenotype_comment.save - if @phenotype_comment.reply_to_id != -1 + if @phenotype_comment.reply_to_id != -1 @reply_user = PicturePhenotypeComment.find_by_id(@phenotype_comment.reply_to_id).user if@reply_user != nil if @reply_user.message_on_phenotype_comment_reply == true @@ -38,9 +38,9 @@ class PicturePhenotypeCommentsController < ApplicationController end end end - redirect_to "/picture_phenotypes/"+@phenotype_comment.picture_phenotype_id.to_s+"#comments", :notice => 'Comment succesfully created.' + redirect_to '/picture_phenotypes/' + @phenotype_comment.picture_phenotype_id.to_s + '#comments', notice: 'Comment succesfully created.' else - render :action => "new" + render action: 'new' end end diff --git a/app/controllers/picture_phenotypes_controller.rb b/app/controllers/picture_phenotypes_controller.rb index 6e437a7..4be8966 100644 --- a/app/controllers/picture_phenotypes_controller.rb +++ b/app/controllers/picture_phenotypes_controller.rb @@ -4,9 +4,9 @@ class PicturePhenotypesController < ApplicationController helper_method :sort_column, :sort_direction def index - @title = "Listing all phenotypes" - @phenotypes = PicturePhenotype.order(sort_column + " " + sort_direction) - @phenotypes_paginate = @phenotypes.paginate(:page => params[:page],:per_page => 10) + @title = 'Listing all phenotypes' + @phenotypes = PicturePhenotype.order(sort_column + ' ' + sort_direction) + @phenotypes_paginate = @phenotypes.paginate(page: params[:page],per_page: 10) #@phenotypes_json = [] #@phenotypes.each do |p| # @phenotype = {} @@ -18,15 +18,15 @@ class PicturePhenotypesController < ApplicationController #end respond_to do |format| format.html - format.xml - #format.json {render :json => @phenotypes_json} + format.xml + #format.json {render json: @phenotypes_json} end end def new @phenotype = PicturePhenotype.new @user_phenotype = UserPicturePhenotype.new - @title = "Create a new picture phenotype" + @title = 'Create a new picture phenotype' respond_to do |format| format.html @@ -40,16 +40,16 @@ class PicturePhenotypesController < ApplicationController @phenotype = PicturePhenotype.create(picture_phenotype_params) # award: created one (or more) phenotypes - current_user.update_attributes(:phenotype_creation_counter => (current_user.phenotype_creation_counter + 1) ) + current_user.update_attributes(phenotype_creation_counter: (current_user.phenotype_creation_counter + 1) ) - check_and_award_new_phenotypes(1, "Created a new phenotype") - check_and_award_new_phenotypes(5, "Created 5 new phenotypes") - check_and_award_new_phenotypes(10, "Created 10 new phenotypes") + check_and_award_new_phenotypes(1, 'Created a new phenotype') + check_and_award_new_phenotypes(5, 'Created 5 new phenotypes') + check_and_award_new_phenotypes(10, 'Created 10 new phenotypes') end - if params[:picture_phenotype][:characteristic] == "" - flash[:warning] = "Phenotype characteristic may not be empty" - redirect_to :action => "new" + if params[:picture_phenotype][:characteristic] == '' + flash[:warning] = 'Phenotype characteristic may not be empty' + redirect_to action: 'new' else @phenotype.save @@ -75,22 +75,22 @@ class PicturePhenotypesController < ApplicationController redirect_to current_user else - flash[:warning] = "Something went wrong in creating the phenotype" - redirect_to :action => "new" + flash[:warning] = 'Something went wrong in creating the phenotype' + redirect_to action: 'new' end else - flash[:warning] = "You have already entered your variation at this phenotype" - redirect_to :action => "new" + flash[:warning] = 'You have already entered your variation at this phenotype' + redirect_to action: 'new' end end end def show - #@phenotypes = Phenotype.where(:user_id => current_user.id).all - #@title = "Phenotypes" + #@phenotypes = Phenotype.where(user_id: current_user.id).all + #@title = 'Phenotypes' @phenotype = PicturePhenotype.find(params[:id]) || not_found @comments = PicturePhenotypeComment - .where(:picture_phenotype_id => params[:id]) + .where(picture_phenotype_id: params[:id]) .order(:created_at) @phenotype_comment = PicturePhenotypeComment.new if current_user and UserPicturePhenotype.find_by_user_id_and_picture_phenotype_id(current_user.id,@phenotype.id) @@ -117,30 +117,30 @@ class PicturePhenotypesController < ApplicationController @genotypes.sort!{ |b,a| a.created_at <=> b.created_at } - render :action => "rss", :layout => false + render action: 'rss', layout: false end private def sort_column - PicturePhenotype.column_names.include?(params[:sort]) ? params[:sort] : "number_of_users" + PicturePhenotype.column_names.include?(params[:sort]) ? params[:sort] : 'number_of_users' end private def sort_column - PicturePhenotype.column_names.include?(params[:sort]) ? params[:sort] : "number_of_users" + PicturePhenotype.column_names.include?(params[:sort]) ? params[:sort] : 'number_of_users' end def sort_direction - %w[desc asc].include?(params[:direction]) ? params[:direction] : "desc" + %w[desc asc].include?(params[:direction]) ? params[:direction] : 'desc' end def check_and_award_new_phenotypes(amount, achievement_string) @achievement = Achievement.find_by_award(achievement_string) if current_user.phenotype_creation_counter >= amount and UserAchievement.find_by_achievement_id_and_user_id(@achievement.id,current_user.id) == nil - UserAchievement.create(:achievement_id => @achievement.id, :user_id => current_user.id) + UserAchievement.create(achievement_id: @achievement.id, user_id: current_user.id) flash[:achievement] = %(Congratulations! You've unlocked an achievement: #{@achievement.award}).html_safe end end @@ -148,7 +148,7 @@ class PicturePhenotypesController < ApplicationController def check_and_award_additional_phenotypes(amount, achievement_string) @achievement = Achievement.find_by_award(achievement_string) if current_user.phenotype_count >= amount and UserAchievement.find_by_achievement_id_and_user_id(@achievement.id,current_user.id) == nil - UserAchievement.create(:user_id => current_user.id, :achievement_id => @achievement.id) + UserAchievement.create(user_id: current_user.id, achievement_id: @achievement.id) flash[:achievement] = %(Congratulations! You've unlocked an achievement: #{@achievement.award}).html_safe end end diff --git a/app/controllers/search_results_controller.rb b/app/controllers/search_results_controller.rb index c685b84..5ca4853 100644 --- a/app/controllers/search_results_controller.rb +++ b/app/controllers/search_results_controller.rb @@ -2,7 +2,7 @@ class SearchResultsController < ApplicationController def search - @title = "Search results" + @title = 'Search results' @all_len = 0 [ :snps, :phenotypes, :users, :snp_comments, :phenotype_comments, diff --git a/app/controllers/snp_comments_controller.rb b/app/controllers/snp_comments_controller.rb index 020a1d5..b42080a 100644 --- a/app/controllers/snp_comments_controller.rb +++ b/app/controllers/snp_comments_controller.rb @@ -42,7 +42,7 @@ class SnpCommentsController < ApplicationController end end end - redirect_to "/snps/#{@snp_comment.snp_id}#comments", notice: 'Comment succesfully created.' + redirect_to "/snps/#{@snp_comment.snp_id}#comments", notice: 'Comment successfully created.' else render action: 'new' end diff --git a/app/controllers/snps_controller.rb b/app/controllers/snps_controller.rb index 831700f..3d59ef8 100644 --- a/app/controllers/snps_controller.rb +++ b/app/controllers/snps_controller.rb @@ -4,9 +4,9 @@ class SnpsController < ApplicationController before_filter :find_snp, except: [:index, :json,:json_annotation] def index - @snps = Snp.order(sort_column + " "+ sort_direction) + @snps = Snp.order(sort_column + ' ' + sort_direction) @snps_paginate = @snps.paginate(page: params[:page], per_page: 10) - @title = "Listing all SNPs" + @title = 'Listing all SNPs' end def show @@ -41,8 +41,8 @@ class SnpsController < ApplicationController def json # TODO: Refactor this. - Helge - if params[:user_id].index(",") - @user_ids = params[:user_id].split(",") + if params[:user_id].index(',') + @user_ids = params[:user_id].split(',') @results = [] @user_ids.each do |id| @new_param = {} @@ -50,9 +50,9 @@ class SnpsController < ApplicationController @new_param[:snp_name] = params[:snp_name].downcase @results << json_element(@new_param) end - elsif params[:user_id].index("-") + elsif params[:user_id].index('-') @results = [] - @id_array = params[:user_id].split("-") + @id_array = params[:user_id].split('-') @user_ids = (@id_array[0].to_i..@id_array[1].to_i).to_a @user_ids.each do |id| @new_param = {} @@ -72,79 +72,79 @@ class SnpsController < ApplicationController def make_annotation(result, snp, name) # TODO: Refactor this. - Helge result[name] = {} - result[name]["name"] = snp.name - result[name]["chromosome"] = snp.chromosome - result[name]["position"] = snp.position - result[name]["allele_frequency"] = snp.allele_frequency - result[name]["genotype_frequency"] = snp.genotype_frequency - result[name]["annotations"] = {} - result[name]["annotations"]["mendeley"] = [] - puts "got snp-details" + result[name]['name'] = snp.name + result[name]['chromosome'] = snp.chromosome + result[name]['position'] = snp.position + result[name]['allele_frequency'] = snp.allele_frequency + result[name]['genotype_frequency'] = snp.genotype_frequency + result[name]['annotations'] = {} + result[name]['annotations']['mendeley'] = [] + puts 'got snp-details' snp.mendeley_papers.each do |mp| @mendeley = {} - @mendeley["author"] = mp.first_author - @mendeley["title"] = mp.title - @mendeley["publication_year"] = mp.pub_year - @mendeley["number_of_readers"] = mp.reader - @mendeley["open_access"] = mp.open_access - @mendeley["url"] = mp.mendeley_url - @mendeley["doi"] = mp.doi - result[name]["annotations"]["mendeley"] << @mendeley + @mendeley['author'] = mp.first_author + @mendeley['title'] = mp.title + @mendeley['publication_year'] = mp.pub_year + @mendeley['number_of_readers'] = mp.reader + @mendeley['open_access'] = mp.open_access + @mendeley['url'] = mp.mendeley_url + @mendeley['doi'] = mp.doi + result[name]['annotations']['mendeley'] << @mendeley end - puts "got mendeley-details" - result[name]["annotations"]["plos"] = [] + puts 'got mendeley-details' + result[name]['annotations']['plos'] = [] snp.plos_papers.each do |mp| @plos = {} - @plos["author"] = mp.first_author - @plos["title"] = mp.title - @plos["publication_date"] = mp.pub_date - @plos["number_of_readers"] = mp.reader - @plos["url"] = "http://dx.doi.org/"+mp.doi - @plos["doi"] = mp.doi - result[name]["annotations"]["plos"] << @plos + @plos['author'] = mp.first_author + @plos['title'] = mp.title + @plos['publication_date'] = mp.pub_date + @plos['number_of_readers'] = mp.reader + @plos['url'] = 'http://dx.doi.org/'+mp.doi + @plos['doi'] = mp.doi + result[name]['annotations']['plos'] << @plos end - puts "got plos-details" - result[name]["annotations"]["snpedia"] = [] + puts 'got plos-details' + result[name]['annotations']['snpedia'] = [] snp.snpedia_papers.each do |mp| snpedia = {} - snpedia["url"] = mp.url - snpedia["summary"] = mp.summary - result[name]["annotations"]["snpedia"] << snpedia + snpedia['url'] = mp.url + snpedia['summary'] = mp.summary + result[name]['annotations']['snpedia'] << snpedia end - puts "got snpedia-details" - result[name]["annotations"]["pgp_annotations"] = [] + puts 'got snpedia-details' + result[name]['annotations']['pgp_annotations'] = [] snp.pgp_annotations.each do |p| @pgp = {} - @pgp["gene"] = p.gene - @pgp["impact"] = p.qualified_impact - @pgp["inheritance"] = p.inheritance - @pgp["trait"] = p.trait - @pgp["summary"] = p.summary - result[name]["annotations"]["pgp_annotations"] << @pgp + @pgp['gene'] = p.gene + @pgp['impact'] = p.qualified_impact + @pgp['inheritance'] = p.inheritance + @pgp['trait'] = p.trait + @pgp['summary'] = p.summary + result[name]['annotations']['pgp_annotations'] << @pgp end - puts "got pgp details" - result[name]["annotations"]["genome_gov_publications"] = [] + puts 'got pgp details' + result[name]['annotations']['genome_gov_publications'] = [] snp.genome_gov_papers.each do |g| @gov = {} - @gov["title"] = g.title - @gov["first_author"] = g.first_author - @gov["pubmed_link"] = g.pubmed_link - @gov["publication_date"] = g.pub_date - @gov["journal"] = g.journal - @gov["trait"] = g.trait - @gov["pvalue"] = g.pvalue - @gov["pvalue_description"] = g.pvalue_description - @gov["confidence_interval"] = g.confidence_interval - result[name]["annotations"]["genome_gov_publications"] << @gov + @gov['title'] = g.title + @gov['first_author'] = g.first_author + @gov['pubmed_link'] = g.pubmed_link + @gov['publication_date'] = g.pub_date + @gov['journal'] = g.journal + @gov['trait'] = g.trait + @gov['pvalue'] = g.pvalue + @gov['pvalue_description'] = g.pvalue_description + @gov['confidence_interval'] = g.confidence_interval + result[name]['annotations']['genome_gov_publications'] << @gov end - puts "got genome.gov details" + puts 'got genome.gov details' return result end def json_annotation result = {} - if params[:snp_name].index(",") - snps = params[:snp_name].split(",") + if params[:snp_name].index(',') + snps = params[:snp_name].split(',') snps.each do |s| snp = Snp.find_by_name(s) # did we get a SNP? @@ -153,7 +153,7 @@ class SnpsController < ApplicationController else # empty dictionary, else we get a half-filled dictionary for EXISTS, DOESN'T EXIST, EXISTS result = {} - result["error"] = "Sorry, we couldn't find SNP " + s + result['error'] = 'Sorry, we couldn\'t find SNP' + s # just stop. Alternative: we could put in one error per SNP? break end @@ -162,9 +162,9 @@ class SnpsController < ApplicationController snp = Snp.find_by_name(params[:snp_name].downcase) if snp puts snp.name - result = make_annotation(result, snp, "snp") + result = make_annotation(result, snp, 'snp') else - result["error"] = "Sorry, we couldn't find SNP " + params[:snp_name] + result['error'] = 'Sorry, we couldn\'t find SNP ' + params[:snp_name] end end @@ -177,11 +177,11 @@ class SnpsController < ApplicationController private def sort_column - Snp.column_names.include?(params[:sort]) ? params[:sort] : "ranking" + Snp.column_names.include?(params[:sort]) ? params[:sort] : 'ranking' end def sort_direction - %w[asc desc].include?(params[:direction]) ? params[:direction] : "desc" + %w[asc desc].include?(params[:direction]) ? params[:direction] : 'desc' end def json_element(params) @@ -189,10 +189,10 @@ class SnpsController < ApplicationController @result = {} begin @snp = params[:snp] || Snp.find_by_name(params[:snp_name].downcase) - @result["snp"] = {} - @result["snp"]["name"] = @snp.name - @result["snp"]["chromosome"] = @snp.chromosome - @result["snp"]["position"] = @snp.position + @result['snp'] = {} + @result['snp']['name'] = @snp.name + @result['snp']['chromosome'] = @snp.chromosome + @result['snp']['position'] = @snp.position @user = User.find_by_id(params[:user_id]) # Same hacky fix as above on line 35 - Philipp @@ -206,18 +206,18 @@ class SnpsController < ApplicationController @user_snps.each do |us| @genotype_hash = {} - @genotype_hash["genotype_id"] = us.genotype_id - @genotype_hash["local_genotype"] = us.local_genotype + @genotype_hash['genotype_id'] = us.genotype_id + @genotype_hash['local_genotype'] = us.local_genotype @genotypes_array << @genotype_hash end - @result["user"] = {} - @result["user"]["name"] = @user.name - @result["user"]["id"] = @user.id - @result["user"]["genotypes"] = @genotypes_array + @result['user'] = {} + @result['user']['name'] = @user.name + @result['user']['id'] = @user.id + @result['user']['genotypes'] = @genotypes_array rescue @result = {} - @result["error"] = "Sorry, we couldn't find any information for SNP "+params[:snp_name].to_s+" and user "+params[:user_id].to_s + @result['error'] = "Sorry, we couldn't find any information for SNP "+params[:snp_name].to_s+" and user "+params[:user_id].to_s end return @result end @@ -230,7 +230,7 @@ class SnpsController < ApplicationController # the request path will not match the post_path, and we should do # a 301 redirect that uses the current friendly id. if request.path != snp_path(@snp) - if request.path.index(".json") == nil + if request.path.index('.json') == nil return redirect_to @snp, status: :moved_permanently end end diff --git a/app/controllers/static_controller.rb b/app/controllers/static_controller.rb index 15c8743..212c932 100644 --- a/app/controllers/static_controller.rb +++ b/app/controllers/static_controller.rb @@ -1,26 +1,26 @@ # frozen_string_literal: true class StaticController < ApplicationController - def index - @title = "Welcome" - respond_to do |format| - format.html - format.xml # just for the hell of it - end - end - - def faq - @title = "FAQ" - respond_to do |format| - format.html - format.xml - end - end - - def press - @title = "openSNP in the press" - respond_to do |format| - format.html - format.xml - end + def index + @title = 'Welcome' + respond_to do |format| + format.html + format.xml # just for the hell of it end + end + + def faq + @title = 'FAQ' + respond_to do |format| + format.html + format.xml + end + end + + def press + @title = 'openSNP in the press' + respond_to do |format| + format.html + format.xml + end + end end diff --git a/app/controllers/updates_controller.rb b/app/controllers/updates_controller.rb new file mode 100644 index 0000000..3231276 --- /dev/null +++ b/app/controllers/updates_controller.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class UpdatesController < ApplicationController + def index + @new_genotypes = Genotype.order('created_at DESC').limit(20) + @new_users = User.order('created_at DESC').limit(20) + @new_phenotypes = Phenotype.order('created_at DESC').limit(20) + @new_phenotype_comments = PhenotypeComment.order('created_at DESC').limit(20) + @new_snp_comments = SnpComment.order('created_at DESC').limit(20) + + @newest_plos_paper = PlosPaper.order('created_at DESC').limit(20) + @newest_mendeley_paper = MendeleyPaper.order('created_at DESC').limit(20) + + @newest_paper = @newest_mendeley_paper | @newest_plos_paper + @newest_paper.sort! { |a, b| b.created_at <=> a.created_at } + + respond_to do |format| + format.html + end + end +end diff --git a/app/controllers/user_phenotypes_controller.rb b/app/controllers/user_phenotypes_controller.rb index afcbbf4..508cb28 100644 --- a/app/controllers/user_phenotypes_controller.rb +++ b/app/controllers/user_phenotypes_controller.rb @@ -4,7 +4,7 @@ class UserPhenotypesController < ApplicationController def new @user_phenotype = UserPhenotype.new - @title = "Add variation" + @title = 'Add variation' if params[:phenotype] @phenotype = Phenotype.find(params[:phenotype]) @@ -17,7 +17,7 @@ class UserPhenotypesController < ApplicationController respond_to do |format| format.js format.html - format.xml { render :xml => @phenotype } + format.xml { render xml: @phenotype } end end @@ -45,30 +45,32 @@ class UserPhenotypesController < ApplicationController check_and_award_additional_phenotypes(100, "Entered 100 additional phenotypes") if @js_modal == true - redirect_to "/users/"+current_user.id.to_s + redirect_to '/users/' + current_user.id.to_s else - redirect_to "/recommend_phenotype/"+@user_phenotype.phenotype_id.to_s, :notice => 'Variation successfully saved' + redirect_to '/recommend_phenotype/' + @user_phenotype.phenotype_id.to_s, + notice: 'Variation successfully saved' end else - flash[:warning] = "Please enter a variation." - redirect_to "/users/"+current_user.id.to_s + flash[:warning] = 'Please enter a variation' + redirect_to '/users/' + current_user.id.to_s end else - redirect_to "/phenotypes/"+@user_phenotype.phenotype_id.to_s, :notice => 'You already have a variation entered' + redirect_to '/phenotypes/' + @user_phenotype.phenotype_id.to_s, + notice: 'You already have a variation entered' end end private def check_and_award_new_phenotypes(amount, achievement_string) - if current_user.phenotype_creation_counter >= amount and UserAchievement.find_by_achievement_id_and_user_id(Achievement.find_by_award(achievement_string).id,current_user.id) == nil - UserAchievement.create(:achievement_id => Achievement.find_by_award(achievement_string).id, :user_id => current_user.id) + if current_user.phenotype_creation_counter >= amount and UserAchievement.find_by(achievement_id: Achievement.find_by_award(achievement_string).id,user_id:current_user.id) == nil + UserAchievement.create(achievement_id: Achievement.find_by(award: achievement_string).id, user_id: current_user.id) end end def check_and_award_additional_phenotypes(amount, achievement_string) - if current_user.phenotype_count >= amount and UserAchievement.find_by_achievement_id_and_user_id(Achievement.find_by_award(achievement_string).id,current_user.id) == nil - UserAchievement.create(:user_id => current_user.id, :achievement_id => Achievement.find_by_award(achievement_string).id) + if current_user.phenotype_count >= amount and UserAchievement.find_by(achievement_id: Achievement.find_by_award(achievement_string).id,user_id: current_user.id) == nil + UserAchievement.create(user_id: current_user.id, achievement_id: Achievement.find_by_award(achievement_string).id) end end diff --git a/app/controllers/user_picture_phenotypes_controller.rb b/app/controllers/user_picture_phenotypes_controller.rb index ed913fe..0fead03 100644 --- a/app/controllers/user_picture_phenotypes_controller.rb +++ b/app/controllers/user_picture_phenotypes_controller.rb @@ -4,7 +4,7 @@ class UserPicturePhenotypesController < ApplicationController def new @user_phenotype = UserPicturePhenotype.new - @title = "Add variation" + @title = 'Add variation' if params[:phenotype] @phenotype = PicturePhenotype.find(params[:picture_phenotype]) @@ -17,7 +17,7 @@ class UserPicturePhenotypesController < ApplicationController respond_to do |format| format.js format.html - format.xml { render :xml => @phenotype } + format.xml { render xml: @phenotype } end end @@ -25,7 +25,7 @@ class UserPicturePhenotypesController < ApplicationController @user_phenotype = UserPicturePhenotype.find_by_user_id_and_picture_phenotype_id(current_user.id,params[:user_picture_phenotype][:picture_phenotype_id]) @user_phenotype.phenotype_picture = params[:user_picture_phenotype][:phenotype_picture] @user_phenotype.save() - redirect_to "/picture_phenotypes/"+@user_phenotype.picture_phenotype_id.to_s, :notice => 'Variation successfully updated' + redirect_to '/picture_phenotypes/'+@user_phenotype.picture_phenotype_id.to_s, notice: 'Variation successfully updated' end def delete @@ -33,9 +33,9 @@ class UserPicturePhenotypesController < ApplicationController @phenotype = @user_phenotype.picture_phenotype if @user_phenotype.user_id == current_user.id @user_phenotype.delete() - redirect_to "/picture_phenotypes/"+@user_phenotype.picture_phenotype_id.to_s, :notice => 'Variation successfully deleted' + redirect_to "/picture_phenotypes/"+@user_phenotype.picture_phenotype_id.to_s, notice: 'Variation successfully deleted' else - redirect_to "/picture_phenotypes/"+@user_phenotype.picture_phenotype_id.to_s, :notice => 'Whops, something went wrong!' + redirect_to '/picture_phenotypes/'+@user_phenotype.picture_phenotype_id.to_s, notice: 'Whops, something went wrong' end end @@ -67,16 +67,16 @@ class UserPicturePhenotypesController < ApplicationController check_and_award_additional_phenotypes(100, "Entered 100 additional phenotypes") if @js_modal == true - redirect_to "/users/"+current_user.id.to_s + redirect_to '/users/' + current_user.id.to_s else - redirect_to "/picture_phenotypes/"+@user_phenotype.picture_phenotype_id.to_s, :notice => 'Variation successfully saved' + redirect_to '/picture_phenotypes/' + @user_phenotype.picture_phenotype_id.to_s, notice: 'Variation successfully saved' end else - flash[:warning] = "Please enter a variation." - redirect_to "/users/"+current_user.id.to_s + flash[:warning] = 'Please enter a variation' + redirect_to '/users/' + current_user.id.to_s end else - redirect_to "/picture_phenotypes/"+@user_phenotype.picture_phenotype_id.to_s, :notice => 'You already have a variation entered' + redirect_to '/picture_phenotypes/' + @user_phenotype.picture_phenotype_id.to_s, notice: 'You already have a variation entered' end end @@ -84,13 +84,13 @@ class UserPicturePhenotypesController < ApplicationController def check_and_award_new_phenotypes(amount, achievement_string) if current_user.phenotype_creation_counter >= amount and UserAchievement.find_by_achievement_id_and_user_id(Achievement.find_by_award(achievement_string).id,current_user.id) == nil - UserAchievement.create(:achievement_id => Achievement.find_by_award(achievement_string).id, :user_id => current_user.id) + UserAchievement.create(achievement_id: Achievement.find_by_award(achievement_string).id, user_id: current_user.id) end end def check_and_award_additional_phenotypes(amount, achievement_string) if current_user.phenotype_count >= amount and UserAchievement.find_by_achievement_id_and_user_id(Achievement.find_by_award(achievement_string).id,current_user.id) == nil - UserAchievement.create(:user_id => current_user.id, :achievement_id => Achievement.find_by_award(achievement_string).id) + UserAchievement.create(user_id: current_user.id, achievement_id: Achievement.find_by_award(achievement_string).id) end end diff --git a/app/controllers/user_sessions_controller.rb b/app/controllers/user_sessions_controller.rb index ff0c937..8263c9a 100644 --- a/app/controllers/user_sessions_controller.rb +++ b/app/controllers/user_sessions_controller.rb @@ -1,26 +1,26 @@ # frozen_string_literal: true class UserSessionsController < ApplicationController - before_filter :require_no_user, :only => [:new, :create] - before_filter :require_user, :only => :destroy + before_filter :require_no_user, only: [:new, :create] + before_filter :require_user, only: :destroy def new @user_session = UserSession.new - @title = "Login" + @title = 'Login' end def create @user_session = UserSession.new(user_session_params) if @user_session.save - flash[:notice] = "Login successful!" + flash[:notice] = 'Login successful!' redirect_to @user_session.user else - render :action => :new + render action: :new end end def destroy current_user_session.destroy - flash[:notice] = "Logout successful!" + flash[:notice] = 'Logout successful!' redirect_to root_url end diff --git a/app/controllers/user_snps_controller.rb b/app/controllers/user_snps_controller.rb index 916206a..28657db 100644 --- a/app/controllers/user_snps_controller.rb +++ b/app/controllers/user_snps_controller.rb @@ -10,7 +10,7 @@ class UserSnpsController < ApplicationController @user_snps = Snp.find_by_name(params[:snp_name]).user_snps.includes(:user) render layout: false else - render text: 'Something went wrong.', layout: false + render text: 'Something went wrong', layout: false end end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a0f2277..9e13fd5 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -3,15 +3,15 @@ class UsersController < ApplicationController helper_method :sort_column, :sort_direction before_filter :require_owner, only: [ :update, :destroy, :edit, :changepassword ] - before_filter :require_no_user, :only => [:new, :create] + before_filter :require_no_user, only: [:new, :create] def new @user = User.new - @title = "Sign up" + @title = 'Sign up' respond_to do |format| format.html - format.xml { render :xml => @user } + format.xml { render xml: @user } end end @@ -19,11 +19,11 @@ class UsersController < ApplicationController @user = User.new(user_params) if not params[:read] - flash[:warning] = "You must tick the box to proceed!" + flash[:warning] = 'You must tick the box to proceed' end if params[:read] && verify_recaptcha(model: @user) && @user.save - flash[:notice] = "Account registered!" + flash[:notice] = 'Account registered' UserMailer.welcome_user(@user).deliver_later redirect_to @user else @@ -35,9 +35,9 @@ class UsersController < ApplicationController def index # showing all users # TODO: Refactor this. - Helge - @users = User.order(sort_column + " " + sort_direction) - @users_paginate = @users.paginate(:page => params[:page], :per_page => 10) - @title = "Listing all users" + @users = User.order(sort_column + ' ' + sort_direction) + @users_paginate = @users.paginate(page: params[:page], per_page: 10) + @title = 'Listing all users' if request.format.json? @result = [] @@ -45,41 +45,41 @@ class UsersController < ApplicationController @users = User.all @users.each do |u| @user = {} - @user["name"] = u.name - @user["id"] = u.id - @user["genotypes"] = [] + @user['name'] = u.name + @user['id'] = u.id + @user['genotypes'] = [] Genotype.where(user_id: u.id).each do |g| @genotype = {} - @genotype["id"] = g.id - @genotype["filetype"] = g.filetype - @genotype["download_url"] = 'http://opensnp.org/data/' + g.fs_filename - @user["genotypes"] << @genotype + @genotype['id'] = g.id + @genotype['filetype'] = g.filetype + @genotype['download_url'] = 'http://opensnp.org/data/' + g.fs_filename + @user['genotypes'] << @genotype end @result << @user end rescue @result = {} - @result["error"] = "Sorry, we couldn't find any users" + @result['error'] = 'Sorry, we couldn\'t find any users' end end respond_to do |format| format.html - format.json { render :json => @result } + format.json { render json: @result } end end def show # showing a single user's page @user = User.find_by_id(params[:id]) || not_found - @title = @user.name + "'s page" + @title = @user.name + '\'s page' @first_name = @user.name.split.first @user_phenotypes = @user.user_phenotypes @received_messages = @user.messages.where(sent: false).order('created_at DESC') - @sent_messages = @user.messages.where(:sent => true).order('created_at DESC') - @phenotype_comments = PhenotypeComment.where(:user_id => @user.id).paginate(:page => params[:page]) - @snp_comments = SnpComment.where(:user_id => @user.id) + @sent_messages = @user.messages.where(sent: true).order('created_at DESC') + @phenotype_comments = PhenotypeComment.where(user_id: @user.id).paginate(page: params[:page]) + @snp_comments = SnpComment.where(user_id: @user.id) # get phenotypes that current_user did not enter yet @unentered_phenotypes = Phenotype.all - @user.phenotypes @@ -90,12 +90,12 @@ class UsersController < ApplicationController @user_snp_comment_ids = [] @snp_comments.each do |sc| @user_snp_comment_ids << sc.id end @snp_comment_replies = [] - @user_snp_comment_ids.each do |ui| + @user_snp_comment_ids.each do |ui| @replies_for_snp = SnpComment.where(reply_to_id: ui) @replies_for_snp.each do |rs| @snp_comment_replies << rs end - end + end @snp_comment_replies.sort! { |b,a| a.created_at <=> b.created_at } @paginated_snp_replies = @snp_comment_replies @@ -152,21 +152,21 @@ class UsersController < ApplicationController flash[:notice] = "Successfully updated" if params[:user][:password] or params[:user][:avatar] - redirect_to :action => "edit", :id => current_user.id + redirect_to action: 'edit', id: current_user.id else respond_to do |format| - format.js - format.html + format.js + format.html end end - else + else respond_to do |format| format.html do if request.xhr? - flash[:warning] = "Oooops, something went wrong while editing your details" - render :partial => "edit" + flash[:warning] = 'Oooops, something went wrong while editing your details' + render partial: 'edit' else render end @@ -185,10 +185,10 @@ class UsersController < ApplicationController @user_phenotype = UserPhenotype.find_by_phenotype_id(@phenotype.id) if @user_phenotype == nil # create user_phenotype if it doesn't exist - @user_phenotype = UserPhenotype.create(:user_id => user_id, :variation => variation, :phenotype_id => @phenotype.id) + @user_phenotype = UserPhenotype.create(user_id: user_id, variation: variation, phenotype_id: @phenotype.id) else # if user_phenotype exists, update - @user_phenotype.update_attributes(:variation => variation) + @user_phenotype.update_attributes(variation: variation) end end @@ -199,7 +199,7 @@ class UsersController < ApplicationController ug.destroy end - flash[:notice] = "Thank you for using openSNP. Goodbye!" + flash[:notice] = 'Thank you for using openSNP. Goodbye!' # disconnect from fitbit if needed if @user.fitbit_profile != nil @@ -231,22 +231,22 @@ class UsersController < ApplicationController private def sort_column - User.column_names.include?(params[:sort]) ? params[:sort] : "name" + User.column_names.include?(params[:sort]) ? params[:sort] : 'name' end def sort_direction - %w[desc asc].include?(params[:direction]) ? params[:direction] : "desc" + %w[desc asc].include?(params[:direction]) ? params[:direction] : 'desc' end def require_owner unless current_user == User.find(params[:id]) store_location if current_user - flash[:notice] = "Redirected to your edit page" - redirect_to :controller => "users", :action => "edit", :id => current_user.id + flash[:notice] = 'Redirected to your edit page' + redirect_to controller: 'users', action: 'edit', id: current_user.id else - flash[:notice] = "You need to be logged in" - redirect_to "/signin" + flash[:notice] = 'You need to be logged in' + redirect_to '/signin' end return false end diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 3951784..e9ceec3 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -1,103 +1,109 @@ # frozen_string_literal: true class UserMailer < ActionMailer::Base -default :from => "donotreply@opensnp.org" +default from: 'donotreply@opensnp.org' - def password_reset_instructions(user) - @user = user - mail(:subject => "openSNP.org Password Reset Instructions", :to => user.email) - end + def password_reset_instructions(user) + @user = user + mail(subject: 'openSNP.org Password Reset Instructions', to: user.email) + end - def welcome_user(user) - @user = user - mail(:subject => "Welcome to openSNP.org", :to => user.email) + def welcome_user(user) + @user = user + mail(subject: 'Welcome to openSNP.org', to: user.email) end def genotyping_results(target_address, link, phenotype_name, variation) @link = link @phenotype_name = phenotype_name @variation = variation - mail(:subject => "openSNP.org: The data you requested is ready to be downloaded",:to => target_address) + mail(subject: 'openSNP.org: The data you requested is ready to be downloaded', + to: target_address) end def no_genotyping_results(target_address, phenotype_name, variation) @phenotype_name = phenotype_name @variation = variation - mail(:subject => "openSNP.org: No genotyping files match your search",:to => target_address) + mail(subject: 'openSNP.org: No genotyping files match your search', + to: target_address) end def parsing_error(user_id) @user = User.find_by_id(user_id) - mail(:subject => "openSNP.org: Something went wrong while parsing", :to=> @user.email) + mail(subject: 'openSNP.org: Something went wrong while parsing', to: @user.email) end def duplicate_file(user_id) @user = User.find_by_id(user_id) - mail(:subject => "openSNP.org: You uploaded a duplicate genotyping", :to=> @user.email) + mail(subject: 'openSNP.org: You uploaded a duplicate genotyping', to: @user.email) end def file_has_mails(user_id) @user = User.find_by_id(user_id) - mail(:subject => "openSNP.org: You uploaded a genotyping with email addresses", :to => @user.email) + mail(subject: 'openSNP.org: You uploaded a genotyping with email addresses', to: @user.email) end def new_message(user_id, message_id) @user = User.find_by_id(user_id) @message = Message.find_by_id(message_id) - mail(:subject => "openSNP.org: You've got a new mail from #{User.find_by_id(@message.from_id).name}", :to => @user.email) + mail(subject: "openSNP.org: You've got a new mail from #{User.find_by_id(@message.from_id).name}", + to: @user.email) end def new_snp_comment(snp_comment, to_user) @user = to_user @snp_comment = snp_comment - mail(:subject => "openSNP.org: You've got a reply to one of your SNP-comments", :to => @user.email) + mail(subject: 'openSNP.org: You have a reply to one of your SNP-comments', to: @user.email) end def new_phenotype_comment(phenotype_comment, to_user) @user = to_user @phenotype_comment = phenotype_comment - mail(:subject => "openSNP.org: You've got a reply to one of your phenotype-comments", :to => @user.email) + mail(subject: 'openSNP.org: You have a reply to one of your phenotype-comments', to: @user.email) end def new_picture_phenotype_comment(phenotype_comment, to_user) @user = to_user @phenotype_comment = phenotype_comment - mail(:subject => "openSNP.org: You've got a reply to one of your phenotype-comments", :to => @user.email) + mail(subject: 'openSNP.org: You have a reply to one of your phenotype-comments', to: @user.email) end def new_phenotype(phenotype, user) @user = user @phenotype = phenotype - mail(:subject => "openSNP.org: A new phenotype was entered on the platform", :to => @user.email) + mail(subject: 'openSNP.org: A new phenotype was entered on the platform', to: @user.email) end def newsletter(user) @user = user - mail(:subject => "openSNP: The 2016 round-up and what's next", :to => @user.email) + mail(subject: 'openSNP: The 2016 round-up and what\'s next', to: @user.email) end - def survey(user) - @user = user - delivery_options = { user_name: ENV.fetch('SURVEY_EMAIL_USER'), - password: ENV.fetch('SURVEY_EMAIL_PASSWORD'), - address: ENV.fetch('SURVEY_EMAIL_ADDRESS'), - port: ENV.fetch('SURVEY_EMAIL_PORT') } - mail(:subject => "openSNP: Read our survey results and meet Open Humans", :to => @user.email,:from => "survey@opensnp.org" ,delivery_method_options: delivery_options) - end + def survey(user) + @user = user + delivery_options = { user_name: ENV.fetch('SURVEY_EMAIL_USER'), + password: ENV.fetch('SURVEY_EMAIL_PASSWORD'), + address: ENV.fetch('SURVEY_EMAIL_ADDRESS'), + port: ENV.fetch('SURVEY_EMAIL_PORT') } + mail(subject: 'openSNP: Read our survey results and meet Open Humans', + to: @user.email, + from: 'survey@opensnp.org', + delivery_method_options: delivery_options) + end def dump(target_address, link) @link = link - mail(:subject => "openSNP.org: The data dump you requested is ready to be downloaded",:to => target_address) + mail(subject: 'openSNP.org: The data dump you requested is ready to be downloaded', + to: target_address) end def no_dump(target_address) - mail(:subject => "openSNP.org: Sorry, there is no data to be dumped.", :to => target_address) + mail(subject: 'openSNP.org: Sorry, there is no data to be dumped', to: target_address) end def fitbit_dump(link, user_id) @link = link @user = User.find(user_id) - mail(:subject => "openSNP.org: The Fitbit-data you requested is now ready for download", :to => @user.email) - puts "http://"+ActionMailer::Base.default_url_options[:host]+@link + mail(subject: 'openSNP.org: The Fitbit-data you requested is now ready for download', to: @user.email) end def finished_parsing(genotype_id, stats) diff --git a/app/models/fitbit_activity.rb b/app/models/fitbit_activity.rb index 80352b7..786bae2 100644 --- a/app/models/fitbit_activity.rb +++ b/app/models/fitbit_activity.rb @@ -3,7 +3,7 @@ class FitbitActivity < ActiveRecord::Base belongs_to :fitbit_profile def self.find_or_create_by_fitbit_profile_id_and_date_logged(fitbit_profile_id, date_logged) - obj = self.find_by_fitbit_profile_id_and_date_logged( fitbit_profile_id, date_logged ) || self.new(:fitbit_profile_id => fitbit_profile_id, :date_logged => date_logged) + obj = self.find_by_fitbit_profile_id_and_date_logged( fitbit_profile_id, date_logged ) || self.new(fitbit_profile_id: fitbit_profile_id, date_logged: date_logged) obj end diff --git a/app/models/fitbit_body.rb b/app/models/fitbit_body.rb index 12ee4c0..3b4d4f6 100644 --- a/app/models/fitbit_body.rb +++ b/app/models/fitbit_body.rb @@ -3,7 +3,7 @@ class FitbitBody < ActiveRecord::Base belongs_to :fitbit_profile def self.find_or_create_by_fitbit_profile_id_and_date_logged(fitbit_profile_id, date_logged) - obj = self.find_by_fitbit_profile_id_and_date_logged( fitbit_profile_id, date_logged ) || self.new(:fitbit_profile_id => fitbit_profile_id, :date_logged => date_logged) + obj = self.find_by_fitbit_profile_id_and_date_logged( fitbit_profile_id, date_logged ) || self.new(fitbit_profile_id: fitbit_profile_id, date_logged: date_logged) obj end diff --git a/app/models/fitbit_sleep.rb b/app/models/fitbit_sleep.rb index 2550924..4ecf6e6 100644 --- a/app/models/fitbit_sleep.rb +++ b/app/models/fitbit_sleep.rb @@ -3,7 +3,7 @@ class FitbitSleep < ActiveRecord::Base belongs_to :fitbit_profile def self.find_or_create_by_fitbit_profile_id_and_date_logged(fitbit_profile_id, date_logged) - obj = self.find_by_fitbit_profile_id_and_date_logged( fitbit_profile_id, date_logged ) || self.new(:fitbit_profile_id => fitbit_profile_id, :date_logged => date_logged) + obj = self.find_by_fitbit_profile_id_and_date_logged( fitbit_profile_id, date_logged ) || self.new(fitbit_profile_id: fitbit_profile_id, date_logged: date_logged) obj end diff --git a/app/models/message.rb b/app/models/message.rb index fd06dff..984049a 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -3,8 +3,8 @@ class Message < ActiveRecord::Base # from http://stackoverflow.com/questions/5141564/model-users-message-in-rails-3 belongs_to :user - scope :sent, -> { where(:sent => true) } - scope :received, -> { where(:sent => false) } + scope :sent, -> { where(sent: true) } + scope :received, -> { where(sent: false) } # note: messages are cloned so that copies are kept on delete # change in Rails 3.1: .clone was replaced by .dup, .clone is only shallow copy @@ -21,6 +21,6 @@ class Message < ActiveRecord::Base if User.find_by_id(recipient).try(:message_on_message) == true UserMailer.new_message(recipient,msg.id).deliver_later end - self.update_attributes :from_id => from, :sent => true, :to_id => recipient, :user_has_seen => true + self.update_attributes from_id: from, sent: true, to_id: recipient, user_has_seen: true end end diff --git a/app/models/user_picture_phenotype.rb b/app/models/user_picture_phenotype.rb index 87f2466..94898a3 100644 --- a/app/models/user_picture_phenotype.rb +++ b/app/models/user_picture_phenotype.rb @@ -5,13 +5,13 @@ class UserPicturePhenotype < ActiveRecord::Base belongs_to :picture_phenotype belongs_to :user - has_attached_file :phenotype_picture, :styles => - { :maximum => "1000x1000>", :medium => "300x300>", :thumb => "100x100>#", - :head => "32x32#" }, - :default_url => '/images/standard_picture_phenotype_:style.png' - validates_attachment_size :phenotype_picture, :less_than => 1.megabyte + has_attached_file :phenotype_picture, styles: + { maximum: "1000x1000>", medium: "300x300>", thumb: "100x100>#", + head: "32x32#" }, + default_url: '/images/standard_picture_phenotype_:style.png' + validates_attachment_size :phenotype_picture, less_than: 1.megabyte validates_attachment_content_type :phenotype_picture , - :content_type => ['image/jpeg', 'image/png', 'image/gif'] + content_type: ['image/jpeg', 'image/png', 'image/gif'] pg_search_common_scope against: :picture_phenotype_id diff --git a/app/views/achievements/show.html.erb b/app/views/achievements/show.html.erb index 9504157..d94ce41 100644 --- a/app/views/achievements/show.html.erb +++ b/app/views/achievements/show.html.erb @@ -1,21 +1,28 @@ -

Achievement: <%=@achievement.award%> <%=image_tag("achievements/#{@achievement.short_name}_80px.png",:style => "vertical-align:middle",:height=>"70",:alt => @achievement.award)%>

- -
Statistics
-<%=((@achievement.user_achievements.length.to_f / User.all.count)*100).to_s[0,5]%> % of all users received this achievement. -
Users who received this achievement
- - - - - - - <%@achievement.user_achievements.each do |ua|%> - <% if ua.user %> +
+ <%=image_tag("achievements/#{@achievement.short_name}_80px.png", :alt => @achievement.award, class: "achievements__image")%> +

Achievement: <%=@achievement.award%>

+ <%=((@achievement.user_achievements.length.to_f / User.all.count)*100).to_s[0,5]%> % of all users received this achievement. +
+

Users who received this achievement

+
+
NumberUserReceived on
+ + + + + + + + <%@achievement.user_achievements.each do |ua|%> + <% if ua.user %> - - - + + + - <% end %> - <%end%> -
UserNumberReceived on
<%= ua.id %><%= link_to ua.user.name, ua.user %><%= ua.created_at %><%= link_to(image_tag(ua.user.avatar.url(:thumb), class: "img-circle", width: "32px") + " #{ua.user.name}", ua.user) %><%= ua.id %><%= ua.created_at %>
+ <% end %> + <% end %> + + + + diff --git a/app/views/fitbit_profiles/_form.html.erb b/app/views/fitbit_profiles/_form.html.erb index a9ce165..6da1f5f 100644 --- a/app/views/fitbit_profiles/_form.html.erb +++ b/app/views/fitbit_profiles/_form.html.erb @@ -1,34 +1,25 @@ -

Fitbit Settings

+

Fitbit Settings

-
-
-<%= form_for @fitbit_profile, :url => fitbit_update_path, :method => :post, :html => {:class => "form-horizontal"} do |f|%> -
For which categories should we save data?
+
+

We will save data from three different categories: Body, Activities and Sleep.

+

For the Body category, we will save your Body Mass Index (BMI) and your weight (unfortunately there's currently no option to get your height through Fitbit but you can calculate it through BMI and weight).

+

For Sleep, we will save how long you have slept and how frequently you awoke, how long you've been awake and how long it took you to fall asleep.

+

For Activities, we will save how many steps you have taken and how many floors you have climbed.

We'll also try to save the historical data Fitbit has collected prior to your connecting the device with openSNP. You can decide which categories we should save. So, if you feel comfortable sharing your activities but neither weight nor sleep information, that's no problem.

+
+ +
+ <%= form_for @fitbit_profile, :url => fitbit_update_path, :method => :post, :html => {:class => "fitbit__form"} do |f|%> +

For which categories should we save data?

<%= f.error_messages %> <%= f.check_box :body %> Body (Weight and Body Mass Index)
<%= f.check_box :activities %> Activities (Steps taken and Floors climbed)
<%= f.check_box :sleep %> Sleep (Duration, times awoken, time until asleep, length of wake-phases)
<%= f.hidden_field :id, :value => @fitbit_profile.id %> -
-
- If you decide to uncheck some of the categories, all data that have been saved so far will be deleted. -
- <%= f.submit "Save Fitbit-Settings", {:class=>"btn btn-info"}%> -<% end %> - -
- If you remove your Fitbit account, we will stop grabbing new data and remove all the data that were already saved. -
- -<%=link_to("Remove Fitbit account",{:controller => "fitbit_profiles", :action => "destroy"},:class => "btn btn-danger")%> - -
-
-

We will save data from three different categories: Body, Activities and Sleep.

-

For the Body category, we will save your Body Mass Index (BMI) and your weight (unfortunately there's currently no option to get your height through Fitbit but you can calculate it through BMI and weight).

-

For Sleep, we will save how long you have slept and how frequently you awoke, how long you've been awake and how long it took you to fall asleep.

-

For Activities, we will save how many steps you have taken and how many floors you have climbed.

We'll also try to save the historical data Fitbit has collected prior to your connecting the device with openSNP. You can decide which categories we should save. So, if you feel comfortable sharing your activities but neither weight nor sleep information, that's no problem.

- - -
+ + <%= f.submit "Save Fitbit-Settings", {:class=>"btn btn-info fitbit__form-submit-button"}%> +
If you decide to uncheck some of the categories, all data that have been saved so far will be deleted.
+ <% end %> + + <%=link_to("Remove Fitbit account",{:controller => "fitbit_profiles", :action => "destroy"},:class => "btn btn-danger")%> +
If you remove your Fitbit account, we will stop grabbing new data and remove all the data that were already saved.
diff --git a/app/views/fitbit_profiles/edit.html.erb b/app/views/fitbit_profiles/edit.html.erb index d3db07f..d73ce12 100644 --- a/app/views/fitbit_profiles/edit.html.erb +++ b/app/views/fitbit_profiles/edit.html.erb @@ -1 +1,3 @@ -<%=render "form"%> \ No newline at end of file +
+ <%=render "form"%> +
diff --git a/app/views/fitbit_profiles/index.html.erb b/app/views/fitbit_profiles/index.html.erb index d5dbcf1..9f5b0d3 100644 --- a/app/views/fitbit_profiles/index.html.erb +++ b/app/views/fitbit_profiles/index.html.erb @@ -1,42 +1,43 @@ -<%=image_tag("fitbit-icon.png")%> Listing all connected <%=link_to("Fitbit",{:controller => "fitbit_profiles",:action => "info"},:rel => "tooltip", :title => "Want to learn more about our Fitbit-integration? Click here")%> accounts - -

- <%= link_to(Zipfulldata.public_path, title: "Request download") do %> - <%= image_tag("filedownload_small.png", style: "vertical-align:middle") %> - Download the dump: Includes all genotyping files plus a CSV with all phenotypes of those users <%= Zipfulldata.gb_size %> -<% end %> -

-
-

Python-library to parse the provided files, courtesy of Sergei Lebedev

-
- - - - - - - - - - - <% @fitbit_profiles.each_with_index do |fitbit_profile, i| %> - - - - - - - - - - <% end %> -
#<%= sortable "fitbit_user_id", "Fitbit ID"%>User<%= sortable "activities", "Shares Activities"%><%= sortable "body", "Shares Body Data"%><%= sortable "sleep", "Shares Sleep Data"%>View Profile
<%= table_row_sequence_number(@fitbit_profiles, i) %><%= link_to(fitbit_profile.fitbit_user_id, {:controller => "fitbit_profiles", :action => "show", :id => fitbit_profile.id}) %><%=image_tag fitbit_profile.user.avatar.url(:head),:style => "vertical-align:middle"%><%= link_to(fitbit_profile.user.name, fitbit_profile.user)%><%if fitbit_profile.activities == true%><%else%><%end%><%if fitbit_profile.body == true%><%else%><%end%><%if fitbit_profile.sleep == true%><%else%><%end%><%= link_to("view", {:controller => "fitbit_profiles", :action => "show", :id => fitbit_profile.id})%>
- -<%= page_navigation_links @fitbit_profiles %> - - - +
+
+
+

<%=image_tag("fitbit-icon.png")%> Listing all connected <%=link_to("Fitbit",{:controller => "fitbit_profiles",:action => "info"},:rel => "tooltip", :title => "Want to learn more about our Fitbit-integration? Click here")%> accounts

+

Python-library to parse the provided files, courtesy of Sergei Lebedev

+
+
+ <%= link_to Zipfulldata.public_path, title: "Request download", class: "btn btn-default center-block fitbit__download-button" do %> + Download dump + <% end %> +

Includes all genotyping files plus a CSV with all phenotypes of those users

+
+
+
+ + + + + + + + + + + + + <% @fitbit_profiles.each_with_index do |fitbit_profile, i| %> + + + + + + + + + + <% end %> +
User#<%= sortable "fitbit_user_id", "Fitbit ID"%><%= sortable "activities", "Shares Activities"%><%= sortable "body", "Shares Body Data"%><%= sortable "sleep", "Shares Sleep Data"%>View Profile
<%= link_to(image_tag(fitbit_profile.user.avatar.url(:head), :class => "img-circle", :width => "50px") + " #{fitbit_profile.user.name}", fitbit_profile.user) %><%= table_row_sequence_number(@fitbit_profiles, i) %><%= link_to(fitbit_profile.fitbit_user_id, {:controller => "fitbit_profiles", :action => "show", :id => fitbit_profile.id}) %><%if fitbit_profile.activities == true%><%else%><%end%><%if fitbit_profile.body == true%><%else%><%end%><%if fitbit_profile.sleep == true%><%else%><%end%><%= link_to("View", {:controller => "fitbit_profiles", :action => "show", :id => fitbit_profile.id}, class: "btn btn-default")%>
+
+ <%= will_paginate @fitbit_profiles, renderer: BootstrapPagination::Rails%> +
+
+
diff --git a/app/views/fitbit_profiles/info.html.erb b/app/views/fitbit_profiles/info.html.erb index 3e71ce1..9d01691 100644 --- a/app/views/fitbit_profiles/info.html.erb +++ b/app/views/fitbit_profiles/info.html.erb @@ -1,13 +1,24 @@ -Connect your <%=image_tag("fitbit_logo_dark_100px.png")%> account to openSNP -

Fitbit is a wearable gadget which allows you to track your activities (How many steps have you taken? How many floors have you climbed?), your sleep (How long did you sleep? How often were you awoken at night?) and also allows you to track your body-development (i.e. your weight/BMI). The data collected by and through your Fitbit is a valuable extension of the phenotypes you've already entered into openSNP.

+
+

Connect your <%=image_tag("fitbit_logo_dark_100px.png")%> account to openSNP

+

+ Fitbit is a wearable gadget which allows you to track your activities (How many steps have you taken? How many floors have you climbed?), your sleep (How long did you sleep? How often were you awoken at night?) and also allows you to track your body-development (i.e. your weight/BMI). The data collected by and through your Fitbit is a valuable extension of the phenotypes you've already entered into openSNP. +

+

+ Once you've connected your Fitbit account to openSNP, we will automatically get your latest data from Fitbit. Each time you sync your Fitbit tracker or enter new data on Fitbit the changes will also appear on openSNP. Currently we save data about your activities, your body and your sleep. +

+

+ The data will be public on the openSNP website, like all other phenotypes. However, you can decide which categories to connect with openSNP and which to not. +

-

Once you've connected your Fitbit account to openSNP, we will automatically get your latest data from Fitbit. Each time you sync your Fitbit tracker or enter new data on Fitbit the changes will also appear on openSNP. Currently we save data about your activities, your body and your sleep.

+ <%if current_user != nil%> +

<%=link_to("Connect your Fitbit account with openSNP",{:controller => "fitbit_profiles", :action => "start_auth"},:class => "btn btn-info")%>

+ <%else%> +

+ <%=link_to("Sign in", '/signin')%> to openSNP to connect your Fitbit account with us. +

+ <%end%> + + You want to learn more about the integration of Fitbit into openSNP or have a question? <%=link_to("Have a look at the FAQ.","/faq#enteringphenotypes")%> + -

The data will be public on the openSNP website, like all other phenotypes. However, you can decide which categories to connect with openSNP and which to not.

- -<%if current_user != nil%> -

<%=link_to("Connect your Fitbit account with openSNP",{:controller => "fitbit_profiles", :action => "start_auth"},:class => "btn btn-info")%>

-<%else%> -

<%=link_to("Sign in", '/signin')%> to openSNP to connect your Fitbit account with us.

-<%end%> -You want to learn more about the integration of Fitbit into openSNP or have a question? <%=link_to("Have a look at the FAQ.","/faq#enteringphenotypes")%> +
diff --git a/app/views/fitbit_profiles/show.html.erb b/app/views/fitbit_profiles/show.html.erb index df3a4e5..78a4b2d 100644 --- a/app/views/fitbit_profiles/show.html.erb +++ b/app/views/fitbit_profiles/show.html.erb @@ -1,11 +1,12 @@ -<%=image_tag("fitbit-icon.png",:style => "vertical-align:middle")%> <%=link_to("Fitbit",{:controller => "fitbit_profiles",:action => "info"},:rel => "tooltip", :title => "Want to learn more about our Fitbit-integration? Click here")%> profile for <%= link_to(@fitbit_profile.user.name, @fitbit_profile.user)%> -<%if current_user%> -

<%=link_to(image_tag("filedownload_small.png",:style => "vertical-align:middle"),{:controller => "fitbit_profiles", :action => "dump", :id => @fitbit_profile.id})%> <%=link_to("Download a dump of the data",{:controller => "fitbit_profiles", :action => "dump", :id => @fitbit_profile.id})%>

-<%else%> -

If you log in to openSNP, you can download a CSV file with all the data.

-<%end%> +
+

<%=image_tag("fitbit-icon.png")%> <%=link_to("Fitbit",{:controller => "fitbit_profiles",:action => "info"}, :data => { :toggle => "tooltip", :placement => "bottom"}, :title => "Want to learn more about our Fitbit-integration? Click here")%> profile for <%= link_to(@fitbit_profile.user.name, @fitbit_profile.user)%>

+ <%if current_user%> +

<%=link_to("Download dump",{:controller => "fitbit_profiles", :action => "dump", :id => @fitbit_profile.id}, class: "btn btn-default")%>

+ <%else%> +

If you log in to openSNP, you can download a CSV file with all the data.

+ <%end%> -<%if @activity != nil%> + <%if @activity != nil%> Activity Measurements -
-
+ +
+
<%end%> <%if @body and @body != [] %> - Body Measurements - -
+ +
<%end%> <%if @sleep and @sleep != [] %> - Sleep Measurements - -
-
+ +
+
<%end%> +
diff --git a/app/views/genotypes/_form.html.erb b/app/views/genotypes/_form.html.erb index 23e594a..6be6400 100644 --- a/app/views/genotypes/_form.html.erb +++ b/app/views/genotypes/_form.html.erb @@ -1,44 +1,50 @@ -
-
- <%= form_for(@genotype, html: {class: "form-horizontal", multipart: true}) do |f| %> - <%= render 'shared/error_messages', :target => @genotype %> -
-
Provide your genotyping file
-

Zipped genotypings are fine too.

-

<%= f.file_field :genotype %>

- <%= f.label :filetype %> -
- <%= f.radio_button :filetype,"23andme" %> - 23andme-format -
-
- <%= f.radio_button :filetype,"genes-for-good"%> - Genes for Good-format -
-
- <%= f.radio_button :filetype,"ftdna-illumina"%> - FamilyTreeDNA, Illumina-Format -
-
- <%= f.radio_button :filetype,"ancestry"%> - AncestryDNA data -
-
- <%= f.radio_button :filetype,"23andme-exome-vcf"%> - 23andMe-EXOME, VCF-format -
-
- <%= f.radio_button :filetype,"IYG"%> - IYG-format (EBI genotyping participants) -
-
- <%= f.radio_button :filetype,"decodeme"%> - deCODEme-format -
-
Not sure which type to choose? Take a look at our <%=link_to("FAQ","/faq#filetypes")%>.

- <%= f.submit "Upload", :class => "btn btn-primary" %> - <% end %> -
-
-
<%=render "static/disclaimer"%>
+
= + <%=render "static/disclaimer"%>
+
+ <%= form_for(@genotype) do |f| %> +

Provide your genotyping file

+ Zipped genotypings are fine too. + <%= f.file_field :genotype %> +
+ <%= f.label :filetype %> +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
Not sure which type to choose? Take a look at our <%=link_to("FAQ","/faq#filetypes")%>.

+ <%= f.submit "Upload", :class => "btn btn-primary" %> + <% end %> +
diff --git a/app/views/genotypes/index.html.erb b/app/views/genotypes/index.html.erb index 2051df4..4d9f411 100644 --- a/app/views/genotypes/index.html.erb +++ b/app/views/genotypes/index.html.erb @@ -1,34 +1,44 @@ -Listing all genotypes - <%=link_to(image_tag("rss_small.png"),"/rss")%> - - -<%=auto_discovery_link_tag(:rss,"/rss", {:title => "RSS for all genotypes"})%> - -

-<%= link_to(Zipfulldata.public_path, title: "Request download") do %> - <%= image_tag("filedownload_small.png", style: "vertical-align:middle") %> - Download the dump: Includes all genotyping files plus a CSV with all phenotypes of those users <%= Zipfulldata.gb_size %> -<% end %> -

-
-

Python library to parse the provided files, courtesy of Sergei Lebedev

-
- - - - - - - - - <% @genotypes_paginate.each do |g| %> - - - - - - - - <% end %> -
<%= sortable "id", "ID"%>User<%= sortable "filetype", "Type"%><%= sortable "created_at", "Created"%>Download
<%= g.id %><%=image_tag g.user.avatar.url(:head),:style => "vertical-align:middle"%> <%= link_to(g.user.name, g.user)%><%= g.filetype %><%= g.created_at%><%= link_to "Right-click and 'Save as..'", '../data/' + g.fs_filename %>
-<%= page_navigation_links @genotypes_paginate %> +
+
+
+

All Genotypes <%=link_to(image_tag("rss.png"),"/rss")%>

+ <%=auto_discovery_link_tag(:rss,"/rss", {:title => "RSS for all genotypes"})%> +

Python library to parse the provided files, courtesy of Sergei Lebedev

+
+
+ <%= link_to Zipfulldata.public_path, title: "Request download", class: "btn btn-default center-block genotype__download-button" do %> + Download dump + <% end %> +

Includes all genotyping files plus a CSV with all phenotypes of those users

+
+
+
+ + + + + + + + + + + + <% @genotypes_paginate.each do |g| %> + + + + + + + + + <% end %> +
User#<%= sortable "id", "ID"%><%= sortable "created_at", "Created"%><%= sortable "filetype", "Type"%>
+ <%= link_to(image_tag(g.user.avatar.url(:head), :class => "img-circle", :width => "50px") + " #{g.user.name}", g.user) %> + <%= Genotype.all.sort { |a,b| a.id <=> b.id }.index(g) + 1 %><%= g.id %><%= g.created_at%><%= g.filetype %><%= link_to "Download", '../data/' + g.fs_filename, class: "btn btn-default" %>
+
+
+ <%= will_paginate @genotypes_paginate, renderer: BootstrapPagination::Rails%> +
+
diff --git a/app/views/genotypes/new.html.erb b/app/views/genotypes/new.html.erb index 2223579..5fa516f 100644 --- a/app/views/genotypes/new.html.erb +++ b/app/views/genotypes/new.html.erb @@ -1,5 +1,13 @@ -Upload Genotyping-File -<%= render 'shared/warning' %> -<%= render 'form' %> - -<%= link_to "Back to your homepage", current_user %> +<%= render 'shared/error_messages', :target => @genotype %> +
+
+

Upload Genotyping file

+ <%= render 'shared/warning' %> +
+
+ <%= render 'form' %> +
+
+ <%= link_to "Back to your homepage", current_user, class: "btn btn-default new-genotype__back-home-button" %> +
+
diff --git a/app/views/genotypes/show.html.erb b/app/views/genotypes/show.html.erb index 36bcdb8..34a192a 100644 --- a/app/views/genotypes/show.html.erb +++ b/app/views/genotypes/show.html.erb @@ -1,5 +1,9 @@ -

<%=@user.name%>'s genotype

+
+

<%=@user.name%>'s genotype

-

Originally uploaded on: <%= @genotype.created_at %>

+
+

Originally uploaded on: <%= @genotype.created_at %>

-

Download this set: <%= link_to "Right-click and 'Save as...'", '../data/' + @genotype.fs_filename %>

+

<%= link_to "Download this set", '../data/' + @genotype.fs_filename, class: "btn btn-primary phenotype__download-button" %>

+
+
diff --git a/app/views/index/index.html.erb b/app/views/index/index.html.erb index b93927c..c1ccbb0 100644 --- a/app/views/index/index.html.erb +++ b/app/views/index/index.html.erb @@ -1,58 +1,64 @@ -
-

Welcome to openSNP

-

<%=image_tag "microarray.png",:style => "float:left;margin: 10px"%>

-

openSNP lets customers of direct-to-customer genetic tests publish their test results, find others with similar genetic variations, learn more about their results by getting the latest primary literature on their variations, and helps scientists find new associations.

Sign Up! Download the data!


-
- -
-
-
-
-

Upload Your Genotyping File

- <%=image_tag("fileupload.png")%>
- Upload your raw genotyping or exome data from <%=link_to "23andMe","http://www.23andme.com"%>, <%=link_to "deCODEme","http://www.decodeme.com/"%> or <%= link_to "FamilyTreeDNA", "http://www.familytreedna.com/" %> to the openSNP database to make it available for everybody. -
-
-

Share Your Phenotypes & Traits

- <%=image_tag("phenotypes.png")%>
- Phenotypes are the observable characteristics of your body, such as height, eye color or preference for coffee. - Share your phenotype with other openSNP users, and find others with similar characteristics and traits.
Your data may help scientists discover new genetic associations! -
-
-

Share your stories on variations & phenotypes

- <%=image_tag("sendmessage.png")%>
- With openSNP you can share stories about your genetic variations and phenotypes, and discover the stories of other users. -
-
-

Find literature on genetic variation

- <%=image_tag("literature.png")%>
- openSNP gets the latest open access journal articles on genetic variations from the <%=link_to "Public Library of Science","http://www.plos.org/"%>. Popular articles are indexed via the social reference manager <%=link_to "Mendeley","http://www.mendeley.com/"%>, and summaries are provided by <%=link_to "SNPedia","http://snpedia.com"%>. -
-
-
-
-
-
-
-
-

Search for phenotypes

- <%=image_tag("phenotypesearch.png")%>
- Many diseases and traits are suspected to have genetical components. Genome Wide Association Studies are a simple tool for finding genetic markers. Easily find people with the variation you are interested in via openSNP.

Is the variation for which you're looking not entered yet? Just add it to openSNP. -
-
-

Easily download datasets

- <%=image_tag("filedownload.png")%>
- The mass-download function of openSNP allows you to easily download full genotyping raw-data in the file formats that are provided by 23andMe, deCODEme and FamilyTreeDNA.

As the files can be grouped by their variations for specific phenotypes, it's easy to get datasets that are already usable for association studies. -
-
-

Get notified about new data

- <%=image_tag("rss.png")%>
- openSNP delivers an RSS feed for each phenotype. So you can easily get all new datasets that get available for the phenotypes of your interest, without the need to check for new entries by hand.

For data-junkies that need more data: there's also a feed that carries all new datasets. -
-
-
-
+
+
+
+
+ <%= image_tag "opensnp-logo.png", width: "220px", class: "hidden-xs index__jumbotron-image pull-left" %> +
+
+

Welcome to openSNP

+

openSNP allows customers of direct-to-customer genetic tests to publish their test results, find others with similar genetic variations, learn more about their results by getting the latest primary literature on their variations, and help scientists find new associations.

+

+ Download data + Sign up +

+
+
+
+
+ +
+

For genotyping users

+
+
+ +

Upload Your Genotyping

+

Upload your raw genotyping or exome data from <%=link_to "23andMe","http://www.23andme.com"%>, <%=link_to "deCODEme","http://www.decodeme.com/"%> or <%= link_to "FamilyTreeDNA", "http://www.familytreedna.com/" %> to the openSNP database to make it available for everybody.

+
+
+ +

Share Your Phenotypes

+

Share your phenotype with other openSNP users and find others with similar characteristics and traits. Your data may help scientists discover new genetic associations!

+
+
+ +

Share your stories

+

With openSNP you can share stories about your genetic variations and phenotypes, and discover the stories of other users.

+
+
+ +

Find literature on genetic variation

+

openSNP gets the latest open access journal articles on genetic variations from the <%=link_to "Public Library of Science","http://www.plos.org/"%>. Popular articles are indexed via the social reference manager <%=link_to "Mendeley","http://www.mendeley.com/"%> and summaries are provided by <%=link_to "SNPedia","http://snpedia.com"%>.

+
+
+
+ +
+

For Scientists

+
+
+ +

Search for phenotypes

+

Many diseases and traits are suspected to have genetical components. Genome Wide Association Studies are a simple tool find genetic markers. Easily find people with the variation you are interested in via openSNP. The variation you are looking for is not entered yet? Just add it to openSNP

+
+
+ +

Easily download datasets

+

The mass download-function of openSNP allows you to easily download the full genotyping raw-data in the file formats that are provided by 23andMe, deCODEme and FamilyTreeDNA. As the files can be grouped by their variations for specific phenotypes it is easy to get datasets that are already usable for association studies.

+
+
+ +

Get notified about new data

+

openSNP delivers a RSS feed for each phenotype. So you can easily get all new datasets that get available for the phenotypes of your interest, without the need to check for new entries by hand. For all data junkies that need more data: There is also a feed that carries all new datasets.

+
+
diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index 77958cf..7c5b96b 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -1,8 +1,27 @@ -
+ diff --git a/app/views/layouts/_modal.html.erb b/app/views/layouts/_modal.html.erb index de13551..9111ba7 100644 --- a/app/views/layouts/_modal.html.erb +++ b/app/views/layouts/_modal.html.erb @@ -1,9 +1,13 @@ -