Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Leaderboard, Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 4d1b795a81502541ad00000f

Context Insensitive completion 1

Finish writing this simple Python HTTP server.

Start file
from SimpleHTTPServer import SimpleHTTPRequestHandler
from SocketServer import TCPServer

ADDR = ("", 8080)
httpd = # Finish this line
httpd.serve_forever()
End file
from SimpleHTTPServer import SimpleHTTPRequestHandler
from SocketServer import TCPServer

ADDR = ("", 8080)
httpd = TCPServer(ADDR, SimpleHTTPRequestHandler)
httpd.serve_forever()

View Diff

5c5
< httpd = # Finish this line
---
> httpd = TCPServer(ADDR, SimpleHTTPRequestHandler)

Solutions

The best way to learn is to practice. Below, you will find some of the solutions other golfers have entered. To unlock higher ranked solutions, submit your own entry which does as well or better than the solutions you can currently see - climb the ladder!

Check out these helpful resources to improve your Vim skills... Game on.

Unlock 144 remaining solutions by signing in and submitting your own entry
#145 Sam Meacham / @evolr - Score: 22 - 12/29/10 @ 22:18
/#<CR>CT<C-X><C-N>(A<C-X><C-N>, S<C-X><C-N><C-N><C-N>)<Esc>ZZ

0 comments

#146 Jim Garvin / @coderifous - Score: 22 - 12/30/10 @ 03:59
/#<CR>CT<C-N>(A<C-N>, Si<C-N><C-N>)<Esc>ZZ

0 comments

#147 Soliman Sylvain / @sylvain_soliman - Score: 22 - 12/30/10 @ 18:50
/#<CR>DaT<C-N>(A<C-N>, S<C-N><Down><CR>)<Esc>ZZ

0 comments

#148 Jim Infield / @jinfield - Score: 22 - 07/21/11 @ 01:35
/#<CR>CTC<C-N>(A<C-N>, Sim<C-N><Down><CR>)<Esc>ZZ

0 comments

#149 Matti Kotsalainen / @mkotsalainen - Score: 23 - 12/29/10 @ 19:35
4jf#CT<C-P>(A<C-P>, Si<C-P>)<Esc>:x<CR>

0 comments

#150 Nick Stenning / @nickstenning - Score: 23 - 12/29/10 @ 21:06
4jf#c$T<C-N>(A<C-N>, S<C-N><C-N>)<Esc>ZZ

0 comments

#151 lionel young / @lionelyoung - Score: 23 - 12/30/10 @ 04:42
5ggWWRT<C-N>(A<C-N>, S<C-N><C-N>)<Esc>ZZ

0 comments

#152 Tommy Stanton / @tommystanton - Score: 24 - 12/29/10 @ 19:20
5G2wCTC<C-P>(A<C-P>, S<C-P><Up><CR>)<Esc>:x<CR>

0 comments

#153 kuhout / @kuhout - Score: 24 - 12/29/10 @ 19:49
4jf#d$aT<C-N>(A<C-N>, S<C-N><C-N>)<Esc>ZZ

0 comments

#154 Antonio Lucca / @tonyxzt - Score: 24 - 12/29/10 @ 20:35
/#<CR>CT<C-P>(A<C-P>, S<C-P><Up><CR>)<Esc>ZZ

0 comments

#155 Shawn Stein / @gezwitschersux - Score: 24 - 12/29/10 @ 20:43
16wCTC<C-N>(AD<C-N>, S<C-N><C-N><C-N>)<Esc>ZZ

0 comments

#156 Simon Brown / @caelyxsec - Score: 24 - 12/29/10 @ 22:28
/#<CR>CT<C-N>(ADDR, Si<C-N><C-N>)<Esc>ZZ

0 comments

#157 Mariano Guerra / @marianoguerra - Score: 24 - 12/29/10 @ 23:39
/#<CR>CT<C-N>(A<C-N>, S<C-N><Down><Down><CR>)<Esc>ZZ

0 comments

#158 michael caviness / @michaelmichael - Score: 25 - 12/29/10 @ 22:02
5Gf#CTCP<C-X><C-P>(AD<C-X><C-P>, Si<C-X><C-P>)<Esc>ZZ

0 comments

