  while IFS="|" read -r name ip rule subtype last_ts last_evt; do
    [[ -z "$name" ]] && continue
    local ip="${p_ips[$client_name]:-}"
    if [[ -z "$ip" ]]; then
      ip=$(grep "^Address" "$conf" | awk '{print $3}' | cut -d'/' -f1)
    fi
    p_ips["$name"]="$ip"
    p_rules["$name"]="${rule:-—}"
    p_subtypes["$name"]="$subtype"
    p_last_ts["$name"]="$last_ts"
    p_last_evt["$name"]="$last_evt"
  done < <(json::peer_data "$(ctx::clients)" "$(ctx::meta)" "$(ctx::events_log)")