From e7f59f26a9246498c7418eb863504d8ad9058447 Mon Sep 17 00:00:00 2001 From: Postmodern Date: Mon, 25 Mar 2013 14:14:49 -0700 Subject: [PATCH 001/626] Upgrade rake. --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index dc2b5cc6..759bda36 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "http://rubygems.org" group :development do - gem 'rake', '~> 0.9' + gem 'rake', '~> 10.0' gem 'rack', '~> 1.4.1' gem 'jekyll', '~> 0.12' gem 'rdiscount', '~> 1.6.8' diff --git a/Gemfile.lock b/Gemfile.lock index 02f10736..8af2915f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -31,7 +31,7 @@ GEM rack (1.4.5) rack-protection (1.3.2) rack - rake (0.9.2.2) + rake (10.0.4) rb-fsevent (0.9.1) rdiscount (1.6.8) rubypants (0.2.0) @@ -58,7 +58,7 @@ DEPENDENCIES liquid (~> 2.3.0) pygments.rb (~> 0.3.4) rack (~> 1.4.1) - rake (~> 0.9) + rake (~> 10.0) rb-fsevent (~> 0.9) rdiscount (~> 1.6.8) rubypants (~> 0.2.0) From 3da45e9789c75879c14b1a7b0cb16763b5158091 Mon Sep 17 00:00:00 2001 From: Postmodern Date: Mon, 25 Mar 2013 14:33:33 -0700 Subject: [PATCH 002/626] Added json to the Gemfile. --- Gemfile | 1 + Gemfile.lock | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index 759bda36..fb17d546 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,7 @@ source "http://rubygems.org" group :development do gem 'rake', '~> 10.0' + gem 'json', '~> 1.7.7' gem 'rack', '~> 1.4.1' gem 'jekyll', '~> 0.12' gem 'rdiscount', '~> 1.6.8' diff --git a/Gemfile.lock b/Gemfile.lock index 8af2915f..29da1968 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -20,6 +20,7 @@ GEM liquid (~> 2.3) maruku (~> 0.5) pygments.rb (~> 0.3.2) + json (1.7.7) kramdown (0.13.8) liquid (2.3.0) maruku (0.6.1) @@ -55,6 +56,7 @@ DEPENDENCIES compass (~> 0.12.2) haml (~> 3.1.7) jekyll (~> 0.12) + json (~> 1.7.7) liquid (~> 2.3.0) pygments.rb (~> 0.3.4) rack (~> 1.4.1) From 62a4395efafaa4fdd0f83040eddfbee44cf807df Mon Sep 17 00:00:00 2001 From: Postmodern Date: Mon, 25 Mar 2013 14:38:58 -0700 Subject: [PATCH 003/626] Deploy to github pages. --- Rakefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Rakefile b/Rakefile index e704eafe..8e2e18d9 100644 --- a/Rakefile +++ b/Rakefile @@ -7,15 +7,15 @@ Dir["tasks/**/*.rake"].each { |task| load task } ## -- Rsync Deploy config -- ## # Be sure your public key is listed in your server's ~/.ssh/authorized_keys file -ssh_user = "user@domain.com" +ssh_user = "git@github.com" ssh_port = "22" document_root = "~/website.com/" rsync_delete = false rsync_args = "" # Any extra arguments to pass to rsync -deploy_default = "rsync" +deploy_default = "push" # This will be configured for you when you run config_deploy -deploy_branch = "gh-pages" +deploy_branch = "master" ## -- Misc Configs -- ## @@ -383,4 +383,4 @@ desc "list tasks" task :list do puts "Tasks: #{(Rake::Task.tasks - [Rake::Task[:list]]).join(', ')}" puts "(type rake -T for more detail)\n\n" -end \ No newline at end of file +end From 019e10f0f4b2f1d08f685dbd54319e2b26cbf700 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Mon, 1 Apr 2013 16:00:49 -0700 Subject: [PATCH 004/626] Extract dates from .yml files Now that ruby-advisory-db has actual dates, we can extract them from the .yml files instead of trying to screen scrape them. This includes regenerated versions of all the input markdown with updated dates in cases where they were wrong. --- ruby-advisory-db | 2 +- ...down => 2012-09-08-CVE-2012-6134.markdown} | 4 ++-- ...down => 2012-12-06-CVE-2013-0284.markdown} | 4 ++-- ...down => 2013-01-10-CVE-2013-0285.markdown} | 4 ++-- ...down => 2013-02-19-CVE-2013-1756.markdown} | 2 +- .../_posts/2013-03-19-CVE-2013-1854.markdown | 2 +- .../_posts/2013-03-19-CVE-2013-1855.markdown | 2 +- .../_posts/2013-03-19-CVE-2013-1856.markdown | 2 +- .../_posts/2013-03-19-CVE-2013-1857.markdown | 2 +- tasks/sync_advisories.rake | 24 ++++++------------- 10 files changed, 19 insertions(+), 29 deletions(-) rename source/_posts/{2012-01-01-CVE-2012-6134.markdown => 2012-09-08-CVE-2012-6134.markdown} (81%) rename source/_posts/{2013-01-01-CVE-2013-0284.markdown => 2012-12-06-CVE-2013-0284.markdown} (82%) rename source/_posts/{2013-01-01-CVE-2013-0285.markdown => 2013-01-10-CVE-2013-0285.markdown} (79%) rename source/_posts/{2013-01-01-CVE-2013-1756.markdown => 2013-02-19-CVE-2013-1756.markdown} (95%) diff --git a/ruby-advisory-db b/ruby-advisory-db index f5322e45..ddc713a1 160000 --- a/ruby-advisory-db +++ b/ruby-advisory-db @@ -1 +1 @@ -Subproject commit f5322e451d085f3e9f28b441fe6af09e25b8f860 +Subproject commit ddc713a13139eec4a881e3d246678f234c23324d diff --git a/source/_posts/2012-01-01-CVE-2012-6134.markdown b/source/_posts/2012-09-08-CVE-2012-6134.markdown similarity index 81% rename from source/_posts/2012-01-01-CVE-2012-6134.markdown rename to source/_posts/2012-09-08-CVE-2012-6134.markdown index 3972be97..ef46eb4e 100644 --- a/source/_posts/2012-01-01-CVE-2012-6134.markdown +++ b/source/_posts/2012-09-08-CVE-2012-6134.markdown @@ -1,14 +1,14 @@ --- layout: post title: "CVE-2012-6134: Ruby on Rails omniauth-oauth2 Gem CSRF vulnerability" -date: 2012-01-01 +date: 2012-09-08 comments: false categories: [omniauth-oauth2] --- ### CVE ID -* [CVE-2012-6134](https://github.com/intridea/omniauth-oauth2/pull/25) +* [CVE-2012-6134](http://www.osvdb.org/show/osvdb/90264) ### GEM NAME diff --git a/source/_posts/2013-01-01-CVE-2013-0284.markdown b/source/_posts/2012-12-06-CVE-2013-0284.markdown similarity index 82% rename from source/_posts/2013-01-01-CVE-2013-0284.markdown rename to source/_posts/2012-12-06-CVE-2013-0284.markdown index b0c76852..0607e672 100644 --- a/source/_posts/2013-01-01-CVE-2013-0284.markdown +++ b/source/_posts/2012-12-06-CVE-2013-0284.markdown @@ -1,14 +1,14 @@ --- layout: post title: "CVE-2013-0284: Ruby on Rails newrelic_rpm Gem Discloses Sensitive Information" -date: 2013-01-01 +date: 2012-12-06 comments: false categories: [newrelic_rpm] --- ### CVE ID -* [CVE-2013-0284](https://newrelic.com/docs/ruby/ruby-agent-security-notification) +* [CVE-2013-0284](http://osvdb.org/show/osvdb/90189) ### GEM NAME diff --git a/source/_posts/2013-01-01-CVE-2013-0285.markdown b/source/_posts/2013-01-10-CVE-2013-0285.markdown similarity index 79% rename from source/_posts/2013-01-01-CVE-2013-0285.markdown rename to source/_posts/2013-01-10-CVE-2013-0285.markdown index f7af483e..2c76976e 100644 --- a/source/_posts/2013-01-01-CVE-2013-0285.markdown +++ b/source/_posts/2013-01-10-CVE-2013-0285.markdown @@ -1,14 +1,14 @@ --- layout: post title: "CVE-2013-0285: Ruby Gem nori Parameter Parsing Remote Code Execution" -date: 2013-01-01 +date: 2013-01-10 comments: false categories: [nori] --- ### CVE ID -* [CVE-2013-0285](https://github.com/savonrb/nori/commit/818f5263b1d597b603d46cbe1702cd2717259e32) +* [CVE-2013-0285](http://osvdb.org/show/osvdb/90196) ### GEM NAME diff --git a/source/_posts/2013-01-01-CVE-2013-1756.markdown b/source/_posts/2013-02-19-CVE-2013-1756.markdown similarity index 95% rename from source/_posts/2013-01-01-CVE-2013-1756.markdown rename to source/_posts/2013-02-19-CVE-2013-1756.markdown index 8990de18..083a52fc 100644 --- a/source/_posts/2013-01-01-CVE-2013-1756.markdown +++ b/source/_posts/2013-02-19-CVE-2013-1756.markdown @@ -1,7 +1,7 @@ --- layout: post title: "CVE-2013-1756: Dragonfly Gem Remote Code Execution" -date: 2013-01-01 +date: 2013-02-19 comments: false categories: [dragonfly] --- diff --git a/source/_posts/2013-03-19-CVE-2013-1854.markdown b/source/_posts/2013-03-19-CVE-2013-1854.markdown index dc6ab3e5..ca5d6c9a 100644 --- a/source/_posts/2013-03-19-CVE-2013-1854.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1854.markdown @@ -8,7 +8,7 @@ categories: [activerecord,rails] ### CVE ID -* [CVE-2013-1854](https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/jgJ4cjjS8FE) +* [CVE-2013-1854](http://osvdb.org/show/osvdb/91453) ### GEM NAME diff --git a/source/_posts/2013-03-19-CVE-2013-1855.markdown b/source/_posts/2013-03-19-CVE-2013-1855.markdown index 539bf7b3..a331b537 100644 --- a/source/_posts/2013-03-19-CVE-2013-1855.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1855.markdown @@ -8,7 +8,7 @@ categories: [actionpack,rails] ### CVE ID -* [CVE-2013-1855](https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/4_QHo4BqnN8) +* [CVE-2013-1855](http://www.osvdb.org/show/osvdb/91452) ### GEM NAME diff --git a/source/_posts/2013-03-19-CVE-2013-1856.markdown b/source/_posts/2013-03-19-CVE-2013-1856.markdown index c0596889..ddce7da1 100644 --- a/source/_posts/2013-03-19-CVE-2013-1856.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1856.markdown @@ -8,7 +8,7 @@ categories: [activesupport,rails] ### CVE ID -* [CVE-2013-1856](https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/KZwsQbYsOiI) +* [CVE-2013-1856](http://www.osvdb.org/show/osvdb/91451) ### GEM NAME diff --git a/source/_posts/2013-03-19-CVE-2013-1857.markdown b/source/_posts/2013-03-19-CVE-2013-1857.markdown index 0d4f3422..2e3ca9eb 100644 --- a/source/_posts/2013-03-19-CVE-2013-1857.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1857.markdown @@ -8,7 +8,7 @@ categories: [actionpack,rails] ### CVE ID -* [CVE-2013-1857](https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/zAAU7vGTPvI) +* [CVE-2013-1857](http://osvdb.org/show/osvdb/91454) ### GEM NAME diff --git a/tasks/sync_advisories.rake b/tasks/sync_advisories.rake index bebae091..3da41c72 100644 --- a/tasks/sync_advisories.rake +++ b/tasks/sync_advisories.rake @@ -10,29 +10,19 @@ task :sync_advisories do Rake::FileList["ruby-advisory-db/gems/**/*.yml"].each do |advisory| yaml = YAML.load_file(advisory) + unless yaml['cve'] + STDERR.puts "*** WARNING: couldn't sync '#{yaml['title']}: no CVE metadata" + next + end cve = "CVE-" + yaml['cve'] title = yaml['title'].gsub(/\s+/m, ' ') title = "#{cve}: #{title}" slug = cve + date = yaml['date'] - puts "Processing: #{title}" - - if yaml['url']['osvdb.org'] - osvdb_entry = Net::HTTP.get URI(yaml['url']) - date = osvdb_entry[/(\d{4}-\d{2}-\d{2})\<\/td/, 1] - else - nvd_entry = Net::HTTP.get URI("http://web.nvd.nist.gov/view/vuln/detail?vulnId=#{cve}") - matches = nvd_entry.match(/(\d{2})\/(\d{2})\/(\d{4})\<\/div/) - - if matches - date = sprintf("%04d-%02d-%02d", Integer(matches[3]), Integer(matches[1]), Integer(matches[2])) - else - puts "Can't determine date for: #{title}" - date = "#{yaml['cve'][/\d{4}/]}-01-01" - end - end + STDERR.puts "Processing: #{title}" filename = "#{date}-#{slug}.markdown" template = ERB.new <<-MARKDOWN @@ -67,4 +57,4 @@ MARKDOWN File.open("source/_posts/#{filename}", "w") { |file| file << template.result(binding) } end -end \ No newline at end of file +end From 8ea1d14018bf2816424a6458f8bc522bf3280384 Mon Sep 17 00:00:00 2001 From: Max Veytsman Date: Thu, 11 Apr 2013 18:44:10 -0400 Subject: [PATCH 005/626] Updated submodule to latest --- ruby-advisory-db | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby-advisory-db b/ruby-advisory-db index ddc713a1..3c37a7e2 160000 --- a/ruby-advisory-db +++ b/ruby-advisory-db @@ -1 +1 @@ -Subproject commit ddc713a13139eec4a881e3d246678f234c23324d +Subproject commit 3c37a7e29fa04b3034d01df9932692b292b0b467 From 708fcd011e0911a7fd9c42bf2c07efbe087a0dd5 Mon Sep 17 00:00:00 2001 From: Max Veytsman Date: Thu, 11 Apr 2013 18:45:27 -0400 Subject: [PATCH 006/626] sync_advisories rake task now does a git pull on the advisory db (previously it would only sync to whatever submodule commit was checked in), handles advisories with OSVDB only, displays OSVDB, handles advisories without patched_versions. --- tasks/sync_advisories.rake | 39 ++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/tasks/sync_advisories.rake b/tasks/sync_advisories.rake index 3da41c72..4ef14c8a 100644 --- a/tasks/sync_advisories.rake +++ b/tasks/sync_advisories.rake @@ -6,20 +6,30 @@ require 'erb' desc "sync with ruby-advisory-db and rebuild Markdown files" task :sync_advisories do - sh "git submodule update" - + system "git submodule init" + system "git submodule update" + system "git submodule foreach git pull origin master" + Rake::FileList["ruby-advisory-db/gems/**/*.yml"].each do |advisory| yaml = YAML.load_file(advisory) - unless yaml['cve'] + unless yaml['cve'] or yaml['osvdb'] STDERR.puts "*** WARNING: couldn't sync '#{yaml['title']}: no CVE metadata" next end - cve = "CVE-" + yaml['cve'] + cve = osvdb = nil + if yaml['cve'] + cve = "CVE-" + yaml['cve'] + end + + if yaml['osvdb'] + osvdb = "OSVDB-" + yaml['osvdb'].to_s + end + title = yaml['title'].gsub(/\s+/m, ' ') - title = "#{cve}: #{title}" - slug = cve + title = "#{cve || osvdb}: #{title}" + slug = cve || osvdb date = yaml['date'] STDERR.puts "Processing: #{title}" @@ -34,9 +44,17 @@ comments: false categories: [<%= yaml['gem'] %><%= ",#{yaml['framework']}" if yaml['framework'] %>] --- +<% if cve %> ### CVE ID * <%= yaml['url'] ? "[#{cve}](#{yaml['url']})" : cve %> +<% end %> + +<% if osvdb %> +### OVSBD ID + +* <%= yaml['url'] ? "[#{osvdb}](#{yaml['url']})" : osvdb %> +<% end%> ### GEM NAME @@ -46,10 +64,15 @@ categories: [<%= yaml['gem'] %><%= ",#{yaml['framework']}" if yaml['framework'] * <%= yaml['framework'] %> <% end %> + ### PATCHED VERSIONS +<% if yaml['patched_versions'] %> <% yaml['patched_versions'].each do |v| %> -* \`<%= v %>\`<% end %> - +* \`<%= v %>\` +<% end %> +<% else %> +None. +<% end %> ### DESCRIPTION <%= yaml['description'] %> From 15090eac2577e9b73b555f798b66b163f713bbf0 Mon Sep 17 00:00:00 2001 From: Max Veytsman Date: Thu, 11 Apr 2013 18:50:40 -0400 Subject: [PATCH 007/626] Updated all posts to correspond with latest version of advisory db --- .../_posts/2007-11-27-CVE-2007-6183.markdown | 11 ++++++ .../_posts/2009-12-01-CVE-2013-0263.markdown | 15 ++++++++ .../_posts/2011-01-25-CVE-2011-0739.markdown | 11 ++++++ .../_posts/2012-03-01-CVE-2012-1098.markdown | 13 +++++++ .../_posts/2012-03-01-CVE-2012-1099.markdown | 13 +++++++ .../_posts/2012-03-14-CVE-2012-2139.markdown | 11 ++++++ .../_posts/2012-03-14-CVE-2012-2140.markdown | 11 ++++++ .../_posts/2012-05-31-CVE-2012-2660.markdown | 13 +++++++ .../_posts/2012-05-31-CVE-2012-2661.markdown | 13 +++++++ .../_posts/2012-06-06-CVE-2012-267.markdown | 11 ++++++ .../_posts/2012-07-26-CVE-2012-3424.markdown | 13 +++++++ .../_posts/2012-08-09-CVE-2012-3463.markdown | 13 +++++++ .../_posts/2012-08-09-CVE-2012-3464.markdown | 13 +++++++ .../_posts/2012-08-09-CVE-2012-3465.markdown | 13 +++++++ .../_posts/2012-09-08-CVE-2012-6134.markdown | 11 ++++++ source/_posts/2012-09-08-OSVDB-90945.markdown | 38 +++++++++++++++++++ .../_posts/2012-12-06-CVE-2013-0284.markdown | 11 ++++++ .../_posts/2013-01-08-CVE-2013-0155.markdown | 14 +++++++ .../_posts/2013-01-08-CVE-2013-0156.markdown | 14 +++++++ .../_posts/2013-01-08-CVE-2013-1802.markdown | 11 ++++++ .../_posts/2013-01-09-CVE-2013-1800.markdown | 11 ++++++ .../_posts/2013-01-10-CVE-2013-0285.markdown | 13 +++++++ .../_posts/2013-01-11-CVE-2013-0175.markdown | 11 ++++++ .../_posts/2013-01-14-CVE-2013-1802.markdown | 11 ++++++ .../_posts/2013-01-28-CVE-2013-0233.markdown | 14 +++++++ .../_posts/2013-01-28-CVE-2013-0333.markdown | 12 ++++++ .../_posts/2013-02-06-CVE-2013-0256.markdown | 13 +++++++ .../_posts/2013-02-11-CVE-2013-0269.markdown | 17 ++++++++- .../_posts/2013-02-11-CVE-2013-0276.markdown | 13 +++++++ .../_posts/2013-02-11-CVE-2013-0277.markdown | 12 ++++++ .../_posts/2013-02-19-CVE-2013-1756.markdown | 11 ++++++ .../_posts/2013-02-28-CVE-2013-2512.markdown | 11 ++++++ .../_posts/2013-02-28-CVE-2013-2516.markdown | 36 ++++++++++++++++++ .../_posts/2013-03-19-CVE-2013-1854.markdown | 13 +++++++ .../_posts/2013-03-19-CVE-2013-1855.markdown | 13 +++++++ .../_posts/2013-03-19-CVE-2013-1856.markdown | 12 ++++++ .../_posts/2013-03-19-CVE-2013-1857.markdown | 13 +++++++ 37 files changed, 507 insertions(+), 2 deletions(-) create mode 100644 source/_posts/2012-09-08-OSVDB-90945.markdown create mode 100644 source/_posts/2013-02-28-CVE-2013-2516.markdown diff --git a/source/_posts/2007-11-27-CVE-2007-6183.markdown b/source/_posts/2007-11-27-CVE-2007-6183.markdown index 641da610..3e0fea09 100644 --- a/source/_posts/2007-11-27-CVE-2007-6183.markdown +++ b/source/_posts/2007-11-27-CVE-2007-6183.markdown @@ -6,18 +6,29 @@ comments: false categories: [gtk2] --- + ### CVE ID * [CVE-2007-6183](http://osvdb.org/show/osvdb/40774) + + +### OVSBD ID + +* [OSVDB-40774](http://osvdb.org/show/osvdb/40774) + + ### GEM NAME * gtk2 + ### PATCHED VERSIONS + * `> 0.16.0` + ### DESCRIPTION Format string vulnerability in the mdiag_initialize function in diff --git a/source/_posts/2009-12-01-CVE-2013-0263.markdown b/source/_posts/2009-12-01-CVE-2013-0263.markdown index fd1126d0..f8001598 100644 --- a/source/_posts/2009-12-01-CVE-2013-0263.markdown +++ b/source/_posts/2009-12-01-CVE-2013-0263.markdown @@ -6,22 +6,37 @@ comments: false categories: [rack] --- + ### CVE ID * [CVE-2013-0263](http://osvdb.org/show/osvdb/89939) + + +### OVSBD ID + +* [OSVDB-89939](http://osvdb.org/show/osvdb/89939) + + ### GEM NAME * rack + ### PATCHED VERSIONS + * `~> 1.1.6` + * `~> 1.2.8` + * `~> 1.3.10` + * `~> 1.4.5` + * `>= 1.5.2` + ### DESCRIPTION Rack contains a flaw that is due to an error in the Rack::Session::Cookie diff --git a/source/_posts/2011-01-25-CVE-2011-0739.markdown b/source/_posts/2011-01-25-CVE-2011-0739.markdown index 2e4e3e0f..57021a27 100644 --- a/source/_posts/2011-01-25-CVE-2011-0739.markdown +++ b/source/_posts/2011-01-25-CVE-2011-0739.markdown @@ -6,18 +6,29 @@ comments: false categories: [mail] --- + ### CVE ID * [CVE-2011-0739](http://www.osvdb.org/show/osvdb/70667) + + +### OVSBD ID + +* [OSVDB-70667](http://www.osvdb.org/show/osvdb/70667) + + ### GEM NAME * mail + ### PATCHED VERSIONS + * `>= 2.2.15` + ### DESCRIPTION Mail Gem for Ruby contains a flaw related to the failure to properly sanitise diff --git a/source/_posts/2012-03-01-CVE-2012-1098.markdown b/source/_posts/2012-03-01-CVE-2012-1098.markdown index be8d353a..626137be 100644 --- a/source/_posts/2012-03-01-CVE-2012-1098.markdown +++ b/source/_posts/2012-03-01-CVE-2012-1098.markdown @@ -6,10 +6,18 @@ comments: false categories: [activesupport,rails] --- + ### CVE ID * [CVE-2012-1098](http://osvdb.org/79726) + + +### OVSBD ID + +* [OSVDB-79726](http://osvdb.org/79726) + + ### GEM NAME * activesupport @@ -18,12 +26,17 @@ categories: [activesupport,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.12` + * `~> 3.1.4` + * `>= 3.2.2` + ### DESCRIPTION Ruby on Rails contains a flaw that allows a remote cross-site scripting (XSS) diff --git a/source/_posts/2012-03-01-CVE-2012-1099.markdown b/source/_posts/2012-03-01-CVE-2012-1099.markdown index 016ad964..4118854e 100644 --- a/source/_posts/2012-03-01-CVE-2012-1099.markdown +++ b/source/_posts/2012-03-01-CVE-2012-1099.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2012-1099](http://www.osvdb.org/show/osvdb/79727) + + +### OVSBD ID + +* [OSVDB-79727](http://www.osvdb.org/show/osvdb/79727) + + ### GEM NAME * actionpack @@ -18,12 +26,17 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.12` + * `~> 3.1.4` + * `>= 3.2.2` + ### DESCRIPTION Ruby on Rails contains a flaw that allows a remote cross-site scripting (XSS) diff --git a/source/_posts/2012-03-14-CVE-2012-2139.markdown b/source/_posts/2012-03-14-CVE-2012-2139.markdown index f5495756..a3d28e07 100644 --- a/source/_posts/2012-03-14-CVE-2012-2139.markdown +++ b/source/_posts/2012-03-14-CVE-2012-2139.markdown @@ -6,18 +6,29 @@ comments: false categories: [mail] --- + ### CVE ID * [CVE-2012-2139](http://www.osvdb.org/show/osvdb/81631) + + +### OVSBD ID + +* [OSVDB-81631](http://www.osvdb.org/show/osvdb/81631) + + ### GEM NAME * mail + ### PATCHED VERSIONS + * `>= 2.4.4` + ### DESCRIPTION Mail Gem for Ruby contains a flaw that allows a remote attacker to traverse outside of a restricted path. The issue is due to the program not properly sanitizing user input, specifically directory traversal style attacks (e.g., ../../) supplied via the 'to' parameter within the delivery method. This directory traversal attack would allow the attacker to modify arbitrary files. diff --git a/source/_posts/2012-03-14-CVE-2012-2140.markdown b/source/_posts/2012-03-14-CVE-2012-2140.markdown index 850605da..c69bf318 100644 --- a/source/_posts/2012-03-14-CVE-2012-2140.markdown +++ b/source/_posts/2012-03-14-CVE-2012-2140.markdown @@ -6,18 +6,29 @@ comments: false categories: [mail] --- + ### CVE ID * [CVE-2012-2140](http://www.osvdb.org/show/osvdb/81632) + + +### OVSBD ID + +* [OSVDB-81632](http://www.osvdb.org/show/osvdb/81632) + + ### GEM NAME * mail + ### PATCHED VERSIONS + * `>= 2.4.4` + ### DESCRIPTION Mail Gem for Ruby contains a flaw that occurs within the sendmail and exim diff --git a/source/_posts/2012-05-31-CVE-2012-2660.markdown b/source/_posts/2012-05-31-CVE-2012-2660.markdown index 1f58f5e4..0dba88cb 100644 --- a/source/_posts/2012-05-31-CVE-2012-2660.markdown +++ b/source/_posts/2012-05-31-CVE-2012-2660.markdown @@ -6,10 +6,18 @@ comments: false categories: [activerecord,rails] --- + ### CVE ID * [CVE-2012-2660](http://www.osvdb.org/show/osvdb/82610) + + +### OVSBD ID + +* [OSVDB-82610](http://www.osvdb.org/show/osvdb/82610) + + ### GEM NAME * activerecord @@ -18,12 +26,17 @@ categories: [activerecord,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.13` + * `~> 3.1.5` + * `>= 3.2.4` + ### DESCRIPTION Ruby on Rails contains a flaw related to the way ActiveRecord handles diff --git a/source/_posts/2012-05-31-CVE-2012-2661.markdown b/source/_posts/2012-05-31-CVE-2012-2661.markdown index a4cd923c..78df313e 100644 --- a/source/_posts/2012-05-31-CVE-2012-2661.markdown +++ b/source/_posts/2012-05-31-CVE-2012-2661.markdown @@ -6,10 +6,18 @@ comments: false categories: [activerecord,rails] --- + ### CVE ID * [CVE-2012-2661](http://www.osvdb.org/show/osvdb/82403) + + +### OVSBD ID + +* [OSVDB-82403](http://www.osvdb.org/show/osvdb/82403) + + ### GEM NAME * activerecord @@ -18,12 +26,17 @@ categories: [activerecord,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.13` + * `~> 3.1.5` + * `>= 3.2.4` + ### DESCRIPTION Ruby on Rails (RoR) contains a flaw that may allow an attacker to carry out diff --git a/source/_posts/2012-06-06-CVE-2012-267.markdown b/source/_posts/2012-06-06-CVE-2012-267.markdown index a01cc7a4..9b67a406 100644 --- a/source/_posts/2012-06-06-CVE-2012-267.markdown +++ b/source/_posts/2012-06-06-CVE-2012-267.markdown @@ -6,18 +6,29 @@ comments: false categories: [rack-cache] --- + ### CVE ID * [CVE-2012-267](http://osvdb.org/83077) + + +### OVSBD ID + +* [OSVDB-83077](http://osvdb.org/83077) + + ### GEM NAME * rack-cache + ### PATCHED VERSIONS + * `>= 1.2` + ### DESCRIPTION Rack::Cache (rack-cache) contains a flaw related to the rubygem caching diff --git a/source/_posts/2012-07-26-CVE-2012-3424.markdown b/source/_posts/2012-07-26-CVE-2012-3424.markdown index 73f9be74..0eb555da 100644 --- a/source/_posts/2012-07-26-CVE-2012-3424.markdown +++ b/source/_posts/2012-07-26-CVE-2012-3424.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2012-3424](http://www.osvdb.org/show/osvdb/84243) + + +### OVSBD ID + +* [OSVDB-84243](http://www.osvdb.org/show/osvdb/84243) + + ### GEM NAME * actionpack @@ -18,12 +26,17 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.16` + * `~> 3.1.7` + * `>= 3.2.7` + ### DESCRIPTION Ruby on Rails contains a flaw that may allow a remote denial of service. diff --git a/source/_posts/2012-08-09-CVE-2012-3463.markdown b/source/_posts/2012-08-09-CVE-2012-3463.markdown index aeb31c08..4a410681 100644 --- a/source/_posts/2012-08-09-CVE-2012-3463.markdown +++ b/source/_posts/2012-08-09-CVE-2012-3463.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2012-3463](http://osvdb.org/84515) + + +### OVSBD ID + +* [OSVDB-84515](http://osvdb.org/84515) + + ### GEM NAME * actionpack @@ -18,12 +26,17 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.17` + * `~> 3.1.8` + * `>= 3.2.8` + ### DESCRIPTION Ruby on Rails contains a flaw that allows a remote cross-site scripting (XSS) diff --git a/source/_posts/2012-08-09-CVE-2012-3464.markdown b/source/_posts/2012-08-09-CVE-2012-3464.markdown index 5d644898..2545d85a 100644 --- a/source/_posts/2012-08-09-CVE-2012-3464.markdown +++ b/source/_posts/2012-08-09-CVE-2012-3464.markdown @@ -6,10 +6,18 @@ comments: false categories: [activesupport,rails] --- + ### CVE ID * [CVE-2012-3464](http://www.osvdb.org/show/osvdb/84516) + + +### OVSBD ID + +* [OSVDB-84516](http://www.osvdb.org/show/osvdb/84516) + + ### GEM NAME * activesupport @@ -18,12 +26,17 @@ categories: [activesupport,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.17` + * `~> 3.1.8` + * `>= 3.2.8` + ### DESCRIPTION Ruby on Rails contains a flaw that allows a remote cross-site scripting (XSS) diff --git a/source/_posts/2012-08-09-CVE-2012-3465.markdown b/source/_posts/2012-08-09-CVE-2012-3465.markdown index 74daeb37..e9923157 100644 --- a/source/_posts/2012-08-09-CVE-2012-3465.markdown +++ b/source/_posts/2012-08-09-CVE-2012-3465.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2012-3465](http://www.osvdb.org/show/osvdb/84513) + + +### OVSBD ID + +* [OSVDB-84513](http://www.osvdb.org/show/osvdb/84513) + + ### GEM NAME * actionpack @@ -18,12 +26,17 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 3.0.17` + * `~> 3.1.8` + * `>= 3.2.8` + ### DESCRIPTION Ruby on Rails contains a flaw that allows a remote cross-site scripting (XSS) diff --git a/source/_posts/2012-09-08-CVE-2012-6134.markdown b/source/_posts/2012-09-08-CVE-2012-6134.markdown index ef46eb4e..ba3da4bc 100644 --- a/source/_posts/2012-09-08-CVE-2012-6134.markdown +++ b/source/_posts/2012-09-08-CVE-2012-6134.markdown @@ -6,18 +6,29 @@ comments: false categories: [omniauth-oauth2] --- + ### CVE ID * [CVE-2012-6134](http://www.osvdb.org/show/osvdb/90264) + + +### OVSBD ID + +* [OSVDB-90264](http://www.osvdb.org/show/osvdb/90264) + + ### GEM NAME * omniauth-oauth2 + ### PATCHED VERSIONS + * `>= 1.1.1` + ### DESCRIPTION The omniauth-oauth2 Ruby Gem contains a flaw that allows an attacker to diff --git a/source/_posts/2012-09-08-OSVDB-90945.markdown b/source/_posts/2012-09-08-OSVDB-90945.markdown new file mode 100644 index 00000000..04ac7c91 --- /dev/null +++ b/source/_posts/2012-09-08-OSVDB-90945.markdown @@ -0,0 +1,38 @@ +--- +layout: post +title: "OSVDB-90945: Loofah HTML and XSS injection vulnerability" +date: 2012-09-08 +comments: false +categories: [loofah] +--- + + + + +### OVSBD ID + +* [OSVDB-90945](http://www.osvdb.org/show/osvdb/90945) + + +### GEM NAME + +* loofah + + +### PATCHED VERSIONS + + +* `>= 0.4.6` + + +### DESCRIPTION + +Loofah Gem for Ruby contains a flaw that allows a remote cross-site +scripting (XSS) attack. This flaw exists because the +Loofah::HTML::Document\#text function passes properly sanitized +user-supplied input to the Loofah::XssFoliate and +Loofah::Helpers\#strip_tags functions which convert input back to +text. This may allow an attacker to create a specially crafted +request that would execute arbitrary script code in a user's browser +within the trust relationship between their browser and the server. + diff --git a/source/_posts/2012-12-06-CVE-2013-0284.markdown b/source/_posts/2012-12-06-CVE-2013-0284.markdown index 0607e672..61510e2e 100644 --- a/source/_posts/2012-12-06-CVE-2013-0284.markdown +++ b/source/_posts/2012-12-06-CVE-2013-0284.markdown @@ -6,18 +6,29 @@ comments: false categories: [newrelic_rpm] --- + ### CVE ID * [CVE-2013-0284](http://osvdb.org/show/osvdb/90189) + + +### OVSBD ID + +* [OSVDB-90189](http://osvdb.org/show/osvdb/90189) + + ### GEM NAME * newrelic_rpm + ### PATCHED VERSIONS + * `>= 3.5.3.25` + ### DESCRIPTION A bug in the Ruby agent causes database connection information and raw SQL diff --git a/source/_posts/2013-01-08-CVE-2013-0155.markdown b/source/_posts/2013-01-08-CVE-2013-0155.markdown index 0d3f1628..f90c3fac 100644 --- a/source/_posts/2013-01-08-CVE-2013-0155.markdown +++ b/source/_posts/2013-01-08-CVE-2013-0155.markdown @@ -6,10 +6,18 @@ comments: false categories: [activerecord,rails] --- + ### CVE ID * [CVE-2013-0155](http://osvdb.org/show/osvdb/89025) + + +### OVSBD ID + +* [OSVDB-89025](http://osvdb.org/show/osvdb/89025) + + ### GEM NAME * activerecord @@ -18,13 +26,19 @@ categories: [activerecord,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.16` + * `~> 3.0.19` + * `~> 3.1.10` + * `>= 3.2.11` + ### DESCRIPTION Ruby on Rails contains a flaw in the Active Record. The issue is due to an diff --git a/source/_posts/2013-01-08-CVE-2013-0156.markdown b/source/_posts/2013-01-08-CVE-2013-0156.markdown index 2f73faec..91d708ad 100644 --- a/source/_posts/2013-01-08-CVE-2013-0156.markdown +++ b/source/_posts/2013-01-08-CVE-2013-0156.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2013-0156](http://osvdb.org/show/osvdb/89026) + + +### OVSBD ID + +* [OSVDB-89026](http://osvdb.org/show/osvdb/89026) + + ### GEM NAME * actionpack @@ -18,13 +26,19 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.15` + * `~> 3.0.19` + * `~> 3.1.10` + * `>= 3.2.11` + ### DESCRIPTION Ruby on Rails contains a flaw in params_parser.rb of the Action Pack. diff --git a/source/_posts/2013-01-08-CVE-2013-1802.markdown b/source/_posts/2013-01-08-CVE-2013-1802.markdown index 245d14d4..2b22c2dd 100644 --- a/source/_posts/2013-01-08-CVE-2013-1802.markdown +++ b/source/_posts/2013-01-08-CVE-2013-1802.markdown @@ -6,18 +6,29 @@ comments: false categories: [extlib] --- + ### CVE ID * [CVE-2013-1802](http://osvdb.org/show/osvdb/90740) + + +### OVSBD ID + +* [OSVDB-90740](http://osvdb.org/show/osvdb/90740) + + ### GEM NAME * extlib + ### PATCHED VERSIONS + * `>= 0.9.16` + ### DESCRIPTION extlib Gem for Ruby contains a flaw that is triggered when a type casting diff --git a/source/_posts/2013-01-09-CVE-2013-1800.markdown b/source/_posts/2013-01-09-CVE-2013-1800.markdown index 0a831e6d..8ab03cdd 100644 --- a/source/_posts/2013-01-09-CVE-2013-1800.markdown +++ b/source/_posts/2013-01-09-CVE-2013-1800.markdown @@ -6,18 +6,29 @@ comments: false categories: [crack] --- + ### CVE ID * [CVE-2013-1800](http://osvdb.org/show/osvdb/90742) + + +### OVSBD ID + +* [OSVDB-90742](http://osvdb.org/show/osvdb/90742) + + ### GEM NAME * crack + ### PATCHED VERSIONS + * `>= 0.3.2` + ### DESCRIPTION crack Gem for Ruby contains a flaw that is triggered when a type casting diff --git a/source/_posts/2013-01-10-CVE-2013-0285.markdown b/source/_posts/2013-01-10-CVE-2013-0285.markdown index 2c76976e..a03d5310 100644 --- a/source/_posts/2013-01-10-CVE-2013-0285.markdown +++ b/source/_posts/2013-01-10-CVE-2013-0285.markdown @@ -6,20 +6,33 @@ comments: false categories: [nori] --- + ### CVE ID * [CVE-2013-0285](http://osvdb.org/show/osvdb/90196) + + +### OVSBD ID + +* [OSVDB-90196](http://osvdb.org/show/osvdb/90196) + + ### GEM NAME * nori + ### PATCHED VERSIONS + * `~> 1.0.3` + * `~> 1.1.4` + * `>= 2.0.2` + ### DESCRIPTION The Ruby Gem nori has a parameter parsing error that may allow an attacker diff --git a/source/_posts/2013-01-11-CVE-2013-0175.markdown b/source/_posts/2013-01-11-CVE-2013-0175.markdown index 656b04f9..295d420c 100644 --- a/source/_posts/2013-01-11-CVE-2013-0175.markdown +++ b/source/_posts/2013-01-11-CVE-2013-0175.markdown @@ -6,18 +6,29 @@ comments: false categories: [multi_xml] --- + ### CVE ID * [CVE-2013-0175](http://osvdb.org/show/osvdb/89148) + + +### OVSBD ID + +* [OSVDB-89148](http://osvdb.org/show/osvdb/89148) + + ### GEM NAME * multi_xml + ### PATCHED VERSIONS + * `>= 0.5.2` + ### DESCRIPTION The multi_xml Gem for Ruby contains a flaw that is triggered when an error diff --git a/source/_posts/2013-01-14-CVE-2013-1802.markdown b/source/_posts/2013-01-14-CVE-2013-1802.markdown index f57ffa2a..3510be2f 100644 --- a/source/_posts/2013-01-14-CVE-2013-1802.markdown +++ b/source/_posts/2013-01-14-CVE-2013-1802.markdown @@ -6,18 +6,29 @@ comments: false categories: [httparty] --- + ### CVE ID * [CVE-2013-1802](http://osvdb.org/show/osvdb/90741) + + +### OVSBD ID + +* [OSVDB-90741](http://osvdb.org/show/osvdb/90741) + + ### GEM NAME * httparty + ### PATCHED VERSIONS + * `>= 0.10.0` + ### DESCRIPTION httparty Gem for Ruby contains a flaw that is triggered when a type casting diff --git a/source/_posts/2013-01-28-CVE-2013-0233.markdown b/source/_posts/2013-01-28-CVE-2013-0233.markdown index 5c440dd9..d1d4a441 100644 --- a/source/_posts/2013-01-28-CVE-2013-0233.markdown +++ b/source/_posts/2013-01-28-CVE-2013-0233.markdown @@ -6,21 +6,35 @@ comments: false categories: [devise] --- + ### CVE ID * [CVE-2013-0233](http://osvdb.org/show/osvdb/89642) + + +### OVSBD ID + +* [OSVDB-89642](http://osvdb.org/show/osvdb/89642) + + ### GEM NAME * devise + ### PATCHED VERSIONS + * `~> 1.5.4` + * `~> 2.0.5` + * `~> 2.1.3` + * `>= 2.2.3` + ### DESCRIPTION Devise contains a flaw that is triggered during when a type conversion error diff --git a/source/_posts/2013-01-28-CVE-2013-0333.markdown b/source/_posts/2013-01-28-CVE-2013-0333.markdown index 66bad13f..e047b457 100644 --- a/source/_posts/2013-01-28-CVE-2013-0333.markdown +++ b/source/_posts/2013-01-28-CVE-2013-0333.markdown @@ -6,10 +6,18 @@ comments: false categories: [activesupport,rails] --- + ### CVE ID * [CVE-2013-0333](http://osvdb.org/show/osvdb/89594) + + +### OVSBD ID + +* [OSVDB-89594](http://osvdb.org/show/osvdb/89594) + + ### GEM NAME * activesupport @@ -18,11 +26,15 @@ categories: [activesupport,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.16` + * `>= 3.0.20` + ### DESCRIPTION Ruby on Rails contains a flaw in the JSON parser. Rails supports multiple diff --git a/source/_posts/2013-02-06-CVE-2013-0256.markdown b/source/_posts/2013-02-06-CVE-2013-0256.markdown index bb5c9a29..e5a3422e 100644 --- a/source/_posts/2013-02-06-CVE-2013-0256.markdown +++ b/source/_posts/2013-02-06-CVE-2013-0256.markdown @@ -6,20 +6,33 @@ comments: false categories: [rdoc] --- + ### CVE ID * [CVE-2013-0256](http://www.osvdb.org/show/osvdb/90004) + + +### OVSBD ID + +* [OSVDB-90004](http://www.osvdb.org/show/osvdb/90004) + + ### GEM NAME * rdoc + ### PATCHED VERSIONS + * `~> 3.9.5` + * `~> 3.12.1` + * `>= 4.0` + ### DESCRIPTION Doc documentation generated by rdoc 2.3.0 through rdoc 3.12 and prereleases diff --git a/source/_posts/2013-02-11-CVE-2013-0269.markdown b/source/_posts/2013-02-11-CVE-2013-0269.markdown index be4195bd..050d7435 100644 --- a/source/_posts/2013-02-11-CVE-2013-0269.markdown +++ b/source/_posts/2013-02-11-CVE-2013-0269.markdown @@ -6,20 +6,33 @@ comments: false categories: [json] --- + ### CVE ID * [CVE-2013-0269](http://direct.osvdb.org/show/osvdb/90074) + + +### OVSBD ID + +* [OSVDB-90074](http://direct.osvdb.org/show/osvdb/90074) + + ### GEM NAME * json + ### PATCHED VERSIONS -* `~> 1.5.4` -* `~> 1.6.7` + +* `~> 1.5.5` + +* `~> 1.6.8` + * `>= 1.7.7` + ### DESCRIPTION Ruby on Rails contains a flaw that may allow a remote denial of service. diff --git a/source/_posts/2013-02-11-CVE-2013-0276.markdown b/source/_posts/2013-02-11-CVE-2013-0276.markdown index 3b7ca918..e6b7674e 100644 --- a/source/_posts/2013-02-11-CVE-2013-0276.markdown +++ b/source/_posts/2013-02-11-CVE-2013-0276.markdown @@ -6,10 +6,18 @@ comments: false categories: [activerecord,rails] --- + ### CVE ID * [CVE-2013-0276](http://direct.osvdb.org/show/osvdb/90072) + + +### OVSBD ID + +* [OSVDB-90072](http://direct.osvdb.org/show/osvdb/90072) + + ### GEM NAME * activerecord @@ -18,12 +26,17 @@ categories: [activerecord,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.17` + * `~> 3.1.11` + * `>= 3.2.12` + ### DESCRIPTION Ruby on Rails contains a flaw in the attr_protected method of the diff --git a/source/_posts/2013-02-11-CVE-2013-0277.markdown b/source/_posts/2013-02-11-CVE-2013-0277.markdown index 4db99e8e..c347d065 100644 --- a/source/_posts/2013-02-11-CVE-2013-0277.markdown +++ b/source/_posts/2013-02-11-CVE-2013-0277.markdown @@ -6,10 +6,18 @@ comments: false categories: [activerecord,rails] --- + ### CVE ID * [CVE-2013-0277](http://direct.osvdb.org/show/osvdb/90073) + + +### OVSBD ID + +* [OSVDB-90073](http://direct.osvdb.org/show/osvdb/90073) + + ### GEM NAME * activerecord @@ -18,11 +26,15 @@ categories: [activerecord,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.17` + * `>= 3.1.0` + ### DESCRIPTION Ruby on Rails contains a flaw in the +serialize+ helper in the Active Record. diff --git a/source/_posts/2013-02-19-CVE-2013-1756.markdown b/source/_posts/2013-02-19-CVE-2013-1756.markdown index 083a52fc..97981ef5 100644 --- a/source/_posts/2013-02-19-CVE-2013-1756.markdown +++ b/source/_posts/2013-02-19-CVE-2013-1756.markdown @@ -6,18 +6,29 @@ comments: false categories: [dragonfly] --- + ### CVE ID * [CVE-2013-1756](http://www.osvdb.com/show/osvdb/90647) + + +### OVSBD ID + +* [OSVDB-90647](http://www.osvdb.com/show/osvdb/90647) + + ### GEM NAME * dragonfly + ### PATCHED VERSIONS + * `>= 0.9.13` + ### DESCRIPTION The Dragonfly gem contains a flaw that allows an attacker to run arbitrary code diff --git a/source/_posts/2013-02-28-CVE-2013-2512.markdown b/source/_posts/2013-02-28-CVE-2013-2512.markdown index 8b5a4673..b8e1a210 100644 --- a/source/_posts/2013-02-28-CVE-2013-2512.markdown +++ b/source/_posts/2013-02-28-CVE-2013-2512.markdown @@ -6,18 +6,29 @@ comments: false categories: [ftpd] --- + ### CVE ID * [CVE-2013-2512](http://osvdb.org/show/osvdb/90784) + + +### OVSBD ID + +* [OSVDB-90784](http://osvdb.org/show/osvdb/90784) + + ### GEM NAME * ftpd + ### PATCHED VERSIONS + * `>= 0.2.2` + ### DESCRIPTION ftpd Gem for Ruby contains a flaw that is triggered when handling a diff --git a/source/_posts/2013-02-28-CVE-2013-2516.markdown b/source/_posts/2013-02-28-CVE-2013-2516.markdown new file mode 100644 index 00000000..23a7db06 --- /dev/null +++ b/source/_posts/2013-02-28-CVE-2013-2516.markdown @@ -0,0 +1,36 @@ +--- +layout: post +title: "CVE-2013-2516: fileutils Gem for Ruby file_utils.rb Crafted URL Handling Remote Command Execution" +date: 2013-02-28 +comments: false +categories: [fileutils] +--- + + +### CVE ID + +* [CVE-2013-2516](http://osvdb.org/show/osvdb/90717) + + + +### OVSBD ID + +* [OSVDB-90717](http://osvdb.org/show/osvdb/90717) + + +### GEM NAME + +* fileutils + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +fileutils Gem for Ruby contains a flaw in file_utils.rb. The issue is +triggered when handling a specially crafted URL containing a command +after a delimiter (;). This may allow a remote attacker to potentially +execute arbitrary commands. + diff --git a/source/_posts/2013-03-19-CVE-2013-1854.markdown b/source/_posts/2013-03-19-CVE-2013-1854.markdown index ca5d6c9a..bee00f42 100644 --- a/source/_posts/2013-03-19-CVE-2013-1854.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1854.markdown @@ -6,10 +6,18 @@ comments: false categories: [activerecord,rails] --- + ### CVE ID * [CVE-2013-1854](http://osvdb.org/show/osvdb/91453) + + +### OVSBD ID + +* [OSVDB-91453](http://osvdb.org/show/osvdb/91453) + + ### GEM NAME * activerecord @@ -18,12 +26,17 @@ categories: [activerecord,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.18` + * `~> 3.1.12` + * `>= 3.2.13` + ### DESCRIPTION When a hash is provided as the find value for a query, the keys of diff --git a/source/_posts/2013-03-19-CVE-2013-1855.markdown b/source/_posts/2013-03-19-CVE-2013-1855.markdown index a331b537..b639e66e 100644 --- a/source/_posts/2013-03-19-CVE-2013-1855.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1855.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2013-1855](http://www.osvdb.org/show/osvdb/91452) + + +### OVSBD ID + +* [OSVDB-91452](http://www.osvdb.org/show/osvdb/91452) + + ### GEM NAME * actionpack @@ -18,12 +26,17 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.18` + * `~> 3.1.12` + * `>= 3.2.13` + ### DESCRIPTION There is an XSS vulnerability in the `sanitize_css` method in Action diff --git a/source/_posts/2013-03-19-CVE-2013-1856.markdown b/source/_posts/2013-03-19-CVE-2013-1856.markdown index ddce7da1..6700c2a3 100644 --- a/source/_posts/2013-03-19-CVE-2013-1856.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1856.markdown @@ -6,10 +6,18 @@ comments: false categories: [activesupport,rails] --- + ### CVE ID * [CVE-2013-1856](http://www.osvdb.org/show/osvdb/91451) + + +### OVSBD ID + +* [OSVDB-91451](http://www.osvdb.org/show/osvdb/91451) + + ### GEM NAME * activesupport @@ -18,11 +26,15 @@ categories: [activesupport,rails] * rails + ### PATCHED VERSIONS + * `~> 3.1.12` + * `>= 3.2.13` + ### DESCRIPTION The ActiveSupport XML parsing functionality supports multiple diff --git a/source/_posts/2013-03-19-CVE-2013-1857.markdown b/source/_posts/2013-03-19-CVE-2013-1857.markdown index 2e3ca9eb..355cfe56 100644 --- a/source/_posts/2013-03-19-CVE-2013-1857.markdown +++ b/source/_posts/2013-03-19-CVE-2013-1857.markdown @@ -6,10 +6,18 @@ comments: false categories: [actionpack,rails] --- + ### CVE ID * [CVE-2013-1857](http://osvdb.org/show/osvdb/91454) + + +### OVSBD ID + +* [OSVDB-91454](http://osvdb.org/show/osvdb/91454) + + ### GEM NAME * actionpack @@ -18,12 +26,17 @@ categories: [actionpack,rails] * rails + ### PATCHED VERSIONS + * `~> 2.3.18` + * `~> 3.1.12` + * `>= 3.2.13` + ### DESCRIPTION The sanitize helper in Ruby on Rails is designed to From 2939f6e6fc9fcecfcd304d0dad1f243d0d9840b4 Mon Sep 17 00:00:00 2001 From: Phill MV Date: Wed, 4 Dec 2013 15:51:28 -0500 Subject: [PATCH 008/626] Ran sync advisories. --- ruby-advisory-db | 2 +- .../_posts/2012-06-06-CVE-2012-2671.markdown | 38 ++++++++++++++++ .../_posts/2013-02-21-CVE-2013-0162.markdown | 34 ++++++++++++++ .../_posts/2013-02-21-CVE-2013-1607.markdown | 34 ++++++++++++++ .../_posts/2013-02-21-CVE-2013-1656.markdown | 32 ++++++++++++++ .../_posts/2013-02-28-CVE-2013-2516.markdown | 6 +-- source/_posts/2013-02-28-OSVDB-90715.markdown | 28 ++++++++++++ source/_posts/2013-02-28-OSVDB-90716.markdown | 28 ++++++++++++ .../_posts/2013-03-04-CVE-2013-2513.markdown | 32 ++++++++++++++ .../_posts/2013-03-12-CVE-2013-1878.markdown | 32 ++++++++++++++ .../_posts/2013-03-12-CVE-2013-2616.markdown | 34 ++++++++++++++ .../_posts/2013-03-13-CVE-2013-1876.markdown | 32 ++++++++++++++ .../_posts/2013-03-18-CVE-2013-1875.markdown | 32 ++++++++++++++ .../_posts/2013-03-26-CVE-2013-1898.markdown | 32 ++++++++++++++ .../_posts/2013-04-01-CVE-2013-1911.markdown | 32 ++++++++++++++ .../_posts/2013-04-04-CVE-2013-1947.markdown | 32 ++++++++++++++ .../_posts/2013-04-08-CVE-2013-1933.markdown | 32 ++++++++++++++ .../_posts/2013-04-13-CVE-2013-1948.markdown | 32 ++++++++++++++ .../_posts/2013-05-14-CVE-2013-2090.markdown | 34 ++++++++++++++ source/_posts/2013-06-26-OSVDB-94679.markdown | 28 ++++++++++++ source/_posts/2013-08-02-OSVDB-95948.markdown | 33 ++++++++++++++ source/_posts/2013-08-03-OSVDB-96425.markdown | 39 ++++++++++++++++ .../_posts/2013-08-14-CVE-2013-5647.markdown | 34 ++++++++++++++ .../_posts/2013-09-03-CVE-2013-5671.markdown | 34 ++++++++++++++ .../_posts/2013-10-08-CVE-2013-4413.markdown | 34 ++++++++++++++ .../_posts/2013-10-16-CVE-2013-4389.markdown | 34 ++++++++++++++ .../_posts/2013-10-22-CVE-2013-4457.markdown | 34 ++++++++++++++ .../_posts/2013-11-04-CVE-2013-4489.markdown | 34 ++++++++++++++ .../_posts/2013-11-12-CVE-2013-4562.markdown | 40 +++++++++++++++++ .../_posts/2013-11-14-CVE-2013-4593.markdown | 37 ++++++++++++++++ .../_posts/2013-12-03-CVE-2013-4491.markdown | 42 ++++++++++++++++++ .../_posts/2013-12-03-CVE-2013-4492.markdown | 34 ++++++++++++++ .../_posts/2013-12-03-CVE-2013-6414.markdown | 38 ++++++++++++++++ .../_posts/2013-12-03-CVE-2013-6415.markdown | 40 +++++++++++++++++ .../_posts/2013-12-03-CVE-2013-6416.markdown | 41 +++++++++++++++++ .../_posts/2013-12-03-CVE-2013-6417.markdown | 44 +++++++++++++++++++ 36 files changed, 1172 insertions(+), 6 deletions(-) create mode 100644 source/_posts/2012-06-06-CVE-2012-2671.markdown create mode 100644 source/_posts/2013-02-21-CVE-2013-0162.markdown create mode 100644 source/_posts/2013-02-21-CVE-2013-1607.markdown create mode 100644 source/_posts/2013-02-21-CVE-2013-1656.markdown create mode 100644 source/_posts/2013-02-28-OSVDB-90715.markdown create mode 100644 source/_posts/2013-02-28-OSVDB-90716.markdown create mode 100644 source/_posts/2013-03-04-CVE-2013-2513.markdown create mode 100644 source/_posts/2013-03-12-CVE-2013-1878.markdown create mode 100644 source/_posts/2013-03-12-CVE-2013-2616.markdown create mode 100644 source/_posts/2013-03-13-CVE-2013-1876.markdown create mode 100644 source/_posts/2013-03-18-CVE-2013-1875.markdown create mode 100644 source/_posts/2013-03-26-CVE-2013-1898.markdown create mode 100644 source/_posts/2013-04-01-CVE-2013-1911.markdown create mode 100644 source/_posts/2013-04-04-CVE-2013-1947.markdown create mode 100644 source/_posts/2013-04-08-CVE-2013-1933.markdown create mode 100644 source/_posts/2013-04-13-CVE-2013-1948.markdown create mode 100644 source/_posts/2013-05-14-CVE-2013-2090.markdown create mode 100644 source/_posts/2013-06-26-OSVDB-94679.markdown create mode 100644 source/_posts/2013-08-02-OSVDB-95948.markdown create mode 100644 source/_posts/2013-08-03-OSVDB-96425.markdown create mode 100644 source/_posts/2013-08-14-CVE-2013-5647.markdown create mode 100644 source/_posts/2013-09-03-CVE-2013-5671.markdown create mode 100644 source/_posts/2013-10-08-CVE-2013-4413.markdown create mode 100644 source/_posts/2013-10-16-CVE-2013-4389.markdown create mode 100644 source/_posts/2013-10-22-CVE-2013-4457.markdown create mode 100644 source/_posts/2013-11-04-CVE-2013-4489.markdown create mode 100644 source/_posts/2013-11-12-CVE-2013-4562.markdown create mode 100644 source/_posts/2013-11-14-CVE-2013-4593.markdown create mode 100644 source/_posts/2013-12-03-CVE-2013-4491.markdown create mode 100644 source/_posts/2013-12-03-CVE-2013-4492.markdown create mode 100644 source/_posts/2013-12-03-CVE-2013-6414.markdown create mode 100644 source/_posts/2013-12-03-CVE-2013-6415.markdown create mode 100644 source/_posts/2013-12-03-CVE-2013-6416.markdown create mode 100644 source/_posts/2013-12-03-CVE-2013-6417.markdown diff --git a/ruby-advisory-db b/ruby-advisory-db index 3c37a7e2..b281010b 160000 --- a/ruby-advisory-db +++ b/ruby-advisory-db @@ -1 +1 @@ -Subproject commit 3c37a7e29fa04b3034d01df9932692b292b0b467 +Subproject commit b281010b70565c59c34dbabaa5bb4efb91cc4668 diff --git a/source/_posts/2012-06-06-CVE-2012-2671.markdown b/source/_posts/2012-06-06-CVE-2012-2671.markdown new file mode 100644 index 00000000..3368c147 --- /dev/null +++ b/source/_posts/2012-06-06-CVE-2012-2671.markdown @@ -0,0 +1,38 @@ +--- +layout: post +title: "CVE-2012-2671: rack-cache Rubygem Sensitive HTTP Header Caching Weakness" +date: 2012-06-06 +comments: false +categories: [rack-cache] +--- + + +### CVE ID + +* [CVE-2012-2671](http://osvdb.org/83077) + + + +### OVSBD ID + +* [OSVDB-83077](http://osvdb.org/83077) + + +### GEM NAME + +* rack-cache + + +### PATCHED VERSIONS + + +* `>= 1.2` + + +### DESCRIPTION + +Rack::Cache (rack-cache) contains a flaw related to the rubygem caching +sensitive HTTP headers. This will result in a weakness that may make it +easier for an attacker to gain access to a user's session via a specially +crafted header. + diff --git a/source/_posts/2013-02-21-CVE-2013-0162.markdown b/source/_posts/2013-02-21-CVE-2013-0162.markdown new file mode 100644 index 00000000..04bcff4e --- /dev/null +++ b/source/_posts/2013-02-21-CVE-2013-0162.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-0162: RubyGems ruby_parser (RP) Temporary File Symlink Arbitrary File Overwrite" +date: 2013-02-21 +comments: false +categories: [ruby_parser] +--- + + +### CVE ID + +* [CVE-2013-0162](http://osvdb.org/show/osvdb/90561) + + + +### OVSBD ID + +* [OSVDB-90561](http://osvdb.org/show/osvdb/90561) + + +### GEM NAME + +* ruby_parser + + +### PATCHED VERSIONS + + +* `>= 3.1.2` + + +### DESCRIPTION + +RubyGems ruby_parser (RP) contains a flaw as rubygem-ruby_parser creates temporary files insecurely. It is possible for a local attacker to use a symlink attack to cause the program to unexpectedly overwrite an arbitrary file. diff --git a/source/_posts/2013-02-21-CVE-2013-1607.markdown b/source/_posts/2013-02-21-CVE-2013-1607.markdown new file mode 100644 index 00000000..fc83859f --- /dev/null +++ b/source/_posts/2013-02-21-CVE-2013-1607.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-1607: PDFKit Gem for Ruby PDF File Generation Parameter Handling Remote Code Execution" +date: 2013-02-21 +comments: false +categories: [pdfkit] +--- + + +### CVE ID + +* [CVE-2013-1607](http://osvdb.org/show/osvdb/90867) + + + +### OVSBD ID + +* [OSVDB-90867](http://osvdb.org/show/osvdb/90867) + + +### GEM NAME + +* pdfkit + + +### PATCHED VERSIONS + + +* `>= 0.5.3` + + +### DESCRIPTION + +PDFKit Gem for Ruby contains a flaw that is due to the program failing to properly validate input during the handling of parameters when generating PDF files. This may allow a remote attacker to potentially execute arbitrary code via the pdfkit generation options. diff --git a/source/_posts/2013-02-21-CVE-2013-1656.markdown b/source/_posts/2013-02-21-CVE-2013-1656.markdown new file mode 100644 index 00000000..cf3e622e --- /dev/null +++ b/source/_posts/2013-02-21-CVE-2013-1656.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1656: Spree promotion_rules_controller.rb promotion_rule Parameter Arbitrary Ruby Object Instantiation Command Execution" +date: 2013-02-21 +comments: false +categories: [spree] +--- + + +### CVE ID + +* [CVE-2013-1656](http://osvdb.org/show/osvdb/91219) + + + +### OVSBD ID + +* [OSVDB-91219](http://osvdb.org/show/osvdb/91219) + + +### GEM NAME + +* spree + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +Spree contains a flaw that is triggered when handling input passed via the 'promotion_rule' parameter to promotion_rules_controller.rb. This may allow a remote authenticated attacker to instantiate arbitrary Ruby objects and potentially execute arbitrary commands. diff --git a/source/_posts/2013-02-28-CVE-2013-2516.markdown b/source/_posts/2013-02-28-CVE-2013-2516.markdown index 23a7db06..a70e7aeb 100644 --- a/source/_posts/2013-02-28-CVE-2013-2516.markdown +++ b/source/_posts/2013-02-28-CVE-2013-2516.markdown @@ -29,8 +29,4 @@ None. ### DESCRIPTION -fileutils Gem for Ruby contains a flaw in file_utils.rb. The issue is -triggered when handling a specially crafted URL containing a command -after a delimiter (;). This may allow a remote attacker to potentially -execute arbitrary commands. - +fileutils Gem for Ruby contains a flaw in file_utils.rb. The issue is triggered when handling a specially crafted URL containing a command after a delimiter (;). This may allow a remote attacker to potentially execute arbitrary commands. diff --git a/source/_posts/2013-02-28-OSVDB-90715.markdown b/source/_posts/2013-02-28-OSVDB-90715.markdown new file mode 100644 index 00000000..43865836 --- /dev/null +++ b/source/_posts/2013-02-28-OSVDB-90715.markdown @@ -0,0 +1,28 @@ +--- +layout: post +title: "OSVDB-90715: fileutils Gem for Ruby files_utils.rb /tmp File Symlink Arbitrary File Overwrite" +date: 2013-02-28 +comments: false +categories: [fileutils] +--- + + + + +### OVSBD ID + +* [OSVDB-90715](http://osvdb.org/show/osvdb/90715) + + +### GEM NAME + +* fileutils + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +fileutils Gem for Ruby contains a flaw as the program creates temporary files insecurely. It is possible for a local attacker to use a symlink attack against temporary files created by files_utils.rb to cause the program to unexpectedly overwrite an arbitrary file. diff --git a/source/_posts/2013-02-28-OSVDB-90716.markdown b/source/_posts/2013-02-28-OSVDB-90716.markdown new file mode 100644 index 00000000..6a70dacb --- /dev/null +++ b/source/_posts/2013-02-28-OSVDB-90716.markdown @@ -0,0 +1,28 @@ +--- +layout: post +title: "OSVDB-90716: fileutils Gem for Ruby Temporary Directory Hijacking Weakness" +date: 2013-02-28 +comments: false +categories: [fileutils] +--- + + + + +### OVSBD ID + +* [OSVDB-90716](http://osvdb.org/show/osvdb/90716) + + +### GEM NAME + +* fileutils + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +fileutils Gem for Ruby contains a flaw that is due to the program not verifying the existence of a directory before attempting to create it. This may allow a local attacker to create the directory in advance, thus owning any files subsequently written to it. diff --git a/source/_posts/2013-03-04-CVE-2013-2513.markdown b/source/_posts/2013-03-04-CVE-2013-2513.markdown new file mode 100644 index 00000000..8be24d6d --- /dev/null +++ b/source/_posts/2013-03-04-CVE-2013-2513.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-2513: flash_tool Gem for Ruby File Download Handling Arbitrary Command Execution" +date: 2013-03-04 +comments: false +categories: [flash_tool] +--- + + +### CVE ID + +* [CVE-2013-2513](http://osvdb.org/show/osvdb/90829) + + + +### OVSBD ID + +* [OSVDB-90829](http://osvdb.org/show/osvdb/90829) + + +### GEM NAME + +* flash_tool + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +flash_tool Gem for Ruby contains a flaw that is triggered during the handling of downloaded files that contain shell characters. With a specially crafted file, a context-dependent attacker can execute arbitrary commands. diff --git a/source/_posts/2013-03-12-CVE-2013-1878.markdown b/source/_posts/2013-03-12-CVE-2013-1878.markdown new file mode 100644 index 00000000..4300d644 --- /dev/null +++ b/source/_posts/2013-03-12-CVE-2013-1878.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1878: Curl Gem for Ruby URI Handling Arbitrary Command Injection" +date: 2013-03-12 +comments: false +categories: [curl] +--- + + +### CVE ID + +* [CVE-2013-1878](http://osvdb.org/show/osvdb/91230) + + + +### OVSBD ID + +* [OSVDB-91230](http://osvdb.org/show/osvdb/91230) + + +### GEM NAME + +* curl + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +Curl Gem for Ruby contains a flaw that is triggered during the handling of specially crafted input passed via the URL. This may allow a context-dependent attacker to potentially execute arbitrary commands by injecting them via a semi-colon (;). diff --git a/source/_posts/2013-03-12-CVE-2013-2616.markdown b/source/_posts/2013-03-12-CVE-2013-2616.markdown new file mode 100644 index 00000000..51eb09c0 --- /dev/null +++ b/source/_posts/2013-03-12-CVE-2013-2616.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-2616: MiniMagick Gem for Ruby URI Handling Arbitrary Command Injection" +date: 2013-03-12 +comments: false +categories: [mini_magick] +--- + + +### CVE ID + +* [CVE-2013-2616](http://osvdb.org/show/osvdb/91231) + + + +### OVSBD ID + +* [OSVDB-91231](http://osvdb.org/show/osvdb/91231) + + +### GEM NAME + +* mini_magick + + +### PATCHED VERSIONS + + +* `>= 3.6.0` + + +### DESCRIPTION + +MiniMagick Gem for Ruby contains a flaw that is triggered during the handling of specially crafted input from an untrusted source passed via a URL that contains a ';' character. This may allow a context-dependent attacker to potentially execute arbitrary commands. diff --git a/source/_posts/2013-03-13-CVE-2013-1876.markdown b/source/_posts/2013-03-13-CVE-2013-1876.markdown new file mode 100644 index 00000000..5ee6edd2 --- /dev/null +++ b/source/_posts/2013-03-13-CVE-2013-1876.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1876: fastreader Gem for Ruby URI Handling Arbitrary Command Injection" +date: 2013-03-13 +comments: false +categories: [fastreader] +--- + + +### CVE ID + +* [CVE-2013-1876](http://osvdb.org/show/osvdb/91232) + + + +### OVSBD ID + +* [OSVDB-91232](http://osvdb.org/show/osvdb/91232) + + +### GEM NAME + +* fastreader + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +fastreader Gem for Ruby contains a flaw that is triggered during the handling of specially crafted input passed via a URL that contains a ';' character. This may allow a context-dependent attacker to potentially execute arbitrary commands. diff --git a/source/_posts/2013-03-18-CVE-2013-1875.markdown b/source/_posts/2013-03-18-CVE-2013-1875.markdown new file mode 100644 index 00000000..3a3d7691 --- /dev/null +++ b/source/_posts/2013-03-18-CVE-2013-1875.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1875: command_wrap Gem for Ruby URI Handling Arbitrary Command Injection" +date: 2013-03-18 +comments: false +categories: [command_wrap] +--- + + +### CVE ID + +* [CVE-2013-1875](http://osvdb.org/show/osvdb/91450) + + + +### OVSBD ID + +* [OSVDB-91450](http://osvdb.org/show/osvdb/91450) + + +### GEM NAME + +* command_wrap + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +command_wrap Gem for Ruby contains a flaw that is triggered during the handling of input passed via the URL that contains a semicolon character (;). This will allow a remote attacker to inject arbitrary commands and have them executed in the context of the user clicking it. diff --git a/source/_posts/2013-03-26-CVE-2013-1898.markdown b/source/_posts/2013-03-26-CVE-2013-1898.markdown new file mode 100644 index 00000000..3c00d639 --- /dev/null +++ b/source/_posts/2013-03-26-CVE-2013-1898.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1898: Thumbshooter Gem for Ruby thumbshooter.rb URL Shell Metacharacter Injection Arbitrary Command Execution" +date: 2013-03-26 +comments: false +categories: [thumbshooter] +--- + + +### CVE ID + +* [CVE-2013-1898](http://osvdb.org/show/osvdb/91839) + + + +### OVSBD ID + +* [OSVDB-91839](http://osvdb.org/show/osvdb/91839) + + +### GEM NAME + +* thumbshooter + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +Thumbshooter Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed to thumbshooter.rb. With a specially crafted URL that contains shell metacharacters, a context-dependent attacker can execute arbitrary commands. diff --git a/source/_posts/2013-04-01-CVE-2013-1911.markdown b/source/_posts/2013-04-01-CVE-2013-1911.markdown new file mode 100644 index 00000000..044e386e --- /dev/null +++ b/source/_posts/2013-04-01-CVE-2013-1911.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1911: ldoce Gem for Ruby MP3 URL Shell Metacharacter Injection Arbitrary Command Execution" +date: 2013-04-01 +comments: false +categories: [ldoce] +--- + + +### CVE ID + +* [CVE-2013-1911](http://osvdb.org/show/osvdb/91870) + + + +### OVSBD ID + +* [OSVDB-91870](http://osvdb.org/show/osvdb/91870) + + +### GEM NAME + +* ldoce + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +ldoce Gem for Ruby contains a flaw that is triggered during the handling of a specially crafted URL or filename for MP3 files that have shell metacharacters injected in to it. This may allow a context-dependent attacker to execute arbitrary commands. diff --git a/source/_posts/2013-04-04-CVE-2013-1947.markdown b/source/_posts/2013-04-04-CVE-2013-1947.markdown new file mode 100644 index 00000000..11f5ed78 --- /dev/null +++ b/source/_posts/2013-04-04-CVE-2013-1947.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1947: kelredd-pruview Gem for Ruby /lib/pruview/document.rb File Name Shell Metacharacter Injection Arbitrary Command Execution" +date: 2013-04-04 +comments: false +categories: [kelredd-pruview] +--- + + +### CVE ID + +* [CVE-2013-1947](http://osvdb.org/show/osvdb/92228) + + + +### OVSBD ID + +* [OSVDB-92228](http://osvdb.org/show/osvdb/92228) + + +### GEM NAME + +* kelredd-pruview + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +kelredd-pruview Gem for Ruby contains a flaw in /lib/pruview/document.rb. The issue is triggered during the handling of a specially crafted file name that contains injected shell metacharacters. This may allow a context-dependent attacker to potentially execute arbitrary commands. diff --git a/source/_posts/2013-04-08-CVE-2013-1933.markdown b/source/_posts/2013-04-08-CVE-2013-1933.markdown new file mode 100644 index 00000000..5278caad --- /dev/null +++ b/source/_posts/2013-04-08-CVE-2013-1933.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1933: Karteek Docsplit Gem for Ruby text_extractor.rb File Name Shell Metacharacter Injection Arbitrary Command Execution" +date: 2013-04-08 +comments: false +categories: [karteek-docsplit] +--- + + +### CVE ID + +* [CVE-2013-1933](http://osvdb.org/show/osvdb/92117) + + + +### OVSBD ID + +* [OSVDB-92117](http://osvdb.org/show/osvdb/92117) + + +### GEM NAME + +* karteek-docsplit + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +Karteek Docsplit Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed to text_extractor.rb. With a specially crafted file name that contains shell metacharacters, a context-dependent attacker can execute arbitrary commands diff --git a/source/_posts/2013-04-13-CVE-2013-1948.markdown b/source/_posts/2013-04-13-CVE-2013-1948.markdown new file mode 100644 index 00000000..b64913b6 --- /dev/null +++ b/source/_posts/2013-04-13-CVE-2013-1948.markdown @@ -0,0 +1,32 @@ +--- +layout: post +title: "CVE-2013-1948: md2pdf Gem for Ruby md2pdf/converter.rb File Name Shell Metacharacter Injection Arbitrary Command Execution" +date: 2013-04-13 +comments: false +categories: [md2pdf] +--- + + +### CVE ID + +* [CVE-2013-1948](http://osvdb.org/show/osvdb/92290) + + + +### OVSBD ID + +* [OSVDB-92290](http://osvdb.org/show/osvdb/92290) + + +### GEM NAME + +* md2pdf + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +md2pdf Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed to md2pdf/converter.rb. With a specially crafted file name that contains shell metacharacters, a context-dependent attacker can execute arbitrary commands diff --git a/source/_posts/2013-05-14-CVE-2013-2090.markdown b/source/_posts/2013-05-14-CVE-2013-2090.markdown new file mode 100644 index 00000000..1b8d9961 --- /dev/null +++ b/source/_posts/2013-05-14-CVE-2013-2090.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-2090: Creme Fraiche Gem for Ruby File Name Shell Metacharacter Injection Arbitrary Command Execution" +date: 2013-05-14 +comments: false +categories: [cremefraiche] +--- + + +### CVE ID + +* [CVE-2013-2090](http://osvdb.org/show/osvdb/93395) + + + +### OVSBD ID + +* [OSVDB-93395](http://osvdb.org/show/osvdb/93395) + + +### GEM NAME + +* cremefraiche + + +### PATCHED VERSIONS + + +* `>= 0.6.1` + + +### DESCRIPTION + +Creme Fraiche Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input in file names. With a specially crafted file name that contains shell metacharacters, a context-dependent attacker can execute arbitrary commands diff --git a/source/_posts/2013-06-26-OSVDB-94679.markdown b/source/_posts/2013-06-26-OSVDB-94679.markdown new file mode 100644 index 00000000..43e031a4 --- /dev/null +++ b/source/_posts/2013-06-26-OSVDB-94679.markdown @@ -0,0 +1,28 @@ +--- +layout: post +title: "OSVDB-94679: enum_column3 Gem for Ruby Symbol Creation Remote DoS" +date: 2013-06-26 +comments: false +categories: [enum_column3] +--- + + + + +### OVSBD ID + +* [OSVDB-94679](http://osvdb.org/show/osvdb/94679) + + +### GEM NAME + +* enum_column3 + + +### PATCHED VERSIONS + +None. + +### DESCRIPTION + +The enum_column3 Gem for Ruby contains a flaw that may allow a remote denial of service. The issue is due to the program typecasting unexpected strings to symbols. This may allow a remote attacker to crash the program. diff --git a/source/_posts/2013-08-02-OSVDB-95948.markdown b/source/_posts/2013-08-02-OSVDB-95948.markdown new file mode 100644 index 00000000..cfb1ec35 --- /dev/null +++ b/source/_posts/2013-08-02-OSVDB-95948.markdown @@ -0,0 +1,33 @@ +--- +layout: post +title: "OSVDB-95948: Ruby rgpg Gem Shell Command Injection Vulnerabilities" +date: 2013-08-02 +comments: false +categories: [rgpg] +--- + + + + +### OVSBD ID + +* [OSVDB-95948](http://www.osvdb.org/show/osvdb/95948) + + +### GEM NAME + +* rgpg + + +### PATCHED VERSIONS + + +* `>= 0.2.3` + + +### DESCRIPTION + +rgpg Gem for Ruby contains a flaw in the GpgHelper module (lib/rgpg/gpg_helper.rb). +The issue is due to the program failing to properly sanitize user-supplied input before being used in the system() function for execution. +This may allow a remote attacker to execute arbitrary commands. + diff --git a/source/_posts/2013-08-03-OSVDB-96425.markdown b/source/_posts/2013-08-03-OSVDB-96425.markdown new file mode 100644 index 00000000..224e1415 --- /dev/null +++ b/source/_posts/2013-08-03-OSVDB-96425.markdown @@ -0,0 +1,39 @@ +--- +layout: post +title: "OSVDB-96425: redis-namespace Gem for Ruby contains a flaw in the method_missing implementation" +date: 2013-08-03 +comments: false +categories: [redis-namespace] +--- + + + + +### OVSBD ID + +* [OSVDB-96425](http://www.osvdb.org/show/osvdb/96425) + + +### GEM NAME + +* redis-namespace + + +### PATCHED VERSIONS + + +* `>= 1.3.1` + +* `>= 1.2.2` + +* `>= 1.1.1` + +* `>= 1.0.4` + + +### DESCRIPTION + +redis-namespace Gem for Ruby contains a flaw in the method_missing implementation. +The issue is triggered when handling exec commands called via send(). This may allow a +remote attacker to execute arbitrary commands. + diff --git a/source/_posts/2013-08-14-CVE-2013-5647.markdown b/source/_posts/2013-08-14-CVE-2013-5647.markdown new file mode 100644 index 00000000..d4b6c28e --- /dev/null +++ b/source/_posts/2013-08-14-CVE-2013-5647.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-5647: Sounder Gem for Ruby File Name Handling Arbitrary Command Execution" +date: 2013-08-14 +comments: false +categories: [sounder] +--- + + +### CVE ID + +* [CVE-2013-5647](http://www.osvdb.org/show/osvdb/96278) + + + +### OVSBD ID + +* [OSVDB-96278](http://www.osvdb.org/show/osvdb/96278) + + +### GEM NAME + +* sounder + + +### PATCHED VERSIONS + + +* `>= 1.0.2` + + +### DESCRIPTION + +Sounder Gem for Ruby contains a flaw that is triggered during the handling of file names. This may allow a context-dependent attacker to execute arbitrary commands. diff --git a/source/_posts/2013-09-03-CVE-2013-5671.markdown b/source/_posts/2013-09-03-CVE-2013-5671.markdown new file mode 100644 index 00000000..a9ac9b9c --- /dev/null +++ b/source/_posts/2013-09-03-CVE-2013-5671.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-5671: fog-dragonfly Gem for Ruby imagemagickutils.rb Remote Command Execution" +date: 2013-09-03 +comments: false +categories: [fog-dragonfly] +--- + + +### CVE ID + +* [CVE-2013-5671](http://www.osvdb.org/show/osvdb/96798) + + + +### OVSBD ID + +* [OSVDB-96798](http://www.osvdb.org/show/osvdb/96798) + + +### GEM NAME + +* fog-dragonfly + + +### PATCHED VERSIONS + + +* `>= 0.8.4` + + +### DESCRIPTION + +fog-dragonfly Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed via the imagemagickutils.rb script. This may allow a remote attacker to execute arbitrary commands. diff --git a/source/_posts/2013-10-08-CVE-2013-4413.markdown b/source/_posts/2013-10-08-CVE-2013-4413.markdown new file mode 100644 index 00000000..9e6c62b8 --- /dev/null +++ b/source/_posts/2013-10-08-CVE-2013-4413.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-4413: Wicked Gem for Ruby contains a flaw" +date: 2013-10-08 +comments: false +categories: [wicked] +--- + + +### CVE ID + +* [CVE-2013-4413](http://www.osvdb.org/show/osvdb/98270) + + + +### OVSBD ID + +* [OSVDB-98270](http://www.osvdb.org/show/osvdb/98270) + + +### GEM NAME + +* wicked + + +### PATCHED VERSIONS + + +* `>= 1.0.1` + + +### DESCRIPTION + +Wicked Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed via the 'the_step' parameter upon submission to the render_redirect.rb script. This may allow a remote attacker to gain access to arbitrary files. diff --git a/source/_posts/2013-10-16-CVE-2013-4389.markdown b/source/_posts/2013-10-16-CVE-2013-4389.markdown new file mode 100644 index 00000000..9f6ebeed --- /dev/null +++ b/source/_posts/2013-10-16-CVE-2013-4389.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-4389: Action Mailer Gem for Ruby contains a possible DoS Vulnerability" +date: 2013-10-16 +comments: false +categories: [actionmailer] +--- + + +### CVE ID + +* [CVE-2013-4389](http://www.osvdb.org/show/osvdb/98629) + + + +### OVSBD ID + +* [OSVDB-98629](http://www.osvdb.org/show/osvdb/98629) + + +### GEM NAME + +* actionmailer + + +### PATCHED VERSIONS + + +* `>= 3.2.15` + + +### DESCRIPTION + +Action Mailer Gem for Ruby contains a format string flaw in the Log Subscriber component. The issue is triggered as format string specifiers (e.g. %s and %x) are not properly sanitized in user-supplied input when handling email addresses. This may allow a remote attacker to cause a denial of service diff --git a/source/_posts/2013-10-22-CVE-2013-4457.markdown b/source/_posts/2013-10-22-CVE-2013-4457.markdown new file mode 100644 index 00000000..43f63432 --- /dev/null +++ b/source/_posts/2013-10-22-CVE-2013-4457.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-4457: Cocaine Gem for Ruby contains a flaw" +date: 2013-10-22 +comments: false +categories: [cocaine] +--- + + +### CVE ID + +* [CVE-2013-4457](http://www.osvdb.org/show/osvdb/98835) + + + +### OVSBD ID + +* [OSVDB-98835](http://www.osvdb.org/show/osvdb/98835) + + +### GEM NAME + +* cocaine + + +### PATCHED VERSIONS + + +* `>= 0.5.3` + + +### DESCRIPTION + +Cocaine Gem for Ruby contains a flaw that is due to the method of variable interpolation used by the program. With a specially crafted object, a context-dependent attacker can execute arbitrary commands. diff --git a/source/_posts/2013-11-04-CVE-2013-4489.markdown b/source/_posts/2013-11-04-CVE-2013-4489.markdown new file mode 100644 index 00000000..99b79856 --- /dev/null +++ b/source/_posts/2013-11-04-CVE-2013-4489.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-4489: GitLab Grit Gem for Ruby contains a flaw" +date: 2013-11-04 +comments: false +categories: [gitlab-grit] +--- + + +### CVE ID + +* [CVE-2013-4489](http://www.osvdb.org/show/osvdb/99370) + + + +### OVSBD ID + +* [OSVDB-99370](http://www.osvdb.org/show/osvdb/99370) + + +### GEM NAME + +* gitlab-grit + + +### PATCHED VERSIONS + + +* `>= 2.6.1` + + +### DESCRIPTION + +GitLab Grit Gem for Ruby contains a flaw in the app/contexts/search_context.rb script. The issue is triggered when input passed via the code search box is not properly sanitized, which allows strings to be evaluated by the Bourne shell. This may allow a remote attacker to execute arbitrary commands. diff --git a/source/_posts/2013-11-12-CVE-2013-4562.markdown b/source/_posts/2013-11-12-CVE-2013-4562.markdown new file mode 100644 index 00000000..ae25146d --- /dev/null +++ b/source/_posts/2013-11-12-CVE-2013-4562.markdown @@ -0,0 +1,40 @@ +--- +layout: post +title: "CVE-2013-4562: omniauth-facebook Gem for Ruby Unspecified CSRF" +date: 2013-11-12 +comments: false +categories: [omniauth-facebook] +--- + + +### CVE ID + +* [CVE-2013-4562](http://www.osvdb.org/show/osvdb/99693) + + + +### OVSBD ID + +* [OSVDB-99693](http://www.osvdb.org/show/osvdb/99693) + + +### GEM NAME + +* omniauth-facebook + + +### PATCHED VERSIONS + + +* `>= 1.5.0` + + +### DESCRIPTION + +omniauth-facebook Gem for Ruby contains a flaw as HTTP requests do not +require multiple steps, explicit confirmation, or a unique token when +performing certain sensitive actions. By tricking a user into following +a specially crafted link, a context-dependent attacker can perform a +Cross-Site Request Forgery (CSRF / XSRF) attack causing the victim to +perform an unspecified action. + diff --git a/source/_posts/2013-11-14-CVE-2013-4593.markdown b/source/_posts/2013-11-14-CVE-2013-4593.markdown new file mode 100644 index 00000000..b8fc9664 --- /dev/null +++ b/source/_posts/2013-11-14-CVE-2013-4593.markdown @@ -0,0 +1,37 @@ +--- +layout: post +title: "CVE-2013-4593: omniauth-facebook Gem for Ruby Insecure Access Token Handling Authentication Bypass" +date: 2013-11-14 +comments: false +categories: [omniauth-facebook] +--- + + +### CVE ID + +* [CVE-2013-4593](http://www.osvdb.org/show/osvdb/99888) + + + +### OVSBD ID + +* [OSVDB-99888](http://www.osvdb.org/show/osvdb/99888) + + +### GEM NAME + +* omniauth-facebook + + +### PATCHED VERSIONS + + +* `>= 1.5.1` + + +### DESCRIPTION + +omniauth-facebook Gem for Ruby contains a flaw that is due to the application +supporting passing the access token via the URL. This may allow a remote +attacker to bypass authentication and authenticate as another user. + diff --git a/source/_posts/2013-12-03-CVE-2013-4491.markdown b/source/_posts/2013-12-03-CVE-2013-4491.markdown new file mode 100644 index 00000000..b2ea8566 --- /dev/null +++ b/source/_posts/2013-12-03-CVE-2013-4491.markdown @@ -0,0 +1,42 @@ +--- +layout: post +title: "CVE-2013-4491: Reflective XSS Vulnerability in Ruby on Rails" +date: 2013-12-03 +comments: false +categories: [actionpack,rails] +--- + + +### CVE ID + +* [CVE-2013-4491](https://groups.google.com/forum/#!topic/ruby-security-ann/pLrh6DUw998) + + + + +### GEM NAME + +* actionpack + +### FRAMEWORK + +* rails + + +### PATCHED VERSIONS + + +* `~> 3.2.16` + +* `>= 4.0.2` + + +### DESCRIPTION + +There is a vulnerability in the internationalization component of Ruby on +Rails. Under certain common configurations an attacker can provide specially +crafted input which will execute a reflective XSS attack. + +The root cause of this issue is a vulnerability in the i18n gem which has +been assigned the identifier CVE-2013-4492. + diff --git a/source/_posts/2013-12-03-CVE-2013-4492.markdown b/source/_posts/2013-12-03-CVE-2013-4492.markdown new file mode 100644 index 00000000..03c676cc --- /dev/null +++ b/source/_posts/2013-12-03-CVE-2013-4492.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "CVE-2013-4492: i18n missing translation error message XSS" +date: 2013-12-03 +comments: false +categories: [i18n] +--- + + +### CVE ID + +* [CVE-2013-4492](https://groups.google.com/forum/#!topic/ruby-security-ann/pLrh6DUw998) + + + + +### GEM NAME + +* i18n + + +### PATCHED VERSIONS + + +* `~> 0.5.1` + +* `>= 0.6.6` + + +### DESCRIPTION + +The HTML exception message raised by I18n::MissingTranslation fails +to escape the keys. + diff --git a/source/_posts/2013-12-03-CVE-2013-6414.markdown b/source/_posts/2013-12-03-CVE-2013-6414.markdown new file mode 100644 index 00000000..37e9228b --- /dev/null +++ b/source/_posts/2013-12-03-CVE-2013-6414.markdown @@ -0,0 +1,38 @@ +--- +layout: post +title: "CVE-2013-6414: Denial of Service Vulnerability in Action View" +date: 2013-12-03 +comments: false +categories: [actionpack,rails] +--- + + +### CVE ID + +* [CVE-2013-6414](https://groups.google.com/forum/#!topic/ruby-security-ann/A-ebV4WxzKg) + + + + +### GEM NAME + +* actionpack + +### FRAMEWORK + +* rails + + +### PATCHED VERSIONS + + +* `~> 3.2.16` + +* `>= 4.0.2` + + +### DESCRIPTION + +There is a denial of service vulnerability in the header handling component of +Action View. + diff --git a/source/_posts/2013-12-03-CVE-2013-6415.markdown b/source/_posts/2013-12-03-CVE-2013-6415.markdown new file mode 100644 index 00000000..fe4c3d5d --- /dev/null +++ b/source/_posts/2013-12-03-CVE-2013-6415.markdown @@ -0,0 +1,40 @@ +--- +layout: post +title: "CVE-2013-6415: XSS Vulnerability in number_to_currency" +date: 2013-12-03 +comments: false +categories: [actionpack,rails] +--- + + +### CVE ID + +* [CVE-2013-6415](https://groups.google.com/forum/#!topic/ruby-security-ann/9WiRn2nhfq0) + + + + +### GEM NAME + +* actionpack + +### FRAMEWORK + +* rails + + +### PATCHED VERSIONS + + +* `~> 3.2.16` + +* `>= 4.0.2` + + +### DESCRIPTION + +There is an XSS vulnerability in the number_to_currency helper in Ruby on Raile. +The number_to_currency helper allows users to nicely format a numeric value. One +of the parameters to the helper (unit) is not escaped correctly. Applications +which pass user controlled data as the unit parameter are vulnerable to an XSS attack. + diff --git a/source/_posts/2013-12-03-CVE-2013-6416.markdown b/source/_posts/2013-12-03-CVE-2013-6416.markdown new file mode 100644 index 00000000..faaffbed --- /dev/null +++ b/source/_posts/2013-12-03-CVE-2013-6416.markdown @@ -0,0 +1,41 @@ +--- +layout: post +title: "CVE-2013-6416: XSS Vulnerability in simple_format helper" +date: 2013-12-03 +comments: false +categories: [actionpack,rails] +--- + + +### CVE ID + +* [CVE-2013-6416](https://groups.google.com/forum/#!topic/ruby-security-ann/5ZI1-H5OoIM) + + + + +### GEM NAME + +* actionpack + +### FRAMEWORK + +* rails + + +### PATCHED VERSIONS + + +* `>= 4.0.2` + + +### DESCRIPTION + +There is a vulnerability in the simple_format helper in Ruby on Rails. +The simple_format helper converts user supplied text into html text +which is intended to be safe for display. A change made to the +implementation of this helper means that any user provided HTML +attributes will not be escaped correctly. As a result of this error, +applications which pass user-controlled data to be included as html +attributes will be vulnerable to an XSS attack. + diff --git a/source/_posts/2013-12-03-CVE-2013-6417.markdown b/source/_posts/2013-12-03-CVE-2013-6417.markdown new file mode 100644 index 00000000..ce6da7fe --- /dev/null +++ b/source/_posts/2013-12-03-CVE-2013-6417.markdown @@ -0,0 +1,44 @@ +--- +layout: post +title: "CVE-2013-6417: Incomplete fix to CVE-2013-0155 (Unsafe Query Generation Risk)" +date: 2013-12-03 +comments: false +categories: [actionpack,rails] +--- + + +### CVE ID + +* [CVE-2013-6417](https://groups.google.com/forum/#!topic/ruby-security-ann/niK4drpSHT4) + + + + +### GEM NAME + +* actionpack + +### FRAMEWORK + +* rails + + +### PATCHED VERSIONS + + +* `~> 3.2.16` + +* `>= 4.0.2` + + +### DESCRIPTION + +The prior fix to CVE-2013-0155 was incomplete and the use of common +3rd party libraries can accidentally circumvent the protection. Due +to the way that Rack::Request and Rails::Request interact, it is +possible for a 3rd party or custom rack middleware to parse the +parameters insecurely and store them in the same key that Rails uses +for its own parameters. In the event that happens the application +will receive unsafe parameters and could be vulnerable to the earlier +vulnerability. + From 7384197158e523451b350b48761af3eb789591c5 Mon Sep 17 00:00:00 2001 From: David Radcliffe Date: Thu, 5 Dec 2013 21:43:15 -0500 Subject: [PATCH 009/626] cleanup, remove lots of crap --- .gitignore | 9 +- .powrc | 5 - .rvmrc | 1 - .themes/classic/.editorconfig | 44 - .themes/classic/sass/_base.scss | 5 - .themes/classic/sass/_partials.scss | 8 - .themes/classic/sass/base/_layout.scss | 192 - .themes/classic/sass/base/_solarized.scss | 46 - .themes/classic/sass/base/_theme.scss | 85 - .themes/classic/sass/base/_typography.scss | 163 - .themes/classic/sass/base/_utilities.scss | 28 - .themes/classic/sass/custom/_colors.scss | 43 - .themes/classic/sass/custom/_fonts.scss | 10 - .themes/classic/sass/custom/_layout.scss | 21 - .themes/classic/sass/custom/_styles.scss | 2 - .themes/classic/sass/partials/_archive.scss | 72 - .themes/classic/sass/partials/_blog.scss | 141 - .themes/classic/sass/partials/_footer.scss | 19 - .themes/classic/sass/partials/_header.scss | 18 - .../classic/sass/partials/_navigation.scss | 137 - .themes/classic/sass/partials/_sharing.scss | 8 - .themes/classic/sass/partials/_sidebar.scss | 4 - .themes/classic/sass/partials/_syntax.scss | 261 - .../classic/sass/partials/sidebar/_base.scss | 106 - .../sass/partials/sidebar/_delicious.scss | 4 - .../sass/partials/sidebar/_googleplus.scss | 26 - .../sass/partials/sidebar/_pinboard.scss | 12 - .themes/classic/sass/plugins/_plugins.scss | 6 - .themes/classic/sass/screen.scss | 11 - .../source/_includes/after_footer.html | 5 - .../source/_includes/archive_post.html | 8 - .themes/classic/source/_includes/article.html | 28 - .../source/_includes/asides/delicious.html | 8 - .../source/_includes/asides/github.html | 30 - .../source/_includes/asides/googleplus.html | 11 - .../source/_includes/asides/pinboard.html | 19 - .../source/_includes/asides/recent_posts.html | 10 - .../source/_includes/custom/after_footer.html | 3 - .../source/_includes/custom/asides/about.html | 4 - .../source/_includes/custom/footer.html | 4 - .../classic/source/_includes/custom/head.html | 3 - .../source/_includes/custom/header.html | 6 - .../source/_includes/custom/navigation.html | 4 - .themes/classic/source/_includes/disqus.html | 21 - .../source/_includes/facebook_like.html | 10 - .themes/classic/source/_includes/footer.html | 1 - .../source/_includes/google_analytics.html | 13 - .../source/_includes/google_plus_one.html | 9 - .themes/classic/source/_includes/head.html | 30 - .themes/classic/source/_includes/header.html | 1 - .../classic/source/_includes/navigation.html | 15 - .../source/_includes/post/disqus_thread.html | 1 - .../source/_includes/post/sharing.html | 11 - .../source/_includes/twitter_sharing.html | 11 - .themes/classic/source/_layouts/default.html | 14 - .themes/classic/source/_layouts/page.html | 42 - .themes/classic/source/_layouts/post.html | 43 - .../classic/source/blog/archives/index.html | 18 - .themes/classic/source/index.html | 29 - .themes/classic/source/javascripts/github.js | 32 - .../source/javascripts/libs/jquery.min.js | 5 - .../source/javascripts/modernizr-2.0.js | 5 - .../classic/source/javascripts/octopress.js | 163 - .../classic/source/javascripts/pinboard.js | 56 - .themes/classic/source/javascripts/twitter.js | 78 - .themes/classic/source/robots.txt | 7 - .travis.yml | 3 +- source/404.markdown => 404.markdown | 0 CHANGELOG.markdown | 29 - Gemfile | 21 +- Gemfile.lock | 93 +- README.markdown | 57 +- Rakefile | 431 +- _config.yml | 79 +- .../_includes => _includes}/after_footer.html | 4 - .../_includes => _includes}/archive_post.html | 0 {source/_includes => _includes}/article.html | 3 - .../asides/recent_posts.html | 0 .../asides/twitter.html | 0 .../custom/category_feed.xml | 4 +- .../custom/footer.html | 0 .../_includes => _includes}/custom/head.html | 0 .../custom/header.html | 0 .../custom/navigation.html | 0 _includes/footer.html | 3 + {source/_includes => _includes}/head.html | 1 - {source/_includes => _includes}/header.html | 7 +- .../_includes => _includes}/navigation.html | 0 .../_includes => _includes}/post/author.html | 0 .../post/categories.html | 0 .../_includes => _includes}/post/date.html | 12 +- .../_includes => _includes}/post/sharing.html | 6 - {source/_includes => _includes}/sidebar.html | 6 +- .../twitter_sharing.html | 0 .../_layouts => _layouts}/category_index.html | 0 {source/_layouts => _layouts}/default.html | 2 +- {source/_layouts => _layouts}/page.html | 0 {source/_layouts => _layouts}/post.html | 0 .../2007-11-27-CVE-2007-6183.markdown | 0 .../2009-12-01-CVE-2013-0263.markdown | 0 .../2011-01-25-CVE-2011-0739.markdown | 0 .../2012-03-01-CVE-2012-1098.markdown | 0 .../2012-03-01-CVE-2012-1099.markdown | 0 .../2012-03-14-CVE-2012-2139.markdown | 0 .../2012-03-14-CVE-2012-2140.markdown | 0 .../2012-05-31-CVE-2012-2660.markdown | 0 .../2012-05-31-CVE-2012-2661.markdown | 0 .../2012-06-06-CVE-2012-2671.markdown | 0 .../2012-07-26-CVE-2012-3424.markdown | 0 .../2012-08-09-CVE-2012-3463.markdown | 0 .../2012-08-09-CVE-2012-3464.markdown | 0 .../2012-08-09-CVE-2012-3465.markdown | 0 .../2012-09-08-CVE-2012-6134.markdown | 0 .../2012-09-08-OSVDB-90945.markdown | 0 .../2012-12-06-CVE-2013-0284.markdown | 0 .../2013-01-08-CVE-2013-0155.markdown | 0 .../2013-01-08-CVE-2013-0156.markdown | 0 .../2013-01-08-CVE-2013-1802.markdown | 0 .../2013-01-09-CVE-2013-1800.markdown | 0 .../2013-01-10-CVE-2013-0285.markdown | 0 .../2013-01-11-CVE-2013-0175.markdown | 0 .../2013-01-14-CVE-2013-1802.markdown | 0 .../2013-01-28-CVE-2013-0233.markdown | 0 .../2013-01-28-CVE-2013-0333.markdown | 0 .../2013-02-06-CVE-2013-0256.markdown | 0 .../2013-02-11-CVE-2013-0269.markdown | 0 .../2013-02-11-CVE-2013-0276.markdown | 0 .../2013-02-11-CVE-2013-0277.markdown | 0 .../2013-02-19-CVE-2013-1756.markdown | 0 .../2013-02-21-CVE-2013-0162.markdown | 0 .../2013-02-21-CVE-2013-1607.markdown | 0 .../2013-02-21-CVE-2013-1656.markdown | 0 .../2013-02-28-CVE-2013-2512.markdown | 0 .../2013-02-28-CVE-2013-2516.markdown | 0 .../2013-02-28-OSVDB-90715.markdown | 0 .../2013-02-28-OSVDB-90716.markdown | 0 .../2013-03-04-CVE-2013-2513.markdown | 0 .../2013-03-12-CVE-2013-1878.markdown | 0 .../2013-03-12-CVE-2013-2616.markdown | 0 .../2013-03-13-CVE-2013-1876.markdown | 0 .../2013-03-18-CVE-2013-1875.markdown | 0 .../2013-03-19-CVE-2013-1854.markdown | 0 .../2013-03-19-CVE-2013-1855.markdown | 0 .../2013-03-19-CVE-2013-1856.markdown | 0 .../2013-03-19-CVE-2013-1857.markdown | 0 .../2013-03-26-CVE-2013-1898.markdown | 0 .../2013-04-01-CVE-2013-1911.markdown | 0 .../2013-04-04-CVE-2013-1947.markdown | 0 .../2013-04-08-CVE-2013-1933.markdown | 0 .../2013-04-13-CVE-2013-1948.markdown | 0 .../2013-05-14-CVE-2013-2090.markdown | 0 .../2013-06-26-OSVDB-94679.markdown | 0 .../2013-08-02-OSVDB-95948.markdown | 0 .../2013-08-03-OSVDB-96425.markdown | 0 .../2013-08-14-CVE-2013-5647.markdown | 0 .../2013-09-03-CVE-2013-5671.markdown | 0 .../2013-10-08-CVE-2013-4413.markdown | 0 .../2013-10-16-CVE-2013-4389.markdown | 0 .../2013-10-22-CVE-2013-4457.markdown | 0 .../2013-11-04-CVE-2013-4489.markdown | 0 .../2013-11-12-CVE-2013-4562.markdown | 0 .../2013-11-14-CVE-2013-4593.markdown | 0 .../2013-12-03-CVE-2013-4491.markdown | 0 .../2013-12-03-CVE-2013-4492.markdown | 0 .../2013-12-03-CVE-2013-6414.markdown | 0 .../2013-12-03-CVE-2013-6415.markdown | 0 .../2013-12-03-CVE-2013-6416.markdown | 0 .../2013-12-03-CVE-2013-6417.markdown | 0 .../archives/index.html | 0 advisory.txt | 50 - .../bootstrap/css/bootstrap-responsive.css | 0 .../css/bootstrap-responsive.min.css | 0 .../bootstrap/css/bootstrap.css | 0 .../bootstrap/css/bootstrap.min.css | 0 .../bootstrap/css/custom.css | 0 .../bootstrap/css/spacelab.min.css | 0 .../img/glyphicons-halflings-white.png | Bin .../bootstrap/img/glyphicons-halflings.png | Bin .../bootstrap/js/bootstrap.js | 0 .../bootstrap/js/bootstrap.min.js | 0 .../assets => assets}/font-awesome/.gitignore | 0 .../assets => assets}/font-awesome/README.md | 0 .../font-awesome/css/font-awesome.css | 0 .../docs/assets/css/font-awesome.css | 0 .../font-awesome/docs/assets/css/prettify.css | 0 .../font-awesome/docs/assets/css/site.css | 0 .../docs/assets/font/fontawesome-webfont.eot | Bin .../docs/assets/font/fontawesome-webfont.svg | 0 .../docs/assets/font/fontawesome-webfont.svgz | Bin .../docs/assets/font/fontawesome-webfont.ttf | Bin .../docs/assets/font/fontawesome-webfont.woff | Bin .../assets/font/museo_slab_300-webfont.eot | Bin .../assets/font/museo_slab_300-webfont.ttf | Bin .../assets/font/museo_slab_500-webfont.eot | Bin .../assets/font/museo_slab_500-webfont.ttf | Bin .../assets/font/museosans_300-webfont.eot | Bin .../assets/font/museosans_300-webfont.ttf | Bin .../assets/font/museosans_500-webfont.eot | Bin .../assets/font/museosans_500-webfont.ttf | Bin .../font-awesome/docs/assets/ico/favicon.ico | Bin .../docs/assets/js/backbone.min.js | 0 .../docs/assets/js/index/index.js | 0 .../docs/assets/js/jquery-1.7.1.min.js | 0 .../docs/assets/js/prettify.min.js | 0 .../assets/js/tw-bs-201/bootstrap-alert.js | 0 .../assets/js/tw-bs-201/bootstrap-button.js | 0 .../assets/js/tw-bs-201/bootstrap-carousel.js | 0 .../assets/js/tw-bs-201/bootstrap-collapse.js | 0 .../assets/js/tw-bs-201/bootstrap-dropdown.js | 0 .../assets/js/tw-bs-201/bootstrap-modal.js | 0 .../assets/js/tw-bs-201/bootstrap-popover.js | 0 .../js/tw-bs-201/bootstrap-scrollspy.js | 0 .../docs/assets/js/tw-bs-201/bootstrap-tab.js | 0 .../assets/js/tw-bs-201/bootstrap-tooltip.js | 0 .../js/tw-bs-201/bootstrap-transition.js | 0 .../js/tw-bs-201/bootstrap-typeahead.js | 0 .../docs/assets/js/underscore.min.js | 0 .../docs/assets/less/font-awesome.less | 0 .../docs/assets/less/font-museo.less | 0 .../font-awesome/docs/assets/less/mixins.less | 0 .../font-awesome/docs/assets/less/site.less | 0 .../docs/assets/less/tw-bs-201/accordion.less | 0 .../docs/assets/less/tw-bs-201/alerts.less | 0 .../docs/assets/less/tw-bs-201/bootstrap.less | 0 .../assets/less/tw-bs-201/breadcrumbs.less | 0 .../assets/less/tw-bs-201/button-groups.less | 0 .../docs/assets/less/tw-bs-201/buttons.less | 0 .../docs/assets/less/tw-bs-201/carousel.less | 0 .../docs/assets/less/tw-bs-201/close.less | 0 .../docs/assets/less/tw-bs-201/code.less | 0 .../less/tw-bs-201/component-animations.less | 0 .../docs/assets/less/tw-bs-201/dropdowns.less | 0 .../docs/assets/less/tw-bs-201/forms.less | 0 .../docs/assets/less/tw-bs-201/grid.less | 0 .../docs/assets/less/tw-bs-201/hero-unit.less | 0 .../docs/assets/less/tw-bs-201/labels.less | 0 .../docs/assets/less/tw-bs-201/layouts.less | 0 .../docs/assets/less/tw-bs-201/mixins.less | 0 .../docs/assets/less/tw-bs-201/modals.less | 0 .../docs/assets/less/tw-bs-201/navbar.less | 0 .../docs/assets/less/tw-bs-201/navs.less | 0 .../docs/assets/less/tw-bs-201/pager.less | 0 .../assets/less/tw-bs-201/pagination.less | 0 .../docs/assets/less/tw-bs-201/popovers.less | 0 .../assets/less/tw-bs-201/progress-bars.less | 0 .../docs/assets/less/tw-bs-201/reset.less | 0 .../assets/less/tw-bs-201/responsive.less | 0 .../assets/less/tw-bs-201/scaffolding.less | 0 .../docs/assets/less/tw-bs-201/sprites.less | 0 .../docs/assets/less/tw-bs-201/tables.less | 0 .../assets/less/tw-bs-201/thumbnails.less | 0 .../docs/assets/less/tw-bs-201/tooltip.less | 0 .../docs/assets/less/tw-bs-201/type.less | 0 .../docs/assets/less/tw-bs-201/utilities.less | 0 .../docs/assets/less/tw-bs-201/variables.less | 0 .../docs/assets/less/tw-bs-201/wells.less | 0 .../docs/assets/less/variables.less | 0 .../font-awesome/docs/index.html | 0 .../font-awesome/font/fontawesome-webfont.eot | Bin .../font-awesome/font/fontawesome-webfont.svg | 0 .../font/fontawesome-webfont.svgz | Bin .../font-awesome/font/fontawesome-webfont.ttf | Bin .../font/fontawesome-webfont.woff | Bin .../font-awesome/less/font-awesome.less | 0 .../font-awesome/sass/font-awesome.sass | 0 .../font-awesome/sass/font-awesome.scss | 0 .../jwplayer/glow/controlbar/background.png | Bin .../jwplayer/glow/controlbar/blankButton.png | Bin .../jwplayer/glow/controlbar/divider.png | Bin .../glow/controlbar/fullscreenButton.png | Bin .../glow/controlbar/fullscreenButtonOver.png | Bin .../jwplayer/glow/controlbar/muteButton.png | Bin .../glow/controlbar/muteButtonOver.png | Bin .../glow/controlbar/normalscreenButton.png | Bin .../controlbar/normalscreenButtonOver.png | Bin .../jwplayer/glow/controlbar/pauseButton.png | Bin .../glow/controlbar/pauseButtonOver.png | Bin .../jwplayer/glow/controlbar/playButton.png | Bin .../glow/controlbar/playButtonOver.png | Bin .../glow/controlbar/timeSliderBuffer.png | Bin .../glow/controlbar/timeSliderCapLeft.png | Bin .../glow/controlbar/timeSliderCapRight.png | Bin .../glow/controlbar/timeSliderProgress.png | Bin .../glow/controlbar/timeSliderRail.png | Bin .../jwplayer/glow/controlbar/unmuteButton.png | Bin .../glow/controlbar/unmuteButtonOver.png | Bin .../jwplayer/glow/display/background.png | Bin .../jwplayer/glow/display/bufferIcon.png | Bin .../jwplayer/glow/display/muteIcon.png | Bin .../jwplayer/glow/display/playIcon.png | Bin .../jwplayer/glow/dock/button.png | Bin .../assets => assets}/jwplayer/glow/glow.xml | 0 .../jwplayer/glow/playlist/item.png | Bin .../jwplayer/glow/playlist/itemOver.png | Bin .../glow/playlist/sliderCapBottom.png | Bin .../jwplayer/glow/playlist/sliderCapTop.png | Bin .../jwplayer/glow/playlist/sliderRail.png | Bin .../jwplayer/glow/playlist/sliderThumb.png | Bin .../jwplayer/glow/sharing/embedIcon.png | Bin .../jwplayer/glow/sharing/embedScreen.png | Bin .../jwplayer/glow/sharing/shareIcon.png | Bin .../jwplayer/glow/sharing/shareScreen.png | Bin .../assets => assets}/jwplayer/player.swf | Bin {source/assets => assets}/screenshot.png | Bin .themes/classic/source/atom.xml => atom.xml | 0 config.rb | 18 - config.ru | 25 - .../classic/source/favicon.png => favicon.png | Bin .../source/images => images}/bird_32_gray.png | Bin .../images => images}/bird_32_gray_fail.png | Bin .../source/images => images}/code_bg.png | Bin .../images => images}/dotted-border.png | Bin .../source/images => images}/email.png | Bin .../source/images => images}/line-tile.png | Bin .../source/images => images}/noise.png | Bin .../classic/source/images => images}/rss.png | Bin .../source/images => images}/search.png | Bin source/index.html => index.html | 0 {source/javascripts => javascripts}/ender.js | 0 {source/javascripts => javascripts}/github.js | 0 .../javascripts => javascripts}/libs/ender.js | 0 .../javascripts => javascripts}/libs/jXHR.js | 0 .../libs/swfobject-dynamic.js | 0 .../modernizr-2.0.js | 0 .../javascripts => javascripts}/octopress.js | 0 .../javascripts => javascripts}/pinboard.js | 0 .../javascripts => javascripts}/twitter.js | 0 legacy/_config.yml | 2 - legacy/_includes/analytics.html | 13 - legacy/_layouts/default.html | 21 - legacy/css/bootstrap-responsive.css | 1109 --- legacy/css/bootstrap-responsive.min.css | 9 - legacy/css/bootstrap.css | 6158 ----------------- legacy/css/bootstrap.min.css | 9 - legacy/css/font-awesome.min.css | 33 - legacy/css/main.css | 22 - legacy/font/FontAwesome.otf | Bin 48748 -> 0 bytes legacy/font/fontawesome-webfont.eot | Bin 25395 -> 0 bytes legacy/font/fontawesome-webfont.svg | 284 - legacy/font/fontawesome-webfont.ttf | Bin 55096 -> 0 bytes legacy/font/fontawesome-webfont.woff | Bin 29380 -> 0 bytes legacy/img/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes legacy/img/glyphicons-halflings.png | Bin 12799 -> 0 bytes legacy/index.html | 37 - legacy/js/main.js | 1 - legacy/js/vendor/bootstrap.js | 2268 ------ legacy/js/vendor/bootstrap.min.js | 6 - legacy/js/vendor/jquery-1.9.1.min.js | 5 - legacy/js/vendor/modernizr-2.6.2.min.js | 4 - plugins/backtick_code_block.rb | 43 - plugins/blockquote.rb | 82 - plugins/category_generator.rb | 194 - plugins/code_block.rb | 94 - plugins/config_tag.rb | 44 - plugins/date.rb | 98 - plugins/gist_tag.rb | 105 - plugins/haml.rb | 24 - plugins/image_tag.rb | 50 - plugins/include_array.rb | 58 - plugins/include_code.rb | 73 - plugins/jsfiddle.rb | 40 - plugins/octopress_filters.rb | 135 - plugins/pagination.rb | 121 - plugins/post_filters.rb | 176 - plugins/preview_unpublished.rb | 48 - plugins/pullquote.rb | 45 - plugins/pygments_code.rb | 45 - plugins/raw.rb | 40 - plugins/render_partial.rb | 69 - plugins/rubypants.rb | 489 -- plugins/sitemap_generator.rb | 312 - plugins/titlecase.rb | 36 - plugins/video_tag.rb | 56 - source/robots.txt => robots.txt | 0 sass/screen.scss | 0 source/.DS_Store | Bin 6148 -> 0 bytes source/_includes/asides/delicious.html | 8 - source/_includes/asides/github.html | 30 - source/_includes/asides/googleplus.html | 11 - source/_includes/asides/pinboard.html | 19 - source/_includes/custom/after_footer.html | 3 - source/_includes/custom/asides/about.html | 4 - source/_includes/custom/asides/popular.html | 6 - source/_includes/custom/category_feed.xml | 27 - source/_includes/disqus.html | 21 - source/_includes/facebook_like.html | 10 - source/_includes/footer.html | 9 - source/_includes/google_analytics.html | 13 - source/_includes/google_plus_one.html | 9 - source/_includes/post/author.html | 8 - source/_includes/post/categories.html | 10 - source/_includes/post/date.html | 15 - source/_includes/post/disqus_thread.html | 1 - source/_layouts/category_index.html | 17 - .../_posts/2012-06-06-CVE-2012-267.markdown | 38 - source/assets/.DS_Store | Bin 6148 -> 0 bytes source/assets/bootstrap/.DS_Store | Bin 6148 -> 0 bytes .../jwplayer/glow/controlbar/background.png | Bin 141 -> 0 bytes .../jwplayer/glow/controlbar/blankButton.png | Bin 82 -> 0 bytes .../jwplayer/glow/controlbar/divider.png | Bin 118 -> 0 bytes .../glow/controlbar/fullscreenButton.png | Bin 203 -> 0 bytes .../glow/controlbar/fullscreenButtonOver.png | Bin 636 -> 0 bytes .../jwplayer/glow/controlbar/muteButton.png | Bin 343 -> 0 bytes .../glow/controlbar/muteButtonOver.png | Bin 835 -> 0 bytes .../glow/controlbar/normalscreenButton.png | Bin 210 -> 0 bytes .../controlbar/normalscreenButtonOver.png | Bin 664 -> 0 bytes .../jwplayer/glow/controlbar/pauseButton.png | Bin 170 -> 0 bytes .../glow/controlbar/pauseButtonOver.png | Bin 442 -> 0 bytes .../jwplayer/glow/controlbar/playButton.png | Bin 251 -> 0 bytes .../glow/controlbar/playButtonOver.png | Bin 553 -> 0 bytes .../glow/controlbar/timeSliderBuffer.png | Bin 112 -> 0 bytes .../glow/controlbar/timeSliderCapLeft.png | Bin 94 -> 0 bytes .../glow/controlbar/timeSliderCapRight.png | Bin 103 -> 0 bytes .../glow/controlbar/timeSliderProgress.png | Bin 114 -> 0 bytes .../glow/controlbar/timeSliderRail.png | Bin 116 -> 0 bytes .../jwplayer/glow/controlbar/unmuteButton.png | Bin 264 -> 0 bytes .../glow/controlbar/unmuteButtonOver.png | Bin 649 -> 0 bytes .../jwplayer/glow/display/background.png | Bin 686 -> 0 bytes .../jwplayer/glow/display/bufferIcon.png | Bin 816 -> 0 bytes .../assets/jwplayer/glow/display/muteIcon.png | Bin 334 -> 0 bytes .../assets/jwplayer/glow/display/playIcon.png | Bin 465 -> 0 bytes source/assets/jwplayer/glow/dock/button.png | Bin 686 -> 0 bytes source/assets/jwplayer/glow/glow.xml | 115 - source/assets/jwplayer/glow/playlist/item.png | Bin 172 -> 0 bytes .../jwplayer/glow/playlist/itemOver.png | Bin 171 -> 0 bytes .../glow/playlist/sliderCapBottom.png | Bin 108 -> 0 bytes .../jwplayer/glow/playlist/sliderCapTop.png | Bin 105 -> 0 bytes .../jwplayer/glow/playlist/sliderRail.png | Bin 100 -> 0 bytes .../jwplayer/glow/playlist/sliderThumb.png | Bin 97 -> 0 bytes .../jwplayer/glow/sharing/embedIcon.png | Bin 749 -> 0 bytes .../jwplayer/glow/sharing/embedScreen.png | Bin 2579 -> 0 bytes .../jwplayer/glow/sharing/shareIcon.png | Bin 589 -> 0 bytes .../jwplayer/glow/sharing/shareScreen.png | Bin 4576 -> 0 bytes source/assets/jwplayer/player.swf | Bin 91375 -> 0 bytes source/atom.xml | 27 - source/favicon.png | Bin 400 -> 0 bytes source/images/bird_32_gray.png | Bin 1376 -> 0 bytes source/images/bird_32_gray_fail.png | Bin 615 -> 0 bytes source/images/code_bg.png | Bin 239 -> 0 bytes source/images/dotted-border.png | Bin 99 -> 0 bytes source/images/email.png | Bin 301 -> 0 bytes source/images/line-tile.png | Bin 636 -> 0 bytes source/images/noise.png | Bin 17742 -> 0 bytes source/images/rss.png | Bin 490 -> 0 bytes source/images/search.png | Bin 333 -> 0 bytes source/javascripts/libs/jXHR.js | 85 - source/javascripts/libs/swfobject-dynamic.js | 298 - tasks/sync_advisories.rake | 83 - 448 files changed, 146 insertions(+), 16278 deletions(-) delete mode 100644 .powrc delete mode 100644 .rvmrc delete mode 100644 .themes/classic/.editorconfig delete mode 100644 .themes/classic/sass/_base.scss delete mode 100644 .themes/classic/sass/_partials.scss delete mode 100644 .themes/classic/sass/base/_layout.scss delete mode 100644 .themes/classic/sass/base/_solarized.scss delete mode 100644 .themes/classic/sass/base/_theme.scss delete mode 100644 .themes/classic/sass/base/_typography.scss delete mode 100644 .themes/classic/sass/base/_utilities.scss delete mode 100644 .themes/classic/sass/custom/_colors.scss delete mode 100644 .themes/classic/sass/custom/_fonts.scss delete mode 100644 .themes/classic/sass/custom/_layout.scss delete mode 100644 .themes/classic/sass/custom/_styles.scss delete mode 100644 .themes/classic/sass/partials/_archive.scss delete mode 100644 .themes/classic/sass/partials/_blog.scss delete mode 100644 .themes/classic/sass/partials/_footer.scss delete mode 100644 .themes/classic/sass/partials/_header.scss delete mode 100644 .themes/classic/sass/partials/_navigation.scss delete mode 100644 .themes/classic/sass/partials/_sharing.scss delete mode 100644 .themes/classic/sass/partials/_sidebar.scss delete mode 100644 .themes/classic/sass/partials/_syntax.scss delete mode 100644 .themes/classic/sass/partials/sidebar/_base.scss delete mode 100644 .themes/classic/sass/partials/sidebar/_delicious.scss delete mode 100644 .themes/classic/sass/partials/sidebar/_googleplus.scss delete mode 100644 .themes/classic/sass/partials/sidebar/_pinboard.scss delete mode 100644 .themes/classic/sass/plugins/_plugins.scss delete mode 100644 .themes/classic/sass/screen.scss delete mode 100644 .themes/classic/source/_includes/after_footer.html delete mode 100644 .themes/classic/source/_includes/archive_post.html delete mode 100644 .themes/classic/source/_includes/article.html delete mode 100644 .themes/classic/source/_includes/asides/delicious.html delete mode 100644 .themes/classic/source/_includes/asides/github.html delete mode 100644 .themes/classic/source/_includes/asides/googleplus.html delete mode 100644 .themes/classic/source/_includes/asides/pinboard.html delete mode 100644 .themes/classic/source/_includes/asides/recent_posts.html delete mode 100644 .themes/classic/source/_includes/custom/after_footer.html delete mode 100644 .themes/classic/source/_includes/custom/asides/about.html delete mode 100644 .themes/classic/source/_includes/custom/footer.html delete mode 100644 .themes/classic/source/_includes/custom/head.html delete mode 100644 .themes/classic/source/_includes/custom/header.html delete mode 100644 .themes/classic/source/_includes/custom/navigation.html delete mode 100644 .themes/classic/source/_includes/disqus.html delete mode 100644 .themes/classic/source/_includes/facebook_like.html delete mode 100644 .themes/classic/source/_includes/footer.html delete mode 100644 .themes/classic/source/_includes/google_analytics.html delete mode 100644 .themes/classic/source/_includes/google_plus_one.html delete mode 100644 .themes/classic/source/_includes/head.html delete mode 100644 .themes/classic/source/_includes/header.html delete mode 100644 .themes/classic/source/_includes/navigation.html delete mode 100644 .themes/classic/source/_includes/post/disqus_thread.html delete mode 100644 .themes/classic/source/_includes/post/sharing.html delete mode 100644 .themes/classic/source/_includes/twitter_sharing.html delete mode 100644 .themes/classic/source/_layouts/default.html delete mode 100644 .themes/classic/source/_layouts/page.html delete mode 100644 .themes/classic/source/_layouts/post.html delete mode 100644 .themes/classic/source/blog/archives/index.html delete mode 100644 .themes/classic/source/index.html delete mode 100644 .themes/classic/source/javascripts/github.js delete mode 100644 .themes/classic/source/javascripts/libs/jquery.min.js delete mode 100644 .themes/classic/source/javascripts/modernizr-2.0.js delete mode 100644 .themes/classic/source/javascripts/octopress.js delete mode 100644 .themes/classic/source/javascripts/pinboard.js delete mode 100644 .themes/classic/source/javascripts/twitter.js delete mode 100644 .themes/classic/source/robots.txt rename source/404.markdown => 404.markdown (100%) delete mode 100644 CHANGELOG.markdown rename {source/_includes => _includes}/after_footer.html (59%) rename {source/_includes => _includes}/archive_post.html (100%) rename {source/_includes => _includes}/article.html (88%) rename {source/_includes => _includes}/asides/recent_posts.html (100%) rename {source/_includes => _includes}/asides/twitter.html (100%) rename {.themes/classic/source/_includes => _includes}/custom/category_feed.xml (86%) rename {source/_includes => _includes}/custom/footer.html (100%) rename {source/_includes => _includes}/custom/head.html (100%) rename {source/_includes => _includes}/custom/header.html (100%) rename {source/_includes => _includes}/custom/navigation.html (100%) create mode 100644 _includes/footer.html rename {source/_includes => _includes}/head.html (97%) rename {source/_includes => _includes}/header.html (62%) rename {source/_includes => _includes}/navigation.html (100%) rename {.themes/classic/source/_includes => _includes}/post/author.html (100%) rename {.themes/classic/source/_includes => _includes}/post/categories.html (100%) rename {.themes/classic/source/_includes => _includes}/post/date.html (53%) rename {source/_includes => _includes}/post/sharing.html (52%) rename {source/_includes => _includes}/sidebar.html (64%) rename {source/_includes => _includes}/twitter_sharing.html (100%) rename {.themes/classic/source/_layouts => _layouts}/category_index.html (100%) rename {source/_layouts => _layouts}/default.html (87%) rename {source/_layouts => _layouts}/page.html (100%) rename {source/_layouts => _layouts}/post.html (100%) rename {source/_posts => _posts}/2007-11-27-CVE-2007-6183.markdown (100%) rename {source/_posts => _posts}/2009-12-01-CVE-2013-0263.markdown (100%) rename {source/_posts => _posts}/2011-01-25-CVE-2011-0739.markdown (100%) rename {source/_posts => _posts}/2012-03-01-CVE-2012-1098.markdown (100%) rename {source/_posts => _posts}/2012-03-01-CVE-2012-1099.markdown (100%) rename {source/_posts => _posts}/2012-03-14-CVE-2012-2139.markdown (100%) rename {source/_posts => _posts}/2012-03-14-CVE-2012-2140.markdown (100%) rename {source/_posts => _posts}/2012-05-31-CVE-2012-2660.markdown (100%) rename {source/_posts => _posts}/2012-05-31-CVE-2012-2661.markdown (100%) rename {source/_posts => _posts}/2012-06-06-CVE-2012-2671.markdown (100%) rename {source/_posts => _posts}/2012-07-26-CVE-2012-3424.markdown (100%) rename {source/_posts => _posts}/2012-08-09-CVE-2012-3463.markdown (100%) rename {source/_posts => _posts}/2012-08-09-CVE-2012-3464.markdown (100%) rename {source/_posts => _posts}/2012-08-09-CVE-2012-3465.markdown (100%) rename {source/_posts => _posts}/2012-09-08-CVE-2012-6134.markdown (100%) rename {source/_posts => _posts}/2012-09-08-OSVDB-90945.markdown (100%) rename {source/_posts => _posts}/2012-12-06-CVE-2013-0284.markdown (100%) rename {source/_posts => _posts}/2013-01-08-CVE-2013-0155.markdown (100%) rename {source/_posts => _posts}/2013-01-08-CVE-2013-0156.markdown (100%) rename {source/_posts => _posts}/2013-01-08-CVE-2013-1802.markdown (100%) rename {source/_posts => _posts}/2013-01-09-CVE-2013-1800.markdown (100%) rename {source/_posts => _posts}/2013-01-10-CVE-2013-0285.markdown (100%) rename {source/_posts => _posts}/2013-01-11-CVE-2013-0175.markdown (100%) rename {source/_posts => _posts}/2013-01-14-CVE-2013-1802.markdown (100%) rename {source/_posts => _posts}/2013-01-28-CVE-2013-0233.markdown (100%) rename {source/_posts => _posts}/2013-01-28-CVE-2013-0333.markdown (100%) rename {source/_posts => _posts}/2013-02-06-CVE-2013-0256.markdown (100%) rename {source/_posts => _posts}/2013-02-11-CVE-2013-0269.markdown (100%) rename {source/_posts => _posts}/2013-02-11-CVE-2013-0276.markdown (100%) rename {source/_posts => _posts}/2013-02-11-CVE-2013-0277.markdown (100%) rename {source/_posts => _posts}/2013-02-19-CVE-2013-1756.markdown (100%) rename {source/_posts => _posts}/2013-02-21-CVE-2013-0162.markdown (100%) rename {source/_posts => _posts}/2013-02-21-CVE-2013-1607.markdown (100%) rename {source/_posts => _posts}/2013-02-21-CVE-2013-1656.markdown (100%) rename {source/_posts => _posts}/2013-02-28-CVE-2013-2512.markdown (100%) rename {source/_posts => _posts}/2013-02-28-CVE-2013-2516.markdown (100%) rename {source/_posts => _posts}/2013-02-28-OSVDB-90715.markdown (100%) rename {source/_posts => _posts}/2013-02-28-OSVDB-90716.markdown (100%) rename {source/_posts => _posts}/2013-03-04-CVE-2013-2513.markdown (100%) rename {source/_posts => _posts}/2013-03-12-CVE-2013-1878.markdown (100%) rename {source/_posts => _posts}/2013-03-12-CVE-2013-2616.markdown (100%) rename {source/_posts => _posts}/2013-03-13-CVE-2013-1876.markdown (100%) rename {source/_posts => _posts}/2013-03-18-CVE-2013-1875.markdown (100%) rename {source/_posts => _posts}/2013-03-19-CVE-2013-1854.markdown (100%) rename {source/_posts => _posts}/2013-03-19-CVE-2013-1855.markdown (100%) rename {source/_posts => _posts}/2013-03-19-CVE-2013-1856.markdown (100%) rename {source/_posts => _posts}/2013-03-19-CVE-2013-1857.markdown (100%) rename {source/_posts => _posts}/2013-03-26-CVE-2013-1898.markdown (100%) rename {source/_posts => _posts}/2013-04-01-CVE-2013-1911.markdown (100%) rename {source/_posts => _posts}/2013-04-04-CVE-2013-1947.markdown (100%) rename {source/_posts => _posts}/2013-04-08-CVE-2013-1933.markdown (100%) rename {source/_posts => _posts}/2013-04-13-CVE-2013-1948.markdown (100%) rename {source/_posts => _posts}/2013-05-14-CVE-2013-2090.markdown (100%) rename {source/_posts => _posts}/2013-06-26-OSVDB-94679.markdown (100%) rename {source/_posts => _posts}/2013-08-02-OSVDB-95948.markdown (100%) rename {source/_posts => _posts}/2013-08-03-OSVDB-96425.markdown (100%) rename {source/_posts => _posts}/2013-08-14-CVE-2013-5647.markdown (100%) rename {source/_posts => _posts}/2013-09-03-CVE-2013-5671.markdown (100%) rename {source/_posts => _posts}/2013-10-08-CVE-2013-4413.markdown (100%) rename {source/_posts => _posts}/2013-10-16-CVE-2013-4389.markdown (100%) rename {source/_posts => _posts}/2013-10-22-CVE-2013-4457.markdown (100%) rename {source/_posts => _posts}/2013-11-04-CVE-2013-4489.markdown (100%) rename {source/_posts => _posts}/2013-11-12-CVE-2013-4562.markdown (100%) rename {source/_posts => _posts}/2013-11-14-CVE-2013-4593.markdown (100%) rename {source/_posts => _posts}/2013-12-03-CVE-2013-4491.markdown (100%) rename {source/_posts => _posts}/2013-12-03-CVE-2013-4492.markdown (100%) rename {source/_posts => _posts}/2013-12-03-CVE-2013-6414.markdown (100%) rename {source/_posts => _posts}/2013-12-03-CVE-2013-6415.markdown (100%) rename {source/_posts => _posts}/2013-12-03-CVE-2013-6416.markdown (100%) rename {source/_posts => _posts}/2013-12-03-CVE-2013-6417.markdown (100%) rename {source/advisories => advisories}/archives/index.html (100%) delete mode 100644 advisory.txt rename {source/assets => assets}/bootstrap/css/bootstrap-responsive.css (100%) rename {source/assets => assets}/bootstrap/css/bootstrap-responsive.min.css (100%) rename {source/assets => assets}/bootstrap/css/bootstrap.css (100%) rename {source/assets => assets}/bootstrap/css/bootstrap.min.css (100%) rename {source/assets => assets}/bootstrap/css/custom.css (100%) rename {source/assets => assets}/bootstrap/css/spacelab.min.css (100%) rename {source/assets => assets}/bootstrap/img/glyphicons-halflings-white.png (100%) rename {source/assets => assets}/bootstrap/img/glyphicons-halflings.png (100%) rename {source/assets => assets}/bootstrap/js/bootstrap.js (100%) rename {source/assets => assets}/bootstrap/js/bootstrap.min.js (100%) rename {source/assets => assets}/font-awesome/.gitignore (100%) rename {source/assets => assets}/font-awesome/README.md (100%) rename {source/assets => assets}/font-awesome/css/font-awesome.css (100%) rename {source/assets => assets}/font-awesome/docs/assets/css/font-awesome.css (100%) rename {source/assets => assets}/font-awesome/docs/assets/css/prettify.css (100%) rename {source/assets => assets}/font-awesome/docs/assets/css/site.css (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/fontawesome-webfont.eot (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/fontawesome-webfont.svg (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/fontawesome-webfont.svgz (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/fontawesome-webfont.ttf (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/fontawesome-webfont.woff (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museo_slab_300-webfont.eot (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museo_slab_300-webfont.ttf (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museo_slab_500-webfont.eot (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museo_slab_500-webfont.ttf (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museosans_300-webfont.eot (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museosans_300-webfont.ttf (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museosans_500-webfont.eot (100%) rename {source/assets => assets}/font-awesome/docs/assets/font/museosans_500-webfont.ttf (100%) rename {source/assets => assets}/font-awesome/docs/assets/ico/favicon.ico (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/backbone.min.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/index/index.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/jquery-1.7.1.min.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/prettify.min.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-alert.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-button.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-carousel.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-collapse.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-dropdown.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-modal.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-popover.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-scrollspy.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-tab.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-tooltip.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-transition.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/tw-bs-201/bootstrap-typeahead.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/js/underscore.min.js (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/font-awesome.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/font-museo.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/mixins.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/site.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/accordion.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/alerts.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/bootstrap.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/breadcrumbs.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/button-groups.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/buttons.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/carousel.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/close.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/code.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/component-animations.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/dropdowns.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/forms.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/grid.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/hero-unit.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/labels.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/layouts.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/mixins.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/modals.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/navbar.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/navs.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/pager.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/pagination.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/popovers.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/progress-bars.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/reset.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/responsive.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/scaffolding.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/sprites.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/tables.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/thumbnails.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/tooltip.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/type.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/utilities.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/variables.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/tw-bs-201/wells.less (100%) rename {source/assets => assets}/font-awesome/docs/assets/less/variables.less (100%) rename {source/assets => assets}/font-awesome/docs/index.html (100%) rename {source/assets => assets}/font-awesome/font/fontawesome-webfont.eot (100%) rename {source/assets => assets}/font-awesome/font/fontawesome-webfont.svg (100%) rename {source/assets => assets}/font-awesome/font/fontawesome-webfont.svgz (100%) rename {source/assets => assets}/font-awesome/font/fontawesome-webfont.ttf (100%) rename {source/assets => assets}/font-awesome/font/fontawesome-webfont.woff (100%) rename {source/assets => assets}/font-awesome/less/font-awesome.less (100%) rename {source/assets => assets}/font-awesome/sass/font-awesome.sass (100%) rename {source/assets => assets}/font-awesome/sass/font-awesome.scss (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/background.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/blankButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/divider.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/fullscreenButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/fullscreenButtonOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/muteButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/muteButtonOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/normalscreenButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/normalscreenButtonOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/pauseButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/pauseButtonOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/playButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/playButtonOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/timeSliderBuffer.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/timeSliderCapLeft.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/timeSliderCapRight.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/timeSliderProgress.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/timeSliderRail.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/unmuteButton.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/controlbar/unmuteButtonOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/display/background.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/display/bufferIcon.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/display/muteIcon.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/display/playIcon.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/dock/button.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/glow.xml (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/playlist/item.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/playlist/itemOver.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/playlist/sliderCapBottom.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/playlist/sliderCapTop.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/playlist/sliderRail.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/playlist/sliderThumb.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/sharing/embedIcon.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/sharing/embedScreen.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/sharing/shareIcon.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/glow/sharing/shareScreen.png (100%) rename {.themes/classic/source/assets => assets}/jwplayer/player.swf (100%) rename {source/assets => assets}/screenshot.png (100%) rename .themes/classic/source/atom.xml => atom.xml (100%) delete mode 100644 config.rb delete mode 100644 config.ru rename .themes/classic/source/favicon.png => favicon.png (100%) rename {.themes/classic/source/images => images}/bird_32_gray.png (100%) rename {.themes/classic/source/images => images}/bird_32_gray_fail.png (100%) rename {.themes/classic/source/images => images}/code_bg.png (100%) rename {.themes/classic/source/images => images}/dotted-border.png (100%) rename {.themes/classic/source/images => images}/email.png (100%) rename {.themes/classic/source/images => images}/line-tile.png (100%) rename {.themes/classic/source/images => images}/noise.png (100%) rename {.themes/classic/source/images => images}/rss.png (100%) rename {.themes/classic/source/images => images}/search.png (100%) rename source/index.html => index.html (100%) rename {source/javascripts => javascripts}/ender.js (100%) rename {source/javascripts => javascripts}/github.js (100%) rename {source/javascripts => javascripts}/libs/ender.js (100%) rename {.themes/classic/source/javascripts => javascripts}/libs/jXHR.js (100%) rename {.themes/classic/source/javascripts => javascripts}/libs/swfobject-dynamic.js (100%) rename {source/javascripts => javascripts}/modernizr-2.0.js (100%) rename {source/javascripts => javascripts}/octopress.js (100%) rename {source/javascripts => javascripts}/pinboard.js (100%) rename {source/javascripts => javascripts}/twitter.js (100%) delete mode 100644 legacy/_config.yml delete mode 100644 legacy/_includes/analytics.html delete mode 100644 legacy/_layouts/default.html delete mode 100755 legacy/css/bootstrap-responsive.css delete mode 100755 legacy/css/bootstrap-responsive.min.css delete mode 100755 legacy/css/bootstrap.css delete mode 100755 legacy/css/bootstrap.min.css delete mode 100755 legacy/css/font-awesome.min.css delete mode 100755 legacy/css/main.css delete mode 100755 legacy/font/FontAwesome.otf delete mode 100755 legacy/font/fontawesome-webfont.eot delete mode 100755 legacy/font/fontawesome-webfont.svg delete mode 100755 legacy/font/fontawesome-webfont.ttf delete mode 100755 legacy/font/fontawesome-webfont.woff delete mode 100755 legacy/img/glyphicons-halflings-white.png delete mode 100755 legacy/img/glyphicons-halflings.png delete mode 100755 legacy/index.html delete mode 100755 legacy/js/main.js delete mode 100755 legacy/js/vendor/bootstrap.js delete mode 100755 legacy/js/vendor/bootstrap.min.js delete mode 100755 legacy/js/vendor/jquery-1.9.1.min.js delete mode 100755 legacy/js/vendor/modernizr-2.6.2.min.js delete mode 100644 plugins/backtick_code_block.rb delete mode 100644 plugins/blockquote.rb delete mode 100644 plugins/category_generator.rb delete mode 100644 plugins/code_block.rb delete mode 100644 plugins/config_tag.rb delete mode 100644 plugins/date.rb delete mode 100644 plugins/gist_tag.rb delete mode 100644 plugins/haml.rb delete mode 100644 plugins/image_tag.rb delete mode 100644 plugins/include_array.rb delete mode 100644 plugins/include_code.rb delete mode 100644 plugins/jsfiddle.rb delete mode 100644 plugins/octopress_filters.rb delete mode 100644 plugins/pagination.rb delete mode 100644 plugins/post_filters.rb delete mode 100644 plugins/preview_unpublished.rb delete mode 100644 plugins/pullquote.rb delete mode 100644 plugins/pygments_code.rb delete mode 100644 plugins/raw.rb delete mode 100644 plugins/render_partial.rb delete mode 100644 plugins/rubypants.rb delete mode 100644 plugins/sitemap_generator.rb delete mode 100644 plugins/titlecase.rb delete mode 100644 plugins/video_tag.rb rename source/robots.txt => robots.txt (100%) delete mode 100644 sass/screen.scss delete mode 100644 source/.DS_Store delete mode 100644 source/_includes/asides/delicious.html delete mode 100644 source/_includes/asides/github.html delete mode 100644 source/_includes/asides/googleplus.html delete mode 100644 source/_includes/asides/pinboard.html delete mode 100644 source/_includes/custom/after_footer.html delete mode 100644 source/_includes/custom/asides/about.html delete mode 100644 source/_includes/custom/asides/popular.html delete mode 100644 source/_includes/custom/category_feed.xml delete mode 100644 source/_includes/disqus.html delete mode 100644 source/_includes/facebook_like.html delete mode 100644 source/_includes/footer.html delete mode 100644 source/_includes/google_analytics.html delete mode 100644 source/_includes/google_plus_one.html delete mode 100644 source/_includes/post/author.html delete mode 100644 source/_includes/post/categories.html delete mode 100644 source/_includes/post/date.html delete mode 100644 source/_includes/post/disqus_thread.html delete mode 100644 source/_layouts/category_index.html delete mode 100644 source/_posts/2012-06-06-CVE-2012-267.markdown delete mode 100644 source/assets/.DS_Store delete mode 100644 source/assets/bootstrap/.DS_Store delete mode 100644 source/assets/jwplayer/glow/controlbar/background.png delete mode 100644 source/assets/jwplayer/glow/controlbar/blankButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/divider.png delete mode 100644 source/assets/jwplayer/glow/controlbar/fullscreenButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png delete mode 100644 source/assets/jwplayer/glow/controlbar/muteButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/muteButtonOver.png delete mode 100644 source/assets/jwplayer/glow/controlbar/normalscreenButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png delete mode 100644 source/assets/jwplayer/glow/controlbar/pauseButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/pauseButtonOver.png delete mode 100644 source/assets/jwplayer/glow/controlbar/playButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/playButtonOver.png delete mode 100644 source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png delete mode 100644 source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png delete mode 100644 source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png delete mode 100644 source/assets/jwplayer/glow/controlbar/timeSliderProgress.png delete mode 100644 source/assets/jwplayer/glow/controlbar/timeSliderRail.png delete mode 100644 source/assets/jwplayer/glow/controlbar/unmuteButton.png delete mode 100644 source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png delete mode 100644 source/assets/jwplayer/glow/display/background.png delete mode 100644 source/assets/jwplayer/glow/display/bufferIcon.png delete mode 100644 source/assets/jwplayer/glow/display/muteIcon.png delete mode 100644 source/assets/jwplayer/glow/display/playIcon.png delete mode 100644 source/assets/jwplayer/glow/dock/button.png delete mode 100644 source/assets/jwplayer/glow/glow.xml delete mode 100644 source/assets/jwplayer/glow/playlist/item.png delete mode 100644 source/assets/jwplayer/glow/playlist/itemOver.png delete mode 100644 source/assets/jwplayer/glow/playlist/sliderCapBottom.png delete mode 100644 source/assets/jwplayer/glow/playlist/sliderCapTop.png delete mode 100644 source/assets/jwplayer/glow/playlist/sliderRail.png delete mode 100644 source/assets/jwplayer/glow/playlist/sliderThumb.png delete mode 100644 source/assets/jwplayer/glow/sharing/embedIcon.png delete mode 100644 source/assets/jwplayer/glow/sharing/embedScreen.png delete mode 100644 source/assets/jwplayer/glow/sharing/shareIcon.png delete mode 100644 source/assets/jwplayer/glow/sharing/shareScreen.png delete mode 100644 source/assets/jwplayer/player.swf delete mode 100644 source/atom.xml delete mode 100644 source/favicon.png delete mode 100644 source/images/bird_32_gray.png delete mode 100644 source/images/bird_32_gray_fail.png delete mode 100644 source/images/code_bg.png delete mode 100644 source/images/dotted-border.png delete mode 100644 source/images/email.png delete mode 100644 source/images/line-tile.png delete mode 100644 source/images/noise.png delete mode 100644 source/images/rss.png delete mode 100644 source/images/search.png delete mode 100644 source/javascripts/libs/jXHR.js delete mode 100644 source/javascripts/libs/swfobject-dynamic.js delete mode 100644 tasks/sync_advisories.rake diff --git a/.gitignore b/.gitignore index 68a68305..91ffe897 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,6 @@ .bundle .DS_Store .sass-cache -.gist-cache -.pygments-cache -_deploy public -sass.old -source.old -source/_stash -source/stylesheets/screen.css vendor -node_modules +_site \ No newline at end of file diff --git a/.powrc b/.powrc deleted file mode 100644 index 4777f08f..00000000 --- a/.powrc +++ /dev/null @@ -1,5 +0,0 @@ -if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".rvmrc" ] ; then - source "$rvm_path/scripts/rvm" - source ".rvmrc" -fi - \ No newline at end of file diff --git a/.rvmrc b/.rvmrc deleted file mode 100644 index 08dd0a78..00000000 --- a/.rvmrc +++ /dev/null @@ -1 +0,0 @@ -rvm use 1.9.3 diff --git a/.themes/classic/.editorconfig b/.themes/classic/.editorconfig deleted file mode 100644 index 940fea3e..00000000 --- a/.themes/classic/.editorconfig +++ /dev/null @@ -1,44 +0,0 @@ -; This file is for unifying the coding style for different editors and IDEs. -; More information at http://EditorConfig.org - - -; Use 2 spaces for indentation in SCSS, JavaScript, HTML, and XML - -[*.scss] -indent_style = space -indent_size = 2 - -[*.js] -indent_style = space -indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 - -[*.xml] -indent_style = space -indent_size = 2 - - -; Use 4 spaces for indentation in Markdown files - -[*.md] -indent_style = space -indent_size = 4 - -[*.markdown] -indent_style = space -indent_size = 4 - - -; Override default indentation for some library files - -[jwplayer/glow/glow.xml] -indent_style = tab - -[libs/jXHR.js] -indent_style = tab - -[libs/swfobject-dynamic.js] -indent_style = tab diff --git a/.themes/classic/sass/_base.scss b/.themes/classic/sass/_base.scss deleted file mode 100644 index 05fdd005..00000000 --- a/.themes/classic/sass/_base.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "base/utilities"; -@import "base/solarized"; -@import "base/theme"; -@import "base/typography"; -@import "base/layout"; diff --git a/.themes/classic/sass/_partials.scss b/.themes/classic/sass/_partials.scss deleted file mode 100644 index 99c28b63..00000000 --- a/.themes/classic/sass/_partials.scss +++ /dev/null @@ -1,8 +0,0 @@ -@import "partials/header"; -@import "partials/navigation"; -@import "partials/blog"; -@import "partials/sharing"; -@import "partials/syntax"; -@import "partials/archive"; -@import "partials/sidebar"; -@import "partials/footer"; diff --git a/.themes/classic/sass/base/_layout.scss b/.themes/classic/sass/base/_layout.scss deleted file mode 100644 index 81903428..00000000 --- a/.themes/classic/sass/base/_layout.scss +++ /dev/null @@ -1,192 +0,0 @@ -$max-width: 1200px !default; - -// Padding used for layout margins -$pad-min: 18px !default; -$pad-narrow: 25px !default; -$pad-medium: 35px !default; -$pad-wide: 55px !default; - -// Sidebar widths used in media queries -$sidebar-width-medium: 240px !default; -$sidebar-pad-medium: 15px !default; -$sidebar-pad-wide: 20px !default; -$sidebar-width-wide: 300px !default; - -$indented-lists: false !default; - -$header-font-size: 1em !default; -$header-padding-top: 1.5em !default; -$header-padding-bottom: 1.5em !default; - -.group { @include pie-clearfix; } - -@mixin collapse-sidebar { - float: none; - width: auto; - clear: left; - margin: 0; - padding: 0 $pad-medium 1px; - background-color: lighten($sidebar-bg, 2); - border-top: 1px solid lighten($sidebar-border, 4); - section { - &.odd, &.even { float: left; width: 48%; } - &.odd { margin-left: 0; } - &.even { margin-left: 4%; } - } - &.thirds section { - width: 30%; - margin-left: 5%; - &.first { - margin-left: 0; - clear: both; - } - } -} - -body { - -webkit-text-size-adjust: none; - max-width: $max-width; - position: relative; - margin: 0 auto; - > header, > nav, > footer, #content > article, #content > div > article, #content > div > section { - @extend .group; - padding-left: $pad-min; - padding-right: $pad-min; - @media only screen and (min-width: 480px) { - padding-left: $pad-narrow; - padding-right: $pad-narrow; - } - @media only screen and (min-width: 768px) { - padding-left: $pad-medium; - padding-right: $pad-medium; - } - @media only screen and (min-width: 992px) { - padding-left: $pad-wide; - padding-right: $pad-wide; - } - } - div.pagination { - @extend .group; - margin-left: $pad-min; - margin-right: $pad-min; - @media only screen and (min-width: 480px) { - margin-left: $pad-narrow; - margin-right: $pad-narrow; - } - @media only screen and (min-width: 768px) { - margin-left: $pad-medium; - margin-right: $pad-medium; - } - @media only screen and (min-width: 992px) { - margin-left: $pad-wide; - margin-right: $pad-wide; - } - } - > header { - font-size: $header-font-size; - padding-top: $header-padding-top; - padding-bottom: $header-padding-bottom; - } -} - -#content { - overflow: hidden; - > div, > article { width: 100%; } -} - -aside.sidebar { - float: none; - padding: 0 $pad-min 1px; - background-color: lighten($sidebar-bg, 2); - border-top: 1px solid $sidebar-border; - @extend .group; -} - -.flex-content { max-width: 100%; height: auto; } - -.basic-alignment { - &.left { float: left; margin-right: 1.5em; } - &.right { float: right; margin-left: 1.5em; } - &.center { display:block; margin: 0 auto 1.5em; } - &.left, &.right { margin-bottom: .8em; } -} - -.toggle-sidebar { &, .no-sidebar & { display: none; }} - -body.sidebar-footer { - @media only screen and (min-width: 750px) { - aside.sidebar{ @include collapse-sidebar; } - } - #content { margin-right: 0px; } - .toggle-sidebar { display: none; } -} - -@media only screen and (min-width: 550px) { - body > header { font-size: $header-font-size; } -} -@media only screen and (min-width: 750px) { - aside.sidebar { @include collapse-sidebar; } -} -#main, #content, .sidebar { - @extend .group; -} -@media only screen and (min-width: 768px) { - body { -webkit-text-size-adjust: auto; } - body > header { font-size: $header-font-size * 1.2; } - #main { - padding: 0; - margin: 0 auto; - } - #content { - overflow: visible; - margin-right: $sidebar-width-medium; - position: relative; - .no-sidebar & { margin-right: 0; border-right: 0; } - .collapse-sidebar & { margin-right: 20px; } - > div, > article { - padding-top: $pad-medium/2; - padding-bottom: $pad-medium/2; - float: left; - } - } - aside.sidebar { - width: $sidebar-width-medium - $sidebar-pad-medium*2; - padding: 0 $sidebar-pad-medium $sidebar-pad-medium; - background: none; - clear: none; - float: left; - margin: 0 -100% 0 0; - section { - width: auto; margin-left: 0; - &.odd, &.even { float: none; width: auto; margin-left: 0; } - } - .collapse-sidebar & { - @include collapse-sidebar; - } - } -} - -@media only screen and (min-width: 992px) { - body > header { font-size: $header-font-size * 1.3; } - #content { margin-right: $sidebar-width-wide; } - #content { - > div, > article { - padding-top: $pad-wide/2; - padding-bottom: $pad-wide/2; - } - } - aside.sidebar { - width: $sidebar-width-wide - $sidebar-pad-wide*2; - padding: 1.2em $sidebar-pad-wide $sidebar-pad-wide; - .collapse-sidebar & { - padding: { left: $pad-wide; right: $pad-wide; } - } - } -} - -@if $indented-lists == false { - @media only screen and (min-width: 768px) { - ul, ol { margin-left: 0; } - } -} - diff --git a/.themes/classic/sass/base/_solarized.scss b/.themes/classic/sass/base/_solarized.scss deleted file mode 100644 index 45d8fc5e..00000000 --- a/.themes/classic/sass/base/_solarized.scss +++ /dev/null @@ -1,46 +0,0 @@ -$base03: #002b36 !default; //darkest blue -$base02: #073642 !default; //dark blue -$base01: #586e75 !default; //darkest gray -$base00: #657b83 !default; //dark gray -$base0: #839496 !default; //medium gray -$base1: #93a1a1 !default; //medium light gray -$base2: #eee8d5 !default; //cream -$base3: #fdf6e3 !default; //white -$solar-yellow: #b58900 !default; -$solar-orange: #cb4b16 !default; -$solar-red: #dc322f !default; -$solar-magenta: #d33682 !default; -$solar-violet: #6c71c4 !default; -$solar-blue: #268bd2 !default; -$solar-cyan: #2aa198 !default; -$solar-green: #859900 !default; - -$solarized: dark !default; - -@if $solarized == light { - - $_base03: $base03; - $_base02: $base02; - $_base01: $base01; - $_base00: $base00; - $_base0: $base0; - $_base1: $base1; - $_base2: $base2; - $_base3: $base3; - - $base03: $_base3; - $base02: $_base2; - $base01: $_base1; - $base00: $_base0; - $base0: $_base00; - $base1: $_base01; - $base2: $_base02; - $base3: $_base03; -} - -/* non highlighted code colors */ -$pre-bg: $base03 !default; -$pre-border: darken($base02, 5) !default; -$pre-color: $base1 !default; - - diff --git a/.themes/classic/sass/base/_theme.scss b/.themes/classic/sass/base/_theme.scss deleted file mode 100644 index 1a43a03d..00000000 --- a/.themes/classic/sass/base/_theme.scss +++ /dev/null @@ -1,85 +0,0 @@ -$noise-bg: image-url('noise.png') top left !default; -$img-border: inline-image('dotted-border.png'); - -// Main Link Colors -$link-color: lighten(#165b94, 3) !default; -$link-color-hover: adjust-color($link-color, $lightness: 10, $saturation: 25) !default; -$link-color-visited: adjust-color($link-color, $hue: 80, $lightness: -4) !default; -$link-color-active: adjust-color($link-color-hover, $lightness: -15) !default; - -// Main Section Colors -$main-bg: #f8f8f8 !default; -$page-bg: #252525 !default; -$article-border: #eeeeee !default; - -$header-bg: #333 !default; -$header-border: lighten($header-bg, 15) !default; -$title-color: #f2f2f2 !default; -$subtitle-color: #aaa !default; - -$text-color: #222 !default; -$text-color-light: #aaa !default; -$type-border: #ddd !default; - -/* Navigation */ -$nav-bg: #ccc !default; -$nav-bg-front: image-url('noise.png') !default; -$nav-bg-back: linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11)) !default; -$nav-color: darken($nav-bg, 38) !default; -$nav-color-hover: darken($nav-color, 25) !default; -$nav-placeholder: desaturate(darken($nav-bg, 10), 15) !default; -$nav-border: darken($nav-bg, 10) !default; -$nav-border-top: lighten($nav-bg, 15) !default; -$nav-border-bottom: darken($nav-bg, 25) !default; -$nav-border-left: darken($nav-bg, 11) !default; -$nav-border-right: lighten($nav-bg, 7) !default; - -/* Sidebar colors */ -$sidebar-bg: #f2f2f2 !default; -$sidebar-link-color: $link-color !default; -$sidebar-link-color-hover: $link-color-hover !default; -$sidebar-link-color-active: $link-color-active !default; -$sidebar-color: change-color(mix($text-color, $sidebar-bg, 80), $hue: hue($sidebar-bg), $saturation: saturation($sidebar-bg)/2) !default; -$sidebar-border: desaturate(darken($sidebar-bg, 7), 10) !default; -$sidebar-border-hover: darken($sidebar-bg, 7) !default; -$sidebar-link-color-subdued: lighten($sidebar-color, 20) !default; -$sidebar-link-color-subdued-hover: $sidebar-link-color-hover !default; - -$footer-color: #888 !default; -$footer-bg: #ccc !default; -$footer-bg-front: image-url('noise.png') !default; -$footer-bg-back: linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11)) !default; -$footer-color: darken($footer-bg, 38) !default; -$footer-color-hover: darken($footer-color, 10) !default; -$footer-border-top: lighten($footer-bg, 15) !default; -$footer-border-bottom: darken($footer-bg, 15) !default; -$footer-link-color: darken($footer-bg, 38) !default; -$footer-link-color-hover: darken($footer-color, 25) !default; -$page-border-bottom: darken($footer-bg, 5) !default; - - -/* Core theme application */ - -a { - @include link-colors($link-color, $hover: $link-color-hover, $focus: $link-color-hover, $visited: $link-color-visited, $active: $link-color-active); -} -aside.sidebar a { - @include link-colors($sidebar-link-color, $hover: $sidebar-link-color-hover, $focus: $sidebar-link-color-hover, $active: $sidebar-link-color-active); -} -a { - @include transition(color .3s); -} - -html { - background: $page-bg image-url('line-tile.png') top left; -} -body { - > div { - background: $sidebar-bg $noise-bg; - border-bottom: 1px solid $page-border-bottom; - > div { - background: $main-bg $noise-bg; - border-right: 1px solid $sidebar-border; - } - } -} diff --git a/.themes/classic/sass/base/_typography.scss b/.themes/classic/sass/base/_typography.scss deleted file mode 100644 index 85256f0b..00000000 --- a/.themes/classic/sass/base/_typography.scss +++ /dev/null @@ -1,163 +0,0 @@ -$blockquote: $type-border !default; -$sans: "PT Sans", "Helvetica Neue", Arial, sans-serif !default; -$serif: "PT Serif", Georgia, Times, "Times New Roman", serif !default; -$mono: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace !default; -$heading-font-family: "PT Serif", "Georgia", "Helvetica Neue", Arial, sans-serif !default; -$header-title-font-family: $heading-font-family !default; -$header-subtitle-font-family: $heading-font-family !default; - -// Fonts -.heading { - font-family: $heading-font-family; -} -.sans { font-family: $sans; } -.serif { font-family: $serif; } -.mono { font-family: $mono; } - -body > header h1 { - font-size: 2.2em; - @extend .heading; - font-family: $header-title-font-family; - font-weight: normal; - line-height: 1.2em; - margin-bottom: 0.6667em; -} -body > header h2 { - font-family: $header-subtitle-font-family; -} - -body { - line-height: 1.5em; - color: $text-color; - @extend .serif; -} -h1 { - font-size: 2.2em; - line-height: 1.2em; -} - -@media only screen and (min-width: 992px) { - body { font-size: 1.15em; } - h1 { font-size: 2.6em; line-height: 1.2em; } -} - -#{headings()}{ - @extend .heading; - text-rendering: optimizelegibility; - margin-bottom: 1em; - font-weight: bold; -} -h2, section h1 { - font-size: 1.5em; -} -h3, section h2, section section h1 { - font-size: 1.3em; -} -h4, section h3, section section h2, section section section h1 { - font-size: 1em; -} -h5, section h4, section section h3 { - font-size: .9em; -} -h6, section h5, section section h4, section section section h3 { - font-size: .8em; -} - -p, article blockquote, ul, ol { margin-bottom: 1.5em; } - -ul { list-style-type: disc; - ul { list-style-type: circle; margin-bottom: 0px; - ul { list-style-type: square; margin-bottom: 0px; }}} - -ol { list-style-type: decimal; - ol { list-style-type: lower-alpha; margin-bottom: 0px; - ol { list-style-type: lower-roman; margin-bottom: 0px; }}} - -ul, ol { &, ul, ol { margin-left: 1.3em; }} -ul, ol { ul, ol { margin-bottom: 0em; }} - -strong { font-weight: bold; } - -em { font-style: italic; } - -sup, sub { font-size: 0.8em; position: relative; display: inline-block; } -sup { top: -.5em; } -sub { bottom: -.5em; } - -q { font-style: italic; - &:before { content: "\201C"; } - &:after { content: "\201D"; } -} - -em, dfn { font-style: italic; } - -strong, dfn { font-weight: bold; } - -del, s { text-decoration: line-through; } - -abbr, acronym { border-bottom: 1px dotted; cursor: help; } - -pre, code, tt { @extend .mono; } - -sub, sup { line-height: 0; } - -hr { margin-bottom: 0.2em; } - -small { font-size: .8em; } - -big { font-size: 1.2em; } - -article blockquote { - $bq-margin: 1.2em; - font-style: italic; - position: relative; - font-size: 1.2em; - line-height: 1.5em; - padding-left: 1em; - border-left: 4px solid rgba($text-color-light, .5); - cite { - font-style: italic; - a { color: $text-color-light !important; word-wrap: break-word; } - &:before { content: '\2014'; padding:{right: .3em; left: .3em;} color: $text-color-light; } - } - @media only screen and (min-width: 992px) { - padding-left: 1.5em; - border-left-width: 4px; - } -} - -.pullquote-right:before, -.pullquote-left:before { - /* Reset metrics. */ - padding: 0; - border: none; - - /* Content */ - content: attr(data-pullquote); - - /* Pull out to the right, modular scale based margins. */ - float: right; - width: 45%; - margin: .5em 0 1em 1.5em; - - /* Baseline correction */ - position: relative; - top: 7px; - font-size: 1.4em; - line-height: 1.45em; -} - -.pullquote-left:before { - /* Make left pullquotes align properly. */ - float: left; - margin: .5em 1.5em 1em 0; -} - -/* @extend this to force long lines of continuous text to wrap */ -.force-wrap { - white-space: -moz-pre-wrap; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - white-space: pre-wrap; - word-wrap: break-word; -} diff --git a/.themes/classic/sass/base/_utilities.scss b/.themes/classic/sass/base/_utilities.scss deleted file mode 100644 index 2d49e659..00000000 --- a/.themes/classic/sass/base/_utilities.scss +++ /dev/null @@ -1,28 +0,0 @@ -@mixin mask-image($img, $repeat: no-repeat){ - @include experimental(mask-image, image-url($img), -webkit, -moz, -o, -ms); - @include experimental(mask-repeat, $repeat, -webkit, -moz, -o, -ms); - width: image-width($img); - height: image-height($img); -} - -@mixin shadow-box($border: #fff .5em solid, $shadow: rgba(#000, .15) 0 1px 4px, $border-radius: .3em) { - @include border-radius($border-radius); - @include box-shadow($shadow); - @include box-sizing(border-box); - border: $border; -} - -@mixin selection($bg, $color: inherit, $text-shadow: none){ - * { - &::-moz-selection { background: $bg; color: $color; text-shadow: $text-shadow; } - &::-webkit-selection { background: $bg; color: $color; text-shadow: $text-shadow; } - &::selection { background: $bg; color: $color; text-shadow: $text-shadow; } - } -} - -@function text-color($color, $dark: dark, $light: light){ - $text-color: ( (red($color)*299) + (green($color)*587) + (blue($color)*114) ) / 1000; - $text-color: if($text-color >= 150, $dark, $light); - @return $text-color; -} - diff --git a/.themes/classic/sass/custom/_colors.scss b/.themes/classic/sass/custom/_colors.scss deleted file mode 100644 index 740266a8..00000000 --- a/.themes/classic/sass/custom/_colors.scss +++ /dev/null @@ -1,43 +0,0 @@ -// Here you can easily change your sites's color scheme. -// To give it a try, uncomment some of the lines below rebuild your blog, and see how it works. -// If you need a handy color picker try http://hslpicker.com - -//$header-bg: #263347; -//$subtitle-color: lighten($header-bg, 58); -//$nav-bg: desaturate(lighten(#8fc17a, 18), 5); -//$nav-bg-front: image-url('noise.png'); -//$nav-bg-back: linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11)); -//$sidebar-bg: desaturate(#eceff5, 8); -//$sidebar-link-color: saturate(#526f9a, 10); -//$sidebar-link-color-hover: darken(#7ab662, 9); -//$footer-bg: #ccc !default; -//$footer-bg-front: image-url('noise.png'); -//$footer-bg-back: linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11)); - - -/* To use the light Solarized highlighting theme uncomment the following line */ -//$solarized: light; - -/* If you want to tweak the Solarized colors you can do that here */ -//$base03: #002b36; //darkest blue -//$base02: #073642; //dark blue -//$base01: #586e75; //darkest gray -//$base00: #657b83; //dark gray -//$base0: #839496; //medium gray -//$base1: #93a1a1; //medium light gray -//$base2: #eee8d5; //cream -//$base3: #fdf6e3; //white -//$solar-yellow: #b58900; -//$solar-orange: #cb4b16; -//$solar-red: #dc322f; -//$solar-magenta: #d33682; -//$solar-violet: #6c71c4; -//$solar-blue: #268bd2; -//$solar-cyan: #2aa198; -//$solar-green: #859900; - - -/* Non highlighted code colors */ -//$pre-bg: $base03; -//$pre-border: darken($base02, 5); -//$pre-color: $base1; diff --git a/.themes/classic/sass/custom/_fonts.scss b/.themes/classic/sass/custom/_fonts.scss deleted file mode 100644 index 1a6b2a06..00000000 --- a/.themes/classic/sass/custom/_fonts.scss +++ /dev/null @@ -1,10 +0,0 @@ -// Here you can easily change font faces which are used in your site. -// To give it a try, uncomment some of the lines below rebuild your blog, and see how it works. your sites's. -// If you love to use Web Fonts, you also need to add some lines to source/_includes/custom/head.html - -//$sans: "Optima", sans-serif; -//$serif: "Baskerville", serif; -//$mono: "Courier", monospace; -//$heading-font-family: "Verdana", sans-serif; -//$header-title-font-family: "Futura", sans-serif; -//$header-subtitle-font-family: "Futura", sans-serif; diff --git a/.themes/classic/sass/custom/_layout.scss b/.themes/classic/sass/custom/_layout.scss deleted file mode 100644 index 74c7de9d..00000000 --- a/.themes/classic/sass/custom/_layout.scss +++ /dev/null @@ -1,21 +0,0 @@ -// Here you can easily change your sites's layout. -// To give it a try, uncomment some of the lines below, make changes, rebuild your blog, and see how it works. - -//$header-font-size: 1em; -//$header-padding-top: 1.5em; -//$header-padding-bottom: 1.5em; - -//$max-width: 1350px; -//$indented-lists: true; - -// Padding used for layout margins -//$pad-min: 18px; -//$pad-narrow: 25px; -//$pad-medium: 35px; -//$pad-wide: 55px; - -// Sidebar widths used in media queries -//$sidebar-width-medium: 240px; -//$sidebar-pad-medium: 15px; -//$sidebar-pad-wide: 20px; -//$sidebar-width-wide: 300px; diff --git a/.themes/classic/sass/custom/_styles.scss b/.themes/classic/sass/custom/_styles.scss deleted file mode 100644 index 91ffcccf..00000000 --- a/.themes/classic/sass/custom/_styles.scss +++ /dev/null @@ -1,2 +0,0 @@ -// This File is imported last, and will override other styles in the cascade -// Add styles here to make changes without digging in too much diff --git a/.themes/classic/sass/partials/_archive.scss b/.themes/classic/sass/partials/_archive.scss deleted file mode 100644 index 9ef1e824..00000000 --- a/.themes/classic/sass/partials/_archive.scss +++ /dev/null @@ -1,72 +0,0 @@ -#archive { - #content > div { &, > article { padding-top: 0; } } -} -#blog-archives { - article { - padding: 1em 0 1em; - position: relative; - background: $img-border bottom left repeat-x; - &:last-child { - background: none; - } - footer { padding: 0; margin: 0;} - } - h1 { color: $text-color; margin-bottom: .3em; } - h2 { display: none; } - h1 { - font-size: 1.5em; - a { - @include hover-link; - color: inherit; - &:hover { color: $link-color-hover; } - font-weight: normal; - display: inline-block; - } - } - a.category, time { - @extend .sans; - color: $text-color-light; - } - color: $text-color-light; - .entry-content { display: none; } - time { - font-size: .9em; - line-height: 1.2em; - .month, .day { display: inline-block; } - .month { text-transform: uppercase; } - } - p { margin-bottom: 1em; } - &, .entry-content { a { @include link-colors(inherit, $link-color-hover); }} - a:hover { color: $link-color-hover; } - @media only screen and (min-width: 550px) { - article { margin-left: 5em; } - h2 { - margin-bottom: .3em; - font-weight: normal; - display: inline-block; - position: relative; top: -1px; - float: left; - &:first-child { padding-top: .75em; } - } - time { - position: absolute; - text-align: right; - left: 0em; - top: 1.8em; - } - .year { display: none; } - article { - padding:{left: 4.5em; bottom: .7em;} - } - a.category { - line-height: 1.1em; - } - } -} -#content > .category { - article { - margin-left: 0; - padding-left: 6.8em; - } - .year { display: inline; } -} diff --git a/.themes/classic/sass/partials/_blog.scss b/.themes/classic/sass/partials/_blog.scss deleted file mode 100644 index 57fe7a8a..00000000 --- a/.themes/classic/sass/partials/_blog.scss +++ /dev/null @@ -1,141 +0,0 @@ -article { - padding-top: 1em; - a { @extend .force-wrap; } - header { - position: relative; - padding-top: 2em; - padding-bottom: 1em; - margin-bottom: 1em; - background: $img-border bottom left repeat-x; - h1 { - margin: 0; - a { text-decoration: none; - &:hover { text-decoration: underline; } } - } - p { - font-size: .9em; - color: $text-color-light; - margin: 0; - &.meta { - @extend .sans; - text-transform: uppercase; - position: absolute; top: 0; - } - } - @media only screen and (min-width: 768px) { - margin-bottom: 1.5em; - padding-bottom: 1em; - background: $img-border bottom left repeat-x; - } - } - h2 { - padding-top: 0.8em; - background: $img-border top left repeat-x; - } - .entry-content & h2:first-child, header + h2 { padding-top: 0; } - h2:first-child, header + h2 { background: none; } - .feature { - padding-top: .5em; - margin-bottom: 1em; - padding-bottom: 1em; - background: $img-border bottom left repeat-x; - font-size: 2.0em; font-style: italic; - line-height: 1.3em; - } - img, video, .flash-video { - @extend .flex-content; - @extend .basic-alignment; - @include shadow-box; - } - video, .flash-video { margin: 0 auto 1.5em; } - video { display: block; width: 100%; } - .flash-video { - > div { - position: relative; - display: block; - padding-bottom: 56.25%; - padding-top: 1px; - height: 0; - overflow: hidden; - iframe, object, embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - } - } - } - > footer { - padding-bottom: 2.5em; - margin-top: 2em; - @extend .sans; - p.meta { - margin-bottom: .8em; - font-size: .85em; - clear: both; - overflow: hidden; - } - .byline + time:before, time +time:before, .comments:before, .byline ~ .categories:before { - @extend .separator; - } - } - -} -article + article { - .blog-index & { - background: $img-border top left repeat-x; - } -} -#content .blog-index { - padding: { top: 0; bottom: 0; } - article { padding-top: 2em; } - article header { background: none; padding-bottom: 0; } - article h1 { - font-size: 2.2em; - a { color: inherit; &:hover { color: $link-color-hover; } } - } - a[rel=full-article] { - background: darken($main-bg, 5); - display: inline-block; - padding: .4em .8em; - margin-right: .5em; - text-decoration: none; - color: mix($text-color, $text-color-light); - @extend .serif; - @include transition(background-color .5s); - &:hover { - background: $link-color-hover; - text-shadow: none; - color: $main-bg; - } - } - footer { - @extend .sans; - margin-top: 1em; - } -} - -.separator { - content: "\2022 "; - padding: 0 .4em 0 .2em; - display: inline-block; -} - -#content div.pagination { - text-align: center; - font-size: .95em; - position: relative; - background: $img-border top left repeat-x; - padding: {top: 1.5em; bottom: 1.5em;} - a { - text-decoration: none; - color: $text-color-light; - &.prev { position: absolute; left: 0; } - &.next { position: absolute; right: 0; } - &:hover { color: $link-color-hover; } - &[href*=archive] { - &:before, &:after { content: '\2014'; padding: 0 .3em; } - } - } -} diff --git a/.themes/classic/sass/partials/_footer.scss b/.themes/classic/sass/partials/_footer.scss deleted file mode 100644 index 37411225..00000000 --- a/.themes/classic/sass/partials/_footer.scss +++ /dev/null @@ -1,19 +0,0 @@ -body > footer { - @extend .sans; - font-size: .8em; - color: $footer-color; - text-shadow: lighten($footer-bg, 5) 0 1px; - background-color: $footer-bg; - @include background($footer-bg-front, $footer-bg-back); - border-top: 1px solid $footer-border-top; - position: relative; - padding-top: 1em; - padding-bottom: 1em; - margin-bottom: 3em; - @include border-bottom-radius(.4em); - z-index: 1; - a { - @include link-colors($footer-link-color, $footer-link-color-hover, $visited: $footer-link-color); - } - p:last-child { margin-bottom: 0; } -} diff --git a/.themes/classic/sass/partials/_header.scss b/.themes/classic/sass/partials/_header.scss deleted file mode 100644 index e3c6c020..00000000 --- a/.themes/classic/sass/partials/_header.scss +++ /dev/null @@ -1,18 +0,0 @@ -body > header { - background: $header-bg; - h1 { - display: inline-block; - margin: 0; - a, a:visited, a:hover { - color: $title_color; - text-decoration: none; - } - } - h2 { - margin: .2em 0 0; - @extend .sans; - font-size: 1em; - color: $subtitle-color; - font-weight: normal; - } -} diff --git a/.themes/classic/sass/partials/_navigation.scss b/.themes/classic/sass/partials/_navigation.scss deleted file mode 100644 index 30fa011d..00000000 --- a/.themes/classic/sass/partials/_navigation.scss +++ /dev/null @@ -1,137 +0,0 @@ -body > nav { - position: relative; - background-color: $nav-bg; - @include background($nav-bg-front, $nav-bg-back); - border: { - top: 1px solid $nav-border-top; - bottom: 1px solid $nav-border-bottom; } - padding-top: .35em; - padding-bottom: .35em; - form { - @include background-clip(padding-box); - margin: 0; padding: 0; - .search { - padding: .3em .5em 0; - font-size: .85em; - font-family: $sans; - line-height: 1.1em; - width: 95%; - @include border-radius(.5em); - @include background-clip(padding-box); - @include box-shadow(lighten($nav-bg, 2) 0 1px); - background-color: lighten($nav-bg, 15); - border: 1px solid $nav-border; - color: #888; - &:focus { - color: #444; - border-color: #80b1df; - @include box-shadow(#80b1df 0 0 4px, #80b1df 0 0 3px inset); - background-color: #fff; - outline: none; - } - } - } - fieldset[role=search]{ float: right; width: 48%; } - fieldset.mobile-nav{ float: left; width: 48%; - select{ width: 100%; font-size: .8em; border: 1px solid #888;} - } - ul { display: none; } - @media only screen and (min-width: 550px) { - font-size: .9em; - ul { - @include horizontal-list(0); - float: left; - display: block; - padding-top: .15em; - } - ul.subscription { - margin-left: .8em; - float: right; - li:last-child a { padding-right: 0; } - } - ul li { - margin: 0; - } - a { - @include link-colors($nav-color, $nav-color-hover, $visited: $nav-color); - font-family: $sans; - text-shadow: lighten($nav-bg, 12) 0 1px; - float: left; - text-decoration: none; - font-size: 1.1em; - padding: .1em 0; - line-height: 1.5em; - } - li + li { - border-left: 1px solid $nav-border-left; - margin-left: .8em; - a { - padding-left: .8em; - border-left: 1px solid $nav-border-right; - } - } - form { - float: right; - text-align: left; - padding-left: .8em; - width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium + 20px; - .search { - width: 93%; - font-size: .95em; - line-height: 1.2em; - } - } - ul[data-subscription$=email] + form { - width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium - 58px; - .search { width: 91%; } - } - fieldset.mobile-nav { display: none; } - fieldset[role=search]{ width: 99%; } - } - @media only screen and (min-width: 992px) { - form { - width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 + 10px; - } - ul[data-subscription$=email] + form { - width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 - 58px; - } - } -} -.no-placeholder { - body > nav .search { - background: lighten($nav-bg, 15) image-url('search.png') .3em .25em no-repeat; - text-indent: 1.3em; - } -} -@mixin mask-subscription-nav($feed: 'rss.png'){ - position: relative; top: 0px; - text-indent: -999999em; - background-color: $nav-border-right; - border: 0; - padding: 0; - &,&:after { @include mask-image($feed); } - &:after { - content: ""; - position: absolute; top: -1px; left: 0; - background-color: lighten($nav-color, 25); - } - &:hover:after { background-color: lighten($nav-color, 20); } -} -.maskImage { - body > nav { - @media only screen and (min-width: 550px) { - ul[data-subscription$=email] + form { - width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium - 32px; - } - } - @media only screen and (min-width: 992px) { - ul[data-subscription$=email] + form { - width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 - 32px; - } - } - } - ul.subscription { position: relative; top: .2em; li, a { border: 0; padding: 0; }} - a[rel=subscribe-rss]{ @include mask-subscription-nav('rss.png'); } - a[rel=subscribe-email]{ @include mask-subscription-nav('email.png'); } -} - diff --git a/.themes/classic/sass/partials/_sharing.scss b/.themes/classic/sass/partials/_sharing.scss deleted file mode 100644 index 3eecb488..00000000 --- a/.themes/classic/sass/partials/_sharing.scss +++ /dev/null @@ -1,8 +0,0 @@ -.sharing { - p.meta + & { - padding: { top: 1em; left: 0; } - background: $img-border top left repeat-x; - } -} - -#fb-root { display: none; } diff --git a/.themes/classic/sass/partials/_sidebar.scss b/.themes/classic/sass/partials/_sidebar.scss deleted file mode 100644 index cd8c1ca2..00000000 --- a/.themes/classic/sass/partials/_sidebar.scss +++ /dev/null @@ -1,4 +0,0 @@ -@import "sidebar/base"; -@import "sidebar/googleplus"; -@import "sidebar/pinboard"; -@import "sidebar/delicious"; diff --git a/.themes/classic/sass/partials/_syntax.scss b/.themes/classic/sass/partials/_syntax.scss deleted file mode 100644 index 5465286f..00000000 --- a/.themes/classic/sass/partials/_syntax.scss +++ /dev/null @@ -1,261 +0,0 @@ -.highlight, html .gist .gist-file .gist-syntax .gist-highlight { - table td.code { width: 100%; } - border: 1px solid $pre-border !important; -} -.highlight .line-numbers, html .gist .gist-file .gist-syntax .highlight .line_numbers { - text-align: right; - font-size: 13px; - line-height: 1.45em; - @if $solarized == light { - background: lighten($base03, 1) $noise-bg !important; - border-right: 1px solid darken($base02, 2) !important; - @include box-shadow(lighten($base03, 2) -1px 0 inset); - text-shadow: lighten($base02, 2) 0 -1px; - } @else { - background: $base02 $noise-bg !important; - border-right: 1px solid darken($base03, 2) !important; - @include box-shadow(lighten($base02, 2) -1px 0 inset); - text-shadow: darken($base02, 10) 0 -1px; - } - span { color: $base01 !important; } - padding: .8em !important; - @include border-radius(0); -} - -figure.code, .gist-file, pre { - @include box-shadow(rgba(#000, .06) 0 0 10px); - .highlight pre { @include box-shadow(none); } -} - -.gist .highlight, figure.code .highlight { - @include selection(adjust-color($base03, $lightness: 23%, $saturation: -65%), $text-shadow: $base03 0 1px); -} -html .gist .gist-file { - margin-bottom: 1.8em; - position: relative; - border: none; - padding-top: image-height("code_bg.png") !important; - .highlight { - margin-bottom: 0; - } - .gist-syntax { - border-bottom: 0 !important; - background: none !important; - .gist-highlight { - background: $base03 !important; - } - .highlight pre { - @extend .pre-code; - padding: 0; - } - } - .gist-meta { - padding: .6em 0.8em; - border: 1px solid lighten($base02, 2) !important; - color: $base01; - font-size: .7em !important; - @if $solarized == light { - background: lighten($base03, 2) $noise-bg; - border: 1px solid $pre-border !important; - border-top: 1px solid lighten($base03, 2) !important; - } @else { - background: $base02 $noise-bg; - } - @extend .sans; - line-height: 1.5em; - a { - color: mix($base1, $base01) !important; - @include hover-link; - &:hover { color: $base1 !important; } - } - a[href*='#file'] { - position: absolute; top: 0; left:0; right:-10px; - color: #474747 !important; - @extend .code-title; - &:hover { color: $link-color !important; } - } - a[href*=raw]{ - @extend .download-source; - top: .4em; - } - } -} -pre { - background: $pre-bg $noise-bg; - @include border-radius(.4em); - @extend .mono; - border: 1px solid $pre-border; - line-height: 1.45em; - font-size: 13px; - margin-bottom: 2.1em; - padding: .8em 1em; - color: $pre-color; - overflow: auto; -} -h3.filename { - @extend .code-title; - + pre { @include border-top-radius(0px); } -} - -p, li { - code { - @extend .mono; - display: inline-block; - white-space: no-wrap; - background: #fff; - font-size: .8em; - line-height: 1.5em; - color: #555; - border: 1px solid #ddd; - @include border-radius(.4em); - padding: 0 .3em; - margin: -1px 0; - } - pre code { font-size: 1em !important; background: none; border: none; } -} - -.pre-code { - font-family: $mono !important; - overflow: scroll; - overflow-y: hidden; - display: block; - padding: .8em; - overflow-x: auto; - line-height: 1.45em; - background: $base03 $noise-bg !important; - color: $base1 !important; - span { color: $base1 !important; } - span { font-style: normal !important; font-weight: normal !important; } - - .c { color: $base01 !important; font-style: italic !important; } /* Comment */ - .cm { color: $base01 !important; font-style: italic !important; } /* Comment.Multiline */ - .cp { color: $base01 !important; font-style: italic !important; } /* Comment.Preproc */ - .c1 { color: $base01 !important; font-style: italic !important; } /* Comment.Single */ - .cs { color: $base01 !important; font-weight: bold !important; font-style: italic !important; } /* Comment.Special */ - .err { color: $solar-red !important; background: none !important; } /* Error */ - .k { color: $solar-orange !important; } /* Keyword */ - .o { color: $base1 !important; font-weight: bold !important; } /* Operator */ - .p { color: $base1 !important; } /* Operator */ - .ow { color: $solar-cyan !important; font-weight: bold !important; } /* Operator.Word */ - .gd { color: $base1 !important; background-color: mix($solar-red, $base03, 25%) !important; display: inline-block; } /* Generic.Deleted */ - .gd .x { color: $base1 !important; background-color: mix($solar-red, $base03, 35%) !important; display: inline-block; } /* Generic.Deleted.Specific */ - .ge { color: $base1 !important; font-style: italic !important; } /* Generic.Emph */ - //.gr { color: #aa0000 } /* Generic.Error */ - .gh { color: $base01 !important; } /* Generic.Heading */ - .gi { color: $base1 !important; background-color: mix($solar-green, $base03, 20%) !important; display: inline-block; } /* Generic.Inserted */ - .gi .x { color: $base1 !important; background-color: mix($solar-green, $base03, 40%) !important; display: inline-block; } /* Generic.Inserted.Specific */ - //.go { color: #888888 } /* Generic.Output */ - //.gp { color: #555555 } /* Generic.Prompt */ - .gs { color: $base1 !important; font-weight: bold !important; } /* Generic.Strong */ - .gu { color: $solar-violet !important; } /* Generic.Subheading */ - //.gt { color: #aa0000 } /* Generic.Traceback */ - .kc { color: $solar-green !important; font-weight: bold !important; } /* Keyword.Constant */ - .kd { color: $solar-blue !important; } /* Keyword.Declaration */ - .kp { color: $solar-orange !important; font-weight: bold !important; } /* Keyword.Pseudo */ - .kr { color: $solar-magenta !important; font-weight: bold !important; } /* Keyword.Reserved */ - .kt { color: $solar-cyan !important; } /* Keyword.Type */ - .n { color: $solar-blue !important; } - .na { color: $solar-blue !important; } /* Name.Attribute */ - .nb { color: $solar-green !important; } /* Name.Builtin */ - .nc { color: $solar-magenta !important;} /* Name.Class */ - .no { color: $solar-yellow !important; } /* Name.Constant */ - //.ni { color: #800080 } /* Name.Entity */ - .nl { color: $solar-green !important; } - .ne { color: $solar-blue !important; font-weight: bold !important; } /* Name.Exception */ - .nf { color: $solar-blue !important; font-weight: bold !important; } /* Name.Function */ - .nn { color: $solar-yellow !important; } /* Name.Namespace */ - .nt { color: $solar-blue !important; font-weight: bold !important; } /* Name.Tag */ - .nx { color: $solar-yellow !Important; } - //.bp { color: #999999 } /* Name.Builtin.Pseudo */ - //.vc { color: #008080 } /* Name.Variable.Class */ - .vg { color: $solar-blue !important; } /* Name.Variable.Global */ - .vi { color: $solar-blue !important; } /* Name.Variable.Instance */ - .nv { color: $solar-blue !important; } /* Name.Variable */ - //.w { color: #bbbbbb } /* Text.Whitespace */ - .mf { color: $solar-cyan !important; } /* Literal.Number.Float */ - .m { color: $solar-cyan !important; } /* Literal.Number */ - .mh { color: $solar-cyan !important; } /* Literal.Number.Hex */ - .mi { color: $solar-cyan !important; } /* Literal.Number.Integer */ - //.mo { color: #009999 } /* Literal.Number.Oct */ - .s { color: $solar-cyan !important; } /* Literal.String */ - //.sb { color: #d14 } /* Literal.String.Backtick */ - //.sc { color: #d14 } /* Literal.String.Char */ - .sd { color: $solar-cyan !important; } /* Literal.String.Doc */ - .s2 { color: $solar-cyan !important; } /* Literal.String.Double */ - .se { color: $solar-red !important; } /* Literal.String.Escape */ - //.sh { color: #d14 } /* Literal.String.Heredoc */ - .si { color: $solar-blue !important; } /* Literal.String.Interpol */ - //.sx { color: #d14 } /* Literal.String.Other */ - .sr { color: $solar-cyan !important; } /* Literal.String.Regex */ - .s1 { color: $solar-cyan !important; } /* Literal.String.Single */ - //.ss { color: #990073 } /* Literal.String.Symbol */ - //.il { color: #009999 } /* Literal.Number.Integer.Long */ - div { .gd, .gd .x, .gi, .gi .x { display: inline-block; width: 100%; }} -} - -.highlight, .gist-highlight { - pre { background: none; @include border-radius(0px); border: none; padding: 0; margin-bottom: 0; } - margin-bottom: 1.8em; - background: $base03; - overflow-y: hidden; - overflow-x: auto; -} - -$solar-scroll-bg: rgba(#fff, .15); -$solar-scroll-thumb: rgba(#fff, .2); -@if $solarized == light { - $solar-scroll-bg: rgba(#000, .15); - $solar-scroll-thumb: rgba(#000, .15); -} - -pre, .highlight, .gist-highlight { - &::-webkit-scrollbar { height: .5em; background: $solar-scroll-bg; } - &::-webkit-scrollbar-thumb:horizontal { background: $solar-scroll-thumb; -webkit-border-radius: 4px; border-radius: 4px } -} - -.highlight code { - @extend .pre-code; background: #000; -} -figure.code { - background: none; - padding: 0; - border: 0; - margin-bottom: 1.5em; - pre { margin-bottom: 0; } - figcaption { - position: relative; - @extend .code-title; - a { @extend .download-source; } - } - .highlight { - margin-bottom: 0; - } -} - -.code-title { - text-align: center; - font-size: 13px; - line-height: 2em; - text-shadow: #cbcccc 0 1px 0; - color: #474747; - font-weight: normal; - margin-bottom: 0; - @include border-top-radius(5px); - font-family: "Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif; - background: #aaaaaa image-url("code_bg.png") top repeat-x; - border: 1px solid #565656; - border-top-color: #cbcbcb; - border-left-color: #a5a5a5; - border-right-color: #a5a5a5; - border-bottom: 0; -} - -.download-source { - position: absolute; right: .8em; - @include hover-link; - color: #666 !important; - z-index: 1; - font-size: 13px; - text-shadow: #cbcccc 0 1px 0; - padding-left: 3em; -} diff --git a/.themes/classic/sass/partials/sidebar/_base.scss b/.themes/classic/sass/partials/sidebar/_base.scss deleted file mode 100644 index 5441304e..00000000 --- a/.themes/classic/sass/partials/sidebar/_base.scss +++ /dev/null @@ -1,106 +0,0 @@ -.side-shadow-border { - @include box-shadow(lighten($sidebar-bg, 5) 0 1px); -} -aside.sidebar { - overflow: hidden; - color: $sidebar-color; - text-shadow: lighten($sidebar-bg, 8) 0 1px; - a { @extend .force-wrap; } - section { - @extend .sans; - font-size: .8em; - line-height: 1.4em; - margin-bottom: 1.5em; - h1 { - margin: 1.5em 0 0; - padding-bottom: .2em; - border-bottom: 1px solid $sidebar-border; - @extend .side-shadow-border; - + p { - padding-top: .4em; - } - } - } - img { - @extend .flex-content; - @extend .basic-alignment; - @include shadow-box($border: #fff .3em solid); - } - ul { - margin-bottom: 0.5em; - margin-left: 0; - } - li { - list-style: none; - padding: .5em 0; - margin: 0; - border-bottom: 1px solid $sidebar-border; - @extend .side-shadow-border; - p:last-child { - margin-bottom: 0; - } - } - a { - color: inherit; - @include transition(color .5s); - } - &:hover a { - color: $sidebar-link-color; - &:hover { color: $sidebar-link-color-hover; } - } -} -.aside-alt-link { - color: $sidebar-link-color-subdued; - &:hover { - color: $sidebar-link-color-subdued-hover; - } -} - -@media only screen and (min-width: 768px) { - .toggle-sidebar { - outline: none; - position: absolute; right: -10px; top: 0; bottom: 0; - display: inline-block; - text-decoration: none; - color: mix($text-color-light, $sidebar-bg); - width: 9px; - cursor: pointer; - &:hover { - background: mix($sidebar-border, $sidebar-bg); - @include background(linear-gradient(left, rgba($sidebar-border, .5), rgba($sidebar-border, 0))); - } - &:after { - position: absolute; right: -11px; top: 0; - width: 20px; - font-size: 1.2em; - line-height: 1.1em; - padding-bottom: .15em; - @include border-bottom-right-radius(.3em); - text-align: center; - background: $main-bg $noise-bg; - border-bottom: 1px solid $sidebar-border; - border-right: 1px solid $sidebar-border; - content: "\00BB"; - text-indent: -1px; - } - .collapse-sidebar & { - text-indent: 0px; - right: -20px; - width: 19px; - &:hover { - background: mix($sidebar-border, $sidebar-bg); - } - &:after { - border-left: 1px solid $sidebar-border; - text-shadow: #fff 0 1px; - content: "\00AB"; - left: 0px; right: 0; - text-align: center; - text-indent: 0; - border: 0; - border-right-width: 0; - background: none; - } - } - } -} diff --git a/.themes/classic/sass/partials/sidebar/_delicious.scss b/.themes/classic/sass/partials/sidebar/_delicious.scss deleted file mode 100644 index e962702e..00000000 --- a/.themes/classic/sass/partials/sidebar/_delicious.scss +++ /dev/null @@ -1,4 +0,0 @@ -.delicious-posts { - a.delicious-link { margin-bottom: .5em; display: block; } - p { font-size: 1em; } -} diff --git a/.themes/classic/sass/partials/sidebar/_googleplus.scss b/.themes/classic/sass/partials/sidebar/_googleplus.scss deleted file mode 100644 index c2a693ee..00000000 --- a/.themes/classic/sass/partials/sidebar/_googleplus.scss +++ /dev/null @@ -1,26 +0,0 @@ -.googleplus { - h1 { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - -o-box-shadow: none !important; - box-shadow: none !important; - border-bottom: 0px none !important; - } - a { - text-decoration: none; - white-space: normal !important; - line-height: 32px; - - img { - float: left; - margin-right: 0.5em; - border: 0 none; - } - } -} - -.googleplus-hidden { - position: absolute; - top: -1000em; - left: -1000em; -} diff --git a/.themes/classic/sass/partials/sidebar/_pinboard.scss b/.themes/classic/sass/partials/sidebar/_pinboard.scss deleted file mode 100644 index 9f9ab461..00000000 --- a/.themes/classic/sass/partials/sidebar/_pinboard.scss +++ /dev/null @@ -1,12 +0,0 @@ -#pinboard_linkroll { - .pin-title, .pin-description { - display: block; - margin-bottom: .5em; - } - .pin-tag { - @include hover-link; - @extend .aside-alt-link; - &:after { content: ','; } - &:last-child:after { content: ''; } - } -} diff --git a/.themes/classic/sass/plugins/_plugins.scss b/.themes/classic/sass/plugins/_plugins.scss deleted file mode 100644 index 3b4ba0b8..00000000 --- a/.themes/classic/sass/plugins/_plugins.scss +++ /dev/null @@ -1,6 +0,0 @@ -/* - Add plugin stylesheets to this directory and they will be automatically - Imported. Load order is alphabetical and styles can be overriden in - custom/_style.scss which is loaded after all plugin stylesheets. -*/ - diff --git a/.themes/classic/sass/screen.scss b/.themes/classic/sass/screen.scss deleted file mode 100644 index 155e81e9..00000000 --- a/.themes/classic/sass/screen.scss +++ /dev/null @@ -1,11 +0,0 @@ -@import "compass"; -@include global-reset; -@include reset-html5; - -@import "custom/colors"; -@import "custom/fonts"; -@import "custom/layout"; -@import "base"; -@import "partials"; -@import "plugins/**/*"; -@import "custom/styles"; diff --git a/.themes/classic/source/_includes/after_footer.html b/.themes/classic/source/_includes/after_footer.html deleted file mode 100644 index 08b8e340..00000000 --- a/.themes/classic/source/_includes/after_footer.html +++ /dev/null @@ -1,5 +0,0 @@ -{% include disqus.html %} -{% include facebook_like.html %} -{% include google_plus_one.html %} -{% include twitter_sharing.html %} -{% include custom/after_footer.html %} diff --git a/.themes/classic/source/_includes/archive_post.html b/.themes/classic/source/_includes/archive_post.html deleted file mode 100644 index fef3328e..00000000 --- a/.themes/classic/source/_includes/archive_post.html +++ /dev/null @@ -1,8 +0,0 @@ -{% capture category %}{{ post.categories | size }}{% endcapture %} -

