#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll modpow(ll a, ll n, ll mod)
{
  ll res = 1;
  while (n > 0)
  {
    if (n & 1)
      res = res * a % mod;
    a = a * a % mod;
    n >>= 1;
  }
  return res % mod;
}

ll mod = pow(10, 9) + 7;
// a以降のb桁が立ってる数
ll S[300005][70];
ll keta = 1ll << j;

int main(int argc, char *argv[]) {
  ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

  ll n;cin>>n;
  vector<ll> a(n);
  for(ll i=0;i<n;i++){
    cin>>a[i];
  }
  for (ll i = n - 1; i >=0 ; i--)
  {
    for (ll j = 0; j < 61; j++)
    {
      S[i][j] += S[i + 1][j];
      if (a[i] & keta)S[i][j]++;
    }
  }
  ll res = 0;
  for(ll i=0;i<n-1;i++){
    for(ll j=0;j<61;j++){
      ll mp = S[i + 1][j];
      if(a[i] & keta){
        mp = n - i -1 - S[i + 1][j];
      }
      res += (modpow(2, j, mod) * mp) % mod;
      res %= mod;
    }
  }
  cout<<res<<endl;

  return 0;
}