docs: byte[] readNotificationResponse()
              throws DeviceDisconnectedException, DfuException, UploadAbortedException {
  		// do not clear the mReceiveData here. The response might already be obtained. Clear it in write request instead.
  		try {
  			synchronized (mLock) {
  				while ((mReceivedData == null && mConnected && mError == 0 && !mAborted) || mPaused)
  					mLock.wait();
  			}
  		} catch (final InterruptedException e) {
  			loge("Sleeping interrupted", e);
  		}
  		if (mAborted)
  			throw new UploadAbortedException();
  		if (!mConnected)
  			throw new DeviceDisconnectedException("Unable to write Op Code: device disconnected");
  		if (mError != 0)
  			throw new DfuException("Unable to write Op Code", mError);
  		return mReceivedData;
  	}