Alexander Sorge
Alexander Sorge (born 21 April 1993) is a German footballer who plays as a centre-back for Türkgücü München.[1]
Personal information | |||
---|---|---|---|
Full name | Alexander Sorge | ||
Date of birth | 21 April 1993 | ||
Place of birth | Leipzig, Germany | ||
Height | 1.92 m (6 ft 4 in) | ||
Playing position(s) | Centre-back | ||
Club information | |||
Current team | Türkgücü München | ||
Number | 13 | ||
Youth career | |||
–2005 | Lipsia Eutritzsch | ||
2005–2009 | Sachsen Leipzig | ||
2009–2012 | RB Leipzig | ||
Senior career* | |||
Years | Team | Apps | (Gls) |
2012–2016 | RB Leipzig II | 112 | (11) |
2016–2018 | FSV Zwickau | 7 | (0) |
2018–2019 | FSV Zwickau | 9 | (0) |
2019– | Türkgücü München | 3 | (0) |
* Senior club appearances and goals counted for the domestic league only and correct as of 21:51, 28 July 2019 (UTC) |
Career
In summer 2018, FSV Zwickau decided not to renew Sorge's contract after he suffered two severe, career-threatening knee injuries. In August, however, after his recovery he received a new season-long deal.[2]
gollark: Anyway, going through #12 in order:> `import math, collections, random, gc, hashlib, sys, hashlib, smtplib, importlib, os.path, itertools, hashlib`> `import hashlib`We need some libraries to work with. Hashlib is very important, so to be sure we have hashlib we make sure to keep importing it.> `ℤ = int`> `ℝ = float`> `Row = "__iter__"`Create some aliases for int and float to make it mildly more obfuscated. `Row` is not used directly in anywhere significant.> `lookup = [...]`These are a bunch of hashes used to look up globals/objects. Some of them are not actually used. There is deliberately a comma missing, because of weird python string concattey things.```pythondef aes256(x, X): import hashlib A = bytearray() for Α, Ҙ in zip(x, hashlib.shake_128(X).digest(x.__len__())): A.append(Α ^ Ҙ) import zlib, marshal, hashlib exec(marshal.loads(zlib.decompress(A)))```Obviously, this is not actual AES-256. It is abusing SHAKE-128's variable length digests to implement what is almost certainly an awful stream cipher. The arbitrary-length hash of our key, X, is XORed with the data. Finally, the result of this is decompressed, loaded (as a marshalled function, which is extremely unportable bytecode I believe), and executed. This is only used to load one piece of obfuscated code, which I may explain later.> `class Entry(ℝ):`This is also only used once, in `typing` below. Its `__init__` function implements Rule 110 in a weird and vaguely golfy way involving some sets and bit manipulation. It inherits from float, but I don't think this does much.> `#raise SystemExit(0)`I did this while debugging the rule 110 but I thought it would be fun to leave it in.> `def typing(CONSTANT: __import__("urllib3")):`This is an obfuscated way to look up objects and load our obfuscated code.> `return getattr(Entry, CONSTANT)`I had significant performance problems, so this incorporates a cache. This was cooler™️ than dicts.
gollark: The tiebreaker algorithm is vulnerable to any attack against Boris Johnson's Twitter account.
gollark: I can't actually shut them down, as they run on arbitrary google services.
gollark: Clearly, mgollark is sabotaging me.
gollark: I submitted them but they were all wrong.
References
- "Alexander Sorge". worldfootball.net. HEIM:SPIEL. Retrieved 2 October 2016.
- "Profi statt Karriereende: Sorge erhält Vertrag in Zwickau". kicker Online (in German). 24 August 2018. Retrieved 24 August 2018.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.