-
Notifications
You must be signed in to change notification settings - Fork 15
/
independence.py
29 lines (24 loc) · 21.7 KB
/
independence.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'7gwNCj16/FTtDQAA4wAAAAAAAAAAAAAAAAMAAABAAAAAc4YAAABkAABkAQBsAABaAABHZAIAZAMA\nhAAAZAMAgwIAWgEAZAQAZAUAZAYAhAEAWgIAZAcAZAgAhAAAWgMAZAkAZAoAhAAAWgQAZAsAZAwA\nhAAAWgUAZA0AZA4AhAAAWgYAZAAAZQUAXwcAZA8AZQUAXwgAZAAAZQYAXwcAZA8AZQYAXwgAZAEA\nUykQ6QAAAABOYwAAAAAAAAAAAAAAAAQAAABAAAAAc3kAAABlAABaAQBkAABaAgBlAwCDAABpAABk\nAQBkAgCEAgBaBABkAwBkBACEAABaBQBkBQBkBgCEAABaBgBkBwBkCACEAABaBwBkCQBkCgCEAABa\nCABkCwBkDACEAABaCQBkDQBkDgCEAABaCgBkDwBkEACEAABaCwBkEQBTKRLaBF9WZWNjAwAAAAAA\nAAADAAAAAgAAAEMAAABzFgAAAHwBAHwAAF8AAHwCAHwAAF8BAGQAAFMpAU4pAtoBRNoBZikD2gRz\nZWxmWgZsYWJlbHNaCGZ1bmN0aW9uqQByBgAAAPokLi4vcmVzb3VyY2VzL3ByaXZhdGUvaW5kZXBl\nbmRlbmNlLnB52ghfX2luaXRfXwUAAABzBAAAAAABCQF6DV9WZWMuX19pbml0X19jAgAAAAAAAAAC\nAAAAAgAAAEMAAABzHgAAAHwBAHwAAGoAAGsGAHIaAHwAAGoAAHwBABlTZAEAUykCTnIBAAAAKQFy\nBAAAACkC2gF22gFrcgYAAAByBgAAAHIHAAAA2gtfX2dldGl0ZW1fXwkAAABzAAAAAHoQX1ZlYy5f\nX2dldGl0ZW1fX2MDAAAAAAAAAAMAAAAEAAAAQwAAAHMVAAAAdAAABHwAAGoBAHwBADx9AgBkAABT\nKQFOKQJaCF9zZXRpdGVtcgQAAAApA3IJAAAAcgoAAADaA3ZhbHIGAAAAcgYAAAByBwAAANoLX19z\nZXRpdGVtX18KAAAAcwAAAAB6EF9WZWMuX19zZXRpdGVtX19jAQAAAAAAAAABAAAAAgAAAEMAAABz\nCAAAAGQCAHwAABRTKQNO6QEAAADp/////3IGAAAAKQFyCQAAAHIGAAAAcgYAAAByBwAAANoHX19u\nZWdfXwsAAABzAAAAAHoMX1ZlYy5fX25lZ19fYwIAAAAAAAAAAgAAAAUAAAADAAAAcywAAAB0AAB8\n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\nABmIAAAZZAAAawMAcgYAfAEAkQIAcQYAUykBcgEAAAByBgAAACkCchEAAADaAXIpAtoBY9oHcm93\nbGlzdHIGAAAAcgcAAAByGAAAACcAAABzAgAAAAkAeh1fR0YyX3JhbmsuPGxvY2Fscz4uPGxpc3Rj\nb21wPnIOAAAAKQVyHwAAANoFcmFuZ2VyKQAAAHIDAAAA2gZyZW1vdmUpBnIuAAAAWglyb3dzX2xl\nZnRyLAAAAFoRcm93c193aXRoX25vbnplcm9aBXBpdm90Wglyb3dfaW5kZXhyBgAAACkCci0AAABy\nLgAAAHIHAAAA2glfR0YyX3JhbmsjAAAAcxYAAAAAARgBBgEUARwBDAEKAQ0BCgEXASEBcjEAAABj\nAQAAAAAAAAAEAAAABQAAAEMAAABzdAAAAGQBAGQCAIQAAHwAAESDAQB9AQB4WgB8AABEXVIAfQIA\neEkAfAIAagAAagEAgwAARF04AH0DAHwDAGQDAGsDAHIwAHQCAHwDAHQDAGoEAIMCAHJeAHQFAHwB\nAIMBAFN0BgB8AQCDAQBTcTAAV3EaAFdkAwBTKQROYwEAAAAAAAAAAgAAAAUAAABTAAAAcyUAAABn\nAAB8AABdGwB9AQB0AAB8AQBqAQB8AQBqAgCDAgCRAgBxBgBTcgYAAAApA3ICAAAAcgMAAAByBAAA\nACkCchEAAAByHgAAAHIGAAAAcgYAAAByBwAAAHIYAAAAMQAAAHMCAAAACQB6GV9yYW5rLjxsb2Nh\nbHM+LjxsaXN0Y29tcD5yAQAAACkHcgQAAADaBnZhbHVlc3IZAAAA2gNHRjJaA09uZXIxAAAAcisA\nAAApBHIqAAAAWgJMY3IJAAAAchIAAAByBgAAAHIGAAAAcgcAAADaBV9yYW5rMAAAAHMQAAAAAAET\nAQ0BFgEMARIBCgESAXI0AAAAYwEAAAAAAAAAAQAAAAQAAABDAAAAczQAAAB0AAB8AAB0AQB0AgBm\nAgCDAgBzGwB0AwCCAQB0BAAEagUAZAEANwJfBQB0BgB8AACDAQBTKQJhcAIAAEZpbmRzIHRoZSBy\nYW5rIG9mIGEgbGlzdCBvciBzZXQgb2YgdmVjdG9ycy4KCiAgICBBcmdzOgogICAgICAgIEw6IEEg\nbGlzdCBvciBzZXQgb2YgdmVjdG9ycy4KCiAgICBSZXR1cm5zOgogICAgICAgIHg6IEEgbm9ubmVn\nYXRpdmUgaW50ZWdlci4gIFRoZSByYW5rIG9mIEwuCgogICAgUmFpc2VzOgogICAgICAgIEFzc2Vy\ndGlvbkVycm9yOiBBbiBlcnJvciBvY2N1cnMgd2hlbiBMIGlzIG5vdCBhIGxpc3Qgb3Igc2V0LgoK\nICAgIEV4YW1wbGU6CiAgICA+Pj4gZnJvbSB2ZWMgaW1wb3J0IFZlYwogICAgPj4+IGEwID0gVmVj\nKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAxfSkKICAgID4+PiBhMSA9IFZlYyh7J2EnLCAn\nYicsICdjJywgJ2QnfSwgeydiJzogMX0pCiAgICA+Pj4gYTIgPSBWZWMoeydhJywgJ2InLCAnYycs\nICdkJ30sIHsnYyc6IDF9KQogICAgPj4+IGEzID0gVmVjKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7\nJ2EnOiAxLCAnYyc6IDN9KQogICAgPj4+IHJhbmsoW2EwLCBhMSwgYTJdKQogICAgMwogICAgPj4+\nIHJhbmsoe2EwLCBhMiwgYTN9KQogICAgMgogICAgPj4+IHJhbmsoe2EwLCBhMSwgYTN9KQogICAg\nMwogICAgPj4+IHJhbmsoW2EwLCBhMSwgYTIsIGEzXSkKICAgIDMKICAgIHIOAAAAKQdyGQAAANoE\nbGlzdHIfAAAA2g5Bc3NlcnRpb25FcnJvctoEcmFua9oJX19jYWxsc19fcjQAAAApAXIqAAAAcgYA\nAAByBgAAAHIHAAAAcjcAAAA6AAAAcwYAAAAAGxsBDwFyNwAAAGMBAAAAAAAAAAEAAAAEAAAAQwAA\nAHNAAAAAdAAAfAAAdAEAdAIAZgIAgwIAcxsAdAMAggEAdAQABGoFAGQBADcCXwUAdAYAfAAAgwEA\ndAcAfAAAgwEAawIAUykCYe0CAABEZXRlcm1pbmVzIGlmIGEgbGlzdCBvciBzZXQgb2YgdmVjdG9y\ncyBhcmUgbGluZWFybHkgaW5kZXBlbmRlbnQuCgogICAgQXJnczoKICAgICAgICBMOiBBIGxpc3Qg\nb3Igc2V0IG9mIHZlY3RvcnMuCgogICAgUmV0dXJuczoKICAgICAgICB4OiBBIGJvb2xlYW4uICBU\ncnVlIGlmIHRoZSB2ZWN0b3JzIGluIEwgYXJlIGxpbmVhcmx5IGluZGVwZW5kZW50LiAgRmFsc2UK\nICAgICAgICBvdGhlcndpc2UuCgogICAgUmFpc2VzOgogICAgICAgIEFzc2VydGlvbkVycm9yOiBB\nbiBlcnJvciBvY2N1cnMgd2hlbiBMIGlzIG5vdCBhIGxpc3Qgb3Igc2V0LgoKICAgIEV4YW1wbGU6\nCiAgICA+Pj4gZnJvbSB2ZWMgaW1wb3J0IFZlYwogICAgPj4+IGEwID0gVmVjKHsnYScsICdiJywg\nJ2MnLCAnZCd9LCB7J2EnOiAxfSkKICAgID4+PiBhMSA9IFZlYyh7J2EnLCAnYicsICdjJywgJ2Qn\nfSwgeydiJzogMX0pCiAgICA+Pj4gYTIgPSBWZWMoeydhJywgJ2InLCAnYycsICdkJ30sIHsnYyc6\nIDF9KQogICAgPj4+IGEzID0gVmVjKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAxLCAnYyc6\nIDN9KQogICAgPj4+IGlzX2luZGVwZW5kZW50KFthMCwgYTEsIGEyXSkKICAgIFRydWUKICAgID4+\nPiBpc19pbmRlcGVuZGVudCh7YTAsIGEyLCBhM30pCiAgICBGYWxzZQogICAgPj4+IGlzX2luZGVw\nZW5kZW50KHthMCwgYTEsIGEzfSkKICAgIFRydWUKICAgID4+PiBpc19pbmRlcGVuZGVudChbYTAs\nIGExLCBhMiwgYTNdKQogICAgRmFsc2UKICAgIHIOAAAAKQhyGQAAAHI1AAAAch8AAAByNgAAANoO\naXNfaW5kZXBlbmRlbnRyOAAAAHI0AAAAcikAAAApAXIqAAAAcgYAAAByBgAAAHIHAAAAcjkAAABZ\nAAAAcwYAAAAAHBsBDwFyOQAAAFoMaW5zdHJ1bWVudGVkKQlyMwAAAHICAAAAcisAAAByMQAAAHI0\nAAAAcjcAAAByOQAAAHI4AAAA2gtfX3ZlcnNpb25fX3IGAAAAcgYAAAByBgAAAHIHAAAA2gg8bW9k\ndWxlPgIAAABzFAAAAAwCExcPCAwNDAoMHwwgCQEJAQkB\n'
offset = 12
elif magic == b'\x17\r\r\n': # Python 3.5
pycData = b'Fw0NCmOrjFjtDQAA4wAAAAAAAAAAAAAAAAMAAABAAAAAc4YAAABkAABkAQBsAABaAABHZAIAZAMA\nhAAAZAMAgwIAWgEAZAQAZAUAZAYAhAEAWgIAZAcAZAgAhAAAWgMAZAkAZAoAhAAAWgQAZAsAZAwA\nhAAAWgUAZA0AZA4AhAAAWgYAZAAAZQUAXwcAZA8AZQUAXwgAZAAAZQYAXwcAZA8AZQYAXwgAZAEA\nUykQ6QAAAABOYwAAAAAAAAAAAAAAAAQAAABAAAAAc3kAAABlAABaAQBkAABaAgBlAwCDAABpAABk\nAQBkAgCEAgBaBABkAwBkBACEAABaBQBkBQBkBgCEAABaBgBkBwBkCACEAABaBwBkCQBkCgCEAABa\nCABkCwBkDACEAABaCQBkDQBkDgCEAABaCgBkDwBkEACEAABaCwBkEQBTKRLaBF9WZWNjAwAAAAAA\nAAADAAAAAgAAAEMAAABzFgAAAHwBAHwAAF8AAHwCAHwAAF8BAGQAAFMpAU4pAtoBRNoBZikD2gRz\nZWxmWgZsYWJlbHNaCGZ1bmN0aW9uqQByBgAAAPokLi4vcmVzb3VyY2VzL3ByaXZhdGUvaW5kZXBl\nbmRlbmNlLnB52ghfX2luaXRfXwUAAABzBAAAAAABCQF6DV9WZWMuX19pbml0X19jAgAAAAAAAAAC\nAAAAAgAAAEMAAABzHgAAAHwBAHwAAGoAAGsGAHIaAHwAAGoAAHwBABlTZAEAUykCTnIBAAAAKQFy\nBAAAACkC2gF22gFrcgYAAAByBgAAAHIHAAAA2gtfX2dldGl0ZW1fXwkAAABzAAAAAHoQX1ZlYy5f\nX2dldGl0ZW1fX2MDAAAAAAAAAAMAAAAEAAAAQwAAAHMVAAAAdAAABHwAAGoBAHwBADx9AgBkAABT\nKQFOKQJaCF9zZXRpdGVtcgQAAAApA3IJAAAAcgoAAADaA3ZhbHIGAAAAcgYAAAByBwAAANoLX19z\nZXRpdGVtX18KAAAAcwAAAAB6EF9WZWMuX19zZXRpdGVtX19jAQAAAAAAAAABAAAAAgAAAEMAAABz\nCAAAAGQCAHwAABRTKQNO6QEAAADp/////3IGAAAAKQFyCQAAAHIGAAAAcgYAAAByBwAAANoHX19u\nZWdfXwsAAABzAAAAAHoMX1ZlYy5fX25lZ19fYwIAAAAAAAAAAgAAAAUAAAADAAAAcywAAAB0AAB8\nAABqAQCHAABmAQBkAQBkAgCGAAB8AABqAgBqAwCDAABEgwEAgwIAUykDTmMBAAAAAAAAAAMAAAAE\nAAAAEwAAAHMjAAAAaQAAfAAAXRkAXAIAfQEAfQIAiAAAfAIAFHwBAJMCAHEGAFNyBgAAAHIGAAAA\nKQPaAi4wcgoAAADaAXgpAdoFYWxwaGFyBgAAAHIHAAAA+go8ZGljdGNvbXA+DAAAAHMCAAAACQB6\nIV9WZWMuX19ybXVsX18uPGxvY2Fscz4uPGRpY3Rjb21wPikEcgIAAAByAwAAAHIEAAAA2gVpdGVt\ncykCcgkAAAByEwAAAHIGAAAAKQFyEwAAAHIHAAAA2ghfX3JtdWxfXwwAAABzAAAAAHoNX1ZlYy5f\nX3JtdWxfX2MCAAAAAAAAAAIAAAAEAAAAAwAAAHNAAAAAdAAAiAAAdAEAgwIAcjgAdAIAhwAAhwEA\nZgIAZAEAZAIAhgAAiAEAagMAagQAgwAARIMBAIMBAFN0BQBTZAAAUykDTmMBAAAAAAAAAAIAAAAF\nAAAAEwAAAHMiAAAAZwAAfAAAXRgAfQEAiAEAfAEAGYgAAHwBABkUkQIAcQYAU3IGAAAAcgYAAAAp\nAnIRAAAAcgoAAAApAtoFb3RoZXJyBQAAAHIGAAAAcgcAAAD6CjxsaXN0Y29tcD4RAAAAcwIAAAAJ\nAHogX1ZlYy5fX211bF9fLjxsb2NhbHM+LjxsaXN0Y29tcD4pBtoKaXNpbnN0YW5jZXICAAAA2gNz\ndW1yBAAAANoEa2V5c9oOTm90SW1wbGVtZW50ZWQpAnIFAAAAchcAAAByBgAAACkCchcAAAByBQAA\nAHIHAAAA2gdfX211bF9fDgAAAHMGAAAAAAIPASkCegxfVmVjLl9fbXVsX19jAgAAAAAAAAACAAAA\nBQAAAAMAAABzRwAAAHQAAIgAAGoBAIcAAIcBAGYCAGQBAGQCAIYAAHQCAIgAAGoDAGoEAIMAAIMB\nAGoFAIgBAGoDAGoEAIMAAIMBAESDAQCDAgBTKQNOYwEAAAAAAAAAAgAAAAUAAAATAAAAcyUAAABp\nAAB8AABdGwB9AQCIAAB8AQAZiAEAfAEAGRd8AQCTAgBxBgBTcgYAAAByBgAAACkCchEAAAByCgAA\nACkC2gF1cgkAAAByBgAAAHIHAAAAchQAAAAVAAAAcwIAAAAJAHogX1ZlYy5fX2FkZF9fLjxsb2Nh\nbHM+LjxkaWN0Y29tcD4pBnICAAAAcgMAAADaA3NldHIEAAAAchsAAADaBXVuaW9uKQJyHgAAAHIJ\nAAAAcgYAAAApAnIeAAAAcgkAAAByBwAAANoHX19hZGRfXxUAAABzAAAAAHoMX1ZlYy5fX2FkZF9f\nYwIAAAAAAAAAAgAAAAIAAABDAAAAcwkAAAB8AAB8AQALF1MpAXo0UmV0dXJucyBhIHZlY3RvciB3\naGljaCBpcyB0aGUgZGlmZmVyZW5jZSBvZiBhIGFuZCBiLnIGAAAAKQLaAWHaAWJyBgAAAHIGAAAA\ncgcAAADaB19fc3ViX18XAAAAcwIAAAAAAnoMX1ZlYy5fX3N1Yl9fTikM2ghfX25hbWVfX9oKX19t\nb2R1bGVfX9oMX19xdWFsbmFtZV9fch8AAAByCAAAAHILAAAAcg0AAAByEAAAAHIWAAAAch0AAABy\nIQAAAHIkAAAAcgYAAAByBgAAAHIGAAAAcgcAAAByAgAAAAQAAABzEAAAAAwBFQQMAQwBDAEMAgwH\nDAJyAgAAAGebK6GGm4QGPWMCAAAAAAAAAAUAAAAGAAAAQwAAAHNpAAAAZwAAfQIAeFYAfAAARF1O\nAH0DAHgoAHwCAERdIAB9BAB8AwB8AwB8BAAUfAQAfAQAFBt8BAAUGH0DAHEaAFd8AwB8AwAUfAEA\nawQAcg0AfAIAagAAfAMAgwEAAXENAFd0AQB8AgCDAQBTKQFOKQLaBmFwcGVuZNoDbGVuKQXaAUxa\nA2Vwc1oJdnN0YXJsaXN0cgkAAABaBXZzdGFycgYAAAByBgAAAHIHAAAA2gdfUl9yYW5rGwAAAHMO\nAAAAAAEGAQ0BDQEeARAAEQFyKwAAAGMBAAAAAAAAAAYAAAAFAAAAAwAAAHO0AAAAdAAAdAEAdAIA\niAEAgwEAgwEAgwEAfQEAZAEAfQIAeI8AiAEAZAEAGWoDAERdgACJAACHAACHAQBmAgBkAgBkAwCG\nAAB8AQBEgwEAfQMAfAMAZwAAawMAciwAfAMAZAEAGX0EAHwBAGoEAHwEAIMBAAF8AgBkBAA3fQIA\neC4AfAMAZAQAZAAAhQIAGURdHAB9BQCIAQB8BQAZiAEAfAQAGReIAQB8BQA8cYwAV3EsAFd8AgBT\nKQVOcgEAAABjAQAAAAAAAAACAAAABAAAABMAAABzKgAAAGcAAHwAAF0gAH0BAIgBAHwBABmIAAAZ\nZAAAawMAcgYAfAEAkQIAcQYAUykBcgEAAAByBgAAACkCchEAAADaAXIpAtoBY9oHcm93bGlzdHIG\nAAAAcgcAAAByGAAAACcAAABzAgAAAAkAeh1fR0YyX3JhbmsuPGxvY2Fscz4uPGxpc3Rjb21wPnIO\nAAAAKQVyHwAAANoFcmFuZ2VyKQAAAHIDAAAA2gZyZW1vdmUpBnIuAAAAWglyb3dzX2xlZnRyLAAA\nAFoRcm93c193aXRoX25vbnplcm9aBXBpdm90Wglyb3dfaW5kZXhyBgAAACkCci0AAAByLgAAAHIH\nAAAA2glfR0YyX3JhbmsjAAAAcxYAAAAAARgBBgEUARwBDAEKAQ0BCgEXAR4BcjEAAABjAQAAAAAA\nAAAEAAAABQAAAEMAAABzdAAAAGQBAGQCAIQAAHwAAESDAQB9AQB4WgB8AABEXVIAfQIAeEkAfAIA\nagAAagEAgwAARF04AH0DAHwDAGQDAGsDAHIwAHQCAHwDAHQDAGoEAIMCAHJeAHQFAHwBAIMBAFN0\nBgB8AQCDAQBTcTAAV3EaAFdkAwBTKQROYwEAAAAAAAAAAgAAAAUAAABTAAAAcyUAAABnAAB8AABd\nGwB9AQB0AAB8AQBqAQB8AQBqAgCDAgCRAgBxBgBTcgYAAAApA3ICAAAAcgMAAAByBAAAACkCchEA\nAAByHgAAAHIGAAAAcgYAAAByBwAAAHIYAAAAMQAAAHMCAAAACQB6GV9yYW5rLjxsb2NhbHM+Ljxs\naXN0Y29tcD5yAQAAACkHcgQAAADaBnZhbHVlc3IZAAAA2gNHRjJaA09uZXIxAAAAcisAAAApBHIq\nAAAAWgJMY3IJAAAAchIAAAByBgAAAHIGAAAAcgcAAADaBV9yYW5rMAAAAHMQAAAAAAETAQ0BFgEM\nARIBCgESAXI0AAAAYwEAAAAAAAAAAQAAAAQAAABDAAAAczQAAAB0AAB8AAB0AQB0AgBmAgCDAgBz\nGwB0AwCCAQB0BAAEagUAZAEANwJfBQB0BgB8AACDAQBTKQJhcAIAAEZpbmRzIHRoZSByYW5rIG9m\nIGEgbGlzdCBvciBzZXQgb2YgdmVjdG9ycy4KCiAgICBBcmdzOgogICAgICAgIEw6IEEgbGlzdCBv\nciBzZXQgb2YgdmVjdG9ycy4KCiAgICBSZXR1cm5zOgogICAgICAgIHg6IEEgbm9ubmVnYXRpdmUg\naW50ZWdlci4gIFRoZSByYW5rIG9mIEwuCgogICAgUmFpc2VzOgogICAgICAgIEFzc2VydGlvbkVy\ncm9yOiBBbiBlcnJvciBvY2N1cnMgd2hlbiBMIGlzIG5vdCBhIGxpc3Qgb3Igc2V0LgoKICAgIEV4\nYW1wbGU6CiAgICA+Pj4gZnJvbSB2ZWMgaW1wb3J0IFZlYwogICAgPj4+IGEwID0gVmVjKHsnYScs\nICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAxfSkKICAgID4+PiBhMSA9IFZlYyh7J2EnLCAnYicsICdj\nJywgJ2QnfSwgeydiJzogMX0pCiAgICA+Pj4gYTIgPSBWZWMoeydhJywgJ2InLCAnYycsICdkJ30s\nIHsnYyc6IDF9KQogICAgPj4+IGEzID0gVmVjKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAx\nLCAnYyc6IDN9KQogICAgPj4+IHJhbmsoW2EwLCBhMSwgYTJdKQogICAgMwogICAgPj4+IHJhbmso\ne2EwLCBhMiwgYTN9KQogICAgMgogICAgPj4+IHJhbmsoe2EwLCBhMSwgYTN9KQogICAgMwogICAg\nPj4+IHJhbmsoW2EwLCBhMSwgYTIsIGEzXSkKICAgIDMKICAgIHIOAAAAKQdyGQAAANoEbGlzdHIf\nAAAA2g5Bc3NlcnRpb25FcnJvctoEcmFua9oJX19jYWxsc19fcjQAAAApAXIqAAAAcgYAAAByBgAA\nAHIHAAAAcjcAAAA6AAAAcwYAAAAAGxsBDwFyNwAAAGMBAAAAAAAAAAEAAAAEAAAAQwAAAHNAAAAA\ndAAAfAAAdAEAdAIAZgIAgwIAcxsAdAMAggEAdAQABGoFAGQBADcCXwUAdAYAfAAAgwEAdAcAfAAA\ngwEAawIAUykCYe0CAABEZXRlcm1pbmVzIGlmIGEgbGlzdCBvciBzZXQgb2YgdmVjdG9ycyBhcmUg\nbGluZWFybHkgaW5kZXBlbmRlbnQuCgogICAgQXJnczoKICAgICAgICBMOiBBIGxpc3Qgb3Igc2V0\nIG9mIHZlY3RvcnMuCgogICAgUmV0dXJuczoKICAgICAgICB4OiBBIGJvb2xlYW4uICBUcnVlIGlm\nIHRoZSB2ZWN0b3JzIGluIEwgYXJlIGxpbmVhcmx5IGluZGVwZW5kZW50LiAgRmFsc2UKICAgICAg\nICBvdGhlcndpc2UuCgogICAgUmFpc2VzOgogICAgICAgIEFzc2VydGlvbkVycm9yOiBBbiBlcnJv\nciBvY2N1cnMgd2hlbiBMIGlzIG5vdCBhIGxpc3Qgb3Igc2V0LgoKICAgIEV4YW1wbGU6CiAgICA+\nPj4gZnJvbSB2ZWMgaW1wb3J0IFZlYwogICAgPj4+IGEwID0gVmVjKHsnYScsICdiJywgJ2MnLCAn\nZCd9LCB7J2EnOiAxfSkKICAgID4+PiBhMSA9IFZlYyh7J2EnLCAnYicsICdjJywgJ2QnfSwgeydi\nJzogMX0pCiAgICA+Pj4gYTIgPSBWZWMoeydhJywgJ2InLCAnYycsICdkJ30sIHsnYyc6IDF9KQog\nICAgPj4+IGEzID0gVmVjKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAxLCAnYyc6IDN9KQog\nICAgPj4+IGlzX2luZGVwZW5kZW50KFthMCwgYTEsIGEyXSkKICAgIFRydWUKICAgID4+PiBpc19p\nbmRlcGVuZGVudCh7YTAsIGEyLCBhM30pCiAgICBGYWxzZQogICAgPj4+IGlzX2luZGVwZW5kZW50\nKHthMCwgYTEsIGEzfSkKICAgIFRydWUKICAgID4+PiBpc19pbmRlcGVuZGVudChbYTAsIGExLCBh\nMiwgYTNdKQogICAgRmFsc2UKICAgIHIOAAAAKQhyGQAAAHI1AAAAch8AAAByNgAAANoOaXNfaW5k\nZXBlbmRlbnRyOAAAAHI0AAAAcikAAAApAXIqAAAAcgYAAAByBgAAAHIHAAAAcjkAAABZAAAAcwYA\nAAAAHBsBDwFyOQAAAFoMaW5zdHJ1bWVudGVkKQlyMwAAAHICAAAAcisAAAByMQAAAHI0AAAAcjcA\nAAByOQAAAHI4AAAA2gtfX3ZlcnNpb25fX3IGAAAAcgYAAAByBgAAAHIHAAAA2gg8bW9kdWxlPgIA\nAABzFAAAAAwCExcPCAwNDAoMHwwgCQEJAQkB\n'
offset = 12
elif magic == b'3\r\r\n': # Python 3.6
pycData = b'Mw0NCmOrjFjtDQAA4wAAAAAAAAAAAAAAAAMAAABAAAAAc1wAAABkAGQBbABaAEcAZAJkA4QAZAOD\nAloBZBBkBWQGhAFaAmQHZAiEAFoDZAlkCoQAWgRkC2QMhABaBWQNZA6EAFoGZABlBV8HZA9lBV8I\nZABlBl8HZA9lBl8IZAFTACkR6QAAAABOYwAAAAAAAAAAAAAAAAMAAABAAAAAc1QAAABlAFoBZABa\nAmUDgwBpAGYCZAFkAoQBWgRkA2QEhABaBWQFZAaEAFoGZAdkCIQAWgdkCWQKhABaCGQLZAyEAFoJ\nZA1kDoQAWgpkD2QQhABaC2QRUwApEtoEX1ZlY2MDAAAAAAAAAAMAAAACAAAAQwAAAHMQAAAAfAF8\nAF8AfAJ8AF8BZABTACkBTikC2gFE2gFmKQPaBHNlbGZaBmxhYmVsc1oIZnVuY3Rpb26pAHIGAAAA\n+iQuLi9yZXNvdXJjZXMvcHJpdmF0ZS9pbmRlcGVuZGVuY2UucHnaCF9faW5pdF9fBQAAAHMEAAAA\nAAEGAXoNX1ZlYy5fX2luaXRfX2MCAAAAAAAAAAIAAAACAAAAQwAAAHMYAAAAfAF8AGoAawZyFHwA\nagB8ARkAUwBkAVMAKQJOcgEAAAApAXIEAAAAKQLaAXbaAWtyBgAAAHIGAAAAcgcAAADaC19fZ2V0\naXRlbV9fCQAAAHMAAAAAehBfVmVjLl9fZ2V0aXRlbV9fYwMAAAAAAAAAAwAAAAQAAABDAAAAcxIA\nAAB0AAQAfABqAXwBPAB9AmQAUwApAU4pAloIX3NldGl0ZW1yBAAAACkDcgkAAAByCgAAANoDdmFs\ncgYAAAByBgAAAHIHAAAA2gtfX3NldGl0ZW1fXwoAAABzAAAAAHoQX1ZlYy5fX3NldGl0ZW1fX2MB\nAAAAAAAAAAEAAAACAAAAQwAAAHMIAAAAZAJ8ABQAUwApA07pAQAAAOn/////cgYAAAApAXIJAAAA\ncgYAAAByBgAAAHIHAAAA2gdfX25lZ19fCwAAAHMAAAAAegxfVmVjLl9fbmVnX19jAgAAAAAAAAAC\nAAAABQAAAAMAAABzIAAAAHQAfABqAYcAZgFkAWQChAh8AGoCagODAEQAgwGDAlMAKQNOYwEAAAAA\nAAAAAwAAAAQAAAATAAAAcxoAAABpAHwAXRJcAn0BfQKIAHwCFAB8AZMCcQRTAHIGAAAAcgYAAAAp\n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\nX0dGMl9yYW5rIwAAAHMWAAAAAAEQAQQBEAEUAQgBCAEKAQgBEgEcAXIyAAAAYwEAAAAAAAAABAAA\nAAUAAABDAAAAc1gAAABkAWQChAB8AEQAgwF9AXhEfABEAF08fQJ4NnwCagBqAYMARABdKH0DfANk\nA2sDciR0AnwDdANqBIMCckR0BXwBgwFTAHQGfAGDAVMAcSRXAHEUVwBkA1MAKQROYwEAAAAAAAAA\nAgAAAAUAAABTAAAAcxoAAABnAHwAXRJ9AXQAfAFqAXwBagKDApECcQRTAHIGAAAAKQNyAgAAAHID\nAAAAcgQAAAApAnIRAAAAch4AAAByBgAAAHIGAAAAcgcAAAByGAAAADEAAABzAgAAAAYAehlfcmFu\nay48bG9jYWxzPi48bGlzdGNvbXA+cgEAAAApB3IEAAAA2gZ2YWx1ZXNyGQAAANoDR0YyWgNPbmVy\nMgAAAHIsAAAAKQRyKwAAAFoCTGNyCQAAAHISAAAAcgYAAAByBgAAAHIHAAAA2gVfcmFuazAAAABz\nEAAAAAABDgEKARABCAEMAQgBEAFyNQAAAGMBAAAAAAAAAAEAAAAEAAAAQwAAAHMoAAAAdAB8AHQB\ndAJmAoMCcxJ0A4IBdAQEAGoFZAE3AAIAXwV0BnwAgwFTACkCYXACAABGaW5kcyB0aGUgcmFuayBv\nZiBhIGxpc3Qgb3Igc2V0IG9mIHZlY3RvcnMuCgogICAgQXJnczoKICAgICAgICBMOiBBIGxpc3Qg\nb3Igc2V0IG9mIHZlY3RvcnMuCgogICAgUmV0dXJuczoKICAgICAgICB4OiBBIG5vbm5lZ2F0aXZl\nIGludGVnZXIuICBUaGUgcmFuayBvZiBMLgoKICAgIFJhaXNlczoKICAgICAgICBBc3NlcnRpb25F\ncnJvcjogQW4gZXJyb3Igb2NjdXJzIHdoZW4gTCBpcyBub3QgYSBsaXN0IG9yIHNldC4KCiAgICBF\neGFtcGxlOgogICAgPj4+IGZyb20gdmVjIGltcG9ydCBWZWMKICAgID4+PiBhMCA9IFZlYyh7J2En\nLCAnYicsICdjJywgJ2QnfSwgeydhJzogMX0pCiAgICA+Pj4gYTEgPSBWZWMoeydhJywgJ2InLCAn\nYycsICdkJ30sIHsnYic6IDF9KQogICAgPj4+IGEyID0gVmVjKHsnYScsICdiJywgJ2MnLCAnZCd9\nLCB7J2MnOiAxfSkKICAgID4+PiBhMyA9IFZlYyh7J2EnLCAnYicsICdjJywgJ2QnfSwgeydhJzog\nMSwgJ2MnOiAzfSkKICAgID4+PiByYW5rKFthMCwgYTEsIGEyXSkKICAgIDMKICAgID4+PiByYW5r\nKHthMCwgYTIsIGEzfSkKICAgIDIKICAgID4+PiByYW5rKHthMCwgYTEsIGEzfSkKICAgIDMKICAg\nID4+PiByYW5rKFthMCwgYTEsIGEyLCBhM10pCiAgICAzCiAgICByDgAAACkHchkAAADaBGxpc3Ry\nHwAAANoOQXNzZXJ0aW9uRXJyb3LaBHJhbmvaCV9fY2FsbHNfX3I1AAAAKQFyKwAAAHIGAAAAcgYA\nAAByBwAAAHI4AAAAOgAAAHMGAAAAABsSAQ4BcjgAAABjAQAAAAAAAAABAAAABAAAAEMAAABzMAAA\nAHQAfAB0AXQCZgKDAnMSdAOCAXQEBABqBWQBNwACAF8FdAZ8AIMBdAd8AIMBawJTACkCYe0CAABE\nZXRlcm1pbmVzIGlmIGEgbGlzdCBvciBzZXQgb2YgdmVjdG9ycyBhcmUgbGluZWFybHkgaW5kZXBl\nbmRlbnQuCgogICAgQXJnczoKICAgICAgICBMOiBBIGxpc3Qgb3Igc2V0IG9mIHZlY3RvcnMuCgog\nICAgUmV0dXJuczoKICAgICAgICB4OiBBIGJvb2xlYW4uICBUcnVlIGlmIHRoZSB2ZWN0b3JzIGlu\nIEwgYXJlIGxpbmVhcmx5IGluZGVwZW5kZW50LiAgRmFsc2UKICAgICAgICBvdGhlcndpc2UuCgog\nICAgUmFpc2VzOgogICAgICAgIEFzc2VydGlvbkVycm9yOiBBbiBlcnJvciBvY2N1cnMgd2hlbiBM\nIGlzIG5vdCBhIGxpc3Qgb3Igc2V0LgoKICAgIEV4YW1wbGU6CiAgICA+Pj4gZnJvbSB2ZWMgaW1w\nb3J0IFZlYwogICAgPj4+IGEwID0gVmVjKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAxfSkK\nICAgID4+PiBhMSA9IFZlYyh7J2EnLCAnYicsICdjJywgJ2QnfSwgeydiJzogMX0pCiAgICA+Pj4g\nYTIgPSBWZWMoeydhJywgJ2InLCAnYycsICdkJ30sIHsnYyc6IDF9KQogICAgPj4+IGEzID0gVmVj\nKHsnYScsICdiJywgJ2MnLCAnZCd9LCB7J2EnOiAxLCAnYyc6IDN9KQogICAgPj4+IGlzX2luZGVw\nZW5kZW50KFthMCwgYTEsIGEyXSkKICAgIFRydWUKICAgID4+PiBpc19pbmRlcGVuZGVudCh7YTAs\nIGEyLCBhM30pCiAgICBGYWxzZQogICAgPj4+IGlzX2luZGVwZW5kZW50KHthMCwgYTEsIGEzfSkK\nICAgIFRydWUKICAgID4+PiBpc19pbmRlcGVuZGVudChbYTAsIGExLCBhMiwgYTNdKQogICAgRmFs\nc2UKICAgIHIOAAAAKQhyGQAAAHI2AAAAch8AAAByNwAAANoOaXNfaW5kZXBlbmRlbnRyOQAAAHI1\nAAAAcioAAAApAXIrAAAAcgYAAAByBgAAAHIHAAAAcjoAAABZAAAAcwYAAAAAHBIBDgFyOgAAAFoM\naW5zdHJ1bWVudGVkKQFyKAAAACkJcjQAAAByAgAAAHIsAAAAcjIAAAByNQAAAHI4AAAAcjoAAABy\nOQAAANoLX192ZXJzaW9uX19yBgAAAHIGAAAAcgYAAAByBwAAANoIPG1vZHVsZT4CAAAAcxQAAAAI\nAg4XCggIDQgKCB8IIAYBBgEGAQ==\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())