parameters: (io_obj, width, length=None, o=None)
return_statement: return o.so_far()
docstring: Read values from `io_obj` using the rel/bit-packed hybrid encoding.
  
      If length is not specified, then a 32-bit int is read first to grab the
      length of the encoded data.
  
      file-obj is a NumpyIO of bytes; o if an output NumpyIO of int32
docstring_summary: Read values from `io_obj` using the rel/bit-packed hybrid encoding.
docstring_tokens: Read values from io_obj using the rel / bit - packed hybrid encoding .
function: def read_rle_bit_packed_hybrid(io_obj, width, length=None, o=None):  # pragma: no cover
      """Read values from `io_obj` using the rel/bit-packed hybrid encoding.
  
      If length is not specified, then a 32-bit int is read first to grab the
      length of the encoded data.
  
      file-obj is a NumpyIO of bytes; o if an output NumpyIO of int32
      """
      if length is None:
          length = read_length(io_obj)
      start = io_obj.loc
      while io_obj.loc-start < length and o.loc < o.len:
          header = read_unsigned_var_int(io_obj)
          if header & 1 == 0:
              read_rle(io_obj, header, width, o)
          else:
              read_bitpacked(io_obj, header, width, o)
      io_obj.loc = start + length
      return o.so_far()
function_tokens: def read_rle_bit_packed_hybrid ( io_obj , width , length = None , o = None ) : # pragma: no cover if length is None : length = read_length ( io_obj ) start = io_obj . loc while io_obj . loc - start < length and o . loc < o . len : header = read_unsigned_var_int ( io_obj ) if header & 1 == 0 : read_rle ( io_obj , header , width , o ) else : read_bitpacked ( io_obj , header , width , o ) io_obj . loc = start + length return o . so_far ( )