code: func (c *EventHistoryCollector) fillPage(size int) {
  	c.pos = 0
  	l := c.page.Len()
  	delta := size - l
  
  	if delta < 0 {
  		// Shrink ring size
  		c.page = c.page.Unlink(-delta)
  		return
  	}
  
  	matches := 0
  	mpage := c.m.page
  	page := c.page
  
  	if delta != 0 {
  		// Grow ring size
  		c.page = c.page.Link(ring.New(delta))
  	}
  
  	for i := 0; i < maxPageSize; i++ {
  		event, ok := mpage.Value.(types.BaseEvent)
  		mpage = mpage.Prev()
  		if !ok {
  			continue
  		}
  
  		if c.eventMatches(event) {
  			page.Value = event
  			page = page.Prev()
  			matches++
  			if matches == size {
  				break
  			}
  		}
  	}
  }
docs: // filePage copies the manager's latest events into the collector's page with Filter applied.