docs: def next_offsets(self):
          # type: (Descriptor) -> Offsets
          """Retrieve the next offsets
          :param Descriptor self: this
          :rtype: Offsets
          :return: upload offsets
          """
          resume_bytes = self._resume()
          with self._meta_lock:
              if self._chunk_num >= self._total_chunks:
                  return None, resume_bytes
              if self._offset + self._chunk_size > self._ase.size:
                  num_bytes = self._ase.size - self._offset
              else:
                  num_bytes = self._chunk_size
              chunk_num = self._chunk_num
              range_start = self._offset
              range_end = self._offset + num_bytes - 1
              self._offset += num_bytes
              self._chunk_num += 1
              if self._ase.is_encrypted and self._offset >= self._ase.size:
                  pad = True
              else:
                  pad = False
              return Offsets(
                  chunk_num=chunk_num,
                  num_bytes=num_bytes,
                  range_start=range_start,
                  range_end=range_end,
                  pad=pad,
              ), resume_bytes