damaged ticket

150

Я ненадолго оставил свой компьютер без присмотра и не заблокировал его. На рабочем столе у меня был билет на самолёт, кто-то повредил его и теперь у меня лишь мелкие части билета, как-будто он прошёл через "шредер". Помогите мне восстановить билет, у меня самолёт через пару часов!

I left my computer unattended for a while and did not block it. I had a plane ticket on the desktop, someone had damaged it and now I have only small parts of the ticket, as if it had passed through a "shredder". Help me recover the ticket, I have a plane in a couple of hours!

file - Mega

file - Google Drive

解凍すると大量のpngファイルができます。ファイル名は0~599のMD5ハッシュ値のようです。0~599を順番に左から右に画像連結するPythonプログラムを書きます。
import hashlib
from PIL import Image

def get_concat_h(im1, im2):
    dst = Image.new('RGB', (im1.width + im2.width, im1.height))
    dst.paste(im1, (0, 0))
    dst.paste(im2, (im1.width, 0))
    return dst
    
h = hashlib.md5(str(0)).hexdigest()
im1 = Image.open('parts/' + h + '.png')
for i in range(1, 600):
h = hashlib.md5(str(i)).hexdigest()
im2 = Image.open('parts/' + h + '.png')
im1 = get_concat_h(im1, im2)
im1.save('aaa.png')
実行すると下図の画像ができます。

aaa

フラグは、
Aero{2c5afcd62a5851f744fd6adb60ae2345}
です。