#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll mul(ll a, ll b, ll mod) {
a %= mod;
b %= mod;
ll res = 0;
while (b) {
if (b & 1) res = (res + a) % mod;
a = (a + a) % mod;
b >>= 1;
}
return res;
}
const ll mod = 998244353;
int a[300004];
void solve(){
ll n;
cin >> n;
for (int i = 1 ; i <= n ; i++){
cin >> a[i];
}
ll res = 0;
for (int bit = 0 ; bit < 32 ; bit++){
ll parity = 0 , lensum = 0;
vector<vector<ll>> parity_sum(2, vector<ll>(2, 0));
parity_sum[0][0] = 0;
parity_sum[0][1] = 1;
parity_sum[1][0] = 0;
parity_sum[1][1] = 0;
for (int i = 1 ; i <= n ; i++){
if ((a[i] >> bit) & 1){
parity = (parity + 1) & 1;
}
int parity1 = !parity;
ll part1 = (parity_sum[parity1][1] * i) % mod;
ll part2 = parity_sum[parity1][0] % mod;
lensum = (lensum + part1 - part2 + mod) % mod;
if(lensum < 0) lensum += mod;
parity_sum[parity][0] += i;
parity_sum[parity][1] ++;
}
res = (res + lensum * ((1LL << bit) % mod) % mod) % mod;
}
cout << res %mod;
}
int main(){
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKbGwgbXVsKGxsIGEsIGxsIGIsIGxsIG1vZCkgewogICAgYSAlPSBtb2Q7CiAgICBiICU9IG1vZDsKICAgIGxsIHJlcyA9IDA7CiAgICB3aGlsZSAoYikgewogICAgICAgIGlmIChiICYgMSkgcmVzID0gKHJlcyArIGEpICUgbW9kOwogICAgICAgIGEgPSAoYSArIGEpICUgbW9kOwogICAgICAgIGIgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CmNvbnN0IGxsIG1vZCA9IDk5ODI0NDM1MzsKaW50IGFbMzAwMDA0XTsKdm9pZCBzb2x2ZSgpewogICAgbGwgbjsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQogICAgbGwgcmVzID0gMDsKICAgIGZvciAoaW50IGJpdCA9IDAgOyBiaXQgPCAzMiA7IGJpdCsrKXsKICAgICAgICBsbCBwYXJpdHkgPSAwICwgbGVuc3VtID0gMDsKICAgICAgICB2ZWN0b3I8dmVjdG9yPGxsPj4gcGFyaXR5X3N1bSgyLCB2ZWN0b3I8bGw+KDIsIDApKTsKICAgICAgICBwYXJpdHlfc3VtWzBdWzBdID0gMDsKICAgICAgICBwYXJpdHlfc3VtWzBdWzFdID0gMTsKICAgICAgICBwYXJpdHlfc3VtWzFdWzBdID0gMDsKICAgICAgICBwYXJpdHlfc3VtWzFdWzFdID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMSA7IGkgPD0gbiA7IGkrKyl7CiAgICAgICAgICAgIGlmICgoYVtpXSA+PiBiaXQpICYgMSl7CiAgICAgICAgICAgICAgICBwYXJpdHkgPSAocGFyaXR5ICsgMSkgJiAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGludCBwYXJpdHkxID0gIXBhcml0eTsKICAgICAgICAgICAgbGwgcGFydDEgPSAocGFyaXR5X3N1bVtwYXJpdHkxXVsxXSAqIGkpICUgbW9kOwogICAgICAgICAgICBsbCBwYXJ0MiA9IHBhcml0eV9zdW1bcGFyaXR5MV1bMF0gJSBtb2Q7CiAgICAgICAgICAgIGxlbnN1bSA9IChsZW5zdW0gKyBwYXJ0MSAtIHBhcnQyICsgbW9kKSAlIG1vZDsKICAgICAgICAgICAgaWYobGVuc3VtIDwgMCkgbGVuc3VtICs9IG1vZDsKICAgICAgICAgICAgcGFyaXR5X3N1bVtwYXJpdHldWzBdICs9IGk7CiAgICAgICAgICAgIHBhcml0eV9zdW1bcGFyaXR5XVsxXSArKzsKICAgICAgICB9CiAgICAgICAgcmVzID0gKHJlcyArIGxlbnN1bSAqICgoMUxMIDw8IGJpdCkgJSBtb2QpICUgbW9kKSAlIG1vZDsKICAgIH0KICAgIGNvdXQgPDwgcmVzICVtb2Q7Cgp9CmludCBtYWluKCl7CiAgICBzb2x2ZSgpOwp9Cg==