import json import sys # https://github.com/lynn/hello-wordl/blob/7da40c1f067eb1ec157d4c5b7a9bd8257ed39342/src/util.ts#L14 def rshift(n, a): return (n & 0xffff_ffff) >> a def mulberry32(rng_state): def worker(): nonlocal rng_state rng_state += 0x6d2b79f5; t = rng_state t = (t ^ rshift(t, 15)) * (t | 1) & 0xffff_ffff t ^= t + (t ^ rshift(t, 7)) * (t | 61) & 0xffff_ffff return (t ^ (t >> 14)) return worker with open('targets.json', 'r') as f: targets = json.load(f) targets = targets[:targets.index('murky') + 1] targets = [i for i in targets if len(i) == 5] rng = mulberry32(int(sys.argv[1])) while True: num = rng() index = num * len(targets) >> 32 print(f'{num:08x}', index, targets[index]) if targets[index] != '*****': break