
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <random>
#include<cstdlib>
#define _USE_MATH_DEFINES
#include <math.h>

#define INF (1<<21)
#define swap(a,b) {a=a+b; b=a-b; a=a-b;}
#define abs(a) (a > 0 ? a:-a)
#define min(a,b) {a > b ? b:a}
#define max(a,b) {a > b ? a:b}
using namespace std;

void q58() {
	long double ax, ay, bx, by, cx, cy, dx, dy;
	for (; cin >> ax >> ay >> bx >> by >> cx >> cy >> dx >> dy;) {

		if ((ay - by) * (cy - dy) + (cx - dx)*(ax - bx) == 0) {
			cout << "Yes" << endl;
		}
		else {
			cout << "No" << endl;
		}
	}
}
int main() {
	q58();
	return 0;
}