#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int maxlongint=2147483647; const int inf=1000000000; const int mod=inf+7; int ksm(int i,int j) { long long k=1,l=i; while(j) { if(j&1) k=k*l%mod; l=l*l%mod; j=j>>1; } return k; } long long jc[100010],ny[100010],now[100010],nyjc[100010]; int x[100010],num[100010],dp[100010]; int main() { int T,n1,i=0; cin>>T; jc[0]=nyjc[0]=1; for(n1=1;n1<=100000;n1++) jc[n1]=jc[n1-1]*n1%mod; for(n1=1;n1<=100000;n1++) { ny[n1]=ksm(n1,mod-2); nyjc[n1]=ksm(jc[n1],mod-2); } while(T--) { memset(x,0,sizeof(x)); int n; cin>>n; for(n1=1;n1<=n;n1++) scanf("%d",&num[n1]); sort(num+1,num+n+1); now[n]=jc[n]; for(n1=n-1;n1>=1;n1--) now[n1]=now[n1+1]*ny[n-n1+1]%mod*(n-n1)%mod; long long ans=0; for(n1=n;n1>=1;n1--) { if(n1==n||num[n1]!=num[n1+1]) dp[n1]=n1; else dp[n1]=dp[n1+1]; x[dp[n1]]++; ans=(ans+now[dp[n1]]*num[n1])%mod; } for(n1=1;n1<=n;n1++) ans=ans*nyjc[x[n1]]%mod; i++; printf("Case #%d: ",i); cout<