  Given an undirected graph $G=(V,E)$ of $n$ vertices and $m$ edges with
weights in $[1,W]$, we construct vertex sensitive distance oracles (VSDO),
which are data structures that preprocess the graph, and answer the following
kind of queries: Given a source vertex $u$, a target vertex $v$, and a batch of
$d$ failed vertices $D$, output (an approximation of) the distance between $u$
and $v$ in $G-D$ (that is, the graph $G$ with vertices in $D$ removed). An
oracle has stretch $\alpha$ if it always holds that
$\delta_{G-D}(u,v)\le\tilde{\delta}(u,v)\le\alpha\cdot\delta_{G-D}(u,v)$, where
$\delta_{G-D}(u,v)$ is the actual distance between $u$ and $v$ in $G-D$, and
$\tilde{\delta}(u,v)$ is the distance reported by the oracle.
  In this paper we construct efficient VSDOs for any number $d$ of failures.
For any constant $c\geq 1$, we propose two oracles:
  $\bullet$ The first oracle has size $n^{2+1/c}(\log n/\epsilon)^{O(d)}\cdot
\log W$, answers a query in ${\rm poly}(\log n,d^c,\log\log W,\epsilon^{-1})$
time, and has stretch $1+\epsilon$, for any constant $\epsilon>0$.
  $\bullet$ The second oracle has size $n^{2+1/c}{\rm poly}(\log (nW),d)$,
answers a query in ${\rm poly}(\log n,d^c,\log\log W)$ time, and has stretch
${\rm poly}(\log n,d)$.
  Both of these oracles can be preprocessed in time polynomial in their space
complexity. These results are the first approximate distance oracles of
poly-logarithmic query time for any constant number of vertex failures in
general undirected graphs. Previously there are $(1+\epsilon)$-approximate
$d$-edge sensitive distance oracles [Chechik et al. 2017] answering distance
queries when $d$ edges fail, which have size $O(n^2(\log n/\epsilon)^d\cdot
d\log W)$ and query time ${\rm poly}(\log n, d, \log\log W)$.