#159 Lee Marlow / @lmarlow - Score: 25 - 12/30/10 @ 00:00
/#<CR>CT<C-N>(A<C-N>, Si<C-N><C-N>)<Esc>ZZ

0 comments

#160 Josh Stephenson / @frivolousjosh - Score: 26 - 12/29/10 @ 20:26
/#<CR>c$TC<C-N>(A<C-N>, Si<C-N><C-N>)<Esc>:wq<CR>

0 comments

#161 Mark McD ☠ / @snuff_man - Score: 26 - 12/30/10 @ 09:02
G<Up>WW<Insert><Insert>T<C-N>(A<C-N>, S<C-N><C-N>)<Esc>ZZ

0 comments

#162 ZOMG / @monkeybot42 - Score: 26 - 09/29/12 @ 21:29
jjjjwwDAT<C-P>(A<C-P>, Sim<C-P>)<Esc>:wqa<CR>

0 comments

#163 Jan Kassens / @kassens - Score: 27 - 12/29/10 @ 20:27
/#<CR>CT<C-P>(A<C-P>, S<C-P><C-P>)<Esc>:wq!<BS><CR>

0 comments

#164 Yannick LM / @yanicklm - Score: 27 - 12/30/10 @ 17:04
5ggEEECT<C-X><C-N>(A<C-X><C-N>, S<C-X><C-N><Down><CR>)<Esc>ZZ

0 comments

#165 dcbaok / @dcbaok - Score: 31 - 12/29/10 @ 20:23
3w"aywjbyw/#<CR>P Da(ADDR, )<Esc>"aPZZ

0 comments

#166 Adam / @arboooz - Score: 31 - 12/29/10 @ 20:49
:5<CR>f=C= T<C-X><C-P>(A<C-X><C-P>, S<C-X><C-P><C-N><C-N><C-N>)<C-C><C-C>ZZ

0 comments

#167 jasper110 / @jasper110 - Score: 34 - 09/22/11 @ 09:39
3w"aywjyiw5Gf#Pa(ADDR, )<Esc>"aP2ld$ZZ

0 comments

#168 Joe McCall / @joem86 - Score: 35 - 12/29/10 @ 23:09
3w"+yw/#<CR>CTCPServer(ADDR, <C-R>+)<Esc>ZZ

0 comments

#169 johan wester / @wester87 - Score: 35 - 11/12/11 @ 10:46
3wyw/#<CR>iTCPServer(ADDR, <Esc>lv3epA)<Esc>ZZ

0 comments

#170 Alain Gilbert / @alain_gilbert - Score: 36 - 12/30/10 @ 20:53
5Gf#CTCPServer(ADDR,<Esc>gg$yaw5G$pa)<Esc>ZZ

0 comments

#171 Øystein Walle / @oysteinwalle - Score: 36 - 07/12/11 @ 15:07
y$/#<CR>P`.c2tSTCP<Esc>f ct (ADDR,<Esc>/#<CR>C)<Esc>ZZ

0 comments

#172 Tim Andersson / @Boerworz - Score: 37 - 04/19/11 @ 23:00
3w"syw4w"tyw/#<CR>d$"tpA(ADDR, <Esc>"spA)<Esc>ZZ

0 comments

#173 bmaddy / @bmaddy - Score: 38 - 12/30/10 @ 07:56
3w"syw4w"tyw/#<CR>D"tpa(ADDR, <Esc>"spa)<Esc>:wq<CR>

0 comments

#174 Andrew McDonough / @andrewmcdonough - Score: 39 - 12/29/10 @ 18:57
www"bywwwwwyw/#<CR>Pa(ADDR, <C-R>b)<Esc>lv$hdZZ

0 comments

#175 Joe Hassick / @jhassick - Score: 39 - 12/29/10 @ 19:25
7wyw^3j2wv$hpA(ADDR, <Esc>gg3wyw4jpA)<Esc>ZZ

0 comments

#176 Pedro Moreira Santos / @pedromsantos - Score: 40 - 12/29/10 @ 21:33
16wD9byw8w$pa(ADDR, <Esc>17byw16w$pa)<Esc>:x<CR>

0 comments

#177 Guillaume Bonnoron / @gbonnoron - Score: 40 - 12/30/10 @ 17:24
5G2wd$2G3wy$5G$pa(ADDR, <Esc>1G3wy$5G$pa)<Esc>ZZ

