#include<bits/stdc++.h>
#define TTT abc(1,2,3);
using namespace std;
void abc(int a,int b,int c);
const int maxn=1e5;
const int maxa=1e7+5;
int Tot[maxa];
int n;
int A[maxn];
int X;
int ans1[maxn];
int ans2[maxn];
bool work(){
    sort(A+1,A+n+1);
    for(int j=1;j<n;j++){
        bool res=1;
        for(int i=1;i<=n;i++)Tot[A[i]]=0;
        for(int i=1;i<=n;i++)Tot[A[i]]++;
        ans1[1]=A[n];
        ans2[1]=A[j];
        Tot[ans1[1]]--;
        Tot[ans2[1]]--;
        if(Tot[ans1[1]]<0||Tot[ans2[1]]<0)continue;
        int head=n;
        X=ans1[1];
        for(int i=2;i<=n/2;i++){
            while(head==j||!Tot[A[head]]){
                head--;
                if(head<=0){
                    res=0;
                    break;
                }
            }
            ans1[i]=A[head];
            ans2[i]=X-ans1[i];
            Tot[ans1[i]]--;
            Tot[ans2[i]]--;
            //cout<<Tot[ans1[i]]<<","<<Tot[ans2[i]]<<endl;
            if(Tot[ans1[i]]<0||Tot[ans2[i]]<0){
                res=0;
                break;
            }

            X=ans1[i];
        }
        if(res)return 1;
    }
    return 0;
}


void input(){
    int T;
    cin>>T;
    while(T--){
        cin>>n;
        n*=2;
        for(int i=1;i<=n;i++){
            cin>>A[i];
        }
        bool flag=work();
        if(flag){
            cout<<"YES\n";
            cout<<ans1[1]+ans2[1]<<endl;
            for(int i=1;i<=n/2;i++)
            cout<<min(ans1[i],ans2[i])<<" "<<max(ans1[i],ans2[i])<<endl;
        }
        else cout<<"NO\n";
        for(int i=1;i<=n;i++)Tot[A[i]]=0;
    }
}







int main()
{
    //freopen("data.txt","r",stdin);
    //freopen("wa.txt","w",stdout);
    ios::sync_with_stdio(0);
    input();
    return 0;
}

















void abc(int a,int b,int c){
    c=a+b;
}

