forked from akinguyen/Coding_the_matrix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
solver.py
29 lines (24 loc) · 50.5 KB
/
solver.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
def _get_module():
del globals()['_get_module']
import imp
import base64
import marshal
magic = imp.get_magic()
if magic == b'\xee\x0c\r\n': # Python 3.4
pycData = b'7gwNCpSl6lT2HwAA4wAAAAAAAAAAAAAAAAMAAABAAAAAcyYBAABHZAAAZAEAhAAAZAEAgwIAWgAA\nZAIAZAMAhAAAWgEAZAQAZAUAhAAAWgIAZAYAZAcAhAAAWgMAR2QIAGQJAIQAAGQJAIMCAFoEAGQK\nAGQLAIQAAFoFAGQMAGQNAIQAAFoGAGQOAGQPAIQAAFoHAGQQAGQRAIQAAFoIAGQSAGQTAIQAAFoJ\nAGQUAGQVAIQAAFoKAGQWAGQXAIQAAFoLAGQYAGQZAGwMAFoMAGQYAGQZAGwNAFoNAGQYAGQZAGwO\nAFoOAGQaAGQbAIQAAFoPAGQcAGQdAGQeAIQBAFoQAGQfAGQgAIQAAFoRAGQhAGQiAIQAAFoSAGQj\nAGQkAIQAAFoTAGQcAGQlAGQmAIQBAFoUAGQYAGUUAF8VAGQnAGUUAF8WAGQZAFMpKGMAAAAAAAAA\nAAAAAAAEAAAAQAAAAHN5AAAAZQAAWgEAZAAAWgIAZQMAgwAAaQAAZAEAZAIAhAIAWgQAZAMAZAQA\nhAAAWgUAZAUAZAYAhAAAWgYAZAcAZAgAhAAAWgcAZAkAZAoAhAAAWggAZAsAZAwAhAAAWgkAZA0A\nZA4AhAAAWgoAZA8AZBAAhAAAWgsAZBEAUykS2gRfVmVjYwMAAAAAAAAAAwAAAAIAAABDAAAAcxYA\nAAB8AQB8AABfAAB8AgB8AABfAQBkAABTKQFOKQLaAUTaAWYpA9oEc2VsZtoGbGFiZWxz2ghmdW5j\ndGlvbqkAcgcAAAD6Hi4uL3Jlc291cmNlcy9wcml2YXRlL3NvbHZlci5wedoIX19pbml0X18DAAAA\ncwQAAAAAAQkBeg1fVmVjLl9faW5pdF9fYwIAAAAAAAAAAgAAAAIAAABDAAAAcx4AAAB8AQB8AABq\nAABrBgByGgB8AABqAAB8AQAZU2QBAFMpAk7pAAAAACkBcgMAAAApAtoBdtoBa3IHAAAAcgcAAABy\nCAAAANoLX19nZXRpdGVtX18HAAAAcwAAAAB6EF9WZWMuX19nZXRpdGVtX19jAwAAAAAAAAADAAAA\nAwAAAEMAAABzEQAAAHwCAHwAAGoAAHwBADxkAABTKQFOKQFyAwAAACkDcgsAAAByDAAAANoDdmFs\ncgcAAAByBwAAAHIIAAAA2gtfX3NldGl0ZW1fXwgAAABzAAAAAHoQX1ZlYy5fX3NldGl0ZW1fX2MC\nAAAAAAAAAAIAAAAFAAAAAwAAAHMsAAAAdAAAfAAAagEAhwAAZgEAZAEAZAIAhgAAfAAAagIAagMA\ngwAARIMBAIMCAFMpA05jAQAAAAAAAAADAAAABAAAABMAAABzIwAAAGkAAHwAAF0ZAFwCAH0BAH0C\nAIgAAHwCABR8AQCTAgBxBgBTcgcAAAByBwAAACkD2gIuMHIMAAAA2gF4KQHaBWFscGhhcgcAAABy\nCAAAAPoKPGRpY3Rjb21wPgkAAABzAgAAAAkAeiFfVmVjLl9fcm11bF9fLjxsb2NhbHM+LjxkaWN0\nY29tcD4pBHIBAAAAcgIAAAByAwAAANoFaXRlbXMpAnILAAAAchIAAAByBwAAACkBchIAAAByCAAA\nANoIX19ybXVsX18JAAAAcwAAAAB6DV9WZWMuX19ybXVsX19jAQAAAAAAAAABAAAAAgAAAEMAAABz\nCAAAAGQCAHwAABRTKQNO6QEAAADp/////3IHAAAAKQFyCwAAAHIHAAAAcgcAAAByCAAAANoHX19u\nZWdfXwoAAABzAAAAAHoMX1ZlYy5fX25lZ19fYwIAAAAAAAAAAgAAAAQAAAADAAAAc0AAAAB0AACI\nAAB0AQCDAgByOAB0AgCHAACHAQBmAgBkAQBkAgCGAACIAQBqAwBqBACDAABEgwEAgwEAU3QFAFNk\nAABTKQNOYwEAAAAAAAAAAgAAAAUAAAATAAAAcyIAAABnAAB8AABdGAB9AQCIAQB8AQAZiAAAfAEA\nGRSRAgBxBgBTcgcAAAByBwAAACkCchAAAAByDAAAACkC2gVvdGhlcnIEAAAAcgcAAAByCAAAAPoK\nPGxpc3Rjb21wPg0AAABzAgAAAAkAeiBfVmVjLl9fbXVsX18uPGxvY2Fscz4uPGxpc3Rjb21wPikG\n2gppc2luc3RhbmNlcgEAAADaA3N1bXIDAAAA2gRrZXlz2g5Ob3RJbXBsZW1lbnRlZCkCcgQAAABy\nGQAAAHIHAAAAKQJyGQAAAHIEAAAAcggAAADaB19fbXVsX18LAAAAcwYAAAAAAQ8BKQJ6DF9WZWMu\nX19tdWxfX2MCAAAAAAAAAAIAAAAFAAAAAwAAAHNHAAAAdAAAiAAAagEAhwAAhwEAZgIAZAEAZAIA\nhgAAdAIAiAAAagMAagQAgwAAgwEAagUAiAEAagMAagQAgwAAgwEARIMBAIMCAFMpA05jAQAAAAAA\n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\nc2wAAAB0AAB0AQB8AQCDAQBrAgByaAB0AAB0AgBqAwBkAQAZaQAAgwIAfQIAeDkAdAIAagQAagUA\ngwAARF0oAFwCAFwCAH0DAH0EAH0FAHwCAHwEAAUZdAYAfAMAGXwFABQ3AzxxOABXfAIAU2QAAFMp\nAk5yFgAAACkHcgEAAAByNwAAAHIrAAAAcgIAAAByAwAAAHIUAAAAcgsAAAApBnIEAAAAchkAAABy\nLAAAAHItAAAAci4AAAByDgAAAHIHAAAAcgcAAAByCAAAAHIVAAAARAAAAHMKAAAAAAESARYBIgEa\nAXoNX01hdC5fX3JtdWxfX04pCXInAAAAcigAAAByKQAAAHIJAAAAcg0AAAByDwAAAHI2AAAAch8A\nAAByFQAAAHIHAAAAcgcAAAByBwAAAHIIAAAAcjIAAAAsAAAAcwwAAAAMAQwEDAEMAQwCDA9yMgAA\nAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMpAAAAdAAAfAAAdAEAgwIAchkAfAAAagIAgwAAU3QDAHQE\nAHwAAIMBAIMBAFMpAXqrR2l2ZW4gYSBkaWN0LCByZXR1cm5zIHNvbWV0aGluZyB0aGF0IGdlbmVy\nYXRlcyB0aGUga2V5czsgZ2l2ZW4gYSBsaXN0LAogICAgICAgcmV0dXJucyBzb21ldGhpbmcgdGhh\ndCBnZW5lcmF0ZXMgdGhlIGluZGljZXMuICBJbnRlbmRlZCBmb3IgY29sZGljdDJtYXQgYW5kIHJv\nd2RpY3QybWF0LgogICAgKQVyGwAAANoEZGljdHIdAAAA2gVyYW5nZdoDbGVuKQHaAWRyBwAAAHIH\nAAAAcggAAADaBV9rZXlzSwAAAHMCAAAAAARyPAAAAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMtAAAA\ndAAAfAAAdAEAgwIAciUAdAIAdAMAfAAAagQAgwAAgwEAgwEAU3wAAGQBABlTKQJ6b0dpdmVuIGVp\ndGhlciBhIGRpY3Qgb3IgYSBsaXN0LCByZXR1cm5zIG9uZSBvZiB0aGUgdmFsdWVzLgogICAgICAg\nSW50ZW5kZWQgZm9yIGNvbGRpY3QybWF0IGFuZCByb3dkaWN0Mm1hdC4KICAgIHIKAAAAKQVyGwAA\nAHI4AAAA2gRuZXh02gRpdGVy2gZ2YWx1ZXMpAXI7AAAAcgcAAAByBwAAAHIIAAAA2gZfdmFsdWVR\n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\nAAByGgAAAIoAAABzAgAAAAkAehxfUl9zb2x2ZS48bG9jYWxzPi48bGlzdGNvbXA+KQ3aBnNvcnRl\nZHICAAAA2gRyZXByckQAAAByOgAAAHI5AAAA2gZhcHBlbmRyRwAAAHIhAAAAckMAAAByTwAAAHI2\nAAAAckwAAAApFHIzAAAAciUAAADaA2Vwc9oOY29sX2xhYmVsX2xpc3RaCUFfY29sZGljdFoFUWxp\nc3RaBVJsaXN0WglRX25vcm1zcXNaEFJfY29sX2xhYmVsX2xpc3RyLgAAAFoEbmV3dloJc2lnbWFk\naWN02gFpcgsAAABaBXNpZ21h2gFu2gFRWglSX3Jvd2RpY3RaA3Joc3IRAAAAcgcAAAApAXJRAAAA\ncggAAADaCF9SX3NvbHZlcwAAAHM6AAAAAAEZAQwBBgEGAQYBBgENAQoBEwEZAQoBEgEKARIBCgEM\nAQ0BDQENARQBDAEYAS4BEAEUARYBEgEQAXJaAAAAYwMAAAAAAAAABAAAAAQAAABDAAAAcysAAAB4\nJAB8AgBEXRwAfQMAfAAAfAMAGXwAAHwBABkXfAAAfAMAPHEHAFdkAABTKQFOcgcAAAApBFoIcm93\nX2RpY3RaCXdoaWNoX3Jvd1oNcm93X2luZGV4X3NldFoJcm93X2luZGV4cgcAAAByBwAAAHIIAAAA\n2glfYWRkX3Jvd3OSAAAAcwQAAAAAAQ0BclsAAABjAgAAAAAAAAAUAAAABwAAAAMAAABzOgIAAHwA\nAGoAAFwCAH0CAH0DAHQBAHwCAGQBAHQCAIMBAX0EAHQBAHwDAGQBAHQCAIMBAX0FAHQDAHwAAIMB\nAIkAAHQEAHwCAHwCAGYCAGQCAGQDAIQAAHwCAESDAQCDAgB9BgB0AwB8BgCDAQB9BwBnAAB9CABn\nAAB9CQB8AgBqBQCDAAB9CgB4pgB8BQBEXZ4AiQIAhwAAhwIAZgIAZAQAZAUAhgAAfAoARIMBAH0L\nAHwLAGcAAGsDAHKMAHwLAGQGABl9DAB8CgBqBgB8DACDAQABfAgAagcAiAAAfAwAGYMBAAF8CQBq\nBwB8BwB8DAAZgwEAAXQIAIgAAHwMAHwLAGQHAGQAAIUCABmDAwABdAgAfAcAfAwAfAsAZAcAZAAA\nhQIAGYMDAAFxjABxjABXdAkAfAkAgwEAfQ0AdAkAfAgAgwEAiQEAdAoAiAEAagAAZAYAGYMBAH0O\nAGQGAH0PAHQKAHwDAIMBAH0QAGcAAIkDAHhrAHQLAHwOAIMBAERdXQB9EQB4NAB8DwB8EABrAABy\nugGIAQB8EQB8BQB8DwAZZgIAGWQGAGsCAHK6AXwPAGQHADd9DwBxhwFXfA8AfBAAawAAcn4BiAMA\nagcAfAUAfA8AGYMBAAFxfgFxfgFXdAwAiAMAgwEAiQQAhwEAhwMAhwQAZgMAZAgAZAUAhgAAdAsA\nfA4AgwEARIMBAH0SAHQNAHwSAIgDAHwNAHwBABSDAwB9EwCIAQBqAABkBwAZfBMAXwAAfBMAUykJ\nTnJQAAAAYwEAAAAAAAAAAgAAAAUAAABTAAAAcyIAAABpAAB8AABdGAB9AQB0AABqAQB8AQB8AQBm\nAgCTAgBxBgBTcgcAAAApAtoDR0YyWgNvbmUpAnIQAAAAci0AAAByBwAAAHIHAAAAcggAAAByEwAA\nAJsAAABzAgAAAAkAeh5fR0YyX3NvbHZlLjxsb2NhbHM+LjxkaWN0Y29tcD5jAQAAAAAAAAACAAAA\nBAAAABMAAABzKgAAAGcAAHwAAF0gAH0BAIgAAHwBABmIAQAZZAAAawMAcgYAfAEAkQIAcQYAUykB\ncgoAAAByBwAAACkCchAAAAByLQAAACkC2glBX3Jvd2RpY3RyLgAAAHIHAAAAcggAAAByGgAAAKEA\nAABzAgAAAAkAeh5fR0YyX3NvbHZlLjxsb2NhbHM+LjxsaXN0Y29tcD5yCgAAAHIWAAAAYwEAAAAA\nAAAAAQAAAAcAAAATAAAAczUAAABnAAB8AABdKwCJAAB0AACIAwCHAQCHAABmAgBkAABkAQCGAACI\nAgBEgwEAgwIAkQIAcQYAUykCYwEAAAAAAAAAAgAAAAUAAAATAAAAcyMAAABpAAB8AABdGQB9AQCI\nAACIAQB8AQBmAgAZfAEAkwIAcQYAU3IHAAAAcgcAAAApAnIQAAAAci4AAAApAtoBVXJXAAAAcgcA\nAAByCAAAAHITAAAAswAAAHMCAAAACQB6KV9HRjJfc29sdmUuPGxvY2Fscz4uPGxpc3Rjb21wPi48\nZGljdGNvbXA+KQFyAQAAACkBchAAAAApA3JeAAAA2ghuZXdfY29sc9oMbmV3X2NvbHNfc2V0KQFy\nVwAAAHIIAAAAchoAAACzAAAAcwIAAAAJACkOcgIAAAByUgAAAHJTAAAAckMAAAByMgAAANoEY29w\nedoGcmVtb3ZlclQAAAByWwAAAHJKAAAAcjoAAAByOQAAAHIhAAAAckwAAAApFHIzAAAAciUAAABy\nRgAAAHJIAAAAWg5yb3dfbGFiZWxfbGlzdHJWAAAAcisAAABaCU1fcm93ZGljdFoKbmV3X1Vfcm93\nc1oKbmV3X01fcm93c1oJcm93c19sZWZ0WhFyb3dzX3dpdGhfbm9uemVyb1oFcGl2b3RaAk0x2gFt\n2gFqclgAAAByVwAAAFoKVTFfcm93bGlzdHIRAAAAcgcAAAApBXJdAAAAcl4AAAByLgAAAHJfAAAA\ncmAAAAByCAAAANoKX0dGMl9zb2x2ZZYAAABzRAAAAAABDwESARIBDAEiAQwBBgEGAQwBDQEcAQwB\nCgENAREBEQEaASEBDAEMARMBBgEMAQYBEwEpAA4BDAAYAQwBJQEWARABcmUAAABjAQAAAAAAAAAB\nAAAAAwAAAEMAAABzFgAAAHQAAGoBAHwAAGoCAHwAAGoDAIMCAFMpAU4pBNoDdmVj2gNWZWNyAgAA\nAHIDAAAAKQFyCwAAAHIHAAAAcgcAAAByCAAAANoIX2NvbnZlcnS4AAAAcwAAAAByaAAAAGMDAAAA\nAAAAAAQAAAAGAAAAQwAAAHP9AAAAdAAAfAAAdAEAagIAgwIAcxgAdAMAggEAdAAAfAEAdAQAagUA\ngwIAczAAdAMAggEAfAAAagYAZAEAGXwBAGoGAGsCAHNMAHQDAIIBAHQHAARqCABkAgA3Al8IAHQJ\nAHwAAGoGAHwAAGoKAIMCAH0AAHQLAHwBAGoGAHwBAGoKAIMCAH0BAHheAHwBAGoKAGoMAIMAAERd\nTQB9AwB8AwBkAQBrAwBylQB0AAB8AwB0DQBqDgCDAgByzAB0DwB0EAB8AAB8AQCDAgCDAQBTdA8A\ndBEAfAAAfAEAfAIAgwMAgwEAU3GVAFd0BABqBQB8AABqBgBkAgAZaQAAgwIAUykDYSMGAABTb2x2\nZSB0aGUgbWF0cml4LXZlY3RvciBlcXVhdGlvbiBBeCA9IGIuCiAgICAKICAgIElmIGEgc29sdXRp\nb24gdG8gQXggPSBiIGRvZXMgbm90IGV4aXN0LCB0aGVuIHRoZSB2ZWN0b3IgcmV0dXJuZWQgYnkK\nICAgIHNvbHZlKEEsIGIpIGlzIG5vdCBhIHNvbHV0aW9uLiAgUGxlYXNlIHZlcmlmeSB0aGF0IEF4\nID0gYi4KICAgIAogICAgQXJnczoKICAgICAgICBBOiBBIG1hdHJpeCBvZiB0eXBlIE1hdC4KICAg\nICAgICBiOiBBIHZlY3RvciBvZiB0eXBlIFZlYy4KICAgICAgICBlcHM6IEEgdGhyZXNob2xkLiAg\nT3B0aW9uYWwuCiAgICAKICAgIFJldHVybnM6CiAgICAgICAgeDogQSB2ZWN0b3Igb2YgdHlwZSBW\nZWMuCiAgICAKICAgIFJhaXNlczoKICAgICAgICBBc3NlcnRpb25FcnJvcjogQW4gZXJyb3Igb2Nj\ndXJzIHdoZW4gQSBpcyBub3QgYSBtYXRyaXggb2YgdHlwZSBNYXQuCiAgICAgICAgQXNzZXJ0aW9u\nRXJyb3I6IEFuIGVycm9yIG9jY3VycyB3aGVuIGIgaXMgbm90IGEgdmVjdG9yIG9mIHR5cGUgVmVj\nLgogICAgICAgIEFzc2VydGlvbkVycm9yOiBBbiBlcnJvciBvY2N1cnMgd2hlbiBBLkRbMF0gIT0g\nYi5ELgogICAgCiAgICBFeGFtcGxlIDE6IFNvbHZlIEF4ID0gYiBhbmQgdmVyaWZ5IHRoYXQgeCBp\ncyBjbG9zZSB0byBiLgogICAgPj4+IGZyb20gdmVjIGltcG9ydCBWZWMKICAgID4+PiBmcm9tIG1h\ndCBpbXBvcnQgTWF0CiAgICA+Pj4gQSA9IG1hdC5NYXQoKHswLCAxLCAyfSwgezAsIDF9KSwgeygw\nLCAxKTogMiwgKDIsIDApOiAxMCwgKDEsIDApOiAzLCAoMCwgMCk6IDEsICgxLCAxKTogNH0pCiAg\nICA+Pj4gYiA9IHZlYy5WZWMoezAsIDEsIDJ9LHswOiAxLCAxOiA1LCAyOiAzMH0pCiAgICA+Pj4g\nQS5EWzBdID09IGIuRAogICAgVHJ1ZQogICAgPj4+IHggPSBzb2x2ZShBLCBiKQogICAgPj4+IEEu\nRFsxXSA9PSB4LkQKICAgIFRydWUKICAgID4+PiAoYi1BKngpLmlzX2FsbW9zdF96ZXJvKCkKICAg\nIFRydWUKICAgIAogICAgRXhhbXBsZSAyOiBTb2x2ZSBBeCA9IGIgYW5kIHNlZSB0aGF0IHggaXMg\nbm90IGEgdmFsaWQgc29sdXRpb24uCiAgICA+Pj4gQSA9IG1hdC5NYXQoKHswLCAxfSwgezAsIDF9\nKSwgeygxLCAxKTogMX0pCiAgICA+Pj4gYiA9IHZlYy5WZWMoezAsIDF9LHswOiAyLCAxOiAzfSkK\nICAgID4+PiBBLkRbMF0gPT0gYi5ECiAgICBUcnVlCiAgICA+Pj4geCA9IHNvbHZlKEEsIGIpCiAg\nICA+Pj4gQS5EWzFdID09IHguRAogICAgVHJ1ZQogICAgPj4+IChiLUEqeCkuaXNfYWxtb3N0X3pl\ncm8oKQogICAgRmFsc2UKCiAgICBFeGFtcGxlIDM6IFNvbHZlIHdoZW4gQSBhbmQgYiBhcmUgb3Zl\nciBHRigyKS4KICAgID4+PiBmcm9tIEdGMiBpbXBvcnQgb25lCiAgICA+Pj4gQSA9IE1hdCgoeydh\nJywnYid9LHsnQScsJ0InfSksIHsoJ2EnLCdBJyk6b25lLCAoJ2EnLCdCJyk6b25lLCAoJ2InLCdC\nJyk6b25lfSkKICAgID4+PiBiID0gVmVjKHsnYScsJ2InfSwgeydhJzpvbmV9KQogICAgPj4+IHgg\nPSBzb2x2ZShBLCBiKQogICAgPj4+IEEqeD09YgogICAgVHJ1ZQogICAgPj4+IChiLUEqeCkuaXNf\nYWxtb3N0X3plcm8oKQogICAgVHJ1ZQoKICAgIHIKAAAAchYAAAApEnIbAAAA2gNtYXRaA01hdHIq\nAAAAcmYAAAByZwAAAHICAAAA2gVzb2x2ZdoJX19jYWxsc19fcjIAAAByAwAAAHIBAAAAcj8AAABy\nXAAAAFoDT25lcmgAAAByZQAAAHJaAAAAKQRyMwAAAHIlAAAAclUAAAByEQAAAHIHAAAAcgcAAABy\nCAAAAHJqAAAAugAAAHMYAAAAADYYARgBHAIPARUBFQEWAQwBEgETARoBcmoAAABaDGluc3RydW1l\nbnRlZCkXcgEAAAByLwAAAHIxAAAAcjUAAAByMgAAAHI8AAAAckAAAAByQwAAAHJEAAAAckcAAABy\nSgAAAHJMAAAAcmkAAAByZgAAAHJcAAAAck8AAAByWgAAAHJbAAAAcmUAAAByaAAAAHJqAAAAcmsA\nAADaC19fdmVyc2lvbl9fcgcAAAByBwAAAHIHAAAAcggAAADaCDxtb2R1bGU+AgAAAHMsAAAAExEM\nBwwHDAsTHwwGDAYMAwwDDAQMBAwIDAEMAQwCDAIPHwwEDCIMAg9ECQE=\n'
offset = 12
elif magic == b'\x17\r\r\n': # Python 3.5
pycData = b'Fw0NCmOrjFj2HwAA4wAAAAAAAAAAAAAAAAMAAABAAAAAcyYBAABHZAAAZAEAhAAAZAEAgwIAWgAA\nZAIAZAMAhAAAWgEAZAQAZAUAhAAAWgIAZAYAZAcAhAAAWgMAR2QIAGQJAIQAAGQJAIMCAFoEAGQK\nAGQLAIQAAFoFAGQMAGQNAIQAAFoGAGQOAGQPAIQAAFoHAGQQAGQRAIQAAFoIAGQSAGQTAIQAAFoJ\nAGQUAGQVAIQAAFoKAGQWAGQXAIQAAFoLAGQYAGQZAGwMAFoMAGQYAGQZAGwNAFoNAGQYAGQZAGwO\nAFoOAGQaAGQbAIQAAFoPAGQcAGQdAGQeAIQBAFoQAGQfAGQgAIQAAFoRAGQhAGQiAIQAAFoSAGQj\nAGQkAIQAAFoTAGQcAGQlAGQmAIQBAFoUAGQYAGUUAF8VAGQnAGUUAF8WAGQZAFMpKGMAAAAAAAAA\nAAAAAAAEAAAAQAAAAHN5AAAAZQAAWgEAZAAAWgIAZQMAgwAAaQAAZAEAZAIAhAIAWgQAZAMAZAQA\nhAAAWgUAZAUAZAYAhAAAWgYAZAcAZAgAhAAAWgcAZAkAZAoAhAAAWggAZAsAZAwAhAAAWgkAZA0A\nZA4AhAAAWgoAZA8AZBAAhAAAWgsAZBEAUykS2gRfVmVjYwMAAAAAAAAAAwAAAAIAAABDAAAAcxYA\nAAB8AQB8AABfAAB8AgB8AABfAQBkAABTKQFOKQLaAUTaAWYpA9oEc2VsZtoGbGFiZWxz2ghmdW5j\ndGlvbqkAcgcAAAD6Hi4uL3Jlc291cmNlcy9wcml2YXRlL3NvbHZlci5wedoIX19pbml0X18DAAAA\ncwQAAAAAAQkBeg1fVmVjLl9faW5pdF9fYwIAAAAAAAAAAgAAAAIAAABDAAAAcx4AAAB8AQB8AABq\nAABrBgByGgB8AABqAAB8AQAZU2QBAFMpAk7pAAAAACkBcgMAAAApAtoBdtoBa3IHAAAAcgcAAABy\nCAAAANoLX19nZXRpdGVtX18HAAAAcwAAAAB6EF9WZWMuX19nZXRpdGVtX19jAwAAAAAAAAADAAAA\nAwAAAEMAAABzEQAAAHwCAHwAAGoAAHwBADxkAABTKQFOKQFyAwAAACkDcgsAAAByDAAAANoDdmFs\ncgcAAAByBwAAAHIIAAAA2gtfX3NldGl0ZW1fXwgAAABzAAAAAHoQX1ZlYy5fX3NldGl0ZW1fX2MC\nAAAAAAAAAAIAAAAFAAAAAwAAAHMsAAAAdAAAfAAAagEAhwAAZgEAZAEAZAIAhgAAfAAAagIAagMA\ngwAARIMBAIMCAFMpA05jAQAAAAAAAAADAAAABAAAABMAAABzIwAAAGkAAHwAAF0ZAFwCAH0BAH0C\nAIgAAHwCABR8AQCTAgBxBgBTcgcAAAByBwAAACkD2gIuMHIMAAAA2gF4KQHaBWFscGhhcgcAAABy\nCAAAAPoKPGRpY3Rjb21wPgkAAABzAgAAAAkAeiFfVmVjLl9fcm11bF9fLjxsb2NhbHM+LjxkaWN0\nY29tcD4pBHIBAAAAcgIAAAByAwAAANoFaXRlbXMpAnILAAAAchIAAAByBwAAACkBchIAAAByCAAA\nANoIX19ybXVsX18JAAAAcwAAAAB6DV9WZWMuX19ybXVsX19jAQAAAAAAAAABAAAAAgAAAEMAAABz\nCAAAAGQCAHwAABRTKQNO6QEAAADp/////3IHAAAAKQFyCwAAAHIHAAAAcgcAAAByCAAAANoHX19u\nZWdfXwoAAABzAAAAAHoMX1ZlYy5fX25lZ19fYwIAAAAAAAAAAgAAAAQAAAADAAAAc0AAAAB0AACI\nAAB0AQCDAgByOAB0AgCHAACHAQBmAgBkAQBkAgCGAACIAQBqAwBqBACDAABEgwEAgwEAU3QFAFNk\nAABTKQNOYwEAAAAAAAAAAgAAAAUAAAATAAAAcyIAAABnAAB8AABdGAB9AQCIAQB8AQAZiAAAfAEA\nGRSRAgBxBgBTcgcAAAByBwAAACkCchAAAAByDAAAACkC2gVvdGhlcnIEAAAAcgcAAAByCAAAAPoK\nPGxpc3Rjb21wPg0AAABzAgAAAAkAeiBfVmVjLl9fbXVsX18uPGxvY2Fscz4uPGxpc3Rjb21wPikG\n2gppc2luc3RhbmNlcgEAAADaA3N1bXIDAAAA2gRrZXlz2g5Ob3RJbXBsZW1lbnRlZCkCcgQAAABy\nGQAAAHIHAAAAKQJyGQAAAHIEAAAAcggAAADaB19fbXVsX18LAAAAcwYAAAAAAQ8BKQJ6DF9WZWMu\nX19tdWxfX2MCAAAAAAAAAAIAAAAFAAAAAwAAAHNHAAAAdAAAiAAAagEAhwAAhwEAZgIAZAEAZAIA\nhgAAdAIAiAAAagMAagQAgwAAgwEAagUAiAEAagMAagQAgwAAgwEARIMBAIMCAFMpA05jAQAAAAAA\n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\nAAB0AQB8AQCDAQBrAgByaAB0AAB0AgBqAwBkAQAZaQAAgwIAfQIAeDkAdAIAagQAagUAgwAARF0o\nAFwCAFwCAH0DAH0EAH0FAHwCAHwEAAUZdAYAfAMAGXwFABQ3AzxxOABXfAIAU2QAAFMpAk5yFgAA\nACkHcgEAAAByNwAAAHIrAAAAcgIAAAByAwAAAHIUAAAAcgsAAAApBnIEAAAAchkAAAByLAAAAHIt\nAAAAci4AAAByDgAAAHIHAAAAcgcAAAByCAAAAHIVAAAARAAAAHMKAAAAAAESARYBIgEaAXoNX01h\ndC5fX3JtdWxfX04pCXInAAAAcigAAAByKQAAAHIJAAAAcg0AAAByDwAAAHI2AAAAch8AAAByFQAA\nAHIHAAAAcgcAAAByBwAAAHIIAAAAcjIAAAAsAAAAcwwAAAAMAQwEDAEMAQwCDA9yMgAAAGMBAAAA\nAAAAAAEAAAADAAAAQwAAAHMpAAAAdAAAfAAAdAEAgwIAchkAfAAAagIAgwAAU3QDAHQEAHwAAIMB\nAIMBAFMpAXqrR2l2ZW4gYSBkaWN0LCByZXR1cm5zIHNvbWV0aGluZyB0aGF0IGdlbmVyYXRlcyB0\naGUga2V5czsgZ2l2ZW4gYSBsaXN0LAogICAgICAgcmV0dXJucyBzb21ldGhpbmcgdGhhdCBnZW5l\ncmF0ZXMgdGhlIGluZGljZXMuICBJbnRlbmRlZCBmb3IgY29sZGljdDJtYXQgYW5kIHJvd2RpY3Qy\nbWF0LgogICAgKQVyGwAAANoEZGljdHIdAAAA2gVyYW5nZdoDbGVuKQHaAWRyBwAAAHIHAAAAcggA\nAADaBV9rZXlzSwAAAHMCAAAAAARyPAAAAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMtAAAAdAAAfAAA\ndAEAgwIAciUAdAIAdAMAfAAAagQAgwAAgwEAgwEAU3wAAGQBABlTKQJ6b0dpdmVuIGVpdGhlciBh\nIGRpY3Qgb3IgYSBsaXN0LCByZXR1cm5zIG9uZSBvZiB0aGUgdmFsdWVzLgogICAgICAgSW50ZW5k\nZWQgZm9yIGNvbGRpY3QybWF0IGFuZCByb3dkaWN0Mm1hdC4KICAgIHIKAAAAKQVyGwAAAHI4AAAA\n2gRuZXh02gRpdGVy2gZ2YWx1ZXMpAXI7AAAAcgcAAAByBwAAAHIIAAAA2gZfdmFsdWVRAAAAcwIA\n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\nAHMCAAAACQB6HF9SX3NvbHZlLjxsb2NhbHM+LjxsaXN0Y29tcD4pDdoGc29ydGVkcgIAAADaBHJl\ncHJyRAAAAHI6AAAAcjkAAADaBmFwcGVuZHJHAAAAciEAAAByQwAAAHJPAAAAcjYAAAByTAAAACkU\ncjMAAAByJQAAANoDZXBz2g5jb2xfbGFiZWxfbGlzdFoJQV9jb2xkaWN0WgVRbGlzdFoFUmxpc3Ra\nCVFfbm9ybXNxc1oQUl9jb2xfbGFiZWxfbGlzdHIuAAAAWgRuZXd2WglzaWdtYWRpY3TaAWlyCwAA\nAFoFc2lnbWHaAW7aAVFaCVJfcm93ZGljdFoDcmhzchEAAAByBwAAACkBclEAAAByCAAAANoIX1Jf\nc29sdmVzAAAAczoAAAAAARkBDAEGAQYBBgEGAQ0BCgESARkBCgESAQoBEgEKAQwBDQENAQ0BEQEM\nARgBLgEQARQBFgESARABcloAAABjAwAAAAAAAAAEAAAABAAAAEMAAABzKwAAAHgkAHwCAERdHAB9\nAwB8AAB8AwAZfAAAfAEAGRd8AAB8AwA8cQcAV2QAAFMpAU5yBwAAACkEWghyb3dfZGljdFoJd2hp\nY2hfcm93Wg1yb3dfaW5kZXhfc2V0Wglyb3dfaW5kZXhyBwAAAHIHAAAAcggAAADaCV9hZGRfcm93\nc5IAAABzBAAAAAABDQFyWwAAAGMCAAAAAAAAABQAAAAHAAAAAwAAAHM0AgAAfAAAagAAXAIAfQIA\nfQMAdAEAfAIAZAEAdAIAgwEBfQQAdAEAfAMAZAEAdAIAgwEBfQUAdAMAfAAAgwEAiQAAdAQAfAIA\nfAIAZgIAZAIAZAMAhAAAfAIARIMBAIMCAH0GAHQDAHwGAIMBAH0HAGcAAH0IAGcAAH0JAHwCAGoF\nAIMAAH0KAHijAHwFAERdmwCJAgCHAACHAgBmAgBkBABkBQCGAAB8CgBEgwEAfQsAfAsAZwAAawMA\ncowAfAsAZAYAGX0MAHwKAGoGAHwMAIMBAAF8CABqBwCIAAB8DAAZgwEAAXwJAGoHAHwHAHwMABmD\nAQABdAgAiAAAfAwAfAsAZAcAZAAAhQIAGYMDAAF0CAB8BwB8DAB8CwBkBwBkAACFAgAZgwMAAXGM\nAFd0CQB8CQCDAQB9DQB0CQB8CACDAQCJAQB0CgCIAQBqAABkBgAZgwEAfQ4AZAYAfQ8AdAoAfAMA\ngwEAfRAAZwAAiQMAeGgAdAsAfA4AgwEARF1aAH0RAHg0AHwPAHwQAGsAAHK3AYgBAHwRAHwFAHwP\nABlmAgAZZAYAawIAcrcBfA8AZAcAN30PAHGEAVd8DwB8EABrAAByewGIAwBqBwB8BQB8DwAZgwEA\nAXF7AVd0DACIAwCDAQCJBACHAQCHAwCHBABmAwBkCABkBQCGAAB0CwB8DgCDAQBEgwEAfRIAdA0A\nfBIAiAMAfA0AfAEAFIMDAH0TAIgBAGoAAGQHABl8EwBfAAB8EwBTKQlOclAAAABjAQAAAAAAAAAC\nAAAABQAAAFMAAABzIgAAAGkAAHwAAF0YAH0BAHQAAGoBAHwBAHwBAGYCAJMCAHEGAFNyBwAAACkC\n2gNHRjJaA29uZSkCchAAAAByLQAAAHIHAAAAcgcAAAByCAAAAHITAAAAmwAAAHMCAAAACQB6Hl9H\nRjJfc29sdmUuPGxvY2Fscz4uPGRpY3Rjb21wPmMBAAAAAAAAAAIAAAAEAAAAEwAAAHMqAAAAZwAA\nfAAAXSAAfQEAiAAAfAEAGYgBABlkAABrAwByBgB8AQCRAgBxBgBTKQFyCgAAAHIHAAAAKQJyEAAA\nAHItAAAAKQLaCUFfcm93ZGljdHIuAAAAcgcAAAByCAAAAHIaAAAAoQAAAHMCAAAACQB6Hl9HRjJf\nc29sdmUuPGxvY2Fscz4uPGxpc3Rjb21wPnIKAAAAchYAAABjAQAAAAAAAAABAAAABwAAABMAAABz\nNQAAAGcAAHwAAF0rAIkAAHQAAIgDAIcBAIcAAGYCAGQAAGQBAIYAAIgCAESDAQCDAgCRAgBxBgBT\nKQJjAQAAAAAAAAACAAAABQAAABMAAABzIwAAAGkAAHwAAF0ZAH0BAIgAAIgBAHwBAGYCABl8AQCT\nAgBxBgBTcgcAAAByBwAAACkCchAAAAByLgAAACkC2gFVclcAAAByBwAAAHIIAAAAchMAAACzAAAA\ncwIAAAAJAHopX0dGMl9zb2x2ZS48bG9jYWxzPi48bGlzdGNvbXA+LjxkaWN0Y29tcD4pAXIBAAAA\nKQFyEAAAACkDcl4AAADaCG5ld19jb2xz2gxuZXdfY29sc19zZXQpAXJXAAAAcggAAAByGgAAALMA\nAABzAgAAAAkAKQ5yAgAAAHJSAAAAclMAAAByQwAAAHIyAAAA2gRjb3B52gZyZW1vdmVyVAAAAHJb\nAAAAckoAAAByOgAAAHI5AAAAciEAAAByTAAAACkUcjMAAAByJQAAAHJGAAAAckgAAABaDnJvd19s\nYWJlbF9saXN0clYAAAByKwAAAFoJTV9yb3dkaWN0WgpuZXdfVV9yb3dzWgpuZXdfTV9yb3dzWgly\nb3dzX2xlZnRaEXJvd3Nfd2l0aF9ub256ZXJvWgVwaXZvdFoCTTHaAW3aAWpyWAAAAHJXAAAAWgpV\nMV9yb3dsaXN0chEAAAByBwAAACkFcl0AAAByXgAAAHIuAAAAcl8AAAByYAAAAHIIAAAA2gpfR0Yy\nX3NvbHZllgAAAHNEAAAAAAEPARIBEgEMASIBDAEGAQYBDAENARwBDAEKAQ0BEQERARoBHgEMAQwB\nEwEGAQwBBgETASkADgEMABUBDAElARYBEAFyZQAAAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMWAAAA\ndAAAagEAfAAAagIAfAAAagMAgwIAUykBTikE2gN2ZWPaA1ZlY3ICAAAAcgMAAAApAXILAAAAcgcA\nAAByBwAAAHIIAAAA2ghfY29udmVydLgAAABzAAAAAHJoAAAAYwMAAAAAAAAABAAAAAYAAABDAAAA\nc/0AAAB0AAB8AAB0AQBqAgCDAgBzGAB0AwCCAQB0AAB8AQB0BABqBQCDAgBzMAB0AwCCAQB8AABq\nBgBkAQAZfAEAagYAawIAc0wAdAMAggEAdAcABGoIAGQCADcCXwgAdAkAfAAAagYAfAAAagoAgwIA\nfQAAdAsAfAEAagYAfAEAagoAgwIAfQEAeF4AfAEAagoAagwAgwAARF1NAH0DAHwDAGQBAGsDAHKV\nAHQAAHwDAHQNAGoOAIMCAHLMAHQPAHQQAHwAAHwBAIMCAIMBAFN0DwB0EQB8AAB8AQB8AgCDAwCD\nAQBTcZUAV3QEAGoFAHwAAGoGAGQCABlpAACDAgBTKQNhIwYAAFNvbHZlIHRoZSBtYXRyaXgtdmVj\ndG9yIGVxdWF0aW9uIEF4ID0gYi4KICAgIAogICAgSWYgYSBzb2x1dGlvbiB0byBBeCA9IGIgZG9l\ncyBub3QgZXhpc3QsIHRoZW4gdGhlIHZlY3RvciByZXR1cm5lZCBieQogICAgc29sdmUoQSwgYikg\naXMgbm90IGEgc29sdXRpb24uICBQbGVhc2UgdmVyaWZ5IHRoYXQgQXggPSBiLgogICAgCiAgICBB\ncmdzOgogICAgICAgIEE6IEEgbWF0cml4IG9mIHR5cGUgTWF0LgogICAgICAgIGI6IEEgdmVjdG9y\nIG9mIHR5cGUgVmVjLgogICAgICAgIGVwczogQSB0aHJlc2hvbGQuICBPcHRpb25hbC4KICAgIAog\nICAgUmV0dXJuczoKICAgICAgICB4OiBBIHZlY3RvciBvZiB0eXBlIFZlYy4KICAgIAogICAgUmFp\nc2VzOgogICAgICAgIEFzc2VydGlvbkVycm9yOiBBbiBlcnJvciBvY2N1cnMgd2hlbiBBIGlzIG5v\ndCBhIG1hdHJpeCBvZiB0eXBlIE1hdC4KICAgICAgICBBc3NlcnRpb25FcnJvcjogQW4gZXJyb3Ig\nb2NjdXJzIHdoZW4gYiBpcyBub3QgYSB2ZWN0b3Igb2YgdHlwZSBWZWMuCiAgICAgICAgQXNzZXJ0\naW9uRXJyb3I6IEFuIGVycm9yIG9jY3VycyB3aGVuIEEuRFswXSAhPSBiLkQuCiAgICAKICAgIEV4\nYW1wbGUgMTogU29sdmUgQXggPSBiIGFuZCB2ZXJpZnkgdGhhdCB4IGlzIGNsb3NlIHRvIGIuCiAg\nICA+Pj4gZnJvbSB2ZWMgaW1wb3J0IFZlYwogICAgPj4+IGZyb20gbWF0IGltcG9ydCBNYXQKICAg\nID4+PiBBID0gbWF0Lk1hdCgoezAsIDEsIDJ9LCB7MCwgMX0pLCB7KDAsIDEpOiAyLCAoMiwgMCk6\nIDEwLCAoMSwgMCk6IDMsICgwLCAwKTogMSwgKDEsIDEpOiA0fSkKICAgID4+PiBiID0gdmVjLlZl\nYyh7MCwgMSwgMn0sezA6IDEsIDE6IDUsIDI6IDMwfSkKICAgID4+PiBBLkRbMF0gPT0gYi5ECiAg\nICBUcnVlCiAgICA+Pj4geCA9IHNvbHZlKEEsIGIpCiAgICA+Pj4gQS5EWzFdID09IHguRAogICAg\nVHJ1ZQogICAgPj4+IChiLUEqeCkuaXNfYWxtb3N0X3plcm8oKQogICAgVHJ1ZQogICAgCiAgICBF\neGFtcGxlIDI6IFNvbHZlIEF4ID0gYiBhbmQgc2VlIHRoYXQgeCBpcyBub3QgYSB2YWxpZCBzb2x1\ndGlvbi4KICAgID4+PiBBID0gbWF0Lk1hdCgoezAsIDF9LCB7MCwgMX0pLCB7KDEsIDEpOiAxfSkK\nICAgID4+PiBiID0gdmVjLlZlYyh7MCwgMX0sezA6IDIsIDE6IDN9KQogICAgPj4+IEEuRFswXSA9\nPSBiLkQKICAgIFRydWUKICAgID4+PiB4ID0gc29sdmUoQSwgYikKICAgID4+PiBBLkRbMV0gPT0g\neC5ECiAgICBUcnVlCiAgICA+Pj4gKGItQSp4KS5pc19hbG1vc3RfemVybygpCiAgICBGYWxzZQoK\nICAgIEV4YW1wbGUgMzogU29sdmUgd2hlbiBBIGFuZCBiIGFyZSBvdmVyIEdGKDIpLgogICAgPj4+\nIGZyb20gR0YyIGltcG9ydCBvbmUKICAgID4+PiBBID0gTWF0KCh7J2EnLCdiJ30seydBJywnQid9\nKSwgeygnYScsJ0EnKTpvbmUsICgnYScsJ0InKTpvbmUsICgnYicsJ0InKTpvbmV9KQogICAgPj4+\nIGIgPSBWZWMoeydhJywnYid9LCB7J2EnOm9uZX0pCiAgICA+Pj4geCA9IHNvbHZlKEEsIGIpCiAg\nICA+Pj4gQSp4PT1iCiAgICBUcnVlCiAgICA+Pj4gKGItQSp4KS5pc19hbG1vc3RfemVybygpCiAg\nICBUcnVlCgogICAgcgoAAAByFgAAACkSchsAAADaA21hdFoDTWF0cioAAAByZgAAAHJnAAAAcgIA\nAADaBXNvbHZl2glfX2NhbGxzX19yMgAAAHIDAAAAcgEAAAByPwAAAHJcAAAAWgNPbmVyaAAAAHJl\nAAAAcloAAAApBHIzAAAAciUAAAByVQAAAHIRAAAAcgcAAAByBwAAAHIIAAAAcmoAAAC6AAAAcxgA\nAAAANhgBGAEcAg8BFQEVARYBDAESARMBGgFyagAAAFoMaW5zdHJ1bWVudGVkKRdyAQAAAHIvAAAA\ncjEAAAByNQAAAHIyAAAAcjwAAAByQAAAAHJDAAAAckQAAAByRwAAAHJKAAAAckwAAAByaQAAAHJm\nAAAAclwAAAByTwAAAHJaAAAAclsAAAByZQAAAHJoAAAAcmoAAAByawAAANoLX192ZXJzaW9uX19y\nBwAAAHIHAAAAcgcAAAByCAAAANoIPG1vZHVsZT4CAAAAcywAAAATEQwHDAcMCxMfDAYMBgwDDAMM\nBAwEDAgMAQwBDAIMAg8fDAQMIgwCD0QJAQ==\n'
offset = 12
elif magic == b'3\r\r\n': # Python 3.6
pycData = b'Mw0NCmOrjFj2HwAA4wAAAAAAAAAAAAAAAAMAAABAAAAAc8gAAABHAGQAZAGEAGQBgwJaAGQCZAOE\nAFoBZARkBYQAWgJkBmQHhABaA0cAZAhkCYQAZAmDAloEZApkC4QAWgVkDGQNhABaBmQOZA+EAFoH\nZBBkEYQAWghkEmQThABaCWQUZBWEAFoKZBZkF4QAWgtkGGQZbAxaDGQYZBlsDVoNZBhkGWwOWg5k\nGmQbhABaD2QoZB1kHoQBWhBkH2QghABaEWQhZCKEAFoSZCNkJIQAWhNkKWQlZCaEAVoUZBhlFF8V\nZCdlFF8WZBlTACkqYwAAAAAAAAAAAAAAAAMAAABAAAAAc1QAAABlAFoBZABaAmUDgwBpAGYCZAFk\nAoQBWgRkA2QEhABaBWQFZAaEAFoGZAdkCIQAWgdkCWQKhABaCGQLZAyEAFoJZA1kDoQAWgpkD2QQ\nhABaC2QRUwApEtoEX1ZlY2MDAAAAAAAAAAMAAAACAAAAQwAAAHMQAAAAfAF8AF8AfAJ8AF8BZABT\nACkBTikC2gFE2gFmKQPaBHNlbGbaBmxhYmVsc9oIZnVuY3Rpb26pAHIHAAAA+h4uLi9yZXNvdXJj\nZXMvcHJpdmF0ZS9zb2x2ZXIucHnaCF9faW5pdF9fAwAAAHMEAAAAAAEGAXoNX1ZlYy5fX2luaXRf\nX2MCAAAAAAAAAAIAAAACAAAAQwAAAHMYAAAAfAF8AGoAawZyFHwAagB8ARkAUwBkAVMAKQJO6QAA\nAAApAXIDAAAAKQLaAXbaAWtyBwAAAHIHAAAAcggAAADaC19fZ2V0aXRlbV9fBwAAAHMAAAAAehBf\nVmVjLl9fZ2V0aXRlbV9fYwMAAAAAAAAAAwAAAAMAAABDAAAAcw4AAAB8AnwAagB8ATwAZABTACkB\nTikBcgMAAAApA3ILAAAAcgwAAADaA3ZhbHIHAAAAcgcAAAByCAAAANoLX19zZXRpdGVtX18IAAAA\ncwAAAAB6EF9WZWMuX19zZXRpdGVtX19jAgAAAAAAAAACAAAABQAAAAMAAABzIAAAAHQAfABqAYcA\nZgFkAWQChAh8AGoCagODAEQAgwGDAlMAKQNOYwEAAAAAAAAAAwAAAAQAAAATAAAAcxoAAABpAHwA\nXRJcAn0BfQKIAHwCFAB8AZMCcQRTAHIHAAAAcgcAAAApA9oCLjByDAAAANoBeCkB2gVhbHBoYXIH\nAAAAcggAAAD6CjxkaWN0Y29tcD4JAAAAcwIAAAAGAHohX1ZlYy5fX3JtdWxfXy48bG9jYWxzPi48\nZGljdGNvbXA+KQRyAQAAAHICAAAAcgMAAADaBWl0ZW1zKQJyCwAAAHISAAAAcgcAAAApAXISAAAA\ncggAAADaCF9fcm11bF9fCQAAAHMAAAAAeg1fVmVjLl9fcm11bF9fYwEAAAAAAAAAAQAAAAIAAABD\nAAAAcwgAAABkAnwAFABTACkDTukBAAAA6f////9yBwAAACkBcgsAAAByBwAAAHIHAAAAcggAAADa\nB19fbmVnX18KAAAAcwAAAAB6DF9WZWMuX19uZWdfX2MCAAAAAAAAAAIAAAAEAAAAAwAAAHMwAAAA\ndACIAHQBgwJyKHQChwCHAWYCZAFkAoQIiAFqA2oEgwBEAIMBgwFTAHQFUwBkAFMAKQNOYwEAAAAA\nAAAAAgAAAAUAAAATAAAAcxwAAABnAHwAXRR9AYgBfAEZAIgAfAEZABQAkQJxBFMAcgcAAAByBwAA\nACkCchAAAAByDAAAACkC2gVvdGhlcnIEAAAAcgcAAAByCAAAAPoKPGxpc3Rjb21wPg0AAABzAgAA\nAAYAeiBfVmVjLl9fbXVsX18uPGxvY2Fscz4uPGxpc3Rjb21wPikG2gppc2luc3RhbmNlcgEAAADa\nA3N1bXIDAAAA2gRrZXlz2g5Ob3RJbXBsZW1lbnRlZCkCcgQAAAByGQAAAHIHAAAAKQJyGQAAAHIE\nAAAAcggAAADaB19fbXVsX18LAAAAcwYAAAAAAQoBHgJ6DF9WZWMuX19tdWxfX2MCAAAAAAAAAAIA\nAAAFAAAAAwAAAHMyAAAAdACIAGoBhwCHAWYCZAFkAoQIdAKIAGoDagSDAIMBagWIAWoDagSDAIMB\nRACDAYMCUwApA05jAQAAAAAAAAACAAAABQAAABMAAABzHgAAAGkAfABdFn0BiAB8ARkAiAF8ARkA\nFwB8AZMCcQRTAHIHAAAAcgcAAAApAnIQAAAAcgwAAAApAtoBdXILAAAAcgcAAAByCAAAAHITAAAA\nEAAAAHMCAAAABgB6IF9WZWMuX19hZGRfXy48bG9jYWxzPi48ZGljdGNvbXA+KQZyAQAAAHICAAAA\n2gNzZXRyAwAAAHIdAAAA2gV1bmlvbikCciAAAAByCwAAAHIHAAAAKQJyIAAAAHILAAAAcggAAADa\nB19fYWRkX18QAAAAcwAAAAB6DF9WZWMuX19hZGRfX2MCAAAAAAAAAAIAAAACAAAAQwAAAHMKAAAA\nfAB8AQsAFwBTACkBTnIHAAAAKQLaAWHaAWJyBwAAAHIHAAAAcggAAADaB19fc3ViX18RAAAAcwAA\nAAB6DF9WZWMuX19zdWJfX04pDNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX3Ih\nAAAAcgkAAAByDQAAAHIPAAAAchUAAAByGAAAAHIfAAAAciMAAAByJgAAAHIHAAAAcgcAAAByBwAA\nAHIIAAAAcgEAAAACAAAAcxAAAAAIARAECAEIAQgBCAEIBQgBcgEAAABjAgAAAAAAAAAGAAAABgAA\nAEMAAABzXAAAAHwBagBkARkAfABqAGsCcxR0AYIBdAJ8AWoAZAIZAGkAgwJ9AngyfAFqA2oEgwBE\nAF0kXAJcAn0DfQR9BXwCfAQFABkAfAB8AxkAfAUUADcAAwA8AHEwVwB8AlMAKQNOcgoAAAByFgAA\nACkFcgIAAADaDkFzc2VydGlvbkVycm9ycgEAAAByAwAAAHIUAAAAKQZyCwAAANoBTdoGcmVzdWx0\n2gFy2gFjcg4AAAByBwAAAHIHAAAAcggAAADaEl92ZWN0b3JfbWF0cml4X211bBMAAABzCgAAAAAB\nFAEQARgBHAFyLwAAAGMCAAAAAAAAAAYAAAAGAAAAQwAAAHNcAAAAfABqAGQBGQB8AWoAawJzFHQB\nggF0AnwAagBkAhkAaQCDAn0CeDJ8AGoDagSDAEQAXSRcAlwCfQN9BH0FfAJ8AwUAGQB8AXwEGQB8\nBRQANwADADwAcTBXAHwCUwApA05yFgAAAHIKAAAAKQVyAgAAAHIqAAAAcgEAAAByAwAAAHIUAAAA\nKQZyKwAAAHILAAAA2gNyZXNyLQAAAHIuAAAAcg4AAAByBwAAAHIHAAAAcggAAADaEl9tYXRyaXhf\ndmVjdG9yX211bBoAAABzCgAAAAABFAEQARgBHAFyMQAAAGMCAAAAAAAAAAYAAAAJAAAAQwAAAHOY\nAAAAfABqAGQBGQB8AWoAZAIZAGsCcxh0AYIBdAJ8AGoAZAIZAHwBagBkARkAZgJpAIMCfQJ4YHwA\nagNqBIMARABdUlwCfQN9BHhIfAFqAGQBGQBEAF06fQV8BHwFZgJ8AWoDawZyUnwCfAN8BWYCBQAZ\n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\nIGtleXM7IGdpdmVuIGEgbGlzdCwKICAgICAgIHJldHVybnMgc29tZXRoaW5nIHRoYXQgZ2VuZXJh\ndGVzIHRoZSBpbmRpY2VzLiAgSW50ZW5kZWQgZm9yIGNvbGRpY3QybWF0IGFuZCByb3dkaWN0Mm1h\ndC4KICAgICkFchsAAADaBGRpY3RyHQAAANoFcmFuZ2XaA2xlbikB2gFkcgcAAAByBwAAAHIIAAAA\n2gVfa2V5c0sAAABzAgAAAAAEcjwAAABjAQAAAAAAAAABAAAAAwAAAEMAAABzIgAAAHQAfAB0AYMC\nchp0AnQDfABqBIMAgwGDAVMAfABkARkAUwApAnpvR2l2ZW4gZWl0aGVyIGEgZGljdCBvciBhIGxp\nc3QsIHJldHVybnMgb25lIG9mIHRoZSB2YWx1ZXMuCiAgICAgICBJbnRlbmRlZCBmb3IgY29sZGlj\ndDJtYXQgYW5kIHJvd2RpY3QybWF0LgogICAgcgoAAAApBXIbAAAAcjgAAADaBG5leHTaBGl0ZXLa\nBnZhbHVlcykBcjsAAAByBwAAAHIHAAAAcggAAADaBl92YWx1ZVEAAABzAgAAAAAEckAAAABjAQAA\nAAAAAAABAAAAAwAAAAMAAABzGAAAAIcAZgFkAWQChAiIAGoAZAMZAEQAgwFTACkETmMBAAAAAAAA\nAAEAAAAHAAAAEwAAAHM0AAAAaQB8AF0siQB0AIgBagFkABkAhwGHAGYCZAFkAoQIiAFqAWQAGQBE\nAIMBgwKIAJMCcQRTACkDchYAAABjAQAAAAAAAAACAAAABQAAABMAAABzGgAAAGkAfABdEn0BiACI\nAXwBZgIZAHwBkwJxBFMAcgcAAAByBwAAACkCchAAAADaA2NvbCkCcjMAAADaA3Jvd3IHAAAAcggA\nAAByEwAAAFgAAABzAgAAAAYAeitfbWF0MnJvd2RpY3QuPGxvY2Fscz4uPGRpY3Rjb21wPi48ZGlj\ndGNvbXA+KQJyAQAAAHICAAAAKQFyEAAAACkBcjMAAAApAXJCAAAAcggAAAByEwAAAFgAAABzAgAA\nAAYAeiBfbWF0MnJvd2RpY3QuPGxvY2Fscz4uPGRpY3Rjb21wPnIKAAAAKQFyAgAAACkBcjMAAABy\nBwAAACkBcjMAAAByCAAAANoMX21hdDJyb3dkaWN0VwAAAHMCAAAAAAFyQwAAAGMBAAAAAAAAAAEA\nAAADAAAAAwAAAHMYAAAAhwBmAWQBZAKECIgAagBkAxkARACDAVMAKQROYwEAAAAAAAAAAQAAAAcA\nAAATAAAAczQAAABpAHwAXSyJAHQAiAFqAWQAGQCHAYcAZgJkAWQChAiIAWoBZAAZAEQAgwGDAogA\nkwJxBFMAKQNyCgAAAGMBAAAAAAAAAAIAAAAFAAAAEwAAAHMaAAAAaQB8AF0SfQGIAHwBiAFmAhkA\nfAGTAnEEUwByBwAAAHIHAAAAKQJyEAAAAHJCAAAAKQJyMwAAAHJBAAAAcgcAAAByCAAAAHITAAAA\nWwAAAHMCAAAABgB6K19tYXQyY29sZGljdC48bG9jYWxzPi48ZGljdGNvbXA+LjxkaWN0Y29tcD4p\nAnIBAAAAcgIAAAApAXIQAAAAKQFyMwAAACkBckEAAAByCAAAAHITAAAAWwAAAHMCAAAABgB6IF9t\nYXQyY29sZGljdC48bG9jYWxzPi48ZGljdGNvbXA+chYAAAApAXICAAAAKQFyMwAAAHIHAAAAKQFy\nMwAAAHIIAAAA2gxfbWF0MmNvbGRpY3RaAAAAcwIAAAAAAXJEAAAAYwEAAAAAAAAAAQAAAAUAAAAD\nAAAAczQAAAB0AIgAgwFqAYkBdAKIAXQDdASIAIMBgwFmAocAhwFmAmQBZAKECHQEiACDAUQAgwGD\nAlMAKQNOYwEAAAAAAAAAAwAAAAYAAAATAAAAcygAAABpAHwAXSB9AYgBRABdFn0CiAB8ARkAfAIZ\nAHwCfAFmApMDcQxxBFMAcgcAAAByBwAAACkDchAAAAByLgAAAHItAAAAKQLaB2NvbGRpY3TaCnJv\nd19sYWJlbHNyBwAAAHIIAAAAchMAAABfAAAAcwIAAAAGAHogX2NvbGRpY3QybWF0Ljxsb2NhbHM+\nLjxkaWN0Y29tcD4pBXJAAAAAcgIAAAByMgAAAHIhAAAAcjwAAAApAXJFAAAAcgcAAAApAnJFAAAA\nckYAAAByCAAAANoMX2NvbGRpY3QybWF0XQAAAHMEAAAAAAEKAXJHAAAAYwEAAAAAAAAAAQAAAAUA\nAAADAAAAczQAAAB0AIgBgwFqAYkAdAJ0A3QEiAGDAYMBiABmAocAhwFmAmQBZAKECHQEiAGDAUQA\ngwGDAlMAKQNOYwEAAAAAAAAAAwAAAAYAAAATAAAAcygAAABpAHwAXSB9AYgARABdFn0CiAF8ARkA\nfAIZAHwBfAJmApMDcQxxBFMAcgcAAAByBwAAACkDchAAAAByLQAAAHIuAAAAKQLaCmNvbF9sYWJl\nbHPaB3Jvd2RpY3RyBwAAAHIIAAAAchMAAABjAAAAcwIAAAAGAHogX3Jvd2RpY3QybWF0Ljxsb2Nh\nbHM+LjxkaWN0Y29tcD4pBXJAAAAAcgIAAAByMgAAAHIhAAAAcjwAAAApAXJJAAAAcgcAAAApAnJI\nAAAAckkAAAByCAAAANoMX3Jvd2RpY3QybWF0YQAAAHMEAAAAAAEKAXJKAAAAYwMAAAAAAAAABwAA\nAAQAAABDAAAAc1gAAAB0AHQBfAGDAWkAgwJ9A3hEdAJ0A3QEfACDAYMBgwFEAF0wfQR8AXwEGQB9\nBXwAfAQZAH0GfAJ8BBkAfAN8BhQAGAB8BnwFGQAbAHwDfAU8AHEgVwB8A1MAKQFOKQVyAQAAAHIh\nAAAA2ghyZXZlcnNlZHI5AAAAcjoAAAApB1oHcm93bGlzdFoKbGFiZWxfbGlzdHIlAAAAchEAAABy\nLQAAAHIuAAAAckIAAAByBwAAAHIHAAAAcggAAADaEV90cmlhbmd1bGFyX3NvbHZlZQAAAHMMAAAA\nAAEOARYBCAEIASABckwAAAByCgAAAE5jAgAAAAAAAAACAAAABAAAAEMAAABzDgAAAHQAdAF8AXwA\ngwKDAVMAKQFOKQJyOAAAANoDemlwKQLaAUxaB2tleWxpc3RyBwAAAHIHAAAAcggAAADaCl9saXN0\nMmRpY3RxAAAAcwAAAAByTwAAAOcWVueerwPSPGMDAAAAAAAAABQAAAAGAAAAAwAAAHNQAQAAdAB8\nAGoBZAEZAHQCZAKNAn0DdAN8AIMBfQRnAH0FZwB9BmcAfQdnAH0IeJp8A0QAXZJ9CXwEfAkZAH0K\ndAR8BYMBZAFpAX0LeEB0BXQEfAWDAYMBRABdMH0MfAV8DBkAfQ18CnwNFAB8B3wMGQAbAH0OfA58\nC3wMPAB8CnwOfA0UABgAfQpxVlcAfAp8ChQAfQ98D3wCawRyMHwHagZ8D4MBAQB8BWoGfAqDAQEA\nfAZqBnwLgwEBAHwIagZ8CYMBAQBxMFcAdAd8BYMBfRB0CHQFdAR8BYMBgwGDAYkAdAl0B3QKhwBm\nAWQDZASECHwGRACDAXwIgwKDAYMBfRF8EGoLgwB8ARQAfRJ4KHwQagFkARkARABdGn0MfBJ8DAUA\nGQB8B3wMGQAdAAMAPACQAXEWVwB0DHwRfAh8EoMDfRN8AGoBZAEZAHwTXwF8E1MAKQVOchYAAAAp\nAdoDa2V5YwEAAAAAAAAAAgAAAAUAAAATAAAAcxYAAABnAHwAXQ59AXQAiAB8AYMCkQJxBFMAcgcA\nAAApAXIBAAAAKQJyEAAAAHIDAAAAKQHaD1Jfcm93X2xhYmVsX3NldHIHAAAAcggAAAByGgAAAIoA\nAABzAgAAAAYAehxfUl9zb2x2ZS48bG9jYWxzPi48bGlzdGNvbXA+KQ3aBnNvcnRlZHICAAAA2gRy\nZXByckQAAAByOgAAAHI5AAAA2gZhcHBlbmRyRwAAAHIhAAAAckMAAAByTwAAAHI2AAAAckwAAAAp\nFHIzAAAAciUAAADaA2Vwc9oOY29sX2xhYmVsX2xpc3RaCUFfY29sZGljdFoFUWxpc3RaBVJsaXN0\nWglRX25vcm1zcXNaEFJfY29sX2xhYmVsX2xpc3RyLgAAAFoEbmV3dloJc2lnbWFkaWN02gFpcgsA\nAABaBXNpZ21h2gFu2gFRWglSX3Jvd2RpY3RaA3Joc3IRAAAAcgcAAAApAXJSAAAAcggAAADaCF9S\nX3NvbHZlcwAAAHM6AAAAAAESAQgBBAEEAQQBBAEKAQgBDAESAQgBEAEIARABCAEIAQoBCgEKAQ4B\nCAEQASABDAEQARoBDAEMAXJbAAAAYwMAAAAAAAAABAAAAAQAAABDAAAAcyYAAAB4IHwCRABdGH0D\nfAB8AxkAfAB8ARkAFwB8AHwDPABxBlcAZABTACkBTnIHAAAAKQRaCHJvd19kaWN0Wgl3aGljaF9y\nb3daDXJvd19pbmRleF9zZXRaCXJvd19pbmRleHIHAAAAcgcAAAByCAAAANoJX2FkZF9yb3dzkgAA\nAHMEAAAAAAEKAXJcAAAAYwIAAAAAAAAAFAAAAAcAAAADAAAAc6YBAAB8AGoAXAJ9An0DdAF8AnQC\nZAGNAn0EdAF8A3QCZAGNAn0FdAN8AIMBiQB0BHwCfAJmAmQCZAOEAHwCRACDAYMCfQZ0A3wGgwF9\nB2cAfQhnAH0JfAJqBYMAfQp4fnwFRABddokChwCHAmYCZARkBYQIfApEAIMBfQt8C2cAawNyYHwL\nZAYZAH0MfApqBnwMgwEBAHwIageIAHwMGQCDAQEAfAlqB3wHfAwZAIMBAQB0CIgAfAx8C2QHZACF\nAhkAgwMBAHQIfAd8DHwLZAdkAIUCGQCDAwEAcWBXAHQJfAmDAX0NdAl8CIMBiQF0CogBagBkBhkA\ngwF9DmQGfQ90CnwDgwF9EGcAiQN4WnQLfA6DAUQAXU59EXgufA98EGsAkAFyRIgBfBF8BXwPGQBm\nAhkAZAZrApABckR8D2QHNwB9D5ABcRhXAHwPfBBrAJABchKIA2oHfAV8DxkAgwEBAJABcRJXAHQM\niAODAYkEhwGHA4cEZgNkCGQFhAh0C3wOgwFEAIMBfRJ0DXwSiAN8DXwBFACDA30TiAFqAGQHGQB8\nE18AfBNTACkJTikBclEAAABjAQAAAAAAAAACAAAABQAAAFMAAABzGAAAAGkAfABdEH0BdABqAXwB\nfAFmApMCcQRTAHIHAAAAKQLaA0dGMloDb25lKQJyEAAAAHItAAAAcgcAAAByBwAAAHIIAAAAchMA\nAACbAAAAcwIAAAAGAHoeX0dGMl9zb2x2ZS48bG9jYWxzPi48ZGljdGNvbXA+YwEAAAAAAAAAAgAA\nAAQAAAATAAAAcyAAAABnAHwAXRh9AYgAfAEZAIgBGQBkAGsDcgR8AZECcQRTACkBcgoAAAByBwAA\nACkCchAAAAByLQAAACkC2glBX3Jvd2RpY3RyLgAAAHIHAAAAcggAAAByGgAAAKEAAABzAgAAAAYA\neh5fR0YyX3NvbHZlLjxsb2NhbHM+LjxsaXN0Y29tcD5yCgAAAHIWAAAAYwEAAAAAAAAAAQAAAAcA\nAAATAAAAcyYAAABnAHwAXR6JAHQAiAOHAYcAZgJkAGQBhAiIAkQAgwGDApECcQRTACkCYwEAAAAA\nAAAAAgAAAAUAAAATAAAAcxoAAABpAHwAXRJ9AYgAiAF8AWYCGQB8AZMCcQRTAHIHAAAAcgcAAAAp\nAnIQAAAAci4AAAApAtoBVXJYAAAAcgcAAAByCAAAAHITAAAAswAAAHMCAAAABgB6KV9HRjJfc29s\ndmUuPGxvY2Fscz4uPGxpc3Rjb21wPi48ZGljdGNvbXA+KQFyAQAAACkBchAAAAApA3JfAAAA2ghu\nZXdfY29sc9oMbmV3X2NvbHNfc2V0KQFyWAAAAHIIAAAAchoAAACzAAAAcwIAAAAGACkOcgIAAABy\nUwAAAHJUAAAAckMAAAByMgAAANoEY29wedoGcmVtb3ZlclUAAAByXAAAAHJKAAAAcjoAAAByOQAA\nAHIhAAAAckwAAAApFHIzAAAAciUAAAByRgAAAHJIAAAAWg5yb3dfbGFiZWxfbGlzdHJXAAAAcisA\nAABaCU1fcm93ZGljdFoKbmV3X1Vfcm93c1oKbmV3X01fcm93c1oJcm93c19sZWZ0WhFyb3dzX3dp\ndGhfbm9uemVyb1oFcGl2b3RaAk0x2gFt2gFqclkAAAByWAAAAFoKVTFfcm93bGlzdHIRAAAAcgcA\nAAApBXJeAAAAcl8AAAByLgAAAHJgAAAAcmEAAAByCAAAANoKX0dGMl9zb2x2ZZYAAABzRAAAAAAB\nCgEMAQwBCAEYAQgBBAEEAQgBCgEUAQgBCAEKAQ4BDgEUARgBCAEIAQ4BBAEIAQQBDgEiAA4BCgAU\nAQgBGgEQAQwBcmYAAABjAQAAAAAAAAABAAAAAwAAAEMAAABzEAAAAHQAagF8AGoCfABqA4MCUwAp\nAU4pBNoDdmVj2gNWZWNyAgAAAHIDAAAAKQFyCwAAAHIHAAAAcgcAAAByCAAAANoIX2NvbnZlcnS4\nAAAAcwAAAAByaQAAAGMDAAAAAAAAAAQAAAAGAAAAQwAAAHO2AAAAdAB8AHQBagKDAnMQdAOCAXQA\nfAF0BGoFgwJzIHQDggF8AGoGZAEZAHwBagZrAnM0dAOCAXQHBABqCGQCNwACAF8IdAl8AGoGfABq\nCoMCfQB0C3wBagZ8AWoKgwJ9AXhEfAFqCmoMgwBEAF02fQN8A2QBawNyanQAfAN0DWoOgwJykHQP\ndBB8AHwBgwKDAVMAdA90EXwAfAF8AoMDgwFTAHFqVwB0BGoFfABqBmQCGQBpAIMCUwApA2EjBgAA\nU29sdmUgdGhlIG1hdHJpeC12ZWN0b3IgZXF1YXRpb24gQXggPSBiLgogICAgCiAgICBJZiBhIHNv\nbHV0aW9uIHRvIEF4ID0gYiBkb2VzIG5vdCBleGlzdCwgdGhlbiB0aGUgdmVjdG9yIHJldHVybmVk\nIGJ5CiAgICBzb2x2ZShBLCBiKSBpcyBub3QgYSBzb2x1dGlvbi4gIFBsZWFzZSB2ZXJpZnkgdGhh\ndCBBeCA9IGIuCiAgICAKICAgIEFyZ3M6CiAgICAgICAgQTogQSBtYXRyaXggb2YgdHlwZSBNYXQu\nCiAgICAgICAgYjogQSB2ZWN0b3Igb2YgdHlwZSBWZWMuCiAgICAgICAgZXBzOiBBIHRocmVzaG9s\nZC4gIE9wdGlvbmFsLgogICAgCiAgICBSZXR1cm5zOgogICAgICAgIHg6IEEgdmVjdG9yIG9mIHR5\ncGUgVmVjLgogICAgCiAgICBSYWlzZXM6CiAgICAgICAgQXNzZXJ0aW9uRXJyb3I6IEFuIGVycm9y\nIG9jY3VycyB3aGVuIEEgaXMgbm90IGEgbWF0cml4IG9mIHR5cGUgTWF0LgogICAgICAgIEFzc2Vy\ndGlvbkVycm9yOiBBbiBlcnJvciBvY2N1cnMgd2hlbiBiIGlzIG5vdCBhIHZlY3RvciBvZiB0eXBl\nIFZlYy4KICAgICAgICBBc3NlcnRpb25FcnJvcjogQW4gZXJyb3Igb2NjdXJzIHdoZW4gQS5EWzBd\nICE9IGIuRC4KICAgIAogICAgRXhhbXBsZSAxOiBTb2x2ZSBBeCA9IGIgYW5kIHZlcmlmeSB0aGF0\nIHggaXMgY2xvc2UgdG8gYi4KICAgID4+PiBmcm9tIHZlYyBpbXBvcnQgVmVjCiAgICA+Pj4gZnJv\nbSBtYXQgaW1wb3J0IE1hdAogICAgPj4+IEEgPSBtYXQuTWF0KCh7MCwgMSwgMn0sIHswLCAxfSks\nIHsoMCwgMSk6IDIsICgyLCAwKTogMTAsICgxLCAwKTogMywgKDAsIDApOiAxLCAoMSwgMSk6IDR9\nKQogICAgPj4+IGIgPSB2ZWMuVmVjKHswLCAxLCAyfSx7MDogMSwgMTogNSwgMjogMzB9KQogICAg\nPj4+IEEuRFswXSA9PSBiLkQKICAgIFRydWUKICAgID4+PiB4ID0gc29sdmUoQSwgYikKICAgID4+\nPiBBLkRbMV0gPT0geC5ECiAgICBUcnVlCiAgICA+Pj4gKGItQSp4KS5pc19hbG1vc3RfemVybygp\nCiAgICBUcnVlCiAgICAKICAgIEV4YW1wbGUgMjogU29sdmUgQXggPSBiIGFuZCBzZWUgdGhhdCB4\nIGlzIG5vdCBhIHZhbGlkIHNvbHV0aW9uLgogICAgPj4+IEEgPSBtYXQuTWF0KCh7MCwgMX0sIHsw\nLCAxfSksIHsoMSwgMSk6IDF9KQogICAgPj4+IGIgPSB2ZWMuVmVjKHswLCAxfSx7MDogMiwgMTog\nM30pCiAgICA+Pj4gQS5EWzBdID09IGIuRAogICAgVHJ1ZQogICAgPj4+IHggPSBzb2x2ZShBLCBi\nKQogICAgPj4+IEEuRFsxXSA9PSB4LkQKICAgIFRydWUKICAgID4+PiAoYi1BKngpLmlzX2FsbW9z\ndF96ZXJvKCkKICAgIEZhbHNlCgogICAgRXhhbXBsZSAzOiBTb2x2ZSB3aGVuIEEgYW5kIGIgYXJl\nIG92ZXIgR0YoMikuCiAgICA+Pj4gZnJvbSBHRjIgaW1wb3J0IG9uZQogICAgPj4+IEEgPSBNYXQo\nKHsnYScsJ2InfSx7J0EnLCdCJ30pLCB7KCdhJywnQScpOm9uZSwgKCdhJywnQicpOm9uZSwgKCdi\nJywnQicpOm9uZX0pCiAgICA+Pj4gYiA9IFZlYyh7J2EnLCdiJ30sIHsnYSc6b25lfSkKICAgID4+\nPiB4ID0gc29sdmUoQSwgYikKICAgID4+PiBBKng9PWIKICAgIFRydWUKICAgID4+PiAoYi1BKngp\nLmlzX2FsbW9zdF96ZXJvKCkKICAgIFRydWUKCiAgICByCgAAAHIWAAAAKRJyGwAAANoDbWF0WgNN\nYXRyKgAAAHJnAAAAcmgAAAByAgAAANoFc29sdmXaCV9fY2FsbHNfX3IyAAAAcgMAAAByAQAAAHI/\nAAAAcl0AAABaA09uZXJpAAAAcmYAAAByWwAAACkEcjMAAAByJQAAAHJWAAAAchEAAAByBwAAAHIH\nAAAAcggAAAByawAAALoAAABzGAAAAAA2EAEQARQCDgEOAQ4BEAEIAQwBDgEUAXJrAAAAWgxpbnN0\ncnVtZW50ZWQpAXJQAAAAKQFyUAAAACkXcgEAAAByLwAAAHIxAAAAcjUAAAByMgAAAHI8AAAAckAA\nAAByQwAAAHJEAAAAckcAAABySgAAAHJMAAAAcmoAAAByZwAAAHJdAAAAck8AAAByWwAAAHJcAAAA\ncmYAAAByaQAAAHJrAAAAcmwAAADaC19fdmVyc2lvbl9fcgcAAAByBwAAAHIHAAAAcggAAADaCDxt\nb2R1bGU+AgAAAHMsAAAADhEIBwgHCAsOHwgGCAYIAwgDCAQIBAgICAEIAQgCCAIKHwgECCIIAgpE\nBgE=\n'
offset = 12
else:
raise ImportError("Unsupported Python version")
pycData = base64.decodebytes(pycData)
assert pycData[:4] == magic, "Bad magic number"
try:
return marshal.loads(pycData[offset:])
except ValueError:
raise ImportError("Could not read .pyc data")
exec(_get_module())