{{post.title}}

- -{% if category != '0' %} -
- posted in {{ post.categories | category_links }} -
-{% endif %} diff --git a/.themes/classic/source/_includes/article.html b/.themes/classic/source/_includes/article.html deleted file mode 100644 index 23f48844..00000000 --- a/.themes/classic/source/_includes/article.html +++ /dev/null @@ -1,28 +0,0 @@ -{% unless page.no_header %} -
- {% if index %} -

{% if site.titlecase %}{{ post.title | titlecase }}{% else %}{{ post.title }}{% endif %}

- {% else %} -

{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}

- {% endif %} - {% unless page.meta == false %} -

- {% include post/date.html %}{{ time }} - {% if site.disqus_short_name and page.comments != false and post.comments != false and site.disqus_show_comment_count == true %} - | Comments - {% endif %} -

- {% endunless %} -
-{% endunless %} -{% if index %} -
{{ content | excerpt }}
- {% capture excerpted %}{{ content | has_excerpt }}{% endcapture %} - {% if excerpted == 'true' %} - - {% endif %} -{% else %} -
{{ content }}
-{% endif %} diff --git a/.themes/classic/source/_includes/asides/delicious.html b/.themes/classic/source/_includes/asides/delicious.html deleted file mode 100644 index 115cdcbc..00000000 --- a/.themes/classic/source/_includes/asides/delicious.html +++ /dev/null @@ -1,8 +0,0 @@ -{% if site.delicious_user %} -
-

