I don't think this is going to give you what you want. Since the endMicro will almost always be greater than the start time. You need to find the index of the shard that contains the endTime (since they're in time descending order). Should be: `shards[n].endMicro >= endTime`