#!/usr/bin/env python3

# TODO: Actually break the hashes?
# TODONE in chernobreak.py

def hash(chars):
   ret = 0;
   for c in chars:
      ret += c
      ret = ((ret << 5) - ret) & 0xffff
   return ret

while True:
   try:
      line = input("> ")
      if (len(line) and line[0] == '~'):
         h = hash(bytes.fromhex(line[1:]));
      else:
         h = hash(line.encode())
      print(f"hash: {h:x}, box[3]: {h&7:x}, box[4]: {h&0xf:x}");
   except EOFError:
      break

print("")