0 comments

#178 William Shackleton / @wshackleton - Score: 40 - 12/30/10 @ 21:32
5G2wD3k2wyw3jpA(ADDR, <Esc>gg3wyw5G$p)kA)<Esc>ZZ

0 comments

#179 RolfK / @mindleftbody - Score: 45 - 06/17/11 @ 14:46
3w"cywjb"bywj|j"aywjf#D"bpa(<Esc>"api, <Esc>"cpA<BS>)<Esc>ZZ

0 comments

#180 Tom Adams / @holizz - Score: 48 - 12/29/10 @ 19:16
16wCTCPServer(ADDR, SimpleHTTPRequestHandler)<Esc>ZZ

0 comments

Created by: @wolever

180 active golfers, 346 entries

Leaderboard (lowest score wins):
18
#1 - Kana Natsuno / @kana1

12/29/2010 at 06:51PM

18
#2 - Rémi Prévost / @remi

12/29/2010 at 06:53PM

18
#3 - Austin Taylor / @austintaylor

12/29/2010 at 07:51PM

18
#4 - Mortimerj / @mortimerj

12/29/2010 at 08:33PM

18
#5 - Mike Plotz / @antisuji

12/29/2010 at 09:02PM

18
#6 - Marian Schubert / @MarianSchubert

12/29/2010 at 09:23PM

18
#7 - Adam Pohorecki / @apohorecki

12/29/2010 at 09:30PM

18
#8 - uuu / @uu59

12/29/2010 at 09:55PM

18
#9 - PA Parent / @paparent

12/30/2010 at 12:49AM

18
#10 - Isaiah Damron / @Aenidye

12/30/2010 at 01:04AM

18
#11 - Matthew Draper / @_matthewd

12/30/2010 at 01:11AM

18
#12 - h_east (DDD ready) / @h_east

12/30/2010 at 02:17AM

18
#13 - Josh Weinberg / @jcweinberg

12/30/2010 at 04:48AM

18
#14 - Addisu Taddese / @azeey

12/30/2010 at 06:33AM

18
#15 - Akira Matsuda / @a_matsuda

12/30/2010 at 06:45AM

18
#16 - Dan Smith / @untermrad

12/30/2010 at 09:07AM

18
#17 - Kornél Lugosi / @Coornail

12/30/2010 at 09:50AM

18
#18 - Ankit Shankar / @thelastnode

12/30/2010 at 09:51AM

18
#19 - Lee Jarvis / @lee_jarvis

12/30/2010 at 10:24AM

18
#20 - Ben Lenarts / @benlenarts

12/30/2010 at 10:50AM

18
#21 - Behnam Esfahbod / @zwnj

12/30/2010 at 12:05PM

18
#22 -  Ikhsan Maulana / @ixandidu

12/30/2010 at 12:28PM

18
#23 - Benoit D / @Anbcorp

12/30/2010 at 12:39PM

18
#24 - Kevin Merlin / @mp3merlin

12/30/2010 at 01:18PM

18
#25 - Cyril Pascal / @paxal

12/30/2010 at 05:45PM

18
#26 - Marc Lacoursière / @RooSoft

12/30/2010 at 06:39PM

18
#27 - Juan C. Muller / @juancmuller

12/31/2010 at 03:47AM

18
#28 - Will Gray / @graywh

12/31/2010 at 07:33PM

18
#29 - Casey W Crites / @caseycrites

12/31/2010 at 07:34PM

18
#30 - Balkoth / @_Balkoth_

12/31/2010 at 11:35PM

18
#31 - Vincent Isambart / @vincentisambart

01/01/2011 at 05:58AM

18
#32 - Richard Sanchez / @vimlearner

01/01/2011 at 06:41AM

18
#33 - dominique pellé / @vimgolfisto

01/01/2011 at 05:22PM

18
#34 - Israel Chauca F. / @Raimondi

01/01/2011 at 09:44PM

18
#35 - Aurélien Delahaye / @alkove

01/02/2011 at 12:27AM

18
#36 - David Lam / @lamdk

01/02/2011 at 08:24AM

18
#37 - Pete Johns / @johnsyweb

01/02/2011 at 11:36AM

18
#38 - Pierre / @Pihour

01/02/2011 at 04:55PM

18
#39 - Paul King / @nrocy

