#include <bits/stdc++.h>
using namespace std;
template <class T1, class T2>
bool chmin(T1 &a, T2 b) {
  return b < a && (a = b, true);
}
template <class T1, class T2>
bool chmax(T1 &a, T2 b) {
  return a < b && (a = b, true);
}
const long double eps = 1e-8;
long double dot(complex<long double> a, complex<long double> b) {
  return real(conj(a) * b);
}
long double cross(complex<long double> a, complex<long double> b) {
  return imag(conj(a) * b);
}
int main() {
  long double px, py, vx, vy, a, b, c, d;
  cin >> px >> py >> vx >> vy;
  cin >> a >> b >> c >> d;
  complex<long double> p(px, py), v(vx, vy);
  v /= abs(v);
  const long double pi = acos(-1);
  vector<complex<long double> > ans(7);
  ans[0] = v * b;
  ans[1] = v * polar(1.0l, pi / 2) * (a / 2);
  ans[2] = v * polar(1.0l, pi / 2) * (c / 2);
  ans[2] = v * polar(1.0l, pi / 2) * (c / 2);
  ans[3] = -v * d + ans[2];
  ans[5] = v * polar(1.0l, -pi / 2) * (c / 2);
  ans[4] = -v * d + ans[5];
  ans[6] = v * polar(1.0l, -pi / 2) * (a / 2);
  for (int i = 0; i < (7); i++) ans[i] += p;
  for (int i = 0; i < (7); i++) {
    printf("%.20f %.20f\n", (double)ans[i].real(), (double)ans[i].imag());
  }
  return 0;
}