On Delicious

-
- -

My Delicious Bookmarks »

-
-{% endif %} \ No newline at end of file diff --git a/.themes/classic/source/_includes/asides/github.html b/.themes/classic/source/_includes/asides/github.html deleted file mode 100644 index b0bf9596..00000000 --- a/.themes/classic/source/_includes/asides/github.html +++ /dev/null @@ -1,30 +0,0 @@ -{% if site.github_user %} -
-

GitHub Repos

-
    -
  • Status updating...
  • -
- {% if site.github_show_profile_link %} - @{{site.github_user}} on GitHub - {% endif %} - - -
-{% endif %} diff --git a/.themes/classic/source/_includes/asides/googleplus.html b/.themes/classic/source/_includes/asides/googleplus.html deleted file mode 100644 index 00a0aa85..00000000 --- a/.themes/classic/source/_includes/asides/googleplus.html +++ /dev/null @@ -1,11 +0,0 @@ -{% if site.googleplus_user %} -
-

- - - Google+ - -

-
-{% endif %} - diff --git a/.themes/classic/source/_includes/asides/pinboard.html b/.themes/classic/source/_includes/asides/pinboard.html deleted file mode 100644 index c89c3e7b..00000000 --- a/.themes/classic/source/_includes/asides/pinboard.html +++ /dev/null @@ -1,19 +0,0 @@ -{% if site.pinboard_user %} -
-

