#pragma warning(disable:4996)
#include <algorithm>
#include <functional>
#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;
long long P;
int n;
vector<int> a;
long long MOD = 1000000007;
int main() {
int n;
cin >> n;
long long now = 0;
long long left_count = 0;
long long leftmost = 0;
long long rightmost = 0; // 이 세대의 rightmost 번호
long long count = 1; // 이 세대의 count, sum
for(int round = 1; round <= n; ++ round) {
int x; cin >> x;// x번째
now = rightmost + (left_count * round) + x;
now %= MOD;
left_count = left_count * round + (x - 1);
left_count %= MOD;
cout << now << endl;
leftmost = rightmost + 1;
leftmost %= MOD;
count = count * (round) % MOD;
rightmost += count;
rightmost %= MOD;
}
return 0;
}