Updated with a github link in addition to the source attached to the submission. I used Plastic for version control on this one, which doesn't have a public interface. Mea culpa!