/*
TASK:mov
LANG:C++
*/
#include <iostream>
#include <cstring>

using namespace std;

int n, x, y;
long p[4][2];

int main ()
{
    cin >> n; 
    int i, j, l, k;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < 4; j++)
            cin >> p[j][0] >> p[j][1];
        cin >> x >> y;
        l = (x * (p[2][1] - p[0][1]) - y * (p[2][0] - p[0][0])) / ((p[2][0] - p[3][0]) * y - x * (p[2][1] - p[3][1]));
        k = ((p[2][0] - p[3][0])*l + p[2][0] - p[0][0]) / x;
        if ((k * x + p[0][0] < p[3][0] && k * x + p[0][0] > p[2][0]) || (k * x + p[0][0] > p[3][0] && k * x + p[0][0] < p[2][0])) cout << 1;
        else
        {
         l = (x * (p[2][1] - p[1][1]) - y * (p[2][0] - p[1][0])) / ((p[2][0] - p[3][0]) * y - x * (p[2][1] - p[3][1]));
         k = ((p[2][0] - p[3][0])*l + p[2][0] - p[1][0]) / x;
         if ((k * x + p[1][0] < p[3][0] && k * x + p[1][0] > p[2][0]) || (k * x + p[1][0] > p[3][0] && k * x + p[1][0] < p[2][0])) cout << 1;
         else
         {
          l = (x * (p[2][1] - p[0][1]) - y * (p[2][0] - p[0][0])) / ((p[1][0] - p[0][0]) * y - x * (p[1][1] - p[0][1]));
          k = ((p[1][0] - p[0][0])*l + p[2][0] - p[0][0]) / x;
          if ((k * x + p[2][0] < p[0][0] && k * x + p[2][0] > p[1][0]) || (k * x + p[2][0] > p[0][0] && k * x + p[2][0] < p[1][0])) cout << 1;
          else
          {
           l = (x * (p[3][1] - p[0][1]) - y * (p[3][0] - p[0][0])) / ((p[1][0] - p[0][0]) * y - x * (p[1][1] - p[0][1]));
           k = ((p[1][0] - p[0][0])*l + p[3][0] - p[0][0]) / x;
           if ((k * x + p[3][0] < p[0][0] && k * x + p[3][0] > p[1][0]) || (k * x + p[3][0] > p[0][0] && k * x + p[3][0] < p[1][0])) cout << 1;
           else cout << 0;
          }
         }
        }
    }
    cout << '\n';
    return 0;
}
    
    
        
