These are the files from Chapter 15, as augmented with validation code introduced in the "defensive programming" section of Chapter 19.