#include <bits/stdc++.h>
using namespace std;
static const long long INF = 1e18;
static const long long MAX = 101010;
static const long long MOD = 1e9 + 7;
static const long long LOGN = 55;
long long moP(long long x, long long n) {
  long long res = 1;
  while (n > 0) {
    if (n & 1) (res) = ((res) * (x) + MOD) % MOD;
    (x) = ((x) * (x) + MOD) % MOD;
    n >>= 1;
  }
  return res;
}
int main(void) {
  long long N;
  cin >> N;
  long long i;
  long long x[MAX];
  long long t[MAX];
  long long s[MAX] = {};
  long long kaiN = 1;
  for (i = 0; i < N; i++) cin >> t[i];
  for (i = 0; i < N - 1; i++) x[i + 1] = t[i + 1] - t[i];
  for (i = 1; i <= N; i++) (kaiN) = ((kaiN) * (i) + MOD) % MOD;
  for (i = 1; i < N; i++) {
    s[i] = (s[i - 1] + moP(i, MOD - 2)) % MOD * kaiN % MOD;
  }
  long long ans = 0;
  for (i = 1; i < N; i++) {
    (ans) = ((ans) + (x[i] * s[i] % MOD) + MOD) % MOD;
  }
  cout << ans << "\n";
}
