#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// freopen("evencomb.inp", "r", stdin);
// freopen("evencomb.out", "w", stdout);
int n; cin >> n;
int sz = 1<<20;
int freq[sz], dp[sz], a[n];
memset(dp, 0, sizeof dp);
memset(freq, 0, sizeof freq);
vector<int> b;
for(int i = 0; i < n; i++){
cin >> a[i];
freq[a[i]]++;
if(freq[a[i]] == 1) b.push_back(a[i]);
}
for(int i = 0; i < n; i++){
dp[a[i]] = freq[a[i]];
}
for(int i = 0; i < 20; i++){
for(int j = 1; j < sz; j++){
if((j >> i) & 1){
dp[j] += dp[j ^ (1 << i)];
}
}
}
sort(b.begin(), b.end());
int res = n * (n - 1) / 2, tmp = 0;
for(int i = 0; i < b.size(); i++){
res -= (dp[b[i]] - freq[b[i]]) * freq[b[i]] + (freq[b[i]] * (freq[b[i]] - 1) / 2);
}
cout << res;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc2lnbmVkIG1haW4oKXsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKCS8vIGZyZW9wZW4oImV2ZW5jb21iLmlucCIsICJyIiwgc3RkaW4pOwoJLy8gZnJlb3BlbigiZXZlbmNvbWIub3V0IiwgInciLCBzdGRvdXQpOwogICAgaW50IG47IGNpbiA+PiBuOwogICAgCiAgICBpbnQgc3ogPSAxPDwyMDsKCWludCBmcmVxW3N6XSwgZHBbc3pdLCBhW25dOwogICAgbWVtc2V0KGRwLCAwLCBzaXplb2YgZHApOwogICAgbWVtc2V0KGZyZXEsIDAsIHNpemVvZiBmcmVxKTsKICAgIHZlY3RvcjxpbnQ+IGI7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgIAljaW4gPj4gYVtpXTsKICAgIAlmcmVxW2FbaV1dKys7CiAgICAJaWYoZnJlcVthW2ldXSA9PSAxKSBiLnB1c2hfYmFjayhhW2ldKTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgCWRwW2FbaV1dID0gZnJlcVthW2ldXTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDA7IGkgPCAyMDsgaSsrKXsKICAgIAlmb3IoaW50IGogPSAxOyBqIDwgc3o7IGorKyl7CiAgICAJCWlmKChqID4+IGkpICYgMSl7CiAgICAJCQlkcFtqXSArPSBkcFtqIF4gKDEgPDwgaSldOwogICAgCQl9CiAgICAJfQogICAgfQogICAgCglzb3J0KGIuYmVnaW4oKSwgYi5lbmQoKSk7CglpbnQgcmVzID0gbiAqIChuIC0gMSkgLyAyLCB0bXAgPSAwOwoJZm9yKGludCBpID0gMDsgaSA8IGIuc2l6ZSgpOyBpKyspewoJCXJlcyAtPSAoZHBbYltpXV0gLSBmcmVxW2JbaV1dKSAqIGZyZXFbYltpXV0gICsgIChmcmVxW2JbaV1dICogKGZyZXFbYltpXV0gLSAxKSAvIDIpOwoJfQogICAgY291dCA8PCByZXM7CiAgICAKfQo=