1upon Alpenglow.output(s, ⊥) and L[s-1] ≠ ⊥:2 L[s] ← ∅; trigger OUTPUT(s, L[s])3upon Alpenglow.output(s, block) and L[s-1] ≠ ⊥:4 impliedBlocks ← computeImpliedBlocks(block.aggregateAttestation)5 upon have K shreds for all (q, commitment) ∈ impliedBlocks:6 for (q, commitment) in impliedBlocks: messages[q] ← erasure_code.decode(shreds)7 if vector_commitment.commit(erasure_code.encode(messages[q])) ≠ commitment: messages[q] ← ⊥8 L[s] ← orderAndConcat(messages); trigger OUTPUT(s, L[s])