01/02/2011 at 07:49PM

18
#40 - James Cash / @jamesnvc

01/02/2011 at 10:04PM

18
#41 - Clément Nodet / @clementnodet

01/03/2011 at 10:59PM

18
#42 - alex scott / @4l3xsc0tt

01/04/2011 at 12:27AM

18
#43 - Carl Friedrich Bolz / @cfbolz

01/05/2011 at 01:21AM

18
#44 - Danny O'Sullivan / @db0s

01/05/2011 at 11:31AM

18
#45 - Wei Dai / @clvv42

01/06/2011 at 10:35AM

18
#46 - Ujjwol Lamichhane / @Ujjwol

01/06/2011 at 01:29PM

18
#47 - Tim Chase / @gumnos

01/07/2011 at 11:43PM

18
#48 - aimee / @sermoa

01/09/2011 at 04:11PM

18
#49 - Stephen Morrow / @yawmark

01/13/2011 at 04:00AM

18
#50 - Francisco Dibar / @frandibar

01/14/2011 at 03:01AM

18
#51 - duckdalbe / @duckdalbe

01/14/2011 at 12:16PM

18
#52 - Thomas Schönwälder / @Masei1988

01/15/2011 at 09:05PM

18
#53 - Stuart Gale / @bishboria

01/16/2011 at 01:10PM

18
#54 - Federico Galassi / @federicogalassi

01/17/2011 at 10:42AM

18
#55 - ls lahrs / @lslah

01/17/2011 at 03:16PM

18
#56 - Eivind Jahren / @HaskellElephant

01/17/2011 at 04:55PM

18
#57 - Chris Waring / @cwaring

01/18/2011 at 12:21AM

18
#58 - Oleg Roshupkin / @jjjahson

01/19/2011 at 05:39AM

18
#59 - Andrey A. Ugolnik / @andreyugolnik

01/19/2011 at 11:40PM

18
#60 - Dezső Zoltán / @zakiazigazi

01/22/2011 at 09:07AM

18
#61 - Wesley Wong / @wesleymwwong

01/30/2011 at 10:48AM

18
#62 - Joost / @vlabakje

02/21/2011 at 04:15PM

18
#63 - vg / @vimgolfer

02/26/2011 at 05:12PM

18
#64 - Paweu1kZ nbNeyIhH / @yUQlwsFpRSzxJFh

03/07/2011 at 01:32AM

18
#65 - Avinash Baliga / @avinashbaliga

03/25/2011 at 01:19AM

18
#66 - Dragan Cvetinovic / @kawkafi

05/22/2011 at 04:03PM

18
#67 - mightyfoo / @mightyfoo

05/26/2011 at 12:10PM

18
#68 - Justin Love / @wondible

06/16/2011 at 10:22PM

18
#69 - Lauri Tirkkonen / @lotheac

07/01/2011 at 10:09PM

18
#70 - Hu Junfeng / @junfeng

07/18/2011 at 08:43AM

18
#71 - Dave / @zzdave13

07/31/2011 at 01:57PM

18
#72 - Andrey Ivanov / @Bytamine

08/12/2011 at 02:28PM

18
#73 - Neil / @spameldoon

08/21/2011 at 11:12AM

18
#74 - Trevor Powell / @DoomedBunnies

11/29/2011 at 07:32AM

18
#75 - You-Siang Lin / @yslinnctu

12/01/2011 at 01:22PM

18
#76 - William Dunand / @wdunand

12/02/2011 at 02:33AM

18
#77 - Xavier Nayrac / @lkdjiin

12/30/2011 at 01:29PM

18
#78 - Christopher Brew / @Seph1rothVII

01/06/2012 at 11:32PM

18
#79 - Pei-Lun Lee / @ypcatw

01/19/2012 at 10:27AM

18
#80 - Renat Aksitov / @Korvin79

02/02/2012 at 02:42AM

18
#81 - Rändöm Tester / @mevcar

02/12/2012 at 04:19PM

18
#82 - 無ん垢の叫び / @john_ababa

02/23/2012 at 10:59AM

18
#83 - Michał Wróbel / @sparrovv_

03/12/2012 at 10:12PM

18
#84 - Nolen Royalty / @NolenRoyalty

04/20/2012 at 11:12PM

18
#85 - Rod Knowlton / @codelahoma