My Pinboard

-
    Fetching linkroll...
-

My Pinboard Bookmarks »

-
- -{% endif %} diff --git a/.themes/classic/source/_includes/asides/recent_posts.html b/.themes/classic/source/_includes/asides/recent_posts.html deleted file mode 100644 index cc628145..00000000 --- a/.themes/classic/source/_includes/asides/recent_posts.html +++ /dev/null @@ -1,10 +0,0 @@ -
-

Recent Posts

-
    - {% for post in site.posts limit: site.recent_posts %} -
  • - {{ post.title }} -
  • - {% endfor %} -
-
diff --git a/.themes/classic/source/_includes/custom/after_footer.html b/.themes/classic/source/_includes/custom/after_footer.html deleted file mode 100644 index bce25dd9..00000000 --- a/.themes/classic/source/_includes/custom/after_footer.html +++ /dev/null @@ -1,3 +0,0 @@ -{% comment %} - Add content to be output at the bottom of each page. (You might use this for analytics scripts, for example) -{% endcomment %} diff --git a/.themes/classic/source/_includes/custom/asides/about.html b/.themes/classic/source/_includes/custom/asides/about.html deleted file mode 100644 index 59d309e4..00000000 --- a/.themes/classic/source/_includes/custom/asides/about.html +++ /dev/null @@ -1,4 +0,0 @@ -
-

