collate = function(luisList) {
    if (luisList.length === 0) return
    let luisObject = new Luis(luisList[0])
    let hashTable = {};
    initializeHash(luisObject, hashTable)
    for(let i = 1; i < luisList.length; i++) {
        let blob = luisList[i]
        mergeResults(blob, luisObject, LUISObjNameEnum.INTENT);
        mergeResults(blob, luisObject, LUISObjNameEnum.ENTITIES);
        mergeNDepthEntities(blob.entities, luisObject.entities);
        mergeResults_closedlists(blob, luisObject, LUISObjNameEnum.CLOSEDLISTS);
        mergeResults(blob, luisObject, LUISObjNameEnum.PATTERNANYENTITY);
        mergeResultsWithHash(blob, luisObject, LUISObjNameEnum.UTTERANCE, hashTable);
        mergeResultsWithHash(blob, luisObject, LUISObjNameEnum.PATTERNS, hashTable);
        buildRegex(blob, luisObject)
        buildPrebuiltEntities(blob, luisObject)
        buildModelFeatures(blob, luisObject)
        buildComposites(blob, luisObject)
        buildPatternAny(blob, luisObject)
    }
    helpers.checkAndUpdateVersion(luisObject)
    helpers.cleanUpExplicitEntityProperty(luisObject)
    cleanupEntities(luisObject)
    return luisObject
}
Collates a list of Luis instances into one.
@param {Array<Luis>} luisList Array of Luis instances to be collate
@param {Luis} luisObject Luis instances to collate with
@throws {exception} Throws on errors. exception object includes errCode and text.