From ff69cc5b2de92e3031876b0b59165c8cd4a0ec62 Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Wed, 21 Sep 2011 11:08:34 -0700 Subject: [PATCH] initial import from rails to sinatra --- .gitignore | 2 + Gemfile | 20 + Gemfile.lock | 60 + app.rb | 46 + config.ru | 12 + public/404.html | 30 + public/422.html | 30 + public/500.html | 30 + public/blueprint/ie.css | 22 + .../blueprint/plugins/fancy-type/readme.txt | 14 + .../blueprint/plugins/fancy-type/screen.css | 71 + public/blueprint/print.css | 29 + public/blueprint/screen.css | 225 +++ public/blueprint/src/forms.css | 49 + public/blueprint/src/grid.css | 250 ++++ public/blueprint/src/grid.png | Bin 0 -> 98 bytes public/blueprint/src/ie.css | 35 + public/blueprint/src/print.css | 85 ++ public/blueprint/src/reset.css | 38 + public/blueprint/src/typography.css | 104 ++ public/dispatch.cgi | 10 + public/dispatch.fcgi | 24 + public/dispatch.rb | 10 + public/favicon.ico | 0 public/favicon.png | Bin 0 -> 164 bytes public/gitserver.txt | 1232 +++++++++++++++++ public/http-protocol.txt | 542 ++++++++ public/images/book.png | Bin 0 -> 593 bytes public/images/books/gitbook-cover.png | Bin 0 -> 14672 bytes public/images/books/pg_git.jpg | Bin 0 -> 21012 bytes public/images/books/progit.jpg | Bin 0 -> 9721 bytes public/images/books/pvc_git.gif | Bin 0 -> 20595 bytes public/images/books/vcw_git.jpg | Bin 0 -> 4196 bytes public/images/chacon.png | Bin 0 -> 24815 bytes public/images/chaconbig.png | Bin 0 -> 101776 bytes public/images/git-logo.png | Bin 0 -> 275 bytes public/images/github.png | Bin 0 -> 3216 bytes public/images/header.gif | Bin 0 -> 26625 bytes public/images/header.png | Bin 0 -> 78275 bytes public/images/osx_big.png | Bin 0 -> 4470 bytes public/images/rails.png | Bin 0 -> 6646 bytes public/images/tar.png | Bin 0 -> 8645 bytes public/images/tux_big.png | Bin 0 -> 3304 bytes public/images/ubuntu_big.png | Bin 0 -> 4818 bytes public/images/videos/git-rs.jpg | Bin 0 -> 26536 bytes public/images/videos/gitcasts.jpg | Bin 0 -> 34126 bytes public/images/videos/vid-linus.jpg | Bin 0 -> 27368 bytes public/images/videos/vid-ogre.jpg | Bin 0 -> 27672 bytes public/images/windows_big.png | Bin 0 -> 6504 bytes public/images/zip.png | Bin 0 -> 8515 bytes public/javascripts/application.js | 2 + public/javascripts/jquery-1.2.6.min.js | 32 + public/javascripts/jquery.corner.js | 53 + public/robots.txt | 5 + public/stylesheets/style.css | 119 ++ views/about.erb | 72 + views/appeal.erb | 73 + views/course.erb | 86 ++ views/development.erb | 13 + views/documentation.erb | 188 +++ views/download.erb | 95 ++ views/download_box.erb | 42 + views/feed.builder | 18 + views/fiveminutes.erb | 15 + views/index.erb | 131 ++ views/layout.erb | 91 ++ views/sfc.erb | 91 ++ views/svn.erb | 530 +++++++ views/tools.erb | 151 ++ 69 files changed, 4777 insertions(+) create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 app.rb create mode 100644 config.ru create mode 100644 public/404.html create mode 100644 public/422.html create mode 100644 public/500.html create mode 100644 public/blueprint/ie.css create mode 100644 public/blueprint/plugins/fancy-type/readme.txt create mode 100644 public/blueprint/plugins/fancy-type/screen.css create mode 100644 public/blueprint/print.css create mode 100755 public/blueprint/screen.css create mode 100644 public/blueprint/src/forms.css create mode 100755 public/blueprint/src/grid.css create mode 100644 public/blueprint/src/grid.png create mode 100644 public/blueprint/src/ie.css create mode 100755 public/blueprint/src/print.css create mode 100755 public/blueprint/src/reset.css create mode 100644 public/blueprint/src/typography.css create mode 100755 public/dispatch.cgi create mode 100755 public/dispatch.fcgi create mode 100755 public/dispatch.rb create mode 100644 public/favicon.ico create mode 100644 public/favicon.png create mode 100644 public/gitserver.txt create mode 100644 public/http-protocol.txt create mode 100755 public/images/book.png create mode 100644 public/images/books/gitbook-cover.png create mode 100644 public/images/books/pg_git.jpg create mode 100644 public/images/books/progit.jpg create mode 100644 public/images/books/pvc_git.gif create mode 100644 public/images/books/vcw_git.jpg create mode 100644 public/images/chacon.png create mode 100644 public/images/chaconbig.png create mode 100644 public/images/git-logo.png create mode 100644 public/images/github.png create mode 100644 public/images/header.gif create mode 100644 public/images/header.png create mode 100644 public/images/osx_big.png create mode 100644 public/images/rails.png create mode 100644 public/images/tar.png create mode 100644 public/images/tux_big.png create mode 100644 public/images/ubuntu_big.png create mode 100644 public/images/videos/git-rs.jpg create mode 100644 public/images/videos/gitcasts.jpg create mode 100644 public/images/videos/vid-linus.jpg create mode 100644 public/images/videos/vid-ogre.jpg create mode 100644 public/images/windows_big.png create mode 100644 public/images/zip.png create mode 100644 public/javascripts/application.js create mode 100644 public/javascripts/jquery-1.2.6.min.js create mode 100644 public/javascripts/jquery.corner.js create mode 100644 public/robots.txt create mode 100644 public/stylesheets/style.css create mode 100644 views/about.erb create mode 100644 views/appeal.erb create mode 100644 views/course.erb create mode 100644 views/development.erb create mode 100644 views/documentation.erb create mode 100644 views/download.erb create mode 100644 views/download_box.erb create mode 100644 views/feed.builder create mode 100644 views/fiveminutes.erb create mode 100644 views/index.erb create mode 100644 views/layout.erb create mode 100644 views/sfc.erb create mode 100644 views/svn.erb create mode 100644 views/tools.erb diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2dd9947 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +local.db +.bundle diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..2044d29 --- /dev/null +++ b/Gemfile @@ -0,0 +1,20 @@ +source "http://rubygems.org" + +gem "sinatra" +gem "dm-core" +gem "dm-serializer" +gem "dm-migrations" +gem "dm-validations" +gem "dm-timestamps" + +group :production do + gem "pg" + gem "dm-postgres-adapter" +end + +group :development do + gem "sqlite3-ruby" + gem "dm-sqlite-adapter" + gem "shotgun" +end + diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..e8b7ef2 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,60 @@ +GEM + remote: http://rubygems.org/ + specs: + addressable (2.2.6) + data_objects (0.10.6) + addressable (~> 2.1) + dm-core (1.1.0) + addressable (~> 2.2.4) + dm-do-adapter (1.1.0) + data_objects (~> 0.10.2) + dm-core (~> 1.1.0) + dm-migrations (1.1.0) + dm-core (~> 1.1.0) + dm-postgres-adapter (1.1.0) + dm-do-adapter (~> 1.1.0) + do_postgres (~> 0.10.2) + dm-serializer (1.1.0) + dm-core (~> 1.1.0) + fastercsv (~> 1.5.4) + json (~> 1.4.6) + dm-sqlite-adapter (1.1.0) + dm-do-adapter (~> 1.1.0) + do_sqlite3 (~> 0.10.2) + dm-timestamps (1.1.0) + dm-core (~> 1.1.0) + dm-validations (1.1.0) + dm-core (~> 1.1.0) + do_postgres (0.10.6) + data_objects (= 0.10.6) + do_sqlite3 (0.10.6) + data_objects (= 0.10.6) + fastercsv (1.5.4) + json (1.4.6) + pg (0.11.0) + rack (1.3.3) + shotgun (0.9) + rack (>= 1.0) + sinatra (1.2.6) + rack (~> 1.1) + tilt (>= 1.2.2, < 2.0) + sqlite3 (1.3.4) + sqlite3-ruby (1.3.3) + sqlite3 (>= 1.3.3) + tilt (1.3.3) + +PLATFORMS + ruby + +DEPENDENCIES + dm-core + dm-migrations + dm-postgres-adapter + dm-serializer + dm-sqlite-adapter + dm-timestamps + dm-validations + pg + shotgun + sinatra + sqlite3-ruby diff --git a/app.rb b/app.rb new file mode 100644 index 0000000..749fd15 --- /dev/null +++ b/app.rb @@ -0,0 +1,46 @@ +require 'sinatra' + +require 'dm-core' +require 'dm-serializer/to_json' +require 'dm-migrations' +require 'dm-validations' +require 'dm-timestamps' + +## -- DATABASE STUFF -- + +DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/local.db") + +class Version + include DataMapper::Resource + property :version, String + property :current, Boolean, :key => true + property :created_at, DateTime +end + +DataMapper.auto_upgrade! + +class GitApp < Sinatra::Base + + def get_version + @version = '1.7.6.1' + @date = "2011-08-24" + end + + get '/' do + get_version + erb :index + end + + get '/course/:action' do + @action = params[:action] + @action.gsub!('.html', '') + erb :"#{@action}", :layout => :course + end + + get '/:action' do + @action = params[:action] + get_version if @action == 'download' + erb :"#{@action}" + end + +end diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..a4d1205 --- /dev/null +++ b/config.ru @@ -0,0 +1,12 @@ +require "rubygems" +require "bundler" +Bundler.setup + +Bundler.require(:runtime) + +require './app' + +use Rack::Static, :urls => ["/css", "/images", "/js"], :root => "public" + +run GitApp + diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..eff660b --- /dev/null +++ b/public/404.html @@ -0,0 +1,30 @@ + + + + + + + The page you were looking for doesn't exist (404) + + + + + +
+

The page you were looking for doesn't exist.

+

You may have mistyped the address or the page may have moved.

+
+ + \ No newline at end of file diff --git a/public/422.html b/public/422.html new file mode 100644 index 0000000..b54e4a3 --- /dev/null +++ b/public/422.html @@ -0,0 +1,30 @@ + + + + + + + The change you wanted was rejected (422) + + + + + +
+

The change you wanted was rejected.

+

Maybe you tried to change something you didn't have access to.

+
+ + \ No newline at end of file diff --git a/public/500.html b/public/500.html new file mode 100644 index 0000000..0e9c14f --- /dev/null +++ b/public/500.html @@ -0,0 +1,30 @@ + + + + + + + We're sorry, but something went wrong (500) + + + + + +
+

We're sorry, but something went wrong.

+

We've been notified about this issue and we'll take a look at it shortly.

