def METHOD_NAME(self, pubkeys):
    result = {}
    pubkeys_divisor = max(len(pubkeys) // 10, 1)  # Make sure divisor is at least 1 to avoid division by zero
    for i, pubkey in enumerate(pubkeys):
        if i % pubkeys_divisor == 0:
            log.debug(f"getting validator data for {i}/{len(pubkeys)}")
        try:
            data = bacon.get_validator(validator_id=pubkey, state_id="finalized")
        except HTTPError:
            continue
        data = data["data"]
        validator_id = int(data["index"])
        activation_epoch = int(data["validator"]["activation_epoch"])
        # The activation epoch is set to the possible maximum int if none has been determined yet.
        # I don't check for an exact value because it turns out that nimbus uses uint64 while Teku uses int64.
        # >=2**23 will be good enough for the next 100 years, after which neither this bot nor its creator will be alive.
        if activation_epoch >= 2 ** 23:
            continue
        result[pubkey] = {"validator_id": validator_id, "activation_epoch": activation_epoch}
    return result