#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int fi[maxn], ne[maxn * 2], dui[maxn * 2], qc[maxn];
int cc[17];
int f[maxn][17];
int dep[maxn];
int i, j, k, l, m, n, x, y, a, b, now, tmp;
int q;
bool bz;
void add(int x, int y) {
  if (fi[x] == 0)
    fi[x] = ++now;
  else
    ne[qc[x]] = ++now;
  dui[now] = y;
  qc[x] = now;
}
void dfs(int x, int y) {
  int i = fi[x];
  f[x][0] = y;
  dep[x] = dep[y] + 1;
  while (i) {
    if (dui[i] == y) {
      i = ne[i];
      continue;
    }
    dfs(dui[i], x);
    i = ne[i];
  }
}
int fd_dis(int x, int y) {
  int i, z, ans = 0;
  if (dep[x] < dep[y]) {
    z = x;
    x = y;
    y = z;
  }
  for (i = 16; i >= 0; i--)
    if (dep[x] - cc[i] >= dep[y]) {
      ans = ans + cc[i];
      x = f[x][i];
    }
  for (i = 16; i >= 0; i--)
    if (f[x][i] != f[y][i]) {
      ans = ans + cc[i] + cc[i];
      x = f[x][i];
      y = f[y][i];
    }
  if (x != y) ans = ans + 2;
  return ans;
}
bool check(int x) {
  if (x <= k && (k - x) % 2 == 0)
    return true;
  else
    return false;
}
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n - 1; i++) {
    scanf("%d%d", &x, &y);
    add(x, y);
    add(y, x);
  }
  cc[0] = 1;
  for (i = 1; i <= 16; i++) cc[i] = cc[i - 1] * 2;
  dfs(1, 0);
  for (j = 1; j <= 16; j++)
    for (i = 1; i <= n; i++) f[i][j] = f[f[i][j - 1]][j - 1];
  scanf("%d", &q);
  while (q--) {
    scanf("%d%d%d%d%d", &x, &y, &a, &b, &k);
    bz = false;
    tmp = fd_dis(a, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, x) + fd_dis(y, b) + 1;
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, y) + fd_dis(x, b) + 1;
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, x) + 2 + fd_dis(x, y) + fd_dis(y, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, y) + 2 + fd_dis(x, y) + fd_dis(x, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, x) + 1 + fd_dis(x, y) + fd_dis(x, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, y) + 1 + fd_dis(x, y) + fd_dis(y, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, x) + 1 + fd_dis(x, y) + fd_dis(x, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    tmp = fd_dis(a, y) + 1 + fd_dis(x, y) + fd_dis(y, b);
    if (check(tmp)) {
      printf("YES\n");
      continue;
    }
    printf("NO\n");
  }
  return 0;
}
