#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
template <class T>
inline void gmax(T &a, T b) {
  if (b > a) a = b;
}
template <class T>
inline void gmin(T &a, T b) {
  if (b < a) a = b;
}
using namespace std;
const int N = 1e5 + 10, M = 2e6 + 10, Z = 1e9 + 7, maxint = 2147483647,
          ms1 = 16843009, ms31 = 522133279, ms63 = 1061109567,
          ms127 = 2139062143;
const double PI = acos(-1.0), eps = 1e-8;
void fre() {
  freopen("/Users/luras/Desktop/in.txt", "r", stdin);
  freopen("/Users/luras/Desktop/out.txt", "w", stdout);
}
const int INF = 1e9;
int casenum, casei;
double x[10], y[10];
double px, py, vx, vy, a, b, c, d;
int main() {
  while (
      ~scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &px, &py, &vx, &vy, &a, &b, &c, &d)) {
    x[1] = px, y[1] = py + b;
    x[2] = px - a / 2, y[2] = py;
    x[3] = px - c / 2, y[3] = py;
    x[4] = px - c / 2, y[4] = py - d;
    x[5] = px + c / 2, y[5] = py - d;
    x[6] = px + c / 2, y[6] = py;
    x[7] = px + a / 2, y[7] = py;
    double xx = vx / sqrt(vx * vx + vy * vy);
    double A = acos(xx);
    if (vy < 0) A = PI * 2 - A;
    A -= PI / 2;
    for (int i = 1; i <= 7; i++) {
      double tx = x[i] - px, ty = y[i] - py;
      printf("%.9lf %.9lf\n", tx * cos(A) - ty * sin(A) + px,
             tx * sin(A) + ty * cos(A) + py);
    }
  }
  return 0;
}
