#include <stdio.h>
#include <string.h>
int main() {
int t;
scanf("%d", &t);
while(t–){
char frSeq[26], chEn[150000];
int i=0 ,k=0,frOrder[26];
char frVal[26],c;
scanf("%s %[^\n]s",frSeq,chEn);
int size = strlen(chEn);
int isCap[size];
for(i=0;i<26;i++){
frOrder[i]=0;
frVal[i]='0';
}
for(i=0;i<size;i++){
c=chEn[i];
if(c>='a'&&c<='z'){
frOrder[c-'a']++;
if(k<frOrder[c-'a']){
k=frOrder[c-'a'];
}
isCap[i]=0;
}else if(c>='A'&&c<='Z'){
frOrder[c-'A']++;
chEn[i]=chEn[i]+'a'-'A';
if(k<frOrder[c-'A']){
k=frOrder[c-'A'];
}
isCap[i]=1;
}else{
isCap[i]=-1;
}
}
int ct=25;
while(k!=-1){
for(int j=25; j>=0; j--){
if(frOrder[j]==k){
frVal[ct]='a'+j;
ct--;
}
}
k--;
}
for(int j=0; j<size; j++){
for(int x=25; x>0; x--){
if(chEn[j]==frVal[x]){
if(isCap[j]==1){
chEn[j]=frSeq[x]-('a'-'A');
}else if(isCap[j]==0){
chEn[j]=frSeq[x];
}
break;
}
}
}
printf("%s\n", chEn);
}
return 0;
}