#include #include using namespace atcoder; #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; using mint = modint1000000007; int main() { int n; cin >> n; vector a(n); rep(i, n) cin >> a[i]; vector s(n+1); rep(i, n) s[i+1] = s[i]^a[i]; s.erase(s.begin()); s.pop_back(); n--; mint ans = 1; map dp; rep(i, n) { mint tmp = ans; ans += ans-dp[s[i]]; dp[s[i]] = tmp; } cout << ans.val() << '\n'; return 0; }