# File lib/net/sftp/protocol/01/attributes.rb, line 63
    def self.from_buffer( buffer )
      flags = buffer.read_long

      size = buffer.read_int64 if ( flags & F_SIZE ) != 0
      uid = buffer.read_long if ( flags & F_UIDGID ) != 0
      gid = buffer.read_long if ( flags & F_UIDGID ) != 0
      permissions = buffer.read_long if ( flags & F_PERMISSIONS ) != 0
      atime = buffer.read_long if ( flags & F_ACMODTIME ) != 0
      mtime = buffer.read_long if ( flags & F_ACMODTIME ) != 0

      if ( flags & F_EXTENDED ) != 0
        extended = Hash.new
        buffer.read_long.times do
          extended[ buffer.read_string ] = buffer.read_string
        end
      end

      new( size, uid, gid, permissions, atime, mtime, extended )
    end