#include<stdio.h>
#include<unordered_set>
#include<algorithm>
#include<assert.h>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
int a,b;
scanf("%d%d",&a,&b);
//assert(1<=a&&a<=1'000'000'000);
//assert(1<=b&&b<=1'000'000'000);
unordered_set<int> ss;
if((a+b)%2==0){
while(a!=b){
if(a>b)swap(a,b);
//if(a==0)break;
int d=b-a;
int e=d/a;
int f=0;
while(f*2LL+2<=e)f=f*2+2;
b-=f/2*a;
a+=f/2*a;
printf("%d %d %d %d\n",a,b,d,f);
if(a==b)break;
if(ss.find(b-a)!=ss.end())break;
ss.insert(b-a);
b-=a;
a+=a;
}
}
printf("%s\n",(a==b)?"YES":"NO");
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8dW5vcmRlcmVkX3NldD4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxhc3NlcnQuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKXsKICAgIGludCB0OwogICAgc2NhbmYoIiVkIiwmdCk7CiAgICB3aGlsZSh0LS0pewogICAgICAgIGludCBhLGI7CiAgICAgICAgc2NhbmYoIiVkJWQiLCZhLCZiKTsKICAgICAgICAvL2Fzc2VydCgxPD1hJiZhPD0xJzAwMCcwMDAnMDAwKTsKICAgICAgICAvL2Fzc2VydCgxPD1iJiZiPD0xJzAwMCcwMDAnMDAwKTsKICAgICAgICB1bm9yZGVyZWRfc2V0PGludD4gc3M7CiAgICAgICAgaWYoKGErYiklMj09MCl7CiAgICAgICAgd2hpbGUoYSE9Yil7CiAgICAgICAgICAgIGlmKGE+Yilzd2FwKGEsYik7CiAgICAgICAgICAgIC8vaWYoYT09MClicmVhazsKICAgICAgICAgICAgaW50IGQ9Yi1hOwogICAgICAgICAgICBpbnQgZT1kL2E7CiAgICAgICAgICAgIGludCBmPTA7CiAgICAgICAgICAgIHdoaWxlKGYqMkxMKzI8PWUpZj1mKjIrMjsKICAgICAgICAgICAgYi09Zi8yKmE7CiAgICAgICAgICAgIGErPWYvMiphOwpwcmludGYoIiVkICVkICVkICVkXG4iLGEsYixkLGYpOwogICAgICAgICAgICBpZihhPT1iKWJyZWFrOwogICAgICAgICAgICBpZihzcy5maW5kKGItYSkhPXNzLmVuZCgpKWJyZWFrOwogICAgICAgICAgICBzcy5pbnNlcnQoYi1hKTsKICAgICAgICAgICAgYi09YTsKICAgICAgICAgICAgYSs9YTsKICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByaW50ZigiJXNcbiIsKGE9PWIpPyJZRVMiOiJOTyIpOwogICAgfQp9