About Me

-

A little something about me.

-
diff --git a/.themes/classic/source/_includes/custom/footer.html b/.themes/classic/source/_includes/custom/footer.html deleted file mode 100644 index e12f0678..00000000 --- a/.themes/classic/source/_includes/custom/footer.html +++ /dev/null @@ -1,4 +0,0 @@ -

- Copyright © {{ site.time | date: "%Y" }} - {{ site.author }} - - Powered by Octopress -

diff --git a/.themes/classic/source/_includes/custom/head.html b/.themes/classic/source/_includes/custom/head.html deleted file mode 100644 index 85879f4a..00000000 --- a/.themes/classic/source/_includes/custom/head.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.themes/classic/source/_includes/custom/header.html b/.themes/classic/source/_includes/custom/header.html deleted file mode 100644 index 35f9c059..00000000 --- a/.themes/classic/source/_includes/custom/header.html +++ /dev/null @@ -1,6 +0,0 @@ -
-

{{ site.title }}

- {% if site.subtitle %} -

{{ site.subtitle }}

- {% endif %} -
diff --git a/.themes/classic/source/_includes/custom/navigation.html b/.themes/classic/source/_includes/custom/navigation.html deleted file mode 100644 index d6bd4246..00000000 --- a/.themes/classic/source/_includes/custom/navigation.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/.themes/classic/source/_includes/disqus.html b/.themes/classic/source/_includes/disqus.html deleted file mode 100644 index eb308779..00000000 --- a/.themes/classic/source/_includes/disqus.html +++ /dev/null @@ -1,21 +0,0 @@ -{% comment %} Load script if disquss comments are enabled and `page.comments` is either empty (index) or set to true {% endcomment %} -{% if site.disqus_short_name and page.comments != false %} - -{% endif %} diff --git a/.themes/classic/source/_includes/facebook_like.html b/.themes/classic/source/_includes/facebook_like.html deleted file mode 100644 index d263e6d2..00000000 --- a/.themes/classic/source/_includes/facebook_like.html +++ /dev/null @@ -1,10 +0,0 @@ -{% if site.facebook_like %} -
- -{% endif %} diff --git a/.themes/classic/source/_includes/footer.html b/.themes/classic/source/_includes/footer.html deleted file mode 100644 index 3a8c7687..00000000 --- a/.themes/classic/source/_includes/footer.html +++ /dev/null @@ -1 +0,0 @@ -{% include custom/footer.html %} diff --git a/.themes/classic/source/_includes/google_analytics.html b/.themes/classic/source/_includes/google_analytics.html deleted file mode 100644 index 4d4d5969..00000000 --- a/.themes/classic/source/_includes/google_analytics.html +++ /dev/null @@ -1,13 +0,0 @@ -{% if site.google_analytics_tracking_id %} - -{% endif %} diff --git a/.themes/classic/source/_includes/google_plus_one.html b/.themes/classic/source/_includes/google_plus_one.html deleted file mode 100644 index b69ddaeb..00000000 --- a/.themes/classic/source/_includes/google_plus_one.html +++ /dev/null @@ -1,9 +0,0 @@ -{% if site.google_plus_one %} - -{% endif %} diff --git a/.themes/classic/source/_includes/head.html b/.themes/classic/source/_includes/head.html deleted file mode 100644 index 7a727b27..00000000 --- a/.themes/classic/source/_includes/head.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - {% if page.title %}{{ page.title }} - {% endif %}{{ site.title }} - - - {% capture description %}{% if page.description %}{{ page.description }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %} - - {% if page.keywords %}{% endif %} - - - - - - - {% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %} - - - - - - - - - {% include custom/head.html %} - {% include google_analytics.html %} - diff --git a/.themes/classic/source/_includes/header.html b/.themes/classic/source/_includes/header.html deleted file mode 100644 index 524de651..00000000 --- a/.themes/classic/source/_includes/header.html +++ /dev/null @@ -1 +0,0 @@ -{% include custom/header.html %} diff --git a/.themes/classic/source/_includes/navigation.html b/.themes/classic/source/_includes/navigation.html deleted file mode 100644 index 2f0e6280..00000000 --- a/.themes/classic/source/_includes/navigation.html +++ /dev/null @@ -1,15 +0,0 @@ -
    -
  • RSS
  • - {% if site.subscribe_email %} -
  • Email
  • - {% endif %} -
