The Code...
(if taking long, click here)