here's more of the start of the while loop:
# a stack to perform a depth-first enumeration of the tree
# atm, the child offset is not tracked as inner nodes are traversed.
# instead, the global offset is tracked, and children are enumerated
# again when backtracking, under the idea that total time is still
# O(log n)
# index stream offset index offset region size
indices = [(self.tail, 0, 0, total_size)]
while len(indices):
index, index_offset, index_start, index_size = indices[-1]
index_offset_in_stream = index_offset - index_start
for type, index, index_substart, index_subsize, *_ in index:
if index_offset_in_stream == stream_output_offset and
index_subsize > 0: