output_description: Print the value \sum_{i=1}^{N-1}\sum_{j=i+1}^{N} (A_i \mbox{ XOR } A_j),
  modulo (10^9+7).
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: mod = 10**9 + 7
  n = int(input())
  a = list(map(int, input().split()))
  l = [0 for i in range(60)]
  for x in a:
      x = bin(x)[2:]
      col = 0
      for b in x[::-1]:
          if b == "1":
              l[col] = l[col] + 1
          col += 1
  l2 = [0 for i in range(60)]
  for x in a:
      x = bin(x)[2:]
      x = x.zfill(60)
      col = 0
      for b in x[::-1]:
          if b == "0":
              l2[col] = l2[col] + l[col]
          else:
              l2[col] = l2[col] + n - l[col]
          col += 1
  cnt = 0
  c = 1
  for i in range(60):
      cnt += l2[i] * c
      c *= 2
      c %= mod
  print(cnt // 2 % mod)
  
problem_description: Statement
  
  We have N integers. The i-th integer is A_i.
  
  Find \sum_{i=1}^{N-1}\sum_{j=i+1}^{N} (A_i \mbox{ XOR } A_j), modulo (10^9+7).
  
  What is \mbox{ XOR }?
  
  The XOR of integers A and B, A \mbox{ XOR } B, is defined as follows:
  
    * When A \mbox{ XOR } B is written in base two, the digit in the 2^k's place (k \geq 0) is 1 if either A or B, but not both, has 1 in the 2^k's place, and 0 otherwise.
  
  For example, 3 \mbox{ XOR } 5 = 6. (In base two: 011 \mbox{ XOR } 101 = 110.)
samples: [{"input": "3\n    1 2 3", "output": "6\n    \n\nWe have (1\\mbox{ XOR } 2)+(1\\mbox{ XOR } 3)+(2\\mbox{ XOR } 3)=3+2+1=6.\n\n* * *"}, {"input": "10\n    3 1 4 1 5 9 2 6 5 3", "output": "237\n    \n\n* * *"}, {"input": "10\n    3 14 159 2653 58979 323846 2643383 27950288 419716939 9375105820", "output": "103715602\n    \n\nPrint the sum modulo (10^9+7)."}]