#include <bits/stdc++.h>
using namespace std;
const int N = 10000 + 5;
const int MOD = 1e9 + 7;
long long power(long long a, long long n, long long m = MOD) {
  if (n == 0) return 1;
  long long p = power(a, n >> 1, m);
  p = (p * p) % m;
  if (n & 1) p = (p * a) % m;
  return p;
}
long long A[N];
long long dp[N];
long long tdp[N];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 1; i < n; i++) {
    cin >> A[i];
  }
  long long cnt = 1;
  for (int i = 1; i < n; i++) {
    cnt = (cnt * A[i]) % MOD;
    long long pr = A[i] - 1;
    for (int j = i + 1; j <= n; j++) {
      tdp[j - i + 1] = (tdp[j - i + 1] + pr) % MOD;
      pr = (pr * A[j]) % MOD;
    }
    for (int i = 1; i <= 2 * n - 2; i++) {
      dp[i] = (dp[i] + tdp[i] * cnt) % MOD;
    }
    for (int i = 2 * n - 2; i >= 1; i--) {
      tdp[i] = tdp[i - 1];
    }
  }
  long long inv2 = power(2, MOD - 2);
  for (int i = 1; i <= 2 * n - 2; i++) {
    dp[i] = (dp[i] * inv2) % MOD;
  }
  cnt = 1;
  for (int i = 1; i < n; i++) {
    long long pr = 1;
    for (int j = 1; j <= n - i; j++) {
      pr = (pr * A[i + j - 1]) % MOD;
      dp[i] = (dp[i] + pr * cnt) % MOD;
    }
    cnt = (cnt * A[i]) % MOD;
  }
  for (int i = 1; i <= 2 * n - 2; i++) {
    cout << dp[i] << " ";
  }
  cout << "\n";
  return 0;
}
