#include <stdio.h>

int xor(int a, int b) {
  int i,pow = 0;
  int res = 0;
  int x;
  //printf("xor %d+%d", a, b);

  while(1) {
    if(a%2 != b%2) {
      x = 1;
      for(i=0; i<pow; i++) x *= 2;
      res += x;
    }
    a /= 2;
    b /= 2;
    pow += 1;
    if(a == 0 && b == 0) break;
  }
  //printf("=%d\n", res);
  return res;
}

int main() {
 
  int i,j,n;
  scanf("%d", &n);
  int *as = malloc(sizeof(int) * n);
  for(i = 0; i < n; i++) scanf("%d", &as[i]);
  
  int sum = 0;
  for(i = 0; i < n; i++) 
    for(j = i; j < n; j++) 
      sum += xor(as[i], as[j]);
  
  printf("%d", sum % 1000000007);
    
  return 0;
}