{% extends "base.html" %}{% from "_macros.html" import source_note %} {% block title %}Live{% endblock %} {% block content %} {# The shell: a replay bar once the event is over (app.js steps the slider; each step fetches the page as of that snapshot into #live), else #live re-fetches itself at the sport's cadence. The body is the sport's partial. #} {% if events %}
Event {% for e in events %}{{ e.title or e.event_key }}{% endfor %}
{% endif %} {% if times %}
{{ 'Replay' if mode == 'replay' else 'History' }} speed {% for x in [10, 30, 60] %}{% endfor %} link
{% if sport == 'mtb_dh' %}

View the {{ times|length }} saved updates for this run as they were seen live, or jump to any session snapshot, even while a final is still running.

{%- else %}

Step or play through the weekend's {{ times|length }} updates ({{ times[0][:8] }}–{{ times[-1][:8] }}) as they were seen live: the stages, fair values, quotes and the private book.

{% endif %} {% if times|length <= 12 %}

{% for x in times %}{{ x[:16]|replace('T', ' ') }}{% if not loop.last %} · {% endif %}{% endfor %}

{% elif t %}

{% for x in [times[0], times[(times|length // 2)], times[-1]] %}{{ x[:16]|replace('T', ' ') }}{% if not loop.last %} · {% endif %}{% endfor %}

{% endif %}
{% endif %} {% if f1_stream and sport == 'f1' and stream_event %} {# Opt-in live timing (web/f1_live.py; RACINGLINES_F1_STREAM, on by default only on staging). Outside #live, so the page's own refresh doesn't reset it. Off until the viewer turns it on; the debug log is for testing, admins only. #}
Live timing beta off
{{ source_note("f1") }} {% if user.role == 'admin' %}
Debug log

    
  
{% endif %}
{% endif %}
{% include "live_partial.html" %}
{% endblock %}