import java.io.*;
import java.util.*;
import java.text.*;
public final class isc
{
    static class FastReader 
    { 

        BufferedReader br; 
        StringTokenizer st; 

        public FastReader()
        { 
            br = new BufferedReader(new InputStreamReader(System.in)); 
        } 


        String next() 
        { 
            while (st == null || !st.hasMoreElements()) 
            { 
                try
                { 
                    st = new StringTokenizer(br.readLine()); 
                } 
                catch (IOException  e) 
                { 
                    e.printStackTrace(); 
                } 
            } 
            return st.nextToken(); 
        } 

        int nextInt() 
        { 
            return Integer.parseInt(next()); 
        } 

        long nextLong() 
        { 
            return Long.parseLong(next()); 
        } 

        double nextDouble() 
        { 
            return Double.parseDouble(next()); 
        } 

        String nextLine() 
        { 
            String str = ""; 
            try
            { 
                str = br.readLine(); 
            } 
            catch (IOException e) 
            { 
                e.printStackTrace(); 
            } 
            return str; 
        } 
    }
    static int n, d;
    static ArrayList<Integer>[] adj;
    static int depth[];
    static int par[][];
    static int walk(int i, int up)
    {
        for(int k=0; k<=d && k!=-1; k++)
        {
            if(((1<<k)&up)>0)
                i = par[k][i];
        }
        return i;
    }
    static int lca(int i, int j)
    {
        if(depth[i]>depth[j])
            i = walk(i, depth[i]-depth[j]);
        if(depth[j]>depth[i])
            j = walk(j, depth[j]-depth[i]);
        if(i==j)
            return i;
        for(int k=d; k>=0; k--)
        {
            if(par[k][i]!=par[k][j])
            {
                i = par[k][i];
                j = par[k][j];
            }
        }
        return par[0][i];
    }
    static int dist(int u, int v)
    {
        int a = lca(u,v);
        return depth[u]+depth[v] - (2*depth[a]);
    }
    public static void main(String[] args)
    {
        FastReader sc = new FastReader();
        int n = sc.nextInt();
        adj = new ArrayList[n];
        for(int i=0; i<n; i++)
            adj[i] = new ArrayList<Integer>();
        for(int i=0; i<n-1; i++)
        {
            int u = sc.nextInt()-1;
            int v = sc.nextInt()-1;
            adj[u].add(v);
            adj[v].add(u);
        }
        // floor of log2
        d = Integer.numberOfTrailingZeros(Integer.highestOneBit(n));
        par = new int[d+1][n];
        depth = new int[n];
        for(int []dd:par)
            Arrays.fill(dd,-1);
        Queue<Integer> q = new LinkedList<Integer>();
        boolean visited[] = new boolean[n];
        q.add(0);
        visited[0] = true;
        while(!q.isEmpty())
        {
            int i = q.remove();
            for(int j:adj[i])
            {
                if(!visited[j])
                {
                    visited[j] = true;
                    q.add(j);
                    par[0][j] = i;
                    depth[j] = depth[i]+1;
                }
            }
        }
        for(int k=1; k<=d; k++)
        {
            for(int i=0; i<n; i++)
            {
                int mid = par[k-1][i];
                if(mid != -1)
                    par[k][i] = par[k-1][mid];
            }
        }
        // for(int j=0; j<n; j++)
        // {
        //     for(int i=0; i<=d; i++)
        //         System.out.print(par[i][j]+" ");
        //     System.out.println();
        // }
        int query = sc.nextInt();
        for(int i=0; i<query; i++)
        {
            int x = sc.nextInt()-1;
            int y = sc.nextInt()-1;
            int a = sc.nextInt()-1;
            int b = sc.nextInt()-1;
            int k = sc.nextInt();
            int ans1, ans2, ans3;
            ans1 = dist(a,b);
            ans2 = dist(a,x)+1+dist(y,b);
            ans3 = dist(a,y)+1+dist(x,b);
            // System.out.println(ans1+" "+ans2+" "+ans3);
            if(ans1%2==k%2 && ans1<=k)
                System.out.println("YES");
            else if(ans2%2==k%2 && ans2<=k)
                System.out.println("YES");
            else if(ans3%2==k%2 && ans3<=k)
                System.out.println("YES");
            else
                System.out.println("NO");
        }
    }
}