- {% if site.simple_search %} -
-
- - -
-
- {% endif %} -{% include custom/navigation.html %} diff --git a/.themes/classic/source/_includes/post/disqus_thread.html b/.themes/classic/source/_includes/post/disqus_thread.html deleted file mode 100644 index b1acd8cc..00000000 --- a/.themes/classic/source/_includes/post/disqus_thread.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.themes/classic/source/_includes/post/sharing.html b/.themes/classic/source/_includes/post/sharing.html deleted file mode 100644 index e32500d0..00000000 --- a/.themes/classic/source/_includes/post/sharing.html +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/.themes/classic/source/_includes/twitter_sharing.html b/.themes/classic/source/_includes/twitter_sharing.html deleted file mode 100644 index 687e77de..00000000 --- a/.themes/classic/source/_includes/twitter_sharing.html +++ /dev/null @@ -1,11 +0,0 @@ -{% if site.twitter_follow_button or site.twitter_tweet_button %} - -{% endif %} diff --git a/.themes/classic/source/_layouts/default.html b/.themes/classic/source/_layouts/default.html deleted file mode 100644 index f23b07b8..00000000 --- a/.themes/classic/source/_layouts/default.html +++ /dev/null @@ -1,14 +0,0 @@ -{% capture root_url %}{{ site.root | strip_slash }}{% endcapture %} -{% include head.html %} - -
{% include header.html %}
- -
-
- {{ content | expand_urls: root_url }} -
-
-
{% include footer.html %}
- {% include after_footer.html %} - - diff --git a/.themes/classic/source/_layouts/page.html b/.themes/classic/source/_layouts/page.html deleted file mode 100644 index 8ba6ec94..00000000 --- a/.themes/classic/source/_layouts/page.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: default ---- - -
-
- {% if page.title %} -
-

{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}

- {% if page.date %}

{% include post/date.html %}{{ time }}

{% endif %} -
- {% endif %} - {{ content }} - {% unless page.footer == false %} -
- {% if page.date or page.author %}

- {% if page.author %}{% include post/author.html %}{% endif %} - {% include post/date.html %}{% if updated %}{{ updated }}{% else %}{{ time }}{% endif %} - {% if page.categories %}{% include post/categories.html %}{% endif %} -

{% endif %} - {% unless page.sharing == false %} - {% include post/sharing.html %} - {% endunless %} -
- {% endunless %} -
-{% if site.disqus_short_name and page.comments == true %} -
-

Comments

-
{% include post/disqus_thread.html %}
-
-{% endif %} -
-{% unless page.sidebar == false %} - -{% endunless %} diff --git a/.themes/classic/source/_layouts/post.html b/.themes/classic/source/_layouts/post.html deleted file mode 100644 index 40911680..00000000 --- a/.themes/classic/source/_layouts/post.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: default -single: true ---- - -
-
- {% include article.html %} -
-

- {% include post/author.html %} - {% include post/date.html %}{% if updated %}{{ updated }}{% else %}{{ time }}{% endif %} - {% include post/categories.html %} -

- {% unless page.sharing == false %} - {% include post/sharing.html %} - {% endunless %} -

- {% if page.previous.url %} - « {{page.previous.title}} - {% endif %} - {% if page.next.url %} - {{page.next.title}} » - {% endif %} -

-
-
-{% if site.disqus_short_name and page.comments == true %} -
-

Comments

-
{% include post/disqus_thread.html %}
-
-{% endif %} -
-{% unless page.sidebar == false %} - -{% endunless %} diff --git a/.themes/classic/source/blog/archives/index.html b/.themes/classic/source/blog/archives/index.html deleted file mode 100644 index f1d9cee3..00000000 --- a/.themes/classic/source/blog/archives/index.html +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: Blog Archive -footer: false ---- - -
-{% for post in site.posts reverse %} -{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %} -{% unless year == this_year %} - {% assign year = this_year %} -

{{ year }}

