#include <bits/stdc++.h>
using namespace std;
using Pii = pair<int, int>;
using Pll = pair<long long, long long>;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
char alpha[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
                  'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
                  's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, 1, -1};
const long long mod = 1e9 + 7;
int main() {
  int n;
  cin >> n;
  vector<long long> lis(n), lis1(n);
  for (int i = (0), i_len = (n); i < i_len; ++i) {
    cin >> lis[i];
  }
  long long ans = 0;
  for (int i = (0), i_len = (60); i < i_len; ++i) {
    long long c0 = 0, c1 = 0;
    for (int l = (0), l_len = (n); l < l_len; ++l) {
      if ((lis[l] >> i) & 1)
        c1++;
      else
        c0++;
    }
    long long mid = (((1LL << i) % mod) * (c0 * c1)) % mod;
    ans = (ans + mid) % mod;
  }
  cout << ans << endl;
}
