$<.map{|$_|k=2 gsub(/./){$*[_=?k+$.+k-=1]="%#{k-$.<<1}s"%$*[_]+$&}} puts$*-[p]
Note that non-ascii characters in the above source code will be escaped (such as \x9f).
download
return to the top page