#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define loopf(i,a,b) for(ll i=a;i<b;i++)
#define loopb(i,a,b) for(ll i=a;i>b;i--)
#define pb push_back
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
#define ff first
#define ss second
#define vc vector
#define pii pair<int,int>
#define pll pair<ll,ll>
//General defs
#define umap unordered_map
#define uset unordered_set
//Along with data types
#define mapii map<int,int>
#define mapll map<ll,ll>
#define seti set<int>
#define setll set<ll>
#define umapii unordered_map<int,int>
#define useti unordered_set<int>
#define umapll unordered_map<ll,ll>
#define usetll unordered_set<ll>
#define all(x) x.begin(),x.end()
const ll M=1e9+7;

//send the value and the line number
#define debug(i,line) cout << #i <<" = " << i<<" on the line "<<line<<endl;


void print(ll arr[],ll n){
	loopf(i,0,n)
	cout<<arr[i]<<" ";
	cout<<endl;
}
void print(int arr[],int n){
	loopf(i,0,n)
	cout<<arr[i]<<" ";
	cout<<endl;
}
void print(int arr[],ll n){
	loopf(i,0,n)
	cout<<arr[i]<<" ";
	cout<<endl;
}
void print(vc<ll> arr,ll n){
	loopf(i,0,n)
	cout<<arr[i]<<" ";
	cout<<endl;
}


//send a vector of long long along with the number below which you want to store
void sieve(vc<ll> &P,ll n)
{
    bool prime[n + 1];
    memset(prime, true, sizeof(prime));
    for (ll p = 2; p * p <= n; p++)
    {

        if (prime[p] == true)
        {

            for (int i = p * p; i <= n; i += p)
                prime[i] = false;
        }
	}
    for (ll p = 2; p <= n; p++)
        if (prime[p])
            P.pb(p);
}


//Check if a number is prime
bool check_prime(int n) {
    if (n <= 1)  return false;
    if (n <= 3)  return true;
    if (n%2 == 0 || n%3 == 0) return false;
    for (ll i=5; i*i<=n; i=i+6)
        if (n%i == 0 || n%(i+2) == 0)
           return false;
    return true;
}
bool check_prime(ll n) {
    if (n <= 1)  return false;
    if (n <= 3)  return true;
    if (n%2 == 0 || n%3 == 0) return false;
    for (ll i=5; i*i<=n; i=i+6)
        if (n%i == 0 || n%(i+2) == 0)
           return false;
    return true;
}

//GCD function
ll gcd(ll a,ll b){
	ll ans=__gcd(a,b);
	return ans;
}
ll gcd(int a,int b){
	ll ans=__gcd(a,b);
	return ans;
}

//LCM
ll lcm(ll a,ll b){
	ll ans=a*b/gcd(a,b);
	return ans;
}
ll lcm(int a,int b){
	ll ans=a*b/gcd(a,b);
	return ans;
}



bool check_palindrome(string s)
{
	ll n=s.length();

	for(int i=0,j=n-1 ; i<j ; i++,j-- )
	if(s[i]!=s[j]) return false;

	return true;
}

ll power(ll a,ll n)
{
	ll res=1,mod=M;
	while(n)
	{
		if(n%2)
		res=(res*a)%mod;

		a=(a*a)%mod;
		n=n/2;
	}

	return res;
}



vc<ll> fact;
void calculate_factorials(ll n)
{
	fact.resize(n+1,1);
	ll ans=1;
	loopf(i,1,n+1)
	{
		ans= ((ans%M)*(i%M))%M;
		fact[i]=ans;
	}

}


ll inverse(ll n)
{
	return power(n,M-2);
}



ll ncr(ll n,ll r)
{
	if(r==0) return 1;
	if(r==1 || r==(n-1)) return n;
	if(r>n || r<0) return -1;

	ll ans=((fact[n]*inverse(fact[r]))%M * (inverse(fact[n-r]))%M)%M;
	return ans;
}

// ******Author- M.S.A. Tanzeel ******
//***************************


void solve()
{
	ll n;
	cin>>n;
	ll x;
	
	mapll m;
	loopf(i,0,2*n)
	{
		cin>>x;
		m[x]++;
	}
	
	for(auto a: m)
	{
		if(a.ss&1 || a.ff&1)
		{
			cout<<"NO"<<endl;
			return;
		}
	}
	
	ll arr[n];
	
	ll cnt=0;
	for(auto a:m)
	arr[cnt++]=a.ff;
	
//	print(arr,n);
	
	ll hash[n]={0};
	
	if(arr[n-1]%(2*n)!=0)
	{
		cout<<"NO"<<endl;
			return;
	}
	
	hash[n-1]=arr[n-1]/(2*n);
	cnt=hash[n-1];
	ll tmp=2*n-2;
	
	loopb(i,n-2,-1)
	{
		arr[i]=arr[i]-2*cnt;
		if(arr[i]<=0 || arr[i]%tmp!=0)
		{
			cout<<"NO"<<endl;
			return;
		}
		
		hash[i]=arr[i]/tmp;
		cnt+=hash[i];
		tmp-=2;	
	}
	
//	print(hash,n);
	
	cout<<"YES"<<endl;
	
	
	
}

//*************************
//*************************



int main()
{
	//set this value to 1 to take test cases else 0
	bool take_test_cases=1;

	if(take_test_cases)
	{
		int t;
		cin>>t;
		while(t--)
		solve();
	}
	else
	solve();
}
