//Code by Ritik Agarwal
    #include<bits/stdc++.h>
    using namespace std;
    #define sz(x) (int)(x).size()
    #define int long long int
    #define loop(i,a,b) for(int i=a;i<b;i++)
    #define scan(arr,n) for (int i = 0; i < n; ++i) cin >> arr[i]
    #define vi vector<int>
    #define si set<int>
    #define pii pair <int, int>
    #define sii set<pii>
    #define vii vector<pii>
    #define mii map <int, int>
    #define pb push_back
    #define ff first
    #define ss second
    #define all(aa) aa.begin(), aa.end()
    #define rall(a) a.rbegin() , a.rend()
    #define read(a,b) int a,b;  cin>>a>>b
    #define readt(a,b,c) int a,b,c; cin>>a>>b>>c
    #define readf(a,b,c,d) int a,b,c,d; cin>>a>>b>>c>>d;
    #define print(v) for(auto x:v) cout<<x<<" ";cout<<endl
    #define printPair(res) for(pair<int,int>& p:res) cout<<p.first<<" "<<p.second<<endl;
    #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
    //*****  Constants  *****
    const int mod = 1000000007; /* 1e9 + 7*/
    const int MAXN = 1000005; /*1e6 +5 */
    const int mod1= 998244353;
     int vis[MAXN]={0};
    int fac[300001];
    void fact(int m){fac[0]=1;for(int i=1;i<=300000;i++) fac[i]=(fac[i-1]%m * i%m)%m;}
    /* Iterative Function to calculate (x^y)%p in O(log y)*/
     long long power( long long x,  int y, int p){   long long res = 1;  
     x = x % p; while (y > 0) { if (y & 1)  res = (res * x) % p;  y = y >> 1; x = (x * x) % p;} return res;}
    // Returns n^(-1) mod p 
     long long modInverse( long long n, int p) {  return power(n, p - 2, p); }
     long long nCr( long long n,int r, int p) { if (r == 0) return 1; if(n<r) return 0;
      return (fac[n] * modInverse(fac[r], p) % p * modInverse(fac[n - r], p) % p) % p; } 

     int binarySearch(vi arr, int l, int r, int x) { 
       if (r >= l) { int mid = l + (r - l) / 2; if (arr[mid] == x) return mid; 
       if (arr[mid] > x)  return binarySearch(arr, l, mid - 1, x); 
       return binarySearch(arr, mid + 1, r, x); } return -1; } 
      
    
    const int NAX=3E5+5;
    int BIT[NAX];
    int getSum( int index)
    {
        int sum=0;
        while(index>0)
        {
            sum+=BIT[index];
            index -=index & (-index);
        }
        return sum;
    }
    
    void update(int  n , int index , int val)
    {
        while(index<=n)
        {
            BIT[index]+=val;
            index += index & (-index); 
        }
    }

    void convert(int arr[], int n) 
{ 
    // Create a copy of arrp[] in temp and sort the temp array 
    // in increasing order 
    int temp[n]; 
    for (int i=0; i<n; i++) 
        temp[i] = arr[i]; 
    sort(temp, temp+n); 
  
    // Traverse all array elements 
    for (int i=0; i<n; i++) 
    { 
        // lower_bound() Returns pointer to the first element 
        // greater than or equal to arr[i] 
        arr[i] = lower_bound(temp, temp+n, arr[i]) - temp + 1; 
    } 
} 

    void solve(int test)
    {
        int n;cin>>n;
        vi arr(n);
        scan(arr,n);
        sort(all(arr));
        if(n&1) cout<<"Second\n";
        else
        {
            int f=0;
            for(int i=-0;i<n;i+=2)
            {
                if(arr[i]!=arr[i+1])
                    f=1;
            }
            if(f==1)
                cout<<"First\n";
            else
                cout<<"Second\n";
        }
    }


    int32_t main()
    {
        #ifndef ONLINE_JUDGE
            freopen("input.txt", "r", stdin);
            freopen("output.txt", "w", stdout);
        #endif
        faster;//fact(mod1);
        int t=1;
        cin>>t;
        for(int test=1;test<=t;test++)
        {
            solve(test);
        }
    }
#include <bits/stdc++.h>
using namespace std;
/*
#include <atcoder/all>
using namespace atcoder;
*/

#define rep(i, m, n) for(int(i) = (int)(m); i < (int)(n); ++i)
#define rep2(i, m, n) for(int(i) = (int)(n)-1; i >= (int)(m); --i)
#define REP(i, n) rep(i, 0, n)
#define REP2(i, n) rep2(i, 0, n)
#define all(hoge) (hoge).begin(), (hoge).end()
#define en '\n'
using ll = long long;
using ull = unsigned long long;
template <class T>
using vec = vector<T>;
template <class T>
using vvec = vector<vec<T>>;
typedef pair<ll, ll> P;
using tp = tuple<ll, ll, ll>;
constexpr long long INF = 1LL << 60;
constexpr int INF_INT = 1 << 25;
constexpr long long MOD = (ll)1e9 + 7;
//constexpr long long MOD = 998244353LL;
using ld = long double;
static const ld pi = 3.141592653589793L;
typedef vector<ll> Array;
typedef vector<Array> Matrix;

#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

template <class T>
inline bool chmin(T &a, T b) {
    if(a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T>
inline bool chmax(T &a, T b) {
    if(a < b) {
        a = b;
        return true;
    }
    return false;
}

//グラフ関連
struct Edge {
    ll to, cap, rev;
    Edge(ll _to, ll _cap, ll _rev) {
        to = _to;
        cap = _cap;
        rev = _rev;
    }
};
typedef vector<Edge> Edges;
typedef vector<Edges> Graph;

void add_edge(Graph &G, ll from, ll to, ll cap, bool revFlag, ll revCap) {
    G[from].push_back(Edge(to, cap, (ll)G[to].size()));
    if(revFlag)
        G[to].push_back(Edge(from, revCap, (ll)G[from].size() - 1));
}

void solve() {
    ll n;
    cin >> n;
    vec<ll> a(n);
    map<ll, ll> mp;
    REP(i, n) {
        cin >> a[i];
        mp[a[i]]++;
    }
    if(n % 2) {
        cout << "Second" << en;
    } else {
        bool flag = true;
        for(auto i : mp) {
            if(i.second % 2)
                flag = false;
        }
        if(flag)
            cout << "Second" << en;
        else
            cout << "First" << en;
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    ll t;
    cin >> t;
    while(t--)
        solve();

    return 0;
}
