def METHOD_NAME(annotations):
    """
    Return the given annotations bucketed by timeframe and document.
    :param annotations: A chronologically-ordered list of annotations.
        This list of annotations is assumed to be sorted most recently updated
        annotation first, otherwise the bucketing algorithm will not return the
        right results.
    """
    if not annotations:
        return []
    generator = TimeframeGenerator()
    timeframes = [generator.next(annotations[0])]
    for annotation in annotations:
        if not timeframes[-1].within_cutoff(annotation):
            timeframes.append(generator.next(annotation))
        timeframes[-1].append(annotation)
    return timeframes