import collections
d = raw_input();
d = int(d)
while d:
dish = raw_input()
na=0
#print dish, len(dish)
if (len(dish)<2):
na=1
elif (len(dish)!=1 and len(dish)%2!=0):
letters = collections.Counter(dish);
#print letters
c = letters.values()
one=0
two=0
for i in range(len(c)):
if (c[i]%2!=0):
one+=1;
elif (c[i]%2==0):
two+=1;
else:
na=1;
break;
"""print one
print two
print na"""
if (na!=1):
if (one==1):
for l, v in letters.iteritems():
if (v%2!=0):
sep=l;
#print sep;
dish1 = dish.replace(sep,"");
#print dish1
s1 = dish1[:len(dish1)/2]
s2 = dish1[len(dish1)/2:]
#print s1
#print s2
if (s1!=s2):
na=1;
"""for i in range(0,len(dish1)/2):
if (dish1[i]!=dish1[i+(len(dish1)/2)+1]):
na=1;
break;
for i in range(len(c)):
if (c[i]==1):
sep=i;
break;
print letters[i];"""
else:
na=1;
else:
na=1;
elif (len(dish)!=1 and len(dish)%2==0):
s1 = dish[:len(dish)/2]
s2 = dish[len(dish)/2:]
#print s1
#print s2
if (s1!=s2):
na=1;
if (na==0):
print "YES"
elif (na==1):
print "NO"
d=d-1
aW1wb3J0IGNvbGxlY3Rpb25zCiAKZCA9IHJhd19pbnB1dCgpOwpkID0gaW50KGQpCiAKd2hpbGUgZDoKCWRpc2ggPSAJcmF3X2lucHV0KCkKCW5hPTAKCSNwcmludCBkaXNoLCBsZW4oZGlzaCkKCWlmIChsZW4oZGlzaCk8Mik6CgkJbmE9MQoJZWxpZiAobGVuKGRpc2gpIT0xIGFuZCBsZW4oZGlzaCklMiE9MCk6CgkJbGV0dGVycyA9IGNvbGxlY3Rpb25zLkNvdW50ZXIoZGlzaCk7CgkJI3ByaW50IGxldHRlcnMKCQljID0gbGV0dGVycy52YWx1ZXMoKQoJCW9uZT0wCgkJdHdvPTAKCQlmb3IgaSBpbiByYW5nZShsZW4oYykpOgoJCQlpZiAoY1tpXSUyIT0wKToKCQkJCW9uZSs9MTsKCQkJZWxpZiAoY1tpXSUyPT0wKToKCQkJCXR3bys9MTsKCQkJZWxzZToKCQkJCW5hPTE7CgkJCQlicmVhazsKCQkiIiJwcmludCBvbmUKCQlwcmludCB0d28KCQlwcmludCBuYSIiIgoJCQoJCQoJCWlmIChuYSE9MSk6CgkJCWlmIChvbmU9PTEpOgoJCQkJZm9yIGwsIHYgaW4gbGV0dGVycy5pdGVyaXRlbXMoKToKCQkJCQlpZiAodiUyIT0wKToKCQkJCQkJc2VwPWw7CgkJCQkJCSNwcmludCBzZXA7CgkJCQlkaXNoMSA9IGRpc2gucmVwbGFjZShzZXAsIiIpOwoJCQkJI3ByaW50IGRpc2gxCgkJCQkKCQkJCXMxID0gZGlzaDFbOmxlbihkaXNoMSkvMl0KCQkJCXMyID0gZGlzaDFbbGVuKGRpc2gxKS8yOl0KCQkJCQoJCQkJI3ByaW50IHMxCgkJCQkjcHJpbnQgczIKCQkJCQoJCQkJaWYgKHMxIT1zMik6CgkJCQkJbmE9MTsKCQkJCQoJCQkJIiIiZm9yIGkgaW4gcmFuZ2UoMCxsZW4oZGlzaDEpLzIpOgoJCQkJCWlmIChkaXNoMVtpXSE9ZGlzaDFbaSsobGVuKGRpc2gxKS8yKSsxXSk6CgkJCQkJCW5hPTE7CgkJCQkJCWJyZWFrOwoJCQkJZm9yIGkgaW4gcmFuZ2UobGVuKGMpKToKCQkJCQlpZiAoY1tpXT09MSk6CgkJCQkJCXNlcD1pOwoJCQkJCQlicmVhazsKCQkJCXByaW50IGxldHRlcnNbaV07IiIiCgkJCWVsc2U6CgkJCQluYT0xOwoJCWVsc2U6CgkJCW5hPTE7CgllbGlmIChsZW4oZGlzaCkhPTEgYW5kIGxlbihkaXNoKSUyPT0wKToKCQlzMSA9IGRpc2hbOmxlbihkaXNoKS8yXQoJCXMyID0gZGlzaFtsZW4oZGlzaCkvMjpdCgkJI3ByaW50IHMxCgkJI3ByaW50IHMyCgkJaWYgKHMxIT1zMik6CgkJCW5hPTE7CglpZiAobmE9PTApOgoJCXByaW50ICJZRVMiCgllbGlmIChuYT09MSk6CgkJcHJpbnQgIk5PIgkKCWQ9ZC0xCQ==