#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
int t = 0;
cin>>t;
while (t--)
{
int p = 0, q = 0, r = 0;
cin>>p>>q>>r;
long long int A[p], B[q], C[r], sumA[p], sumC[r];
for(int I=0;I<p;I++)
{
cin>>A[I];
}
sort(A, A+p);
sumA[0] = A[0];
for(int I=1;I<p;I++)
{
sumA[I] = sumA[I-1]+A[I];
}
for(int I=0;I<q;I++)
{
cin>>B[I];
}
for(int I=0;I<r;I++)
{
cin>>C[I];
}
sort(C, C+r);
sumC[0] = C[0];
for(int I=1;I<r;I++)
{
sumC[I] = sumC[I-1]+C[I];
}
long long int main_Res = 0, temp_Res = 0;
for(int I=0;I<q;I++)
{
temp_Res = 0;
long long int * indexA = upper_bound(A, A+p, B[I])-1;
long long int * indexC = upper_bound(C, C+r, B[I])-1;
if(indexA<=0 || indexC <= 0)
{
main_Res +=0;
continue;
}
int actual_indexA = std::distance(A,indexA);
int actual_indexC = std::distance(C,indexC);
//cout<<"indexA:"<<(*indexA)<<":::indexC:"<<x<<"\n";
temp_Res+=((( (actual_indexA+1) * B[I])%1000000007+(sumA[actual_indexA])%1000000007 )%1000000007) * ((((actual_indexC+1) * B[I])%1000000007+(sumC[actual_indexC])%1000000007)%1000000007);
main_Res += temp_Res%1000000007;
main_Res = main_Res%1000000007;
}
cout<<main_Res%1000000007<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiAKaW50IG1haW4oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWludCB0ID0gMDsKCWNpbj4+dDsKIAogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBpbnQgcCA9IDAsIHEgPSAwLCByID0gMDsKICAgICAgICBjaW4+PnA+PnE+PnI7CiAgICAgICAgbG9uZyBsb25nIGludCBBW3BdLCBCW3FdLCBDW3JdLCBzdW1BW3BdLCBzdW1DW3JdOwogICAgICAgIGZvcihpbnQgST0wO0k8cDtJKyspCiAgICAgICAgewogICAgCQljaW4+PkFbSV07CiAgICAgICAgfQogICAgICAgIHNvcnQoQSwgQStwKTsKICAgICAgICAKICAgICAgICBzdW1BWzBdID0gQVswXTsKICAgICAgICBmb3IoaW50IEk9MTtJPHA7SSsrKQogICAgICAgIHsKICAgIAkJc3VtQVtJXSA9IHN1bUFbSS0xXStBW0ldOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IEk9MDtJPHE7SSsrKQogICAgICAgIHsKICAgIAkJY2luPj5CW0ldOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmb3IoaW50IEk9MDtJPHI7SSsrKQogICAgICAgIHsKICAgIAkJY2luPj5DW0ldOwogICAgICAgIH0KICAgICAgICBzb3J0KEMsIEMrcik7CiAgICAgICAgCiAgICAgICAgc3VtQ1swXSA9IENbMF07CiAgICAgICAgZm9yKGludCBJPTE7STxyO0krKykKICAgICAgICB7CiAgICAJCXN1bUNbSV0gPSBzdW1DW0ktMV0rQ1tJXTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgbG9uZyBsb25nIGludCBtYWluX1JlcyA9IDAsIHRlbXBfUmVzID0gMDsKICAgICAgICBmb3IoaW50IEk9MDtJPHE7SSsrKQogICAgICAgIHsKICAgICAgICAJdGVtcF9SZXMgPSAwOwogICAgICAgIAlsb25nIGxvbmcgaW50ICogaW5kZXhBID0gdXBwZXJfYm91bmQoQSwgQStwLCBCW0ldKS0xOwogICAgCQlsb25nIGxvbmcgaW50ICogaW5kZXhDID0gdXBwZXJfYm91bmQoQywgQytyLCBCW0ldKS0xOwogICAgCQlpZihpbmRleEE8PTAgfHwgaW5kZXhDIDw9IDApCiAgICAJCXsKICAgIAkJCW1haW5fUmVzICs9MDsKICAgIAkJCWNvbnRpbnVlOwogICAgCQl9CiAgICAJCWludCBhY3R1YWxfaW5kZXhBID0gc3RkOjpkaXN0YW5jZShBLGluZGV4QSk7CiAgICAJCWludCBhY3R1YWxfaW5kZXhDID0gc3RkOjpkaXN0YW5jZShDLGluZGV4Qyk7CiAgICAJCS8vY291dDw8ImluZGV4QToiPDwoKmluZGV4QSk8PCI6OjppbmRleEM6Ijw8eDw8IlxuIjsKICAgIAkJdGVtcF9SZXMrPSgoKCAoYWN0dWFsX2luZGV4QSsxKSAqIEJbSV0pJTEwMDAwMDAwMDcrKHN1bUFbYWN0dWFsX2luZGV4QV0pJTEwMDAwMDAwMDcgKSUxMDAwMDAwMDA3KSAqICgoKChhY3R1YWxfaW5kZXhDKzEpICogQltJXSklMTAwMDAwMDAwNysoc3VtQ1thY3R1YWxfaW5kZXhDXSklMTAwMDAwMDAwNyklMTAwMDAwMDAwNyk7CiAgICAJCW1haW5fUmVzICs9IHRlbXBfUmVzJTEwMDAwMDAwMDc7CiAgICAJCW1haW5fUmVzID0gbWFpbl9SZXMlMTAwMDAwMDAwNzsKICAgIAl9CgkJY291dDw8bWFpbl9SZXMlMTAwMDAwMDAwNzw8IlxuIjsgIAogICAgfQoJcmV0dXJuIDA7Cn0gIA==