#include <bits/stdc++.h>
using namespace std;
const int maxn = 5210;
const long long mod = 1e9 + 7;
const long double eps = 1e-7;
int n;
int a[maxn];
int p[maxn][maxn + maxn];
int w1[maxn + maxn];
int w2[maxn + maxn];
int d[maxn + maxn];
int u[maxn + maxn];
int cnt[maxn];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  a[0] = 1;
  for (int i = 1; i < n; ++i) cin >> a[i];
  cnt[0] = a[0];
  for (int i = 1; i < n; ++i) cnt[i] = 1LL * cnt[i - 1] * a[i] % mod;
  for (int i = n - 1; i >= 0; --i) {
    p[i][0] = 1;
    for (int k = 1; k <= n + n - 2; ++k) {
      p[i][k] = 1LL * p[i + 1][k - 1] * a[i + 1] % mod;
    }
  }
  for (int i = 0; i < n - 1; ++i)
    for (int k = 1; k <= n + n - 2; ++k) {
      d[k] = (d[k] + 1LL * p[i][k] * cnt[i]) % mod;
    }
  w2[0] = 1;
  for (int i = 1; i < n; ++i) {
    w1[0] = 1;
    for (int k = 1; k <= n + n - 2; ++k) {
      w1[k] = (w2[k - 1] + 1LL * p[i][k - 2] * (a[i] - 1)) % mod;
    }
    for (int k = 0; k <= n + n - 2; ++k) {
      w2[k] = w1[k];
      u[k] = (u[k] + 1LL * w1[k] * cnt[i]) % mod;
    }
  }
  for (int k = 1; k <= n + n - 2; ++k)
    printf("%d ", 1LL * (u[k] + d[k]) * 500000004LL % mod);
}