-{% endunless %} -
- {% include archive_post.html %} -
-{% endfor %} -
diff --git a/.themes/classic/source/index.html b/.themes/classic/source/index.html deleted file mode 100644 index a114e5a8..00000000 --- a/.themes/classic/source/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: default ---- - -
- {% assign index = true %} - {% for post in paginator.posts %} - {% assign content = post.content %} -
- {% include article.html %} -
- {% endfor %} - -
- diff --git a/.themes/classic/source/javascripts/github.js b/.themes/classic/source/javascripts/github.js deleted file mode 100644 index fc2bb12c..00000000 --- a/.themes/classic/source/javascripts/github.js +++ /dev/null @@ -1,32 +0,0 @@ -var github = (function(){ - function escapeHtml(str) { - return $('
').text(str).html(); - } - function render(target, repos){ - var i = 0, fragment = '', t = $(target)[0]; - - for(i = 0; i < repos.length; i++) { - fragment += '
  • '+repos[i].name+'

    '+escapeHtml(repos[i].description||'')+'

  • '; - } - t.innerHTML = fragment; - } - return { - showRepos: function(options){ - $.ajax({ - url: "https://api.github.com/users/"+options.user+"/repos?sort=pushed&callback=?" - , dataType: 'jsonp' - , error: function (err) { $(options.target + ' li.loading').addClass('error').text("Error loading feed"); } - , success: function(data) { - var repos = []; - if (!data || !data.data) { return; } - for (var i = 0; i < data.data.length; i++) { - if (options.skip_forks && data.data[i].fork) { continue; } - repos.push(data.data[i]); - } - if (options.count) { repos.splice(options.count); } - render(options.target, repos); - } - }); - } - }; -})(); diff --git a/.themes/classic/source/javascripts/libs/jquery.min.js b/.themes/classic/source/javascripts/libs/jquery.min.js deleted file mode 100644 index 32d50cb0..00000000 --- a/.themes/classic/source/javascripts/libs/jquery.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery.min.map -*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
    a",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="
    t
    ",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
    ",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; -return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="
    ",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:b.support.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) -}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b(" -# -# Input: {% jsfiddle ccWP7 js,html,result %} -# Output: -# - -module Jekyll - class JsFiddle < Liquid::Tag - def initialize(tag_name, markup, tokens) - if /(?\w+)(?:\s+(?[\w,]+))?(?:\s+(?\w+))?(?:\s+(?\w+))?(?:\s+(?\w+))?/ =~ markup - @fiddle = fiddle - @sequence = (sequence unless sequence == 'default') || 'js,resources,html,css,result' - @skin = (skin unless skin == 'default') || 'light' - @width = width || '100%' - @height = height || '300px' - end - end - - def render(context) - if @fiddle - "" - else - "Error processing input, expected syntax: {% jsfiddle shorttag [tabs] [skin] [height] [width] %}" - end - end - end -end - -Liquid::Template.register_tag('jsfiddle', Jekyll::JsFiddle) diff --git a/plugins/octopress_filters.rb b/plugins/octopress_filters.rb deleted file mode 100644 index 091f75aa..00000000 --- a/plugins/octopress_filters.rb +++ /dev/null @@ -1,135 +0,0 @@ -#custom filters for Octopress -require './plugins/backtick_code_block' -require './plugins/post_filters' -require './plugins/raw' -require './plugins/date' -require 'rubypants' - -module OctopressFilters - include BacktickCodeBlock - include TemplateWrapper - def pre_filter(input) - input = render_code_block(input) - input.gsub /(.+?<\/figure>)/m do - safe_wrap($1) - end - end - def post_filter(input) - input = unwrap(input) - RubyPants.new(input).to_html - end -end - -module Jekyll - class ContentFilters < PostFilter - include OctopressFilters - def pre_render(post) - if post.ext.match('html|textile|markdown|md|haml|slim|xml') - post.content = pre_filter(post.content) - end - end - def post_render(post) - if post.ext.match('html|textile|markdown|md|haml|slim|xml') - post.content = post_filter(post.content) - end - end - end -end - - -module OctopressLiquidFilters - include Octopress::Date - - # Used on the blog index to split posts on the marker - def excerpt(input) - if input.index(//i) - input.split(//i)[0] - else - input - end - end - - # Checks for excerpts (helpful for template conditionals) - def has_excerpt(input) - input =~ //i ? true : false - end - - # Summary is used on the Archive pages to return the first block of content from a post. - def summary(input) - if input.index(/\n\n/) - input.split(/\n\n/)[0] - else - input - end - end - - # Extracts raw content DIV from template, used for page description as {{ content }} - # contains complete sub-template code on main page level - def raw_content(input) - /
    (?[\s\S]*?)<\/div>\s*<(footer|\/article)>/ =~ input - return (content.nil?) ? input : content - end - - # Escapes CDATA sections in post content - def cdata_escape(input) - input.gsub(//, ']]>') - end - - # Replaces relative urls with full urls - def expand_urls(input, url='') - url ||= '/' - input.gsub /(\s+(href|src)\s*=\s*["|']{1})(\/[^\"'>]*)/ do - $1+url+$3 - end - end - - # Improved version of Liquid's truncate: - # - Doesn't cut in the middle of a word. - # - Uses typographically correct ellipsis (…) insted of '...' - def truncate(input, length) - if input.length > length && input[0..(length-1)] =~ /(.+)\b.+$/im - $1.strip + ' …' - else - input - end - end - - # Improved version of Liquid's truncatewords: - # - Uses typographically correct ellipsis (…) insted of '...' - def truncatewords(input, length) - truncate = input.split(' ') - if truncate.length > length - truncate[0..length-1].join(' ').strip + ' …' - else - input - end - end - - # Condenses multiple spaces and tabs into a single space - def condense_spaces(input) - input.gsub(/\s{2,}/, ' ') - end - - # Removes trailing forward slash from a string for easily appending url segments - def strip_slash(input) - if input =~ /(.+)\/$|^\/$/ - input = $1 - end - input - end - - # Returns a url without the protocol (http://) - def shorthand_url(input) - input.gsub /(https?:\/\/)(\S+)/ do - $2 - end - end - - # Returns a title cased string based on John Gruber's title case http://daringfireball.net/2008/08/title_case_update - def titlecase(input) - input.titlecase - end - -end -Liquid::Template.register_filter OctopressLiquidFilters - diff --git a/plugins/pagination.rb b/plugins/pagination.rb deleted file mode 100644 index a318754e..00000000 --- a/plugins/pagination.rb +++ /dev/null @@ -1,121 +0,0 @@ -module Jekyll - - class Pagination < Generator - # This generator is safe from arbitrary code execution. - safe true - - # Generate paginated pages if necessary. - # - # site - The Site. - # - # Returns nothing. - def generate(site) - site.pages.dup.each do |page| - paginate(site, page) if Pager.pagination_enabled?(site.config, page) - end - end - - # Paginates the blog's posts. Renders the index.html file into paginated - # directories, e.g.: page2/index.html, page3/index.html, etc and adds more - # site-wide data. - # - # site - The Site. - # page - The index.html Page that requires pagination. - # - # {"paginator" => { "page" => , - # "per_page" => , - # "posts" => [], - # "total_posts" => , - # "total_pages" => , - # "previous_page" => , - # "next_page" => }} - def paginate(site, page) - all_posts = site.site_payload['site']['posts'] - pages = Pager.calculate_pages(all_posts, site.config['paginate'].to_i) - page_dir = page.destination('').sub(/\/[^\/]+$/, '') - page_dir_config = site.config['pagination_dir'] - dir = ((page_dir_config || page_dir) + '/').sub(/^\/+/, '') - - (1..pages).each do |num_page| - pager = Pager.new(site.config, num_page, all_posts, page_dir+'/', '/'+dir, pages) - if num_page > 1 - newpage = Page.new(site, site.source, page_dir, page.name) - newpage.pager = pager - newpage.dir = File.join(page.dir, "#{dir}page/#{num_page}") - site.pages << newpage - else - page.pager = pager - end - end - end - end - - class Pager - attr_reader :page, :per_page, :posts, :total_posts, :total_pages, :previous_page, :next_page - - # Calculate the number of pages. - # - # all_posts - The Array of all Posts. - # per_page - The Integer of entries per page. - # - # Returns the Integer number of pages. - def self.calculate_pages(all_posts, per_page) - (all_posts.size.to_f / per_page.to_i).ceil - end - - # Determine if pagination is enabled for a given file. - # - # config - The configuration Hash. - # file - The String filename of the file. - # - # Returns true if pagination is enabled, false otherwise. - def self.pagination_enabled?(config, file) - file.name == 'index.html' && !config['paginate'].nil? && file.content =~ /paginator\./ - end - - # Initialize a new Pager. - # - # config - The Hash configuration of the site. - # page - The Integer page number. - # all_posts - The Array of all the site's Posts. - # num_pages - The Integer number of pages or nil if you'd like the number - # of pages calculated. - def initialize(config, page, all_posts, index_dir, pagination_dir, num_pages = nil) - @page = page - @per_page = config['paginate'].to_i - @page_dir = pagination_dir + 'page/' - @total_pages = num_pages || Pager.calculate_pages(all_posts, @per_page) - @previous_page = nil - - if @page > @total_pages - raise RuntimeError, "page number can't be greater than total pages: #{@page} > #{@total_pages}" - end - - init = (@page - 1) * @per_page - offset = (init + @per_page - 1) >= all_posts.size ? all_posts.size : (init + @per_page - 1) - - @total_posts = all_posts.size - @posts = all_posts[init..offset] - @previous_page = @page != 1 ? @page_dir + (@page - 1).to_s + '/' : nil - @previous_page = index_dir if @page - 1 == 1 - @next_page = @page != @total_pages ? @page_dir + (@page + 1).to_s + '/' : nil - end - - # Convert this Pager's data to a Hash suitable for use by Liquid. - # - # Returns the Hash representation of this Pager. - def to_liquid - { - 'page' => page, - 'per_page' => per_page, - 'posts' => posts, - 'total_posts' => total_posts, - 'total_pages' => total_pages, - 'previous_page' => previous_page, - 'next_page' => next_page - } - end - end - -end - diff --git a/plugins/post_filters.rb b/plugins/post_filters.rb deleted file mode 100644 index 08626802..00000000 --- a/plugins/post_filters.rb +++ /dev/null @@ -1,176 +0,0 @@ -module Jekyll - - # Extended plugin type that allows the plugin - # to be called on varous callback methods. - # - # Examples: - # https://github.com/tedkulp/octopress/blob/master/plugins/post_metaweblog.rb - # https://github.com/tedkulp/octopress/blob/master/plugins/post_twitter.rb - class PostFilter < Plugin - - #Called before post is sent to the converter. Allows - #you to modify the post object before the converter - #does it's thing - def pre_render(post) - end - - #Called after the post is rendered with the converter. - #Use the post object to modify it's contents before the - #post is inserted into the template. - def post_render(post) - end - - #Called after the post is written to the disk. - #Use the post object to read it's contents to do something - #after the post is safely written. - def post_write(post) - end - end - - # Monkey patch for the Jekyll Site class. For the original class, - # see: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/site.rb - class Site - - # Instance variable to store the various post_filter - # plugins that are loaded. - attr_accessor :post_filters - - # Instantiates all of the post_filter plugins. This is basically - # a duplication of the other loaders in Site#setup. - def load_post_filters - self.post_filters = Jekyll::PostFilter.subclasses.select do |c| - !self.safe || c.safe - end.map do |c| - c.new(self.config) - end - end - end - - # Monkey patch for the Jekyll Post class. For the original class, - # see: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/post.rb - class Post - - # Copy the #write method to #old_write, so we can redefine #write - # method. - alias_method :old_write, :write - - # Write the generated post file to the destination directory. It - # then calls any post_write methods that may exist. - # +dest+ is the String path to the destination dir - # - # Returns nothing - def write(dest) - old_write(dest) - post_write if respond_to?(:post_write) - end - end - - # Monkey patch for the Jekyll Page class. For the original class, - # see: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/page.rb - class Page - - # Copy the #write method to #old_write, so we can redefine #write - # method. - alias_method :old_write, :write - - # Write the generated post file to the destination directory. It - # then calls any post_write methods that may exist. - # +dest+ is the String path to the destination dir - # - # Returns nothing - def write(dest) - old_write(dest) - post_write if respond_to?(:post_write) - end - end - - # Monkey patch for the Jekyll Convertible module. For the original class, - # see: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/convertible.rb - module Convertible - - def is_post? - self.class.to_s == 'Jekyll::Post' - end - - def is_page? - self.class.to_s == 'Jekyll::Page' - end - - def is_filterable? - is_post? or is_page? - end - - # Call the #pre_render methods on all of the loaded - # post_filter plugins. - # - # Returns nothing - def pre_render - self.site.load_post_filters unless self.site.post_filters - - if self.site.post_filters and is_filterable? - self.site.post_filters.each do |filter| - filter.pre_render(self) - end - end - end - - # Call the #post_render methods on all of the loaded - # post_filter plugins. - # - # Returns nothing - def post_render - if self.site.post_filters and is_filterable? - self.site.post_filters.each do |filter| - filter.post_render(self) - end - end - end - - # Call the #post_write methods on all of the loaded - # post_filter plugins. - # - # Returns nothing - def post_write - if self.site.post_filters and is_filterable? - self.site.post_filters.each do |filter| - filter.post_write(self) - end - end - end - - # Copy the #transform method to #old_transform, so we can - # redefine #transform method. - alias_method :old_transform, :transform - - # Transform the contents based on the content type. Then calls the - # #post_render method if it exists - # - # Returns nothing. - def transform - old_transform - post_render if respond_to?(:post_render) - end - - # Copy the #do_layout method to #old_do_layout, so we can - # redefine #do_layout method. - alias_method :old_do_layout, :do_layout - - # Calls the pre_render method if it exists and then adds any necessary - # layouts to this convertible document. - # - # payload - The site payload Hash. - # layouts - A Hash of {"name" => "layout"}. - # - # Returns nothing. - def do_layout(payload, layouts) - pre_render if respond_to?(:pre_render) - old_do_layout(payload, layouts) - end - - # Returns the full url of the post, including the - # configured url - def full_url - self.site.config['url'] + self.url - end - end -end diff --git a/plugins/preview_unpublished.rb b/plugins/preview_unpublished.rb deleted file mode 100644 index 28cbdfe7..00000000 --- a/plugins/preview_unpublished.rb +++ /dev/null @@ -1,48 +0,0 @@ -# Monkeypatch for Jekyll -# Introduce distinction between preview/productive site generation -# so posts with YAML attribute `published: false` can be previewed -# on localhost without being published to the productive environment. - -module Jekyll - - class Site - # Read all the files in //_posts and create a new Post - # object with each one. - # - # dir - The String relative path of the directory to read. - # - # Returns nothing. - def read_posts(dir) - base = File.join(self.source, dir, '_posts') - return unless File.exists?(base) - entries = Dir.chdir(base) { filter_entries(Dir['**/*']) } - - # first pass processes, but does not yet render post content - entries.each do |f| - if Post.valid?(f) - post = Post.new(self, self.source, dir, f) - - # Monkeypatch: - # On preview environment (localhost), publish all posts - if ENV.has_key?('OCTOPRESS_ENV') && ENV['OCTOPRESS_ENV'] == 'preview' && post.data.has_key?('published') && post.data['published'] == false - post.published = true - # Set preview mode flag (if necessary), `rake generate` will check for it - # to prevent pushing preview posts to productive environment - File.open(".preview-mode", "w") {} - end - - if post.published && (self.future || post.date <= self.time) - self.posts << post - post.categories.each { |c| self.categories[c] << post } - post.tags.each { |c| self.tags[c] << post } - end - end - end - - self.posts.sort! - - # limit the posts if :limit_posts option is set - self.posts = self.posts[-limit_posts, limit_posts] if limit_posts - end - end -end diff --git a/plugins/pullquote.rb b/plugins/pullquote.rb deleted file mode 100644 index 3c65e66e..00000000 --- a/plugins/pullquote.rb +++ /dev/null @@ -1,45 +0,0 @@ -# -# Author: Brandon Mathis -# Based on the semantic pullquote technique by Maykel Loomans at http://miekd.com/articles/pull-quotes-with-html5-and-css/ -# -# Outputs a span with a data-pullquote attribute set from the marked pullquote. Example: -# -# {% pullquote %} -# When writing longform posts, I find it helpful to include pullquotes, which help those scanning a post discern whether or not a post is helpful. -# It is important to note, {" pullquotes are merely visual in presentation and should not appear twice in the text. "} That is why it is prefered -# to use a CSS only technique for styling pullquotes. -# {% endpullquote %} -# ...will output... -#

    -# -# When writing longform posts, I find it helpful to include pullquotes, which help those scanning a post discern whether or not a post is helpful. -# It is important to note, pullquotes are merely visual in presentation and should not appear twice in the text. This is why a CSS only approach -# for styling pullquotes is prefered. -# -#

    -# -# {% pullquote left %} will create a left-aligned pullquote instead. -# -# Note: this plugin now creates pullquotes with the class of pullquote-right by default - -module Jekyll - - class PullquoteTag < Liquid::Block - def initialize(tag_name, markup, tokens) - @align = (markup =~ /left/i) ? "left" : "right" - super - end - - def render(context) - output = super - if output =~ /\{"\s*(.+?)\s*"\}/m - @quote = RubyPants.new($1).to_html - "#{output.gsub(/\{"\s*|\s*"\}/, '')}" - else - return "Surround your pullquote like this {\" text to be quoted \"}" - end - end - end -end - -Liquid::Template.register_tag('pullquote', Jekyll::PullquoteTag) diff --git a/plugins/pygments_code.rb b/plugins/pygments_code.rb deleted file mode 100644 index 87d3cd6d..00000000 --- a/plugins/pygments_code.rb +++ /dev/null @@ -1,45 +0,0 @@ -require 'pygments' -require 'fileutils' -require 'digest/md5' - -PYGMENTS_CACHE_DIR = File.expand_path('../../.pygments-cache', __FILE__) -FileUtils.mkdir_p(PYGMENTS_CACHE_DIR) - -module HighlightCode - def highlight(str, lang) - lang = 'ruby' if lang == 'ru' - lang = 'objc' if lang == 'm' - lang = 'perl' if lang == 'pl' - lang = 'yaml' if lang == 'yml' - str = pygments(str, lang).match(/
    (.+)<\/pre>/m)[1].to_s.gsub(/ *$/, '') #strip out divs 
    - tableize_code(str, lang) - end - - def pygments(code, lang) - if defined?(PYGMENTS_CACHE_DIR) - path = File.join(PYGMENTS_CACHE_DIR, "#{lang}-#{Digest::MD5.hexdigest(code)}.html") - if File.exist?(path) - highlighted_code = File.read(path) - else - begin - highlighted_code = Pygments.highlight(code, :lexer => lang, :formatter => 'html', :options => {:encoding => 'utf-8'}) - rescue MentosError - raise "Pygments can't parse unknown language: #{lang}." - end - File.open(path, 'w') {|f| f.print(highlighted_code) } - end - else - highlighted_code = Pygments.highlight(code, :lexer => lang, :formatter => 'html', :options => {:encoding => 'utf-8'}) - end - highlighted_code - end - def tableize_code (str, lang = '') - table = '
    '
    -    code = ''
    -    str.lines.each_with_index do |line,index|
    -      table += "#{index+1}\n"
    -      code  += "#{line}"
    -    end
    -    table += "
    #{code}
    " - end -end diff --git a/plugins/raw.rb b/plugins/raw.rb deleted file mode 100644 index 4b002625..00000000 --- a/plugins/raw.rb +++ /dev/null @@ -1,40 +0,0 @@ -# Author: Brandon Mathis -# Description: Provides plugins with a method for wrapping and unwrapping input to prevent Markdown and Textile from parsing it. -# Purpose: This is useful for preventing Markdown and Textile from being too aggressive and incorrectly parsing in-line HTML. -module TemplateWrapper - # Wrap input with a
    - def safe_wrap(input) - "
    #{input}
    " - end - # This must be applied after the - def unwrap(input) - input.gsub /
    (.+?)<\/notextile><\/div>/m do - $1 - end - end -end - -# Author: phaer, https://github.com/phaer -# Source: https://gist.github.com/1020852 -# Description: Raw tag for jekyll. Keeps liquid from parsing text betweeen {% raw %} and {% endraw %} - -module Jekyll - class RawTag < Liquid::Block - def parse(tokens) - @nodelist ||= [] - @nodelist.clear - - while token = tokens.shift - if token =~ FullToken - if block_delimiter == $1 - end_tag - return - end - end - @nodelist << token if not token.empty? - end - end - end -end - -Liquid::Template.register_tag('raw', Jekyll::RawTag) diff --git a/plugins/render_partial.rb b/plugins/render_partial.rb deleted file mode 100644 index b6ebfe8b..00000000 --- a/plugins/render_partial.rb +++ /dev/null @@ -1,69 +0,0 @@ -# Title: Render Partial Tag for Jekyll -# Author: Brandon Mathis http://brandonmathis.com -# Description: Import files on your filesystem into any blog post and render them inline. -# Note: Paths are relative to the source directory, if you import a file with yaml front matter, the yaml will be stripped out. -# -# Syntax {% render_partial path/to/file %} -# -# Example 1: -# {% render_partial about/_bio.markdown %} -# -# This will import source/about/_bio.markdown and render it inline. -# In this example I used an underscore at the beginning of the filename to prevent Jekyll -# from generating an about/bio.html (Jekyll doesn't convert files beginning with underscores) -# -# Example 2: -# {% render_partial ../README.markdown %} -# -# You can use relative pathnames, to include files outside of the source directory. -# This might be useful if you want to have a page for a project's README without having -# to duplicated the contents -# -# - -require 'pathname' -require './plugins/octopress_filters' - -module Jekyll - - class RenderPartialTag < Liquid::Tag - include OctopressFilters - def initialize(tag_name, markup, tokens) - @file = nil - @raw = false - if markup =~ /^(\S+)\s?(\w+)?/ - @file = $1.strip - @raw = $2 == 'raw' - end - super - end - - def render(context) - file_dir = (context.registers[:site].source || 'source') - file_path = Pathname.new(file_dir).expand_path - file = file_path + @file - - unless file.file? - return "File #{file} could not be found" - end - - Dir.chdir(file_path) do - contents = file.read - if contents =~ /\A-{3}.+[^\A]-{3}\n(.+)/m - contents = $1.lstrip - end - contents = pre_filter(contents) - if @raw - contents - else - partial = Liquid::Template.parse(contents) - context.stack do - partial.render(context) - end - end - end - end - end -end - -Liquid::Template.register_tag('render_partial', Jekyll::RenderPartialTag) diff --git a/plugins/rubypants.rb b/plugins/rubypants.rb deleted file mode 100644 index e4f4502f..00000000 --- a/plugins/rubypants.rb +++ /dev/null @@ -1,489 +0,0 @@ -# -# = RubyPants -- SmartyPants ported to Ruby -# -# Ported by Christian Neukirchen -# Copyright (C) 2004 Christian Neukirchen -# -# Incooporates ideas, comments and documentation by Chad Miller -# Copyright (C) 2004 Chad Miller -# -# Original SmartyPants by John Gruber -# Copyright (C) 2003 John Gruber -# - -# -# = RubyPants -- SmartyPants ported to Ruby -# -# == Synopsis -# -# RubyPants is a Ruby port of the smart-quotes library SmartyPants. -# -# The original "SmartyPants" is a free web publishing plug-in for -# Movable Type, Blosxom, and BBEdit that easily translates plain ASCII -# punctuation characters into "smart" typographic punctuation HTML -# entities. -# -# -# == Description -# -# RubyPants can perform the following transformations: -# -# * Straight quotes (" and ') into "curly" quote -# HTML entities -# * Backticks-style quotes (``like this'') into "curly" quote -# HTML entities -# * Dashes (-- and ---) into en- and em-dash -# entities -# * Three consecutive dots (... or . . .) into an -# ellipsis entity -# -# This means you can write, edit, and save your posts using plain old -# ASCII straight quotes, plain dashes, and plain dots, but your -# published posts (and final HTML output) will appear with smart -# quotes, em-dashes, and proper ellipses. -# -# RubyPants does not modify characters within
    ,
    -# , ,  or
    -# 
    -  

    My Delicious Bookmarks »

    - -{% endif %} \ No newline at end of file diff --git a/source/_includes/asides/github.html b/source/_includes/asides/github.html deleted file mode 100644 index afde60a9..00000000 --- a/source/_includes/asides/github.html +++ /dev/null @@ -1,30 +0,0 @@ -{% if site.github_user %} -
    -

    GitHub Repos

    -
      -
    • Status updating...
    • -
    - {% if site.github_show_profile_link %} - @{{site.github_user}} on GitHub - {% endif %} - - -
    -{% endif %} diff --git a/source/_includes/asides/googleplus.html b/source/_includes/asides/googleplus.html deleted file mode 100644 index f95abdf8..00000000 --- a/source/_includes/asides/googleplus.html +++ /dev/null @@ -1,11 +0,0 @@ -{% if site.googleplus_user %} -
    -

    - - - Google+ - -

    -
    -{% endif %} - diff --git a/source/_includes/asides/pinboard.html b/source/_includes/asides/pinboard.html deleted file mode 100644 index a655132d..00000000 --- a/source/_includes/asides/pinboard.html +++ /dev/null @@ -1,19 +0,0 @@ -{% if site.pinboard_user %} -
    -

    My Pinboard

    -
      Fetching linkroll...
    -

    My Pinboard Bookmarks »

    -
    - -{% endif %} diff --git a/source/_includes/custom/after_footer.html b/source/_includes/custom/after_footer.html deleted file mode 100644 index da8f2085..00000000 --- a/source/_includes/custom/after_footer.html +++ /dev/null @@ -1,3 +0,0 @@ -{% comment %} - Add content to be output at the bottom of each page. (You might use this for analytics scripts, for example) -{% endcomment %} \ No newline at end of file diff --git a/source/_includes/custom/asides/about.html b/source/_includes/custom/asides/about.html deleted file mode 100644 index 59d309e4..00000000 --- a/source/_includes/custom/asides/about.html +++ /dev/null @@ -1,4 +0,0 @@ -
    -

    About Me

    -

    A little something about me.

    -
    diff --git a/source/_includes/custom/asides/popular.html b/source/_includes/custom/asides/popular.html deleted file mode 100644 index 274395b0..00000000 --- a/source/_includes/custom/asides/popular.html +++ /dev/null @@ -1,6 +0,0 @@ -
    -
    -

    Popular Posts

    - -
    -
    \ No newline at end of file diff --git a/source/_includes/custom/category_feed.xml b/source/_includes/custom/category_feed.xml deleted file mode 100644 index f47c5536..00000000 --- a/source/_includes/custom/category_feed.xml +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: nil ---- - - - - <![CDATA[{{ page.title }} | {{ site.title }}]]> - - - {{ site.time | date_to_xmlschema }} - {{ site.url }}/ - - - {% if site.email %}{% endif %} - - Octopress - - {% for post in site.categories[page.category] limit: 5 %} - - <![CDATA[{{ post.title | cdata_escape }}]]> - - {{ post.date | date_to_xmlschema }} - {{ site.url }}{{ post.id }} - - - {% endfor %} - diff --git a/source/_includes/disqus.html b/source/_includes/disqus.html deleted file mode 100644 index eb308779..00000000 --- a/source/_includes/disqus.html +++ /dev/null @@ -1,21 +0,0 @@ -{% comment %} Load script if disquss comments are enabled and `page.comments` is either empty (index) or set to true {% endcomment %} -{% if site.disqus_short_name and page.comments != false %} - -{% endif %} diff --git a/source/_includes/facebook_like.html b/source/_includes/facebook_like.html deleted file mode 100644 index 74f91307..00000000 --- a/source/_includes/facebook_like.html +++ /dev/null @@ -1,10 +0,0 @@ -{% if site.facebook_like %} -
    - -{% endif %} diff --git a/source/_includes/footer.html b/source/_includes/footer.html deleted file mode 100644 index 651b6aa3..00000000 --- a/source/_includes/footer.html +++ /dev/null @@ -1,9 +0,0 @@ -

    - Copyright © {{ site.time | date: "%Y" }} - {{ site.author }} - - Powered by Octopress - - {% if site.url == "http://brianarmstrong.org" %} - Theme by Brian Armstrong - {% else %} - Theme by Brian Armstrong - {% endif %} -

    diff --git a/source/_includes/google_analytics.html b/source/_includes/google_analytics.html deleted file mode 100644 index 4d4d5969..00000000 --- a/source/_includes/google_analytics.html +++ /dev/null @@ -1,13 +0,0 @@ -{% if site.google_analytics_tracking_id %} - -{% endif %} diff --git a/source/_includes/google_plus_one.html b/source/_includes/google_plus_one.html deleted file mode 100644 index b69ddaeb..00000000 --- a/source/_includes/google_plus_one.html +++ /dev/null @@ -1,9 +0,0 @@ -{% if site.google_plus_one %} - -{% endif %} diff --git a/source/_includes/post/author.html b/source/_includes/post/author.html deleted file mode 100644 index 83dd6a89..00000000 --- a/source/_includes/post/author.html +++ /dev/null @@ -1,8 +0,0 @@ -{% if post.author %} - {% assign author = post.author %} -{% elsif page.author %} - {% assign author = page.author %} -{% else %} - {% assign author = site.author %} -{% endif %} -{% if author %}{% endif %} diff --git a/source/_includes/post/categories.html b/source/_includes/post/categories.html deleted file mode 100644 index 4a98b29d..00000000 --- a/source/_includes/post/categories.html +++ /dev/null @@ -1,10 +0,0 @@ -{% capture category %}{% if post %}{{ post.categories | category_links | size }}{% else %}{{ page.categories | category_links | size }}{% endif %}{% endcapture %} -{% unless category == '0' %} - - {% if post %} - {{ post.categories | category_links }} - {% else %} - {{ page.categories | category_links }} - {% endif %} - -{% endunless %} diff --git a/source/_includes/post/date.html b/source/_includes/post/date.html deleted file mode 100644 index ecf1ad71..00000000 --- a/source/_includes/post/date.html +++ /dev/null @@ -1,15 +0,0 @@ -{% capture date %}{{ page.date }}{{ post.date }}{% endcapture %} -{% capture date_formatted %}{{ page.date_formatted }}{{ post.date_formatted }}{% endcapture %} -{% capture has_date %}{{ date | size }}{% endcapture %} - -{% capture updated %}{{ page.updated }}{{ post.updated }}{% endcapture %} -{% capture updated_formatted %}{{ page.updated_formatted }}{{ post.updated_formatted }}{% endcapture %} -{% capture was_updated %}{{ updated | size }}{% endcapture %} - -{% if has_date != '0' %} - {% capture time %}{% endcapture %} -{% endif %} - -{% if was_updated != '0' %} - {% capture updated %}{% endcapture %} -{% else %}{% assign updated = false %}{% endif %} \ No newline at end of file diff --git a/source/_includes/post/disqus_thread.html b/source/_includes/post/disqus_thread.html deleted file mode 100644 index b1acd8cc..00000000 --- a/source/_includes/post/disqus_thread.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/source/_layouts/category_index.html b/source/_layouts/category_index.html deleted file mode 100644 index 85a63072..00000000 --- a/source/_layouts/category_index.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -footer: false ---- - -
    -{% for post in site.categories[page.category] %} -{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %} -{% unless year == this_year %} - {% assign year = this_year %} -

    {{ year }}

    -{% endunless %} -
    - {% include archive_post.html %} -
    -{% endfor %} -
    diff --git a/source/_posts/2012-06-06-CVE-2012-267.markdown b/source/_posts/2012-06-06-CVE-2012-267.markdown deleted file mode 100644 index 9b67a406..00000000 --- a/source/_posts/2012-06-06-CVE-2012-267.markdown +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: post -title: "CVE-2012-267: rack-cache Rubygem Sensitive HTTP Header Caching Weakness" -date: 2012-06-06 -comments: false -categories: [rack-cache] ---- - - -### CVE ID - -* [CVE-2012-267](http://osvdb.org/83077) - - - -### OVSBD ID - -* [OSVDB-83077](http://osvdb.org/83077) - - -### GEM NAME - -* rack-cache - - -### PATCHED VERSIONS - - -* `>= 1.2` - - -### DESCRIPTION - -Rack::Cache (rack-cache) contains a flaw related to the rubygem caching -sensitive HTTP headers. This will result in a weakness that may make it -easier for an attacker to gain access to a user's session via a specially -crafted header. - diff --git a/source/assets/.DS_Store b/source/assets/.DS_Store deleted file mode 100644 index 2160039204b29fa5beb6c34d7408103039c08515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOH0E*5T0$TCO)7S(c|K|O6$AeAru9VLJK{pXhNzj)NE-|bEwsL^56J#{5^jA zP^`5#5z(D6`%QLc66V{mn;{}r8-x|2A`v-Ii8&X;7b5*qCnRTP3P7fw5mQ2a@~Ic3 z6VZ0!H!>jC&ZU3^u7p0UU)&42B7pZf=yf}BQZB!+T)r?fJLfp_&f;0K6NMtJi9r;` zr}ef->z%L_`2BNbCw?-BYkpsOPW+?|kFpy=bYY*F=w>HO+84!@;c#cSQsULEQHc-t zclSzsXR|sQxvt|DpPc2jjf3NcKfD{=KWGvezBeUH2H)Tj#uxS6*85RcMAz`j%tg9F zy%8#2$Jd%t3zZAHp;nOoc-?zjCB9w#j=HB-^{M(dt}I#xECc_S0kelX3;&k_Te)Sx zGBAY!xj%5IM9*NRQEeR2%C<6XzMs zH0pF>ruksz&CGNtOuZe?=PI0-r_qj<0n5NR19^R0l;{7^^!|T5$=+E8ECYXv0aiGy zAJ$NkIa?=+lV>f5UP7hFxJ=`F3Ji4=BUT>8t57AF=h6Ur1~ZMAf!H4bMS~qI13${Z ED;B1TG5`Po diff --git a/source/assets/bootstrap/.DS_Store b/source/assets/bootstrap/.DS_Store deleted file mode 100644 index 99c02a3509da060801968c842a0cbcf5514c47f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~&r8EF6vvZoYUdB=Mf4av580GW2Odh9;8Eyc2PfKEafQ;1wR4ABttbB*{~Z4w z-%C<(y0eJ9K=OUbdr6uPG(Q+)+?|IV#%#uz1sRp2u_9sfN>|MUqjDT0od&TCp!Ob2 zjqk4uetVtWv6Q93;_LUvQJS^eAG}s?tgUZY)~2;R9z{tg7p|NqVS43F`@o-F zD?9VEdFuKz<+=2;33!w}lrjc;Y@$a|m`!f%y*%&sIxW#ZE?Oc#?VYql_o!bK&8F3~ z->lt(!?TN_pFb7PFB&2T#wzU?t>hI9vxY}+mc%l7fR-w{iXtTfM1Tko0V1FYm=nU< zA|OP72oQm91aN;4kWn3@rB=0dK!Mk1^fyp3fsJnoRAJOHT51IkB(A%H>aN^8F}Usy z?ZU)4MoX=_JL76*7{|<9Jzlt)9omHoXWY?BB@rM3%LMAWYUBBT4!_LGNB(jbsu2Mq z@XrYF#=sl6uqbo3{#YKKwF2@jWK0-Wq5%o)rAq)*a39%MPVE;fMn;YR diff --git a/source/assets/jwplayer/glow/controlbar/background.png b/source/assets/jwplayer/glow/controlbar/background.png deleted file mode 100644 index c2824cc432cdd71f8fdb98238c1ae77a1104628e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs+A8<3p*@b5ezC0XJcQ4*Y=R#Ki=l*-_klAn~S z;F+74o*I;zm{M7IGSvpCNZ-@NF~s6@a$-V)#bF1QgqfDbYRsjg|9*eZ4|%xaP~w^o m|NsAAe6Tq>F)K?ekc&|;E}+;`V{ZgdD}$%2pUXO@geCwoOD@L% diff --git a/source/assets/jwplayer/glow/controlbar/blankButton.png b/source/assets/jwplayer/glow/controlbar/blankButton.png deleted file mode 100644 index 010159f3eb743d6e22d5c54b91c09ca40d8aaa39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)r!3HF^_}7#HDM?Qk$B>F!Zx1r^0(plNelM@% eXXjyH_#wpol!0;1`W@*&VFpiEKbLh*2~7a7)DzqQ diff --git a/source/assets/jwplayer/glow/controlbar/divider.png b/source/assets/jwplayer/glow/controlbar/divider.png deleted file mode 100644 index 77cd829a4b5ef36bbc68a9182d397e04db6e4792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!2%=?a-4evq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6-juyIEHY@CMQ}PHk!=X@^516zvRnPPcblT{wuv)<<&_x Ppc)2GS3j3^P66?0001zNkl6?0006*Nkl264`4BoI2aRR!sNov zz`(}8!N9=6z`(#jfB_N)^7V;%VlFpua^R$I@<~adee!{2)Pd9 z>^C6D5DiY?6}*O*puxSQYw|CTrLY<|AuA45!{CxaFtE;Td%V}Y29@=falq4R_gWox5;Gk zz1QnWp-_-aCL>q|Tls{6HyOw_a%T?LQ3Q5aeG4PQ8@NK8l5fZGA@Q$w!`S}R=oOZ=9@p0y1Ht`O}WDJMHukChQ z?2^f(U_IanRp41U-@Vrv7~n|m!71bhgTaqht0h*v#`ZZ0|D2$?y9>b%cXb9In$4zI z8HOROeRSTAoX$;U_2Zy78V#{aBoe~+H{IQySbdH##yTITQYkS_^Vd#vT^CK$gcotp z-3`}1LY9MVJb*ojTkaIfDxOz9UMCT@Ys>Ob47v+(Zlk*NW8S%q?!UM!|5fatTt5L! Wu9z}q${(fg`vovQBD>vg^sSfI>s5DMm$hv>`<1w^YhuvS<#I8A)ijO7&aSE| zey>c^BxbkUy- z=n$|-1|iTXG?k=HNSdbP@8$0NzVf^98m^@kaq5FF@7>*dpWp9(@BMy{vFrA~n{<`Q zrfEtxYt7*cNiwel7l4wDEVx0vDH@P236%vogfVYAX+TB{%YbwNRD@Y_LJH)foLieh#$%9&W{GkB@H^i^UtVEHfBJ&L%3BN29#;dU@*9r$z)hIn>_>XcDwB0 z;NU(sk~N!64X1>K!(mn^6!@GLWvg!08Ab4#f8Z19*re|qfIcuaHRT2HCC|8{qazjw z1b*c6`9!r^os7j|JOSDE_BQi+y;*Y3sxia*V8MAR*SYmnDwUx`8i!Y9z}}Y2Wqw+A zv7ui8d!r}{2bbV^U}qnng zE}GPKt6%o`K|?o>N{_|0_Z4686?0007CNkl(kA%!W?Vx-)PQ9>AMkulK#xYKbZs3<}E2 z8D8Mb?0mm*QjmeGvUA{f;RSqdHk+afg+hXQ1&`qtJK%t2HEh!Hw!wL>_DQ{7mr;>O zL{K4k2hYF*mtj*qAmf76Icade-EM!0#bT05r6iqBOD2<%TCMhr;j?V{Dpr$J;%q#pK`g}Q9hqf7K_Cn)oN8#(P&hBKA)hjvK!Wuw$IFdJ7AY{@N#A!E0v0< z!r`!Fv)QlwU~hBICNNBU6*=Jw9Kh>xxh$hlFX0|f;fg+|@j(pZ!&V;oEw;v6DwQN2 zk4rL{l;LX~YF`O5GiZE`d|fOtY=?K=VIU9?%%CY@3JV z4m^azL?ZFt?RJZ%X~GNHI(|lz=Vsv{+2HOp*yG*kn9%pJb)&(=@Upndd3z`JDt0000Z>Q|#Vo=~<6R!C$9;PA1)G71p_B*xT0r{JN zM*B^in^wMlaaicdO+0re&Wx-n>s+%*ev^rF8_&(3{6c)?^VUzdW_%#X`}vKdWcU(R QVW7DTp00i_>zopr0QFBdL;wH) diff --git a/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png deleted file mode 100644 index 409d89d29a33e6bb6d80355102cc8cbf30980bde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmV;r0Y(0aP)At56op&03B^|Ephbj&EoA9dQnDm-_ADXfSL82b&X9lR;^LAei;Ihki*S2{^TMOi zq6sP#4}84G&AlAGxp~RmP5)maa=(vr78Euw~?u4WPm;xfR_Ud zm}4lzCPpTB1|#qW-oXdgYR_vU=9(uN@*X_!*S-P^*uVuISAA~-i@AN)c8>a2G&9+v zDR8#ittg;y$FGY*sM=%7Rz~5{(qDYcNphS=PzAwxjvbKAyS&!`)gD()Q z*K1LvX(~{v$ATab=8jq0JJoCgzCpBFtwfP!nLwEyi=s%FJ85F}#6kze%jHrOd7cZD z>#;bFg}D>fHa9EFQb=W{#cF1)+E^5YkgAPZtW6v11F~2wgj55f#o7!=ee~z^xsYn~ zwOE_cuRqkY*-R8+7zz~XF~@Oa-$UK_xN==rJkOKes*bDO-nMPAEK6#~)g=$&E4^Z_ k|MG1AS#bUjo|`VEAFXAB6%Vs^kpKVy07*qoM6N<$f}~T*6aWAK diff --git a/source/assets/jwplayer/glow/controlbar/playButton.png b/source/assets/jwplayer/glow/controlbar/playButton.png deleted file mode 100644 index f8d9a0079af73379b28623ec23b89a45760675c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmVW5*tlL}qe;Y)GbwpWs=X&M|= z*R{`?BtunIILh-p5RuQFA1sOjp9;eemSt^2V(h#;&#^B_61c7_Mq=(lvSe8XQ4j<$ z3}YMVxf{urrYWK*f^FO4&4V*ZA#f$7>j7*~O3eRsh#VB4 z0yR_docu>ZB|&N!f)N;JBRr=8rL@vsgN9)m7GRYv!7NOGp087g&`!e!LCH6ofpyph zGaSGk7-5w|M?nY5j#?|(3~CsIW!P;r8U*jnW;1}_b~u53*n~xx6jh4APFkpiDcFF+ zYPCv2tyX(M=r!gq;23sbjk_@1b|8l-V2E3^1*he5nWQR}$|r)K@ZS~KxV7uNzIy4# zX*X;ROmJ2x6sVO_sq~6UZ@8@{Zt0k)uH7&_hwZ|7KA)%W6pO`&dcA(g?KFV4>#$rd zN8bqsgXC~H?xWGDk&lE1HI# zI@F0of?}~4`FuXI+wJ6XxgOK$^bsHG1u$?oRAQ}qdR&>!X0li;Z-GGIvc=;{D?M9% rco6sh71R66v+th;y?^lhkA99XpkgF1bCqS*00000NkvXXu0mjf9wPgo diff --git a/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png deleted file mode 100644 index 73b371abbcac1512d073d3c540884b39853a5170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs+A8<3p*@b5ezW$x+X7-DfcIYENeS;oN1+WNkl zn_~BzId{w#iF9>z{895#l$Mqb%u7j3PfuU4t}|qNl?YE514EV*%Sy#VQ;dN|FnGH9 KxvX*mdyE3=gzFY}%KuYcKYM-B#61JM-V{-K`g{VK?Jd}k#Rrjz(R@$YqR9RV?I-Sl5s2+ z%RjL1JH1l8Z5zQ)gui25SGwf#WmyC!=O@hbOd3&)DUhdWQV=;!Q)yg236v-( O0000I*v2b^k*2QCaQ`4kWEBH1!V+-L=Z#ZMi6EpSc_TACKnNi5VexPhKHFF zx^W?G1a}Wtt_3%4Tx1&;u0&8l6gho&I5%GMZVXe4pgHj4J}&Qm-+AZUd*94a{AWQ# zv(x-dQ4Jh3p&i;pE@UA)aDaK>wJOa6 zNg|O5A$G>&@oS7>uss@$USRaH!77)?W)^pFjW2`8olb|Wh{xju;XUy@7z~R2e*dd@ zu2!pW_zTv!2X>&%@FzIgbpvd*+ikKUl}Zs}52A*gGYsQfFc_p#spKc33$irR;%;uB zztw7y6`4$CU%cDx8gee1&C(|XH`^qx$h_HXk`;+WLNrzv&*gIYdoGvTpDz>&39GWG zYW`l=b;{@S)Mzw*5{*U)v0Ja#KZL_!N~hDGA^g$n^-?mK+?;Btdbbpd#dnoTMTgNB zh>;)^3K7B&o+9(0+=@cjYAdStxrYzWGY~-I-qvb0^7(v(xCb`miB%sW^$B%>br!h` z?#E)WmmZJsq>J4AmERwK_1&_-3tgPqc^=(7zj%O)OMNTyLMQiP*_5F}b>$xBCt+t4 j8UE?-Z92oF_-Eq>i1mB;XZF-300000NkvXXu0mjfvtTD6 diff --git a/source/assets/jwplayer/glow/display/background.png b/source/assets/jwplayer/glow/display/background.png deleted file mode 100644 index 391152f5e2f24e413f03ecef69ed2e88030a1f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmV;f0#W^mP)40?p67Wi=Xpjj(7-?hr8gmN!O+;qM2uX(UB}(Pp+ST~a5L?f2=*_{4co78 z!5dk@d1^Q&_5XNr{JeL%r`|dkVEN0DxcA|3IDXCN^V?>#xgHJ&{T;*FVSoiD*j`~j zQ>oNtyWQUQ`~7*nUf*W3*>yA;>F*TQjJ3l63rw*6iT=P3yWQ@Jt23EQ^nSmu-Z>ax zfeAJkAMY$~J+1~$7!HS*UazMZf(0hnV1yOm6P|ZG0^{*m$B9hA1RIR70<3TqR;$&m z+wCgGV1p4>fE9MO>2!MSbUKPL*kF8skH_O>Fc|3Vc3Uw98;lR|>2$)CIJa6Y#TaZb zK7pIfCUpYbXf&9U;Cj8zoCMcuHRdF^TCFlC!IesdISDS8%gjk|sZ?U_8?1`OB6AX4 zC={5J;Cw#MoCN1`Ip!o-(=_HJIGfEfC&8IahB*mNr_;CQPJ*3ICvy_)a5$KgV7uMUoCMo!Hs)Tw!)L42 zsu+U}#-~pY?_0NSu~-yiu)+BBajB+hSF_oy7=sN)SRbDcFPF=k$z)QD!3HC&j}OFm zyWKey3h8WEm|%ku)~6AG^?H51?`RjJ(Wn@Ll?YB8EI( zjq%_SSS%J8fx#WeV}Aa}hqAC6U$9oJ8Ec0@jPZPBPz&2R{=?p(uMBGaccXZ}0X2s+ UFwXxpS^xk507*qoM6N<$f{ThjaR2}S diff --git a/source/assets/jwplayer/glow/display/bufferIcon.png b/source/assets/jwplayer/glow/display/bufferIcon.png deleted file mode 100644 index a3819c1ef199e6a2d583e777e3d2cc9d7411c7dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmV-01JC@4P)?y;sBd%rVy^WSc}4ZkOKv9mlWvp*~b#1RTk?~R2kGj12jp4zB2o` zN{Xgn6F3x7p}_ax7@U%0`kL&M;}}yl!3O80&$rhCpFtap0vgZTY-_Qv&#{I|Z#Ttc zlw-(#ps-oiW}h0z*u2M31=8_ifIf?C1Mh!qEqR^H{G_N1xC!!LkL2mgh$@Ik7Y{KE zf$&|mSf2tbpbnmqI=D|UyA*AaWy{03P*aTO(YzAjk?JQyv5&z4I07f+BX|Rza6R4O zgQk}K1K^TrB}+>iWI>73q{d^3ep}pk)w`!X ziaDXkDaPaRceK9(Wrm_9E117^8{F%3I)A|5;c)meyr$n>8^H+cbF{x!Q?PtU|K^6G z$?(gl71Hua>l@nMfk)sDa3nHnQb|jGS;D-%!0{6^bRCq$zF79bWR|5QHy+QyQ}BS< zc{jc!@jeT`I>>E2lHXe1Vp}@)aMJ|`ua^@}=v%|$fr9wJu`xD@^qnt+ZEIN`8u7Op zi3*PyHb=7brG;oEzXr~k_XV&Is$`!&UjfllncbtXhoA)xNsGQhbg5DOV_F(y`8Hql zdc7arZZ`-C&qE*Evg|vR#8mwPQ3Z!WtRVEoD=RHnhqO*w$=bDDmV{{8jfeVzf#lXw ueUm62Hp-^ULv7l$Y15`nn>KA5V*dc!CLt7N=?h^10000^XU=;OqaSX}0_x6TwSF-_w!^4yr zd!@r4MX?C3H?fVZQe6Kq&e7%1?39Z}!E5x=g0er^apZDtsdc#&p$Ies2og@3_@0`5 zBT?dtMPGN_tGbf=-@W>e^876-wA%LCYU%MJ>Gd4{Y_zuJMw_1he0{b3_X!V{W%6~J zF6lL2`?~7uC7vdScW0u1`-O!^tiQKeQ&`LV+4)M(_pE|7-x6xGeqG*Et{oG4_0=*l z*NG)Y75SHo^(^|5Ghbi%dT#c#FS;}4t2W(NweXyD*4Ldq{_9~ybAI`0`99a$JT8A( z#4jIS%<$9loZKGG)0?^@Gm9(lw_QHyHt+fVMRWPhx)$wluU@L-ts3)R_+K^9yMbkPQfSuE1Jt1w|22L~um#h3JU*Kzy9s zDK0pWs4+vBdvkv9ZwF2>A2UxxL_|bHL_|b%4*;g<{of2epU<#6olZ5;oA!f`$0IH~ z91ca%tG0vp`#ruXD|*px@NT!mwYJ->A$rzk@Mg2Yt=8+cB{H-ayjrdBgG`ay7k#;0 z;(=zOXS^) zJ{%6=X028Wi9`b8(cTm{{A@c5f-0Su5 zXt`Vtkw`=i&5FE#sk_}Sep;zix*S>*sq+!i>2z>!g+c+bSWFHz40?p67Wi=Xpjj(7-?hr8gmN!O+;qM2uX(UB}(Pp+ST~a5L?f2=*_{4co78 z!5dk@d1^Q&_5XNr{JeL%r`|dkVEN0DxcA|3IDXCN^V?>#xgHJ&{T;*FVSoiD*j`~j zQ>oNtyWQUQ`~7*nUf*W3*>yA;>F*TQjJ3l63rw*6iT=P3yWQ@Jt23EQ^nSmu-Z>ax zfeAJkAMY$~J+1~$7!HS*UazMZf(0hnV1yOm6P|ZG0^{*m$B9hA1RIR70<3TqR;$&m z+wCgGV1p4>fE9MO>2!MSbUKPL*kF8skH_O>Fc|3Vc3Uw98;lR|>2$)CIJa6Y#TaZb zK7pIfCUpYbXf&9U;Cj8zoCMcuHRdF^TCFlC!IesdISDS8%gjk|sZ?U_8?1`OB6AX4 zC={5J;Cw#MoCN1`Ip!o-(=_HJIGfEfC&8IahB*mNr_;CQPJ*3ICvy_)a5$KgV7uMUoCMo!Hs)Tw!)L42 zsu+U}#-~pY?_0NSu~-yiu)+BBajB+hSF_oy7=sN)SRbDcFPF=k$z)QD!3HC&j}OFm zyWKey3h8WEm|%ku)~6AG^?H51?`RjJ(Wn@Ll?YB8EI( zjq%_SSS%J8fx#WeV}Aa}hqAC6U$9oJ8Ec0@jPZPBPz&2R{=?p(uMBGaccXZ}0X2s+ UFwXxpS^xk507*qoM6N<$f{ThjaR2}S diff --git a/source/assets/jwplayer/glow/glow.xml b/source/assets/jwplayer/glow/glow.xml deleted file mode 100644 index 71bdced0..00000000 --- a/source/assets/jwplayer/glow/glow.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -
    {% endunless %} diff --git a/_includes/twitter_sharing.html b/_includes/twitter_sharing.html deleted file mode 100644 index 0b76f93f..00000000 --- a/_includes/twitter_sharing.html +++ /dev/null @@ -1,16 +0,0 @@ -{% if site.twitter_follow_button or site.twitter_tweet_button %} - - -{% endif %} diff --git a/_layouts/post.html b/_layouts/post.html index 53ebbcd9..c9b495e9 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -28,13 +28,6 @@ {% endif %}

    - - {% if site.disqus_short_name and page.comments != false %} -
    -

    Comments

    -
    {% include post/disqus_thread.html %}
    -
    - {% endif %}
    {% if page.sidebar != false and site.sidebar_posn != "left" %} diff --git a/assets/jwplayer/glow/controlbar/background.png b/assets/jwplayer/glow/controlbar/background.png deleted file mode 100644 index c2824cc432cdd71f8fdb98238c1ae77a1104628e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs+A8<3p*@b5ezC0XJcQ4*Y=R#Ki=l*-_klAn~S z;F+74o*I;zm{M7IGSvpCNZ-@NF~s6@a$-V)#bF1QgqfDbYRsjg|9*eZ4|%xaP~w^o m|NsAAe6Tq>F)K?ekc&|;E}+;`V{ZgdD}$%2pUXO@geCwoOD@L% diff --git a/assets/jwplayer/glow/controlbar/blankButton.png b/assets/jwplayer/glow/controlbar/blankButton.png deleted file mode 100644 index 010159f3eb743d6e22d5c54b91c09ca40d8aaa39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)r!3HF^_}7#HDM?Qk$B>F!Zx1r^0(plNelM@% eXXjyH_#wpol!0;1`W@*&VFpiEKbLh*2~7a7)DzqQ diff --git a/assets/jwplayer/glow/controlbar/divider.png b/assets/jwplayer/glow/controlbar/divider.png deleted file mode 100644 index 77cd829a4b5ef36bbc68a9182d397e04db6e4792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!2%=?a-4evq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6-juyIEHY@CMQ}PHk!=X@^516zvRnPPcblT{wuv)<<&_x Ppc)2GS3j3^P66?0001zNkl6?0006*Nkl264`4BoI2aRR!sNov zz`(}8!N9=6z`(#jfB_N)^7V;%VlFpua^R$I@<~adee!{2)Pd9 z>^C6D5DiY?6}*O*puxSQYw|CTrLY<|AuA45!{CxaFtE;Td%V}Y29@=falq4R_gWox5;Gk zz1QnWp-_-aCL>q|Tls{6HyOw_a%T?LQ3Q5aeG4PQ8@NK8l5fZGA@Q$w!`S}R=oOZ=9@p0y1Ht`O}WDJMHukChQ z?2^f(U_IanRp41U-@Vrv7~n|m!71bhgTaqht0h*v#`ZZ0|D2$?y9>b%cXb9In$4zI z8HOROeRSTAoX$;U_2Zy78V#{aBoe~+H{IQySbdH##yTITQYkS_^Vd#vT^CK$gcotp z-3`}1LY9MVJb*ojTkaIfDxOz9UMCT@Ys>Ob47v+(Zlk*NW8S%q?!UM!|5fatTt5L! Wu9z}q${(fg`vovQBD>vg^sSfI>s5DMm$hv>`<1w^YhuvS<#I8A)ijO7&aSE| zey>c^BxbkUy- z=n$|-1|iTXG?k=HNSdbP@8$0NzVf^98m^@kaq5FF@7>*dpWp9(@BMy{vFrA~n{<`Q zrfEtxYt7*cNiwel7l4wDEVx0vDH@P236%vogfVYAX+TB{%YbwNRD@Y_LJH)foLieh#$%9&W{GkB@H^i^UtVEHfBJ&L%3BN29#;dU@*9r$z)hIn>_>XcDwB0 z;NU(sk~N!64X1>K!(mn^6!@GLWvg!08Ab4#f8Z19*re|qfIcuaHRT2HCC|8{qazjw z1b*c6`9!r^os7j|JOSDE_BQi+y;*Y3sxia*V8MAR*SYmnDwUx`8i!Y9z}}Y2Wqw+A zv7ui8d!r}{2bbV^U}qnng zE}GPKt6%o`K|?o>N{_|0_Z4686?0007CNkl(kA%!W?Vx-)PQ9>AMkulK#xYKbZs3<}E2 z8D8Mb?0mm*QjmeGvUA{f;RSqdHk+afg+hXQ1&`qtJK%t2HEh!Hw!wL>_DQ{7mr;>O zL{K4k2hYF*mtj*qAmf76Icade-EM!0#bT05r6iqBOD2<%TCMhr;j?V{Dpr$J;%q#pK`g}Q9hqf7K_Cn)oN8#(P&hBKA)hjvK!Wuw$IFdJ7AY{@N#A!E0v0< z!r`!Fv)QlwU~hBICNNBU6*=Jw9Kh>xxh$hlFX0|f;fg+|@j(pZ!&V;oEw;v6DwQN2 zk4rL{l;LX~YF`O5GiZE`d|fOtY=?K=VIU9?%%CY@3JV z4m^azL?ZFt?RJZ%X~GNHI(|lz=Vsv{+2HOp*yG*kn9%pJb)&(=@Upndd3z`JDt0000Z>Q|#Vo=~<6R!C$9;PA1)G71p_B*xT0r{JN zM*B^in^wMlaaicdO+0re&Wx-n>s+%*ev^rF8_&(3{6c)?^VUzdW_%#X`}vKdWcU(R QVW7DTp00i_>zopr0QFBdL;wH) diff --git a/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/assets/jwplayer/glow/controlbar/pauseButtonOver.png deleted file mode 100644 index 409d89d29a33e6bb6d80355102cc8cbf30980bde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmV;r0Y(0aP)At56op&03B^|Ephbj&EoA9dQnDm-_ADXfSL82b&X9lR;^LAei;Ihki*S2{^TMOi zq6sP#4}84G&AlAGxp~RmP5)maa=(vr78Euw~?u4WPm;xfR_Ud zm}4lzCPpTB1|#qW-oXdgYR_vU=9(uN@*X_!*S-P^*uVuISAA~-i@AN)c8>a2G&9+v zDR8#ittg;y$FGY*sM=%7Rz~5{(qDYcNphS=PzAwxjvbKAyS&!`)gD()Q z*K1LvX(~{v$ATab=8jq0JJoCgzCpBFtwfP!nLwEyi=s%FJ85F}#6kze%jHrOd7cZD z>#;bFg}D>fHa9EFQb=W{#cF1)+E^5YkgAPZtW6v11F~2wgj55f#o7!=ee~z^xsYn~ zwOE_cuRqkY*-R8+7zz~XF~@Oa-$UK_xN==rJkOKes*bDO-nMPAEK6#~)g=$&E4^Z_ k|MG1AS#bUjo|`VEAFXAB6%Vs^kpKVy07*qoM6N<$f}~T*6aWAK diff --git a/assets/jwplayer/glow/controlbar/playButton.png b/assets/jwplayer/glow/controlbar/playButton.png deleted file mode 100644 index f8d9a0079af73379b28623ec23b89a45760675c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmVW5*tlL}qe;Y)GbwpWs=X&M|= z*R{`?BtunIILh-p5RuQFA1sOjp9;eemSt^2V(h#;&#^B_61c7_Mq=(lvSe8XQ4j<$ z3}YMVxf{urrYWK*f^FO4&4V*ZA#f$7>j7*~O3eRsh#VB4 z0yR_docu>ZB|&N!f)N;JBRr=8rL@vsgN9)m7GRYv!7NOGp087g&`!e!LCH6ofpyph zGaSGk7-5w|M?nY5j#?|(3~CsIW!P;r8U*jnW;1}_b~u53*n~xx6jh4APFkpiDcFF+ zYPCv2tyX(M=r!gq;23sbjk_@1b|8l-V2E3^1*he5nWQR}$|r)K@ZS~KxV7uNzIy4# zX*X;ROmJ2x6sVO_sq~6UZ@8@{Zt0k)uH7&_hwZ|7KA)%W6pO`&dcA(g?KFV4>#$rd zN8bqsgXC~H?xWGDk&lE1HI# zI@F0of?}~4`FuXI+wJ6XxgOK$^bsHG1u$?oRAQ}qdR&>!X0li;Z-GGIvc=;{D?M9% rco6sh71R66v+th;y?^lhkA99XpkgF1bCqS*00000NkvXXu0mjf9wPgo diff --git a/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/assets/jwplayer/glow/controlbar/timeSliderBuffer.png deleted file mode 100644 index 73b371abbcac1512d073d3c540884b39853a5170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs+A8<3p*@b5ezW$x+X7-DfcIYENeS;oN1+WNkl zn_~BzId{w#iF9>z{895#l$Mqb%u7j3PfuU4t}|qNl?YE514EV*%Sy#VQ;dN|FnGH9 KxvX*mdyE3=gzFY}%KuYcKYM-B#61JM-V{-K`g{VK?Jd}k#Rrjz(R@$YqR9RV?I-Sl5s2+ z%RjL1JH1l8Z5zQ)gui25SGwf#WmyC!=O@hbOd3&)DUhdWQV=;!Q)yg236v-( O0000I*v2b^k*2QCaQ`4kWEBH1!V+-L=Z#ZMi6EpSc_TACKnNi5VexPhKHFF zx^W?G1a}Wtt_3%4Tx1&;u0&8l6gho&I5%GMZVXe4pgHj4J}&Qm-+AZUd*94a{AWQ# zv(x-dQ4Jh3p&i;pE@UA)aDaK>wJOa6 zNg|O5A$G>&@oS7>uss@$USRaH!77)?W)^pFjW2`8olb|Wh{xju;XUy@7z~R2e*dd@ zu2!pW_zTv!2X>&%@FzIgbpvd*+ikKUl}Zs}52A*gGYsQfFc_p#spKc33$irR;%;uB zztw7y6`4$CU%cDx8gee1&C(|XH`^qx$h_HXk`;+WLNrzv&*gIYdoGvTpDz>&39GWG zYW`l=b;{@S)Mzw*5{*U)v0Ja#KZL_!N~hDGA^g$n^-?mK+?;Btdbbpd#dnoTMTgNB zh>;)^3K7B&o+9(0+=@cjYAdStxrYzWGY~-I-qvb0^7(v(xCb`miB%sW^$B%>br!h` z?#E)WmmZJsq>J4AmERwK_1&_-3tgPqc^=(7zj%O)OMNTyLMQiP*_5F}b>$xBCt+t4 j8UE?-Z92oF_-Eq>i1mB;XZF-300000NkvXXu0mjfvtTD6 diff --git a/assets/jwplayer/glow/display/background.png b/assets/jwplayer/glow/display/background.png deleted file mode 100644 index 391152f5e2f24e413f03ecef69ed2e88030a1f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmV;f0#W^mP)40?p67Wi=Xpjj(7-?hr8gmN!O+;qM2uX(UB}(Pp+ST~a5L?f2=*_{4co78 z!5dk@d1^Q&_5XNr{JeL%r`|dkVEN0DxcA|3IDXCN^V?>#xgHJ&{T;*FVSoiD*j`~j zQ>oNtyWQUQ`~7*nUf*W3*>yA;>F*TQjJ3l63rw*6iT=P3yWQ@Jt23EQ^nSmu-Z>ax zfeAJkAMY$~J+1~$7!HS*UazMZf(0hnV1yOm6P|ZG0^{*m$B9hA1RIR70<3TqR;$&m z+wCgGV1p4>fE9MO>2!MSbUKPL*kF8skH_O>Fc|3Vc3Uw98;lR|>2$)CIJa6Y#TaZb zK7pIfCUpYbXf&9U;Cj8zoCMcuHRdF^TCFlC!IesdISDS8%gjk|sZ?U_8?1`OB6AX4 zC={5J;Cw#MoCN1`Ip!o-(=_HJIGfEfC&8IahB*mNr_;CQPJ*3ICvy_)a5$KgV7uMUoCMo!Hs)Tw!)L42 zsu+U}#-~pY?_0NSu~-yiu)+BBajB+hSF_oy7=sN)SRbDcFPF=k$z)QD!3HC&j}OFm zyWKey3h8WEm|%ku)~6AG^?H51?`RjJ(Wn@Ll?YB8EI( zjq%_SSS%J8fx#WeV}Aa}hqAC6U$9oJ8Ec0@jPZPBPz&2R{=?p(uMBGaccXZ}0X2s+ UFwXxpS^xk507*qoM6N<$f{ThjaR2}S diff --git a/assets/jwplayer/glow/display/bufferIcon.png b/assets/jwplayer/glow/display/bufferIcon.png deleted file mode 100644 index a3819c1ef199e6a2d583e777e3d2cc9d7411c7dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmV-01JC@4P)?y;sBd%rVy^WSc}4ZkOKv9mlWvp*~b#1RTk?~R2kGj12jp4zB2o` zN{Xgn6F3x7p}_ax7@U%0`kL&M;}}yl!3O80&$rhCpFtap0vgZTY-_Qv&#{I|Z#Ttc zlw-(#ps-oiW}h0z*u2M31=8_ifIf?C1Mh!qEqR^H{G_N1xC!!LkL2mgh$@Ik7Y{KE zf$&|mSf2tbpbnmqI=D|UyA*AaWy{03P*aTO(YzAjk?JQyv5&z4I07f+BX|Rza6R4O zgQk}K1K^TrB}+>iWI>73q{d^3ep}pk)w`!X ziaDXkDaPaRceK9(Wrm_9E117^8{F%3I)A|5;c)meyr$n>8^H+cbF{x!Q?PtU|K^6G z$?(gl71Hua>l@nMfk)sDa3nHnQb|jGS;D-%!0{6^bRCq$zF79bWR|5QHy+QyQ}BS< zc{jc!@jeT`I>>E2lHXe1Vp}@)aMJ|`ua^@}=v%|$fr9wJu`xD@^qnt+ZEIN`8u7Op zi3*PyHb=7brG;oEzXr~k_XV&Is$`!&UjfllncbtXhoA)xNsGQhbg5DOV_F(y`8Hql zdc7arZZ`-C&qE*Evg|vR#8mwPQ3Z!WtRVEoD=RHnhqO*w$=bDDmV{{8jfeVzf#lXw ueUm62Hp-^ULv7l$Y15`nn>KA5V*dc!CLt7N=?h^10000^XU=;OqaSX}0_x6TwSF-_w!^4yr zd!@r4MX?C3H?fVZQe6Kq&e7%1?39Z}!E5x=g0er^apZDtsdc#&p$Ies2og@3_@0`5 zBT?dtMPGN_tGbf=-@W>e^876-wA%LCYU%MJ>Gd4{Y_zuJMw_1he0{b3_X!V{W%6~J zF6lL2`?~7uC7vdScW0u1`-O!^tiQKeQ&`LV+4)M(_pE|7-x6xGeqG*Et{oG4_0=*l z*NG)Y75SHo^(^|5Ghbi%dT#c#FS;}4t2W(NweXyD*4Ldq{_9~ybAI`0`99a$JT8A( z#4jIS%<$9loZKGG)0?^@Gm9(lw_QHyHt+fVMRWPhx)$wluU@L-ts3)R_+K^9yMbkPQfSuE1Jt1w|22L~um#h3JU*Kzy9s zDK0pWs4+vBdvkv9ZwF2>A2UxxL_|bHL_|b%4*;g<{of2epU<#6olZ5;oA!f`$0IH~ z91ca%tG0vp`#ruXD|*px@NT!mwYJ->A$rzk@Mg2Yt=8+cB{H-ayjrdBgG`ay7k#;0 z;(=zOXS^) zJ{%6=X028Wi9`b8(cTm{{A@c5f-0Su5 zXt`Vtkw`=i&5FE#sk_}Sep;zix*S>*sq+!i>2z>!g+c+bSWFHz40?p67Wi=Xpjj(7-?hr8gmN!O+;qM2uX(UB}(Pp+ST~a5L?f2=*_{4co78 z!5dk@d1^Q&_5XNr{JeL%r`|dkVEN0DxcA|3IDXCN^V?>#xgHJ&{T;*FVSoiD*j`~j zQ>oNtyWQUQ`~7*nUf*W3*>yA;>F*TQjJ3l63rw*6iT=P3yWQ@Jt23EQ^nSmu-Z>ax zfeAJkAMY$~J+1~$7!HS*UazMZf(0hnV1yOm6P|ZG0^{*m$B9hA1RIR70<3TqR;$&m z+wCgGV1p4>fE9MO>2!MSbUKPL*kF8skH_O>Fc|3Vc3Uw98;lR|>2$)CIJa6Y#TaZb zK7pIfCUpYbXf&9U;Cj8zoCMcuHRdF^TCFlC!IesdISDS8%gjk|sZ?U_8?1`OB6AX4 zC={5J;Cw#MoCN1`Ip!o-(=_HJIGfEfC&8IahB*mNr_;CQPJ*3ICvy_)a5$KgV7uMUoCMo!Hs)Tw!)L42 zsu+U}#-~pY?_0NSu~-yiu)+BBajB+hSF_oy7=sN)SRbDcFPF=k$z)QD!3HC&j}OFm zyWKey3h8WEm|%ku)~6AG^?H51?`RjJ(Wn@Ll?YB8EI( zjq%_SSS%J8fx#WeV}Aa}hqAC6U$9oJ8Ec0@jPZPBPz&2R{=?p(uMBGaccXZ}0X2s+ UFwXxpS^xk507*qoM6N<$f{ThjaR2}S diff --git a/assets/jwplayer/glow/glow.xml b/assets/jwplayer/glow/glow.xml deleted file mode 100644 index 71bdced0..00000000 --- a/assets/jwplayer/glow/glow.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -