Prelude

Project setup

If the latter, please use docstrings with triple double quotes at the start of each file as a header. Please use three line breaks between files. Please exclude .mypy-cache, .pytest-cache, .gitignore, .pyc and empty files. Please sort the files alphabetically in ascending order. Please add example input and output.**

Changes

For the following sections, the prompt asking for the specific changes is prefaced with the following text (additional prompting may be needed if the changes are incomplete).

Please implement this change.

Please don't make things up, only suggest changes to code that actually exist.

Please make the changes in full, instead of making a few changes as an illustration of what the change looks like.

If you do have to be selective, display in descending order of importance until you reach the maximum number of tokens possible.