from collections import Counter
for _ in range(int(input())):
n = int(input())
arr = list(map(int, input().split()))
k = int(input())
x = int(input())
b = [0] * n
# XOR a[i] ^ x
for i in range(n):
b[i] = arr[i] ^ x
dif = [0] * n
for i in range(n):
dif[i] = b[i] - arr[i]
# sorting according to highest positive difference and preserving index
dif1 = []
for i, j in enumerate(dif):
dif1.append([i, j])
dif1.sort(reverse=True, key=lambda x: x[1])
# if truth[i] == true then take value from xor array else from intital array (XOR)
truth = [False] * n
temp = 0
temp2 = 0
# Count no. whose value has increased
for i in range(n):
if dif1[i][1] >= 0:
temp += 1
# in this check if k<= no. whose value increased, then change their truthh value
# so we can take value from b during final profit
while True:
if k <= temp:
temp2 = temp // k
temp2 = temp2 * k
for i in range(temp2):
truth[dif1[i][0]] = True
temp = temp - temp2
else:
# if k < no. whose value increased after operation, then
# we check the new and old value and accordingly set truth value
new = 0
if temp2 + k <= n:
for i in range(temp2, temp2 + k):
new += b[dif1[i][0]]
old = 0
for i in range(temp2, temp2 + k):
old += arr[dif1[i][0]]
if new >= old:
for i in range(temp2, temp2 + k):
truth[dif1[i][0]] = True
break
profit = 0
for i in range(n):
# print(profit)
if truth[i]:
profit += b[i]
else:
profit += arr[i]
print(profit)
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgQ291bnRlcgoKZm9yIF8gaW4gcmFuZ2UoaW50KGlucHV0KCkpKToKICAgIG4gPSBpbnQoaW5wdXQoKSkKICAgIGFyciA9IGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKICAgIGsgPSBpbnQoaW5wdXQoKSkKICAgIHggPSBpbnQoaW5wdXQoKSkKCiAgICBiID0gWzBdICogbgoKICAgICMgWE9SIGFbaV0gXiB4CiAgICBmb3IgaSBpbiByYW5nZShuKToKICAgICAgICBiW2ldID0gYXJyW2ldIF4geAoKICAgIGRpZiA9IFswXSAqIG4KICAgIGZvciBpIGluIHJhbmdlKG4pOgogICAgICAgIGRpZltpXSA9IGJbaV0gLSBhcnJbaV0KCiAgICAjIHNvcnRpbmcgYWNjb3JkaW5nIHRvIGhpZ2hlc3QgcG9zaXRpdmUgZGlmZmVyZW5jZSBhbmQgcHJlc2VydmluZyBpbmRleAogICAgZGlmMSA9IFtdCiAgICBmb3IgaSwgaiBpbiBlbnVtZXJhdGUoZGlmKToKICAgICAgICBkaWYxLmFwcGVuZChbaSwgal0pCgogICAgZGlmMS5zb3J0KHJldmVyc2U9VHJ1ZSwga2V5PWxhbWJkYSB4OiB4WzFdKQoKICAgICMgaWYgdHJ1dGhbaV0gPT0gdHJ1ZSB0aGVuIHRha2UgdmFsdWUgZnJvbSB4b3IgYXJyYXkgZWxzZSBmcm9tIGludGl0YWwgYXJyYXkgKFhPUikKICAgIHRydXRoID0gW0ZhbHNlXSAqIG4KICAgIHRlbXAgPSAwCiAgICB0ZW1wMiA9IDAKCiAgICAjIENvdW50IG5vLiB3aG9zZSB2YWx1ZSBoYXMgaW5jcmVhc2VkCiAgICBmb3IgaSBpbiByYW5nZShuKToKICAgICAgICBpZiBkaWYxW2ldWzFdID49IDA6CiAgICAgICAgICAgIHRlbXAgKz0gMQogICAgIyBpbiB0aGlzIGNoZWNrIGlmIGs8PSBuby4gd2hvc2UgdmFsdWUgaW5jcmVhc2VkLCB0aGVuIGNoYW5nZSB0aGVpciB0cnV0aGggdmFsdWUKICAgICMgc28gd2UgY2FuIHRha2UgdmFsdWUgZnJvbSBiIGR1cmluZyBmaW5hbCBwcm9maXQKICAgIHdoaWxlIFRydWU6CiAgICAgICAgaWYgayA8PSB0ZW1wOgogICAgICAgICAgICB0ZW1wMiA9IHRlbXAgLy8gawogICAgICAgICAgICB0ZW1wMiA9IHRlbXAyICogawogICAgICAgICAgICBmb3IgaSBpbiByYW5nZSh0ZW1wMik6CiAgICAgICAgICAgICAgICB0cnV0aFtkaWYxW2ldWzBdXSA9IFRydWUKICAgICAgICAgICAgdGVtcCA9IHRlbXAgLSB0ZW1wMgogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgaWYgayA8IG5vLiB3aG9zZSB2YWx1ZSBpbmNyZWFzZWQgYWZ0ZXIgb3BlcmF0aW9uLCB0aGVuCiAgICAgICAgICAgICMgd2UgY2hlY2sgdGhlIG5ldyBhbmQgb2xkIHZhbHVlIGFuZCBhY2NvcmRpbmdseSBzZXQgdHJ1dGggdmFsdWUKICAgICAgICAgICAgbmV3ID0gMAogICAgICAgICAgICBpZiB0ZW1wMiArIGsgPD0gbjoKICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHRlbXAyLCB0ZW1wMiArIGspOgogICAgICAgICAgICAgICAgICAgIG5ldyArPSBiW2RpZjFbaV1bMF1dCgogICAgICAgICAgICAgICAgb2xkID0gMAogICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UodGVtcDIsIHRlbXAyICsgayk6CiAgICAgICAgICAgICAgICAgICAgb2xkICs9IGFycltkaWYxW2ldWzBdXQogICAgICAgICAgICAgICAgaWYgbmV3ID49IG9sZDoKICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSh0ZW1wMiwgdGVtcDIgKyBrKToKICAgICAgICAgICAgICAgICAgICAgICAgdHJ1dGhbZGlmMVtpXVswXV0gPSBUcnVlCiAgICAgICAgICAgIGJyZWFrCgogICAgcHJvZml0ID0gMAogICAgZm9yIGkgaW4gcmFuZ2Uobik6CiAgICAgICAgIyBwcmludChwcm9maXQpCiAgICAgICAgaWYgdHJ1dGhbaV06CiAgICAgICAgICAgIHByb2ZpdCArPSBiW2ldCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcHJvZml0ICs9IGFycltpXQoKICAgIHByaW50KHByb2ZpdCk=