05/27/2012 at 07:33PM

18
#86 - Urtica dioica / @udioica

06/11/2012 at 02:43AM

18
#87 - Kerson Hsiao / @KersonHsiao

07/09/2012 at 10:06AM

18
#88 - annagrammatica1 / @annagrammatica1

08/02/2012 at 06:31AM

18
#89 - Arto Vuori / @dhpe

08/30/2012 at 10:01PM

18
#90 - Conner McDaniel / @connermcd

09/19/2012 at 02:28AM

18
#91 - Vim rocks / @vimrocks

10/08/2012 at 07:40PM

18
#92 - Tom Cammann / @tea_sea

10/11/2012 at 10:29AM

18
#93 - Marcin Sza / @coot_

12/05/2012 at 04:08PM

18
#94 - Hubba / @HubbaBubbaFett

12/25/2012 at 01:16PM

18
#95 - JonLz / @LzJon

12/26/2012 at 08:32PM

18
#96 - a24f0600 / @a24f0600

01/17/2013 at 04:37PM

18
#97 - Yann Moisan / @YannMoisan

02/03/2013 at 08:10PM

18
#98 - Adam Bell / @adamgbell

02/21/2013 at 10:30PM

18
#99 - Tyler / @tylerbindon

04/01/2013 at 04:35AM

18
#100 - Brent Carmer / @brent_carmer

04/13/2013 at 05:09AM

18
#101 - Justin / @justinjaffray

04/24/2013 at 01:26PM

18
#102 - Gtranbot / @gtranbot

04/27/2013 at 09:55AM

18
#103 - Marco Hinz / @_mhinz_

05/21/2013 at 03:00PM

18
#104 - Tresifina / @Tresifina

05/23/2013 at 04:14AM

18
#105 - Woojung Kim 김우중 / @_kimwz

07/17/2013 at 10:21AM

18
#106 - Petro Тrouq / @zulolosi

07/21/2013 at 08:02PM

18
#107 - Chris Brown / @engineercyb

08/06/2013 at 11:49PM

18
#108 - James / @Dronak

09/05/2013 at 06:04PM

18
#109 - foo / @foo88832727

10/19/2013 at 05:33PM

18
#110 - Zach Kemp / @zvksf

12/20/2013 at 10:15PM

18
#111 - Daniel Jonsson / @DanielJonss

01/21/2014 at 04:51PM

18
#112 - cj / @cj01101

02/03/2014 at 11:33PM

18
#113 - Joonas Pihlajamaa / @jokkebk

02/21/2014 at 11:34AM

18
#114 - Xelrifos / @Xelrifos

02/21/2014 at 06:52PM

18
#115 - Tom Gilligan / @sargegood

05/06/2014 at 10:58PM

18
#116 - John Braxler / @braxler

05/18/2014 at 05:30PM

18
#117 - かしゅーなっつ@修行中 / @kashew_nuts

08/02/2014 at 08:33AM

18
#118 - Caek / @Caek_

08/15/2014 at 05:39AM

18
#119 - w1zeman1p / @wizemanip

11/06/2014 at 06:07AM

19
#120 - arungn / @arungn

12/29/2010 at 06:35PM

19
#121 - Matt Mendell / @mpmendell

12/29/2010 at 07:00PM

19
#122 - Clint Tseng / @cxlt

12/29/2010 at 07:08PM

19
#123 - Aaron Bull Schaefer / @elasticdog

12/29/2010 at 07:24PM

19
#124 - drio / @drio

01/02/2011 at 09:12PM

19
#125 - Toto l'haricot / @nico_le_terribl

01/09/2011 at 12:02PM

19
#126 - xhtmlforum / @xhtmlforum

01/25/2011 at 02:55PM

19
#127 - Matthieu Honel / @ocus

01/29/2011 at 01:02PM

19
#128 - gruolin / @gruolin

11/05/2011 at 07:54AM

19
#129 - Nicolas Friedli / @NicolasFriedli

10/29/2012 at 10:13PM

19
#130 - Kathryn / @hartknyx

05/21/2013 at 06:58AM

19
#131 - Oliver Christ / @0liverChrist

10/16/2013 at 09:41PM

19
#132 - Ram Tamtam / @ramtamtamtam

07/02/2014 at 01:40PM

