typedef long long int LL ; typedef unsigned long long int uLL ;
const int MOD = 998244353; const int N = 1500000+5; const double eps = 1e-6; const double PI = acos(-1.0); /***********************************************************************/
int trie[N][2],val[N],cnt;
void trieinsert(int x){ int now = 0; for(int i=0;i<30;x>>=1,++i){ if(!trie[now][x%2]) trie[now][x%2]=++cnt; now = trie[now][x%2]; val[now]++; } }
LL query(int x){ int now = 0; LL ans =0ll; for(int i=0;i<30;x>>=1,++i){ if(!trie[now][x%2]) trie[now][x%2]=++cnt; ans += (2ll<<i)*val[trie[now][1-x%2]]; ans%=MOD; now = trie[now][x%2]; val[now]++; } return ans ; }
int main(){ int _ = 1,kcase ; while(~scanf("%d",&_)){ kcase = 0; while(_--){