def _getApplicableFeatures(self, script, langSys):
        # first check to see if this has already been found
        if (script, langSys) in self._applicableFeatureCache:
            return self._applicableFeatureCache[script, langSys]
        scriptList = self.ScriptList
        # 1. Find the appropriate script record
        scriptRecords = scriptList.ScriptRecord
        defaultScript = None
        applicableScript = None
        for scriptRecord in scriptRecords:
            scriptTag = scriptRecord.ScriptTag
            if scriptTag == "DFLT":
                defaultScript = scriptRecord.Script
                continue
            if scriptTag == script:
                applicableScript = scriptRecord.Script
                break
        # 2. if no suitable script record was found, return an empty list
        if applicableScript is None:
            applicableScript = defaultScript
        if applicableScript is None:
            return []
        # 3. get the applicable langSys records
        defaultLangSys = applicableScript.DefaultLangSys
        specificLangSys = None
        # if we have a langSys and the table
        # defines specific langSys behavior,
        # try to find a matching langSys record
        if langSys is not None and applicableScript.LangSysCount:
            for langSysRecord in applicableScript.LangSysRecord:
                langSysTag = langSysRecord.LangSysTag
                if langSysTag == langSys:
                    specificLangSys = langSysRecord.LangSys
                    break
        # 4. get the list of applicable features
        applicableFeatures = set()
        if specificLangSys is None:
            if defaultLangSys is not None:
                if defaultLangSys.FeatureCount:
                    applicableFeatures |= set(defaultLangSys.FeatureIndex)
                if defaultLangSys.ReqFeatureIndex != 0xFFFF:
                    applicableFeatures.add(defaultLangSys.ReqFeatureIndex)
        else:
            if specificLangSys.FeatureCount:
                applicableFeatures |= set(specificLangSys.FeatureIndex)
            if specificLangSys.ReqFeatureIndex != 0xFFFF:
                applicableFeatures.add(specificLangSys.ReqFeatureIndex)
        applicableFeatures = self._getFeatures(applicableFeatures)
        # store the found features for potential use by this method
        self._applicableFeatureCache[script, langSys] = applicableFeatures
        return applicableFeatures
.. versionadded:: 2015.8.0
dataset/ETHPy150Open typesupply/compositor/Lib/compositor/tables.py/BaseTable._getApplicableFeatures--crossover with--dataset/ETHPy150Open saltstack/salt/salt/cloud/clouds/msazure.py/show_storage_container_acl