/// <summary>
        /// Read first value from a byte array.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static UInt64 ReadOneDefault(Byte[] input)
        {
            if (null == input)
            {
                throw new ArgumentNullException(nameof(input));
            }

            using (var stream = new MemoryStream(input)) {
                using (var reader = new EliasOmegaUnsignedReader(stream)) {
                    return(reader.Read());
                }
            }
        }
 /// <summary>
 /// Read the next value.
 /// </summary>
 /// <returns></returns>
 public Int64 Read()
 {
     return(ZigZag.Decode(Underlying.Read()));
 }