#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void solve(int n, vector<int>& a) {
vector<int> vec1;
for (int i = 0; i < n; i++) {
if (a[i] == 1) {
vec1.push_back(i);
}
}
int bestLen = 0;
int bestL = -1, bestR = -1;
// Check if at least a single 1 is possible (score >= 1)
for (int i = 0; i < n; i++) {
if (a[i] != 0) {
bestLen = 1;
bestL = i;
bestR = i;
break;
}
}
auto update = [&](int l, int r) {
if (l != -1 && r != -1 && l < r) {
int len = r - l + 1;
if (len > bestLen) {
bestLen = len;
bestL = l;
bestR = r;
}
}
};
if (vec1.empty()) {
int first = -1, last = -1;
for (int i = 0; i < n; i++) {
if (a[i] != 0) {
if (first == -1) first = i;
last = i;
}
}
update(first, last);
} else {
for (size_t i = 0; i + 1 < vec1.size(); i++) {
update(vec1[i], vec1[i + 1]);
}
int first_avail = -1;
for (int i = 0; i < vec1[0]; i++) {
if (a[i] != 0) {
first_avail = i;
break;
}
}
update(first_avail, vec1[0]);
int last_avail = -1;
for (int i = n - 1; i > vec1.back(); i--) {
if (a[i] != 0) {
last_avail = i;
break;
}
}
update(vec1.back(), last_avail);
}
if (bestL != -1) a[bestL] = 1;
if (bestR != -1) a[bestR] = 1;
for (int i = 0; i < n; i++) {
if (a[i] == -1) {
a[i] = 0;
}
}
for (int i = 0; i < n; i++) {
cout << a[i] << (i + 1 == n ? "" : " ");
}
cout << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
vector<int> a(n);
for (auto &x : a)
cin >> x;
solve(n, a);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc29sdmUoaW50IG4sIHZlY3RvcjxpbnQ+JiBhKSB7CiAgICB2ZWN0b3I8aW50PiB2ZWMxOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoYVtpXSA9PSAxKSB7CiAgICAgICAgICAgIHZlYzEucHVzaF9iYWNrKGkpOwogICAgICAgIH0KICAgIH0KCiAgICBpbnQgYmVzdExlbiA9IDA7CiAgICBpbnQgYmVzdEwgPSAtMSwgYmVzdFIgPSAtMTsKCiAgICAvLyBDaGVjayBpZiBhdCBsZWFzdCBhIHNpbmdsZSAxIGlzIHBvc3NpYmxlIChzY29yZSA+PSAxKQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoYVtpXSAhPSAwKSB7CiAgICAgICAgICAgIGJlc3RMZW4gPSAxOwogICAgICAgICAgICBiZXN0TCA9IGk7CiAgICAgICAgICAgIGJlc3RSID0gaTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIGF1dG8gdXBkYXRlID0gWyZdKGludCBsLCBpbnQgcikgewogICAgICAgIGlmIChsICE9IC0xICYmIHIgIT0gLTEgJiYgbCA8IHIpIHsKICAgICAgICAgICAgaW50IGxlbiA9IHIgLSBsICsgMTsKICAgICAgICAgICAgaWYgKGxlbiA+IGJlc3RMZW4pIHsKICAgICAgICAgICAgICAgIGJlc3RMZW4gPSBsZW47CiAgICAgICAgICAgICAgICBiZXN0TCA9IGw7CiAgICAgICAgICAgICAgICBiZXN0UiA9IHI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwoKICAgIGlmICh2ZWMxLmVtcHR5KCkpIHsKICAgICAgICBpbnQgZmlyc3QgPSAtMSwgbGFzdCA9IC0xOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChhW2ldICE9IDApIHsKICAgICAgICAgICAgICAgIGlmIChmaXJzdCA9PSAtMSkgZmlyc3QgPSBpOwogICAgICAgICAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXBkYXRlKGZpcnN0LCBsYXN0KTsKICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgKyAxIDwgdmVjMS5zaXplKCk7IGkrKykgewogICAgICAgICAgICB1cGRhdGUodmVjMVtpXSwgdmVjMVtpICsgMV0pOwogICAgICAgIH0KCiAgICAgICAgaW50IGZpcnN0X2F2YWlsID0gLTE7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMxWzBdOyBpKyspIHsKICAgICAgICAgICAgaWYgKGFbaV0gIT0gMCkgewogICAgICAgICAgICAgICAgZmlyc3RfYXZhaWwgPSBpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXBkYXRlKGZpcnN0X2F2YWlsLCB2ZWMxWzBdKTsKCiAgICAgICAgaW50IGxhc3RfYXZhaWwgPSAtMTsKICAgICAgICBmb3IgKGludCBpID0gbiAtIDE7IGkgPiB2ZWMxLmJhY2soKTsgaS0tKSB7CiAgICAgICAgICAgIGlmIChhW2ldICE9IDApIHsKICAgICAgICAgICAgICAgIGxhc3RfYXZhaWwgPSBpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXBkYXRlKHZlYzEuYmFjaygpLCBsYXN0X2F2YWlsKTsKICAgIH0KCiAgICBpZiAoYmVzdEwgIT0gLTEpIGFbYmVzdExdID0gMTsKICAgIGlmIChiZXN0UiAhPSAtMSkgYVtiZXN0Ul0gPSAxOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaWYgKGFbaV0gPT0gLTEpIHsKICAgICAgICAgICAgYVtpXSA9IDA7CiAgICAgICAgfQogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY291dCA8PCBhW2ldIDw8IChpICsgMSA9PSBuID8gIiIgOiAiICIpOwogICAgfQogICAgY291dCA8PCAnXG4nOwp9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CgogICAgICAgIHZlY3RvcjxpbnQ+IGEobik7CiAgICAgICAgZm9yIChhdXRvICZ4IDogYSkKICAgICAgICAgICAgY2luID4+IHg7CgogICAgICAgIHNvbHZlKG4sIGEpOwogICAgfQoKICAgIHJldHVybiAwOwp9
MTAKNgoxIDAgLTEgMCAwIDEKNwowIC0xIDAgMCAxIDAgMQo1Ci0xIDAgMCAtMSAwCjQKMCAwIDAgMAoxCi0xCjYKMSAwIDEgMCAwIC0xCjcKMCAxIDAgMCAwIDEgMAo2Ci0xIC0xIC0xIC0xIC0xIC0xCjcKLTEgMCAxIC0xIDAgMCAxCjMKLTEgMCAwCg==
10
6
1 0 -1 0 0 1
7
0 -1 0 0 1 0 1
5
-1 0 0 -1 0
4
0 0 0 0
1
-1
6
1 0 1 0 0 -1
7
0 1 0 0 0 1 0
6
-1 -1 -1 -1 -1 -1
7
-1 0 1 -1 0 0 1
3
-1 0 0