#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <string>
#include <cmath>
#include <complex>
#include <map>
using namespace std;

#define rep(i,n) for(int i=0;i<int(n);++i)
#define ALL(v) (v).begin(),(v).end()
#define PB push_back
#define EPS 1e-8

static const double PI=6*asin(0.5);
typedef complex<double> P;
typedef long long ll;
double x[4],y[4];

int main(){
	while(cin>>x[0]>>y[0]){
		rep(i,3) cin>>x[i+1]>>y[i+1];
		
		P a(x[1]-x[0],y[1]-y[0]),b(x[3]-x[2],y[3]-y[2]);
		if(real(a)*imag(b)-real(b)*imag(a)==0) cout<<"NO\n";
		else if(real(a)*imag(a)+real(b)*imag(b)!=0) cout<<"NO\n";
		else cout<<"YES\n";
	}
	return 0;
}