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

#define int long long 
#define pb push_back
#define S second
#define F first
#define f(i,n) for(int i=0;i<n;i++)
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define vi vector<int>
#define pii pair<int,int>

const int MOD = 1e9+7;

int mod_pow(int a,int b,int M = MOD)
{
    int res = 1;
    
    while(b)
    {
        if(b&1) res=(res*a)%M;
        a=(a*a)%M;
        b>>=1;
    }
    
    return res;
}



int go(int x)
{
    int res = (x);
    res=(res*(x+1));
    res/=2;
    res%=MOD;
    return res;
}

int go2(int x)
{
    int res = (x*(x+1));
    res/=2;
    res%=MOD;
    res=(res*res)%MOD;
    return res;
}

void solve()
{
   int n,a,b;
    cin >> n >> a >> b;
 
   if(a + b > n)
   {
       cout << 0 << '\n';
       return;
   }
    
   int res = 0;
     
   int temp = (n-a+1);
   temp = (temp*(n-b+1))%MOD;
   temp = (temp*go(n-a-b+1))%MOD; 
   res = temp;
    
   res = (res - go2(n-a-b+1) + MOD)%MOD;
    
   res = (res*4)%MOD;
   cout << res << '\n';
}

signed main()
{
    fast;
    
    int t = 1;
    
    cin >> t;
    
    while(t--)
        
    solve();
}
#include<bits/stdc++.h>
using namespace std;
#define ALL(x) begin(x),end(x)
#define rep(i,n) for(int i=0;i<(n);i++)
#define debug(v) cout<<#v<<":";for(auto x:v){cout<<x<<' ';}cout<<endl;
#define mod 1000000007
using ll=long long;
const int INF=1000000000;
const ll LINF=1001002003004005006ll;
int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
// ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
template<class T>bool chmax(T &a,const T &b){if(a<b){a=b;return true;}return false;}
template<class T>bool chmin(T &a,const T &b){if(b<a){a=b;return true;}return false;}

struct IOSetup{
    IOSetup(){
        cin.tie(0);
        ios::sync_with_stdio(0);
        cout<<fixed<<setprecision(12);
    }
} iosetup;
 
template<typename T>
ostream &operator<<(ostream &os,const vector<T>&v){
    for(int i=0;i<(int)v.size();i++) os<<v[i]<<(i+1==(int)v.size()?"":" ");
    return os;
}
template<typename T>
istream &operator>>(istream &is,vector<T>&v){
    for(T &x:v)is>>x;
    return is;
}

void solve(){
    int n;cin>>n;
    vector<ll> a(n);
    cin>>a;

    map<ll,int> mp;
    for(auto &x:a) mp[x]++;
    bool f=true;
    for(auto [_,x]:mp){
        if(x%2) f=false;
    }

    if(n%2){
        if(f) cout<<"First"<<endl;
        else  cout<<"Second"<<endl;
    }else{
        if(f) cout<<"Second"<<endl;
        else  cout<<"First"<<endl;
    }

}

signed main(){
    int q;cin>>q;
    while(q--){
        solve();
    }
    return 0;
}
