def _collapse_ranges(ranges, ja):
    """
    Within the `ranges` list find those 2d-ranges that overlap with `ranges[ja]`
    and merge them into `ranges[ja]`. Finally, return the new index of the
    ja-th range within the `ranges` list.
    """
    arow0, _, acol0, acol1 = ranges[ja]
    jb = 0
    while jb < len(ranges):
        if jb == ja:
            jb += 1
            continue
        brow0, brow1, bcol0, bcol1 = ranges[jb]
        if bcol0 <= acol1 and brow1 >= arow0 and \
                not(bcol0 == acol1 and brow1 == arow0):
            ranges[ja][0] = arow0 = min(arow0, brow0)
            ranges[ja][3] = acol1 = max(acol1, bcol1)
            del ranges[jb]
            if jb < ja:
                ja -= 1
        else:
            jb += 1
    return ja
def _collapse_ranges ( ranges , ja ) : arow0 , _ , acol0 , acol1 = ranges [ ja ] jb = 0 while jb < len ( ranges ) : if jb == ja : jb += 1 continue brow0 , brow1 , bcol0 , bcol1 = ranges [ jb ] if bcol0 <= acol1 and brow1 >= arow0 and not ( bcol0 == acol1 and brow1 == arow0 ) : ranges [ ja ] [ 0 ] = arow0 = min ( arow0 , brow0 ) ranges [ ja ] [ 3 ] = acol1 = max ( acol1 , bcol1 ) del ranges [ jb ] if jb < ja : ja -= 1 else : jb += 1 return ja
Within the `ranges` list find those 2d-ranges that overlap with `ranges[ja]`
    and merge them into `ranges[ja]`. Finally, return the new index of the
    ja-th range within the `ranges` list.