#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target("tune=native")
#pragma GCC target("avx")
using namespace std;
const int MD = (int)1e9 + 7;
void dbg() { cerr << "\n"; }
template <class T, class... T2>
void dbg(const T& fst, const T2&... rst) {
  cerr << fst << ": ";
  dbg(rst...);
}
template <class T>
void amax(T& a, T b) {
  a = max(a, b);
}
long long a[300030];
int main() {
  int n;
  cin >> n;
  for (int(i) = 0; (i) < (n); (i)++) cin >> a[i];
  long long ans = 0;
  for (int(i) = 0; (i) < (n); (i)++)
    for (int(j) = 0; (j) < (i); (j)++) {
      ans += a[i] ^ a[j];
      ans %= MD;
    }
  cout << ans << "\n";
  return 0;
}
