#include <bits/stdc++.h>
using namespace std;
int n, nums[300300];
long long pow_2[300300];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", nums + i);
  pow_2[0] = 1;
  for (int i = 1; i < n; i++) {
    pow_2[i] = 2 * pow_2[i - 1] % 1000000007LL;
  }
  sort(nums, nums + n);
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    ans += (-(pow_2[n - 1 - i] - 1) + (pow_2[i] - 1)) * nums[i];
    ans %= 1000000007LL;
    if (ans < 0) ans += 1000000007LL;
  }
  printf("%lld\n", ans);
}
