

function Main(input) {
  input=input.split("\n");
  if(input[input.length-1]===''){
    input.pop();
  }
  const N=input[0].split(' ')[0]-0;
  const MOD=10**9+7;
  var nums=input[1].split(' ').map(e=>{
    return two(e);
  });
  var count=new Array(61);
  count.fill(0);
  for(var i=0;i<N;i++){
    for(var j=0;j<=60;j++){
      if(j<nums[i].length&&nums[i][j]){
        count[j]++;
      }
    }
  }
  var ret=0;
  var power=1;
  for(var i=0;i<=60;i++){
    ret+=power*count[i]*(N-count[i]);
    ret=ret%MOD;
    power=(power*2)%MOD;
  }
  console.log(ret);


}

function two(string){
  var b=string;
  var flg;
  var next;
  var array=[];
    while(b!=='0'.repeat(b.length)){
        next=''
        flg=0;
        for(var i=0;i<b.length;i++){
            next+=Math.floor(b[i]/2)+flg;
            flg=(b[i]%2)*5;
        }
        array.push(flg===5);
        b=next;
    }
  return array;
}


//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));