def run_check(participants, config, reference_time):
recruiters_with_late_participants = defaultdict(list)<EOL>for p in participants:<EOL><INDENT>timeline = ParticipationTime(p, reference_time, config)<EOL>if timeline.is_overdue:<EOL><INDENT>print(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>".format(p.id, p.status)<EOL>)<EOL>recruiters_with_late_participants[p.recruiter_id].append(p)<EOL><DEDENT><DEDENT>for recruiter_id, participants in recruiters_with_late_participants.items():<EOL><INDENT>recruiter = recruiters.by_name(recruiter_id)<EOL>recruiter.notify_duration_exceeded(participants, reference_time)<EOL><DEDENT>
For each participant, if they've been active for longer than the
    experiment duration + 2 minutes, we take action.