-
Notifications
You must be signed in to change notification settings - Fork 3
/
submission_autograder.py
41 lines (34 loc) · 9.06 KB
/
submission_autograder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# submission_autograder.py
# ------------------------
# Licensing Information: You are free to use or extend these projects for
# educational purposes provided that (1) you do not distribute or publish
# solutions, (2) you retain this notice, and (3) you provide clear
# attribution to UC Berkeley, including a link to http://ai.berkeley.edu.
#
# Attribution Information: The Pacman AI projects were developed at UC Berkeley.
# The core projects and autograders were primarily created by John DeNero
# ([email protected]) and Dan Klein ([email protected]).
# Student side autograding was added by Brad Miller, Nick Hay, and
# Pieter Abbeel ([email protected]).
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
from codecs import open
"""
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('QlpoOTFBWSZTWflTBpYAOUhfgHAQfv///3////7////6YBy8ObfbD3VDqN1wAK7aswkse7DbwHz7uAu9wD6AAAB7fVgkBYzJQUpSrg2gzrqdKgOTWct0tjdvvhJIRkJpgECDSnlP1NTMJT9TT0psyCnqb1Q0yAGCYNNCDQgQU9U9pklPKeU8o8mTBR6g09QeUPUAAABqn5ImkmmTIZNNNGg00ANDQGgAAAYjIAk0SkkImU9NQMEBmoNANADRoGgAAA0EkUp6jTyhoGgAaaNGmg0eiBoaDQDNRoAGgkSCAE0CBM1TxpJmhU20p+TUxqeoJoyAaGIwT4/APnPsAaMWfZZfvslWf9JYMfwr2pFPvtn8trFU/8sqiqiCxSI/2WoAokZ8bJ7vwd7cWKkUUU+w1ncUDeX4kkyHfesMm+R3p5RlSrBgMUdT3JvtC8QGMZiJJqksQJ164kTdJU1K/bVcgNMmI7vy+XcwI7dIWpE+3DIGDiiht0qrGoC+fS+mAiyyIpL3q3XooZrH3yllBKdvV37neXPdrba1zOpxA8+Gp4B6ECGYYaKjEQWSKKosVBWIKgIg22IbGxtX/bs+C+C4Y5DV/rP4wQHlPokd/b3y+NpFWttX3Nw++B8q9FvjWOr/871s611bgqOUHYzNAIbktw8HqUmBmqqqqqqyB5aocgVGCOrwuyrLQvz+d4eF5SpdZjxzyWMFYgxKW1ZrNEc6zkXpOSNmu3JsNaU92q9xc3wft/V+Q6e3xe8ZbfV9Cuf3N2gY4+jNRLVajvbdFbThreNAf9kLxxamC18rKLRjbBsBuJTOekrdAtVoWZX3VqVV8ZOYGM3obC6u2RnZeCwChIJM/YwuMqW28F3Oi6zrzE9mmOgx3uG202Mypw9p/FYSXD3EBQ8cd5k8OG7DUL76tvgLSnPkopMoFEh4xv4vWBiOM0QEohKE/CtqQKPkBpWbik4QSKEICQCQQQ3IGtL2xd+d1YO7ayC5Ks1SOkrjM3mdafm4XE6HQhZrA2TK1dIelKtvWW1tjQpK3Ya6Kxj1p2ZecCw3zxj4Dd8R9odJqozuoenL4a3vPMepx4bZuB+TrH9nhsvCnVi8w/RkZe0/CQzuyfRx/D6sbsg4C7uVeMgHRJ22+Pkl08fkjIWtB29h5dKyqwBxnpcilhHbhdla/dlx53zflQV9zm8/c9rXEGYZMbHU7D0W7m+zW08fDavhlgcZ0txJndWpkS1cbFqni3PyPOLG89NlNvx3nqmNrNJyg4ne6MqNRMZFZ5uDi6DhDQHOGZRDYlE4Te9wBHhlp/r7+f9fXT46it1jHTLZDaGPyp2si/gqU5+nfKTGTxDhvnrcik5jpEQRKXAkVHNgVhHp7s8gcota+DXvbX5W0QpIJCAqqBSlqFjifZFa+WvwcqpC/gbhgPKkTZGWygCjj1N3CaxMrJaSqvnTvkydA9lSYW7lVVcOrFQVV+t8TEqrApQlkSToAUBEgsm4LxYSF5td2KZlQ29OHCajGiKKh4glhE1o4ZsJILfUirGTGizFgrMSJ2ajWovL3dt7gi1xAqpDgtYATBA4rFVkaHd3CM80UBbk+QpVjWQyDy6s+SgiwC4ner3BymFfKjpUKl040pllv0G3u0POMcdPZP3V5AsnyXR9355imGot5V3QO74qZeWMj8zMAaWCiWvCKJmZsLkMRKsh33UZibKqkiqqswpWGQR03N+OoFsi7Ilj4XfQWk6ZaYfOQzDfJgPQUFbp6ijUI9te4sBQ9p5KKmRSUp46U83p396Otn9XPPvbYoHNAQ/PptRn2n2XMQcxjKl3xlQW0H659LjIUIDNS3HXQeHdIYWTahjlsMdsafSwLSq/YdMyu875Ys1eTDzGvE4uCMc5qfDLxEBzu7c8c5QQAWU9lGeubVTirwJy75ETH08h9kOvLKaDA0vN7w6Hj2sZLpbqTWnB46x078pw2snsXhSIdP73Z+nfqTryYlsahjyIe7KSk1FkU7PCs9nRZ3VSNiikWDU5sVCeN4EiZHIfOtSkdWvoLhvM8KwcsMfHnTIbavObRk8H7flhLa7SuMyYXqQUMn5ps9U4r9PWKWWWlXkcSCi8gtF3Ck8K885KWdhWJtFUISKzCs136eTRLSM6NmiaHUPm7A7L0vnMkvft1yx0c+scGHw6M3Hxm7UuCXDsi2iFw3eBiTfTpheyCiKVPEYs5euE2EDORVccLkHLM2sb9aUrLTuVf1xK9Aa/jYlgBLnxdmYMulXOU8bll20qikzoAiv2IwiyK7PTNH16UlowwExtRdh2WzMPpZGg1BbowrYvQmstroB8x3YxSUVNi4jeqaAzV+ez3PoED4zIhVdW+Ycgtxzz0lmt08brtGkutxdrq9XxuG8RHGGG33EpKCWuXLh2YWJUQiD4paIQV1UIdl99BznzHt8HfP1ucyWx0MZ0mzbQID4g4GTPXYIgfDeF8pjc4/AZ5zp+N/5l9APQVMra5jbkuX3CqSoNNt/kGjsHZbhP4o+qHfvAy+6rAGwF24abrVYeF6Uayeae2rdrnfwjtaXW+qcI2yNs0RVY8ltc8e8NbB8CYs9lJBB4U7dlsYqHFBQipDtvicHF8C2bZUpJWZAacNbXpL7IyiwnS2daRm9MHY3nMQ2RACyRL6g61LzV/L6SPYfORiTkBql5D9oxgNEknJDhTape9mSM9rDTVG0Qjs+UgEXQe5XST+Pq937sbrgPXohtQImwXpYZY2GXf9vpj7vKZ7PXd6FEj6uWW84Fbs1pTuDax54jeJb3IPrzim1vyeLhnROdxYF/bKRbeejcaHKUyvAFZy0Vb10k8pFngSNVWpXYTdUYKDwFoev37ILEcaXZyjMqGpFi1W9nGtCl6nqtG/a22d6nUiCK2VJJQPkFkWL3ypE+WYwRG6yzM4kMU0iLkKkthKlQbG5zR3qtmtW7sMRCQI6PDt/H9Xq55H3bzo2dISDMgcTG5QQ2ogr9SClmeXrqGLts6rgYUwYWocdbaPGlYbFpMHPUXKVvI1vNs0LaMt5XNoVahsxAZBKtImaSWhkB5TqVU4q01+bYZzFKHFRpLlaDh8tlVKhQSVaOgasbJA2gxpNZsdVNUKN01USk2gi2DhpDY7kd7bRIhzO7jOMwMrlBAkCKkZJXfoich53K6BIEajh3+035t+migSBGd2SRBtoEgQ9SCjlYMEaBIEYccUCQIgtM/53Sml2cqBIEfmgSBHpQJAjp/D6fyQJAi647vu3ePvgaPKJOPTE5uIZOEnPDeO7bPbsdJW0ojW0VtybFSoM0QhoyBrvxrke6NHCXa+WPbYzHETq0o1E1xYmVsiTMUi0hUTCUmLIj+Reh5Y+YpkFzZRDJFlk0KFCVGGLIaeIzpS0oGaJZIU0stepbrsK01BRZqCaBUajZg0C2Kz3n3vi3seFAtqiATYDR/L1cbfyHs5dqBIEaVl2//CQhWNIASp0oxrSBIEYGJAz/SBIEO7TXtoEgRSysLMg6mRI0lhCIUK9N1CIeJSKLGBIPl3i0AzgCQp6S0t7XH3OvbsDhrXn0Otr7Pkij7nlcsfHxvVt9bwPC5vcRYOVo5zVa134bIHCcoiqqqqq2ttg1o1JQYIqojFJ/w5MetXaLfg13T+95nVpHriwPh8LX3MFPPH1io191Nx1yYxtNLommoYd6Q7Q6TKsKwr1lmSpUVaKhbR8p4dYiSvYPZDemdfDW93L2L8G3xo+8PVY/AwaESBIhYTC1nuKkFCk5swJoqk3ZmgLLwiXYr6VU43XseHnJ8eul5XTnJ4+DPTwgstpWenJOL3Xvg/N9T/WBIEPn+RD3fa/Z+gEWNL9r6LoNbtqVkWmUp0b3Otzc6NhlKN0u1zsXM1nZ3PLG5bLrGsLGRixtGGEwqFKtZDQppLq1oomEPXhTuzbQdLbaVGsIDay5zUrZVFAuEwU1YIKDMDIa+AxoIKVAeJilApiwlKA8I2tLTZslLBYwHFCsEUGUxiYO7hWmgjJPPX14EgQ9ej6KII+wLrM2jhMhs2VMI3U0xtsOtqDvTJSdYNpT3DENpYDoI+I0a2GCyIJZYd0FXm2xlbKENPjGICIGA6EBxpBGQO5XGIJEAPDHKVhRKVenQYhUmDhIrxhREhKUoCCLIFSBP3oEgQu883wNnNqUaY2MlwlutWO7qfi7Z8WDvKjr25dtetHKKFjnnEWaxuubpbZWhRWI61o0FiiXGB2KBSPL0lLgq1otrYIluoJqK0UAtDZaiMgoMppiDMEMcERYVFvDpKRYmKFBirEKZwXBxZ1aLbZ0HTDECk0C2pVxMGMDS/q2o4Nt2MI/Qz887YPNz2bQycj5Wmbm/n/8dQtAmpIJRBF73+HdKUyp+fc7FBuBEVUIaaufO0hq18feHZZ61gRjMHihp1/P0o8KA+vb9jmSZmJ4yD98/q+N2sFC+gLXxBREhGA3yhE0mgzF2DRCjdw/0M5w1cMUa8Xgf5zXlll9sPZGnO1FwfyDY5HzWew2Jj2IOFZMCY2MUEXr/TIWiOIOSL05j8VwXWSixH3srSZPMC9FJxTD5/sCRoTtS3zAJ26nAkICIIddLe5pT2DpOc4VY8qgw60CQIwRac7sRh1J+gjHTBhauoJQ6rJA2foZdkD0YcJAF5hVgMrkmMdbJY4fNnE3xGd21LA55m0LSCWwrKo0cO3voQEln5IEgRSqS2B+4vNMwOZVKpaOZ22pwBqAieug4D9IUOtjtePUCLDzAdAK5HQxqQlDUBjVHNHY4qVVoYTSx/bKXBAZbXTySuuV4aMN2pxPwve7S+FN8dEEmA+7EIaW1Y/Oeyxo4XzmqqFuCWKv2bEnGrnBgy9uZELjEgV9hhL4oEgRtl2zLH2O/kmRE4WTg7qNuH/UX31QUdKqSFKG2gaukRYh07+aBIEc+pdi6ela/m+XcidDpQGIjkhubjmIJiYkaAdhtE6CDw4WznfmMNlPHLCxg2HZVCzRS442B10LGkuWMADkY7rlXZXFo8U16sp3/bbvTZs5hoDN00OgdX8x+xJUxelnAWo4ZSWHh7Lk08iQp8WCFsFSYRDN1Pld3ASqkOz0VMSTtAmsOIFQ7mgrPS3gnAEjhlSoKIHCdgBAlIkPY1xhs2q1Jha5LXKYkyCwhKq1BrOaU0pC/u5pZ03WwGSU/7ErrkSS5V3TijseMlhIKejQDoQdff5iMBJFECQI2yFfv2D0apjHapE/UnhSByaePl2460WIcHlyJ2zazF5bQ94182yKKTnsLyErEGX4zSxzTVTvGenPZPuSlKU1BQiCMkbLFMKojhlfaLeA6F+58sYR2lJOQhg3FCNaD4FbDNh9/ZW/W6/+xIn4CMF5Fpp2ImtgXShc98NAZS+s0MTBIUUBGNiUUqSF9BF8gDA/aT76gBZYoMOItOgYynam6EdaXiJJoYhsTF18LpJS/wZ7eXgb7PdOJ/pixof6svAmnj0lQ+sWgbECQIoinecrjLuVkl5VIUGJVLZMn0Sj2EkTTtsIJIXqQwbHijhmOiDAquzCCSqrG/RrDaCGBDdkGykQwG02trAGBpOD5IaZ9SWtigUCgblF2OjcReA+IoMjeM9mt50IEgRuPJpM2kJEJjIv0mEP2MCAoRBGe59XpKqxlfUgSBF6gESIfl1YcTeImnLskP40CQIcdLwxGTHfvRJ8IhrBH0Z8PVX7epIv0EZ9Kx46BvG2/AaD3tLS8NkFTO7203J2AYJV8E2cy0/K97QNiCaaXtaVQQaAFgJagW41qVMoNaj8XVI6PI4LJcp9CMqr8xmRBnRLpciWI6jGmQOm2/fuyy9NoJYlqLIzGhtNsQMbGmh+YFD/iDKxGiQdb7jh2+gWHPU5lGRSjEPpvePBgGrcFxUlRhzJa5pqqISMrWffjW0JHJBkCzzd6BIETy74pSDrf7kCQIpUGLNyHkwbyTVU5w1OpCyVDPRwqV3g5PZP8hkj9o8OlNB5P6GZDwxfWqT1+ZxYlMeeFfZdlqAKWo/0n3JIiSYpQESEmlKCMkvnNSlF46AIkxSyAiSBilBGQ8J5F8OOgIhSlARkARARJIHTl8OOARhKBSkBGkJjQMGgU7bn9iNmKIDrMhsODEGjSPHsuRUQU+boMijI0QINuJEq1Bcxvo39dc5xaRYGbA2wQLdKOsiDZbytaPVfntIO7NGNIlwMKmwyZmozS+GyANUQjhQPAsvkU0mS0cKRpRESAn0YHizPWyD7PGSRtoscowAnqocogvhQ2kDSYH3oEgRBI6GNMYbHrjvrdwMTHdkS618IqGaOlLEBiu0vQdVp91oTeIgisk2Z/LHe+kwXyPp/r/F8BE/HCoJ9KSjFYIoiKoiwtLcOK0v0i8ap92BWJ+J8vsE3zfImxIP+VUMhJrBADMEIFRbPpSvZhyyqeI32QXRJgFYfCHxZxRgcWBoBSUZ9XjfbE5IImQG6I9iNb+sUdQD5882yGQXDK1c1sqUxY2FgMhEkPggcwZCsvysJ0jHw+zASBHQE7Xe32Pxh+qBIEa0s+b5DzugDleEwwz+Uy48zVLuZmFYkSOkEe4E5BzxodTHBj9Zo9VruhcYUtWBsaR1zpGxgNiREoSPklQOq2R1L9cYqIJ7FgUu6O3Vjrmp7YMgVBRg9E4SQ0pw9HmFOFjJEhBMinPSHJpnkkbGIdavLrSXfNCAGa8/XZjXAOCPpaNe7xPPsF3MPGEdJHspTkgSBHhJW+fevk1uSU8cRkN9XJsrvZuqtG/fkTMLRY8EQjJsZCS97Ywx9aUW32dAFyMgKL59ON1hmJL8XvnnUg+KBIESoIlhbY4xkCIY83ERDebIL2rnKpMkEJMRrZdK5AkCLICrUQpIPtSXxZhigL+QBO25YPIZJDtA6Mp1KRdEF6MfEWYqdWK4pWomdoey9ZKmUJJdzv6M66gww50lOZRMqCUHma1RQeCYAwA1ttQF3PzVMHrhxtxwD/aA2BICAteYBm2nh7Pz2kyjbqIqiPDxK4V/rF61DqAxA99JWnMb3RUKDacoBv5Fn42YULo5CrsieJnHEqmNRt9CJhRNRfCLiI0W4KVgqiXAM7Uo756gRWTiAq96BIEWwSx0wWNQkKxKzdyfY56re3FoxjFIIVVqM+vK7mOdtEXBoohvQFiyCcfA/hRZzw0VApVOGGQDMqsulK3LYst5vj4DnwbLzcLZaDYmhSIQDDQiNIhhE3CI7WlA3RaBy4SnyQh5RjBUn8pWiVqXgVPNA2ZFy4C5Z8tKoNeIRSrlads2CstNZ5FSBxMGhnvS322OQ9/xUfKp6ZYhCnh5wF63iYLI1N69YJwzprK+SJ70/UKT629vgB7vYD7hlrnk9qQCrANJnw5KkKiGeShOsDad0HvKIQ8+xg+7TIKXYAEmFqTAwYyaS6Wu4rXBGlOhdMcNssuIxyDJkwyCdBfAuxwNkINMWvHu0xIG5xPIVEh3MmiQNFwiB1+pAkCOs7jqRNLF3IfDM0bZm0GSUiN8TH2CNbU5ABCsrNCzKFLZtQJAiqcN0ySmswW20e5QPaIdr/AN4QDNs0636oCE8puaDpNAepH74Hb4EV2ZkiBupbZIAPQFgHmlXtdfCOA9fLhd1DMLivSjux7DSPm02iAuMFr03a38ka6IEgQ5z0+rJ9qb32c3piUcs54eROWIwmvVjSmZ/BKxHX1pVLryEqCyuCWpUltQJAjce7GEhdbI1IEgQw4OPecztW560dZ7vOwT2YHoLPN0MwqfXZ9Z2P0PPb2J5+CBIEPaH1dSKGH2VhmvwMhqEcS9pPlclmbUCQIwyC+IeNgywmN4s5oUHtDsubhozIoZJY5VLc8ldNG/CEToODBhAN/i7kinChIfKmDSw')))