#include using namespace std; #include using namespace atcoder; using mint=modint1000000007; using ll=long long; using pp=pair; #define sr string #define vc vector #define fi first #define se second #define rep(i,n) for(int i=0;i<(int)n;i++) #define pb push_back #define all(v) v.begin(),v.end() #define pque priority_queue #define bpc(a) __builtin_popcount(a) struct tup{int a,b,c;}; int main(){ int n;cin>>n; vcv(n-1); rep(i,n-1)cin>>v[i].a>>v[i].b>>v[i].c; mint ans=0; for(int b=0;b<30;b++){ dsu d(n); mint t=1<>b&1)d.merge(v[i].a-1,v[i].b-1); rep(i,n)if(d.leader(i)==i){ int x=d.size(i); ans+=t*x*(x-1)/2; } } cout<