Files
pacman_games/submission_autograder.py
2019-02-20 15:24:24 -08:00

31 lines
8.7 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
from codecs import open
import os, ssl
if (not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, '_create_unverified_context', None)):
ssl._create_default_https_context = ssl._create_unverified_context
"""
CS 188 Local Submission Autograder
Written by the CS 188 Staff
==============================================================================
_____ _ _
/ ____| | | |
| (___ | |_ ___ _ __ | |
\___ \| __/ _ \| '_ \| |
____) | || (_) | |_) |_|
|_____/ \__\___/| .__/(_)
| |
|_|
Modifying or tampering with this file is a violation of course policy.
If you're having trouble running the autograder, please contact the staff.
==============================================================================
"""
import bz2, base64
exec(bz2.decompress(base64.b64decode('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')))