#include <bits/stdc++.h>
using namespace std;
const long long inf = 0x3f3f3f3f;
const int maxx = 1e6 + 10;
const long long mod = 1e9 + 7;
int n, d[maxx];
long long bt[maxx], ans[maxx];
vector<int> a[maxx];
vector<pair<int, int> > b[maxx];
int lowbit(int x) { return x & -x; }
void add(int x, int val) {
  for (; x < maxx; x += lowbit(x)) bt[x] += val;
}
long long ask(int x) {
  long long res = 0;
  for (; x; x -= lowbit(x)) res += bt[x];
  return res;
}
void dfs(int x, int fa) {
  d[x] = d[fa] + 1;
  for (auto t : b[x]) {
    int k = min(n, t.first);
    add(d[x], t.second);
    add(d[x] + k + 1, -t.second);
  }
  ans[x] = ask(d[x]);
  for (auto t : a[x]) {
    if (t == fa) continue;
    dfs(t, x);
  }
  for (auto t : b[x]) {
    int k = min(n, t.first);
    add(d[x], -t.second);
    add(d[x] + k + 1, +t.second);
  }
}
int main() {
  cin >> n;
  for (int i = 1; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    a[x].push_back(y);
    a[y].push_back(x);
  }
  int q;
  cin >> q;
  while (q--) {
    int v, k, x;
    scanf("%d%d%d", &v, &k, &x);
    b[v].push_back(pair<int, int>(k, x));
  }
  dfs(1, 0);
  for (int i = 1; i <= n; i++) printf("%lld ", ans[i]);
}
