See base class.

def _from_binary_idx_root(cls, binary_stream):
    """See base class."""
    ''' Attribute type - 4
        Collation rule - 4
        Bytes per index record - 4
        Clusters per index record - 1
        Padding - 3
    '''
    attr_type, collation_rule, b_per_idx_r, c_per_idx_r = cls._REPR.unpack(binary_stream[:cls._REPR.size])
    node_header = IndexNodeHeader.create_from_binary(binary_stream[cls._REPR.size:])
    attr_type = AttrTypes(attr_type) if attr_type else None
    index_entry_list = []

    offset = cls._REPR.size + node_header.start_offset
    #loads all index entries related to the root node
    while True:
        entry = IndexEntry.create_from_binary(binary_stream[offset:], attr_type)
        index_entry_list.append(entry)
        if entry.flags & IndexEntryFlags.LAST_ENTRY:
            break
        else:
            offset += len(entry)

    nw_obj = cls((attr_type, CollationRule(collation_rule), b_per_idx_r,
                    c_per_idx_r, node_header, index_entry_list ))

    _MOD_LOGGER.debug("Attempted to unpack INDEX_ROOT Entry from \"%s\"\nResult: %s", binary_stream.tobytes(), nw_obj)

    return nw_obj