Many computer programs, especially system processes, have log files to keep a record of events in the program, so that it can later be used to track potential errors, or to help understand particular output. A log file is just a text file, where lines usually have a time stamp, to know when a particular event happened. In the context of our simulation we could imagine a log file that shows the main events in the simulation, with log lines such as "Generated new party ...", "Added ... new voters", "Run simulation for ... steps", etc. 1. Create a new Log class for recording main events and add it to the Simulation class. 2. Create a write() function in the Log class, which as input has a line of text, and which saves the line, with a time stamp, to the log file. 3. Add a get_log() function to the Simulation class, so that other parts of the code can find access to the log object. 4. Add code at various points in the code (e.g. those listed above) to log main events to the file. 5. Add code to log particular obvious errors in the simulation, such as trying to run an election when there are no voters added yet. 6. Create a run() method in the Simulation class that takes a parameter for the number of elections and then runs the simulation that many times. It should also write a log entry. Run some simulations and check whether the log file properly tracks events. Example log file: 2021-11-18 15:02:01 Generated new party "FG" at (0.45, 0.12) 2021-11-18 15:02:02 Added 50 new voters 2021-11-18 15:02:30 ERROR: Attempt to count votes, but there are no parties!