/** Nguyen Anh Tu **/
#include <bits/stdc++.h>
#define maxn 200005
#define maxc 1000000007
#define MOD 1000000007
#define task ""
#define mp make_pair
#define pb push_back
#define ep emplace_back
#define F first
#define S second
#define pii pair<int,int>
#define ll long long
#define bit(p,x) ((x>>p) & 1)
#define remain(a,b) (a+b >= MOD) ? (a+b - MOD) : (a+b)
#define mid ((l + r)/2)
#define Time   cerr << "Time collapse : " << fixed << setprecision(3) << 1.000*clock()/CLOCKS_PER_SEC

using namespace std;

int n;
ll f[maxn], d[maxn];
int par[maxn][19], h[maxn];
vector<int> a[maxn];

void dfs(int u){
    d[u] = 1;
    for(int i = 1; i <= 18; ++ i) par[u][i] = par[par[u][i - 1]][i - 1];
    for(auto v: a[u]) if(v != par[u][0]){
        par[v][0] = u;
        h[v] = h[u] + 1;
        dfs(v);
        d[u] += d[v];
    }
}

int LCA(int u, int v){
    if(h[u] < h[v]) swap(u, v);
    int delta = h[u] - h[v];
    for(int i = 18; i >= 0; -- i) if(bit(i, delta)) u = par[u][i];
    if(u == v) return u;
    for(int i = 18; i >= 0; -- i) if(par[u][i] != par[v][i]){
        u = par[u][i];
        v = par[v][i];
    }
    return par[u][0];
}

bool check(int u, int v, int w){
    int lca = LCA(u, v);
    int lca1 = LCA(u, w);
    return (lca1 == 1 && (lca == u || lca == v));
}

void Solve(){
    cin >> n;
    for(int i = 1; i <= n + 1; ++ i) {
        a[i].clear();
        d[i] = 0;
        f[i] = 0;
        h[i] = 0;
        for(int j = 0; j <= 18; ++ j) par[i][j] = 0;
    }
    for(int i = 1; i < n; ++ i){
        int u, v;
        cin >> u >> v;
        ++ u, ++ v;
        a[u].pb(v);
        a[v].pb(u);
    }
    dfs(1);
    ll s = 0;
    for(auto x: a[1]) {
        f[1] += d[x] * (d[x] - 1) / 2;
        s += d[x];
    }
    ll res, l = 1, r = 1;
    for(auto x: a[1]){
        if(LCA(x, 2) == x){
            s -= d[x];
            for(auto y: a[1]) if(y != x){
                f[2] += d[y] * (s - d[y]);
            }
            f[2] /= 2;
            res = d[1] - d[x];
            f[2] += (d[x] - d[2] + 1) * res - 1;
            l = 2;
            break;
        }
    }
    bool ok = 1;
    for(int i = 3; i <= n; ++ i){
        if(!ok) {
            f[i] = 0;
            continue;
        }
        if(check(i, l, r)){
            if(h[i] > h[l]){
                f[i] = (d[l] - d[i]) * res;
//                if(f[i] == 199998){
//                    cout << l << ' ' << i << ' ' << d[l] << ' ' << d[i] << '\n';
//                }
                l = i;
            }
            else f[i] = 0;
            continue;
        }
        if(check(i, r, l)){
            if(h[i] > h[r]){
                if(r == 1){
                    f[i] = d[l] * (s - d[i] + 1);
                }
                else{
                    f[i] = (d[r] - d[i]) * d[l];
                }
                r = i;
                res = d[i];
            }
            else f[i] = 0;
            continue;
        }
        if(r == 1){
            f[i] = res * d[l];
        }
        else f[i] = d[r] * d[l];
        ok = 0;
    }
    if(ok){
        if(r == 1){
            f[n + 1] = res * d[l];
        }
        else f[n + 1] = d[r] * d[l];
    }
    for(int i = 1; i <= n + 1; ++ i) cout << f[i] << ' ';
    cout << '\n';
}

int main(){
    ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
    if(fopen(task".inp","r")){
        freopen(task".inp","r",stdin);
        freopen(task".out","w",stdout);
    }
    int t;
    cin >> t;
    while(t --){
        Solve();
    }
    Time;
    return 0;
}


