#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PII;
typedef vector<int> VI;
typedef vector<VI> VVI;
#define MAXN 200005
#define pb push_back
#define mp make_pair
#define MOD (ll)1e9+7
#define FASTIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define rep(i, a, b) for(int i = a; i < b; ++i)
#define SSTR( x ) static_cast< std::ostringstream & >( \
( std::ostringstream() << std::dec << x ) ).str()
int main() {
FASTIO
int t;
cin >> t;
while(t--) {
int n; cin >> n;
vector<int> a(n);
int sum = 0;
rep(i, 0, n) {
cin >> a[i];
sum += a[i];
}
int ansIdx = -1;
for(int i = 0; i < n; ++i) {
int rem = sum - a[i];
if(!(rem%a[i])) {
ansIdx = i;
break;
}
}
if(ansIdx == -1) {
int smol = *min_element(a.begin(), a.end());
int rem = sum - smol;
bool done = false;
for(int i = 0; i < n; ++i) {
if(!done and a[i] == smol) {
done = true;
cout << -rem;
}
else {
cout << smol;
}
cout << " ";
}
}
else {
assert(ansIdx != -1 and abs(-(sum-a[ansIdx])/a[ansIdx]) <= 1000000000);
int ss = 0;
for(int i = 0; i < n; ++i) {
int x = 0;
if(i == ansIdx)
x = -((sum-a[i])/a[i]);
else
x = 1;
ss += x * a[i];
}
assert(ss == 0);
for(int i = 0; i < n; ++i) {
if(i == ansIdx)
cout << -(sum-a[i])/a[i];
else
cout << 1;
cout << " ";
}
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IFBJSTsKdHlwZWRlZiB2ZWN0b3I8aW50PiBWSTsKdHlwZWRlZiB2ZWN0b3I8Vkk+IFZWSTsKIAojZGVmaW5lIE1BWE4gMjAwMDA1CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgTU9EIChsbCkxZTkrNwojZGVmaW5lIEZBU1RJTyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSByZXAoaSwgYSwgYikgZm9yKGludCBpID0gYTsgaSA8IGI7ICsraSkKIAojZGVmaW5lIFNTVFIoIHggKSBzdGF0aWNfY2FzdDwgc3RkOjpvc3RyaW5nc3RyZWFtICYgPiggXAogICAgICAgICggc3RkOjpvc3RyaW5nc3RyZWFtKCkgPDwgc3RkOjpkZWMgPDwgeCApICkuc3RyKCkKCgoKaW50IG1haW4oKSB7CiAgICBGQVNUSU8KICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pIHsKICAgICAgICBpbnQgbjsgY2luID4+IG47CiAgICAgICAgdmVjdG9yPGludD4gYShuKTsKICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICByZXAoaSwgMCwgbikgewogICAgICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICAgICAgc3VtICs9IGFbaV07CiAgICAgICAgfQogICAgICAgIGludCBhbnNJZHggPSAtMTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIGludCByZW0gPSBzdW0gLSBhW2ldOwogICAgICAgICAgICBpZighKHJlbSVhW2ldKSkgewogICAgICAgICAgICAgICAgYW5zSWR4ID0gaTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKGFuc0lkeCA9PSAtMSkgewogICAgICAgICAgICBpbnQgc21vbCA9ICptaW5fZWxlbWVudChhLmJlZ2luKCksIGEuZW5kKCkpOwogICAgICAgICAgICBpbnQgcmVtID0gc3VtIC0gc21vbDsKICAgICAgICAgICAgYm9vbCBkb25lID0gZmFsc2U7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgICAgIGlmKCFkb25lIGFuZCBhW2ldID09IHNtb2wpIHsKICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IC1yZW07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IHNtb2w7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb3V0IDw8ICIgIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgYXNzZXJ0KGFuc0lkeCAhPSAtMSBhbmQgYWJzKC0oc3VtLWFbYW5zSWR4XSkvYVthbnNJZHhdKSA8PSAxMDAwMDAwMDAwKTsKICAgICAgICAgICAgaW50IHNzID0gMDsKICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICAgICAgaW50IHggPSAwOwogICAgICAgICAgICAgICAgaWYoaSA9PSBhbnNJZHgpCiAgICAgICAgICAgICAgICAgICAgeCA9IC0oKHN1bS1hW2ldKS9hW2ldKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB4ID0gMTsKICAgICAgICAgICAgICAgIHNzICs9IHggKiBhW2ldOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGFzc2VydChzcyA9PSAwKTsKICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICAgICAgaWYoaSA9PSBhbnNJZHgpCiAgICAgICAgICAgICAgICAgICAgY291dCA8PCAtKHN1bS1hW2ldKS9hW2ldOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgMTsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIiAiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgIH0KICAgIHJldHVybiAwOwp9