Z.avail_out = (buffer.free -= Z.total_out - buffer.used);
Z.next_out = (Bytef *) buffer.data + (buffer.used = Z.total_out);
status = inflate(&Z, Z_NO_FLUSH);
Z.avail_out = (buffer.free -= Z.total_out - buffer.used);
Z.next_out = (Bytef *) buffer.data + (buffer.used = Z.total_out);
status = inflate(&Z, Z_NO_FLUSH);