#include <bits/stdc++.h>
using namespace std;
template <class T, class U>
void chmax(T& a, U b) {
  if (a < b) a = b;
}
template <class T, class U>
void chmin(T& a, U b) {
  if (b < a) a = b;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.precision(10);
  cout << fixed;
  int n;
  cin >> n;
  vector<long long int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  const long long int mod = 1e9 + 7;
  long long int ans = 0;
  map<long long int, long long int> mp;
  for (int i = n - 1; i >= 0; i--) {
    for (int j = 0; j < 60; j++) {
      bool isone = (a[i] & (1LL << j)) > 0;
      if (isone) {
        ans += (1LL << j) * (n - i - mp[j] - 1);
        ans %= mod;
        mp[j]++;
      } else {
        ans += (1LL << j) * mp[j];
        ans %= mod;
      }
    }
  }
  cout << ans << endl;
  return 0;
}
