def _find_first_overlapping_region(self, mr: MemoryRegion) -> MemoryRegion | None:
        """
        Find the first region in self._addr_to_region that `mr` overlaps, if any.
        """
        start_idx = max(0, self._addr_to_region.bisect_left(mr.addr) - 1)
        for e_addr in self._addr_to_region.islice(start_idx):
            e_mr = self._addr_to_region[e_addr]
            if (e_mr.addr + e_mr.size) <= mr.addr:
                continue
            if e_mr.addr < (mr.addr + mr.size):
                return e_mr
        return None

        Find the first region in self._addr_to_region that `mr` overlaps, if any.
        
angrmanagement/ui/widgets/qfeature_map.py