#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ULL; 
const int N=1000100,base=131;
char str[N];
ULL h[N],p[N];

//求l~r之间的hash值 
ULL get(int l,int r){
	return h[r] - h[l-1] * p[r-l+1];
}

int main() {
	scanf("%s",str+1);
	int n = strlen(str+1);
	
	p[0] = 1;
	for(int i = 1;i <= n;i++){
		//将小写字母映射为1~26
		h[i] = h[i-1] * 131 + (str[i] - 'a' + 1);
		p[i] = p[i-1] * base;
	}
	
	int l1,r1,l2,r2;
	cin>>n;
	for(int i = 1;i <= n;i++){
		scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
		if(get(l1,r1)==get(l2,r2)){
			printf("%s\n","Yes");
		}else{
			printf("%s\n","No");
		}
	}
}

/**************************************************************
	Problem: 1915
	User: admin
	Language: C++
	Result: Accepted
	Time:239 ms
	Memory:18680 kb
****************************************************************/