from Crypto.Cipher import AES
from Crypto.Util.number import bytes_to_long
import random
import os

key = os.urandom(16)
cipher = AES.new(key, AES.MODE_ECB)

def pad(data):
    padding_len = (16 - (len(data) % 16)) % 16
    return data + bytes([padding_len]) * padding_len

def safe_ecb(plaintext,cipher):
    plaintext = pad(plaintext)
    plaintext_blocks = [plaintext[i:i+16] for i in range(0, len(plaintext), 16)]
    random.seed(bytes_to_long(key)) 
    random.shuffle(plaintext_blocks)
    plaintext = b''.join(plaintext_blocks)
    return cipher.encrypt(plaintext)

pt = open("flag.bmp", "rb").read()
ct = safe_ecb(pt, cipher)
print(ct.hex()) 

for i in range(380):
    pt = input()
    ct = safe_ecb(pt.encode(), cipher)
    print(ct.hex())

#not needed to get flag
if input() == key.hex():
    from easter_egg import easter_egg
    print(easter_egg)
