#include <iostream>
using namespace std;
#pragma warning (disable: 4996)

long long mod = 1000000007;
long long N, A[1 << 20], power[1 << 20];
long long dp[1 << 20];

int main() {
	scanf("%lld", &N);
	for (int i = 0; i < N; i++) {
		scanf("%lld", &A[i]);
		dp[A[i]]++;
	}
	for (int i = 0; i < 20; i++) {
		for (int j = 0; j < (1 << 20); j++) {
			if ((j & (1 << i)) != 0) dp[j - (1 << i)] += dp[j];
		}
	}
	power[0] = 1; for (int i = 1; i < (1 << 20); i++) power[i] = (2LL * power[i - 1]) % mod;

	long long sum = 0;
	for (int i = 0; i < (1 << 20); i++) {
		int cnt = 0;
		for (int j = 0; j < 20; j++) { if ((i / (1 << j)) % 2 == 1) cnt++; }
		if (cnt % 2 == 0) sum += power[dp[i]];
		else sum -= power[dp[i]];
	}
	sum += mod * mod; sum %= mod;
	cout << sum << endl;
	return 0;
}
