code: func (r *reassembler) updateHoles(first, last uint16, more bool) bool {
  	used := false
  	for i := range r.holes {
  		if r.holes[i].deleted || first > r.holes[i].last || last < r.holes[i].first {
  			continue
  		}
  		used = true
  		r.deleted++
  		r.holes[i].deleted = true
  		if first > r.holes[i].first {
  			r.holes = append(r.holes, hole{r.holes[i].first, first - 1, false})
  		}
  		if last < r.holes[i].last && more {
  			r.holes = append(r.holes, hole{last + 1, r.holes[i].last, false})
  		}
  	}
  	return used
  }
docs: // updateHoles updates the list of holes for an incoming fragment and
  // returns true iff the fragment filled at least part of an existing hole.