#include<bits/stdc++.h> #define MAXN 1000005 #define MAXM 25 #define MOD 1000000007 usingnamespace std; inlineintread(){ int x=0,f=1; char ch=getchar(); while (ch<'0'||ch>'9'){ if (ch=='-') f=-1; ch=getchar(); } while (ch>='0'&&ch<='9'){ x=(x<<3)+(x<<1)+(ch^'0'); ch=getchar(); } return x*f; } int f[MAXN]; #define lowbit(x) x&-x int cnt[MAXN],pow2[MAXN]; intmain(){ int n=read(); cnt[0]=0; for (registerint i=1;i<MAXN;++i){ cnt[i]=cnt[i^(lowbit(i))]+1; } for (registerint i=1;i<=n;++i){ int x=read(); f[x]++; } pow2[0]=1; for (registerint i=1;i<MAXN;++i){ pow2[i]=(pow2[i-1]*2)%MOD; } for (registerint i=0;i<MAXM;++i){ for (registerint j=0;j<MAXN;++j){ if (j&(1<<i)) f[j^(1<<i)]=(f[j^(1<<i)]+f[j])%MOD; } } int ans=0; for (registerint i=0;i<MAXN;++i){ ans=(ans+(cnt[i]&1?-1:1)*(pow2[f[i]]-1))%MOD; } printf("%d\n",(ans%MOD+MOD)%MOD); return0; }