func_code_string: #define _USE_MATH_DEFINES   #include <bits/stdc++.h>   using namespace std;      //template   #define rep(i,a,b) for(int i=(int)(a);i<(int)(b);i++)   #define ALL(v) (v).begin(),(v).end()   using ll=long long int;   const int inf = 0x3fffffff; const ll INF = 0x1fffffffffffffff; const double eps=1e-12;   template<typename T>inline bool chmax(T& a,T b){if(a<b){a=b;return 1;}return 0;}   template<typename T>inline bool chmin(T& a,T b){if(a>b){a=b;return 1;}return 0;}   //end      void solve(int _rot){      // printf( Case #%d:  ,_rot);      int n;      cin>>n;      string s[3];      rep(i,0,3)cin>>s[i];      rep(_,0,3){         string S=s[_],T=s[(_+1)%3];         string res;            int S0=0,T0=0;         rep(i,0,n*2)if(S[i]== 0 )S0++;         rep(i,0,n*2)if(T[i]== 0 )T0++;         if((S0>n) and (T0<n))continue;         if((S0<n) and (T0>n))continue;         char mx;         if(S0>=n and T0>=n)mx= 0 ;         if(S0<=n and T0<=n)mx= 1 ;            int i1=0,i2=0;         for(;;){            int c1=0,c2=0;            while(i1<n*2 and S[i1]!=mx){               i1++; c1++;            }            while(i2<n*2 and T[i2]!=mx){               i2++; c2++;            }            res+=string(max(c1,c2),mx^ 0 ^ 1 );            res+=mx;            i1=min(i1+1,n*2);            i2=min(i2+1,n*2);            if(i1==n*2 and i2==n*2)break;         }         while(res.size()>n*3)res.pop_back();         while(res.size()<n*3)res+= 0 ;         cout<<res<<  n ;         return;      }   }      int main(){      int t; scanf( %d ,&t);      rep(rot,0,t)solve(rot+1);      return 0;   }