# your code goes here
def get_diff_signature(signature1, signature2):
diff=[]
map = {}
alphabet = "abcdefghijklmnopqrstuvwABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
count = 0
chain1 = ""
chain2 = ""
for e in signature1:
try:
map[e]
except:
if count >= len (alphabet):
raise Exception ("Signature out of bounds.")
map[e] = alphabet[count]
count+=1
chain1+=map[e]
for e in signature2:
try:
map[e]
except:
if count >= len (alphabet):
raise Exception ("Signature out of bounds.")
map[e] = alphabet[count]
count+=1
chain2+=map[e]
print chain1
print chain2
return null
def test_diff_signature():
s1=["file-read", "file-read", "file-read", "file-read", "dexload", "file-read", "net-open", "file-read", "leak", "file-read", "file-read", "file-read", "net-open", "net-write", "file-read", "file-write", "net-open", "net-write", "net-write", "net-write", "net-write", "dexload", "net-open", "net-write", "net-write", "file-read", "file-read", "file-read", "file-read", "dexload", "file-read", "file-read", "net-open", "net-write", "file-read", "net-open", "net-write", "net-write", "net-write", "dexload", "net-write"]
s2=["file-write", "file-write", "file-write", "file-write", "file-write", "file-write", "net-open", "net-write", "file-read", "file-write", "net-open", "net-write", "net-write", "net-write", "file-write", "net-write", "net-write"]
return get_diff_signature(s1, s2)
def main():
test_diff_signature()
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmRlZiBnZXRfZGlmZl9zaWduYXR1cmUoc2lnbmF0dXJlMSwgc2lnbmF0dXJlMik6CiAgICBkaWZmPVtdCiAgICBtYXAgPSB7fQogICAgYWxwaGFiZXQgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dndBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkiCiAgICBjb3VudCA9IDAKICAgIGNoYWluMSA9ICIiCiAgICBjaGFpbjIgPSAiIgogICAgCiAgICBmb3IgZSBpbiBzaWduYXR1cmUxOgogICAgICAgIHRyeToKICAgICAgICAgICAgbWFwW2VdCiAgICAgICAgZXhjZXB0OgogICAgICAgICAgICBpZiBjb3VudCA+PSBsZW4gKGFscGhhYmV0KToKICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbiAoIlNpZ25hdHVyZSBvdXQgb2YgYm91bmRzLiIpCiAgICAgICAgICAgIG1hcFtlXSA9IGFscGhhYmV0W2NvdW50XQogICAgICAgICAgICBjb3VudCs9MQogICAgICAgIGNoYWluMSs9bWFwW2VdCgogICAgZm9yIGUgaW4gc2lnbmF0dXJlMjoKICAgICAgICB0cnk6CiAgICAgICAgICAgIG1hcFtlXQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgaWYgY291bnQgPj0gbGVuIChhbHBoYWJldCk6CiAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24gKCJTaWduYXR1cmUgb3V0IG9mIGJvdW5kcy4iKQogICAgICAgICAgICBtYXBbZV0gPSBhbHBoYWJldFtjb3VudF0KICAgICAgICAgICAgY291bnQrPTEKICAgICAgICBjaGFpbjIrPW1hcFtlXQogICAgcHJpbnQgY2hhaW4xCiAgICBwcmludCBjaGFpbjIKCiAgICByZXR1cm4gbnVsbAoKZGVmIHRlc3RfZGlmZl9zaWduYXR1cmUoKToKICAgIAogICAgczE9WyJmaWxlLXJlYWQiLCAiZmlsZS1yZWFkIiwgImZpbGUtcmVhZCIsICJmaWxlLXJlYWQiLCAiZGV4bG9hZCIsICJmaWxlLXJlYWQiLCAibmV0LW9wZW4iLCAiZmlsZS1yZWFkIiwgImxlYWsiLCAiZmlsZS1yZWFkIiwgImZpbGUtcmVhZCIsICJmaWxlLXJlYWQiLCAibmV0LW9wZW4iLCAibmV0LXdyaXRlIiwgImZpbGUtcmVhZCIsICJmaWxlLXdyaXRlIiwgIm5ldC1vcGVuIiwgIm5ldC13cml0ZSIsICJuZXQtd3JpdGUiLCAibmV0LXdyaXRlIiwgIm5ldC13cml0ZSIsICJkZXhsb2FkIiwgIm5ldC1vcGVuIiwgIm5ldC13cml0ZSIsICJuZXQtd3JpdGUiLCAiZmlsZS1yZWFkIiwgImZpbGUtcmVhZCIsICJmaWxlLXJlYWQiLCAiZmlsZS1yZWFkIiwgImRleGxvYWQiLCAiZmlsZS1yZWFkIiwgImZpbGUtcmVhZCIsICJuZXQtb3BlbiIsICJuZXQtd3JpdGUiLCAiZmlsZS1yZWFkIiwgIm5ldC1vcGVuIiwgIm5ldC13cml0ZSIsICJuZXQtd3JpdGUiLCAibmV0LXdyaXRlIiwgImRleGxvYWQiLCAibmV0LXdyaXRlIl0KICAgIHMyPVsiZmlsZS13cml0ZSIsICJmaWxlLXdyaXRlIiwgImZpbGUtd3JpdGUiLCAiZmlsZS13cml0ZSIsICJmaWxlLXdyaXRlIiwgImZpbGUtd3JpdGUiLCAibmV0LW9wZW4iLCAibmV0LXdyaXRlIiwgImZpbGUtcmVhZCIsICJmaWxlLXdyaXRlIiwgIm5ldC1vcGVuIiwgIm5ldC13cml0ZSIsICJuZXQtd3JpdGUiLCAibmV0LXdyaXRlIiwgImZpbGUtd3JpdGUiLCAibmV0LXdyaXRlIiwgIm5ldC13cml0ZSJdCiAgICByZXR1cm4gZ2V0X2RpZmZfc2lnbmF0dXJlKHMxLCBzMikKICAgIApkZWYgbWFpbigpOgogICAgdGVzdF9kaWZmX3NpZ25hdHVyZSgp