19
#133 - Leeren / @Leeren

08/24/2014 at 04:59AM

19
#134 - Justin Knag / @justinknag

08/28/2014 at 05:06PM

20
#135 - Jiří Stránský / @jistr

12/29/2010 at 06:19PM

20
#136 - Travis Swicegood / @tswicegood

12/30/2010 at 03:42AM

20
#137 - greg / @kongo2002

12/31/2010 at 12:36AM

20
#138 - Jeroen / @teranex

03/01/2011 at 11:13PM

21
#139 - Rafaël Blais Masson / @rafBM

12/29/2010 at 07:27PM

21
#140 - John Wilger / @jwilger

12/29/2010 at 08:19PM

21
#141 - Indrek Juhkam / @indrekj

12/29/2010 at 11:31PM

21
#142 - Rune Botten / @runeb

12/31/2010 at 03:28PM

22
#143 - David Wolever / @wolever

12/29/2010 at 06:33PM

22
#144 - Dhruva Sagar / @dhruvasagar

12/29/2010 at 07:14PM

22
#145 - Sam Meacham / @evolr

12/29/2010 at 10:18PM

22
#146 - Jim Garvin / @coderifous

12/30/2010 at 03:59AM

22
#147 - Soliman Sylvain / @sylvain_soliman

12/30/2010 at 06:50PM

22
#148 - Jim Infield / @jinfield

07/21/2011 at 01:35AM

23
#149 - Matti Kotsalainen / @mkotsalainen

12/29/2010 at 07:35PM

23
#150 - Nick Stenning / @nickstenning

12/29/2010 at 09:06PM

23
#151 - lionel young / @lionelyoung

12/30/2010 at 04:42AM

24
#152 - Tommy Stanton / @tommystanton

12/29/2010 at 07:20PM

24
#153 - kuhout / @kuhout

12/29/2010 at 07:49PM

24
#154 - Antonio Lucca / @tonyxzt

12/29/2010 at 08:35PM

24
#155 - Shawn Stein / @gezwitschersux

12/29/2010 at 08:43PM

24
#156 - Simon Brown / @caelyxsec

12/29/2010 at 10:28PM

24
#157 - Mariano Guerra / @marianoguerra

12/29/2010 at 11:39PM

25
#158 - michael caviness / @michaelmichael

12/29/2010 at 10:02PM

25
#159 - Lee Marlow / @lmarlow

12/30/2010 at 12:00AM

26
#160 - Josh Stephenson / @frivolousjosh

12/29/2010 at 08:26PM

26
#161 - Mark McD ☠ / @snuff_man

12/30/2010 at 09:02AM

26
#162 - ZOMG / @monkeybot42

09/29/2012 at 09:29PM

27
#163 - Jan Kassens / @kassens

12/29/2010 at 08:27PM

27
#164 - Yannick LM / @yanicklm

12/30/2010 at 05:04PM

31
#165 - dcbaok / @dcbaok

12/29/2010 at 08:23PM

31
#166 - Adam / @arboooz

12/29/2010 at 08:49PM

34
#167 - jasper110 / @jasper110

09/22/2011 at 09:39AM

35
#168 - Joe McCall / @joem86

12/29/2010 at 11:09PM

35
#169 - johan wester / @wester87

11/12/2011 at 10:46AM

36
#170 - Alain Gilbert / @alain_gilbert

12/30/2010 at 08:53PM

36
#171 - Øystein Walle / @oysteinwalle

07/12/2011 at 03:07PM

37
#172 - Tim Andersson / @Boerworz

04/19/2011 at 11:00PM

38
#173 - bmaddy / @bmaddy

12/30/2010 at 07:56AM

39
#174 - Andrew McDonough / @andrewmcdonough

12/29/2010 at 06:57PM

39
#175 - Joe Hassick / @jhassick

12/29/2010 at 07:25PM

40
#176 - Pedro Moreira Santos / @pedromsantos

12/29/2010 at 09:33PM

40
#177 - Guillaume Bonnoron / @gbonnoron

12/30/2010 at 05:24PM

40
#178 - William Shackleton / @wshackleton

12/30/2010 at 09:32PM

45
#179 - RolfK / @mindleftbody

06/17/2011 at 02:46PM

48
#180 - Tom Adams / @holizz

12/29/2010 at 07:16PM