code: public ULocale getFunctionalEquivalent(ULocale locale, boolean[] isAvailable) {
          if (isAvailable != null && isAvailable.length > 0) {
              String localeId = ULocale.canonicalize(locale.getBaseName());
              Map<String, String> idMap = getLocaleIdToRulesIdMap(PluralType.CARDINAL);
              isAvailable[0] = idMap.containsKey(localeId);
          }
  
          String rulesId = getRulesIdForLocale(locale, PluralType.CARDINAL);
          if (rulesId == null || rulesId.trim().length() == 0) {
              return ULocale.ROOT; // ultimate fallback
          }
  
          ULocale result = getRulesIdToEquivalentULocaleMap().get(
                  rulesId);
          if (result == null) {
              return ULocale.ROOT; // ultimate fallback
          }
  
          return result;
      }
docs: Returns the functionally equivalent locale.