getLocations(streamId, ignoreBaseUrls = false) {
    const streamLocations = this.locations_.get(streamId) || new Map();
    /** @type {!Array<!{pathwayId: string, location: string}>} */
    let locationsPathwayIdMap = [];
    for (const pathwayId of this.pathwayPriority_) {
      const location = streamLocations.get(pathwayId);
      if (location) {
        locationsPathwayIdMap.push({pathwayId, location});
      } else {
        const clone = this.pathwayClones_.find((c) => c.ID == pathwayId);
        if (clone) {
          const cloneLocation = streamLocations.get(clone['BASE-ID']);
          if (cloneLocation) {
            if (clone['URI-REPLACEMENT'].HOST) {
              const uri = new goog.Uri(cloneLocation);
              uri.setDomain(clone['URI-REPLACEMENT'].HOST);
              locationsPathwayIdMap.push({
                pathwayId: pathwayId,
                location: uri.toString(),
              });
            } else {
              locationsPathwayIdMap.push({
                pathwayId: pathwayId,
                location: cloneLocation,
              });
            }
          }
        }
      }
    }

    const now = Date.now();
    for (const uri of this.bannedLocations_.keys()) {
      const bannedUntil = this.bannedLocations_.get(uri);
      if (now > bannedUntil) {
        this.bannedLocations_.delete(uri);
      }
    }
    locationsPathwayIdMap = locationsPathwayIdMap.filter((l) => {
      for (const uri of this.bannedLocations_.keys()) {
        if (uri.includes(new goog.Uri(l.location).getDomain())) {
          return false;
        }
      }
      return true;
    });

    if (locationsPathwayIdMap.length) {
      this.lastPathwayUsed_ = locationsPathwayIdMap[0].pathwayId;
    }

    const locations = locationsPathwayIdMap.map((l) => l.location);

    if (!locations.length && this.defaultPathwayId_) {
      for (const pathwayId of this.defaultPathwayId_.split(',')) {
        const location = streamLocations.get(pathwayId);
        if (location) {
          this.lastPathwayUsed_ = this.defaultPathwayId_;
          locations.push(location);
        }
      }
    }
    if (!locations.length) {
      for (const location of streamLocations.values()) {
        locations.push(location);
      }
    }
    if (ignoreBaseUrls) {
      return locations;
    }
    return shaka.util.ManifestParserUtils.resolveUris(
        this.baseUris_, locations);
  }
Get the base locations ordered according the priority.

@param {string|number} streamId
@param {boolean=} ignoreBaseUrls
@return {!Array<string>}