+
+ + \ No newline at end of file diff --git a/public/blueprint/ie.css b/public/blueprint/ie.css new file mode 100644 index 0000000..bb59a79 --- /dev/null +++ b/public/blueprint/ie.css @@ -0,0 +1,22 @@ +/* ----------------------------------------------------------------------- + + Blueprint CSS Framework 0.7.1 + http://blueprintcss.googlecode.com + + * Copyright (c) 2007-2008. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* ie.css */ +body {text-align:center;} +.container {text-align:left;} +* html .column {overflow-x:hidden;} +* html legend {margin:-18px -8px 16px 0;padding:0;} +ol {margin-left:2em;} +sup {vertical-align:text-top;} +sub {vertical-align:text-bottom;} +html>body p code {*white-space:normal;} +hr {margin:-8px auto 11px;} \ No newline at end of file diff --git a/public/blueprint/plugins/fancy-type/readme.txt b/public/blueprint/plugins/fancy-type/readme.txt new file mode 100644 index 0000000..85f2491 --- /dev/null +++ b/public/blueprint/plugins/fancy-type/readme.txt @@ -0,0 +1,14 @@ +Fancy Type + +* Gives you classes to use if you'd like some + extra fancy typography. + +Credits and instructions are specified above each class +in the fancy-type.css file in this directory. + + +Usage +---------------------------------------------------------------- + +1) Add this plugin to lib/settings.yml. + See compress.rb for instructions. diff --git a/public/blueprint/plugins/fancy-type/screen.css b/public/blueprint/plugins/fancy-type/screen.css new file mode 100644 index 0000000..028e05b --- /dev/null +++ b/public/blueprint/plugins/fancy-type/screen.css @@ -0,0 +1,71 @@ +/* -------------------------------------------------------------- + + fancy-type.css + * Lots of pretty advanced classes for manipulating text. + + See the Readme file in this folder for additional instructions. + +-------------------------------------------------------------- */ + +/* Indentation instead of line shifts for sibling paragraphs. */ + p + p { text-indent:2em; margin-top:-1.5em; } + form p + p { text-indent: 0; } /* Don't want this in forms. */ + + +/* For great looking type, use this code instead of asdf: + asdf + Best used on prepositions and ampersands. */ + +.alt { + color: #666; + font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif; + font-style: italic; + font-weight: normal; +} + + +/* For great looking quote marks in titles, replace "asdf" with: + asdf” + (That is, when the title starts with a quote mark). + (You may have to change this value depending on your font size). */ + +.dquo { margin-left: -.5em; } + + +/* Reduced size type with incremental leading + (http://www.markboulton.co.uk/journal/comments/incremental_leading/) + + This could be used for side notes. For smaller type, you don't necessarily want to + follow the 1.5x vertical rhythm -- the line-height is too much. + + Using this class, it reduces your font size and line-height so that for + every four lines of normal sized type, there is five lines of the sidenote. eg: + + New type size in em's: + 10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems) + + New line-height value: + 12px x 1.5 = 18px (old line-height) + 18px x 4 = 72px + 72px / 5 = 14.4px (new line height) + 14.4px / 10px = 1.44 (new line height in em's) */ + +p.incr, .incr p { + font-size: 10px; + line-height: 1.44em; + margin-bottom: 1.5em; +} + + +/* Surround uppercase words and abbreviations with this class. + Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */ + +.caps { + font-variant: small-caps; + letter-spacing: 1px; + text-transform: lowercase; + font-size:1.2em; + line-height:1%; + font-weight:bold; + padding:0 2px; +} diff --git a/public/blueprint/print.css b/public/blueprint/print.css new file mode 100644 index 0000000..6618614 --- /dev/null +++ b/public/blueprint/print.css @@ -0,0 +1,29 @@ +/* ----------------------------------------------------------------------- + + Blueprint CSS Framework 0.7.1 + http://blueprintcss.googlecode.com + + * Copyright (c) 2007-2008. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* print.css */ +body {line-height:1.5;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;color:#000;background:none;font-size:10pt;} +.container {background:none;} +hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} +hr.space {background:#fff;color:#fff;} +h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} +code {font:.9em "Courier New", Monaco, Courier, monospace;} +img {float:left;margin:1.5em 1.5em 1.5em 0;} +a img {border:none;} +p img.top {margin-top:0;} +blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} +.small {font-size:.9em;} +.large {font-size:1.1em;} +.quiet {color:#999;} +.hide {display:none;} +a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} +a:link:after, a:visited:after {content:" (" attr(href) ") ";font-size:90%;} \ No newline at end of file diff --git a/public/blueprint/screen.css b/public/blueprint/screen.css new file mode 100755 index 0000000..7594e0c --- /dev/null +++ b/public/blueprint/screen.css @@ -0,0 +1,225 @@ +/* + BLUEPRINT CSS + * Filename: compressed.css + * Version: 0.7.1 (2008-02-25) YYYY-MM-DD + * Website: http://code.google.com/p/blueprintcss/ + + Generated by: + * Blueprint CSS Grid Generator (2008-07-22) [http://kematzy.com/blueprint-generator/] + + == STRUCTURE: ======================== + * Page width: 788 px + * Number of columns: 21 + * Column width: 28 px + * Margin width: 10 px + ====================================== + +*/ + +/* reset.css */ +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;} +body {line-height:1.5;} +table {border-collapse:separate;border-spacing:0;} +caption, th, td {text-align:left;font-weight:normal;} +table, td, th {vertical-align:middle;} +blockquote:before, blockquote:after, q:before, q:after {content:"";} +blockquote, q {quotes:"" "";} +a img {border:none;} + +/* typography.css */ +body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;} +h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} +h1 {font-size:3em;line-height:1;margin-bottom:0.5em;} +h2 {font-size:2em;margin-bottom:0.75em;} +h3 {font-size:1.5em;line-height:1;margin-bottom:1em;} +h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;height:1.25em;} +h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} +h6 {font-size:1em;font-weight:bold;} +h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} +p {margin:0 0 1.5em;} +p img {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;} +p img.right {float:right;margin:1.5em 0 1.5em 1.5em;} +a:focus, a:hover {color:#000;} +a {color:#009;text-decoration:underline;} +blockquote {margin:1.5em;color:#666;font-style:italic;} +strong {font-weight:bold;} +em, dfn {font-style:italic;} +dfn {font-weight:bold;} +sup, sub {line-height:0;} +abbr, acronym {border-bottom:1px dotted #666;} +address {margin:0 0 1.5em;font-style:italic;} +del {color:#666;} +pre, code {margin:1.5em 0;white-space:pre;} +pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;} +li ul, li ol {margin:0 1.5em;} +ul, ol {margin:0 1.5em 1.5em 1.5em;} +ul {list-style-type:disc;} +ol {list-style-type:decimal;} +dl {margin:0 0 1.5em 0;} +dl dt {font-weight:bold;} +dd {margin-left:1.5em;} +table {margin-bottom:1.4em;width:100%;} +th {font-weight:bold;background:#C3D9FF;} +th, td {padding:4px 10px 4px 5px;} +tr.even td {background:#E5ECF9;} +tfoot {font-style:italic;} +caption {background:#eee;} +.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} +.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} +.hide {display:none;} +.quiet {color:#666;} +.loud {color:#000;} +.highlight {background:#ff0;} +.added {background:#060;color:#fff;} +.removed {background:#900;color:#fff;} +.first {margin-left:0;padding-left:0;} +.last {margin-right:0;padding-right:0;} +.top {margin-top:0;padding-top:0;} +.bottom {margin-bottom:0;padding-bottom:0;} + +/* grid.css */ +.container {width:788px;margin:0 auto;} +.showgrid {background:url(src/grid.png);} +body {margin:1.5em 0;} +div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21 {float:left;margin-right: 10px;} + +div.last {margin-right:0;} +.span-1 { width: 28px;} +.span-2 { width: 66px;} +.span-3 { width: 104px;} +.span-4 { width: 142px;} +.span-5 { width: 180px;} +.span-6 { width: 218px;} +.span-7 { width: 256px;} +.span-8 { width: 294px;} +.span-9 { width: 332px;} +.span-10 { width: 370px;} +.span-11 { width: 408px;} +.span-12 { width: 446px;} +.span-13 { width: 484px;} +.span-14 { width: 522px;} +.span-15 { width: 560px;} +.span-16 { width: 598px;} +.span-17 { width: 636px;} +.span-18 { width: 674px;} +.span-19 { width: 712px;} +.span-20 { width: 750px;} +.span-21, div.span-21 { width: 788px; margin: 0; } + +.append-1 { padding-right: 38px;} +.append-2 { padding-right: 76px;} +.append-3 { padding-right: 114px;} +.append-4 { padding-right: 152px;} +.append-5 { padding-right: 190px;} +.append-6 { padding-right: 228px;} +.append-7 { padding-right: 266px;} +.append-8 { padding-right: 304px;} +.append-9 { padding-right: 342px;} +.append-10 { padding-right: 380px;} +.append-11 { padding-right: 418px;} +.append-12 { padding-right: 456px;} +.append-13 { padding-right: 494px;} +.append-14 { padding-right: 532px;} +.append-15 { padding-right: 570px;} +.append-16 { padding-right: 608px;} +.append-17 { padding-right: 646px;} +.append-18 { padding-right: 684px;} +.append-19 { padding-right: 722px;} +.append-20 { padding-right: 760px;} + +.prepend-1 { padding-left: 38px;} +.prepend-2 { padding-left: 76px;} +.prepend-3 { padding-left: 114px;} +.prepend-4 { padding-left: 152px;} +.prepend-5 { padding-left: 190px;} +.prepend-6 { padding-left: 228px;} +.prepend-7 { padding-left: 266px;} +.prepend-8 { padding-left: 304px;} +.prepend-9 { padding-left: 342px;} +.prepend-10 { padding-left: 380px;} +.prepend-11 { padding-left: 418px;} +.prepend-12 { padding-left: 456px;} +.prepend-13 { padding-left: 494px;} +.prepend-14 { padding-left: 532px;} +.prepend-15 { padding-left: 570px;} +.prepend-16 { padding-left: 608px;} +.prepend-17 { padding-left: 646px;} +.prepend-18 { padding-left: 684px;} +.prepend-19 { padding-left: 722px;} +.prepend-20 { padding-left: 760px;} + +div.border{padding-right:4px;margin-right:5px;border-right:1px solid #eee;} +div.colborder { padding-right:24px;margin-right:23px;border-right:1px solid #eee;} +.pull-1 { margin-left: -38px;} +.pull-2 { margin-left: -76px;} +.pull-3 { margin-left: -114px;} +.pull-4 { margin-left: -152px;} +.pull-5 { margin-left: -190px;} +.pull-6 { margin-left: -228px;} +.pull-7 { margin-left: -266px;} +.pull-8 { margin-left: -304px;} +.pull-9 { margin-left: -342px;} +.pull-10 { margin-left: -380px;} +.pull-11 { margin-left: -418px;} +.pull-12 { margin-left: -456px;} +.pull-13 { margin-left: -494px;} +.pull-14 { margin-left: -532px;} +.pull-15 { margin-left: -570px;} +.pull-16 { margin-left: -608px;} +.pull-17 { margin-left: -646px;} +.pull-18 { margin-left: -684px;} +.pull-19 { margin-left: -722px;} +.pull-20 { margin-left: -760px;} +.pull-21 { margin-left: -798px;} + +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21 {float:left;position:relative;} + +.push-1 { margin: 0 -38px 1.5em 38px;} +.push-2 { margin: 0 -76px 1.5em 76px;} +.push-3 { margin: 0 -114px 1.5em 114px;} +.push-4 { margin: 0 -152px 1.5em 152px;} +.push-5 { margin: 0 -190px 1.5em 190px;} +.push-6 { margin: 0 -228px 1.5em 228px;} +.push-7 { margin: 0 -266px 1.5em 266px;} +.push-8 { margin: 0 -304px 1.5em 304px;} +.push-9 { margin: 0 -342px 1.5em 342px;} +.push-10 { margin: 0 -380px 1.5em 380px;} +.push-11 { margin: 0 -418px 1.5em 418px;} +.push-12 { margin: 0 -456px 1.5em 456px;} +.push-13 { margin: 0 -494px 1.5em 494px;} +.push-14 { margin: 0 -532px 1.5em 532px;} +.push-15 { margin: 0 -570px 1.5em 570px;} +.push-16 { margin: 0 -608px 1.5em 608px;} +.push-17 { margin: 0 -646px 1.5em 646px;} +.push-18 { margin: 0 -684px 1.5em 684px;} +.push-19 { margin: 0 -722px 1.5em 722px;} +.push-20 { margin: 0 -760px 1.5em 760px;} +.push-21 { margin: 0 -798px 1.5em 798px;} + +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21 {float:right;position:relative;} + +.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;} +hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;} +hr.space {background:#fff;color:#fff;} +.clearfix:after, .container:after {content:".";display:block;height:0;clear:both;visibility:hidden;} +.clearfix, .container {display:inline-block;} +* html .clearfix, * html .container {height:1%;} +.clearfix, .container {display:block;} +.clear {clear:both;} + +/* forms.css */ +label {font-weight:bold;} +fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;} +legend {font-weight:bold;font-size:1.2em;} +input.text, input.title, textarea, select {margin:0.5em 0;border:1px solid #bbb;} +input.text:focus, input.title:focus, textarea:focus, select:focus {border:1px solid #666;} +input.text, input.title {width:300px;padding:5px;} +input.title {font-size:1.5em;} +textarea {width:390px;height:250px;padding:5px;} +.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;} +.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;} +.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;} +.success {background:#E6EFC2;color:#264409;border-color:#C6D880;} +.error a {color:#8a1f11;} +.notice a {color:#514721;} +.success a {color:#264409;} \ No newline at end of file diff --git a/public/blueprint/src/forms.css b/public/blueprint/src/forms.css new file mode 100644 index 0000000..c075be7 --- /dev/null +++ b/public/blueprint/src/forms.css @@ -0,0 +1,49 @@ +/* -------------------------------------------------------------- + + forms.css + * Sets up some default styling for forms + * Gives you classes to enhance your forms + + Usage: + * For text fields, use class .title or .text + +-------------------------------------------------------------- */ + +label { font-weight: bold; } +fieldset { padding:1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; } +legend { font-weight: bold; font-size:1.2em; } + + +/* Form fields +-------------------------------------------------------------- */ + +input.text, input.title, +textarea, select { + margin:0.5em 0; + border:1px solid #bbb; +} + +input.text:focus, input.title:focus, +textarea:focus, select:focus { + border:1px solid #666; +} + +input.text, +input.title { width: 300px; padding:5px; } +input.title { font-size:1.5em; } +textarea { width: 390px; height: 250px; padding:5px; } + + +/* Success, notice and error boxes +-------------------------------------------------------------- */ + +.error, +.notice, +.success { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; } + +.error { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } +.notice { background: #FFF6BF; color: #514721; border-color: #FFD324; } +.success { background: #E6EFC2; color: #264409; border-color: #C6D880; } +.error a { color: #8a1f11; } +.notice a { color: #514721; } +.success a { color: #264409; } diff --git a/public/blueprint/src/grid.css b/public/blueprint/src/grid.css new file mode 100755 index 0000000..9298d06 --- /dev/null +++ b/public/blueprint/src/grid.css @@ -0,0 +1,250 @@ +/* -------------------------------------------------------------- + + BLUEPRINT CSS + * Filename: grid.css + * Version: 0.7.1 (2008-02-25) YYYY-MM-DD + * Website: http://code.google.com/p/blueprintcss/ + + Generated by: + * Blueprint CSS Grid Generator (2008-07-23) [http://kematzy.com/blueprint-generator/] + + Based on work by: + * Olav Bjorkoy [bjorkoy.com] + * Nathan Borror [playgroundblues.com] + * Jeff Croft [jeffcroft.com] + * Christian Metts [mintchaos.com] + * Khoi Vinh [subtraction.com] + + == STRUCTURE: ======================== + * Page width: 788 px + * Number of columns: 21 + * Column width: 28 px + * Margin width: 10 px + ====================================== + + By default, the grid is 788px wide, with 21 columns + spanning 28px, and a 10px margin between columns. + + If you need fewer or more columns, use this formula to calculate + the new total width: + + Total width = (number_of_columns * column_width) - margin_width + + Read more about using a grid here: + * subtraction.com/archives/2007/0318_oh_yeeaahh.php + +-------------------------------------------------------------- */ + +/* A container should group all your columns. */ +.container { + width: 788px; + margin: 0 auto; +} + +/* Use this class on any div.span / container to see the grid. */ +.showgrid { + background: url(src/grid.png); +} + +/* Body margin for a sensile default look. */ +body { + margin:1.5em 0; +} + + +/* Columns +-------------------------------------------------------------- */ + +/* Sets up basic grid floating and margin. */ +div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21 {float:left;margin-right: 10px;} + +/* The last column in a row needs this class. */ +div.last { margin-right: 0; } + +/* Use these classes to set the width of a column. */ +.span-1 { width: 28px;} +.span-2 { width: 66px;} +.span-3 { width: 104px;} +.span-4 { width: 142px;} +.span-5 { width: 180px;} +.span-6 { width: 218px;} +.span-7 { width: 256px;} +.span-8 { width: 294px;} +.span-9 { width: 332px;} +.span-10 { width: 370px;} +.span-11 { width: 408px;} +.span-12 { width: 446px;} +.span-13 { width: 484px;} +.span-14 { width: 522px;} +.span-15 { width: 560px;} +.span-16 { width: 598px;} +.span-17 { width: 636px;} +.span-18 { width: 674px;} +.span-19 { width: 712px;} +.span-20 { width: 750px;} +.span-21, div.span-21 { width: 788px; margin: 0; } + + +/* Add these to a column to append empty cols. */ +.append-1 { padding-right: 38px;} +.append-2 { padding-right: 76px;} +.append-3 { padding-right: 114px;} +.append-4 { padding-right: 152px;} +.append-5 { padding-right: 190px;} +.append-6 { padding-right: 228px;} +.append-7 { padding-right: 266px;} +.append-8 { padding-right: 304px;} +.append-9 { padding-right: 342px;} +.append-10 { padding-right: 380px;} +.append-11 { padding-right: 418px;} +.append-12 { padding-right: 456px;} +.append-13 { padding-right: 494px;} +.append-14 { padding-right: 532px;} +.append-15 { padding-right: 570px;} +.append-16 { padding-right: 608px;} +.append-17 { padding-right: 646px;} +.append-18 { padding-right: 684px;} +.append-19 { padding-right: 722px;} +.append-20 { padding-right: 760px;} + + +/* Add these to a column to prepend empty cols. */ +.prepend-1 { padding-left: 38px;} +.prepend-2 { padding-left: 76px;} +.prepend-3 { padding-left: 114px;} +.prepend-4 { padding-left: 152px;} +.prepend-5 { padding-left: 190px;} +.prepend-6 { padding-left: 228px;} +.prepend-7 { padding-left: 266px;} +.prepend-8 { padding-left: 304px;} +.prepend-9 { padding-left: 342px;} +.prepend-10 { padding-left: 380px;} +.prepend-11 { padding-left: 418px;} +.prepend-12 { padding-left: 456px;} +.prepend-13 { padding-left: 494px;} +.prepend-14 { padding-left: 532px;} +.prepend-15 { padding-left: 570px;} +.prepend-16 { padding-left: 608px;} +.prepend-17 { padding-left: 646px;} +.prepend-18 { padding-left: 684px;} +.prepend-19 { padding-left: 722px;} +.prepend-20 { padding-left: 760px;} + + + +/* Border on right hand side of a column. */ +div.border { + padding-right:4px; + margin-right:5px; + border-right: 1px solid #eee; +} + +/* Border with more whitespace, spans one column. */ +div.colborder { + padding-right:26px; + margin-right:23px; + border-right: 1px solid #eee; +} + +/* Use these classes on an element to push it into the + next column, or to pull it into the previous column. */ + +.pull-1 { margin-left: -38px;} +.pull-2 { margin-left: -76px;} +.pull-3 { margin-left: -114px;} +.pull-4 { margin-left: -152px;} +.pull-5 { margin-left: -190px;} +.pull-6 { margin-left: -228px;} +.pull-7 { margin-left: -266px;} +.pull-8 { margin-left: -304px;} +.pull-9 { margin-left: -342px;} +.pull-10 { margin-left: -380px;} +.pull-11 { margin-left: -418px;} +.pull-12 { margin-left: -456px;} +.pull-13 { margin-left: -494px;} +.pull-14 { margin-left: -532px;} +.pull-15 { margin-left: -570px;} +.pull-16 { margin-left: -608px;} +.pull-17 { margin-left: -646px;} +.pull-18 { margin-left: -684px;} +.pull-19 { margin-left: -722px;} +.pull-20 { margin-left: -760px;} +.pull-21 { margin-left: -798px;} + +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21 {float:left;position:relative;} + + +.push-1 { margin: 0 -38px 1.5em 38px;} +.push-2 { margin: 0 -76px 1.5em 76px;} +.push-3 { margin: 0 -114px 1.5em 114px;} +.push-4 { margin: 0 -152px 1.5em 152px;} +.push-5 { margin: 0 -190px 1.5em 190px;} +.push-6 { margin: 0 -228px 1.5em 228px;} +.push-7 { margin: 0 -266px 1.5em 266px;} +.push-8 { margin: 0 -304px 1.5em 304px;} +.push-9 { margin: 0 -342px 1.5em 342px;} +.push-10 { margin: 0 -380px 1.5em 380px;} +.push-11 { margin: 0 -418px 1.5em 418px;} +.push-12 { margin: 0 -456px 1.5em 456px;} +.push-13 { margin: 0 -494px 1.5em 494px;} +.push-14 { margin: 0 -532px 1.5em 532px;} +.push-15 { margin: 0 -570px 1.5em 570px;} +.push-16 { margin: 0 -608px 1.5em 608px;} +.push-17 { margin: 0 -646px 1.5em 646px;} +.push-18 { margin: 0 -684px 1.5em 684px;} +.push-19 { margin: 0 -722px 1.5em 722px;} +.push-20 { margin: 0 -760px 1.5em 760px;} +.push-21 { margin: 0 -798px 1.5em 798px;} + +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21 {float:right;position:relative;} + + + +/* Misc classes and elements +-------------------------------------------------------------- */ + +/* Use a .box to create a padded box inside a column. */ +.box { + padding: 1.5em; + margin-bottom: 1.5em; + background: #E5ECF9; +} + +/* Use this to create a horizontal ruler across a column. */ +hr { + background: #ddd; + color: #ddd; + clear: both; + float: none; + width: 100%; + height: .1em; + margin: 0 0 1.45em; + border: none; +} +hr.space { + background: #fff; + color: #fff; +} + + +/* Clearing floats without extra markup + Based on How To Clear Floats Without Structural Markup by PiE + [http://www.positioniseverything.net/easyclearing.html] */ + +.clearfix:after, .container:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.clearfix, .container {display: inline-block;} +* html .clearfix, +* html .container {height: 1%;} +.clearfix, .container {display: block;} + +/* Regular clearing + apply to column that should drop below previous ones. */ + +.clear { clear:both; } + diff --git a/public/blueprint/src/grid.png b/public/blueprint/src/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4db89a6190de4b89d8ceaf92243aeddce675fd GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT+#0(_8cDS?wDb4_&5ZC|z|9}4a{n@iORYy}l v0R=@oT^vI=W+rpAGO#H~WSt2$*ucQhRG=s4)!+99D9_;O>gTe~DWM4f26i1n literal 0 HcmV?d00001 diff --git a/public/blueprint/src/ie.css b/public/blueprint/src/ie.css new file mode 100644 index 0000000..fed798d --- /dev/null +++ b/public/blueprint/src/ie.css @@ -0,0 +1,35 @@ +/* -------------------------------------------------------------- + + ie.css + + Contains every hack for Internet Explorer, + so that our core files stay sweet and nimble. + +-------------------------------------------------------------- */ + +/* Make sure the layout is centered in IE5 */ +body { text-align: center; } +.container { text-align: left; } + +/* Fixes IE margin bugs */ +* html .column { overflow-x: hidden; } + + +/* Elements +-------------------------------------------------------------- */ + +/* Fixes incorrect styling of legend in IE6. */ +* html legend { margin:-18px -8px 16px 0; padding:0; } + +/* Fixes incorrect placement of ol numbers in IE6/7. */ +ol { margin-left:2em; } + +/* Fixes wrong line-height on sup/sub in IE. */ +sup { vertical-align: text-top; } +sub { vertical-align: text-bottom; } + +/* Fixes IE7 missing wrapping of code elements. */ +html>body p code { *white-space: normal; } + +/* IE 6&7 has problems with setting proper
margins. */ +hr { margin: -8px auto 11px; } diff --git a/public/blueprint/src/print.css b/public/blueprint/src/print.css new file mode 100755 index 0000000..719e40c --- /dev/null +++ b/public/blueprint/src/print.css @@ -0,0 +1,85 @@ +/* -------------------------------------------------------------- + + print.css + * Gives you some sensible styles for printing pages. + * See Readme file in this directory for further instructions. + + Some additions you'll want to make, customized to your markup: + #header, #footer, #navigation { display:none; } + +-------------------------------------------------------------- */ + +body { + line-height: 1.5; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#000; + background: none; + font-size: 10pt; +} + + +/* Layout +-------------------------------------------------------------- */ + +.container { + background: none; +} + +hr { + background:#ccc; + color:#ccc; + width:100%; + height:2px; + margin:2em 0; + padding:0; + border:none; +} +hr.space { + background: #fff; + color: #fff; +} + + +/* Text +-------------------------------------------------------------- */ + +h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; } +code { font:.9em "Courier New", Monaco, Courier, monospace; } + +img { float:left; margin:1.5em 1.5em 1.5em 0; } +a img { border:none; } +p img.top { margin-top: 0; } + +blockquote { + margin:1.5em; + padding:1em; + font-style:italic; + font-size:.9em; +} + +.small { font-size: .9em; } +.large { font-size: 1.1em; } +.quiet { color: #999; } +.hide { display:none; } + + +/* Links +-------------------------------------------------------------- */ + +a:link, a:visited { + background: transparent; + font-weight:700; + text-decoration: underline; +} + +a:link:after, a:visited:after { + content: " (" attr(href) ") "; + font-size: 90%; +} + +/* If you're having trouble printing relative links, uncomment and customize this: + (note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */ + +/* a[href^="/"]:after { + content: " (http://www.yourdomain.com" attr(href) ") "; +} */ diff --git a/public/blueprint/src/reset.css b/public/blueprint/src/reset.css new file mode 100755 index 0000000..fc0788c --- /dev/null +++ b/public/blueprint/src/reset.css @@ -0,0 +1,38 @@ +/* -------------------------------------------------------------- + + reset.css + * Resets default browser CSS. + +-------------------------------------------------------------- */ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, code, +del, dfn, em, img, q, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} + +body { + line-height: 1.5; +} + +/* Tables still need 'cellspacing="0"' in the markup. */ +table { border-collapse: separate; border-spacing: 0; } +caption, th, td { text-align: left; font-weight: normal; } +table, td, th { vertical-align: middle; } + +/* Remove possible quote marks (") from ,
. */ +blockquote:before, blockquote:after, q:before, q:after { content: ""; } +blockquote, q { quotes: "" ""; } + +/* Remove annoying border on linked images. */ +a img { border: none; } diff --git a/public/blueprint/src/typography.css b/public/blueprint/src/typography.css new file mode 100644 index 0000000..a686e78 --- /dev/null +++ b/public/blueprint/src/typography.css @@ -0,0 +1,104 @@ +/* -------------------------------------------------------------- + + typography.css + * Sets up some sensible default typography. + +-------------------------------------------------------------- */ + +/* Default font settings. + The font-size percentage is of 16px. (0.75 * 16px = 12px) */ +body { + font-size: 75%; + color: #222; + background: #fff; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + + +/* Headings +-------------------------------------------------------------- */ + +h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; } + +h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; } +h2 { font-size: 2em; margin-bottom: 0.75em; } +h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; } +h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; height: 1.25em; } +h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; } +h6 { font-size: 1em; font-weight: bold; } + +h1 img, h2 img, h3 img, +h4 img, h5 img, h6 img { + margin: 0; +} + + +/* Text elements +-------------------------------------------------------------- */ + +p { margin: 0 0 1.5em; } +p img { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; } +p img.right { float: right; margin: 1.5em 0 1.5em 1.5em; } + +a:focus, +a:hover { color: #000; } +a { color: #009; text-decoration: underline; } + +blockquote { margin: 1.5em; color: #666; font-style: italic; } +strong { font-weight: bold; } +em,dfn { font-style: italic; } +dfn { font-weight: bold; } +sup, sub { line-height: 0; } + +abbr, +acronym { border-bottom: 1px dotted #666; } +address { margin: 0 0 1.5em; font-style: italic; } +del { color:#666; } + +pre,code { margin: 1.5em 0; white-space: pre; } +pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; } + + +/* Lists +-------------------------------------------------------------- */ + +li ul, +li ol { margin:0 1.5em; } +ul, ol { margin: 0 1.5em 1.5em 1.5em; } + +ul { list-style-type: disc; } +ol { list-style-type: decimal; } + +dl { margin: 0 0 1.5em 0; } +dl dt { font-weight: bold; } +dd { margin-left: 1.5em;} + + +/* Tables +-------------------------------------------------------------- */ + +table { margin-bottom: 1.4em; width:100%; } +th { font-weight: bold; background: #C3D9FF; } +th,td { padding: 4px 10px 4px 5px; } +tr.even td { background: #E5ECF9; } +tfoot { font-style: italic; } +caption { background: #eee; } + + +/* Misc classes +-------------------------------------------------------------- */ + +.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; } +.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; } +.hide { display: none; } + +.quiet { color: #666; } +.loud { color: #000; } +.highlight { background:#ff0; } +.added { background:#060; color: #fff; } +.removed { background:#900; color: #fff; } + +.first { margin-left:0; padding-left:0; } +.last { margin-right:0; padding-right:0; } +.top { margin-top:0; padding-top:0; } +.bottom { margin-bottom:0; padding-bottom:0; } diff --git a/public/dispatch.cgi b/public/dispatch.cgi new file mode 100755 index 0000000..0ca19d0 --- /dev/null +++ b/public/dispatch.cgi @@ -0,0 +1,10 @@ +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby + +require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT) + +# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like: +# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired +require "dispatcher" + +ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun) +Dispatcher.dispatch \ No newline at end of file diff --git a/public/dispatch.fcgi b/public/dispatch.fcgi new file mode 100755 index 0000000..507ec32 --- /dev/null +++ b/public/dispatch.fcgi @@ -0,0 +1,24 @@ +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby +# +# You may specify the path to the FastCGI crash log (a log of unhandled +# exceptions which forced the FastCGI instance to exit, great for debugging) +# and the number of requests to process before running garbage collection. +# +# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log +# and the GC period is nil (turned off). A reasonable number of requests +# could range from 10-100 depending on the memory footprint of your app. +# +# Example: +# # Default log path, normal GC behavior. +# RailsFCGIHandler.process! +# +# # Default log path, 50 requests between GC. +# RailsFCGIHandler.process! nil, 50 +# +# # Custom log path, normal GC behavior. +# RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log' +# +require File.dirname(__FILE__) + "/../config/environment" +require 'fcgi_handler' + +RailsFCGIHandler.process! diff --git a/public/dispatch.rb b/public/dispatch.rb new file mode 100755 index 0000000..0ca19d0 --- /dev/null +++ b/public/dispatch.rb @@ -0,0 +1,10 @@ +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby + +require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT) + +# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like: +# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired +require "dispatcher" + +ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun) +Dispatcher.dispatch \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..de637c0608090162a6ce6b51d5f9bfe512cf8bcf GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-t_OgO28RD&a4c8tKak5= z;1OBOz`!jG!i)^F=12eq?L1u^Ln;_q4{j86a1dcV@b%g0mmUiOK9(+Io+#BK-XURJ z*52lzAh4o%_q+oa1XgVS7Wa3@eurhH>!fs<8s*Qab3eLq`JX({BnD4cKbLh*2~7aN C3N}^% literal 0 HcmV?d00001 diff --git a/public/gitserver.txt b/public/gitserver.txt new file mode 100644 index 0000000..863c10d --- /dev/null +++ b/public/gitserver.txt @@ -0,0 +1,1232 @@ + + + +Internet Engineering Task Force S. Chacon +Internet-Draft GitHub +Intended status: Informational June 6, 2009 +Expires: December 8, 2009 + + + Git Server Protocol + git-server-protocol-01 + +Status of this Memo + + By submitting this Internet-Draft, each author represents that any + applicable patent or other IPR claims of which he or she is aware + have been or will be disclosed, and any of which he or she becomes + aware will be disclosed, in accordance with Section 6 of BCP 79. + + Internet-Drafts are working documents of the Internet Engineering + Task Force (IETF), its areas, and its working groups. Note that + other groups may also distribute working documents as Internet- + Drafts. + + Internet-Drafts are draft documents valid for a maximum of six months + and may be updated, replaced, or obsoleted by other documents at any + time. It is inappropriate to use Internet-Drafts as reference + material or to cite them other than as "work in progress." + + The list of current Internet-Drafts can be accessed at + http://www.ietf.org/ietf/1id-abstracts.txt. + + The list of Internet-Draft Shadow Directories can be accessed at + http://www.ietf.org/shadow.html. + + This Internet-Draft will expire on December 8, 2009. + +Abstract + + This documents the Git version control system packfile based server + protocol. It describes expected behaviour of client and server and + best current practices to help avoid pitfalls when implementing Git + daemon or SSH based servers in other language implementations. It + will describe the data structures underlying Git repositories, how + that data is compressed into a packfile and how the contents of that + packfile are negotiated and transferred. This does not cover the + HTTP based Git server protocols. + + + + + + + +Chacon Expires December 8, 2009 [Page 1] + +Internet-Draft Git Server Protocol June 2009 + + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 + 2. Git Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 + 2.1. The SHA-1 ID . . . . . . . . . . . . . . . . . . . . . . . 3 + 2.2. Git Objects . . . . . . . . . . . . . . . . . . . . . . . 4 + 2.2.1. Blob . . . . . . . . . . . . . . . . . . . . . . . . . 4 + 2.2.2. Tree . . . . . . . . . . . . . . . . . . . . . . . . . 4 + 2.2.3. Commit . . . . . . . . . . . . . . . . . . . . . . . . 5 + 2.2.4. Tag . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 2.2.5. Git Object Model . . . . . . . . . . . . . . . . . . . 5 + 2.2.5.1. The Commit Graph . . . . . . . . . . . . . . . . . 6 + 2.3. Git References . . . . . . . . . . . . . . . . . . . . . . 7 + 3. Git Packfile Format . . . . . . . . . . . . . . . . . . . . . 7 + 3.1. Deltified Objects . . . . . . . . . . . . . . . . . . . . 10 + 4. Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . 11 + 4.1. Packet Line Format . . . . . . . . . . . . . . . . . . . . 11 + 4.2. Git Protocol . . . . . . . . . . . . . . . . . . . . . . . 11 + 4.3. SSH Protocol . . . . . . . . . . . . . . . . . . . . . . . 12 + 5. Fetching Data From a Server . . . . . . . . . . . . . . . . . 12 + 5.1. Initial Server Response . . . . . . . . . . . . . . . . . 13 + 5.2. Capabilities . . . . . . . . . . . . . . . . . . . . . . . 14 + 5.2.1. multi-ack . . . . . . . . . . . . . . . . . . . . . . 14 + 5.2.2. thin-pack . . . . . . . . . . . . . . . . . . . . . . 15 + 5.2.3. side-band, side-band-64k . . . . . . . . . . . . . . . 15 + 5.2.4. ofs-delta . . . . . . . . . . . . . . . . . . . . . . 16 + 5.2.5. shallow . . . . . . . . . . . . . . . . . . . . . . . 16 + 5.2.6. no-progress . . . . . . . . . . . . . . . . . . . . . 16 + 5.2.7. include-tag . . . . . . . . . . . . . . . . . . . . . 16 + 5.3. Client Response . . . . . . . . . . . . . . . . . . . . . 17 + 6. Pushing Data to a Server . . . . . . . . . . . . . . . . . . . 19 + 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 20 + 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20 + Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . 20 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 20 + Intellectual Property and Copyright Statements . . . . . . . . . . 22 + + + + + + + + + + + + + + +Chacon Expires December 8, 2009 [Page 2] + +Internet-Draft Git Server Protocol June 2009 + + +1. Introduction + + The Git SCM is a snapshot based distributed version control system. + Each clone of each repository can synchronize with other nodes if + they have read or write access to them. The two most common + protocols that these communications happen over are the custom 'Git' + protocol and over SSH. In both of these cases, the communication + happens between the 'send-pack' process on the client side and + 'receieve-pack' process on the server in the case of pushing changes + from the client to the server. For fetching changes from the server + to the client, the 'fetch-pack' process on the client communicates + with an 'upload-pack' process on the server. This document will + describe the ways in which these pairs of processes communicate. + + +2. Git Data + + Git has a relatively simple data format for storing it's objects. + There are four different types of objects that Git stores and these + make up nearly all the data that is transferred between a Git client + and server. The four object types are the 'blob', the 'tree', the + 'commit' and the 'tag'. Normal Git usage will add these objects to + Gits internal database in a simple format and client push will + package them up into what is called a 'packfile' and send them to a + Git server. A fetch will figure out what objects the server has that + the client does not and will create a packfile of those objects and + send that to the client. In order to understand how that difference + is calculated, we'll quickly cover the Git object model. + +2.1. The SHA-1 ID + + The Git database operates as a key-value store, where each object + that is put into the database is given an ID and then can be + retrieved from the database by that ID. The ID is calculated as the + SHA-1 checksum of the content being stored plus a small header + appended to it of the format: + + type = blob|tree|commit|tag + size = %d + header = type size\0 + new_content = header content + + The ID for the content is the SHA-1 checksum of the new_content + value. Each object is then referenced from other objects and + throughout the Git system via it's SHA-1 ID. Being a checksum, this + value can also be used to verify the integrity of the data by + rechecksumming the stored content at any time and verifying that it + matches the ID it is stored under. + + + +Chacon Expires December 8, 2009 [Page 3] + +Internet-Draft Git Server Protocol June 2009 + + +2.2. Git Objects + + The content that is stored in the Git database falls into four types. + The blob type is completely unstructured - you can store anything as + a blob, but the other three types have very specific structures + +2.2.1. Blob + + The 'blob' is any content that you want to store in Git. Blobs are + generally created from files on disk - when one does a commit in Git, + the contents of each file in the whole project will be stored in Git, + one blob per unique file contents. If two files in a project are + identical, even if they are named differently, only one blob will be + created for that content. + + Blobs can also be any content at all - binary or text and of any + encoding. The content will be stored and retrieved without + modification. + +2.2.2. Tree + + The 'tree' object is a specifically formatted content type that + specifies a directory listing. It contains one or more entries, each + of which containing a mode, a filename and a SHA-1 pointing to the + contents of that entry elsewhere in the Git database. + + sha = 20*(\byte) + mode = (modes?) + entry = mode filename\0sha + tree = n*(entry) + + The Tree Object + + The mode of each entry can be used to determine if the entry is a + tree (subdirectory) or a blob (file). + + Conceptually, a tree object can be visualized like this, though the + data is not stored this way in the object. + + 100644 blob 0b1ba9e5e40c3874ad8ab7f4b8320c0b088c48d5 .gitignore + 100644 blob bd4acab772011f5501e65397aab232a6948fd3d3 Makefile + 040000 tree f1d00a52b23d3779a0a190dd095d7fa234fa5d9c src + 040000 tree 00f0a95f0d807585b2fc5e4bb274b9ba8dd1903a tests + + So if you have a tree and all of the SHA-1 values referenced in it + are valid and in the database, then you can walk the entries and + recreate a project exactly as it was committed. + + + + +Chacon Expires December 8, 2009 [Page 4] + +Internet-Draft Git Server Protocol June 2009 + + +2.2.3. Commit + + When someone commits in Git, the system will store in the database a + snapshot of the current state entirely as tree and blob objects. + Then it will store a single 'commit' object that contains information + about the circumstances in which that snapshot was stored. + + tree = "tree " + sha + \n + parent = "parent" + sha + \n + userinfo = NAME TIME + author = "author" + userinfo + \n + committer = "committer" + userinfo + \n + encoding = "encoding" + encoding + \n + commit = tree n*(parent) author committer (encoding) \n message + + The Commit Object + + Notice that the tree pointer is manditory, but the parent pointer can + be missing for initial commits or multiple for commits that were the + result of merges. + +2.2.4. Tag + + A tag is a pointer to any object in the database with meta- + information about who tagged that object and when it was tagged. + Most often these are used to tag specific commits as being important + in some way - a release, perhaps. + + object = "object " + sha + \n + type = "type " + sha + \n + tagnm = "tag " + tagname + \n + userinfo = NAME TIME + tagger = "tagger" + sha + \n + tag = object type tagnm tagger \n message + + The Commit Object + +2.2.5. Git Object Model + + The Git object model then are tags that point to commits, which point + to zero or more commits and a single tree, which points to one or + more trees and/or blobs. + + + + + + + + + +Chacon Expires December 8, 2009 [Page 5] + +Internet-Draft Git Server Protocol June 2009 + + + +---+ +--+ + v | v | + +-----+ +--------+ +--------+ +--------+ + | Tag | --> | Commit | --> | Tree | --> | Blob | + +-----+ +--------+ +--------+ +--------+ + + The Git Object Model + + This creates a directed acyclic graph that can represent the project + state at any point. + +2.2.5.1. The Commit Graph + + Importantly for calculating data needs later on, the commit objects + by themselves are also a directed acyclic graph. If we have three + commits in a project, they can be depicted as a directed graph where + each node is a commit and each edge is the SHA-1 pointer connecting a + commit to it's parent. Three simple commits might be depicted like + this: + + A -- B -- C + + Commit Graph + + Where the C commit contains the SHA-1 of B which in turn contains the + SHA-1 of A. + + Divergent branches may be depicted like this: + + +-- E + / + A -- B -- C -- G + \ + +-- D -- F + + Branched Commit Graph + + A merge (in this case, between D and F) could be depicted like this: + + A -- B -- C -- D -- G -- H + \ / + +-- E -- F ----+ + + Merge Commit Graph + + Another important term is 'reachability'. Commits are considered + 'reachable' from another commit if they can be arrived at by walking + the SHA-1 references. For instance, in the previous commit graph, A, + + + +Chacon Expires December 8, 2009 [Page 6] + +Internet-Draft Git Server Protocol June 2009 + + + B and C are all reachable from D because they are downstream from it. + E and F aren't because they are parallel to it, and G and H are not + because they are upstream from it. Reachability and other concepts + of graphed object structures will be important in determining what + data is sent from client to server and vice versa. + +2.3. Git References + + The last major concept in the Git data structure is the reference. A + reference is like a tag that moves. When users work on a branch in + Git, the branch reference that is currently checked out is moved + forward to point to each new commit that is created. So in Git, a + branch is really just a pointer to the latest commit on that branch - + the rest of the commits are obtained by walking the SHA-1 values one + commit at a time. + + +-- E <= topic1 + / + A -- B -- C -- G <= master + \ + +-- D -- F <= topic2 + + Commit Graph with References + + In this example, the 'topic1' branch contains commits E, B and A, as + they are all reachable from the commit that 'topic1' points to (E). + + Tags also have references, but they are not generally supposed to + move, whereas the branch references can move with each new commit. + In the Git filesystem, the branch references are kept in the + 'GIT_DIR/refs/heads' directory and tags are kept in the 'GIT_DIR/ + refs/tags' directory (where GIT_DIR is the main Git directory). This + is important as this full path is needed when the client and server + are negotiating what objects to transfer - the references will be + identified as 'refs/heads/master' rather than simply 'master' so as + to be unambiguous. + + +3. Git Packfile Format + + Once the client and the server figure out what objects need to be + transferred from one system to another, it will put all of those + objects into a "packfile". This packfile is then streamed from one + system to the other. + + The packfile itself is a very simple format. There is a header, a + series of packed objects (each with it's own header and body) and + then a checksum trailer. The first four bytes is the string 'PACK', + + + +Chacon Expires December 8, 2009 [Page 7] + +Internet-Draft Git Server Protocol June 2009 + + + which is used to make sure you're getting the start of the packfile + correctly. This is followed by a 4-byte packfile version number and + then a 4-byte number of entries in that file. + + After that, you get a series of packed objects which each consist of + an object header and then object contents. At the end of the + packfile is a 20-byte SHA1 sum of all the shas in that packfile. + + +-------------------------------+ + [4 bytes] | 4-byte signature: | + | {'P', 'A', 'C', 'K'} | + +-------------------------------+ + [4 bytes] | 4-byte version number | + | (network byte order): | + +-------------------------------+ + [4 bytes] | 4-byte number of objects | + | contained in the pack | + | (network byte order) | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+ + [1 byte] | 1 | type (3) | size A (4) | |- object #1 header + +-------------------------------+ | + [1 byte] | 0 | size data B (7) | | + +-------------------------------+ -+ + | compressed object data | (B << 4) & A bytes + | | when expanded + +===============================+ -+ + [1 byte] | 0 | type (3) | size A (4) | |- object #2 header + +-------------------------------+ -+ + | compressed object data | A bytes + | | when expanded + +===============================+ -+ + [1 byte] | 1 | type (3) | size A (4) | |- object #3 header + +-------------------------------+ | + [1 byte] | 0 | size data B (7) | | + +-------------------------------+ | + [1 byte] | 0 | size data C (7) | | + +-------------------------------+ -+ + | compressed object data | (C << 11) & (B << 4) & A + | | bytes when expanded + | | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + [20 bytes] | SHA Checksum | + | | + +-------------------------------+ + + Git Packfile Format + + The object header is a series of one or more 1 byte (8 bit) hunks + + + +Chacon Expires December 8, 2009 [Page 8] + +Internet-Draft Git Server Protocol June 2009 + + + that specify the type of object the following data is, and the size + of the data when expanded. Each byte is really 7 bits of data, with + the first bit being used to say if that hunk is the last one or not + before the data starts. If the first bit is a 1, you will read + another byte, otherwise the data starts next. The first 3 bits in + the first byte specifies the type of data, according to the table + below. + + The 6 object types that can be embedded in a Git packfile. + + +--------------+--------+---------+ + | Object Type | Binary | Decimal | + +--------------+--------+---------+ + | Commit | 001 | 1 | + | Tree | 010 | 2 | + | Blob | 011 | 3 | + | Tag | 100 | 4 | + | Offset Delta | 110 | 6 | + | Ref Delta | 111 | 7 | + +--------------+--------+---------+ + + Table 1: Packfile Object Types + + Currently, of the 8 values that can be expressed with 3 bits (0-7), 0 + (000) is 'undefined' and 5 (101) is not yet used. + + Example of reading and parsing the header of a single object in a Git + packfile. + + 10010000 + |`-'`--' + | | `-- the first 4 bits of the data size (A) + | `----- '001' means that this is a 'commit' object + `-------- '1' indicates that this is not the last byte of header + + 00010010 + |`-----' + | `----- the next 7 bits of the size of the data following (B) + `--------- 0 indicates that this is the last byte of header + + (B << 4) & A => 00100100000 => 144 + `-----'`--' + B A + + Here, we can see an example of a header of two bytes, where the first + specifies that the following data is a commit, and the remainder of + the first and the last 7 bits of the second specifies that the data + will be 144 bytes when expanded. + + + +Chacon Expires December 8, 2009 [Page 9] + +Internet-Draft Git Server Protocol June 2009 + + + It is important to note that the size specified in the header data is + not the size of the data that actually follows for normal object + types (types 1-4), but the size of that data when it is zlib + uncompressed. + + Finally, the trailer records 20-byte SHA1 checksum of the rest of the + file. + +3.1. Deltified Objects + + There are two object types that are new here - the delta object + types. These are object data that are deltas of existing objects, + saving space in the storage. The instance that creates the packfile + determines which objects it wants to deltify, if any, in order to + save space. It is possible to send packfiles with no delta objects + in it, though it often saves quite a bit of space. + + For the two delta object representations, the data portion contains + something that identifies which base object this delta representation + depends on, and then the delta to apply on the base object to + resurrect this object. + + REF_DELTA uses 20-byte hash of the base object at the beginning of + data, while OFS_DELTA stores an offset within the same packfile to + identify the base object. In either case, two important constraints + a reimplementor must adhere to are: + + 1. The delta representation must be based on some other object + within the same packfile. + + 2. The base object must be of the same underlying type. + + If it is REF_DELTA, then 20-byte base object name SHA1 (the size + above is the size of the delta data that follows). Then the delta + data, deflated. + + If it is OFS_DELTA, then n-byte offset (see below) interpreted as a + negative offset from the type-byte of the header of the ofs-delta + entry (the size above is the size of the delta data that follows). + Then the delta data, deflated. + + offset encoding: n bytes with MSB set in all but the last one. The + offset is then the number constructed by concatenating the lower 7 + bit of each byte, and for n >= 2 adding 2^7 + 2^14 + ... + + 2^(7*(n-1)) to the result. + + + + + + +Chacon Expires December 8, 2009 [Page 10] + +Internet-Draft Git Server Protocol June 2009 + + +4. Protocols + + There are two transports over which the packfile protocol is + initiated. The Git protocol is a simple, unauthenticated server that + simply takes the command (almost always 'upload-pack', though Git + servers can be configured to be globally writable, in which 'receive- + pack' initiation is also allowed) with which the client wishes to + communicate and executes it and connects it to the requesting + process. The other transport is the SSH protocol, in which the + client basically just runs the 'upload-pack' or 'receive-pack' + process over the SSH protocol. + +4.1. Packet Line Format + + Some data transmission in Git is done in what is called 'packet-line' + format. This is where each line of data sent is prepended with the + four byte hex encoded length of the rest of the payload being sent. + This way the side receiving data can read 4 bytes and then know how + much more data is coming in that request. + + pkt-length = 4HEXDIGIT ; length of pkt-payload + pkt-line = pkt-length pkt-payload [ LF / CR ] + + In some cases Git will use a sideband packet-line format, where each + line is transmitted with the hex length prepended, followed by the + sideband channel (one byte) that the data is meant for, followed by + the actual data. + + pkt-length = 4HEXDIGIT ; length of pkt-sb-payload + sideband-ch = %d01-%d03 + pkt-line-sb = pkt-length sideband-ch pkt-payload [LF/CR] + + When a sideband is used, 2 means "progress messages, most likely + suitable for stderr". 1 means "pack data". 3 means "fatal error + message, and we're dead now". No other channels are used or valid. + + For the hex encoding, client and server SHOULD use lowercase, but + MUST accept mixed case (do case insensitive parsing of hex4). + +4.2. Git Protocol + + The Git protocol starts off by sending "git-receive-pack 'repo.git'" + on the wire using the pkt-line format, followed by a null byte and a + hostname paramater, terminated by a null byte. + + 0032git-upload-pack /project.git\0host=myserver.com\0 + + Currently only 'host' is supported in the extra information. It's + + + +Chacon Expires December 8, 2009 [Page 11] + +Internet-Draft Git Server Protocol June 2009 + + + for the git-daemon name based virtual hosting. See --interpolated- + path option to git daemon, with the %H/%CH format characters. + + Basically what the Git client is doing to connect to an 'upload-pack' + process on the server side over the Git protocol is this: + + $ echo -e -n \ + "0039git-upload-pack /schacon/gitbook.git\0host=github.com\0" | + nc -v github.com 9418 + +4.3. SSH Protocol + + Initiating the upload-pack or receive-pack processes over SSH is + simply executing the binary on the server via SSH remote execution. + It is basically equivalent to running this: + + $ ssh git.example.com 'git-upload-pack /project.git' + + For a server to support Git pushing and pulling for a given user over + SSH, that user needs to be able to execute one or both of those + commands via the SSH shell that they are provided on login. On some + systems, that shell access is limited to only being able to run those + two commands, or even just one of them. + + In an ssh:// format URI, it's absolute in the URI, so the '/' after + the host name (or port number) is sent as an argument, which is then + read by the remote git-upload-pack exactly as is, so it's effectively + an absolute path in the remote filesystem. + + git clone ssh://user@example.com/project.git + | + v + ssh user@example.com 'git-upload-pack /project.git' + + In a "user@host:path" format URI, its relative to the user's home + directory, because the Git client will run: + + git clone user@example.com:project.git + | + v + ssh user@example.com 'git-upload-pack project.git' + + +5. Fetching Data From a Server + + When one Git repository wants to get all the data that a second + repository has, the first can 'fetch' from the second. This + operation determines what data the server has that the client does + + + +Chacon Expires December 8, 2009 [Page 12] + +Internet-Draft Git Server Protocol June 2009 + + + not then streams that data down to the client in packfile format. + + The server side binary needs to be executable as 'git-upload-pack' + for fetching over SSH, since the Git clients will connect to the + server and attempt to run that. + + The basic communication structure looks like this: + + # Tell the client current branch heads and the last commit on each + S: SHA1 refname + S: ... + S: SHA1 refname + S: # flush -- it's your turn + # Tell the server what commits we want, and what we have + C: want name + C: .. + C: want name + C: have SHA1 + C: have SHA1 + C: ... + C: # flush -- occasionally ask "had enough?" + S: NAK # nope, keep sending 'have's + C: have SHA1 + C: ... + C: have SHA1 + S: ACK + C: done + S: XXXXXXX -- packfile contents. + +5.1. Initial Server Response + + When the client initially connects, whether over the SSH or Git + transports, the server will immediately respond with a listing of + each reference it has (all branches and tags) along with the commit + SHA that each reference currently points to. + + $ echo -e -n \ + "0039git-upload-pack /schacon/gitbook.git\0host=github.com\0" | + nc -v github.com 9418 + Connection to github.com 9418 port [tcp/*] succeeded! + 00887217a7c7e582c46cec22a130adf4b9d7d950fba0 HEAD\0multi_ack \ + thin-pack side-band side-band-64k ofs-delta shallow no-progress \ + include-tag + 00441d3fcd5ced445d1abc402225c0b8a1299641f497 refs/heads/integration + 003f7217a7c7e582c46cec22a130adf4b9d7d950fba0 refs/heads/master + 003cb88d2441cac0977faf98efc80305012112238d9d refs/tags/v0.9 + 003c525128480b96c89e6418b1e40909bf6c5b2d580f refs/tags/v1.0 + 003fe92df48743b7bc7d26bcaabfddde0a1e20cae47c refs/tags/v1.0^{} + + + +Chacon Expires December 8, 2009 [Page 13] + +Internet-Draft Git Server Protocol June 2009 + + + 0000 + + Each line is terminated by a "\n" by convention only, which is + included in the 4 byte length declaration. If a newline does not + terminate the line, the client should not complain. + + The exception is the flush line. A length of "0000" means its a + flush packet, which has no data payload. An "\n" after the "0000" + would break the protocol as the server would read that "\n" in a + context where it is expecting another pkt-line length declaration. + "\n" is not a hex digit, so "0000\n" is horribly horribly broken. + + HEAD is not included if its detached - that is, if HEAD is not a + symbolic reference, a pointer to another branch, it is not included + in the initial server response. The client pattern matches the + advertisements against the fetch refspec, which is "refs/heads/ + *:refs/remotes/origin/*" by default. HEAD doesn't match the LHS, so + it doesn't get wanted by the client. + +5.2. Capabilities + + On the very first line of the initial server response, the first + reference is followed by a null byte and then a list of space + delimited server capabilities. These allow the server to declare + what it can and cannot do to the client. + + Client sends space separated list of capabilities it wants. It + SHOULD send a subset of server capabilities, i.e do not send + capabilities served does not advertise. The client SHOULD NOT ask + for capabilities the server did not say it supports. + + Server MUST ignore capabilities it does not understand. Server MUST + NOT ignore capabilities that client requested and server advertised. + +5.2.1. multi-ack + + The 'multi-ack' capability allows the server to return "ACK $SHA1 + continue" as soon as it finds a commit that it can use as a common + base, between the client's wants and the client's have set. + + By sending this early, the server can potentially head off the client + from walking any further down that particular branch of the client's + repository history. The client may still need to walk down other + branches, sending have lines for those, until the server has a + complete cut across the DAG, or the client has said "done". + + Without multi_ack, a client sends have lines in --date-order until + the server has found a common base. That means the client will send + + + +Chacon Expires December 8, 2009 [Page 14] + +Internet-Draft Git Server Protocol June 2009 + + + have lines that are already known by the server to be common, because + they overlap in time with another branch that the server hasn't found + a common base on yet. + + The client has things in caps that the server doesn't; server has + things in lower case. + + +---- u ---------------------- x + / +----- y + / / + a -- b -- c -- d -- E -- F + \ + +--- Q -- R -- S + + If the client wants x,y and starts out by saying have F,S, the server + doesn't know what F,S is. Eventually the client says "have d" and + the server sends "ACK d continue" to let the client know to stop + walking down that line (so don't send c-b-a), but its not done yet, + it needs a base for X. The client keeps going with S-R-Q, until a + gets reached, at which point the server has a clear base and it all + ends. + + Without multi_ack the client would have sent that c-b-a chain anyway, + interleaved with S-R-Q. + +5.2.2. thin-pack + + Server can send thin packs, i.e. packs which do not contain base + elements, if those base elements are available on clients side. + Client has thin-pack capability when it understand how to "thicken" + them adding required delta bases making them independent. + + Of course it doesn't make sense for client to use (request) this + capability for git-clone. + +5.2.3. side-band, side-band-64k + + This means that server can send, and client understand multiplexed + (muxed) progress reports and error info interleaved with the packfile + itself. + + These two options are mutually exclusive. A client should ask for + only one of them, and a modern client always favors side-band-64k. + + The 'side-band' capability allows up to 1000 bytes per packet. But + the packet length field is 4 bytes, in hex, so 16 bits worth of + information space. Limiting it to only 1000 bytes for a large 800 + MiB binary pack file on initial clone is really quite poor usage of + + + +Chacon Expires December 8, 2009 [Page 15] + +Internet-Draft Git Server Protocol June 2009 + + + the data stream space. + + The "side-band-64k" capability came about as a way for newer clients + that can handle much larger packets to request packets that are + actually crammed nearly full (65520 bytes), while maintaining + backward compatibility for the older clients. + + The client MUST send only maximum of one of "side-band" and "side- + band-64k". Server MUST favor side-band-64k if client requests both. + +5.2.4. ofs-delta + + Server can send, and client understand PACKv2 with delta refering to + its base by position in pack rather than by SHA-1. Its that they can + send/read OBJ_OFS_DELTA, aka type 6 in a pack file. + +5.2.5. shallow + + Server can send shallow clone (git clone --depth ...). + +5.2.6. no-progress + + The client was started with "git clone -q" or something, and doesn't + want that side brand 2. Basically the client just says "I do not + wish to receive stream 2 on sideband, so do not send it to me, and if + you did, I will drop it on the floor anyway". However, the sideband + channel 3 is still used for error responses. + +5.2.7. include-tag + + The 'include-tag' capability is about sending tags if we are sending + objects they point to. If we pack an object to the client, and a tag + points exactly at that object, we pack the tag too. In general this + allows a client to get all new tags when it fetches a branch, in a + single network connection. + + Clients MAY always send include-tag, hardcoding it into a request. + The decision for a client to request include-tag only has to do with + the client's desires for tag data, whether or not a server had + advertised objects in the refs/tags/* namespace. + + Clients SHOULD NOT send include-tag if remote.name.tagopt was set to + --no-tags, as the client doesn't want tag data. + + Servers MUST accept include-tag without error or warning, even if the + server does not understand or support the option. + + Servers SHOULD pack the tags if their referrant is packed and the + + + +Chacon Expires December 8, 2009 [Page 16] + +Internet-Draft Git Server Protocol June 2009 + + + client has requested include-tag. + + Clients MUST be prepared for the case where a server has ignored + include-tag and has not actually sent tags in the pack. In such + cases the client SHOULD issue a subsequent fetch to acquire the tags + that include-tag would have otherwise given the client. + + The server SHOULD send include-tag, if it supports it, irregardless + of whether or not there are tags available. + +5.3. Client Response + + Once the client has the initial list of references that the server + has, as well as the list of capabilities, it will begin telling the + server what objects it wants and what objects it has, so the server + can make a packfile that only has the objects that the client needs. + The client will also send a list of the capabilities it supports out + of what the server said it could do. + + C: 0054want 74730d410fcb6603ace96f1dc55ea6196122532d\0multi_ack \ + side-band-64k ofs-delta\n + C: 0032want 7d1665144a3a975c05f1f43902ddaf084e784dbe\n + C: 0032want 5a3f6be755bbb7deae50065988cbfa1ffa9ab68a\n + C: 0032want 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01\n + C: 0032want 74730d410fcb6603ace96f1dc55ea6196122532d\n + C: 0000 + C: 0009done\n + + S: 0008NAK\n + S: 0023\002Counting objects: 2797, done.\n + [...] + S: 2004\001PACK\000\000\000\002 [...] + + It means the server is answering a prior flush from the client, and + is saying "I still can't serve you, keep tell me more have". + + I have thought that after sending "0000" flush line client can wait + for NAK or ACK server response... but it is not the case. When I + tried to read from server after "0000" flush and before "0009done\n", + my client (or netcat instance) deadlocked (hung) waiting for server + response. I either did a mistake in my fake client, or I don't + understand git pack protocol correctly. Should client wait for NAK + or ACK from server _only_ after sending maximum number of want/have + lines (256 if I remember correctly?)? Yes. It means the client will + not issue any more "have" lines, as it has nothing further in its + history, so the server just has to give up and start generating a + pack based on what it knows. After the client receives a "ACK" or + "NAK" for the number of outstanding flushes it still has, *after* it + + + +Chacon Expires December 8, 2009 [Page 17] + +Internet-Draft Git Server Protocol June 2009 + + + has sent "done". This also varies based on whether or not multi_ack + was enabled. Its ugly. But basically you keep a running counter of + each "flush" sent, and then you send a "done" out, and then you wait + until you have the right number of ACK/NAK answers back, and then the + stream changes format. + + > Should commands such as "have", "want", "done" use lower case or > + be case insensitive? These MUST be lowercase. > Should status + indicators "ACK" and "NAK" be upper case, These MUST be uppercase. + Though "ACK %s continue" MUST be mixed case, as I just wrote it. > + Should capabilities be case sensitive, and should they be > compared + case sensitive or not? No, they are case sensitive. + + One thing that I did not see mentioned in this thread is that the + implementation is allowed to buffer non-flush packets and send + multiple of them out with a single write(2). In other words, + packet_write() could buffer instead of directly calling safe_write(), + while packet_flush() must do safe_write() and make sure it drains. - + junio That's one reason why in JGit I call the flush packet of "0000" + end(), and flush() triggers the drain. JGit buffers everything its + writing, but only by one standard "have" window IIRC. JGit server + code triggers a flush() after side-band channel 2 packet ends, but + not an end(), because we only want to drain to the network, not + inject a bad "0000" packet in the stream. + + 0023\\002Counting objects: 2797, done.\n + 002b\\002Compressing objects: 0% (1/1177) \r + 002c\\002Compressing objects: 1% (12/1177) \r + 002c\\002Compressing objects: 2% (24/1177) \r + 0053\\002Compressing objects: 7% (83/1177) \r \ + Compressing objects: 8% (95/1177) \r + 2004\\001PACK\\000\\000\\000\\002\\000\\000\n\\355\\225 + \\017x\\234\\235\\216K\n\\302"... + 2005\\001\\360\\204{\\225\\376\\330\\345]z\226\273"... + ... + 0037\\002Total 2797 (delta 1799), reused 2360 (delta 1529)\n" + + Buffering. There are two processes running on the server side, git- + pack-objects is producing these messages on its stderr, and the pack + data on stdout. Both are actually a pipe read by git-upload-pack in + a select loop. If pack-objects can write two messages into the pipe + buffer before upload-pack is woken to read them out, upload-pack + might find two (or more) messages ready to read without blocking. + These get bundled into a single packet, because, why not, its easier + to code it that way. Its most common on the end like that, where we + dump 100%, and then immediately add the ", done" and start a new + progress meter. Its less likely in the middle, where we try to space + out the progress updates to around 1 per second, or 1 per percentage + + + +Chacon Expires December 8, 2009 [Page 18] + +Internet-Draft Git Server Protocol June 2009 + + + unit. + + +6. Pushing Data to a Server + + push - determines objects in DAG(C) not in DAG(S) and transfers them + via packfile + + send-pack | receive-pack protocol. + + # Tell the pusher what commits we have and what their names are + C: SHA1 name + C: ... + C: SHA1 name + C: # flush -- it's your turn + # Tell the puller what the pusher has + S: old-SHA1 new-SHA1 name + S: old-SHA1 new-SHA1 name + S: ... + S: # flush -- done with the list + S: XXXXXXX --- packfile contents. + + + S: 007c74730d410fcb6603ace96f1dc55ea6196122532d HEAD\0multi_ack \ + thin-pack side-band side-band-64k ofs-delta shallow no-progress + S: 003e7d1665144a3a975c05f1f43902ddaf084e784dbe refs/heads/debug + S: 003d5a3f6be755bbb7deae50065988cbfa1ffa9ab68a refs/heads/dist + S: 003e7e47fe2bd8d01d481f44d7af0531bd93d3b21c01 refs/heads/local + S: 003f74730d410fcb6603ace96f1dc55ea6196122532d refs/heads/master + S: 003f74730d410fcb6603ace96f1dc55ea6196122532d refs/tags/v1.0 + S: 0000 + + figures out what needs to be pushed, sends + + C: 003e7d1665144a3a975c05f1f43902ddaf084e784dbe \ + 7d1665144a3a975c05f1f43902ddaf084e784dbe refs/heads/debug + C: 003e7d1665144a3a975c05f1f43902ddaf084e784dbe \ + 5a3f6be755bbb7deae50065988cbfa1ffa9ab68a refs/heads/dist + C: 0000 + C: PACKDATA + + S: SHA-1 (20 bytes) + + If the remote receiving repository has alternates, the ".have" refs + are the refs of the alternate repositories. This signals to the + client that the server has these objects reachable, but the client + isn't permitted to send commands to alter these refs. + + + + +Chacon Expires December 8, 2009 [Page 19] + +Internet-Draft Git Server Protocol June 2009 + + + The ".have" refs say that the server already has everything in that + common shared base, so the client doesn't have to re-upload the + entire project if the fork started out empty, or had all refs deleted + from it. + + Because yea, it only matters for pushing. Actually, in the case of + fetch, we shouldn't advertise what our alternate has, the client + should just fetch from the alternate. In push it matters because the + client wants to know what the remote has, so it can trim the pack + down to only the new objects, to reduce transfer time. + + +7. Acknowledgements + + Shawn Pearce, Jakub Narebski, Junio Hamano, Johannes Sixt, Tony Finch + + +8. IANA Considerations + + This memo includes no request to IANA. + + All drafts are required to have an IANA considerations section (see + for a guide). If the draft does not require IANA to do anything, the + section contains an explicit statement that this is the case (as + above). If there are no requirements for IANA, the section will be + removed during conversion into an RFC by the RFC Editor. + + +9. Security Considerations + + All drafts are required to have a security considerations section. + See for a guide. + + +Appendix A. Additional Stuff + + This becomes an Appendix. + + + + + + + + + + + + + + +Chacon Expires December 8, 2009 [Page 20] + +Internet-Draft Git Server Protocol June 2009 + + +Author's Address + + Scott Chacon + GitHub + Redwood City, CA 94063 + USA + + Phone: +1 650 454 4539 + Email: schacon@gmail.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Chacon Expires December 8, 2009 [Page 21] + +Internet-Draft Git Server Protocol June 2009 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2009). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + +Chacon Expires December 8, 2009 [Page 22] + diff --git a/public/http-protocol.txt b/public/http-protocol.txt new file mode 100644 index 0000000..316d9b6 --- /dev/null +++ b/public/http-protocol.txt @@ -0,0 +1,542 @@ +HTTP transfer protocols +======================= + +Git supports two HTTP based transfer protocols. A "dumb" protocol +which requires only a standard HTTP server on the server end of the +connection, and a "smart" protocol which requires a Git aware CGI +(or server module). This document describes both protocols. + +As a design feature smart clients can automatically upgrade "dumb" +protocol URLs to smart URLs. This permits all users to have the +same published URL, and the peers automatically select the most +efficient transport available to them. + + +URL Format +---------- + +URLs for Git repositories accessed by HTTP use the standard HTTP +URL syntax documented by RFC 1738, so they are of the form: + + http://:/ + +Within this documentation the placeholder $GIT_URL will stand for +the http:// repository URL entered by the end-user. + +Both the "smart" and "dumb" HTTP protocols used by Git operate +by appending additional path components onto the end of the user +supplied $GIT_URL string. + +Clients MUST strip a trailing '/', if present, from the user supplied +$GIT_URL string to prevent empty path tokens ('//') from appearing +in any URL sent to a server. Compatible clients must expand +'$GIT_URL/info/refs' as 'foo/info/refs' and not 'foo//info/refs'. + + +Authentication +-------------- + +Standard HTTP authentication is used if authentication is required +to access a repository, and MAY be configured and enforced by the +HTTP server software. + +Because Git repositories are accessed by standard path components +server administrators MAY use directory based permissions within +their HTTP server to control repository access. + +Clients SHOULD support Basic authentication as described by RFC 2616. +Servers SHOULD support Basic authentication by relying upon the +HTTP server placed in front of the Git server software. + +Servers MUST NOT require HTTP cookies for the purposes of +authentication or access control. + +Clients and servers MAY support other common forms of HTTP based +authentication, such as Digest authentication. + + +SSL +--- + +Clients and servers SHOULD support SSL, particularly to protect +passwords when relying on Basic HTTP authentication. + + +Session State +------------- + +The Git over HTTP protocol (much like HTTP itself) is stateless +from the perspective of the HTTP server side. All state must be +retained and managed by the client process. This permits simple +round-robin load-balancing on the server side, without needing to +worry about state mangement. + +Clients MUST NOT require state management on the server side in +order to function correctly. + +Servers MUST NOT require HTTP cookies in order to function correctly. +Clients MAY store and forward HTTP cookies during request processing +as described by RFC 2616 (HTTP/1.1). Servers SHOULD ignore any +cookies sent by a client. + + +pkt-line Format +--------------- + +Much (but not all) of the payload is described around pkt-lines. + +A pkt-line is a variable length binary string. The first four bytes +of the line indicates the total length of the line, in hexadecimal. +The total length includes the 4 bytes used to denote the length. +A line SHOULD BE terminated by an LF, which if present MUST be +included in the total length. + +A pkt-line MAY contain binary data, so implementors MUST ensure all +pkt-line parsing/formatting routines are 8-bit clean. The maximum +length of a pkt-line's data is 65532 bytes (65536 - 4). + +Examples (as C-style strings): + + pkt-line actual value + --------------------------------- + "0006a\n" "a\n" + "0005a" "a" + "000bfoobar\n" "foobar\n" + "0004" "" + +A pkt-line with a length of 0 ("0000") is a special case and MUST +be treated as a message break or terminator in the payload. + + +General Request Processing +-------------------------- + +Except where noted, all standard HTTP behavior SHOULD be assumed +by both client and server. This includes (but is not necessarily +limited to): + +If there is no repository at $GIT_URL, the server MUST respond with +the '404 Not Found' HTTP status code. + +If there is a repository at $GIT_URL, but access is not currently +permitted, the server MUST respond with the '403 Forbidden' HTTP +status code. + +Servers SHOULD support both HTTP 1.0 and HTTP 1.1. +Servers SHOULD support chunked encoding for both +request and response bodies. + +Clients SHOULD support both HTTP 1.0 and HTTP 1.1. +Clients SHOULD support chunked encoding for both +request and response bodies. + +Servers MAY return ETag and/or Last-Modified headers. + +Clients MAY revalidate cached entities by including If-Modified-Since +and/or If-None-Match request headers. + +Servers MAY return '304 Not Modified' if the relevant headers appear +in the request and the entity has not changed. Clients MUST treat +'304 Not Modified' identical to '200 OK' by reusing the cached entity. + +Clients MAY reuse a cached entity without revalidation if the +Cache-Control and/or Expires header permits caching. Clients and +servers MUST follow RFC 2616 for cache controls. + + +Discovering References +---------------------- + +All HTTP clients MUST begin either a fetch or a push exchange by +discovering the references available on the remote repository. + +Dumb Clients +~~~~~~~~~~~~ + +HTTP clients that only support the "dumb" protocol MUST discover +references by making a request for the special info/refs file of +the repository. + +Dumb HTTP clients MUST NOT include search/query parameters when +fetching the info/refs file. (That is, '?' must not appear in the +requested URL.) + + C: GET $GIT_URL/info/refs HTTP/1.0 + + S: 200 OK + S: + S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint + S: d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master + S: 2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0 + S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{} + +The Content-Type of the returned info/refs entity SHOULD be +"text/plain; charset=utf-8", but MAY be any content type. +Clients MUST NOT attempt to validate the returned Content-Type. +Dumb servers MUST NOT return a return type starting with +"application/x-git-". + +Cache-Control headers MAY be returned to disable caching of the +returned entity. + +When examining the response clients SHOULD only examine the HTTP +status code. Valid responses are '200 OK', or '304 Not Modified'. + +The returned content is a UNIX formatted text file describing +each ref and its known value. The file SHOULD be sorted by name +according to the C locale ordering. The file SHOULD NOT include +the default ref named 'HEAD'. + + info_refs = *( ref_record ) + ref_record = any_ref | peeled_ref + + any_ref = id HT name LF + peeled_ref = id HT name LF + id HT name "^{}" LF + id = 40*HEX + + HEX = "0".."9" | "a".."f" + LF = + HT = + +Smart Clients +~~~~~~~~~~~~~ + +HTTP clients that support the "smart" protocol (or both the +"smart" and "dumb" protocols) MUST discover references by making +a paramterized request for the info/refs file of the repository. + +The request MUST contain exactly one query parameter, +'service=$servicename', where $servicename MUST be the service +name the client wishes to contact to complete the operation. +The request MUST NOT contain additional query parameters. + + C: GET $GIT_URL/info/refs?service=git-upload-pack HTTP/1.0 + + dumb server reply: + S: 200 OK + S: + S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint + S: d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master + S: 2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0 + S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{} + + smart server reply: + S: 200 OK + S: Content-Type: application/x-git-upload-pack-advertisement + S: Cache-Control: no-cache + S: + S: ....# service=git-upload-pack + S: ....95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0 multi_ack + S: ....d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master + S: ....2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0 + S: ....a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{} + +Dumb Server Response +^^^^^^^^^^^^^^^^^^^^ +Dumb servers MUST respond with the dumb server reply format. + +See the prior section under dumb clients for a more detailed +description of the dumb server response. + +Smart Server Response +^^^^^^^^^^^^^^^^^^^^^ +Smart servers MUST respond with the smart server reply format. + +If the server does not recognize the requested service name, or the +requested service name has been disabled by the server administrator, +the server MUST respond with the '403 Forbidden' HTTP status code. + +Cache-Control headers SHOULD be used to disable caching of the +returned entity. + +The Content-Type MUST be 'application/x-$servicename-advertisement'. +Clients SHOULD fall back to the dumb protocol if another content +type is returned. When falling back to the dumb protocol clients +SHOULD NOT make an additional request to $GIT_URL/info/refs, but +instead SHOULD use the response already in hand. Clients MUST NOT +continue if they do not support the dumb protocol. + +Clients MUST validate the status code is either '200 OK' or +'304 Not Modified'. + +Clients MUST validate the first five bytes of the response entity +matches the regex "^[0-9a-f]{4}#". If this test fails, clients +MUST NOT continue. + +Clients MUST parse the entire response as a sequence of pkt-line +records. + +Clients MUST verify the first pkt-line is "# service=$servicename". +Servers MUST set $servicename to be the request parameter value. +Servers SHOULD include an LF at the end of this line. +Clients MUST ignore an LF at the end of the line. + +Servers MUST terminate the response with the magic "0000" end +pkt-line marker. + +The returned response is a pkt-line stream describing each ref and +its known value. The stream SHOULD be sorted by name according to +the C locale ordering. The stream SHOULD include the default ref +named 'HEAD' as the first ref. The stream MUST include capability +declarations behind a NUL on the first ref. + + smart_reply = PKT-LINE("# service=$servicename" LF) + ref_list + "0000" + ref_list = empty_list | populated_list + + empty_list = PKT-LINE(id SP "capabilities^{}" NUL cap_list LF) + + non_empty_list = PKT-LINE(id SP name NUL cap_list LF) + *ref_record + + cap_list = *(SP capability) SP + ref_record = any_ref | peeled_ref + + any_ref = PKT-LINE(id SP name LF) + peeled_ref = PKT-LINE(id SP name LF) + PKT-LINE(id SP name "^{}" LF + id = 40*HEX + + HEX = "0".."9" | "a".."f" + NL = + LF = + SP = + + +Smart Service git-upload-pack +------------------------------ +This service reads from the remote repository. + +Clients MUST first perform ref discovery with +'$GIT_URL/info/refs?service=git-upload-pack'. + + C: POST $GIT_URL/git-upload-pack HTTP/1.0 + C: Content-Type: application/x-git-upload-pack-request + C: + C: ....want 0a53e9ddeaddad63ad106860237bbf53411d11a7 + C: ....have 441b40d833fdfa93eb2908e52742248faf0ee993 + C: 0000 + + S: 200 OK + S: Content-Type: application/x-git-upload-pack-result + S: Cache-Control: no-cache + S: + S: ....ACK %s, continue + S: ....NAK + +Clients MUST NOT reuse or revalidate a cached reponse. +Servers MUST include sufficient Cache-Control headers +to prevent caching of the response. + +Servers SHOULD support all capabilities defined here. + +Clients MUST send at least one 'want' command in the request body. +Clients MUST NOT reference an id in a 'want' command which did not +appear in the response obtained through ref discovery. + + compute_request = want_list + have_list + request_end + request_end = "0000" | "done" + + want_list = PKT-LINE(want NUL cap_list LF) + *(want_pkt) + want_pkt = PKT-LINE(want LF) + want = "want" SP id + cap_list = *(SP capability) SP + + have_list = *PKT-LINE("have" SP id LF) + + command = create | delete | update + create = 40*"0" SP new_id SP name + delete = old_id SP 40*"0" SP name + update = old_id SP new_id SP name + +TODO: Document this further. +TODO: Don't use uppercase for variable names below. + +Capability include-tag +~~~~~~~~~~~~~~~~~~~~~~ + +When packing an object that an annotated tag points at, include the +tag object too. Clients can request this if they want to fetch +tags, but don't know which tags they will need until after they +receive the branch data. By enabling include-tag an entire call +to upload-pack can be avoided. + +Capability thin-pack +~~~~~~~~~~~~~~~~~~~~ + +When packing a deltified object the base is not included if the base +is reachable from an object listed in the COMMON set by the client. +This reduces the bandwidth required to transfer, but it does slightly +increase processing time for the client to save the pack to disk. + +The Negotiation Algorithm +~~~~~~~~~~~~~~~~~~~~~~~~~ +The computation to select the minimal pack proceeds as follows +(c = client, s = server): + + init step: + (c) Use ref discovery to obtain the advertised refs. + (c) Place any object seen into set ADVERTISED. + + (c) Build an empty set, COMMON, to hold the objects that are later + determined to be on both ends. + (c) Build a set, WANT, of the objects from ADVERTISED the client + wants to fetch, based on what it saw during ref discovery. + + (c) Start a queue, C_PENDING, ordered by commit time (popping newest + first). Add all client refs. When a commit is popped from + the queue its parents should be automatically inserted back. + Commits MUST only enter the queue once. + + one compute step: + (c) Send one $GIT_URL/git-upload-pack request: + + C: 0032want ............................... + C: 0032want ............................... + .... + C: 0032have ............................. + C: 0032have ............................. + .... + C: 0032have ............................... + C: 0032have ............................... + .... + C: 0000 + + The stream is organized into "commands", with each command + appearing by itself in a pkt-line. Within a command line + the text leading up to the first space is the command name, + and the remainder of the line to the first LF is the value. + Command lines are terminated with an LF as the last byte of + the pkt-line value. + + Commands MUST appear in the following order, if they appear + at all in the request stream: + + * want + * have + + The stream is terminated by a pkt-line flush ("0000"). + + A single "want" or "have" command MUST have one hex formatted + SHA-1 as its value. Multiple SHA-1s MUST be sent by sending + multiple commands. + + The HAVE list is created by popping the first 32 commits + from C_PENDING. Less can be supplied if C_PENDING empties. + + If the client has sent 256 HAVE commits and has not yet + received one of those back from S_COMMON, or the client has + emptied C_PENDING it should include a "done" command to let + the server know it won't proceed: + + C: 0009done + + (s) Parse the git-upload-pack request: + + Verify all objects in WANT are directly reachable from refs. + + The server MAY walk backwards through history or through + the reflog to permit slightly stale requests. + + If no WANT objects are received, send an error: + +TODO: Define error if no want lines are requested. + + If any WANT object is not reachable, send an error: + +TODO: Define error if an invalid want is requested. + + Create an empty list, S_COMMON. + + If 'have' was sent: + + Loop through the objects in the order supplied by the client. + For each object, if the server has the object reachable from + a ref, add it to S_COMMON. If a commit is added to S_COMMON, + do not add any ancestors, even if they also appear in HAVE. + + (s) Send the git-upload-pack response: + + If the server has found a closed set of objects to pack or the + request ends with "done", it replies with the pack. + +TODO: Document the pack based response + S: PACK... + + The returned stream is the side-band-64k protocol supported + by the git-upload-pack service, and the pack is embedded into + stream 1. Progress messages from the server side may appear + in stream 2. + + Here a "closed set of objects" is defined to have at least + one path from every WANT to at least one COMMON object. + + If the server needs more information, it replies with a + status continue response: + +TODO: Document the non-pack response + + (c) Parse the upload-pack response: + +TODO: Document parsing response + + Do another compute step. + + +Smart Service git-receive-pack +------------------------------ +This service modifies the remote repository. + +Clients MUST first perform ref discovery with +'$GIT_URL/info/refs?service=git-receive-pack'. + + C: POST $GIT_URL/git-receive-pack HTTP/1.0 + C: Content-Type: application/x-git-receive-pack-request + C: + C: ....0a53e9ddeaddad63ad106860237bbf53411d11a7 441b40d833fdfa93eb2908e52742248faf0ee993 refs/heads/maint\0 report-status + C: 0000 + C: PACK.... + + S: 200 OK + S: Content-Type: application/x-git-receive-pack-result + S: Cache-Control: no-cache + S: + S: .... + +Clients MUST NOT reuse or revalidate a cached reponse. +Servers MUST include sufficient Cache-Control headers +to prevent caching of the response. + +Servers SHOULD support all capabilities defined here. + +Clients MUST send at least one command in the request body. +Within the command portion of the request body clients SHOULD send +the id obtained through ref discovery as old_id. + + update_request = command_list + "PACK" + + command_list = PKT-LINE(command NUL cap_list LF) + *(command_pkt) + command_pkt = PKT-LINE(command LF) + cap_list = *(SP capability) SP + + command = create | delete | update + create = 40*"0" SP new_id SP name + delete = old_id SP 40*"0" SP name + update = old_id SP new_id SP name + +TODO: Document this further. + + +References +---------- + +link:http://www.ietf.org/rfc/rfc1738.txt[RFC 1738: Uniform Resource Locators (URL)] +link:http://www.ietf.org/rfc/rfc2616.txt[RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1] + diff --git a/public/images/book.png b/public/images/book.png new file mode 100755 index 0000000000000000000000000000000000000000..b0f4dd7928cc5714e002fd2a6e8f2faac0073f00 GIT binary patch literal 593 zcmV-X0l6k>CGhc0FIuigU9U^L+D`6bSr zIEp(+L4eIgaZT(|{B!*DbrTYc1t0J9*MLJm+n zOEVloE20S^g6s|1rvjjuW1W$TV;&TbK2|slm=91)Q{X{Kg;c!Saglq7xo8`(>{A}G zw@`8gScq(adr(4@;>^%e<~7+uNMv&?8L0#%0yj~@DW&fPImKeyFHkRKuNERO3(SOB z?S)niZbFEN`0<|w+LjBKR#DU7F3d&rQGGY&Y)Fv0w002i=Jm_>x9jBX>wg3XCKK`E f>xbvJ_5i;DeEQXvyE?}U00000NkvXXu0mjfKqCEw literal 0 HcmV?d00001 diff --git a/public/images/books/gitbook-cover.png b/public/images/books/gitbook-cover.png new file mode 100644 index 0000000000000000000000000000000000000000..75f68b42aede5adffc56213f3ca2e114ac2bb1b0 GIT binary patch literal 14672 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 SMmX3u17Ns??sqeAzyH}`RZ%Gb literal 0 HcmV?d00001 diff --git a/public/images/books/progit.jpg b/public/images/books/progit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..696fad19842cf9c7f1bb2a1b05164b718a577ed1 GIT binary patch literal 9721 zcmbt)2UJtr*7b=215zSQDS;rM2#8Xp6Aj=GC&y^n9jk@GcmKXFfg!QU}fjz zgu~%X=Xv;excFdPaIW890wRADavDNUMMclW%)rd`e|?bZ00t@m58%Nd9^e!M2+RN? zH34w)JSjnc9Kc@(=oFZOJWDF-Gc@EIO3wnPKw$7G^8CpF$ae>k-v=ldC>bw^DxYT3 zw}$YzF^h#JyrJT~QBu!h(1+&}zwaJKedgSGRyOvFm-sIW2ues^my(u|Rk^9Ermmr> zWq8NP*u?a%nT_p(hj#W3jvk&~-afv5{^3uaMnpb)9+jAsobodD)$6pk**Up+`R@we zfBy2d^jleZ#rKBBrskH`w)T$xfx(|c!y}_(Gqc#a`32nK((>lk_Rj9!{=wnVZ(JY% z{3k5(`A=Z~z{Nnub&Bj33dnC1KIx>u(1CpWPbzu7p^gY77QXg56l1{fa9xCm$OdQ*pq;; z7*soBU+t=GI0?`!a$52~#1PL&kpMmwbrMjL2tBz}kr#3REh`@S%F|csCw#v$?pAex z->WO`A80$~;>!&n@}J`hSTbc4gj^aY`G4+QQpvwnA_faD+0E*F{9;{Rn? z{kCVRxMWtTt4*CP1y>MJ-}u5N33!(ElKMiXG$H1FmU@W3QHtS7FKe{_{Sa}~%=yg= z2Drwf0;LblH7z8-(@Q}XiuC{Jm%Y4aes23#b(t`m7n4$lNVR!FuiY+-_kOck^?X%{ z*5(ym*()|QTTi43K!JJl_b(Gm`}}PV5<8+Tw*p?gQF;}4GV>J_=dq%ebw?3CJY*ET z_&x1Q8O@$uCs&5(%B{-Y-9qWEGBcgs?}rbfW58KsRJeHQd6eu>T&wKjx0j=HVYZnP zv2*f%;;Xj{D~IQAi?7|;#V{`W=eY3|!>D1})Mvv&vl~M4IbE59?|`Bv{LW}JQaX$7 zo(QyVSjW0+97YNs^cJFNxmLn^W>GzkN*)76kco|h+u#Zi`hhQ9<;Jxy?7%=D4^sB>h}inYQ}9<@hlmV+y@;Lh zI4K8ywxy^!dESR##&1%C{pb<~k4S*oKAhH`@$vY(TUPE}qWu+xvo`9+p4JW(KX}pQ z{kG3-E&j?^u!97KJ5oUbjY;;}8lH)j(s$G-DXUHeD*Rj~oaA62%3o2Ba0;sLQ zT{fFc=nC%AUD2nqNs05sn(eM)z0rr6=Pg*#PdXFbhJRri-j<=(s1qsKAVo6o$6_-) ziyj<1$(4;ywD3<$3mWT?)l{+Gq%(_TtyI9hCk#K7~*Po$`sNLpl;odEyrrb zmocM6CP;(AIi6gtlWg+BLo%B9S=2V9U)~`BfWtR8jjb!eE?sMh9zsby*n6r$x{PlN zZZO?5K!t9yC|+mQSM@wgJ^?J->I7yxqQ=V@5@5pzKhp6)Y7cjj0K9(jA&)HLBsw0o zB>6)EQWsPmU>Io`;J=qc0_6LCv9^}H2i4gCb9TI^W5c~Qu!)yBd$?WQ<@#f*zhsWz z4`HTPgYZVjiUDdsFc`;4&9Nz+p5X^h}Lmm|ieK)&sBz4{tZngDeW1hIYnJ z+)1ieY>3|DcL1!U+spui051C8dJ9+4X1OOg98GQ6k1F_5^BEDA)AI%zH2a}FH&9xt zG6u@9Jemvj*iY~jfZ}nxVH@i;ww)ao9)^WEii;Lvao_L2Ezvu9u@<()$bBs^;l~+W z7E>GUkRlOHNC5(u3-~B97&EG=h}5^3x}(_l6vU1eu(}bWIVKv!M*?%0;K|b2%(IoI z^9G}5yb~J}c8V?V>jjTt&kQpfDV3%JhT~r6cLqEPcr6t6zPNWUMzLk`_~yWmoNIGD z6jLIKHZX5ROp4vIzv_qh?6LMz>sPJvJ@p>L^R4ry#y&^QDNn1bq&z^iwpz~aI#@>d6r)i3Bx?Po)HL%seE@nA+F@uGD7ZN}}TEl~0x~J#!E$>`R-VJ`a z>y-S?)NKlKX~ozeEl3|Fnqfj+G(LD;+j8*q zGgez8COXOQncAtKp`$%XW=D_N+4M^6g_Mi1kNJ;6=}u zlNb7m9+rydRF%g@z_*c1!z4Fh7|8o9sep zFK95@mJ8dT1cOEIPfw?LaOt|mqh3UV??nKq6g<|U*B19IiSb$2xY(qGNnfTXAjn$=NMxIsg8<>Ld&?4TP+;atPs z5Reu0zEY3=U83xPK34DaNcxG1j`3%j(xQ*H+xO!#rJz+6ONl^x5!FJuz|TF=LN4cF zb(IE_+c;P69qIcy1$8Z_>HWZ5d1$I}SJs&N*nz~lU2Ok%D9Bgk?q*TZk@IsHqs3b` zz1JdfycIG;BX!H(jh#3K3;Xj4A5!sJk8@087aTw{CY%AFdqNDFKRuIE#Y~(&R=y69 zaWD9#Q*75*(I%SQqG6tr(5_kWtOJWwh%OqLrHZ!8TZpJ0r7QbHMn;acbCQ_ z7cz%BDcl;~6>en#_iLCW>W*djJH0%n@{KbEyIpMZ@e!ZTtHj=&&=zfY@SW+`N`Ks0 zr*nA%7sPM&U;7c}2dQPjiB6T4pvRjpR%y+t-3qu9oSDLLk4{Uw?em#aoR=tem!^v0 zLsh$p`9_0F6==wJTd9JiyeKsjM$(VX2V{|XIuHXp?IJ4uY z+;$0z$=N!yw$g=qkRI{hDi!u-TjW_`1N zB_JoFM(qEPfNBqU*#9j7*$o^H_mS&KI05CGUwl-F#0dvZA=QaZ$jy^k%n{CsFkcLg zs+}`5pCK88_ zs|^_st#=+(EMGLkeDj)L|GJu9n;XZd7ZEI)T3>Qdqae!HfAMxFPxsRi@h1Sc+-Fm4 z?%hpHLoLgJN`vv_h2iYdZxORbPs|U0&8rD^NdY3#hU3G%lQhHU8&RKsysX^w#RbSQ z@o92*9M~H%>ek~Ajhn?Dlxf&a zBgc-uJ4@Y~)z1BkRcn>fPSzqj*_7V%d}*uc&{G7q&Ds}VbACR0{PDwT?t*~JMbX2? zpLb4qA7f9K5V-?oHtj-lRf?9DUv59(tt?9l)K!;L=7e%movu#WE7{a7&2lum6#B-| zMD||(2%-O_hlETci_xLRH09Dgc;oT&8Xn@0;i02n=_}=L%0nNf<81hB0(CWUt{u_4 zvlTX(HgD8k%D#{LjQ-e>^xbT9%C024?soG04Jlky^${Xr>+b#;T`;9}T-Wdeyh~%r z0cKV)C093hExJWBlx^}wJFdU{CuJ<4pwWuVa~eU}-c&nydoL{UN=`lDX%Ls2rD-6Y zS^R`*rZat7fh9wbne5cqi&^z&62(ldGbpH|kF2fn(2C^X(2tUdU-6ZZ+>~R!h~^)U zf_rKi-fW(K>J@apb!;JXmZt!gx=+oaM-ioLSROOdYFR7k7uPDRsN=F1Ro!oF6s6r+ zX>OG8{nEkx+bFXo$ZFq58E)Tn-Cz-v=cwdXQsaX=Tkn~j+6|Ml**wh67k_X$Tr=$CXy51GS$M4YSJ+nm}z=hmg>D=Z>(v?^Z90xl9lNicL=?zX!qmD?tc z-B-Gp95Z=${+To{7v^b@_ObcOSa;-`Ma;<2$NA9mG}~9^T{hdyg7}eT8Og1LPSGnq z&U}n&)IIX-7O+Cp!`6%<^GctINfMB?U8MJ+(q(vEb^?k_qz1&U8bu{#RC*9~eEhFP zTMCEf2)fm|Y!;uVC0fp4zRPZ9#mbT!ix{)8EiaD}G~rjdOt-q>8dBT%iJ-9le2aT* z*M4U$OQYX|xp8S*{_tUpz7clwrtwhC9cjQ$dUy9|_<3{T_~nLQr(#KVIEvl7d)igHzFu*+#qp>wrDLOewFpXqQ9d%J z*#DyOOS@wE^tuoI_>qx`x2v|)EfIvTzZEL;=g%|x5iR0{0_#2f#Un$8QmemaG+61kkLKa^bde;F<@Vk5Ju66Nm^*h2y+IY>YvZ#HVA9YRd9 z7#?8RMi7`?h#C=pGpr5>e}3gp>LdZPMYYQxQRvd`ko{uw6Eu-;5kHAU%{FJ|(BAO@}-V)$-biW$Le34dC zx>N0KEpJ*?^85Cp)uT)g62NLzj=io;X7U?VOf!_LW~e3-Ks%vZ&wEde<^Dvdt61>s z6QSy)+2Y9by#P4$X;JpcJK-n6HflAxH)oF4yG0aahoiHSrHgN-Fh z?ku;AZ)a4)4J$dGg=YvTPrVd9?%P0qd*Uqr;7yk@mFHGPi`vbY)|Gq3tJ?zPd}DXd z#PGX5OmMhNFo4;#j%csy!H#UkMAnGmOY<@|wKZOvA74vdW8f8QQ)bbxJxnKHzvRq7PY3K{jh^pW_<*LcgzgbLYwV8rXc5l~rXwXhWK5VbX z-0R+OQOj_cO&<8(=T-Z9mVW^)Om@rJNcaq?o-88Msl(?Tkqc#EoOPMof59C9lT9Y22WOgSS3TvvVN~M!-;=|EOP=G6ld(TCQbOnjg2t@* zf>+tobDFu*EoVO+`X_3(OYaoFDB7k~GdaoF^%KZRa+&!W;Nv``@Ev86|Kh0itFG|m zgck?i2eOyGnPdguDXdQ*0r&J+7LW`FCs|%1-lFWwB9Lgh6%sJ?F)oq>FzyILuuwAL z1h@na$wm*f)4DZf-lv9r8m9qe`ppe9VSCQ1ejwZ&tkTTq>uvS&9jHsnqNn06ke2s| z-CePAHNwWFXsWgMN4wziB02qcCOK6V{L&A(HjW)oZA^_eyr&o3!ej~04^6tzA;^m& zpeu?GcIrsL?(l%we#=HgjQ~C?yeSi2ojGrF^;79*t%M(CZ0h53nN@B`@izT@560Dd zKgz6IdV>me&*dYb;YX$Z&R6L+hSsVTDAPJJv?lu*br5wdYIsJ`Mi>RclWWdUj8jc9 zFf3nQ{4DC^&XY((^!54i(;{8!D4gEI&g*+U+=NEywne%if%zzn?t3ku!?NgUhF*Ag zni$KS`QWWJgjnn$0<)wc9#$@ReUqRi;=hk0IH(&;Gg3phq=Z*m^UZ);o7Em|6v>DH zuEFw76t#Q-?>skGI9IiOUHc8ASByDv$)Sq~Go2L~MRd0wNyb zU#fs#baNCFg7qw0E#;2Sy+e*>H&}tAC$ao8BtQp~wkH??Qf0pV$M~baQb)`^Tb%l< zyOP{#{)44pWR|+{-z+tt6bROW`fKSEJ??-b;hho&c2W9kN4LR|`O-aFpjL2^Xo7|e zS8aEy{O+R1ws#g~H+{e^F3LbWdK(=Z(C>NZ2mT}h$m8??mdAH7M>6#yCvRYA%-GQSl zlYyMj5i1y0dSx)})>%NI9{I`&v)wGQBd9zF6WZskanR%z59~yXTDKjY0c77fk3ce& z)(-n)UEg!SiXgn1IKo~I7){w~@d)7wH`8Uc+n75I&W8CDzk-hRk6B>Et{MiJp7Y`P zCyIKO?PMpPwPKvQbt`x=V)(A?M|7?J|8gw0BzkC}QcPe&KT|LNT{snPDN!$Ga^`E{<+> z>u#7Lhr*LydhuS5!(Q=jC?5)Hc^OoPKF0=g@9e#wY$F!}p%4M4PxO{_Sm{QrYhL}h zW=Zd^443i;jDdM~_&Z#fM(#uT#PMjUE-}a_5};6!wZqRx8?d>iv|7PA9A1|Nu>spt z(4ql%8BQJUIcFFeyai+QSW=&FgY=>e_7A^=xwWmVUIuw=Zy5@X;O57mx%?N5{47OS zS|PBxG{r5SmZ|sAsNLEOU=D2?raZlS6a`p3<@j9hLyL_cC9}xwY}VFEpx|=w#^FL* zPI!oaOob(s^C{$b+%5u$#l!#tje+B$b@F(<0*U-Y@Yz2U+*LXW^fxg*{-kaP8KL1! zD&9=A>t*mx@t&Z}$?L$2b@0st5qi`-*+;UQJtLoN_U!Pl01z>qoJq;0!l1~R%Wp&e z7{5h&@_OY{A*&yMiuA>KLJO#a%Q!*;9S5;R1F@5~kTwntv40!&38by5tw9M{(q2Sh z{2yQSU6;v%*hSBg09pM(o26DqvUnn$ONc{h0Ty%qbHSHVN-C44s`-O;{px>!^JJ}p zl(HysTxd`E&?s-WMDam*@-9IjJG@T1N67X_dYMsaO(T(6TM)z~(PSvGIFIPn=*G;rx6J_1TQiAtR ziw}fHKMY~EK>@C#0L%)G?2q3P-Txk*5Qgeu4w?xMPw2(#3TV!~`q_VX{Ty3A+;EywNt{(e7`<{L!|qQv&r8Kts zKkVFC6H_AekpWW+G>cox5jYV#Avd6-ffwT&i3n*06qf7-EwUGi;rOmerdGY3sT1MM z>ex3SztyOJDN;S;M)x0z)NjW8dp$`EO$UNinT>vb%#`wU=rCJOZqBKN)RoCJ>0CID znLN3bu~hk;9M0bbRh-QsJ7DRy3xA&5vuRf@qaYybBi(~jI`U|1TT`N63+)Z&iQaAT ztDoL-$lA`Nh8?kc2iPf8z|sKA$Y@)5p16kJ+-~dUnOo>!_-z4`VsMy0bVccmom*1(^N!p9jJ6RC#X_#F! z9H%*GS3FRV)3dcP6urHs1nv3JEd~u9M2A4QJ?l4gmaC6~RIdifZMXUZ7Sncov|(QNBodqMGPzWkgA64-U$ZW&I8oVnlAxP=Zlz71JIt?K`21Aqj? zO=5PBe;Z-yFT?z|5k>|7KaKD^DU%IxZ74BH>Do8@9@M<%Sf~ri1?{RxS znqz(L)?pnX`bI?EswP-L@Y3eF$UOM`qjzpM%FFKrtacoi_{j75DSS5xpsU3V z+$I5aUx>{Au#-t)z1L&ce&OmSaS5Hz${Z0RlaZXzQtjK@RqZZj$N&K=k>b^B4l^j)&Vhy2gW-R}Y@=ZDB`A~FE_&bk&ib{xm|Hx~atuw@h3urpQ!<#4YC z+m4vYRQ#8hE|Y)L_uuSUZ2mTGt*euW>fEs2rIjKaBi-g6AIk?yjk!6!gQ7|?_zyvL zd-nL0rpG7g1&-$oQ1r8W@Q(qxEUvS(-So>}Yn(~IYq8ExpN(DBTNSULWD@M&p2ldH z?pC^u(O-n)nTD!TjRuN$3P-P$%5kI%y*u!A<`MmVqP$S6A@u4XbQ(!_fW39yY%NS< zIY-4EbEOw!3L#t)bt z_!QNxs$Ic`zgRC@>_?{Xl?t#wwZ7fUCB{3M*@hCj!)IB#%x9-7-f2^X+9n`jlX6c6Q2 z=w(RCEQ%tSr8pR*O86))xEdPUL4BqRJ5v+Jj+$vYoRwk+-!Z=Wd3{>ys5VtG2R&3} zc0K!X?#1fd`S%vhK?+^&68!de%~Yc8-fcq_q+up1s*mL#+|9|^vDA3h7ws*5&#rE` zY^aCb@l#wY&78#@l)fcY>RkpO#>(&B>)L6#UB-o`PhJ-syf8U9z@<5v}T`rCU>2(2?_*j#3l zi<;jP-CwQ_iRv3Gt1{n7{=GX&PBtrl3M+pJEUYz>`0kY1DX4}0_v-JR6rGJW3o(^q znN243Q)daHe$yN0kq7=e>j8Egd@U5u)Qlph)v;+OGzvmwHgtl6TZ<0FiHuG{u3nsc z&M67O4#MRBBEWCwtnYCYu9T}w`^sxI4hGNd>;%CVNx(GMb+<61f&h(TzhL!>;HD`u zpECT-r&UgS{MbDkd^`y#{*z&AP3>C$PLl5A2ARCCMF}|xx<(B9IcRci^BPgIRD@N`T@dYcn>p@u!=`4cpb>)u9P2L3s+CH@l1?ynr(o8Q?SSMi!px8kD2 zacpm&5N=JR@;yXZ^LXXGj#ui|P&^G479a9q|ZM@loQyEo_` za2JB>%T%WbgOu<5_$5qcV%P$z^;s(<{>Ge*t0~$(;ZI literal 0 HcmV?d00001 diff --git a/public/images/books/pvc_git.gif b/public/images/books/pvc_git.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1732e4bf97b384b686379419726ac12ddd031a6 GIT binary patch literal 20595 zcmZ5{c|c72`~Nv-mNWa-zM59kYABQzGwo%Y2qR%ykZglwTDWJHnkbqmLNO@}!bBLv zJu@vrGSThEjXPya(r0YlxUPPE|NWgm&L8KTKc46Hyq?$docHs7$HvD51*bLveZW7! z|6LOk6E;lN_AOh-w!ZeBS%K z_et-Qt|wg&x_;a9+nUvDtXVc!E?srBc0PHc4ubG3mQ7aHR%>gU0|zP&A3lET*6%-l z{2Ckk@%i)E=;-I+;nBBmho3y@eej@b%a*Ng-n_MUaKCo_c9F8=QP-0@cMUII4*t>m zobBqxw3_1dlQ+GOJpFyo ztn97G6!Olzot4Kb9i1E}vHbDt$Jmdt&tsoQKTje$Jc;Flt_K-wGghXo#FKC=Yv!`# zrR%cRW^LJU>B_~fCy&}6wB0q_c{}{(<=~6n=YK3%G@rqu`Ez}Pf@jCY$0jXZ!ixxX zadlXdv;dEX$Yk7>Em>EuUi|B?KOR18Z)v%E_wLQ%;Ww{dz3lDn{`Kp}j~`=WW1l~N z9vvMW?&^9lGtkG;!763tQX6Y#_Kq!2pFHy7xaa5PTsVK`_O0s`2ltomD@=$9&q!OX zknO2Hc6iCc=%c&%zwORjy?o*3taVXy{L@yi@N#w7z9p-^_QdN~gLO4kS?kiDbUhq= z`PWQu*MgkwB}MY%hYuY*Q2M;L=Rtd`;coNr+t*WVnGV*LS1w+d!lIr(bNbfxYd^-m zjSj!JrjY0O`QjmnipSGwv@Ka#cW+H{ZxXNnGr9N4BrRS%u zX}_}U#e-`X{ycB+-j=Y%UjN42O9qVeg0Re2o z`H*tx;nau1C6oXg<3aMY8~q0>kKV9cUwYJL+0J>sQSG^h%DLb5`^vU#*!kA)vE?gT zP%}qfvVPpmBKtRL6y#|--KowQWq0jLd>*zM9s*w)x0h8{XW>^Z#x!lHJh&Kiqx)ZN zZJ|unMRgFvlAlZ%?$2y0SUk^FZQQGJTHk8h|8MtGA>7TlYGT%u~bc!pHt3>}^z1Y09o_M4{qc)qeW@oeKIE*N_SepN zCx;XVW1Bw}&5m36YGVJ_xZS(HcK_|VU|lC+n@`BD!O|Vgl2@u-KP0a!=)t*fs^;y= zeOtZ$dhR>*zu$6)>f!5K-)kPv${TLTfBxgck&Co{N38EJ{CDK~-@o!kZ(Z%m|DR@p z7W&>mr{{fY-*KSebJeuRp>OKkc#A@9`VL7$oz8ywIj^pT4*;10;jT>tX&KVD#f5pCQYz*GdV{Q(PMRCEu& zjDiAgRBde7Fh4vG%gZ0qA+XPtVsf#`bwnEz)?@=@_q>|2N^}qF9Z_0RirSBHrJpFp zyb=ZmsOZ1|6L=I404Ap`9hmTb)!ukvy)#hU0$z&&-Oh+ul>j<-w7V$bCkC(yjJ1Dm z2KNA>DWCuh2Y?cC&nxGZ0FXTf0=rGMQ)ITz^x&R|K!6RH0mQxM6GAs)fNw-J1Q1Js zDhzz^1^7{ot}Fm>_m&+9z?*;y3hD%i4FJ&X`WZlB2%WU1&XoY5l>B>T7kSDK}2N1PM3<2 zILwrt_gZoS0VkV8rQ`I2U|f=GN%E5Q|3XG+5ROz0c0B_q^^f4~dwedlPrB=$?6n8#)D0S~Ft#pcYymYpEIg~wuDf_@d zn6deAeiO*5klYLHGZw}7MdCJRZVtBx_U@UOKUi5Y1la%WLX4*vFcsQOj>$oUK*1^2 zee8)Z>(YSGDmSN3=)EK>QTgIQA81U7RKMOv?{r;zbGq00&?f*wYkqR{dok9*=D6j~ z1{dktT;=R$eNp^tDfDtxf=B-xiyif%+P@!VDPIz!12rN>ZqwVv_hpaq2R)cBZ`^%T zj#c<^a4gHiM9Es$GWvKqRI*k+cdyIS65)|n+uXO&g3g0GhAi9wp*b4hb?>Wx1^#U7 zm?P9Y0RgttKZfGv-JcM6nR`k6GxK~`0LjIp*ou1PZ1GVT*3?m*G_9bW?m#GZHg)1* zwEY}a2jwS*wP^^B{^qjxx6XkHKs%%in0BRoL25njOGczKr5tWL?^b+Rh`4+HoV#QG zQlzp9KJ25SyItSPa54or_{s*{$yISL32$8ReKf%K(1m^3O;8_@df)#u_|8^w79;Ku z9h>gtD%fcw^J*;-e{=GqA?}>`B?(y6DJC=uvf0}XpntettZ>74cGH%^Rz+6lvXL*> zI+;H($D^B-;h$3pb$Ai^VAZE6pDPD4@QY^`@WvtP%(YVAIkPwTyR?OA4wr`J~5Y!>xLk!Lc-^uJAKD&7RI6#?AF9qU&eivzPU z?HKmv5_T7D;}KIk4=HfTkP~Dz1KdR z`MNWD->~R*_!rZTIU(hDgHyI+)B{6R*ywMoSDibnXSv?tSjGyYo!VzGt?#EDc>e;o z32$jR3 z5fkP^tW|L*C&FI$mn~R}PSJe4NBPG8MM-)xWmhG-Z&w)6ckAaf`9-+j7XZsQpO@bN z1OTj#`vs7%w=P}3E`L%4%X@LuKR1(Z><+BWSYJ+?6Uev7pxLBK2Sw@Ke*&S`Y5X&b z?fZb;>cv*mq1E5!ji5C9V&;&Rwq-5tN9){oXvDM_s8}wKxSmc}n?5bb!ZMC`pe{Fx z5E3a-Y)@At428_^Q|P}a1aYB@g9`60DO{!r74|9qhpfAtvEYzkldY8gN47<)Xm0e-UEi_FrC!&`0|8?*mxV&&V#e1+cb(?vE^&eTt6-WgKRXb zXObtxbS45<8sq#bAS;vWF56Tq7s3#Lu>mp;iC{anR9saU00OKerj3{Y8gZEwpmk9O z+(h@*&Ogw~d#_Ghy_OnsB%#lZSY!eU*u`gTE#|&n`oo;yWTLiP0^dzhHM7LOC8b!o z(DT=eb41Kh6@<|y0La4sOnZ(lFXe*KHd5l%Cc63EyhBFb?xjq;dG5@e8F&9#_HaG( z{5o1m#RBix($_<*Z`sUj38=FM(%To`k0Sn~#D82OCcn-&w~Lv{<@q6atED;p0mV_{ zkyc##nK%6G47v@1|29Cc6wrTh7irnVuVP@8nEtO8=bf|UKOUXHCcK<5C+zQq1le>y zt!&*tWz)9NzN_ft;-#%B@;_)qs~H?t1HKiso5;d%q9t<=Gbv`gga=LMBzkK@ zanx>$__v0&Q{saPKO^{`Vj!>huzm31>0m{7`Qh#7=4{J7!aH;%@1|n+ia9wqecjt> zHrY&Xu8hl6fLhw}H>}y2Ywa3$+w|G^OKDq$`yQv$%v@lH2p}Oe3hLq~qWh_VQ7vIe zbm$YCPBHy;U?T5q*?LuUXFAVxnD91FdTM z|FkqNK>wl!7Ul9s*hLW?M{49N#s&0CMu^o!ADu8#zHnhLB=R2-eH@{WY3Y`{ZB|;~ zHwI**qW{$L@jUQ8^?(XZCgmkG|aqc_DN*k8V{#wv45_X6Nr!1D}yd0_oUiE`1aQKptgG4SZ+Q z2gjq- zZ^)HFdnbZEsA-EI!1-#LH|nw^`E+LT=^@7HRS)2#1n51NHX zSuyF1nKaCW-m}Rws?NVR!DmtUEJ8cWqvY=+4T?#FD6Bz99VQx8L^`9UjW9^M^RzQ4 z?OYz|y^1!-CJmbip9Q4%;)b(Y+BtjD9^QpvG3hsi^h!*s6_5%Tw6jLSdoAIt34X?< z6#&$GTv83=(kt}hS(HZP(sXlZXV@1%s7PH2G=0{k*Lft3iEvhM>D&+aJwiGqBI%Mz zrx~Z!=c{Z}L*8oPq35U1J%>LS;UP1{n@t-wQs^i=tflQ?Gz_b0(>@RnC0{r*!K1V? z8sC|Szllg6%*3lAe4m;&Xri6uUU{Xu{2l;5s3P|8D8mS;n?cp6sQ$NU8t$dV$Emfv zYtMMsMi3H(ORH5;_lrr@W?~DMd`hj=2(H(#>CcStZ)W(J8frDdXT_A0X3Am*5^|in z^gG{a`H;HUB;yA{D{!ZSN4c!N{h;KkX2J~iqLfY^)$m-_$|dz^Y2FCs1DoW{ zCUr1KTaS~=*o`$j%3mdv&+6tb2KAE<={@7p9yN5DO?#(4T^@4tf9cjsvq-PlG&gZo zw+a47M)xqntpZ|~`fSiVT9+AKm0xvp4(WuL`ix88t2+PKNK^}SgDRj#Mf#IR^6S6$ z!-1++LnRFIZiF&|P)-?%5>2lvZOVb(ttNTvDWOYX?H9LuuF4&}AdB1|fZCQ<_jp z8)NbV!e7Tp5_7YlpKxoKP@|%b^Qc#Ol=xCg%zS!>igZtK$Iq7ZL3O#uo_bnDdZ&d? z?z3LYKeykZp@uJ`GDrsfV4VT3`gHUktkVYm2ptC>)zy)*WMbb?EIt!lljBGrj5$NZ$!A>d;R6p=7$fdclX&T1WWAiEZ*!OC=L<=)ROKnp6oMIb~)0U8T77y36FlzE~^P$Y8r+|Z#7Z=6w}KX z)Dt{%jhJ%PM4bH}>2C+>Yc9>q(4J<{zIC#$?~v=f4I}2?-J<08kFTHvNr3rb&Gpf#*8qy_z`kg^ivwKe( zpPmG$=giM?|D&8>pEzfFdf7}l#h#2A?WBovnF~J#NIC}L6oc@A4Y#1Q%M7~b2hw(K zXJje;ikQ?XrsVu2uBsu;pHHEyNbh-+GbXqIp>C{UUP-6Dn_y_)Gf0u0w4qQ^my!0` zL_8^iElf1TNE}64KN^YKUJyTu+Yt7oxujY%>DQx&`3qX}OvK9osYG!3o{@OU{FkGG zq&69s`H@el=;u)4>*=JzRefp`QOYIV6H`BNfig4Evy)hDrkqq0O3akU0R4oP@X18_ z!XTV86Mr{)pD+^l8Hrm|h|MkpT{ za=HjNKH_(9N&iz33}!Nlkm$Qf2?(q)5ob`IUYkLg`KaHBP}=)xpR|wX`@dP#)mw0m z<{wJA#vpH*5a7Ns@Dc~yh!|1>KnFr9Gk-k6{ylz#aLzQD5f3u~$_5^}O-s3p{vm20 zTwP$=b%0W>eTB`ZBO=@eBm9Z+p~OsV7E{qs@+A{--5UA{lw8fD)|iP`%rv={aE1G> zn)?oWoMbc;J~-3wA>_Sg(g6njn23B!{NYv@uuXM$L`w+nqWw@&>jd;_l=hfA+J#WM z%tRyv?PGV`p}kq_LepfC-p!{r8_9=7!sr*(KzrG=6Gr%TI^~Z&lrn&^r7I)9Rk_N0(ePmL za1ZBYgQT>2=k}ucd`;#aL2bzF_7p(n68ZLl$CKCb73}W40dG1juB3OU?#MhhKJ#07 z7zjPidR$7%sA&(jh#s+OT+|I*G}LF=`lYmGSuJVbXV1>Lx7rEQHv06!q8+OH($v%Q z&Ly23+?E%;`Do*cAG}8g3#avl3wktd-(M34J!3xc{04`;8e9cPOxWkIB%A8Q66f+S z-@3XrlDht8{x{7*-!y68ANFkvEpH1>4&(g(+biV2zXgp>|A*-@alhhb;<1SJ`)nIy zYGQ&z#y$%>(}9XV%bQ}RSmt<(s^8($T@$5SZ!B$BAQc`&J-N@t|;$NyU_H!!EM+n z*pAdzi^L~H_sX2rdy8bV7v4N`WbLoG!kU6P%+t)AQ>n4MMaAc)9WQk>X~4g>_{7g< z^Sui_2->}G!Hfv-gOx|vd+g!R>w+x_z=^8Xk|2ZVY&mCHE%tC~!?wbssfPznSEW=i z+pB^XGCh7@ZuzOzE@J1^||e->p~Y6fklCdtDk+X(75v~**qj@-FL`mBZ4Xk@M@!EOCzP)Sh)^<1+ zK@Obv5edMS4H)a>>lbn7)5O78n;ARGqwSJoTyS=aP94Qn<~`xAx5WH+<)6y+F^y*q z-Avg0*g_xlJ%c%$SB|TYSnAi8M>l+`x1NL1htfQ?AkJ!ZZfoRLHAUCT# z)nV7_^5VPWg^4HQ6!XH%_XUq&oc9W&0!I@|HW>}nuP7!|TsuLJE_I!6a?Q)W1B0ayN)@g;ha7uVBC8x>-`Vxfu-!GtSrwU``&RAWxaB;(6ZN23yQ)J>P zez~A8&axW)YX-!{dq2}VY{+a0uQ1^~IC^}TpwQo_DoNYqYIC<3H?5%YdYZ4>l;da{ zw`g0*g=>-YT3xJtTsI*WfqYNe;@Fn@1Nu;muNsJ6b3(s2rt1|YHEzIlth;yx+TxsQ z!aBdLJ!#*ecRp3Mmt?J{ElMhOY7#_bKHzd?=mU6uQ*`L{_uG8>eD*a2#(<3uJOGx#K8?kyDWE{L!?C~W6`t)-;& z9JG1BDPoW6OOkEnP?NUZzB0AUwnItElv7^T z9#~=?SYKdbemby$wZr|RWd{#8-8SMubE?5YommuoMP0oq%LQIiGd!#E6?Iufne{)y z7+-OD$+|!{>mSGz|73GfNO7gjR#AKS;ck3j=YVsnsMU2fvp5l(m8@{JehzVE#rYXthdr8;K z{qGi90T+ha+m`jP@&t(|V%+kdgPEcx}Iv!qzg_H8_n ziGH^FI<5{M)GC7G^cMTL<^WsVzNlgX^Q$^JIZ3rIT9=+aVkQNewv|m$4AvH?fN(Rv zG^jq37A8SLdYOcWKS6LhyU4D(@qpcFw<&5q5G^mo17MuhEkn+XC7g0)O3x|lf5*@7+R(UnwmG7~&(!8rP+les#7w!N zj_Ir(PvyotakTd z=r%yxMCe@;Azve<IQ&pP^7#<_*dZ8lZ4&e$#`i;RP`MseF=rx&7>;^mAcHDLQ? z8(|*1&0>cLJN>N-J%aD%EFD)2nm^(9xTg}Aai2Lg7>SFt7*_<};;O2Ja~b~3ZyH(g zGZ4&oH&90;N>_%qXl_TH^ImN%`zHeA1VMQBtGDJjPNVJm`HcQPNO^wc$6=t#VEJL_ zBIm>a<=9UPiw;e!UmSoxx>7`b{Oz8#c=e|FLdg0d8hLmFvt(;)#IxSw=$CwZ&R~6yLK%yA=fA2xn|(uHp@>kBcTeLtdb{p%t}$? zc8hVVtMo!txmyR%v{mFwFtdv>u@5ncnMyKG^>3QOM+1kMusH1S_gTF;k4p_g5!lmF?}~rd3y;qHWQ8>mrWEcL7dr`);c&^r}WhUN7Jx5 zY%om)2MCocF3xry%rwh)@Zd6C=<+(+PFoy-P?#>pujk-nq>6=Vn8d*Je1SvMm=Gao zU+mxe5S*5XYpTVq72wk|i&7Y6O+WAj!dbz#*yK!Uq)u)bC$%2}%B~be8|4;aIII}X z5n>l2aF}foFHUi9F?OR-zQ~BdKSW~8oIF(NohhB7g?)mgITEllzHl~IzAMNhM+`>u zz|ZplZ?P;_r_5)Ac?jrR1z1Rw5_Sxp4O(R?m=ZW34wi;0;ikrN+u-G|t*j*}Ruu&c@QSwCC4WS9S1bMEwIuDUcc#PdDxu96ND-)Z< z!`aA`DPp-tF~$dl778E>M7q-?_o~A1Bt?>9Fq138X3KW5i|8VFP7*RrSHw6JW5tnX zvtf%kC6gQFY-e45h^OKfh6|+5S1o^Lx-Zfwj-iFbj=0U{A}f{D0S(?-1wPt@TcyP= z)!;^+ge~Xd)73Kqf-!de%5}C1>ptado+1Q+LIfb!h=~R;X`0wPl~SUECUOY!H6x@v z0tK6l^$JqBi?P-OY_=f6OQ_sAgo!9oetZTyqYzssvu8`E6~ntY_fomg)NvUHko$_1 zA?|1{2bOfma>YGt02o_XetWD5|D)&#kCID zqfhCL$T%G`UjmMAbhFifl1$i20!~Ooux+2^?IdXqR|*4IONY3JA@f_4tm}pq3wfF( znR^@u4mQCA6$TiB?N!D&Vc2hKshwKt004m|flyPpEBWkNA)aA{jeV+|Ex9bzAo!BP z5Q*HUSTPsC=BwvK>tw+}QZJEW7lO$}s$|hsatT46qlRrJ z7;&{DeaG>^M+;xqVkm;%9X|OB(5Sk2)jUqU#Z0vsF8p^WdMq!i!rki zOh~388ilS!sVs_>`U~(b0wyd@u>w#?p(m0c`7F&O|BI!*A}L1z@~Yso|0Qy5f4AmA z3x3Lcilv;Y)r=0Ay#y0=3!Z%&wnpSO+UGmD%k$K|JL6zn5}3`7x*6uG==4)>IJaB^ zZxkX?s=|#%%sibkNGJCNAV3FF)L=*-^qZ(Zc7LBkhkUi_PKp}1v<-JT4L5tdaFr29 zURPM4E(Fm+Z!R_;n71GkZgAs@(-mG?nN#7?V3mxELU}>Gl499xlXR*;9)(Eh`BI<% z8&N5O5y(dHm@AQbj?3%;IkyH{Q7N;~K{JKeAOW!8sBBI~G`0%f#g*EaV$(R%U4;2d z;^1)M-+yKOeR76;E?YUVOQOuJx}C3)k*nmhhP+7t2L7m|^~v^#F0uM$c5L9>V$&=g zcAZ(aR)|T_;SMd3uI?+$&=#)LD)Rc2Gdq;t<1?mdp@>YS*AOwIU|>5IlU@l$7b|hk z>hn;!g%0-akh_az%fEHoOJEzdl8ZoGR5newc8^AC{Y&QI@nqpTaAu!NSe5*A#j1?W zN=<_@p9c~;pfry1q@6UIQ)s`Wwf~2Fr?58VbYZSqxlR%@Pla1@Q95ND-r5I*=%l@W z$snCn&e1RhMS&6C-B*~Vx--vMSRlZpaGr%A3d_tDX*@7S16mR= z6WClZU!_>10Sby`c~vl11#?iym)&lSN<9#1oW)0^Afns*iG)bX_q$v2CZb#Mf&A-kqkpMe)7Y)in zY)UZ+CWVjyapNEWMX1GCs^lGX9YaM5*XR^|$HPddJkqFK8F!16DfNxRZ|IO`=q8H} zJhM*;3LsJ+IHy=@ubw6`4deqDp%xdAit{OkB=HsAaZo#6?xlmKUwg?l zM_8K;_G($ce#o~SPSz6_8RBF%NXeS8sV&w9L+^b1^IqMYj2tRt${p}dQMD7{m!4bju8DQ~?W04H3I{^H(wQvo4)$DP+ zhX&}rwtz>VSZg->668T@d89@WUyPdtfW8vx*?OgiQSLPkI5MDIpukomqX{r^Dy(PK zM=!y9d#-F+6*Lu@SOyS$Rv4N^iCFC6jD>Ak!$!j|u+c1d{y=Q^fNsJ}4PbCHI zcnhg~SIk)Mf5?0J758&A{Ougd(98?U|INQ!uzB<*^L2XM3^H(i{L5KBI%{j-k7wWi zd~o>uyoa;AzFfP%|2V&~D-=|D+2VF*eI*)ZbGlsE<<@*+WSR5fyyaQyz3yHsrtKDJ zJImqMeqljj`>M}v^Pp7NCqJJMoJwkGtMm~*zjWUa5q&)H{Ae4&!cKWAzuEKtHkUHu z9j}(L#(9jQ)@ylh`;QJa(Ov{+yRO9Z?*Dru0d9Tnp_)A{F>Lm{!=|hCt<=gX{OixU zwS_~!i|%jny@pXUlH!}2K0gmcj$FoU*;ij1H9+%Esl?vgzVi%pC=PkOw0u|FzOcwn zJ=SKTfmLFe$Gy^GwYN1u=_obxqQga<E4HVOqi-MABasj(3+93 z5c)H&;!}$JaoF~e9WjpIwcBDXWbWN^zh0(^4*u~|rlvlPbb@mxM2MXnQMP#`tadbuapb(#F9PaR4vQZ4rOJd5 zU3GO3@qP97194BU^weK#J_kgG=5=mgbYtAs6k~Phbz~ts`m5>D+?U1Y7R zlkpl#^#x9(ekn#5p$EK@xV%Nme*I&outf7&n`M?V18v;6q|C}rRNg_`_6QSeRm#@N zol~`pMJZWdRgcL6Edy^|{C!hfcgTp@Ku*#zVl0I{U9ybx`TRwAcFN>N77F1uT0yj| zh$b$q_;i3YTptDHl?z-ki8|9vc?gz`FH%#tA3Si_k70oP{3dvo>*ScgCXq@MTJGI zFAP>4aNe%FNBA(^E~d{!hybKkIe@%u)c}s&2a?s3g3M)8V#f`u_v945xC0P`9Egmd zvdIFi{70l8Ud=t7tCc%(IsA~~$+e~2#~XdXQGUe{uM$F?a!+m?lxpjOXOaWRQAf65Pmj7rg$1qcvQNHNwe z0*`$x1j!^ps+F1n8@peT{*mylMnQ#-8G+*o7)Hu945P<1fzx84(kf#-e`KxyoL1;b zR=YGQRjPb&sKxg(moBla$9jtmg#K1Qkt44dZ_XnQ-fV$KlA0(N z@!eTq;gr{dxD$Z`wBf|EV3QkDa}={?5K;tNx)38JOpCW#3|lB&7vHb9GzjRPfzox$ z0J(8aE{=ns_)lnR7|$%T@4$i$Gt%Kyg5^W5F`{1mr2;Tws22-~TzQ!sF|fVi5I zy1jrJ=}uTIrws9FVy%J2a#48q0Oa@r(9yRY^7(0Uj@C+P2IGD2rV8iZ=l^j&BDQep z#e+Fq)(NX)VqD5#3#J_AWh0iFM9X6*_Xn z_}R_xD2LcnSu&#>ii>1@u4tdNMOFIiTcSNg!MlE)RHyzysf>%*H;c(0O~9P>eK6e1 z_}ixs^dIlzQyLLCs4tQ>ri}=j)usqyR}sY`Sy(TxFhHayEg9#}E404lZM>8dqK3}b zb8p+zm}DLsnjn83kWx%7&MrP@V(ieUsm*mx?=zJo``SA@#MGOfH;1>^VQCA6k%7&o z!r)b@#F@4-)_P8a=V$TWYj}+H%eZ#Qr}zHxDF)kJf)*EKfHbpSMBUY=VAHk{_#8fU zgTKLkd;o9V2WD@dYz@8&3Uhl}oWq3%2g6=met%>vPld7AWR!a<_`9~NS5WJ<7*DMU zXNQzq^|A}OLjW8vl-VCP;oMlY&URWTJWEB-13-|ihM@+rG&j_Q{m2H{eW|j{o%?6= z+P$auOWpE&Tzz-(T3yEUMV^9MY8D3qmbpC6#kW8!eoa}qw7YPbHuq6pw7bXR2_V?R z{Ss?E7j@zYq`NgBIR|NR94VK2qx`~eKty>=+cu;923cCihJ_Cr)^1gnu}rk_91yGY|07|JUxy_%c0D6YQH#KR(ZQ0 z=0Ns6?55@WKT)G}X)HO4_1I*@`bpBC|IR?J{d<=B`-WGm?~B@;yqRwogsR{yb!#|& zdT{{3@MvTVnu{M8&F6xJP2*%o#}c}aF`XzzA{}iDJUo;5v{;Uel>@*7=lBGhUwS5z zOQ)m{5JEK2ivS+B`Q*SrtS;h3$ni3t4E5vA9a3kWNihL4>L@J6r8y6{ORG*sy+w2G zO%0k}8oYq^EGx6cos+uPEijdg8y}rTFfW^Eyk>t)5IuvWC%LL~seenV?MDURv<5vR zh8t0RM_n}279fTgTVuZHv7YQNFaZ%Xn#CelKu=bhK*z%(oOd6OXulB3xGW<26acVr zoX=`Ru%fZOxOwAE4x9dFkDzvdG%N)mcVZyhO6L@y$A}?nF}=-l>=x!0m2>>h=d<)k zMNiA{d(1H>gT3Qqs|cmr@|l_XWWQCTxRzOQkv`lSYYpU^B6ATSYxvO85jndaaS7@Q z=bdEtp-%OHl}`VwTk06ISl4vfRNyhgmSE#4x76C(-dD03l1 z_}E8~>UqaLVyqhU?oHs_dZdME2pd5inry>$`mjzp)$D+y5c~sII|dym>OmHp&jbhr zf}Yh%u%PG}P3YMq&^igU(js(saKpB`z0>u3smyi6{h`HE!hC_Sj=yj^6k8310MPW2 ziDOB2uGf5zBm@}(jPl_Dnf>WM?b(n64`T6TOf&LvTN<~YH!(jlWdmaU(*UGS{++bg zYYl!qr|b(NJu;&CS3n1f!TWQhhXAxN>bX6&j!iY;DCjHz7}X$MknT?bodfw+eZ25u zH@YB#*@MzeQd*#%Md0H^QtCKhy=lq|C#jW*Wm$m0z91vxboi$Jbi3})1%Pt_dT%;v zX>1|RM?-ihR)fyT*iT4#x;0Z|8^-fSTEhA;)7VBot-)So@JNH)MW>v^@>$uD0*UXn z9fvSv-!fk<`c?;otpmrJPCwkXAjLJ!HaLQv(lSW|{{lHkiSP(~=8pArXacSJd0@6Y z^|=&?YY8Nv6PZvn^tXoqa!o@0nog~q)z0QfMN%h^B*=a8Y=arY5=xzhdHHZtUEd@WEf1PAZTUp;T zzT?jcARN^@B!P3204rP2LbXyj2!@-a3?cu{U4FPA!saVF;30)|4>V6|4ipUxd_o5b z>!@FSXqq(x{~>VpvUwj-`+Ab4i&t1HlCwu2!oY-7pakH8cAZ*Mv_F`E;TYvJjnD~+ zv^iPkB9s9uB0R?ARSeWR6L^^v+5N2CIz#3yKI*XvT4&$Fp1;mx$l%^!$C8|5^9*;d zNZAdbMW$@54Gi}Moq-K67Myo<*YEX@WvTbmtEG&3DW#8BUocEZhBG|$lj+97`a66D ztbAWGLQ`xr5IRH8k#o(l} z(i?hcKau$TSqz5s0K{i$duT~O&T2ib8C}^N*~4+2&g0FATS`z|N_pZtorejdM1~XU zk1XRIS?psx1G0<&(8s4`N}Y_|$KQ?~Uk4vKX9x!{ME@r)eKP+BzK6NRFA(n`k}(M~ zri70Ry=*U(W)DWHmx4c!ZLWWyFZ2XofD_3qo&Kb74cRorDtN$foXny$x}q*yi_i#@ znxDlO0{$aOnFYWLP)}F&`e7FYbQl&j@~D&+R}>*5tLK=(6ld2)JQ7@NP`!x==;!yQ z8Xof_9O7i3bM)@n(KLy8G!JvMKumMo%#Aa6qcWeQ2%JFHyVNjEz{kZ!SO_8tp38i4 z{8%&iP6EJ@qKBLLnt@2isOjNcsr?KooZ>-x-{Md$wbw!{Q8mNFqx-s(&UoAVgR^AI z&R*o4|Ap9mK{c+gmno&bSN>D)}{>06{~9OE*MaY`|)jE@i<+vuT%Jo^lu6q(^UgZc^Zc2n#f`PIe5GvC%cdG8vmS=)8b;cKL?X{GLUE8NN_ z6Qs0iu%4C>Pn1%l4o2+rnm>&nM3XWCb8KM#63rf@*o{T=D1Q!=|Rf%&VTxHBqBco=8p&;Pm#f01C7KRLNS2*hc7#u&y8jQyc;s_ zO^|5yx(~@R|LTojs1a)*`Hstcb(+DWUk|^I?Eeov1$pVJdKfy8He^niB4e=|kMQ_^ zUt7Z@=<@<{7!-cS4L!5Ua@~ZV?FZo14}`{%`)8mU8ryn^2TX-9Iy5AXH+wERCkRPO zwA%P?I)!~<%57Q3vIqyBVROq>ceQ@YZ(QQjOH~D0@rOg+0z+XWXVmlDT|lcqseR{mJUVfMLAgq|)E{)a$}#~NK77mA z9A=<2;2(tMd+%(uH&dX8hj{*|%==j+F4L0G{CuT55bCJAszL1H{&4!AThc?!)c#06 z#E#38`89#Y;p^_r0rov#g!#Jgcm6>dAK z1Lqyq)Y*pdb514*WDvqiP7(+-LWpcph9^NGER6`tswR{wj%uWeIO>-nTOcBi;%Gor ztP2DSt=gUwP#lPWk)k3d0WDgpV3Fduw50@cRvO?@D4{17i3OIo&YO% zT_%+T3}dZy7i_tYnEH7QeNRA5&@`Q4JvZ!J@(67Vtt4U;VFO8q@>4Vcxb`Oh2P`83 zb#~Y+1_IC8B0;7cXW4PyP@Z;GR@9L+_2RKCJ6-||Ji zd+!I38u4dIOg0WrR} zH@b5{+L+d%0BN{H%5fAwHv<#eUhxiM^ovyn$s;zJSys-z)#hx^M z+3+T^y=3$G7pyCMWK?bT1v^q^c z(Hh36WVXW~5c(x5+^@ENJJ0!V08Z3|PW-lpG|SxR2_K*IyHFFkpGCPDeYZ^;-27rk zSxajhF1WxHDCjTK&h5=d+_r&k+thZSwQS?;mQUK^zb+A54PL4xT9)1-*5PNmOsAd{fJjx|5K=cKBD7QZswPc00c(gsfzK z_XPMg@7(rJ0~dpG-{(EbyLv9!OR5uIHRrubJ`z{mnp=+pR7Af_m#57m6vQ{}yvVh_ zVNSApqRnHOq2a$EL!310XS1rvK%2L^66Gg%7TrB0mb@7~*BL`~PbwhKefKHne(jRl zDRSJN+f+8tn)EJ!U()Xx8%dtTMscZl*Y-c;;M-^6j0yN?+L5K5aC`3KOFJ%4_hn^# z*u(2jDDCgS*3X;*n{K*`-nHk{N#W0(G-O=fj^$87uaEP7n=q5TCCGP}&E zCc#BigO<5x1}(M?9K_(=BDo4?$V@(vOQMo{BDp7^>&EnOc*}`puh*Yp?o~B+SI0fc zjjk5;>+lsKzIhovt-a~gp;Y`0ewD*(@=IAfKM-FRFZjH_x~Gx+iX1XviY*acmu>xu zmC=gb`k^vNL>}2Jl-R(vNH&>OU|UcBI`~zW*U5r~P|7ilz)(E4%|%n}xuL(VkU2DA zX8K08pFK$!Th2YX(K}2GIi~oJFrsb=TP_AY*CKHG1a|YN*k93TAOGfh&;!wU&EjWr z`JGcb=`X!dKzMcfX{QH*PD*{eF83RH=;DvY+2DEH$)cZXQA6 zIhrz9N6zN2+Sp7`EzIzO_*JE3+pjW{=#Y)a@syGMyy*`J)q7m5Dm-b{llJ3>wyIs6 zSYb={eLo!Z@ag;GHbVLkG97s*d<*DYs8!G-%x=fqneygVs!3EWo-Zg&-_(Y+S%Jm@ zlr#^&987HG*@w<9j&>WKret!(OZnrF^U*&G^Cx57j*w#y4*_xuK+)+gO%*`nLmifZq0=;=Z9%54oJES?n!r~C?}TOrQ2+ui)UTykQQq4?lL%%dEX z^QHaX*Xt(~kKXC_CyXkKPu&^ziCpI)OV!}6nGts-P#%w-vALWAk@j|g@+pmz*ZRKr z`av9QU244lnxOk+clY!Fa?FfQnUVcFJcDeGCrjw>%phe(&OvUYk>j9-t>VIyO7SfI zNgec6BksiOx%}{l8tKN~Y}e~nyH?dqyn%QuI@r|d*q<8Gaz!ow!SyIj2h2%D4cyv0 zFnvH;_|s=U!fI+~R9F-72N^_KpN897VDUNLj=5Zu7V-Vnj8$_3=2!d;I^`GQP8{Cw z4ec6@rj#Fi-Z>VNMAgvB^tgu$<7}et15}j~WagYE9@imuTwURI#7Vp2^y~CNvkk?; z^SlPImcrGppJkAJ4IukT4XH&iFB?QJ_2QA~#Hc6Yrwln6U zczm5zcwJFt+@E`XL7lo~g=>Xk_fNH>F&b4x(x(0c$7(u%zxMMTYToRM`lTQAhy8BH zF3VI>n5`%rK8PJU83OJsC}evJK%3jj%76>sx8?F;@D@cy)|e;r(_p8c9cFvOrJi0S zjrM9idt>aKp01^K@-{Vn?LM@Q8d=h4@A0~m!GcJe+dF`vUYeH-;W+iidigH_ZO66H z=H6Jpqjmd3$29gwWtym|KIm9YI++lxqGZTkGLMVNaa7HZ2jy!iN`w^WBAHWU(&G4C zb6N6!l0X)VA4f53MighkfC7QZ&0nP&NB32J_bR{5CpR`COhMUW<(qdbKtTtE-CmZ# zxrT~gl&sP+$OZs6Vc3LQn6* zwI;}=&A(`#&jD*o0wZo_;+%t?wQsjz5ErMS*X;QXPf0Q3a1&zU$>4o^OrE%fay>n2 zLd`UFG}5Dd=8P`KF|uaxZ&euQPqAj3-V>i=2u}SItK6X)fxOQw@e`nPvf9Jf4ZIBN4$!6n=Eki?XI?OMgQ7KE1d65 z+zixwRCCbGMouHCCU<$&?$0LNd4eI8itek+xIsv4k`N)lQL^$at4)MS z84y{$aE`N-2g(mv17Z5g75Z7vNZU1(hms2p*$4plnmXCvV|IIb>s?z1^Ma-)H*Xxl zz2l%HI1l`AJNnDe`&(UCiqysDm0j=vf<(SnRP35ad=*|bQ`h!AxTiDQwY!%T6sQF8 z7v4+>k6OQ@0ce-tYe`)TzkI1&cDv()QAdDs0`~8goq|^e+z{p;F4@J;HqaGQ z(zg&)=tf8w2S>0G34oyU0O<9L(;4%hZn6eRydmj4I%l zVvwOH&ZYqg#|ijLa>9R7*u~nG;382ZuWEciIHUS#QRB~Hge((2OV7^Y60=cXIRFzy z!p<$ir5K}nZDP+`zy7M9d)4^CD)x|>eUb-{f~;Hq;5r4|sD`KHV5kx_ZYI<%fh{tJ z%(L4qAWWCjEaIxECYHCJhWt2d}S(StGiF}p;S%Z3ANuAY68M&+wmLkfs*a-IG0XLh#9^(hD)53sp<;1{mm z^|6|D?*NO9F?lK%;%3*Z^3CA@%PKQ6O)`f&2WbW z;KN!1*sF+)K?p_*i>`3!2fr#+pWq{KXbE3YEhz8zyP%v z=8WnI7kHc@E}X4~EMksHA$pq}@=qXVoCmxSgGTW@doxSG1zsuuV;%ei2=P>TlQ8>D zEfA!KEnLo~gN{UuZBo-Ages_G4D%?4WV#Oz;9|lp>jbL~h9}YKS&o!M6C>FK3qUv- z4SB?6zOhc72Mk&35FSU4QmHEX8;q32rC1F)yLYpxm=}N*MDT$BgCUzMUZ=6nikdo9_CH>Qwbj~N~xiNB7LF-k} z;*Bhe7(eh%$OMV~23EJk%v40bQnMK%wh;{ZDmeND#!ivrpO}Sirp3p+m%d<#rqytn z*Gr2EdLy=SmYmlZ_)Y;xmvOjn;m|6k1+}NEU0jewlV)fLpjhPZ?sikM9@r}%!P6jT zN-ewEk`!>2--p33&2FPScno8|tn>Lx4NsU^X(pb-2#>}zIife&FZHkqga#C_w?6%` z7-n)IR|Fn5vzW;I%)i`T^I-m=B^B>Qe*bvQqLLluejgvLnRSxmR?11%NaBE;!c;h} PR5%}2%n9WJK=}Uwn%bPS literal 0 HcmV?d00001 diff --git a/public/images/books/vcw_git.jpg b/public/images/books/vcw_git.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5b10405307d192b29fab74c8adc09bcfde844f4 GIT binary patch literal 4196 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 ACjbBd literal 0 HcmV?d00001 diff --git a/public/images/git-logo.png b/public/images/git-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ac22ccbd3ee9f03a3b38249ac8efdbe96b5da2cd GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^9zZP3!VDyJZ(h*_aRPioToo7?5)xuJtY5{@z;N#D z@dFGDFJ3(R{{7qk|No7uYm$J<7)yfuf*Bm1-ADs*lDyqr7&=&GL8fsQctjR6FmMZl zFeAgPITAoY_7YEDSN3bH%%X-S`j4JZ016d)x;TbtoKN<6ufXCZA)&>gl@*-uLV<^+ zZOfu-7cOu}w0W9H3$HwJqlx472Q4Ervph31wm>lpQB&rr2^-hlWNOq5Vkv20mdKI;Vst05+voj{pDw literal 0 HcmV?d00001 diff --git a/public/images/github.png b/public/images/github.png new file mode 100644 index 0000000000000000000000000000000000000000..cd991fc4ad37a99371b3de03b99e0afa23379e3a GIT binary patch literal 3216 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 literal 0 HcmV?d00001 diff --git a/public/images/header.gif b/public/images/header.gif new file mode 100644 index 0000000000000000000000000000000000000000..796719f3139cd597aecebb7c9ef1483dff9afde0 GIT binary patch literal 26625 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 QuKy$Suu6wM0?v2rf2|t_OaK4? literal 0 HcmV?d00001 diff --git a/public/images/header.png b/public/images/header.png new file mode 100644 index 0000000000000000000000000000000000000000..05e0d49a2834ee5991cf41269149ce36decbc3e3 GIT binary patch literal 78275 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 IM6N<$f(4tQe*gdg literal 0 HcmV?d00001 diff --git a/public/images/rails.png b/public/images/rails.png new file mode 100644 index 0000000000000000000000000000000000000000..d5edc04e65f555e3ba4dcdaad39dc352e75b575e GIT binary patch literal 6646 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 AQ~&?~ literal 0 HcmV?d00001 diff --git a/public/images/tar.png b/public/images/tar.png new file mode 100644 index 0000000000000000000000000000000000000000..ed348ae04493393c6d09166ff1af07dbfb651f78 GIT binary patch literal 8645 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 literal 0 HcmV?d00001 diff --git a/public/images/tux_big.png b/public/images/tux_big.png new file mode 100644 index 0000000000000000000000000000000000000000..19d4b8e897779c3cfd2a8035703ab6c9b7dfb677 GIT binary patch literal 3304 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 literal 0 HcmV?d00001 diff --git a/public/images/videos/git-rs.jpg b/public/images/videos/git-rs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4340635de7007762759bb3f3478f7060fe10f713 GIT binary patch literal 26536 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 QeHnepM@i{r5x(#L0mTW^TmS$7 literal 0 HcmV?d00001 diff --git a/public/images/videos/gitcasts.jpg b/public/images/videos/gitcasts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..532ce56a070182f9bb1a27c375fa299a97b23888 GIT binary patch literal 34126 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 literal 0 HcmV?d00001 diff --git a/public/images/videos/vid-ogre.jpg b/public/images/videos/vid-ogre.jpg new file mode 100644 index 0000000000000000000000000000000000000000..693e6d8dd2b88cf78ebf79fc24aa0525e449e18f GIT binary patch literal 27672 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 H*!lkeLFYn) literal 0 HcmV?d00001 diff --git a/public/images/windows_big.png b/public/images/windows_big.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bf669ddee7c1c47561067ea17ca075982afb GIT binary patch literal 6504 zcmV-u8JFgXP)u!I_uS{++Dp4y z-4`GvKnNqS6An8#0UM||q*AdR=Z}!8l#{AdVprly*{O02NlXZiW0SJ69dKd?+sKqS zBw1V*0ts~NY9+0-(%#n`J2QQEzW3`9$gY@RhpcE;Gn(yw$M?SXz4u$`%;X$h{v}Bg zRhO$YIW{IzBu~3yTXR$tHESwo+>$K_^cP(@i&C8-MuG z@2n{lid&`^syhy!IJco%tEYX>Qx#PW@Lk3a`I&@K*|uTj(YBVtq4MJV;orUI!>6Bl z{^0V~E4I?~T$PpF}|epM37c-L<+i5J=}zZEfvz)us)U&ZPM>B;gM~)@oR^ z%z>Jn*>QCE{3qqWt-N{a!LdRrzAsm3eL9)S?$=bc?t0FzV%9I`3>&2D8p*Ph8ylav z`>AIS-8()pc}@3<4rOTV71Y<;L-~B3OyNKvA}2{Qz6WpJKvER)C50@@rc$YtK07wH z`PAvL&7XhxyMMH@x8sG)tJ)u3(NX*lL)S|`7x?$i8AXvP8IQ?l&tJH6@4kb7Qm)BY z_w)|YJ$GG4?X3k;B%&Y)$f?!IA$9_W!fv!zP-X znUfA5J+^btzE^g(=HkD0&GQt*zKL<}@=bG;d|Af~v6_N(+-oAxqhq~z1*IwW8 z*!TB-`~1Z02e040^)KQvbNoGVCILsDKk(wOKk|+L{HOU!qyL&~chW#_FR3u1R9cK8 zj*LjMBx-|G!Y%~CB{wAT-{oMH;gHmHMmQ)%5R?JIB(k*=&p3THF#^SkS_lJ|G-N{wHFErrTo~lb zB(kIW9%(R33RMdDebvEto3ub8IZ(-wG~t%W3OmEl=*@8r_^pACVIrbj3zNcF*|j3J!_P~SbeSVz zvm;$rZvw?Ku^l64>&Y)Y{EaVnwYANE;HDd%YoKraj5A@gQ2GDhc6#;oH#-0N@BaCb zMxf<~x;jL^sMl+V{-vU2hX@tnA<8bLQT&}LjS6XA`cMp?^FxW2U72R97L7wO zTwH8WDc(k*k*1j4011Sm&fYd!60S&GYtq{_#-!k*Mim6Ft-XWJj@d1r|A((VoXcn4 zw{iWNDaY~NA{f&esl z_5!sS5*erqRq{xO^Ey5&=?XcDPF`1>8g`mSrpxrq*+n{!K4dj(iz!(K3?)vTbjgAs zYPgrxu=wMlK4p#a#Wotdcy8#MPdxdV&kYTH%5vPdGO675;g3+cT%iU!@^kwR-ujKl zpZa1VTaXjU6nUOYA&S{WWPIPpYhMt6jT>}^HM(tmH?_(hW&9e&!UmZrh!_l0Q7?h+ z!=aE2vZ<)b)SD|p%XQJ4$4}9MQ$^+?wgZWa=XiX7Jj)OKx1Q%C>n@(h&DgSSKsF=| za0Qpr$m!Eti@EgSR604juvDTl2upPwo8<|)jun66$vvO;k=JZ0iDJc%pb-Ymp1{rr zcmVg0y5&;qiVS58P$+5!>IF3c{?ZK;ew;K!++Y$wc2s6P7cfEgN(kDLRHN&!yOvH2 zpQ5Shd1yBSgkg{t~?Z{vSHH9UoCU@o;@r9t!?!-uh|Ns^Jm zjndF<2{J$+hN%f6F*Rfc4_D13DH+t`$QYT$4Bc}3cDnP<-E{Re8%c{BR7G$qb(^Y< z1~sY`)F_bREQ9WC(vvdv^|#QP)mNmLe#nCp@4#<1Q zb+u;?9{Qb7jX|y>x?JGQGyyXf7z5D_9U1S%$pJh%z*d7O`Z%1FO*jNNsYU>Jq4CLe zLB*sgpktR5I4>zls)O;)jGU*{yVj5%pP|++n{H`aM_aGxp|j^^=)%MdHR^ay9nga! zmlGx&H4zwtI`ajZ9KT4m>rw)3gP|`gCIyP8Jol4V@B7fr*FT<5wK!^}vP5I&FJ3)7 zI<_;8^ht^;u*vXpT;y8`MWHeoNHV&HZBb`hqhcEGI~N4D85aQz_rOAmi9$u~sDO=- zXENXloSz+2=-li$-MsM%#AX-)Dv3s!D-dl=DKs!-P`wcc;bf^|F%#Nk0SQh66fdhZ zKCy&*8RQ0`C<_U69fM<|W8*u9M^0_)UD5f1nnQhj?I$nYT62O#E@g^-#Z|(FL=A$S zfb0jhS;m;&GW8}jYD|xyo6nLCN>%|Yt_d}cgd~v>6@O=mgTP2|QqIQd=riMFW|OpP zRfcqFijqc|Y#+S~P;!9x5Dk@i$(FLHJFUsE2I-)3(P!5K&00QW40WWZO`O)6J{ zYKby{QZtPMKl} znM^pQC*f=yogY0>fkTQ8XV5ftI1~UfRfwBI!_zddZVR=wq{&?_!w`I)v&xy5;S93s zfpEMKlO{AFVnDv5Q%vro@(gOFUME>C3X}w)E5t3U3t5fP$hoPTt99#h>YFDOc!iXwIF4VZ|BTMKf z9mOuk&`KbNxI)KIf~A5M+PEnNaSHv$!xA=7dLSu_f`rvbAdbbYQzkOY$z$Y7zgm_ppv ztH)1YxCTF`#W?Z`*Gg0;vUm;5!=X@Cg!V!&r(PHz2SoG)uxuo0!G=nhLBpGaDn_Gh zDWs^SJ5I?KkN`4idpeyMouJm91of`WiTf+)M;u`vG1Eg9MlcEr+hrrcniAIxSX76+ zD$NC`mpJ|o#jdbzk_fiw`Es<22qaB8ae92aIx;rfsb~q|h@vr*;lprKX=X<-0W*kS zrMzlUPg@twqAwg8DbtbZ5?xsKY0i_0Wl@GK>d-w}KbWLlyE|y-4Fgp5;mqlaw0Zk= zn1#9#X^2dPAq#l2G=g&);NpO(IC!#Ig>cnSbDp61Dl}afv=M_uMk5YoU>PHX2dIgu zmB$d+KRPzutxnG`v~vVl^l{XfQrQvs!()<=;{pExbIi-_^!O+uxd0WQ^^pqwR_y4c zu3{b?8Zx6+rn&JmwD-gq?fvovy6*KiXmEWeE!qkC$W^-l%>=^PptuCd0y0qmIWB%5 zmy5rHHz12tLj6-*PEf@$2`UAB3@t-vn*evNYtC*UiIJUEf`&}aE|ywUIO1N?s1nOQ zq>`1YNDQ!`MB@u6QzbjuO7p2awQjnF26|RdTQN(;ObnM!dCc&cL`-!4()=79+`EtV z{NM+)cX*Ln&>Z^*3#6GYIW}s|GntG4uSoWb!7T8_B}Q;Zro9%RfB_&H4vD3hDTK5xnyY}ps|TIIt|CCr>jr|-Kd=wTs~~V zqzW?k<>pdRim)UY81_PF$|}FmfjP0IR3bd`WXH~^z9TT{;4_(QE9xeVu8ovRs%Tt3 z3>O?Hp?Bat4fHLudIb@Lc>T)ZQK~GK>7mcuO2t%>9{QKV^y8QI(@&otp-f?fvIU6M z7-|iDrCu$QRjrZMFaXOqb*K920-Om=9qd;UEkgDb5p38UZGm8?P+Y1e0IPPk7w1RE zC-H_Z^bR|sG#3gw3X_QwQv{TCk?KB2M(4dI1r7u#FDf81J)bX)T<9s^K|m0kI+*In z@%_}_9nh+t0%a4e^o2jagYG%gO$T0{r(?q-G&6UB0t{CT7jQoed2&V=tb|Uqn?oRjknQC$0n=_VGpnxZZksyrD&`rcO0;iX;+2mm zK}4QM0Me^MkKZ$7yATF5^yp(86<*f=n>_h%1)0k6GQw{VI6&VOH z{W%z8>nusQ<2s;KSrS1&0ieD-8a;WIYUMfFws|W?30?|T#E|9tWzZ^WF07-bU?{T} z;Os+8I_@$u?$Bacqv<8wN=pMVypjSMz*<7Y1b~$6id_Uhk6WRk$ky7yl?S=*k7X0a z!g3gNDJ&7*9=?UP;x%hFlNPfCuap9exV#_Z)lvf;8zTjp9A`Bef_;cZRdMOa(Ua7Y z3eZ4XAslP?7hFCIw+f<(n(`Yk3{HUsL${8xz{ZH|l8t(pSWs!M449jlsF?%WvTln# z0F*DWRtm&s6hTLT@=3jpk^Y3-(NdV{ZZGU}EGycPFrz6dMU93BFAY;&9L!=xYawn_ ztZrQg@N%eOyHrDFDpo*MCxD0~nqR8XnKPqcu_U!%?g{KN?!1U>l=1Ki9I1%RP}qQB z4Fn09!JOneE-eGP7a3wsLJVn=3IVL}$phrBDmOKmDrlM)D?T9J-%&WRZfIaiK6Y}{ z@98MMp)$|&j4g&RnY)pgYf{M+q=Y7x46X|&05KMKydMZX2Q+L$2)b0llvu|1Dx8~` zTcCycQ9vw133&l&oG0H~g3;3?yA?1V+BzHx8CEu&X~3C=2Z#k!vP~MB&q4|mp~y+h zQWDw%JHaCfpGL^ACu$>LTv*xPReUO)N;v9{t2Wb$uFj_qym9eQk+g!?DB?q+*Wil9 z2aWJz7$c`FgOlzViu{7t?fVs(O5XLfXUN=C#HHr5fv0;&T%my@l z9<33G5CtC~8$N;%SRqg6G*?n-aw$uanF7p!1}_We!J?r5Xi#*;?lNS^!oSyiFAx>s}^-7wVm%ww_6r8Ymw}AU0E1``7hn-VsoD~l$ zIRoLT)uT4yu`)KeB1J|-NkiKB2>Pb$Q8 zP_!ylp=MM#f_kXc#F~jq95a{L=?YoFGd>}@&|Br%5;c~P&9*l3>$7ylmJB5|KnqGS zpd|Sw*bEekW`(-3P;+nsL6V@o_;M`|Gf#?6*LtWChb+=rgtj19n%F(4s3jl7;jsdy zG%~qJF{xth*s}W3hVKP-y#~7^8!&Qc)7rjg*Y=M5aCl<*u8{Exj^|0Ugo;)W4MQ~5 zORLYfVJI9D>nJo>z;SY}L}@V4_MR>Z=TD+3R)oXMUaVMM7;Z_P=ud<|sSP;e;1igO zDn7DWHZjm8#pnS+)U1sl+Nq(v`YfMZ41a)Ve|v7v#>` z>?ECB%+t}uBw6MPpdu~WgHY_^RL&RYJPK<;=(w=H5bWC8|M$CgTy@YD@NX{8d3XEP z3mEyn>$W~{e0=`4v89C_rrv_FK;sWZhOhj}xAs3#(Q^HzZe!eDuLixTr6`QYGD)I{$mWwf(Lw>xT~6;soFw4x6|!u3O!I_^uB$?tAR{li#sz zyHn$i%gst^9x+HFbV6##nj&ORv^R)`IzH;-@is6uzyyU4xf3`^&^li8^n-@!NHM6m zm@ry_0^liA;p0J;`b;pq?ZCx{1-ve{S^ov~soQVd^6|Ap{f8Xadv~YJeCELd6io1m zr(ZqwaKnRFB z=T)u-9mY#Xo@7nY1lejmD2ZQsaFjUte7=KVcy5VQw>-6bYsV)C`#Se>Moe9Q_ebaK z(CYq59XHEtpss=%}2McGirwk2BT2qna_Lyi`TA?hP!Y*W;+ zg8(D59E*OQ7c9J?aUg#npY@lArOsI zIIxoD?BlJAO=3F;8QfeULvD5S=rjDJv7+b`?qTcd&{$B>%IAP6GsS5dHMa< zZ1`+(9Df;c(^x8bHlu4*jNPEZ^IN?bV zGuke{RxoBXNUKfNx=iP(RRg()wy*2kf9~7``k#vZ|MZJMJlXL>Tk_c#Q!(vOeyRM# zoV)zn(~H%cta`lY#j+H{Q0OKv`m{(fFkLtI34GoYZSX^~1Z`u?25npQI(ZhT+paIJ zNE*-fWtFdIV%g_Y$(SY7`Y-XTO~3T-oAE&^q>Ecj$A37KP5oF}k=c53V)5E?SifVj zZmnIY8Ck_l7#bhT@t!)2e!+xI;`2~;#123!x__ka?Mcd3yxyE?kp}k z+@Cx@`2YQVv&+9&gYh%l(uqSou77A~_247V93AT@n9BOPXWejaVX>nTD5jRox;*hf zi%EXHq9^2_u|AWUjBDDyg=ORT`?m~Cjf{<1#dMM`R2^~OU-j$11sDJ_t46T~!P1005r4m4t-S zX9)>fC1(e7D_b)Fz%w&R(@QAP;Z}@qaA8PraQtg6m&tl9Zta;*FL!c{qKQE*@k2zs zAUi$mGjlNxY^iji0VvWD zCQ(MC`iBjZr_WFmwTG6FWgFou`J=twM-CvyR}gS_tPX%%|8xK#0sd*nL5e~=qFFf; z-ts*uT8xQ4(ETcTS>Hw=m$>|Qg$!l|00cd$sE`12epGFUHYkJ=#UBF+U<<|wf9)@W z1VBswPDB7uMgyd7*sTBn#M`-g##u-^Y^_C#U?>1?L?tvya`S4 z1$0XzH?!S_>Nq2#0%#q%3Ib=7>kT87${oMS)LMQ7sdA`3RreE&n6xR%Wu?4ND2wl)o2OmR zo2(Klu9r2`Akb7-by5E^$2tT3(NM|oQ*K(M%cmba8*A)3AC%NQan&e1Pn|AVl~jAJ zoKfX2cq0&fthhP;MGtMYca_G|xE*?{;l=fc4~w~Td#poWNce)<`Pv+pr?@|4E+|UU zQ94~}K(*@3k1Q&JuK!_hcVPWX>gO$aL76;iR)rH8Dn*)!)Q>_wmUJ#WHUd7ETxz&S z1mn8dz|8{Qq1lV;XezR=nU25%_g_c#6KVe9vdRmK)h>ybiCdHLvDk$wRlIxO=XRx1 z)LxP+Vk=kNwA!)!B=6Ya0@+8If8Gd`f7o|;YH!hRbG13WQCpqNT6@^@Sf-++vdO4i zZ*ztlU#6iCX-5M`ZO1I-tV={Apl|LO+XH7mANRUNiFI6aoV2KaaJaqt-kOpos@Rd= z;ZjB2`F{WMMDuvv^U^lgG4@L1{G`d_OUOm&s#K6Pv-D4RUdKEXZdYyv^b+?lcB}Pe zH(RN?or50%lnS=Sdh>-yCr+r#DR+)D)~fH5K(JGfvd--~>KLMxR#O)#yi25OXL>ht}; z++nwLmt*haKvrst*V=UvGK|baMMrt|lOkmu_eRs-iQoX|g6@?hyltrz% zlf@+s>5Ck1s3YXVJmbVg=`&9Z^laM~ZHFk2r9e^n%gi{0M2b{-LMjvcN9PX}eq#lw$0pGz#+td5)(>gAC zeL|lg9}S;2gQTwLv$`X)GXt*~0VN>$_1xXty|%c#qdqnU(t^wa33y@`-dj~l9dd_M zArJ+xnb4Ss=Rbzt)OV-)3J z=h^W@WfoXn^YZ)>bEQz1lbXZTMBg|;(<0U6uU!oPmTi)1l4(L|Ms0jx0vnu*EHmQT z9o~)HqeoBzCh!<2*Q~#015JBcLq`4N-Gh{ewfU8RPuYEn02=%?sJRkVdn;-uNv}+$ zavF;_l9$F*War0D40}K8sXDK+20ca@cUgIvV%hZ%vDxM_t^A~dwa+OdP-A^Rby(q6qR?Siq!$N^miT5;osdx%^*#IN zw~SJe@xU>ngO=lKr?ckUHW&=F+IixOCo}eEB4$ z+AzAZ!0g4dg{7Y)OMg)RL;vCc6(cK41d~yM@`xPU8D6^#EY_X#SxsuGCs*Po?NF=P z7IL$++0w=Ay!Q5BH*zm2dS#vk5z@l_g^nrDU?C=b1%fZBYBeCqpNX zkwENuIk{ho`lIY$T8OVdl=XH@pVyitt&yDnbacC0dOni;Q&0IwCHsNr!=6o>gI-IP z4w>6fi~jce(^Ks}M-vy-k&fBNLi4RaJBJ%L+1NE;sLXZ&iJguG8ZT9|nFyvDC+#d;Ht#b(w9km9v?_WES3H?wJ&eHy|fp zUp~#t-O>4PMe#{X4F@<+cwISVIy!*m4m<#$0#k_?dxPiIh8j|A7ba~Vmj6#=M?)0H zDI|yvh_=!Ush1J12?qcexsh4I{OQTRVFyVF>VA{v4mOl3rEe$jqoc&9iR+co+~L_# z{V4SjyH&SUKM@cS`9sofYI(*WA0FZkHZTM8#FA6B2bF#29 zQ8(i>GBNyaMm4lxlD@dR_+5xxC|`I`=&evj%T7x~^FfPAOG)+kf(AA67m8@?l;Fof zs`1C{iG(vIIQ2^?avRzqngCix(CeV3AkH8k2oO>XvC7xE1M(2mEN>-mnGlY|e;rxU z!)+ri!YaZkWHG%kbu%s5Rs5ati;GQ-{ektI?V5EDe^d=zq$Qv*2FX(FP+*Xok&=T@ zm5EmI`rumy7Tc@`*b0}@~m3sr1BB9}fMF> z+GMq64(SruPoFkYpJ(stqpTf2y26m5U+x>?l93BXKmoy@R_QE%Wlv^SpJGJIG?nrm zlBGMj+K-Ak9i9tg_I-{R2~{;$QJ9gP?xJxOnN4L%&+@+0i{6YA@md=Sx_HDM&%P4l zbo#5RJk~O6yo|k4WI}etMWPnVrK79d8q)F7VgB+rR42i$;F=HT-R;*5ChcSGf~6Vi z6gPgiD3FEcr~PwJxArO*z;m)tq6qJkzBSOS79O}Vgp$MZw}P~iqoy2ErC^^5Z|-Vn zfF%ITH;_J0qEcZ5y>7-h`A5(b%ngRn$`U-w2o|F8Qr!ndhmU7h#@fGTijfs}o4lL~ zo&1o;V~N!o_$iq#bd#?D#pG=Q#*9&M)u{ex76&EAZn2V?VBRqZ$SM{ zRXS~D`I;|ms#*$O@k*t}d9`KQRitI_%Rr@0x-%NsB@I7BD=+1n^v^C%T^@vAeGb`_ z>Kr^}j)q{X!uU8{u0;hX{0@~g1^O3|+I18EB|^V}!{nR_^Egsj*l zFTw7IKV7FH{{=>+*=iLYr}t3_H%i;@YEiF_R4+)^UHeJ&+9HbnDk|(Y{9hXwfQq?jD~aDxk(ak!27w9jEQ-J(OW3A zVdd7uf48DL_95(1Y{X=jsH#Mn?=Yv={OIp|=OLF_dAoMXYVPy?BkYBv8(Sq8sjs))11~?{M+(s){9f+y{UM=W z^)Xh7i#c8q!M(NJloPE3$$>pazZR1gb%fps7YpGz8nswA+qLXfqXD&nea*nN)%H55 z-{m8=4AvDkHBl|T6owe_XA*&)f`4y~hX!tChh@rT8qYp5kT5GG_KZN2VDCM&KoUJV zQ{d0KX^LJElSL{O+NH^P)P+VREjn_NI&#tm^D-08O>LkN+EE0i*mJ9d-~G$QcIMB2 zb2ycfp&FEP?**qCS&k2nL*Gm(9*%duzpvCg#lSO};IG1U$c71m$~tj;FJEerOr6a( zc9 z&t|CbvX`E}z{Z+YjLei3VbH(3vt97&*_y*fGUFhl;tJLLI^Iesyy`N;TrRO3P?*03l zzxdV*ZacmE`#vK)XXgb(x6J4z8X!Z99WhE+?c*`OjhKaq!}WmUr|WmVabD-YRnDBp zWY^fu#!RzJU{}l6QH5v8VxE4Hw#iSn>r2QB*(m^ke;PRnwPfEiz5;y6@fO|?_HV&J zxEbItFugwRi$0-b@@hF!ED%P7Q%+rq(zBaR7$63dR&J;42co z;3s~Uk`p(4>O97G=zwkjtvCvUUY5rls&#YV7%oUWipL2V00Kaq4C@!Ua#{=V$!@b2 zSn9vBXaZtU!B@eOS|TSq+AQelr2 z`qWe4IT#s;PlsiRk1=J4n*a{nSl74b#^ld^(n+L8MZ&biM-RZqG2+JI5Bpd2rVz<@ zr~n(;{}p4{(*S-Y0f^A|=|wS!6(f}Oj>zblW|S+~56T7(DP4zlbFHN~$C5g|W36Om zSDxoYWeQf2w91uNdSFFK#NAL9N(8Xx&nhpmnk3T6;uQrq+<0W4EZxD^3Iu{A zX#0_Ikm)YO4oUv`&34}$;{yEu0$6WQ0G3)`6ydjU4rXq;R{(!(mdP*A%iSTAbw2J8{qvZksU=#gUkO1kK$&wFT@#Dwz`AWTIVBFptQEz^I0|Pk75Q&)^;|lq?TgJO9$@i|DBt9IX9&U(|n3QByrWPUW@>fYq3)A0BYoYP7W4ZCf9tMM5U0vbhhGuZ- zHdhO$$!mjh9IC6TsxCumeD5AJ96G%&CdAXJ@Nz=HIurw(g&uSxn_iTBbA8$7U=A z`9lt=sHwBNV2?K*HrCcZ#O^i%CAurF=u}4YWfEgB3i&95u_$Nw@3+2lS=!hXbaZ5; zr&9vh+1bB#LWM8?j`eY8u4m%MF6@LAT2VII@$vJkbvSJgewZuQx_qt3$V*-!Wr21d z1{Q~SN5=>-WrASojzXg?E_;AxuS;f7PR!AKmCN~-a{%m+hPXg z-J6qTxZF%VT*&=+Aw?*Tb%f&_a$nlJqtcnn^E$A#_2b|1tfTZj1R%w1;K+w{Xy5hG zJdXkqIZ140XHb|aQdDFlK2~sVMMcG#P5Ru^qD2lYT=jGUi(pp*%omYj;OiBM?)`Yu zq=#2;Izl*);)S+zc|XZNMuIOye|T_UwASu5*l4%B)oAA+jKJ{OJUk2w#J-at;+6aG z;Qea}s^|qob{Tv)H%_z1p9m$Qn=d2d;caCk#8p&SXuH zE#g&4_l%S=K{$cqg58%t2GH|?=3*6Do}0lioB2vu2*qJ|B0BwLJM&h6X&r}$4S7hMQTf0T9xg87>u9V00kG8_ zDR03Z{8@e$1=BRolOeXdmgCi{SFCJo6las(a&mII^Vfg-Lh&X_2M3{8rMY4lJrH1Q zq$V&wlgv&MVJ_UlQd1-;Le~_4HF^elP^3=@soqS{hGz{O=LKPJ=m*R6VFwooj`^( zUB>U0HlKnhTn#H>cn)PGa$Z(cNNE2BZco3|?sWW`U1M&d50wr@wx^FYX^s4riY_9?q{=-`# zN5dt_Li*T#)8znv9GuP~;%OeBoqKq1gd8cQA+Z(&W$ckt zYW!)P-1h?Qz2{PyU|N5xbbHqsx3^vEF=kp#3VvJnwWY7n(OaChUokN;4L)2SZI`M2 zxZmgr6o&|UA&eH;E438;qVXh>g`U9e$yW@~i(m2=$`4^HxEo(C_QMnX8EenM9uXjMV2|Ns#caPX9kmz6ah6IR&{Dy5K|5Lf zVO-=4y0EZtcNSS(ZTc|l%ufF&?a+vqS|%Fej7nfo|HdoGQ+}qOe~f41@`YsT*E`m; zQM{aqTdv33v-K9YqdE8+N=m|?0g+WVY!FG>aNEb;_CF~y%D!D<62K56g!xEEs5%e?1qon8$RD-KpH${fi2G&gy{!fLTFdQSL z@~*$P*h?$nGv=^FBg|-Rm|hy6Jfm^YCu*5azST_2#2Y?Pj@QTCj_qBBk;qkh4d(VO z$iKZYje92=*NPC%{;N!banV5bZBbJZuGhR&PdksQ!SlH`>3;=fWl^RtoIhil<)@|d zOnG?gkso;#Z$Ue7Vy)C=Os2>oFJLd-F!m z+yn4`-EP76QbpX(^JE&YOA$mk5JAGB*P0lNO*TC{+m8_Ig*Fea6fT4DA6&MLDpxMs z1BO)y52cU8c)U5;9%0Eby}#JCU8)Z^`QhANAY zm(ud`osQeJZG;Z*E<1GXZidpl+K3T*F+_}>{qx6ZXE?6?){~4^(yxJ<=NmU=)WwR+ z#MJb3@4tWCP4=tKG%iPTobofKM{^anE6s6;^msl*GsPd}C?uZSueI%HYKq_pOeR`Po^3wj$ZFREmANVd zyzb4uP|Re=3R(eiK`C*vRO01Ux_+Zso#UqXtzcxj)mb`dAd-E1L>Fh2#!)*BLDE8g zFTlNtoRW$P9DrZK<7=}f}Ikn}$sEY;G(h@#dhgbPf(GuduXgL)uuz4e4 zLbTbd98rlYqFT$|X;Ue{tAN`zXpuj9FT%rE8|{cHqT*|%!p6h%Y{s=gQ^GtJ26p@= zs}jMyQxuE|pMTg`lT%U_HWm-+z5dZy9FmuZgb)x>QMfCO!TuQw4KWNgp3Il`b)XDu zZy2W8ZV|Z@z|lS?m9i%uKV(YG9CO`RDv2=i{aXw2SDVw^Bb!F~HQKk%Xj5M~5$)ch z&B!AiRy8aXDNW_;$7e_{K}bl*BrGJOSH+3_HL`Y|kA@_E?0$(oWZ((aMGRJwU*TLea*Ui*kJ8_Xix}8u8 zy?IQ;o7z^aq+US(v}0mQipjFz<=(^|A_!onjzO7RSs8u0zpSy#a1@d^Fj!AD`x}8E zgF?x6i9GybD;0J1fp8+0(#p!>*4A_)7DXj>^}^2KGeCDU$O2h(w=9NlH#`WvggvN~x@T-<@`$s;vA;K>-JG za=r#*kp%GmLu?a00b-i^`b1OSgHycFKGeWZ0$gi>gi4gk>J%ZLgx(Yv7WQ}ehwrN; zankU1al98a<~|l!e9~dY6c5JVLx$xu}<)TenHkl(p)QN!Xri^%9W5+OoIty z>E9*#o3qr_MQRSZ-sI8$&oi-B9%|t*789+c2C=%qLZx2Y{{DXRwuzwa0@%caVRd!2 zzOfOx+WXo%JtG5Y&l+Uh7?OgB1G2pj*{FSvYsy5=k&8=F6KxP-D`KSKNIX-&am@iJ zt6fPAd8x)^C>4gVskb8TldG#ZLdvG}RV>srF+;+z2Y$fG$qB!ppkfaN8A$RhVC%g3 zT{aGtV72G@*5?kz8jL|XWl37Dp%|Kyj*hpE^b@9%jtFwYefx1|EvFpAf?iUDy0oor z`FWZlF3cvLr5AyH@K~qA`#NZPL%zh4VKQ6PXJvV8Y)mU-4S|>%cBQOQrJr?DHpUvE z0uIG}yLI^Ir~kGdvyS_3=GL!lABk4i)=u?Xc}c(581;o%feO+TlrdT3WK8*yJFlkY zW;_M!0`m!#fYdB;GJwUTV?O^yVQR~d2dAg*a_)}MSY2;yh-S#v8f!X|*{%2SGH15% zT7;=}IN9)Z8yC_qe{I7~yJh(B`8lzFvDFup`2aD0Uqd0yA$E4W!c^}>|Np-i5m1cb zSLIj5!+2Yl<6go!Hb{#HoM?ums2BDmmyC)Z^%HN)J)I{X7{1pTx^gjW;-M0D_ zY&q93LUMq&6MNOC%n98vR*M}ua32`?&cb`07Jszw{5u*EIr0mteGwd&PY#uFP1nym z2S0|!Y^wwdn*|GJ^GWG(rb)rP*`FiRphxDx7fTxaDz^ZYUp;JMu|FIr5&4jtNy^nS zK7)wgp+esXdZ%XK?@oRF%Ou`w1jPnBy9knB^4o+;)dV;ADxF>c>n+a literal 0 HcmV?d00001 diff --git a/public/javascripts/application.js b/public/javascripts/application.js new file mode 100644 index 0000000..fe45776 --- /dev/null +++ b/public/javascripts/application.js @@ -0,0 +1,2 @@ +// Place your application-specific JavaScript functions and classes here +// This file is automatically included by javascript_include_tag :defaults diff --git a/public/javascripts/jquery-1.2.6.min.js b/public/javascripts/jquery-1.2.6.min.js new file mode 100644 index 0000000..82b98e1 --- /dev/null +++ b/public/javascripts/jquery-1.2.6.min.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/public/javascripts/jquery.corner.js b/public/javascripts/jquery.corner.js new file mode 100644 index 0000000..127a4f1 --- /dev/null +++ b/public/javascripts/jquery.corner.js @@ -0,0 +1,53 @@ +/* +JQuery Curvy Corners by Mike Jolley - +http://blue-anvil.com +18th July 2008 +v1.6 - B180708 +*/ +(function($){$.fn.corner=function(options){var settings={tl:{radius:8},tr:{radius:8},bl:{radius:8},br:{radius:8},antiAlias:true,autoPad:true,validTags:["div"]};if(options&&typeof(options)!='string') +$.extend(settings,options);return this.each(function(){new curvyObject(settings,this).applyCorners();});};function curvyObject(){this.box=arguments[1];this.settings=arguments[0];this.topContainer=null;this.bottomContainer=null;this.masterCorners=new Array();this.contentDIV=null;var boxPosition=$(this.box).css("position");var bgImage=$(this.box).css("backgroundImage");this.boxHeight=strip_px($(this.box).css("height"))?strip_px($(this.box).css("height")):this.box.scrollHeight;this.boxWidth=strip_px($(this.box).css("width"))?strip_px($(this.box).css("width")):this.box.scrollWidth;this.borderWidth=strip_px($(this.box).css("borderTopWidth"))?strip_px($(this.box).css("borderTopWidth")):0;this.boxPaddingTop=strip_px($(this.box).css("paddingTop"));this.boxPaddingBottom=strip_px($(this.box).css("paddingBottom"));this.boxPaddingLeft=strip_px($(this.box).css("paddingLeft"));this.boxPaddingRight=strip_px($(this.box).css("paddingRight"));this.boxColour=format_colour($(this.box).css("backgroundColor"));this.bgImage=(bgImage!="none"&&bgImage!="initial")?bgImage:"";this.boxContent=$(this.box).html();this.borderColour=format_colour($(this.box).css("borderTopColor"));this.borderString=this.borderWidth+"px"+" solid "+this.borderColour;$(this.box).css({"padding":"0px","borderColor":this.borderColour});if(boxPosition!="absolute")$(this.box).css("position","relative");if(($.browser.msie&&$.browser.version==6)&&this.boxWidth=="auto"&&this.boxHeight=="auto")$(this.box).css("width","100%");if(($.browser.msie)){$(this.box).css("zoom","1");$(this.box+" *").css("zoom","normal");} +if(this.settings.autoPad==true) +$(this.box).html("");this.applyCorners=function(){var topMaxRadius=Math.max(this.settings.tl?this.settings.tl.radius:0,this.settings.tr?this.settings.tr.radius:0);var botMaxRadius=Math.max(this.settings.bl?this.settings.bl.radius:0,this.settings.br?this.settings.br.radius:0);for(var t=0;t<2;t++){switch(t){case 0:if(this.settings.tl||this.settings.tr){var newMainContainer=document.createElement("div");this.topContainer=this.box.appendChild(newMainContainer);$(this.topContainer).css({width:"100%","font-size":"1px",overflow:"hidden",position:"absolute","padding-left":this.borderWidth,"padding-right":this.borderWidth,height:topMaxRadius+"px",top:0-topMaxRadius+"px",left:0-this.borderWidth+"px"});};break;case 1:if(this.settings.bl||this.settings.br){var newMainContainer=document.createElement("div");this.bottomContainer=this.box.appendChild(newMainContainer);$(this.bottomContainer).css({width:"100%","font-size":"1px",overflow:"hidden",position:"absolute","padding-left":this.borderWidth,"padding-right":this.borderWidth,height:botMaxRadius,bottom:0-botMaxRadius+"px",left:0-this.borderWidth+"px"});};break;};};if(this.settings.autoPad==true){var contentContainer=document.createElement("div");var contentContainer2=document.createElement("div");var clearDiv=document.createElement("div");$(contentContainer2).css({margin:"0","padding-bottom":this.boxPaddingBottom,"padding-top":this.boxPaddingTop,"padding-left":this.boxPaddingLeft,"padding-right":this.boxPaddingRight});$(contentContainer).css({position:"relative",float:"left",width:"100%","margin-top":"-"+(topMaxRadius-this.borderWidth)+"px","margin-bottom":"-"+(botMaxRadius-this.borderWidth)+"px"}).html(this.boxContent).addClass="autoPadDiv";$(clearDiv).css("clear","both");this.contentdiv=this.box.appendChild(contentContainer2);contentContainer2.appendChild(contentContainer);contentContainer2.appendChild(clearDiv);};if(this.topContainer)$(this.box).css("border-top",0);if(this.bottomContainer)$(this.box).css("border-bottom",0);var corners=["tr","tl","br","bl"];for(var i in corners){if(i>-1<4){var cc=corners[i];if(!this.settings[cc]){if(((cc=="tr"||cc=="tl")&&this.topContainer!=null)||((cc=="br"||cc=="bl")&&this.bottomContainer!=null)){var newCorner=document.createElement("div");$(newCorner).css({position:"relative","font-size":"1px",overflow:"hidden"});if(this.bgImage=="") +$(newCorner).css("background-color",this.boxColour);else +$(newCorner).css("background-image",this.bgImage).css("background-color",this.boxColour);;switch(cc) +{case"tl":$(newCorner).css({height:topMaxRadius-this.borderWidth,"margin-right":this.settings.tr.radius-(this.borderWidth*2),"border-left":this.borderString,"border-top":this.borderString,left:-this.borderWidth+"px","background-repeat":$(this.box).css("background-repeat"),"background-position":this.borderWidth+"px 0px"});break;case"tr":$(newCorner).css({height:topMaxRadius-this.borderWidth,"margin-left":this.settings.tl.radius-(this.borderWidth*2),"border-right":this.borderString,"border-top":this.borderString,left:this.borderWidth+"px","background-repeat":$(this.box).css("background-repeat"),"background-position":"-"+(topMaxRadius+this.borderWidth)+"px 0px"});break;case"bl":if(topMaxRadius>0) +$(newCorner).css({height:botMaxRadius-this.borderWidth,"margin-right":this.settings.br.radius-(this.borderWidth*2),"border-left":this.borderString,"border-bottom":this.borderString,left:-this.borderWidth+"px","background-repeat":$(this.box).css("background-repeat"),"background-position":"0px -"+($(this.box).height()+topMaxRadius-this.borderWidth+1)+"px"});else +$(newCorner).css({height:botMaxRadius-this.borderWidth,"margin-right":this.settings.br.radius-(this.borderWidth*2),"border-left":this.borderString,"border-bottom":this.borderString,left:-this.borderWidth+"px","background-repeat":$(this.box).css("background-repeat"),"background-position":"0px -"+($(this.box).height())+"px"});break;case"br":if(topMaxRadius>0) +$(newCorner).css({height:botMaxRadius-this.borderWidth,"margin-left":this.settings.bl.radius-(this.borderWidth*2),"border-right":this.borderString,"border-bottom":this.borderString,left:this.borderWidth+"px","background-repeat":$(this.box).css("background-repeat"),"background-position":"-"+this.settings.bl.radius+this.borderWidth+"px -"+($(this.box).height()+topMaxRadius-this.borderWidth+1)+"px"});else +$(newCorner).css({height:botMaxRadius-this.borderWidth,"margin-left":this.settings.bl.radius-(this.borderWidth*2),"border-right":this.borderString,"border-bottom":this.borderString,left:this.borderWidth+"px","background-repeat":$(this.box).css("background-repeat"),"background-position":"-"+this.settings.bl.radius+this.borderWidth+"px -"+($(this.box).height())+"px"});break;};};}else{if(this.masterCorners[this.settings[cc].radius]){var newCorner=this.masterCorners[this.settings[cc].radius].cloneNode(true);}else{var newCorner=document.createElement("DIV");$(newCorner).css({height:this.settings[cc].radius,width:this.settings[cc].radius,position:"absolute","font-size":"1px",overflow:"hidden"});var borderRadius=parseInt(this.settings[cc].radius-this.borderWidth);for(var intx=0,j=this.settings[cc].radius;intx=borderRadius) +var y1=-1;else +var y1=(Math.floor(Math.sqrt(Math.pow(borderRadius,2)-Math.pow((intx+1),2)))-1);if(borderRadius!=j){if((intx)>=borderRadius) +var y2=-1;else +var y2=Math.ceil(Math.sqrt(Math.pow(borderRadius,2)-Math.pow(intx,2)));if((intx+1)>=j) +var y3=-1;else +var y3=(Math.floor(Math.sqrt(Math.pow(j,2)-Math.pow((intx+1),2)))-1);};if((intx)>=j) +var y4=-1;else +var y4=Math.ceil(Math.sqrt(Math.pow(j,2)-Math.pow(intx,2)));if(y1>-1)this.drawPixel(intx,0,this.boxColour,100,(y1+1),newCorner,-1,this.settings[cc].radius);if(borderRadius!=j){for(var inty=(y1+1);inty=y2) +{if(y2==-1)y2=0;this.drawPixel(intx,y2,this.borderColour,100,(y3-y2+1),newCorner,0,0);}}else{if(y3>=y1) +{this.drawPixel(intx,(y1+1),this.borderColour,100,(y3-y1),newCorner,0,0);}};var outsideColour=this.borderColour;}else{var outsideColour=this.boxColour;var y3=y1;};if(this.settings.antiAlias){for(var inty=(y3+1);inty0)?0:-1),this.settings[cc].radius);};};};this.masterCorners[this.settings[cc].radius]=newCorner.cloneNode(true);};if(cc!="br"){for(var t=0,k=newCorner.childNodes.length;t0) +$(pixelBar).css("background-position","-"+Math.abs((this.settings[cc].radius-pixelBarLeft-1)-this.borderWidth)+"px -"+Math.abs(($(this.box).height()+topMaxRadius-this.borderWidth+1))+"px");else +$(pixelBar).css("background-position","-"+Math.abs((this.settings[cc].radius-pixelBarLeft-1)-this.borderWidth)+"px -"+Math.abs(($(this.box).height()))+"px");break;};};};};if(newCorner){switch(cc){case"tl":if($(newCorner).css("position")=="absolute")$(newCorner).css("top","0");if($(newCorner).css("position")=="absolute")$(newCorner).css("left","0");if(this.topContainer)this.topContainer.appendChild(newCorner);break;case"tr":if($(newCorner).css("position")=="absolute")$(newCorner).css("top","0");if($(newCorner).css("position")=="absolute")$(newCorner).css("right","0");if(this.topContainer)this.topContainer.appendChild(newCorner);break;case"bl":if($(newCorner).css("position")=="absolute")$(newCorner).css("bottom","0");if(newCorner.style.position=="absolute")$(newCorner).css("left","0");if(this.bottomContainer)this.bottomContainer.appendChild(newCorner);break;case"br":if($(newCorner).css("position")=="absolute")$(newCorner).css("bottom","0");if($(newCorner).css("position")=="absolute")$(newCorner).css("right","0");if(this.bottomContainer)this.bottomContainer.appendChild(newCorner);break;};};};};var radiusDiff=new Array();radiusDiff["t"]=Math.abs(this.settings.tl.radius-this.settings.tr.radius);radiusDiff["b"]=Math.abs(this.settings.bl.radius-this.settings.br.radius);for(z in radiusDiff){if(z=="t"||z=="b"){if(radiusDiff[z]){var smallerCornerType=((this.settings[z+"l"].radius0) +$(newFillerBar).css("background-position","-"+(this.settings.bl.radius-this.borderWidth)+"px -"+($(this.box).height()+topMaxRadius-this.borderWidth+1)+"px");else +$(newFillerBar).css("background-position","-"+(this.settings.bl.radius-this.borderWidth)+"px -"+($(this.box).height())+"px");this.bottomContainer.appendChild(newFillerBar);};};break;};};};};this.drawPixel=function(intx,inty,colour,transAmount,height,newCorner,image,cornerRadius){var pixel=document.createElement("div");$(pixel).css({height:height,width:"1px",position:"absolute","font-size":"1px",overflow:"hidden"});var topMaxRadius=Math.max(this.settings["tr"].radius,this.settings["tl"].radius);if(image==-1&&this.bgImage!=""){if(topMaxRadius>0) +$(pixel).css("background-position","-"+((this.boxWidth-cornerRadius-this.borderWidth)+intx)+"px -"+(($(this.box).height()+topMaxRadius-this.borderWidth)-inty)+"px");else +$(pixel).css("background-position","-"+((this.boxWidth-cornerRadius-this.borderWidth)+intx)+"px -"+(($(this.box).height())-inty)+"px");$(pixel).css({"background-image":this.bgImage,"background-repeat":$(this.box).css("background-repeat"),"background-color":colour});} +else +{$(pixel).css("background-color",colour);};if(transAmount!=100) +setOpacity(pixel,transAmount);$(pixel).css({top:inty+"px",left:intx+"px"});newCorner.appendChild(pixel);};};function BlendColour(Col1,Col2,Col1Fraction){var red1=parseInt(Col1.substr(1,2),16);var green1=parseInt(Col1.substr(3,2),16);var blue1=parseInt(Col1.substr(5,2),16);var red2=parseInt(Col2.substr(1,2),16);var green2=parseInt(Col2.substr(3,2),16);var blue2=parseInt(Col2.substr(5,2),16);if(Col1Fraction>1||Col1Fraction<0)Col1Fraction=1;var endRed=Math.round((red1*Col1Fraction)+(red2*(1-Col1Fraction)));if(endRed>255)endRed=255;if(endRed<0)endRed=0;var endGreen=Math.round((green1*Col1Fraction)+(green2*(1-Col1Fraction)));if(endGreen>255)endGreen=255;if(endGreen<0)endGreen=0;var endBlue=Math.round((blue1*Col1Fraction)+(blue2*(1-Col1Fraction)));if(endBlue>255)endBlue=255;if(endBlue<0)endBlue=0;return"#"+IntToHex(endRed)+IntToHex(endGreen)+IntToHex(endBlue);};function IntToHex(strNum){base=strNum/16;rem=strNum%16;base=base-(rem/16);baseS=MakeHex(base);remS=MakeHex(rem);return baseS+''+remS;};function MakeHex(x){if((x>=0)&&(x<=9)){return x;}else{switch(x){case 10:return"A";case 11:return"B";case 12:return"C";case 13:return"D";case 14:return"E";case 15:return"F";};};};function pixelFraction(x,y,r){var pixelfraction=0;var xvalues=new Array(1);var yvalues=new Array(1);var point=0;var whatsides="";var intersect=Math.sqrt((Math.pow(r,2)-Math.pow(x,2)));if((intersect>=y)&&(intersect<(y+1))){whatsides="Left";xvalues[point]=0;yvalues[point]=intersect-y;point=point+1;};var intersect=Math.sqrt((Math.pow(r,2)-Math.pow(y+1,2)));if((intersect>=x)&&(intersect<(x+1))){whatsides=whatsides+"Top";xvalues[point]=intersect-x;yvalues[point]=1;point=point+1;};var intersect=Math.sqrt((Math.pow(r,2)-Math.pow(x+1,2)));if((intersect>=y)&&(intersect<(y+1))){whatsides=whatsides+"Right";xvalues[point]=1;yvalues[point]=intersect-y;point=point+1;};var intersect=Math.sqrt((Math.pow(r,2)-Math.pow(y,2)));if((intersect>=x)&&(intersect<(x+1))){whatsides=whatsides+"Bottom";xvalues[point]=intersect-x;yvalues[point]=0;};switch(whatsides){case"LeftRight":pixelfraction=Math.min(yvalues[0],yvalues[1])+((Math.max(yvalues[0],yvalues[1])-Math.min(yvalues[0],yvalues[1]))/2);break;case"TopRight":pixelfraction=1-(((1-xvalues[0])*(1-yvalues[1]))/2);break;case"TopBottom":pixelfraction=Math.min(xvalues[0],xvalues[1])+((Math.max(xvalues[0],xvalues[1])-Math.min(xvalues[0],xvalues[1]))/2);break;case"LeftBottom":pixelfraction=(yvalues[0]*xvalues[1])/2;break;default:pixelfraction=1;};return pixelfraction;};function rgb2Hex(rgbColour){try{var rgbArray=rgb2Array(rgbColour);var red=parseInt(rgbArray[0]);var green=parseInt(rgbArray[1]);var blue=parseInt(rgbArray[2]);var hexColour="#"+IntToHex(red)+IntToHex(green)+IntToHex(blue);}catch(e){alert("There was an error converting the RGB value to Hexadecimal in function rgb2Hex");};return hexColour;};function rgb2Array(rgbColour){var rgbValues=rgbColour.substring(4,rgbColour.indexOf(")"));var rgbArray=rgbValues.split(", ");return rgbArray;};function setOpacity(obj,opacity){opacity=(opacity==100)?99.999:opacity;if($.browser.safari&&obj.tagName!="IFRAME") +{var rgbArray=rgb2Array(obj.style.backgroundColor);var red=parseInt(rgbArray[0]);var green=parseInt(rgbArray[1]);var blue=parseInt(rgbArray[2]);obj.style.backgroundColor="rgba("+red+", "+green+", "+blue+", "+opacity/100+")";} +else if(typeof(obj.style.opacity)!="undefined") +{obj.style.opacity=opacity/100;} +else if(typeof(obj.style.MozOpacity)!="undefined") +{obj.style.MozOpacity=opacity/100;} +else if(typeof(obj.style.filter)!="undefined") +{obj.style.filter="alpha(opacity:"+opacity+")";} +else if(typeof(obj.style.KHTMLOpacity)!="undefined") +{obj.style.KHTMLOpacity=opacity/100;}};function format_colour(colour){var returnColour="transparent";if(colour!=""&&colour!="transparent") +{if(colour.substr(0,3)=="rgb") +{returnColour=rgb2Hex(colour);} +else if(colour.length==4) +{returnColour="#"+colour.substring(1,2)+colour.substring(1,2)+colour.substring(2,3)+colour.substring(2,3)+colour.substring(3,4)+colour.substring(3,4);} +else +{returnColour=colour;};};return returnColour;};function strip_px(value){return parseInt(((value!="auto"&&value.indexOf("%")==-1&&value!=""&&value.indexOf("px")!==-1)?value.slice(0,value.indexOf("px")):0))}})(jQuery); \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..085187f --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,5 @@ +# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file +# +# To ban all spiders from the entire site uncomment the next two lines: +# User-Agent: * +# Disallow: / diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css new file mode 100644 index 0000000..7183fc9 --- /dev/null +++ b/public/stylesheets/style.css @@ -0,0 +1,119 @@ +/* COLOR SCHEME + base: #FFE9B7 + darker: #E3D185 + green: #9AB54F + red: #6E212E + lred: #B5463F +*/ + +body { + background:#fff; + color: #333; +} +a { color: #6E212E; } +.center { text-align: center; } +.pad { padding: 5px; } + +#toc { padding: 10px; font-size: 120%; } +#toc ul { display: inline; } +#toc ul li { display: inline; margin-left: 20px; margin-right: 20px;} +#toc ul li a { color: #240; } + +ul.a-index li#m-index a, ul.a-about li#m-about a, +ul.a-documentation li#m-documentation a, ul.a-download li#m-download a, +ul.a-tools li#m-tools a { font-weight: bold; color: #fff; text-decoration: none;} + +ul#about-list li { padding: 5px; } +ul#about-list li strong { color: #6E212E; } + +.header h1 { text-align: center; } +.navbar { text-align: center; background: #9AB54F;} +.footer { text-align: center; background: #E3D185;} +.menu { padding: 10px; } +#header { min-height: 106px;} + +h2.section-start { text-align:center; background: #9AB54F; color: #240; } +h3.title { background: #eee; padding: 5px;} + +.inner { background: #FFE9B7; padding-bottom: 10px;} +.example { background: #eee; padding: 10px; } +img.book { border: 1px solid #666; } + +#current-release #ver { font-size: 200%; color: #630; font-weight: bold; } +#current-release small { font-size: 80% !important; color: #888;} +#tip { text-align:center; padding: 20px 10px; font-size: 200%;} + +#git-is { padding: 10px; margin-bottom: 15px; background: #FFE9B7;} +#git-is h3 { color: #630; font-size: 200%; font-weight: bold;} + +#download-source { padding: 10px; padding-bottom:15px; background: #B5463F; } +#download-source h3 { color: #fff; font-weight: bold; text-align: center;} +#download-source h3 small { color: #eee; font-weight: normal; font-size: 70%;} + +#using-git h3 { color: #6E212E; font-weight: bold;} +#using-git ul { font-size: 120%; color: #6E212E;} + +#git-book { padding: 10px; text-align:center; color: #fff; font-size: 120%; background: #681;} +#git-book a { color: #E3D185; font-weight: bold; } + +table tr td { vertical-align: top;} + +table.data-table tr td { vertical-align: top;} +table.data-table tr td h3 { background: #B5463F; color: #fff; padding: 5px; } + +table.data-table.hosting td { width:33%; } +table.data-table.software td { width:50%;} + +table#authors tr td { font-size: 120%; } + +table.bugmail td { border-bottom: 1px solid #f1f1f1; } +table.bugmail th { vertical-align: top; border-bottom: 1px solid #f1f1f1; } + +#announce { text-align: center; padding: 5px; padding-bottom:15px; } + +.doc-section { margin-top: 10px; } +.doc-section h2 { border-bottom: 1px solid #aaa; margin-bottom: 10px; + color: #141; background-color:#9AB54F; padding: 3px;} +.doc-section h3 { margin-bottom: 5px; margin-top: 8px; background: #eee; padding: 5px;} + +.doc-toc { background: #eee; text-align: center; padding: 10px; margin-bottom: 10px; } +.doc-toc ul { margin: 0; display: inline; } +.doc-toc ul li { display: inline; padding: 0; margin: 0; margin-left: 5px; margin-right: 5px;} +.doc-toc ul li a { color: #240; } + +table.ccmd td { border: 1px; padding-left: 2em; padding-right: 2em; } +table.ccmd { width: 99%; border: 1px solid #000; } +table.ccmd, code.g { font-family: monospace; } +table.ccmd td.g { width: 33%; } +table.ccmd td.g, code.g { font-weight: bold; } +table.ccmd td.g { background: #e9e8e1; color: #124; } + +table.videos { width:100%;} +table.videos td { width:25%;} + +.videos img { border: 1px solid #aaa; padding: 5px; background: #eee; } + +#sfc-footer { + background: #9AB54F; + padding: 10px; +} +#sfc-footer a { + color: #350; +} +.appeal { + border: 2px solid #350; + background: #eee; + color: #350; + font-size: 30px; + font-weight: bold; + max-height: 95px; + margin-bottom: 30px; +} +.humourless { + font-size: 10px; + background: #eee; + color: #777; +} +.humourless a { + color: #555; +} diff --git a/views/about.erb b/views/about.erb new file mode 100644 index 0000000..02abd3f --- /dev/null +++ b/views/about.erb @@ -0,0 +1,72 @@ + +

About Git

+ +

Git is distributed version control system focused on +speed, effectivity and real-world usability on large projects. +Its highlights include:

+ + + +
    + +
  • +Distributed development. +Like most other modern version control systems, Git gives each developer +a local copy of the entire development history, +and changes are copied from one such repository to another. +These changes are imported as additional development branches, +and can be merged in the same way as a locally developed branch. +Repositories can be easily accessed via the efficient Git protocol +(optionally wrapped in ssh for authentication and security) +or simply using HTTP - you can publish your repository anywhere +without any special webserver configuration required. +
  • + +
  • +Strong support for non-linear development. +Git supports rapid and convenient branching and merging, +and includes powerful tools for visualizing +and navigating a non-linear development history. +
  • + +
  • +Efficient handling of large projects. +Git is very fast and scales well +even when working with large projects and long histories. +It is commonly an order of magnitude faster +than most other version control systems, +and several orders of magnitude faster on some operations. +It also uses an extremely efficient packed format +for long-term revision storage +that currently tops any other open source version control system. +
  • + +
  • +Cryptographic authentication of history. +The Git history is stored in such a way +that the name of a particular revision (a "commit" in Git terms) +depends upon the complete development history leading up to that commit. +Once it is published, it is not possible to change the old versions +without it being noticed. Also, tags can be cryptographically signed. +
  • + +
  • +Toolkit design. +Following the Unix tradition, +Git is a collection of many small tools written in C, +and a number of scripts that provide convenient wrappers. +Git provides tools for both easy human usage and easy +scripting to perform new clever operations. +
  • + +
+ +

Besides providing a version control system, +the Git project provides a generic low-level toolkit +for tree history storage and directory content management. +Traditionally, the toolkit is called the plumbing. +Aside the user interface coming with Git itself, +several other projects (so-called porcelains) +offer compatible version control interfaces - see the +related tools list.

+ diff --git a/views/appeal.erb b/views/appeal.erb new file mode 100644 index 0000000..c7a6774 --- /dev/null +++ b/views/appeal.erb @@ -0,0 +1,73 @@ +
+
+ +
+
+

Donate to Git Now!

+ + +
+ + + + + + + + + + + + + +
$ + + +
+
+ +

A temple for the mind, people.

+
+
+ +
+

From git-scm.com Maintainer Scott Chacon

+

If everyone reading this donated a hundred and twelve dollars, our annual fundraiser would be over in just a few months. + Not everyone can or will donate. And that’s fine, because each year just enough people support git-scm.com with a small donation. If you feel it's your turn, and you know it is, please make a small donation of $112, $227, $305 or whatever you can to keep git-scm.com free.

+ +

Most people don't know this, but I'm a volunteer. A classy, classy volunteer.

+ +

I don't get paid a cent for my work at git-scm.com, and neither do the thousands of Git project developers. The hosting of this incredibly high-traffic site costs in the millions of dollars a year. Recently, I have been approached by Oracle to buy the site and all the IP associated with it. They've promised me that they'll hold it benevolently.

+ +

Commerce is fine. Oracle may or may not be evil. But it doesn't belong here. Not in git-scm.com.

+ +

git-scm.com is something special. It is like a library, a public park or an extremely high-end brothel. It is like a temple for the mind. A temple for the mind, people. It is a place we can all go to think, to learn, to share our distributed code with others. It is a unique human project, the first-ish of its kind in history. It is a humanitarian project to bring a free distributed source code version control system to every single person on the planet. Twice.

+ +

Every single person.

+ +

Twice.

+ +

We're a small organization, and I've worked hard over the years to keep us lean and tight. Especially in the abdominals.

+ +

To do this without resorting to advertising, we need you. It is you who keep this dream alive. It is you who have created git-scm.com. It is you who believe that a place of calm reflection, distributed source control and learning is worth having.

+ +

This year, please consider making a donation to protect and sustain git-scm.com and the Git project.

+ +

Thanks,
+ Scott "Dragon" Chacon
+ git-scm.com Maintainer

+ +
+ This page is a parody. Donations made will actually go to the Git project under the Software Freedom Conservancy. +
+
diff --git a/views/course.erb b/views/course.erb new file mode 100644 index 0000000..7f57309 --- /dev/null +++ b/views/course.erb @@ -0,0 +1,86 @@ + + + + Git - Fast Version Control System + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + <%= yield %> + +
+

+
+ + +
+ + + + + + + diff --git a/views/development.erb b/views/development.erb new file mode 100644 index 0000000..f26b505 --- /dev/null +++ b/views/development.erb @@ -0,0 +1,13 @@ +

Development

+ +

The user discussion and development of Git and most tools related to Git +takes place on the Git mailing list - everyone is welcome to post +bug reports, feature requests, comments and +patches +to git@vger.kernel.org. +To subscribe +to the list, send an email with just "subscribe git" in the body to +majordomo@vger.kernel.org. +The mailing list archives are available at +Gmane +and MARC.

\ No newline at end of file diff --git a/views/documentation.erb b/views/documentation.erb new file mode 100644 index 0000000..0333b19 --- /dev/null +++ b/views/documentation.erb @@ -0,0 +1,188 @@ +
+
+ + Pro Git Book : + The Creative Commons licensed freely available online book +
+
+ +
+
+
+ +
+

Tutorials

+ +

Short and Sweet

+ +

+ The Git Reference site is a online git reference built as a tutorial. +

+ +

The official Git tutorial + is a good place to get started.

+ +

+ Everyday Git in 20 commands is good + for a useful minimum set of commands. +

+ +

The SVN Crash Course might be helpful if you're + coming from the SVN world. +

+ + +

Longer, More In Depth

+ +

+ + Git for Designers – No knowledge of version control? No problem. +

+ +

+ + Git for Computer Scientists – A quick introduction + to git internals for people who are not scared by words like Directed Acyclic Graph. +

+ +

The Git User's Manual + is a comprehensive resource, covering a lot of Git functionality. +

+ +

+ Git Magic + – An alternative online book with the source online. +

+ +

+ Help.GitHub + – Guides on a variety of Git and GitHub related topics +

+ +

Reference

+

+ The official and comprehensive + reference manual + comes as part of the Git package itself +

+ +

+ The DZone RefCard is a nice reference to keep handy +

+ +

+ Visual Git Cheat Sheet is a one page printable cheat sheet +

+ +
+ +
+

Books

+ + + + + + + + +
+ +
+
+ Git Internals PDF
+ by Scott Chacon +
+ +
+ +
+ +
+ Pragmatic Version Control Using Git
+ by Travis Swicegood +
+ +
+ +
+ +
+ Version Control with Git
+ by Jon Loeliger +
+ +
+ +
+
+ Pro Git
+ by Scott Chacon
+ Creative Commons Licensed +
+ +
+ +
+ +
+ Pragmatic Guide to Git
+ by Travis Swicegood +
+ +
+ +
+ +
+

Videos

+ + + + + + + +
+ +
+ Linus Torvalds visits Google to share his thoughts on git, + the source control management system he created two years ago. +
+ +
+ A one-hour talk by Randal Schwartz describing what Git is, and + why it should be used over other revision control systems. +
+ +
+ + Git Tutorial Talk – + A recording of an excellent Git tutorial given by Bart Trojanowski for + the Ottawa Group of Ruby Enthusiasts. +
+ + +

+

+ +

+

+ +

+

+ +

+

+ +
+ +
+ + + + diff --git a/views/download.erb b/views/download.erb new file mode 100644 index 0000000..f71bfb8 --- /dev/null +++ b/views/download.erb @@ -0,0 +1,95 @@ + + +
+ <%= erb :download_box %> + +
+ +
+

Development snapshots

+ +

Daily snapshots of the main Git development branch are available at + codemonkey.org
+ (thanks to Dave Jones).

+
+
+ +
+ +

Git via Git

+ +

If you already have Git installed, you can get the latest + development version via Git itself:

+
git clone git://github.com/gitster/git.git
+ +

If you have problems connecting (Git uses port 9418), + you can try to access the repository over the HTTP protocol:

+
git clone http://github.com/gitster/git.git
+

(this method works even behind firewalls and such).

+ +

You can also always browse the current contents + of the git repository using either + the gitweb + or GitHub + web interface.

+ + +
diff --git a/views/download_box.erb b/views/download_box.erb new file mode 100644 index 0000000..07ca2fb --- /dev/null +++ b/views/download_box.erb @@ -0,0 +1,42 @@ +
+

Download Git

+
+
+ The latest stable Git release is +
+
v<%= @version %>
+
+ release notes + (<%= @date %>) +
+ +
+
Windows
+
+
Mac OSX
+
+
Source
+
+ + + + + +
+
+ <% if @download %> + Other Download Options
+ <% else %> + Older Releases
+ <% end %> + Git Source Repository +
+
+
+ + diff --git a/views/feed.builder b/views/feed.builder new file mode 100644 index 0000000..8d7bd95 --- /dev/null +++ b/views/feed.builder @@ -0,0 +1,18 @@ +xml.instruct! :xml, :version=>"1.0" +xml.rss(:version=>"2.0"){ + xml.channel{ + xml.title("Git Releases") + xml.link("http://git-scm.com/") + xml.description("Git Release Announcements") + xml.language('en-us') + @releases.each do |release| + xml.item do + xml.title(release[1]) + xml.description(release[2]) + xml.pubDate(release[0].strftime("%a, %d %b %Y %H:%M:%S %z")) + xml.link('http://git-scm.com/download') + xml.guid(release[1], "isPermaLink"=>"false") + end + end + } +} \ No newline at end of file diff --git a/views/fiveminutes.erb b/views/fiveminutes.erb new file mode 100644 index 0000000..9d73e8c --- /dev/null +++ b/views/fiveminutes.erb @@ -0,0 +1,15 @@ +
+ +

Git in 5 Minutes

+ + + +

+ +
\ No newline at end of file diff --git a/views/index.erb b/views/index.erb new file mode 100644 index 0000000..0bc0dad --- /dev/null +++ b/views/index.erb @@ -0,0 +1,131 @@ +
+
+ The Git User's Survey 2011 is up! +   + Please devote a few minutes of your time to fill it out, so we can improve Git! +
+
+
+
+

Git is...

+ +

Git is a free & open source, distributed version control system + designed to handle everything from small to very large projects with + speed and efficiency.

+ +

Every Git clone is a full-fledged repository with complete history + and full revision tracking capabilities, not dependent on network access + or a central server. Branching and merging are fast and easy to do.

+ +

Git is used for version control of files, much like tools such as + Mercurial, + Bazaar, + Subversion, + CVS, + Perforce, + and Team Foundation Server. +

+
+ +
+ +
+
+

Projects using Git

+ + +
+
+ +
+ <%= erb :download_box %> +
+ +
+

Git Quick Start

+
+ +
+
+

Cloning and Creating a Patch

+ +
$ git clone git://github.com/git/hello-world.git
+$ cd hello-world
+$ (edit files)
+$ git add (files)
+$ git commit -m 'Explain what I changed'
+$ git format-patch origin/master
+
+ +
+
+ +
+
+

Creating and Commiting

+ +
$ cd (project-directory)
+$ git init
+$ (add some files)
+$ git add .
+$ git commit -m 'Initial commit'
+
+ +
+
+ +
+
+ +
+

Got a Question?

+
+ +
+

Chat

+

If you are curious about something, feel free to ask + on the IRC channel dedicated to Git - + #git on freenode.

+
+ +
+

FAQ

+

+ If you have a question that you think might be common, you can + quickly check the + Git FAQ page. +

+
+ +
+

Email

+

You can also ask the Git community directly at our + git@vger.kernel.org mailing list. Bug reports should be sent to this list.

+
+ +
+
+ To learn more about how to use Git, move along to the Documentation +
+
+ + + diff --git a/views/layout.erb b/views/layout.erb new file mode 100644 index 0000000..8241741 --- /dev/null +++ b/views/layout.erb @@ -0,0 +1,91 @@ + + + + Git - Fast Version Control System + + + + + + + + + + + + + + + + + + +
+ +
+ Git - the fast version control system +
+ + + +
+
+
+ + <%= yield %> + +
+

+
+ + + +
+ hosting donated by: + github logo +
+ +
+ + + + + + + diff --git a/views/sfc.erb b/views/sfc.erb new file mode 100644 index 0000000..e342cb2 --- /dev/null +++ b/views/sfc.erb @@ -0,0 +1,91 @@ +

Git and The Software Freedom Conservancy

+ +

Git is a member project of the Software +Freedom Conservancy. The SFC is a not-for-profit organization that +provides financial and administrative assistance to open source projects. + +

Donation

+ +

The SFC accepts donations on git's behalf. In the past, project money has +typically gone to defraying travel costs for developers to come to our annual +GitTogether +mini-conference. A portion of the money goes to the SFC to cover their +operating expenses. You can also donate directly to the Conservancy's +general fund. + + + +
+

Google Checkout

+

To donate to git via Google Checkout: + + +

+ + + + + + + + + + + + + +
$ + + +
+
+
+

Paypal

+

We can also accept PayPal donations, but note that the fees are + higher for Paypal than other options, so less of your money makes it to + the project. +

+
+ + + + +
+
+
+ + +

Check or Wire

+

We can also accept donations drawn in USD from banks in the USA +(donations from banks outside of the US or not in USD should be handled +by wire). Make checks payable to "Software Freedom Conservancy, Inc." +and place "Directed donation: Git" in the memo field. Checks should be +mailed to: +

+
+Software Freedom Conservancy, Inc.
+137 Montague ST STE 380
+BROOKLYN, NY 11201 USA
+
+
+ +

The SFC can accept wire donations, but the instructions vary +depending on the country of origin. Please contact accounting@sfconservancy.org +for instructions. + diff --git a/views/svn.erb b/views/svn.erb new file mode 100644 index 0000000..a9b0f39 --- /dev/null +++ b/views/svn.erb @@ -0,0 +1,530 @@ +

+ +

Git - SVN Crash Course

+ +

Welcome to the Git version control system! Here we will briefly +introduce you to Git usage based on your current Subversion knowledge. You will +need the latest Git installed; +There is also a potentially useful + +tutorial in the Git documentation.

+ + + +
+ +
+

If you are just after tracking someone else's project, +this get you started quickly:

+

+ + + + +
git clone url
git pull
svn checkout url
svn update
+

+ + +
+ +

How to Read Me

+ +

In those small tables, at the left we always list the Git commands +for the task, while at the right the corresponding Subversion commands you would use +for the job are listed. If you are in hurry, just skimming over them should +give you a good idea about the Git usage basics.

+ +

Before running any command the first time, it's recommended that you +at least quickly skim through its manual page. Many of the commands have +very useful and interesting features (that we won't list here) and sometimes +there are some extra notes you might want to know. There's a quick usage +help available for the Git commands if you pass them the -h +switch.

+ + +

Things You Should Know

+ +

There are couple important concepts it is good to know when +starting with Git. If you are in hurry though, you can skip this +section and only get back to it when you get seriously confused; +it should be possible to pick up with just using your intuition.

+ +
    + +
  • + +Repositories. +With Subversion, for each project there is a single repository at some +detached central place where all the history is and which you checkout +and commit into. Git works differently, each copy of the project tree +(we call that the working copy) carries its own repository +around (in the .git subdirectory in the project tree root). +So you can have local and remote branches. +You can also have a so-called bare repository which is not +attached to a working copy; that is useful especially when you want +to publish your repository. We will get to that. +
  • + +
  • +URL. +In Subversion the URL identifies the location of the repository +and the path inside the repository, so you organize the layout of the +repository and its meaning. Normally you would have trunk/, + +branches/ and tags/ directories. In Git +the URL is just the location of the repository, and it always +contains branches and tags. One of the branches is the default (normally named +master). +
  • + +
  • +Revisions. +Subversion identifies revisions with ids of decimal numbers growing +monotonically which are typically small (although they can get quickly +to hundreds of thousands for large projects). That is impractical in distributed systems like Git. Git +identifies revisions with SHA1 ids, which are long 160-bit numbers +written in hexadecimal. It may look scary at first, but in practice it is +not a big hurdle - you can refer to the latest revision by HEAD, +its parent as HEAD^ and its parent as HEAD^^ = HEAD~2 + +(you can go on adding carrets), +cut'n'paste helps a lot and you can write only the few leading digits +of a revision - as long as it is unique, Git will guess the rest. +(You can do even more advanced stuff with revision specifiers, see the +git-rev-parse manpage for details.) +
  • + +
  • +Commits. +Each commit has an author and a committer field, +which record who and when created the change and who committed it +(Git is designed to work well with patches coming by mail - in that case, +the author and the committer will be different). Git will try to guess +your realname and email, but especially with email it is likely to get it wrong. +You can check it using git config -l and set them with: + + +
    +git config --global user.name "Your Name Comes Here"
    +git config --global user.email you@yourdomain.example.com
    +
    +
  • + +
  • +Commands. +The Git commands are in the form git command. +You can interchangeably use the git-command +form as well. +
  • + +
  • + +Colors. +Git can produce colorful output with some commands; since +some people hate colors way more than the rest likes them, by default +the colors are turned off. If you would like to have colors in your +output: + +
    +git config --global color.diff auto
    +git config --global color.status auto
    +git config --global color.branch auto
    +
    +
  • + +
  • +Visualize. +You may find it convenient to watch your repository using +the gitk repository as you go. +
  • + +
+ +

Commiting

+ +

For the first introduction, let's make your project tracked by Git +and see how we get around to do daily development in it. Let's +cd to the directory with your project and initialize +a brand new Git repository with it:

+ + + + +
git init
git add .
git commit
svnadmin create repo
svn import file://repo
+ +

git init will initialize the repository, +git add . will add all the files under the current directory +and git commit will create the +initial import, given that repositories are coupled with working copies.

+ +

Now your tree is officially tracked by Git. You can explore the +.git subdirectory a bit if you want, or don't if you +don't care. Do some random changes to your tree now - poke into few +files or such. Let's check what we've done:

+ + + + +
git diffsvn diff | less
+ +

That's it. This is one of the more powerful commands. To get a diff with an +specific revision and path do:

+ + + + +
git diff rev pathsvn diff -rrev path
+ +

Git embeds special information in +the diffs about adds, removals and mode changes:

+ + + + +
git applypatch -p0
+ +

That will apply the patch while telling Git about and performing +those "meta-changes".

+ +

There is a more concise representation of changes available:

+ + + + + +
git statussvn status
+ +

This will show the concise changes summary as well as list any files +that you haven't either ignored or told Git about. In addition, +it will also show at the top which branch you are in.

+ +

While we are at the status command, over time plenty of the +"Untracked files" will get in there, denoting files not tracked by Git. +Wait a moment if you want to add them, run git clean +if you want to get rid of all of them, or add them to the .gitignore + +file if you want to keep them around untracked (works the same as the svn:ignore +property in SVN).

+ +

To restore a file from the last revision:

+ + + + + +
git checkout pathsvn revert path
+ +

You can restore everything or just specified files.

+ +

So, just like in SVN, you need to tell Git when you add, move or +remove any files:

+ + + +
git add file +
git rm file + +
git mv file
svn add file
svn rm file
svn mv file
+ +

You can also recursively add/remove whole directories and so on; +Git's cool!

+ +

So, it's about time we commit our changes. Big surprise +about the command:

+ + + + +
git commit -asvn commit
+ +

to commit all the changes or, as with Subversion, +you can limit the commit only to specified files +and so on. A few words on the commit message: it is customary +to have a short commit summary as the first line of the message, +because various tools listing commits frequently show only the +first line of the message. You can specify the commit message +using the -m parameter as you are used, but +you can pass several -m arguments and they will create +separate paragraphs in the commit message:

+ +

If you don't pass any -m parameter or pass +the -e parameter, your favorite $EDITOR +will get run and you can compose your commit message there, +just as with Subversion. In addition, the list of files to be committed +is shown.

+ +

And as a bonus, if you pass it the -v parameter +it will show the whole patch being committed in the editor +so that you can do a quick last-time review.

+ +

By the way, if you screwed up committing, there's not much you +can do with Subversion, except using some enigmatic svnadmin +subcommands. Git does it better - you can amend your latest commit +(re-edit the metadata as well as update the tree) using +git commit --amend, or toss your latest +commit away completely using git reset HEAD^, +this will not change the working tree.

+ +

Browsing

+ +

Now that we have committed some stuff, you might want to review +your history:

+ + + + +
git log
git blame file
svn log | less
svn blame file
+ +

The log command works quite similar in SVN and Git; again, +git log is quite powerful, please look through +its options to see some of the stuff it can do.

+ +

The blame command is more powerful as it can detect the movement of lines, +even with file copies and renames. But there is a +big chance that you probably want to do something different! Usually, +when using annotate you are looking for the origin of some piece of +code, and the so-called pickaxe of Git is much more comfortable +tool for that job (git log -Sstring shows the +commits which add or remove any file data matching string).

+ +

You can see the contents of a file, the listing of a directory or +a commit with:

+ + + + + + + +
git show rev:path/to/file +
git show rev:path/to/directory +
git show rev
svn cat url +
svn list url +
svn log -rrev url +
svn diff -crev url
+ +

Tagging and branching

+ +

Subversion marks certain checkpoints in history through copies, the copy is +usually placed in a directory named tags. Git tags are much more powerful. +The Git tag can have an arbitrary description attached (the first +line is special as in the commit case), some people actually store +the whole release announcements in the tag descriptions. The identity +of the person who tagged is stored (again following the same rules +as identity of the committer). You can tag other objects than commits (but +that is conceptually rather low-level operation). +And the tag can be cryptographically PGP signed to verify the identity +(by Git's nature of working, that signature also confirms the validity +of the associated revision, its history and tree). So, let's do it:

+ + + + + +
git tag -a namesvn copy http://example.com/svn/trunk + http://example.com/svn/tags/name
+ +

To list tags and to show the tag message:

+ + + + +
git tag -l
git show tag
svn list http://example.com/svn/tags/ + +
svn log --limit 1 http://example.com/svn/tags/tag
+ +

Like Subversion, Git can do branches (surprise surprise!). In Subversion, +you basically copy your project to a subdirectory. In Git, you tell it, +well, to create a branch.

+ + + + +
git branch branch + +
git checkout branch
svn copy http://example.com/svn/trunk + http://example.com/svn/branches/branch +
svn switch + http://example.com/svn/branches/branch
+ +

The first command creates a branch, the second command switches +your tree to a certain branch. You can pass an extra argument to +git branch to base your new branch on a different +revision than the latest one.

+ +

You can list your branches conveniently using the aforementioned +git-branch command without arguments the listing of branches. +The current one is denoted by an "*".

+ + + + +
git branchsvn list http://example.com/svn/branches/
+ +

To move your tree to some older revision, use:

+ + + + +
git checkout rev +
git checkout prevbranch
svn update -r rev
svn update
+ +

or you could create a temporary branch. In Git you can make commits on +top of the older revision and use it as another branch.

+ +

Merging

+ +

Git supports merging between branches much better than Subversion - history +of both branches is preserved over the merges and repeated merges +of the same branches are supported out-of-the-box. Make sure you are on +one of the to-be-merged branches and merge the other one now:

+ + + + + +
git merge branch + svn merge -r 20:HEAD + http://example.com/svn/branches/branch +
(assuming the branch was created in revision 20 and + you are inside a working copy of trunk) +
+ +

If changes were made on only one of the branches since the last merge, +they are simply replayed on your other branch (so-called fast-forward merge). +If changes were made on both branches, they are merged intelligently +(so-called three-way merge): if any changes conflicted, git merge +will report them and let you resolve them, updating the rest of the tree +already to the result state; you can git commit when you resolve +the conflicts. If no changes conflicted, a commit is made automatically with +a convenient log message (or you can do + +git merge --no-commit branch to review the merge +result and then do the commit yourself).

+ +

Aside from merging, sometimes you want to just pick one commit from +a different branch. To apply the changes in revision rev and commit +them to the current branch use:

+ + + + + +
git cherry-pick revsvn merge -c rev url
+ +

Going Remote

+ +

So far, we have neglected that Git is a distributed version +control system. It is time for us to set the record straight - let's grab +some stuff from remote sites.

+ +

If you are working on someone else's project, you usually want to clone +its repository instead of starting your own. We've already mentioned that at the top +of this document:

+ + + + +
git clone urlsvn checkout url
+ +

Now you have the default branch (normally master), +but in addition you got all the remote branches and tags. +In clone's default setup, the default local branch tracks +the origin remote, which represents the default branch in the +remote repository.

+ +

Remote branch, you ask? Well, so far we have worked +only with local branches. Remote branches are a mirror image of branches +in remote repositories and you don't ever switch to them directly or write +to them. Let me repeat - you never mess with remote branches. If you want +to switch to a remote branch, you need to create a corresponding local +branch which will "track" the remote branch:

+ + + + +
+ git checkout -b branch origin/branchsvn switch url
+ +

You can add more remote branches to a cloned repository, as well as just +an initialized one, using git remote add remote url. +The command git remote lists all the remotes +repositories and git remote show remote shows +the branches in a remote repository.

+ +

Now, how do you get any new changes from a remote repository? +You fetch them: git fetch. +At this point they are in your repository and you can examine them using +git log origin (git log HEAD..origin +to see just the changes you don't have in your branch), diff them, and obviously, merge them - just do +git merge origin. Note that if you don't specify a branch +to fetch, it will conveniently default to the tracking remote.

+ +

Since you frequently just fetch + merge the tracking remote branch, +there is a command to automate that:

+ + + + +
git pullsvn update
+ +

Sharing the Work

+ +

Your local repository can be used by others to pull changes, but +normally you would have a private repository and a public repository. +The public repository is where everybody pulls and you... do the +opposite? Push your changes? Yes! +We do git push remote which will push +all the local branches with a corresponding remote branch - note that this works +generally only over SSH (or HTTP but with special webserver setup). +It is highly recommended to setup a SSH key and an SSH agent mechanism +so that you don't have to type in a password all the time.

+ +

One important thing is that you should push only to remote branches +that are not currently checked out on the other side (for the same +reasons you never switch to a remote branch locally)! Otherwise the +working copy at the remote branch will get out of date and confusion +will ensue. The best way to avoid that is to push only to remote +repositories with no working copy at all - so called bare +repositories which are commonly used for public access or developers' +meeting point - just for exchange of history where a checked out copy +would be a waste of space anyway. You can create such a repository. +See Setting up a public repository for details.

+ +

Git can work with the same workflow as Subversion, with a group of developers +using a single repository for exchange of their work. The only change +is that their changes aren't submitted automatically but they have +to push (however, you can setup a post-commit hook that will push for you +every time you commit; that loses the flexibility to fix up a screwed +commit, though). The developers must have either an entry in htaccess +(for HTTP DAV) or a UNIX account (for SSH). You can restrict their +shell account only to Git pushing/fetching by using the +git-shell login shell.

+ +

You can also exchange patches by mail. Git has very good support +for patches incoming by mail. You can apply them by feeding mailboxes +with patch mails to git am. If you +want to send patches use git format-patch and +possibly git send-email. +To maintain a set of patches it is best to use +the StGIT tool (see +the StGIT Crash Course).

+ +

If you have any questions or problems which are not obvious from +the documentation, please contact us at the Git mailing list +at git@vger.kernel.org. +We hope you enjoy using Git!

+ + +
\ No newline at end of file diff --git a/views/tools.erb b/views/tools.erb new file mode 100644 index 0000000..93adff7 --- /dev/null +++ b/views/tools.erb @@ -0,0 +1,151 @@ + +

Interface Tools

+ +

Git is a true UNIX tool in the sense that it consists of many commands +that do one thing well. It has been designed from the start to be easily +wrapped in other tools and frontends. Currently, there are several +interfaces offering more comfortable Git usage, and also graphical +interfaces for browsing the history and more.

+ +

Traditionally, the low-level part of Git is called plumbing +and the interfaces and frontends are called porcelains. +Git itself comes with a default porcelain bundled and that is actually +what you will normally mean when you say you use Git. However, there +are several alternative porcelains which might offer considerably more +user friendly interface or extend Git to perform some specialized tasks.

+ +

Below, the most widely used tools are listed. Please refer to +the corresponding wiki page +for a full list.

+ + + + + + + +
+

Graphical User Interfaces

+ +
+
Git Extensions (Windows)
+
Git Extensions + is a small toolset to make working with Git under Windows a + little more intuitive. The shell extension will intergrate in Windows Explorer + and presents a nice context menu on files.
+ +
TortoiseGit (Windows)
+
TortoiseGit + is a port of the popular TortoiseSVN project to Git. + TortoiseGit is very complete, able to commit, show the history log, diff two versions, + create branches and tags, create patches and more.
+ +
GitX (Mac OS X)
+
GitX + is a git GUI specifically for Mac OS X. It currently features a history viewer + much like gitk and a commit GUI like git gui. But then in silky smooth OS X style!
+ +
qgit (Qt)
+
qgit is a Qt + GUI for browsing history of Git repositories, similar to gitk + but with more features.
+ +
Tig
+
tig + is a text-mode interface for Git. It acts as a repository browser + that can also act as a pager for various Git commands + and manage your index (on diff chunk level).
+ +
+ +
+

Version Control Interface layers

+ +
+ +
StGIT
+
Stacked Git provides + a Quilt-like patch management functionality in the Git environment. + You can easily manage your patches in the scope of Git until they get + merged upstream.
+ +
Guilt
+
Guilt + is another patch management tool, closer to the spirit of Quilt + than StGIT.
+ +
TopGit
+
TopGit + aims to make handling of large amount of interdependent topic branches easier. + TopGit achieves that by keeping a separate topic branch + for each patch and providing few tools to maintain the branches.
+ +
+
+ + +

Git Hosting

+ +

Several Git hosting sites are available and open for anyone +to host their projects publicly or privately, serving personal open source +projects up to large professional endeavors:

+ + + + + + + + +
+ +

Public Only Hosting

+ +
+
repo.or.cz
+
repo.or.cz is the oldest hosting site, +accomodating many hundreds of projects, with open-sourced infrastructure +and aimed at open source software. It provides full push features as well +as simple mirroring mode and gitweb interface with various enhancements.
+ +
Gitorious
+
Gitorious is another free hosting +site with a custom web interface, supporting multiple repositories per project, +local installations and with open source code.
+
+ +
+ +

Public and Private Hosting

+ +
+
GitHub
+
GitHub is the largest hosting site with over + 1,000,000 public repositories and + provides both free hosting for public projects and paid options for private + projects. It uses a custom web interface including git-backed wiki hosting, + git-backed static site hosting and ticketing. GitHub puts emphasis + on social networking of project developers.
+
+
+ +

Private Only Hosting

+ +
+
Unfuddle
+
+ Unfuddle is a secure, hosted project + management solution for software development teams. + Offers secure code repositories, ticketing systems and + project management tools. +
+ +
codebase
+
+ codebase offers + source control, issue/ticket management & deployment tracking. +
+
+
+ +

more sites