https://levelslevels.uk/

Die von der Seite ausgehenden identifizierten Links

LinkText
https://www.somerset.gov.uk/roads-travel-and-parking/emergency-road-closure-gatesgate status
https://github.com/bede/levelslevelscode
https://github.com/bede/levelslevels/commits/main/changelog
https://check-for-flooding.service.gov.uk/target-area/112WAFYPMflood alert

JavaScript-Variablen · 27 gefunden

Globale JavaScript-Variablen, die in das Window Object einer Seite geladen werden, sind Variablen, die außerhalb von Funktionen deklariert werden und von jeder Stelle des Codes innerhalb des aktuellen Bereichs zugänglich sind

NameTyp
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
PolyBoolobject
sprintffunction
vsprintffunction
__TYPEDARRAY_POOLobject
__TEXT_CACHEobject
PlotlyGeoAssetsobject
Plotlyobject

Konsolenprotokoll-Meldungen · 4 gefunden

In der Web-Konsole protokollierte Meldungen

TypKategorieProtokoll
logother
URL
https://levelslevels.uk/
Text
Fetching new data for Long Load Main Drain
logother
URL
https://levelslevels.uk/
Text
Fetching new data for West Moor Drain
logother
URL
https://levelslevels.uk/
Text
Fetching new data for Parrett at Gaw Bridge
logother
URL
https://levelslevels.uk/
Text
Fetching new data for Isle at Midelney

HTML

Der HTML-Rohtext der Seite

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Levels Levels</title>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&amp;display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css">
    <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
    <link rel="apple-touch-icon" href="apple-touch-icon.png">
    <link rel="manifest" href="site.webmanifest">
    <link rel="shortcut icon" href="favicon.ico">
    <script type="text/javascript" crossorigin="anonymous" async="" src="https://eu-assets.i.posthog.com/static/array.js"></script><script src="https://cdn.plot.ly/plotly-2.24.1.min.js"></script><style id="plotly.js-style-global"></style>
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
    <style>
        body {
            font-family: 'Inter', sans-serif;
            margin: 0;
            padding: 0;
            line-height: 1.6;
            background-color: white;
            color: #333;
        }

        a {
            color: #1f77b4;
        }

        a:hover {
            text-decoration: underline;
        }

        #map-container {
            position: relative;
            width: 100%;
            height: 460px;
            overflow: hidden;
        }

        #map {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 460px;
            z-index: 1;
        }

        #map-overlay {
            position: absolute;
            top: 15px;
            left: 15px;
            right: 15px; /* Full width minus 30px total horizontal margin on small screens */
            background-color: rgba(255, 255, 255, 0.9);
            padding: 10px 15px;
            border-radius: 4px;
            z-index: 2;
        }

        @media (min-width: 768px) {
            #map-overlay {
                max-width: 400px;
                right: auto;
            }
        }

        #map-overlay h1 {
            font-size: 1.4rem;
            font-weight: 600;
            margin: 0 0 10px 0;
            color: #1f77b4;
        }

        #map-overlay ul {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        #map-overlay ul li {
            font-size: 1rem;
            margin-bottom: 5px;
            display: flex;
            align-items: center;
        }

        .circle {
            display: inline-block;
            width: 15px;
            height: 15px;
            border-radius: 50%;
            margin-right: 6px;
        }

        .circle.green {
            background-color: #4CAF50;
        }

        .circle.amber {
            background-color: #FFC107;
        }

        .circle.red {
            background-color: #F44336;
        }

        #tab-contents {
            margin: 0;
        }

        .tab-container {
            margin: 15px 15px 0 15px;
        }

        .tab-buttons {
            display: flex;
            flex-wrap: wrap;
            border-bottom: 1px solid #ccc;
            margin: 0;
        }

        .tab-button {
            padding: 10px 8px;
            font-size: 0.8rem;
            cursor: pointer;
            background-color: #f5f5f5;
            border: none;
            outline: none;
            font-weight: 600;
            color: #333;
            flex: 1;
            text-align: center;
        }

        .tab-button.active {
            background-color: #fff;
            border-bottom: 2px solid #1f77b4;
            color: #1f77b4;
        }

        .tab-content {
            display: none;
        }

        .tab-content.active {
            display: block;
        }

        .chart {
            width: 100%;
            height: 280px;
            margin: 0;
            padding: 0;
        }

        footer {
            margin: 10px 5px;
            text-align: center;
            color: #555;
        }
    </style>
    <script>
        !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetGroupPropertiesForFlags resetPersonPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
        posthog.init('phc_KlFKZyqiluUOIZvbdp6T129dDvRVRaAcKICHPeBejch', {
            api_host:'https://eu.i.posthog.com',
            opt_out_capturing_by_default: true,
            autocapture: false
        })
    </script>
</head>
<body>
    <div id="map-container">
        <div id="map-overlay">
            <h1>Muchelney area flood status</h1>
            <ul id="route-status-list"><li><span class="circle green"></span><span>All routes clear (but check <a href="https://www.somerset.gov.uk/roads-travel-and-parking/emergency-road-closure-gates">gate status</a>)</span></li></ul>
        </div>
        <div id="map" class="leaflet-container leaflet-touch leaflet-fade-anim leaflet-grab leaflet-touch-drag leaflet-touch-zoom"><div class="leaflet-pane leaflet-map-pane" style="transform: translate3d(0px, 0px, 0px);"><div class="leaflet-pane leaflet-tile-pane"><div class="leaflet-layer " style="z-index: 1;"><div class="leaflet-tile-container leaflet-zoom-animated" style="z-index: 18; transform: translate3d(0px, 0px, 0px) scale(1);"><img alt="" src="https://b.tile.openstreetmap.org/12/2015/1370.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(166px, 3px, 0px); opacity: 0;"><img alt="" src="https://c.tile.openstreetmap.org/12/2016/1370.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(422px, 3px, 0px); opacity: 0;"><img alt="" src="https://a.tile.openstreetmap.org/12/2015/1369.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(166px, -253px, 0px); opacity: 0;"><img alt="" src="https://b.tile.openstreetmap.org/12/2016/1369.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(422px, -253px, 0px); opacity: 0;"><img alt="" src="https://c.tile.openstreetmap.org/12/2015/1371.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(166px, 259px, 0px); opacity: 0;"><img alt="" src="https://a.tile.openstreetmap.org/12/2016/1371.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(422px, 259px, 0px); opacity: 0;"><img alt="" src="https://a.tile.openstreetmap.org/12/2014/1370.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(-90px, 3px, 0px); opacity: 0;"><img alt="" src="https://a.tile.openstreetmap.org/12/2017/1370.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(678px, 3px, 0px); opacity: 0;"><img alt="" src="https://c.tile.openstreetmap.org/12/2014/1369.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(-90px, -253px, 0px); opacity: 0;"><img alt="" src="https://c.tile.openstreetmap.org/12/2017/1369.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(678px, -253px, 0px); opacity: 0;"><img alt="" src="https://b.tile.openstreetmap.org/12/2014/1371.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(-90px, 259px, 0px); opacity: 0;"><img alt="" src="https://b.tile.openstreetmap.org/12/2017/1371.png" class="leaflet-tile leaflet-tile-loaded" style="width: 256px; height: 256px; transform: translate3d(678px, 259px, 0px); opacity: 0;"></div></div></div><div class="leaflet-pane leaflet-overlay-pane"></div><div class="leaflet-pane leaflet-shadow-pane"></div><div class="leaflet-pane leaflet-marker-pane"><div class="leaflet-marker-icon custom-icon leaflet-zoom-animated leaflet-interactive" tabindex="0" role="button" style="margin-left: -6px; margin-top: -6px; width: 12px; height: 12px; transform: translate3d(408px, 199px, 0px); z-index: 199;"><div style="background-color: #4CAF50; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div></div><div class="leaflet-marker-icon custom-icon leaflet-zoom-animated leaflet-interactive" tabindex="0" role="button" style="margin-left: -6px; margin-top: -6px; width: 12px; height: 12px; transform: translate3d(477px, 279px, 0px); z-index: 279;"><div style="background-color: #4CAF50; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div></div><div class="leaflet-marker-icon custom-icon leaflet-zoom-animated leaflet-interactive" tabindex="0" role="button" style="margin-left: -6px; margin-top: -6px; width: 12px; height: 12px; transform: translate3d(415px, 261px, 0px); z-index: 261;"><div style="background-color: #4CAF50; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div></div><div class="leaflet-marker-icon custom-icon leaflet-zoom-animated leaflet-interactive" tabindex="0" role="button" style="margin-left: -6px; margin-top: -6px; width: 12px; height: 12px; transform: translate3d(312px, 389px, 0px); z-index: 389;"><div style="background-color: #4CAF50; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div></div><div class="leaflet-marker-icon custom-icon leaflet-zoom-animated leaflet-interactive" tabindex="0" role="button" style="margin-left: -6px; margin-top: -6px; width: 12px; height: 12px; transform: translate3d(478px, 434px, 0px); z-index: 434;"><div style="background-color: #4CAF50; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div></div><div class="leaflet-marker-icon custom-icon leaflet-zoom-animated leaflet-interactive" tabindex="0" role="button" style="margin-left: -6px; margin-top: -6px; width: 12px; height: 12px; transform: translate3d(283px, 345px, 0px); z-index: 345;"><div style="background-color: #4CAF50; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div></div></div><div class="leaflet-pane leaflet-tooltip-pane"></div><div class="leaflet-pane leaflet-popup-pane"></div><div class="leaflet-proxy leaflet-zoom-animated" style="transform: translate3d(516074px, 350947px, 0px) scale(2048);"></div></div><div class="leaflet-control-container"><div class="leaflet-top leaflet-left"></div><div class="leaflet-top leaflet-right"></div><div class="leaflet-bottom leaflet-left"><div class="leaflet-control-zoom leaflet-bar leaflet-control"><a class="leaflet-control-zoom-in" href="#" title="Zoom in" role="button" aria-label="Zoom in" aria-disabled="false"><span aria-hidden="true">+</span></a><a class="leaflet-control-zoom-out" href="#" title="Zoom out" role="button" aria-label="Zoom out" aria-disabled="false"><span aria-hidden="true">−</span></a></div></div><div class="leaflet-bottom leaflet-right"></div></div></div>
    </div>

    <!-- Tabs for charts -->
    <div class="tab-container">
        <div class="tab-buttons" id="tab-buttons">
            <!-- Tab buttons will be inserted here -->
        <button class="tab-button active" data-target="chart-long-load">Long Load Main Drain</button><button class="tab-button" data-target="chart-west-moor">West Moor Drain</button><button class="tab-button" data-target="chart-gaw-bridge">Parrett at Gaw Bridge</button><button class="tab-button" data-target="chart-midelney">Isle at Midelney</button></div>
        <div id="tab-contents">
            <!-- Tab contents (charts) will be inserted here -->
        <div id="chart-long-load" class="chart tab-content js-plotly-plot active"><div class="plot-container plotly"><div class="user-select-none svg-container" style="position: relative; width: 760px; height: 280px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="760" height="280" style="background: rgb(255, 255, 255);"><defs id="defs-060949"><g class="clips"><clipPath id="clip060949xyplot" class="plotclip"><rect width="726" height="238"></rect></clipPath><clipPath class="axesclip" id="clip060949x"><rect x="0" y="0" width="726" height="280"></rect></clipPath><clipPath class="axesclip" id="clip060949y"><rect x="0" y="12" width="760" height="238"></rect></clipPath><clipPath class="axesclip" id="clip060949xy"><rect x="0" y="12" width="726" height="238"></rect></clipPath></g><g class="gradients"></g><g class="patterns"></g></defs><g class="bglayer"></g><g class="draglayer cursor-crosshair"><g class="xy"><rect class="nsewdrag drag" data-subplot="xy" x="0" y="12" width="726" height="238" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nwdrag drag cursor-nw-resize" data-subplot="xy" x="-20" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nedrag drag cursor-ne-resize" data-subplot="xy" x="726" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="swdrag drag cursor-sw-resize" data-subplot="xy" x="-20" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sedrag drag cursor-se-resize" data-subplot="xy" x="726" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ewdrag drag cursor-ew-resize" data-subplot="xy" x="72.60000000000001" y="250.5" width="580.8000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="wdrag drag cursor-w-resize" data-subplot="xy" x="0" y="250.5" width="72.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="edrag drag cursor-e-resize" data-subplot="xy" x="653.4" y="250.5" width="72.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nsdrag drag cursor-ns-resize" data-subplot="xy" x="726.5" y="35.8" width="20" height="190.4" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sdrag drag cursor-s-resize" data-subplot="xy" x="726.5" y="226.20000000000002" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ndrag drag cursor-n-resize" data-subplot="xy" x="726.5" y="12" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect></g></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"><g class="subplot xy"><g class="layer-subplot"><g class="shapelayer"></g><g class="imagelayer"></g></g><g class="minor-gridlayer"><g class="x"></g><g class="y"></g></g><g class="gridlayer"><g class="x"><path class="xgrid crisp" transform="translate(56.2,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(129.1,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(202,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(274.91,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(347.81,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(420.72,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(493.62,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(566.52,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(639.43,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(712.33,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g><g class="y"><path class="ygrid crisp" transform="translate(0,228.77)" d="M0,0h726" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,184.53)" d="M0,0h726" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,140.29)" d="M0,0h726" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,96.05)" d="M0,0h726" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,51.81)" d="M0,0h726" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g></g><g class="zerolinelayer"></g><path class="xlines-below"></path><path class="ylines-below"></path><g class="overlines-below"></g><g class="xaxislayer-below"></g><g class="yaxislayer-below"></g><g class="overaxes-below"></g><g class="plot" transform="translate(0,12)" clip-path="url(#clip060949xyplot)"><g class="scatterlayer mlayer"><g class="trace scatter trace5026d4" style="stroke-miterlimit: 2;"><g class="fills"><g><path class="js-fill" d="M726,747.62L0,747.62L0,113.25L16.71,113.25L18.23,114.13L25.82,114.13L27.34,115.02L37.97,115.02L39.49,115.9L48.6,115.9L50.12,116.79L60.75,116.79L62.27,117.67L71.38,117.67L72.9,118.56L82.02,118.56L83.54,119.44L92.65,119.44L94.17,120.33L101.76,120.33L103.28,121.21L115.43,121.21L116.95,122.1L121.51,122.1L123.03,122.98L132.14,122.98L133.66,123.87L139.73,123.87L141.25,124.75L148.85,124.75L150.36,125.64L156.44,125.64L157.96,126.52L167.07,126.52L168.59,127.41L174.67,127.41L176.18,128.29L186.82,128.29L188.33,129.17L192.89,129.17L194.41,130.06L200.49,130.06L202,130.94L206.56,130.94L208.08,131.83L215.67,131.83L217.19,132.71L223.27,132.71L224.79,133.6L229.34,133.6L230.86,134.48L235.42,134.48L236.94,135.37L238.46,135.37L239.97,136.25L247.57,136.25L249.09,137.14L253.64,137.14L255.16,138.02L261.24,138.02L262.76,138.91L265.79,138.91L267.31,139.79L271.87,139.79L273.39,140.68L274.91,140.68L276.43,141.56L280.98,141.56L282.5,142.45L285.54,142.45L287.06,143.33L288.58,143.33L290.1,144.22L294.65,144.22L296.17,145.1L297.69,145.1L299.21,145.99L302.25,145.99L303.77,146.87L305.28,146.87L306.8,147.75L309.84,147.75L311.36,148.64L314.4,148.64L315.92,149.52L317.44,149.52L318.95,150.41L321.99,150.41L323.51,151.29L325.03,151.29L326.55,152.18L328.07,152.18L329.59,153.06L331.1,153.95L332.62,153.95L334.14,153.95L335.66,154.83L337.18,154.83L338.7,155.72L340.22,155.72L341.74,156.6L343.26,156.6L344.77,157.49L346.29,158.37L347.81,158.37L350.85,160.14L352.37,160.14L355.41,161.91L356.92,161.91L361.48,164.57L363,164.57L372.11,169.87L373.63,169.87L378.19,172.53L379.71,174.3L387.3,178.72L388.82,180.49L390.34,181.38L391.86,183.14L396.41,187.57L397.93,188.45L413.12,206.15L414.64,208.8L417.68,213.23L419.2,215.88L420.72,218.54L422.23,203.49L423.75,213.23L425.27,217.65L426.79,205.26L428.31,212.34L429.83,218.54L431.35,205.26L434.38,217.65L435.9,207.03L437.42,209.69L438.94,216.77L441.98,203.49L443.5,210.57L446.54,200.84L448.05,199.07L452.61,194.65L454.13,193.76L460.21,190.22L461.72,190.22L463.24,189.34L464.76,189.34L466.28,188.45L467.8,188.45L472.36,188.45L473.87,187.57L486.03,187.57L487.54,188.45L490.58,188.45L492.1,189.34L495.14,189.34L496.66,190.22L498.18,191.11L499.69,191.11L501.21,191.11L502.73,191.99L504.25,192.88L505.77,192.88L507.29,193.76L508.81,193.76L510.33,194.65L511.85,194.65L519.44,199.07L520.96,199.07L533.11,206.15L534.63,207.92L536.15,207.92L537.67,208.8L540.7,211.46L542.22,212.34L545.26,214.11L546.78,219.42L548.3,217.65L549.82,219.42L552.85,221.19L554.37,217.65L555.89,210.57L557.41,213.23L561.97,221.19L563.49,217.65L565,210.57L566.52,213.23L568.04,214.11L569.56,216.77L571.08,217.65L572.6,221.19L574.12,218.54L575.64,212.34L577.15,208.8L578.67,215L580.19,216.77L581.71,220.3L583.23,222.07L584.75,214.11L586.27,210.57L587.79,211.46L590.82,218.54L592.34,221.19L596.9,209.69L598.42,213.23L601.46,219.42L602.97,218.54L606.01,211.46L607.53,208.8L609.05,215L610.57,217.65L612.09,222.07L613.61,215.88L618.16,208.8L619.68,215.88L621.2,219.42L622.72,219.42L625.76,213.23L627.28,211.46L630.31,208.8L631.83,215L633.35,218.54L634.87,218.54L637.91,214.11L639.43,212.34L643.98,209.69L645.5,209.69L647.02,208.8L648.54,211.46L650.06,218.54L651.58,218.54L656.13,214.11L657.65,214.11L659.17,213.23L660.69,213.23L663.73,213.23L665.25,212.34L671.32,212.34L672.84,213.23L675.88,213.23L677.4,214.11L680.44,214.11L681.95,215L684.99,215L686.51,215.88L688.03,218.54L689.55,218.54L691.07,218.54L692.59,219.42L694.1,219.42L695.62,220.3L697.14,220.3L698.66,221.19L700.18,222.07L701.7,222.07L703.22,222.96L704.74,219.42L706.26,229.15L707.77,215L709.29,209.69L710.81,208.8L712.33,215L713.85,213.23L715.37,211.46L716.89,213.23L718.41,214.11L719.92,215.88L721.44,216.77L722.96,218.54L726,220.3" style="fill: rgb(31, 118, 180); fill-opacity: 0.1; stroke-width: 0;"></path></g></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,113.25L16.71,113.25L18.23,114.13L25.82,114.13L27.34,115.02L37.97,115.02L39.49,115.9L48.6,115.9L50.12,116.79L60.75,116.79L62.27,117.67L71.38,117.67L72.9,118.56L82.02,118.56L83.54,119.44L92.65,119.44L94.17,120.33L101.76,120.33L103.28,121.21L115.43,121.21L116.95,122.1L121.51,122.1L123.03,122.98L132.14,122.98L133.66,123.87L139.73,123.87L141.25,124.75L148.85,124.75L150.36,125.64L156.44,125.64L157.96,126.52L167.07,126.52L168.59,127.41L174.67,127.41L176.18,128.29L186.82,128.29L188.33,129.17L192.89,129.17L194.41,130.06L200.49,130.06L202,130.94L206.56,130.94L208.08,131.83L215.67,131.83L217.19,132.71L223.27,132.71L224.79,133.6L229.34,133.6L230.86,134.48L235.42,134.48L236.94,135.37L238.46,135.37L239.97,136.25L247.57,136.25L249.09,137.14L253.64,137.14L255.16,138.02L261.24,138.02L262.76,138.91L265.79,138.91L267.31,139.79L271.87,139.79L273.39,140.68L274.91,140.68L276.43,141.56L280.98,141.56L282.5,142.45L285.54,142.45L287.06,143.33L288.58,143.33L290.1,144.22L294.65,144.22L296.17,145.1L297.69,145.1L299.21,145.99L302.25,145.99L303.77,146.87L305.28,146.87L306.8,147.75L309.84,147.75L311.36,148.64L314.4,148.64L315.92,149.52L317.44,149.52L318.95,150.41L321.99,150.41L323.51,151.29L325.03,151.29L326.55,152.18L328.07,152.18L329.59,153.06L331.1,153.95L332.62,153.95L334.14,153.95L335.66,154.83L337.18,154.83L338.7,155.72L340.22,155.72L341.74,156.6L343.26,156.6L344.77,157.49L346.29,158.37L347.81,158.37L350.85,160.14L352.37,160.14L355.41,161.91L356.92,161.91L361.48,164.57L363,164.57L372.11,169.87L373.63,169.87L378.19,172.53L379.71,174.3L387.3,178.72L388.82,180.49L390.34,181.38L391.86,183.14L396.41,187.57L397.93,188.45L413.12,206.15L414.64,208.8L417.68,213.23L419.2,215.88L420.72,218.54L422.23,203.49L423.75,213.23L425.27,217.65L426.79,205.26L428.31,212.34L429.83,218.54L431.35,205.26L434.38,217.65L435.9,207.03L437.42,209.69L438.94,216.77L441.98,203.49L443.5,210.57L446.54,200.84L448.05,199.07L452.61,194.65L454.13,193.76L460.21,190.22L461.72,190.22L463.24,189.34L464.76,189.34L466.28,188.45L467.8,188.45L472.36,188.45L473.87,187.57L486.03,187.57L487.54,188.45L490.58,188.45L492.1,189.34L495.14,189.34L496.66,190.22L498.18,191.11L499.69,191.11L501.21,191.11L502.73,191.99L504.25,192.88L505.77,192.88L507.29,193.76L508.81,193.76L510.33,194.65L511.85,194.65L519.44,199.07L520.96,199.07L533.11,206.15L534.63,207.92L536.15,207.92L537.67,208.8L540.7,211.46L542.22,212.34L545.26,214.11L546.78,219.42L548.3,217.65L549.82,219.42L552.85,221.19L554.37,217.65L555.89,210.57L557.41,213.23L561.97,221.19L563.49,217.65L565,210.57L566.52,213.23L568.04,214.11L569.56,216.77L571.08,217.65L572.6,221.19L574.12,218.54L575.64,212.34L577.15,208.8L578.67,215L580.19,216.77L581.71,220.3L583.23,222.07L584.75,214.11L586.27,210.57L587.79,211.46L590.82,218.54L592.34,221.19L596.9,209.69L598.42,213.23L601.46,219.42L602.97,218.54L606.01,211.46L607.53,208.8L609.05,215L610.57,217.65L612.09,222.07L613.61,215.88L618.16,208.8L619.68,215.88L621.2,219.42L622.72,219.42L625.76,213.23L627.28,211.46L630.31,208.8L631.83,215L633.35,218.54L634.87,218.54L637.91,214.11L639.43,212.34L643.98,209.69L645.5,209.69L647.02,208.8L648.54,211.46L650.06,218.54L651.58,218.54L656.13,214.11L657.65,214.11L659.17,213.23L660.69,213.23L663.73,213.23L665.25,212.34L671.32,212.34L672.84,213.23L675.88,213.23L677.4,214.11L680.44,214.11L681.95,215L684.99,215L686.51,215.88L688.03,218.54L689.55,218.54L691.07,218.54L692.59,219.42L694.1,219.42L695.62,220.3L697.14,220.3L698.66,221.19L700.18,222.07L701.7,222.07L703.22,222.96L704.74,219.42L706.26,229.15L707.77,215L709.29,209.69L710.81,208.8L712.33,215L713.85,213.23L715.37,211.46L716.89,213.23L718.41,214.11L719.92,215.88L721.44,216.77L722.96,218.54L726,220.3" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(31, 119, 180); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter traced31f83" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"><path class="point" transform="translate(726,220.3)" d="M4,0A4,4 0 1,1 0,-4A4,4 0 0,1 4,0Z" style="opacity: 1; stroke-width: 0px; fill: rgb(0, 0, 0); fill-opacity: 1;"></path></g><g class="text"></g></g><g class="trace scatter trace26780b" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,101.75L726,101.75" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace5a160e" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,52.2L726,52.2" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter tracef664b9" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,46.01L726,46.01" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace2e86cd" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,8.85L726,8.85" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter tracea2809d" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,122.98L726,122.98" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace2d6ccb" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="101.75" data-unformatted="Langport to Muchelney (7.30m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Langport to Muchelney (7.30m)</text></g></g></g><g class="trace scatter traceecc2f1" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="52.2" data-unformatted="Muchelney to Long Load (7.86m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Muchelney to Long Load (7.86m)</text></g></g></g><g class="trace scatter trace77ed2f" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="46.01" data-unformatted="Muchelney to Thorney (7.93m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Muchelney to Thorney (7.93m)</text></g></g></g><g class="trace scatter trace307497" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="8.85" data-unformatted="Property flooding (8.35m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Property flooding (8.35m)</text></g></g></g><g class="trace scatter tracee8a61c" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="122.98" data-unformatted="Top of normal range (7.06m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Top of normal range (7.06m)</text></g></g></g><g class="trace scatter trace36c028" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,220.3L726,220.3" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g></g></g><g class="overplot"></g><path class="xlines-above crisp" d="M0,0" style="fill: none;"></path><path class="ylines-above crisp" d="M0,0" style="fill: none;"></path><g class="overlines-above"></g><g class="xaxislayer-above"><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-15" data-math="N" transform="translate(56.2,0)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">2024-12-15</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-15" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(129.1,0)">2024-12-15</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-16" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(202,0)">2024-12-16</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-16" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(274.91,0)">2024-12-16</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-17" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(347.81,0)">2024-12-17</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-17" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(420.72,0)">2024-12-17</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-18" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(493.62,0)">2024-12-18</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-18" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(566.52,0)">2024-12-18</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-19" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(639.43,0)">2024-12-19</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-19" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(712.33,0)">2024-12-19</text></g></g><g class="yaxislayer-above"><g class="ytick"><text text-anchor="start" x="727" y="3.8499999999999996" data-unformatted="6.00m" data-math="N" transform="translate(0,228.77)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">6.00m</text></g><g class="ytick"><text text-anchor="start" x="727" y="3.8499999999999996" data-unformatted="6.50m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,184.53)">6.50m</text></g><g class="ytick"><text text-anchor="start" x="727" y="3.8499999999999996" data-unformatted="7.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,140.29)">7.00m</text></g><g class="ytick"><text text-anchor="start" x="727" y="3.8499999999999996" data-unformatted="7.50m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,96.05)">7.50m</text></g><g class="ytick"><text text-anchor="start" x="727" y="3.8499999999999996" data-unformatted="8.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,51.81)">8.00m</text></g></g><g class="overaxes-above"></g></g></g><g class="polarlayer"></g><g class="smithlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"></g><g class="iciclelayer"></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="760" height="280"><defs id="topdefs-060949"><g class="clips"></g></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="selectionlayer"></g><g class="infolayer"><g class="g-gtitle"></g><g class="g-xtitle"></g><g class="g-ytitle"></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,704,210.3)"><g class="cursor-pointer" transform="translate(651,201)"><rect class="bg" x="0.5" y="0.5" width="106" height="18" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 1; fill: rgb(255, 255, 255); fill-opacity: 1;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="5.96m (14:15 UTC)" data-math="N" x="53.5" y="14" style="font-family: Inter, sans-serif; font-size: 12px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">5.96m (14:15 UTC)</text></g></g><g class="annotation-arrow-g" style="opacity: 1;"><path d="M713,219.3L726,232.3" style="stroke-width: 2px; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 0px, 0px, 18.3848px, 18.3848px;"></path><path d="M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z" transform="translate(726,232.3000030517578)scale(2)" style="fill: rgb(0, 0, 0); stroke-width: 0;"></path></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="760" height="280"><g class="hoverlayer"></g></svg></div></div></div><div id="chart-west-moor" class="chart tab-content js-plotly-plot"><div class="plot-container plotly"><div class="user-select-none svg-container" style="position: relative; width: 700px; height: 280px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280" style="background: rgb(255, 255, 255);"><defs id="defs-2313bc"><g class="clips"><clipPath id="clip2313bcxyplot" class="plotclip"><rect width="666" height="238"></rect></clipPath><clipPath class="axesclip" id="clip2313bcx"><rect x="0" y="0" width="666" height="280"></rect></clipPath><clipPath class="axesclip" id="clip2313bcy"><rect x="0" y="12" width="700" height="238"></rect></clipPath><clipPath class="axesclip" id="clip2313bcxy"><rect x="0" y="12" width="666" height="238"></rect></clipPath></g><g class="gradients"></g><g class="patterns"></g></defs><g class="bglayer"></g><g class="draglayer cursor-crosshair"><g class="xy"><rect class="nsewdrag drag" data-subplot="xy" x="0" y="12" width="666" height="238" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nwdrag drag cursor-nw-resize" data-subplot="xy" x="-20" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nedrag drag cursor-ne-resize" data-subplot="xy" x="666" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="swdrag drag cursor-sw-resize" data-subplot="xy" x="-20" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sedrag drag cursor-se-resize" data-subplot="xy" x="666" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ewdrag drag cursor-ew-resize" data-subplot="xy" x="66.60000000000001" y="250.5" width="532.8000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="wdrag drag cursor-w-resize" data-subplot="xy" x="0" y="250.5" width="66.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="edrag drag cursor-e-resize" data-subplot="xy" x="599.4" y="250.5" width="66.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nsdrag drag cursor-ns-resize" data-subplot="xy" x="666.5" y="35.8" width="20" height="190.4" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sdrag drag cursor-s-resize" data-subplot="xy" x="666.5" y="226.20000000000002" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ndrag drag cursor-n-resize" data-subplot="xy" x="666.5" y="12" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect></g></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"><g class="subplot xy"><g class="layer-subplot"><g class="shapelayer"></g><g class="imagelayer"></g></g><g class="minor-gridlayer"><g class="x"></g><g class="y"></g></g><g class="gridlayer"><g class="x"><path class="xgrid crisp" transform="translate(51.55,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(185.31,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(319.07,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(452.82,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(586.58,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g><g class="y"><path class="ygrid crisp" transform="translate(0,239.57)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,201.64)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,163.71)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,125.78)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,87.86)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,49.93)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g></g><g class="zerolinelayer"></g><path class="xlines-below"></path><path class="ylines-below"></path><g class="overlines-below"></g><g class="xaxislayer-below"></g><g class="yaxislayer-below"></g><g class="overaxes-below"></g><g class="plot" transform="translate(0,12)" clip-path="url(#clip2313bcxyplot)"><g class="scatterlayer mlayer"><g class="trace scatter trace6ecd5c" style="stroke-miterlimit: 2;"><g class="fills"><g><path class="js-fill" d="M666,1479.2L0,1479.2L0,19.91L1.39,21.81L2.79,19.91L16.72,19.91L18.11,21.81L41.8,21.81L43.19,23.71L64.09,23.71L65.49,25.6L91.96,25.6L93.35,27.5L110.07,27.5L111.46,29.39L112.86,27.5L114.25,29.39L115.64,27.5L117.04,29.39L139.33,29.39L140.72,31.29L142.12,29.39L143.51,31.29L161.62,31.29L163.02,33.19L185.31,33.19L186.7,35.08L188.1,33.19L189.49,35.08L206.21,35.08L207.6,36.98L232.68,36.98L234.08,38.88L259.15,38.88L260.55,40.77L277.27,40.77L278.66,42.67L280.05,40.77L281.45,42.67L296.77,42.67L298.17,44.57L299.56,42.67L300.95,44.57L321.85,44.57L323.25,46.46L344.15,46.46L345.54,48.36L349.72,48.36L351.11,46.46L353.9,46.46L355.29,48.36L356.69,46.46L358.08,48.36L385.95,48.36L387.34,46.46L388.73,48.36L390.13,48.36L391.52,50.25L392.91,50.25L394.31,50.25L395.7,48.36L397.09,50.25L398.49,50.25L409.63,50.25L411.03,52.15L412.42,50.25L413.81,50.25L424.96,50.25L426.35,48.36L427.74,50.25L429.14,50.25L430.53,48.36L431.92,50.25L443.07,50.25L444.46,52.15L450.04,52.15L451.43,50.25L454.22,50.25L455.61,52.15L461.18,52.15L462.58,54.05L463.97,54.05L465.36,52.15L468.15,52.15L469.54,54.05L470.94,54.05L472.33,55.94L482.08,55.94L483.48,57.84L484.87,55.94L486.26,55.94L487.66,57.84L489.05,57.84L497.41,57.84L498.8,55.94L500.2,57.84L501.59,55.94L504.38,55.94L505.77,57.84L516.92,57.84L518.31,59.74L525.28,59.74L526.67,61.63L542,61.63L543.39,59.74L548.96,59.74L550.36,57.84L551.75,57.84L553.14,55.94L554.54,57.84L555.93,57.84L557.32,54.05L558.72,54.05L561.5,57.84L562.9,57.84L564.29,61.63L565.68,59.74L567.08,61.63L568.47,61.63L569.86,63.53L571.26,63.53L572.65,63.53L574.04,61.63L575.44,63.53L576.83,63.53L579.62,63.53L581.01,65.43L582.4,69.22L583.79,67.32L585.19,65.43L586.58,65.43L587.97,65.43L589.37,67.32L592.15,67.32L593.55,71.12L594.94,69.22L596.33,69.22L606.09,69.22L607.48,71.12L608.87,69.22L610.27,69.22L611.66,71.12L613.05,69.22L614.45,71.12L615.84,71.12L617.23,71.12L618.63,69.22L620.02,71.12L621.41,69.22L622.81,69.22L624.2,71.12L628.38,71.12L629.77,73.01L631.17,71.12L632.56,73.01L635.35,73.01L636.74,71.12L638.13,71.12L639.53,73.01L642.31,73.01L643.71,74.91L645.1,73.01L646.49,73.01L647.89,74.91L649.28,74.91L650.67,74.91L652.07,76.8L653.46,76.8L654.85,74.91L656.25,76.8L657.64,74.91L659.03,76.8L660.43,76.8L661.82,78.7L663.21,78.7L666,74.91" style="fill: rgb(31, 118, 180); fill-opacity: 0.1; stroke-width: 0;"></path></g></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,19.91L1.39,21.81L2.79,19.91L16.72,19.91L18.11,21.81L41.8,21.81L43.19,23.71L64.09,23.71L65.49,25.6L91.96,25.6L93.35,27.5L110.07,27.5L111.46,29.39L112.86,27.5L114.25,29.39L115.64,27.5L117.04,29.39L139.33,29.39L140.72,31.29L142.12,29.39L143.51,31.29L161.62,31.29L163.02,33.19L185.31,33.19L186.7,35.08L188.1,33.19L189.49,35.08L206.21,35.08L207.6,36.98L232.68,36.98L234.08,38.88L259.15,38.88L260.55,40.77L277.27,40.77L278.66,42.67L280.05,40.77L281.45,42.67L296.77,42.67L298.17,44.57L299.56,42.67L300.95,44.57L321.85,44.57L323.25,46.46L344.15,46.46L345.54,48.36L349.72,48.36L351.11,46.46L353.9,46.46L355.29,48.36L356.69,46.46L358.08,48.36L385.95,48.36L387.34,46.46L388.73,48.36L390.13,48.36L391.52,50.25L392.91,50.25L394.31,50.25L395.7,48.36L397.09,50.25L398.49,50.25L409.63,50.25L411.03,52.15L412.42,50.25L413.81,50.25L424.96,50.25L426.35,48.36L427.74,50.25L429.14,50.25L430.53,48.36L431.92,50.25L443.07,50.25L444.46,52.15L450.04,52.15L451.43,50.25L454.22,50.25L455.61,52.15L461.18,52.15L462.58,54.05L463.97,54.05L465.36,52.15L468.15,52.15L469.54,54.05L470.94,54.05L472.33,55.94L482.08,55.94L483.48,57.84L484.87,55.94L486.26,55.94L487.66,57.84L489.05,57.84L497.41,57.84L498.8,55.94L500.2,57.84L501.59,55.94L504.38,55.94L505.77,57.84L516.92,57.84L518.31,59.74L525.28,59.74L526.67,61.63L542,61.63L543.39,59.74L548.96,59.74L550.36,57.84L551.75,57.84L553.14,55.94L554.54,57.84L555.93,57.84L557.32,54.05L558.72,54.05L561.5,57.84L562.9,57.84L564.29,61.63L565.68,59.74L567.08,61.63L568.47,61.63L569.86,63.53L571.26,63.53L572.65,63.53L574.04,61.63L575.44,63.53L576.83,63.53L579.62,63.53L581.01,65.43L582.4,69.22L583.79,67.32L585.19,65.43L586.58,65.43L587.97,65.43L589.37,67.32L592.15,67.32L593.55,71.12L594.94,69.22L596.33,69.22L606.09,69.22L607.48,71.12L608.87,69.22L610.27,69.22L611.66,71.12L613.05,69.22L614.45,71.12L615.84,71.12L617.23,71.12L618.63,69.22L620.02,71.12L621.41,69.22L622.81,69.22L624.2,71.12L628.38,71.12L629.77,73.01L631.17,71.12L632.56,73.01L635.35,73.01L636.74,71.12L638.13,71.12L639.53,73.01L642.31,73.01L643.71,74.91L645.1,73.01L646.49,73.01L647.89,74.91L649.28,74.91L650.67,74.91L652.07,76.8L653.46,76.8L654.85,74.91L656.25,76.8L657.64,74.91L659.03,76.8L660.43,76.8L661.82,78.7L663.21,78.7L666,74.91" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(31, 119, 180); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter tracef59c37" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"><path class="point" transform="translate(666,74.91)" d="M4,0A4,4 0 1,1 0,-4A4,4 0 0,1 4,0Z" style="opacity: 1; stroke-width: 0px; fill: rgb(0, 0, 0); fill-opacity: 1;"></path></g><g class="text"></g></g><g class="trace scatter traceec2dba" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,18.96L666,18.96" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter traced96c9e" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,219.04L666,219.04" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter tracee18126" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="18.96" data-unformatted="Hambridge to Burrow (7.70m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Hambridge to Burrow (7.70m)</text></g></g></g><g class="trace scatter tracec633ce" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="219.04" data-unformatted="Top of normal range (6.64m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Top of normal range (6.64m)</text></g></g></g><g class="trace scatter trace08972c" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,74.91L666,74.91" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g></g></g><g class="overplot"></g><path class="xlines-above crisp" d="M0,0" style="fill: none;"></path><path class="ylines-above crisp" d="M0,0" style="fill: none;"></path><g class="overlines-above"></g><g class="xaxislayer-above"><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-15" data-math="N" transform="translate(51.55,0)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">2024-12-15</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-16" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(185.31,0)">2024-12-16</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-17" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(319.07,0)">2024-12-17</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-18" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(452.82,0)">2024-12-18</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-19" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(586.58,0)">2024-12-19</text></g></g><g class="yaxislayer-above"><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="6.60m" data-math="N" transform="translate(0,239.57)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">6.60m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="6.80m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,201.64)">6.80m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="7.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,163.71)">7.00m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="7.20m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,125.78)">7.20m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="7.40m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,87.86)">7.40m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="7.60m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,49.93)">7.60m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="7.80m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,12)">7.80m</text></g></g><g class="overaxes-above"></g></g></g><g class="polarlayer"></g><g class="smithlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"></g><g class="iciclelayer"></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280"><defs id="topdefs-2313bc"><g class="clips"></g></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="selectionlayer"></g><g class="infolayer"><g class="g-gtitle"></g><g class="g-xtitle"></g><g class="g-ytitle"></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,644,64.91)"><g class="cursor-pointer" transform="translate(590,55)"><rect class="bg" x="0.5" y="0.5" width="107" height="18" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 1; fill: rgb(255, 255, 255); fill-opacity: 1;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="7.40m (14:15 UTC)" data-math="N" x="54" y="14" style="font-family: Inter, sans-serif; font-size: 12px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">7.40m (14:15 UTC)</text></g></g><g class="annotation-arrow-g" style="opacity: 1;"><path d="M653,73.91L666,86.91" style="stroke-width: 2px; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 0px, 0px, 18.3848px, 18.3848px;"></path><path d="M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z" transform="translate(666,86.91000366210938)scale(2)" style="fill: rgb(0, 0, 0); stroke-width: 0;"></path></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280"><g class="hoverlayer"></g></svg></div></div></div><div id="chart-gaw-bridge" class="chart tab-content js-plotly-plot"><div class="plot-container plotly"><div class="user-select-none svg-container" style="position: relative; width: 700px; height: 280px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280" style="background: rgb(255, 255, 255);"><defs id="defs-33b91e"><g class="clips"><clipPath id="clip33b91exyplot" class="plotclip"><rect width="666" height="238"></rect></clipPath><clipPath class="axesclip" id="clip33b91ex"><rect x="0" y="0" width="666" height="280"></rect></clipPath><clipPath class="axesclip" id="clip33b91ey"><rect x="0" y="12" width="700" height="238"></rect></clipPath><clipPath class="axesclip" id="clip33b91exy"><rect x="0" y="12" width="666" height="238"></rect></clipPath></g><g class="gradients"></g><g class="patterns"></g></defs><g class="bglayer"></g><g class="draglayer cursor-crosshair"><g class="xy"><rect class="nsewdrag drag" data-subplot="xy" x="0" y="12" width="666" height="238" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nwdrag drag cursor-nw-resize" data-subplot="xy" x="-20" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nedrag drag cursor-ne-resize" data-subplot="xy" x="666" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="swdrag drag cursor-sw-resize" data-subplot="xy" x="-20" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sedrag drag cursor-se-resize" data-subplot="xy" x="666" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ewdrag drag cursor-ew-resize" data-subplot="xy" x="66.60000000000001" y="250.5" width="532.8000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="wdrag drag cursor-w-resize" data-subplot="xy" x="0" y="250.5" width="66.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="edrag drag cursor-e-resize" data-subplot="xy" x="599.4" y="250.5" width="66.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nsdrag drag cursor-ns-resize" data-subplot="xy" x="666.5" y="35.8" width="20" height="190.4" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sdrag drag cursor-s-resize" data-subplot="xy" x="666.5" y="226.20000000000002" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ndrag drag cursor-n-resize" data-subplot="xy" x="666.5" y="12" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect></g></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"><g class="subplot xy"><g class="layer-subplot"><g class="shapelayer"></g><g class="imagelayer"></g></g><g class="minor-gridlayer"><g class="x"></g><g class="y"></g></g><g class="gridlayer"><g class="x"><path class="xgrid crisp" transform="translate(51.55,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(185.31,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(319.07,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(452.82,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(586.58,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g><g class="y"><path class="ygrid crisp" transform="translate(0,231.56)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,187.65)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,143.73)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,99.82)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,55.91)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g></g><g class="zerolinelayer"></g><path class="xlines-below"></path><path class="ylines-below"></path><g class="overlines-below"></g><g class="xaxislayer-below"></g><g class="yaxislayer-below"></g><g class="overaxes-below"></g><g class="plot" transform="translate(0,12)" clip-path="url(#clip33b91exyplot)"><g class="scatterlayer mlayer"><g class="trace scatter trace142be1" style="stroke-miterlimit: 2;"><g class="fills"><g><path class="js-fill" d="M666,1141.7L0,1141.7L0,218.68L2.79,218.68L4.18,217.8L16.72,217.8L18.11,216.92L33.44,216.92L34.83,217.8L66.88,217.8L68.27,218.68L135.15,218.68L136.54,219.56L137.94,218.68L139.33,219.56L192.28,219.56L193.67,220.44L248.01,220.44L249.4,221.31L252.19,227.46L253.58,229.22L254.97,229.22L256.37,228.34L260.55,223.95L261.94,223.07L264.73,222.19L266.12,222.19L267.51,222.19L268.91,221.31L337.18,221.31L338.57,222.19L339.97,221.31L341.36,222.19L344.15,221.31L345.54,222.19L346.93,221.31L348.33,222.19L349.72,221.31L351.11,222.19L367.83,222.19L369.23,221.31L372.01,221.31L373.41,222.19L376.19,221.31L377.59,221.31L429.14,221.31L430.53,220.44L433.32,221.31L434.71,221.31L440.28,221.31L441.68,220.44L443.07,220.44L444.46,221.31L445.86,221.31L447.25,220.44L462.58,220.44L463.97,219.56L473.72,219.56L475.12,218.68L477.9,218.68L479.3,217.8L482.08,217.8L483.48,216.92L484.87,216.92L486.26,216.04L489.05,214.29L490.44,212.53L493.23,208.14L494.62,205.51L498.8,198.48L500.2,196.72L504.38,192.33L505.77,191.45L509.95,189.7L511.34,189.7L515.52,189.7L516.92,190.58L519.7,190.58L521.1,191.45L523.88,191.45L525.28,192.33L533.64,192.33L535.03,191.45L547.57,191.45L548.96,192.33L555.93,192.33L557.32,193.21L560.11,193.21L561.5,194.09L564.29,193.21L565.68,193.21L569.86,193.21L571.26,192.33L574.04,192.33L575.44,191.45L578.22,191.45L579.62,190.58L582.4,190.58L583.79,189.7L587.97,187.94L589.37,187.94L590.76,187.94L592.15,187.06L597.73,184.43L599.12,182.67L601.91,180.04L603.3,178.28L607.48,174.77L608.87,173.01L617.23,168.62L618.63,168.62L626.99,168.62L628.38,169.5L631.17,169.5L632.56,170.38L633.95,170.38L635.35,171.25L638.13,171.25L639.53,172.13L640.92,172.13L642.31,173.01L643.71,173.01L645.1,173.89L647.89,173.89L649.28,174.77L652.07,175.65L653.46,176.52L654.85,176.52L656.25,177.4L661.82,180.04L663.21,180.04L666,181.79" style="fill: rgb(31, 118, 180); fill-opacity: 0.1; stroke-width: 0;"></path></g></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,218.68L2.79,218.68L4.18,217.8L16.72,217.8L18.11,216.92L33.44,216.92L34.83,217.8L66.88,217.8L68.27,218.68L135.15,218.68L136.54,219.56L137.94,218.68L139.33,219.56L192.28,219.56L193.67,220.44L248.01,220.44L249.4,221.31L252.19,227.46L253.58,229.22L254.97,229.22L256.37,228.34L260.55,223.95L261.94,223.07L264.73,222.19L266.12,222.19L267.51,222.19L268.91,221.31L337.18,221.31L338.57,222.19L339.97,221.31L341.36,222.19L344.15,221.31L345.54,222.19L346.93,221.31L348.33,222.19L349.72,221.31L351.11,222.19L367.83,222.19L369.23,221.31L372.01,221.31L373.41,222.19L376.19,221.31L377.59,221.31L429.14,221.31L430.53,220.44L433.32,221.31L434.71,221.31L440.28,221.31L441.68,220.44L443.07,220.44L444.46,221.31L445.86,221.31L447.25,220.44L462.58,220.44L463.97,219.56L473.72,219.56L475.12,218.68L477.9,218.68L479.3,217.8L482.08,217.8L483.48,216.92L484.87,216.92L486.26,216.04L489.05,214.29L490.44,212.53L493.23,208.14L494.62,205.51L498.8,198.48L500.2,196.72L504.38,192.33L505.77,191.45L509.95,189.7L511.34,189.7L515.52,189.7L516.92,190.58L519.7,190.58L521.1,191.45L523.88,191.45L525.28,192.33L533.64,192.33L535.03,191.45L547.57,191.45L548.96,192.33L555.93,192.33L557.32,193.21L560.11,193.21L561.5,194.09L564.29,193.21L565.68,193.21L569.86,193.21L571.26,192.33L574.04,192.33L575.44,191.45L578.22,191.45L579.62,190.58L582.4,190.58L583.79,189.7L587.97,187.94L589.37,187.94L590.76,187.94L592.15,187.06L597.73,184.43L599.12,182.67L601.91,180.04L603.3,178.28L607.48,174.77L608.87,173.01L617.23,168.62L618.63,168.62L626.99,168.62L628.38,169.5L631.17,169.5L632.56,170.38L633.95,170.38L635.35,171.25L638.13,171.25L639.53,172.13L640.92,172.13L642.31,173.01L643.71,173.01L645.1,173.89L647.89,173.89L649.28,174.77L652.07,175.65L653.46,176.52L654.85,176.52L656.25,177.4L661.82,180.04L663.21,180.04L666,181.79" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(31, 119, 180); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace3377a1" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"><path class="point" transform="translate(666,181.79)" d="M4,0A4,4 0 1,1 0,-4A4,4 0 0,1 4,0Z" style="opacity: 1; stroke-width: 0px; fill: rgb(0, 0, 0); fill-opacity: 1;"></path></g><g class="text"></g></g><g class="trace scatter tracee56d5f" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,8.78L666,8.78" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace7b6519" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="8.78" data-unformatted="Kingsbury to Coat (12.90m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Kingsbury to Coat (12.90m)</text></g></g></g><g class="trace scatter tracef66697" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,181.79L666,181.79" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g></g></g><g class="overplot"></g><path class="xlines-above crisp" d="M0,0" style="fill: none;"></path><path class="ylines-above crisp" d="M0,0" style="fill: none;"></path><g class="overlines-above"></g><g class="xaxislayer-above"><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-15" data-math="N" transform="translate(51.55,0)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">2024-12-15</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-16" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(185.31,0)">2024-12-16</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-17" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(319.07,0)">2024-12-17</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-18" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(452.82,0)">2024-12-18</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-19" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(586.58,0)">2024-12-19</text></g></g><g class="yaxislayer-above"><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="10.50m" data-math="N" transform="translate(0,231.56)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">10.50m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="11.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,187.65)">11.00m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="11.50m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,143.73)">11.50m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="12.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,99.82)">12.00m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="12.50m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,55.91)">12.50m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="13.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,12)">13.00m</text></g></g><g class="overaxes-above"></g></g></g><g class="polarlayer"></g><g class="smithlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"></g><g class="iciclelayer"></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280"><defs id="topdefs-33b91e"><g class="clips"></g></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="selectionlayer"></g><g class="infolayer"><g class="g-gtitle"></g><g class="g-xtitle"></g><g class="g-ytitle"></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,644,171.79)"><g class="cursor-pointer" transform="translate(588,162)"><rect class="bg" x="0.5" y="0.5" width="112" height="18" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 1; fill: rgb(255, 255, 255); fill-opacity: 1;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="10.93m (14:15 UTC)" data-math="N" x="56.5" y="14" style="font-family: Inter, sans-serif; font-size: 12px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">10.93m (14:15 UTC)</text></g></g><g class="annotation-arrow-g" style="opacity: 1;"><path d="M653,180.79L666,193.79" style="stroke-width: 2px; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 0px, 0px, 18.3848px, 18.3848px;"></path><path d="M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z" transform="translate(666,193.7899932861328)scale(2)" style="fill: rgb(0, 0, 0); stroke-width: 0;"></path></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280"><g class="hoverlayer"></g></svg></div></div></div><div id="chart-midelney" class="chart tab-content js-plotly-plot"><div class="plot-container plotly"><div class="user-select-none svg-container" style="position: relative; width: 700px; height: 280px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280" style="background: rgb(255, 255, 255);"><defs id="defs-66100f"><g class="clips"><clipPath id="clip66100fxyplot" class="plotclip"><rect width="666" height="238"></rect></clipPath><clipPath class="axesclip" id="clip66100fx"><rect x="0" y="0" width="666" height="280"></rect></clipPath><clipPath class="axesclip" id="clip66100fy"><rect x="0" y="12" width="700" height="238"></rect></clipPath><clipPath class="axesclip" id="clip66100fxy"><rect x="0" y="12" width="666" height="238"></rect></clipPath></g><g class="gradients"></g><g class="patterns"></g></defs><g class="bglayer"></g><g class="draglayer cursor-crosshair"><g class="xy"><rect class="nsewdrag drag" data-subplot="xy" x="0" y="12" width="666" height="238" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nwdrag drag cursor-nw-resize" data-subplot="xy" x="-20" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nedrag drag cursor-ne-resize" data-subplot="xy" x="666" y="-8" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="swdrag drag cursor-sw-resize" data-subplot="xy" x="-20" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sedrag drag cursor-se-resize" data-subplot="xy" x="666" y="250" width="20" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ewdrag drag cursor-ew-resize" data-subplot="xy" x="66.60000000000001" y="250.5" width="532.8000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="wdrag drag cursor-w-resize" data-subplot="xy" x="0" y="250.5" width="66.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="edrag drag cursor-e-resize" data-subplot="xy" x="599.4" y="250.5" width="66.60000000000001" height="20" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="nsdrag drag cursor-ns-resize" data-subplot="xy" x="666.5" y="35.8" width="20" height="190.4" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="sdrag drag cursor-s-resize" data-subplot="xy" x="666.5" y="226.20000000000002" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect><rect class="ndrag drag cursor-n-resize" data-subplot="xy" x="666.5" y="12" width="20" height="23.8" style="fill: transparent; stroke-width: 0; pointer-events: all;"></rect></g></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"><g class="subplot xy"><g class="layer-subplot"><g class="shapelayer"></g><g class="imagelayer"></g></g><g class="minor-gridlayer"><g class="x"></g><g class="y"></g></g><g class="gridlayer"><g class="x"><path class="xgrid crisp" transform="translate(51.55,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(185.31,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(319.07,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(452.82,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="xgrid crisp" transform="translate(586.58,0)" d="M0,12v238" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g><g class="y"><path class="ygrid crisp" transform="translate(0,181.47)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,107.79)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path><path class="ygrid crisp" transform="translate(0,34.11)" d="M0,0h666" style="stroke: rgb(238, 238, 238); stroke-opacity: 1; stroke-width: 1px;"></path></g></g><g class="zerolinelayer"></g><path class="xlines-below"></path><path class="ylines-below"></path><g class="overlines-below"></g><g class="xaxislayer-below"></g><g class="yaxislayer-below"></g><g class="overaxes-below"></g><g class="plot" transform="translate(0,12)" clip-path="url(#clip66100fxyplot)"><g class="scatterlayer mlayer"><g class="trace scatter tracee2ea5f" style="stroke-miterlimit: 2;"><g class="fills"><g><path class="js-fill" d="M666,1274.74L0,1274.74L0,171.68L9.75,171.68L11.15,173.16L16.72,173.16L18.11,174.63L32.05,174.63L33.44,173.16L34.83,174.63L36.23,174.63L37.62,174.63L39.01,173.16L40.41,174.63L41.8,174.63L43.19,173.16L44.59,173.16L52.95,173.16L54.34,174.63L69.67,174.63L71.06,176.11L78.03,176.11L79.42,177.58L101.71,177.58L103.1,176.11L114.25,176.11L115.64,174.63L117.04,176.11L118.43,174.63L128.18,174.63L129.58,173.16L130.97,173.16L132.36,174.63L149.08,174.63L150.48,176.11L153.26,176.11L154.66,177.58L156.05,179.05L157.44,179.05L167.2,179.05L168.59,177.58L175.56,177.58L176.95,179.05L178.34,177.58L179.74,179.05L189.49,179.05L190.88,180.53L193.67,180.53L195.06,182L203.42,182L204.82,183.47L213.18,183.47L214.57,184.95L220.14,184.95L221.54,186.42L225.72,186.42L227.11,187.89L228.5,186.42L229.9,187.89L231.29,186.42L232.68,186.42L238.26,186.42L239.65,184.95L241.04,184.95L242.44,186.42L257.76,186.42L259.15,187.89L268.91,187.89L270.3,186.42L281.45,186.42L282.84,187.89L285.63,187.89L287.02,189.37L292.59,189.37L293.99,190.84L296.77,190.84L298.17,189.37L299.56,190.84L300.95,190.84L303.74,190.84L305.13,189.37L312.1,189.37L313.49,190.84L314.89,189.37L316.28,190.84L320.46,190.84L321.85,189.37L323.25,189.37L324.64,190.84L330.21,190.84L331.61,192.32L334.39,192.32L335.79,193.79L337.18,192.32L338.57,193.79L339.97,193.79L341.36,195.26L342.75,193.79L344.15,193.79L348.33,193.79L349.72,195.26L355.29,195.26L356.69,196.74L360.87,196.74L362.26,198.21L370.62,198.21L372.01,196.74L377.59,196.74L378.98,195.26L381.77,195.26L383.16,193.79L395.7,193.79L397.09,195.26L399.88,195.26L401.27,196.74L405.45,196.74L406.85,198.21L409.63,198.21L411.03,199.68L412.42,201.16L413.81,201.16L415.21,201.16L416.6,202.63L417.99,204.11L419.38,204.11L422.17,207.05L423.56,207.05L424.96,208.53L426.35,208.53L431.92,214.42L433.32,211.47L434.71,212.95L436.1,215.89L437.5,214.42L438.89,215.89L440.28,215.89L441.68,218.84L443.07,212.95L444.46,215.89L445.86,214.42L447.25,215.89L450.04,215.89L451.43,217.37L452.82,212.95L454.22,217.37L455.61,215.89L457,215.89L459.79,212.95L461.18,214.42L463.97,218.84L465.36,217.37L469.54,217.37L470.94,215.89L472.33,217.37L473.72,220.32L475.12,215.89L476.51,220.32L479.3,215.89L480.69,215.89L482.08,217.37L483.48,217.37L486.26,217.37L487.66,215.89L489.05,217.37L490.44,217.37L491.84,217.37L493.23,221.79L494.62,221.79L496.02,220.32L497.41,223.26L498.8,215.89L500.2,215.89L501.59,220.32L502.98,220.32L504.38,215.89L505.77,215.89L507.16,217.37L511.34,210L512.74,208.53L516.92,201.16L518.31,201.16L519.7,201.16L521.1,199.68L522.49,198.21L523.88,198.21L528.06,193.79L529.46,193.79L536.42,186.42L537.82,186.42L544.78,179.05L546.18,179.05L548.96,176.11L550.36,176.11L553.14,173.16L554.54,173.16L555.93,171.68L557.32,171.68L558.72,171.68L560.11,170.21L561.5,170.21L562.9,168.74L564.29,167.26L565.68,167.26L567.08,167.26L568.47,165.79L571.26,165.79L572.65,164.32L578.22,164.32L579.62,162.84L581.01,162.84L582.4,161.37L583.79,159.89L585.19,159.89L586.58,159.89L587.97,158.42L592.15,158.42L593.55,156.95L596.33,156.95L597.73,155.47L599.12,155.47L600.51,154L601.91,154L603.3,152.53L604.69,152.53L606.09,151.05L608.87,148.11L610.27,148.11L615.84,142.21L617.23,142.21L618.63,140.74L620.02,140.74L621.41,139.26L622.81,139.26L624.2,137.79L625.59,137.79L626.99,136.32L628.38,136.32L629.77,136.32L631.17,134.84L635.35,134.84L636.74,133.37L643.71,133.37L645.1,131.89L646.49,133.37L647.89,131.89L656.25,131.89L657.64,130.42L659.03,131.89L660.43,130.42L661.82,131.89L663.21,130.42L666,130.42" style="fill: rgb(31, 118, 180); fill-opacity: 0.1; stroke-width: 0;"></path></g></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,171.68L9.75,171.68L11.15,173.16L16.72,173.16L18.11,174.63L32.05,174.63L33.44,173.16L34.83,174.63L36.23,174.63L37.62,174.63L39.01,173.16L40.41,174.63L41.8,174.63L43.19,173.16L44.59,173.16L52.95,173.16L54.34,174.63L69.67,174.63L71.06,176.11L78.03,176.11L79.42,177.58L101.71,177.58L103.1,176.11L114.25,176.11L115.64,174.63L117.04,176.11L118.43,174.63L128.18,174.63L129.58,173.16L130.97,173.16L132.36,174.63L149.08,174.63L150.48,176.11L153.26,176.11L154.66,177.58L156.05,179.05L157.44,179.05L167.2,179.05L168.59,177.58L175.56,177.58L176.95,179.05L178.34,177.58L179.74,179.05L189.49,179.05L190.88,180.53L193.67,180.53L195.06,182L203.42,182L204.82,183.47L213.18,183.47L214.57,184.95L220.14,184.95L221.54,186.42L225.72,186.42L227.11,187.89L228.5,186.42L229.9,187.89L231.29,186.42L232.68,186.42L238.26,186.42L239.65,184.95L241.04,184.95L242.44,186.42L257.76,186.42L259.15,187.89L268.91,187.89L270.3,186.42L281.45,186.42L282.84,187.89L285.63,187.89L287.02,189.37L292.59,189.37L293.99,190.84L296.77,190.84L298.17,189.37L299.56,190.84L300.95,190.84L303.74,190.84L305.13,189.37L312.1,189.37L313.49,190.84L314.89,189.37L316.28,190.84L320.46,190.84L321.85,189.37L323.25,189.37L324.64,190.84L330.21,190.84L331.61,192.32L334.39,192.32L335.79,193.79L337.18,192.32L338.57,193.79L339.97,193.79L341.36,195.26L342.75,193.79L344.15,193.79L348.33,193.79L349.72,195.26L355.29,195.26L356.69,196.74L360.87,196.74L362.26,198.21L370.62,198.21L372.01,196.74L377.59,196.74L378.98,195.26L381.77,195.26L383.16,193.79L395.7,193.79L397.09,195.26L399.88,195.26L401.27,196.74L405.45,196.74L406.85,198.21L409.63,198.21L411.03,199.68L412.42,201.16L413.81,201.16L415.21,201.16L416.6,202.63L417.99,204.11L419.38,204.11L422.17,207.05L423.56,207.05L424.96,208.53L426.35,208.53L431.92,214.42L433.32,211.47L434.71,212.95L436.1,215.89L437.5,214.42L438.89,215.89L440.28,215.89L441.68,218.84L443.07,212.95L444.46,215.89L445.86,214.42L447.25,215.89L450.04,215.89L451.43,217.37L452.82,212.95L454.22,217.37L455.61,215.89L457,215.89L459.79,212.95L461.18,214.42L463.97,218.84L465.36,217.37L469.54,217.37L470.94,215.89L472.33,217.37L473.72,220.32L475.12,215.89L476.51,220.32L479.3,215.89L480.69,215.89L482.08,217.37L483.48,217.37L486.26,217.37L487.66,215.89L489.05,217.37L490.44,217.37L491.84,217.37L493.23,221.79L494.62,221.79L496.02,220.32L497.41,223.26L498.8,215.89L500.2,215.89L501.59,220.32L502.98,220.32L504.38,215.89L505.77,215.89L507.16,217.37L511.34,210L512.74,208.53L516.92,201.16L518.31,201.16L519.7,201.16L521.1,199.68L522.49,198.21L523.88,198.21L528.06,193.79L529.46,193.79L536.42,186.42L537.82,186.42L544.78,179.05L546.18,179.05L548.96,176.11L550.36,176.11L553.14,173.16L554.54,173.16L555.93,171.68L557.32,171.68L558.72,171.68L560.11,170.21L561.5,170.21L562.9,168.74L564.29,167.26L565.68,167.26L567.08,167.26L568.47,165.79L571.26,165.79L572.65,164.32L578.22,164.32L579.62,162.84L581.01,162.84L582.4,161.37L583.79,159.89L585.19,159.89L586.58,159.89L587.97,158.42L592.15,158.42L593.55,156.95L596.33,156.95L597.73,155.47L599.12,155.47L600.51,154L601.91,154L603.3,152.53L604.69,152.53L606.09,151.05L608.87,148.11L610.27,148.11L615.84,142.21L617.23,142.21L618.63,140.74L620.02,140.74L621.41,139.26L622.81,139.26L624.2,137.79L625.59,137.79L626.99,136.32L628.38,136.32L629.77,136.32L631.17,134.84L635.35,134.84L636.74,133.37L643.71,133.37L645.1,131.89L646.49,133.37L647.89,131.89L656.25,131.89L657.64,130.42L659.03,131.89L660.43,130.42L661.82,131.89L663.21,130.42L666,130.42" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(31, 119, 180); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace16da1a" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"><path class="point" transform="translate(666,130.42)" d="M4,0A4,4 0 1,1 0,-4A4,4 0 0,1 4,0Z" style="opacity: 1; stroke-width: 0px; fill: rgb(0, 0, 0); fill-opacity: 1;"></path></g><g class="text"></g></g><g class="trace scatter traceeb543c" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,14.74L666,14.74" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter tracec84c9e" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,64.84L666,64.84" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 3px, 3px; stroke-width: 1px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g><g class="trace scatter trace65d80c" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="14.74" data-unformatted="Hambridge to Curry Rivel (8.55m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Hambridge to Curry Rivel (8.55m)</text></g></g></g><g class="trace scatter trace3e7710" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"></g><g class="points"></g><g class="text"><g class="textpoint" transform="translate(0,-2.5)"><text x="0" y="64.84" data-unformatted="Top of normal range (8.21m)" data-math="N" text-anchor="start" style="font-family: Inter, sans-serif; font-size: 10px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">Top of normal range (8.21m)</text></g></g></g><g class="trace scatter traced39ec1" style="stroke-miterlimit: 2; opacity: 1;"><g class="fills"></g><g class="errorbars"></g><g class="lines"><path class="js-line" d="M0,130.42L666,130.42" style="vector-effect: non-scaling-stroke; fill: none; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-width: 2px; opacity: 1;"></path></g><g class="points"></g><g class="text"></g></g></g></g><g class="overplot"></g><path class="xlines-above crisp" d="M0,0" style="fill: none;"></path><path class="ylines-above crisp" d="M0,0" style="fill: none;"></path><g class="overlines-above"></g><g class="xaxislayer-above"><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-15" data-math="N" transform="translate(51.55,0)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">2024-12-15</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-16" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(185.31,0)">2024-12-16</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-17" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(319.07,0)">2024-12-17</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-18" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(452.82,0)">2024-12-18</text></g><g class="xtick"><text text-anchor="middle" x="0" y="262" data-unformatted="2024-12-19" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(586.58,0)">2024-12-19</text></g></g><g class="yaxislayer-above"><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="7.50m" data-math="N" transform="translate(0,181.47)" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;">7.50m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="8.00m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,107.79)">8.00m</text></g><g class="ytick"><text text-anchor="start" x="667" y="3.8499999999999996" data-unformatted="8.50m" data-math="N" style="font-family: Inter, sans-serif; font-size: 11px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre; opacity: 1;" transform="translate(0,34.11)">8.50m</text></g></g><g class="overaxes-above"></g></g></g><g class="polarlayer"></g><g class="smithlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"></g><g class="iciclelayer"></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280"><defs id="topdefs-66100f"><g class="clips"></g></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="selectionlayer"></g><g class="infolayer"><g class="g-gtitle"></g><g class="g-xtitle"></g><g class="g-ytitle"></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,644,120.41999999999999)"><g class="cursor-pointer" transform="translate(591,111)"><rect class="bg" x="0.5" y="0.5" width="105" height="18" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 1; fill: rgb(255, 255, 255); fill-opacity: 1;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="7.76m (14:15 UTC)" data-math="N" x="53" y="14" style="font-family: Inter, sans-serif; font-size: 12px; fill: rgb(0, 0, 0); fill-opacity: 1; white-space: pre;">7.76m (14:15 UTC)</text></g></g><g class="annotation-arrow-g" style="opacity: 1;"><path d="M653,129.42L666,142.42" style="stroke-width: 2px; stroke: rgb(0, 0, 0); stroke-opacity: 1; stroke-dasharray: 0px, 0px, 18.3848px, 18.3848px;"></path><path d="M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z" transform="translate(666,142.4199981689453)scale(2)" style="fill: rgb(0, 0, 0); stroke-width: 0;"></path></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="280"><g class="hoverlayer"></g></svg></div></div></div></div>
    </div>

    <footer>
        <a href="mailto:[email protected]">feedback</a> | 
        <a href="https://github.com/bede/levelslevels">code</a> | <a href="https://github.com/bede/levelslevels/commits/main/">changelog</a> | <a href="https://check-for-flooding.service.gov.uk/target-area/112WAFYPM">flood alert</a>
    </footer>

    <script type="text/javascript" crossorigin="anonymous" src="https://eu-assets.i.posthog.com/static/web-vitals.js?v=1.202.2"></script><script type="text/javascript" crossorigin="anonymous" src="https://eu-assets.i.posthog.com/array/phc_KlFKZyqiluUOIZvbdp6T129dDvRVRaAcKICHPeBejch/config.js"></script><script>
        // JavaScript code

        const SOURCES = [
            {
                name: "Long Load Main Drain",
                url: "https://check-for-flooding.service.gov.uk/station-csv/3379",
                elementId: "long-load",
                datumOffset: 5,
                routes: [
                    {
                        name: "Langport to Muchelney",
                        amberThreshold: 7.30,
                        link: "https://www.somerset.gov.uk/roads-travel-and-parking/emergency-road-closure-gates/",
                        markerPosition: [51.0266797, -2.8174208]
                    },
                    {
                        name: "Muchelney to Long Load",
                        amberThreshold: 7.86,
                        link: "",
                        markerPosition: [51.009468, -2.793615]
                    },
                    {
                        name: "Muchelney to Thorney",
                        amberThreshold: 7.93,
                        link: "",
                        markerPosition: [51.0132813, -2.8149388]
                    }
                ],
                thresholds: [
                    { name: "Property flooding", value: 8.35 },
                    { name: "Top of normal range", value: 7.06 }
                ],
                showOnOverlay: true
            },
            {
                name: "West Moor Drain",
                url: "https://check-for-flooding.service.gov.uk/station-csv/3381",
                elementId: "west-moor",
                datumOffset: 5.185,
                routes: [
                    {
                        name: "Hambridge to Burrow",
                        amberThreshold: 7.70,
                        link: "",
                        markerPosition: [50.9856215, -2.8500948]
                    }
                ],
                thresholds: [
                    { name: "Top of normal range", value: 6.645 }
                ],
                showOnOverlay: true
            },
            {
                name: "Parrett at Gaw Bridge",
                url: "https://check-for-flooding.service.gov.uk/station-csv/3072",
                elementId: "gaw-bridge",
                datumOffset: 10,
                routes: [
                    {
                        name: "Kingsbury to Coat",
                        amberThreshold: 12.9,
                        link: "",
                        markerPosition: [50.9760122, -2.7934033]
                    }
                ],
                thresholds: [
                ],
                showOnOverlay: false
            },
            {
                name: "Isle at Midelney",
                url: "https://check-for-flooding.service.gov.uk/station-csv/3380",
                elementId: "midelney",
                datumOffset: 5.185,
                routes: [
                    {
                        name: "Hambridge to Curry Rivel",
                        amberThreshold: 8.55,
                        link: "",
                        markerPosition: [50.9952542, -2.8602064]
                    }
                ],
                thresholds: [
                    { name: "Top of normal range", value: 8.21 }
                ],
                showOnOverlay: false
            }
        ];

        // Colours
        const COLORS = {
            green: "#4CAF50",
            amber: "#FFC107",
            red: "#F44336"
        };

        // Global object to store latest readings
        const latestReadings = {};

        // Fetch data, create charts, and update route statuses
        async function fetchAndProcessData() {
            try {
                // Fetch data for all sources in parallel
                const allData = await Promise.all(
                    SOURCES.map(async (source) => {
                        const parsedData = await fetchData(source);
                        return { source, parsedData };
                    })
                );

                // Now that we have all data in allData (in the same order as SOURCES),
                // we can loop through them in order to ensure stable tab order
                allData.forEach(({ source, parsedData }) => {
                    const latestReading = parsedData[parsedData.length - 1];
                    latestReadings[source.elementId] = latestReading;
                    renderChart(parsedData, source);
                });

                // Update route statuses and render map after all charts are created
                updateRouteStatuses();
                renderMap();

                // Initialize tabs after they have all been created
                initializeTabs();

                // Resize the chart in the default active tab
                const defaultChartDiv = document.querySelector('.tab-content.active');
                if (defaultChartDiv) {
                    Plotly.Plots.resize(defaultChartDiv);
                }

            } catch (error) {
                console.error("Error:", error);
                alert("Failed to fetch and process data.");
            }
        }

        // Fetch data from cache or API
        async function fetchData(source) {
            const cacheKey = `waterLevelsCSV_${source.elementId}`;
            const cachedCSV = localStorage.getItem(cacheKey);
            const cachedTimestamp = localStorage.getItem(`${cacheKey}_timestamp`);
            const now = new Date().getTime();

            if (cachedCSV && cachedTimestamp && now - cachedTimestamp < 15 * 60 * 1000) {
                console.log(`Using cached data for ${source.name}`);
                return parseCSV(cachedCSV, source);
            }

            console.log(`Fetching new data for ${source.name}`);
            const response = await fetch(source.url, { cache: 'no-store' });
            if (!response.ok) throw new Error("Failed to fetch data");
            const csvData = await response.text();

            localStorage.setItem(cacheKey, csvData);
            localStorage.setItem(`${cacheKey}_timestamp`, now.toString());

            return parseCSV(csvData, source);
        }

        // Parse CSV data
        function parseCSV(csvData, source) {
            return csvData
                .trim()
                .split("\n")
                .slice(1)
                .map((row) => {
                    const [timestamp, height] = row.split(",");
                    return { timestamp, height: parseFloat(height) + source.datumOffset };
                });
        }

        // Update route statuses
        function updateRouteStatuses() {
            const routeStatusList = document.getElementById('route-status-list');
            routeStatusList.innerHTML = ''; // Clear existing list

            let hasFloodedRoutes = false;

            SOURCES.forEach(source => {
                // Only show routes on overlay if source.showOnOverlay is true
                if (!source.showOnOverlay) return;

                const sourceReading = latestReadings[source.elementId];
                if (sourceReading) {
                    source.routes.forEach(route => {
                        const status = determineStatus(sourceReading.height, route.amberThreshold);
                        // Only proceed if status is amber or red
                        if (status.color === 'amber' || status.color === 'red') {
                            hasFloodedRoutes = true;
                            const li = document.createElement('li');
                            const circle = document.createElement('span');
                            circle.classList.add('circle', status.color);
                            li.appendChild(circle);

                            const text = document.createElement('span');
                            if (route.link) {
                                text.innerHTML = `<a href="${route.link}">${route.name}</a>: <strong>${status.message}</strong>`;
                            } else {
                                text.innerHTML = `${route.name}: <strong>${status.message}</strong>`;
                            }
                            li.appendChild(text);

                            routeStatusList.appendChild(li);
                        }
                    });
                }
            });

            // Show "All clear" message if no flooded routes are detected
            if (!hasFloodedRoutes) {
                const li = document.createElement('li');

                const circle = document.createElement('span');
                circle.classList.add('circle', 'green');
                li.appendChild(circle);

                const text = document.createElement('span');
                text.innerHTML = `All routes clear (but check <a href="https://www.somerset.gov.uk/roads-travel-and-parking/emergency-road-closure-gates">gate status</a>)`;
                li.appendChild(text);

                routeStatusList.appendChild(li);
            }
        }

        // Determine route status (amber if flood is 0.01m or more above the amber threshold)
        function determineStatus(height, amberThreshold) {
            const redThreshold = amberThreshold + 0.30; // Red threshold is 30cm above amber
            // Amber if (height - amberThreshold) >= 0.01
            if (height >= redThreshold) {
                const diff = ((height - amberThreshold) * 100).toFixed(0); // Difference in cm
                return { color: 'red', message: `flood (${diff}cm)` };
            } else if (height >= amberThreshold + 0.01) {
                const diff = ((height - amberThreshold) * 100).toFixed(0); // Difference in cm
                return { color: 'amber', message: `flood (${diff}cm)` };
            } else {
                const diff = ((height - amberThreshold) * 100).toFixed(0); // Difference in cm
                return { color: 'green', message: `clear (${diff}cm)` };
            }
        }

        function renderChart(parsedData, source) {
            const timestamps = parsedData.map(d => d.timestamp);
            const heights = parsedData.map(d => d.height);

            // Create threshold lines and labels for routes and additional thresholds
            const thresholds = [
                ...source.routes.map((route) => ({
                    name: route.name,
                    value: route.amberThreshold
                })),
                ...(source.thresholds || [])
            ];

            const thresholdLines = thresholds.map(threshold => ({
                x: [timestamps[0], timestamps[timestamps.length - 1]],
                y: [threshold.value, threshold.value],
                mode: "lines",
                name: threshold.name,
                line: { dash: "dot", width: 1, color: "black" },
                hoverinfo: "none"
            }));

            const thresholdLabels = thresholds.map((threshold) => ({
                x: [timestamps[0]],
                y: [threshold.value],
                mode: "text",
                text: [`${threshold.name} (${threshold.value.toFixed(2)}m)`],
                textposition: "top right",
                textfont: { family: "Inter, sans-serif", size: 10, color: "black" },
                showlegend: false,
                hoverinfo: "none"
            }));

            const waterLevelTrace = {
                x: timestamps,
                y: heights,
                mode: "lines",
                name: "",
                line: { color: "#1f77b4", width: 2 },
                fill: "tozeroy",
                fillcolor: "rgba(31, 118, 180, 0.1)"
            };

            const latestReading = parsedData[parsedData.length - 1];

            // Latest Reading Marker and Annotation
            const latestDate = new Date(latestReading.timestamp);
            const hours = latestDate.getUTCHours().toString().padStart(2, '0');
            const minutes = latestDate.getUTCMinutes().toString().padStart(2, '0');
            const timeString = `${hours}:${minutes} UTC`;

            const latestPointTrace = {
                x: [latestReading.timestamp],
                y: [latestReading.height],
                mode: "markers",
                marker: { color: "black", size: 8 },
                name: "Latest Reading",
                hoverinfo: "none"
            };

            const latestReadingAnnotation = {
                x: latestReading.timestamp,
                y: latestReading.height,
                xref: 'x',
                yref: 'y',
                text: `${latestReading.height.toFixed(2)}m (${timeString})`,
                showarrow: true,
                arrowhead: 6,
                ax: -22,
                ay: -22,
                font: { family: "Inter, sans-serif", size: 12, color: "black" },
                bordercolor: "black",
                borderwidth: 1,
                bgcolor: "#fff",
                opacity: 1.0
            };

            // Calculate dynamic y-axis range
            const dataMin = Math.min(...heights);
            const dataMax = Math.max(...heights);
            const thresholdValues = thresholds.map(t => t.value);
            const thresholdsMin = thresholdValues.length ? Math.min(...thresholdValues) : dataMin;
            const thresholdsMax = thresholdValues.length ? Math.max(...thresholdValues) : dataMax;

            const yPadding = 0.1;
            let yMin = Math.min(dataMin, thresholdsMin) - yPadding;
            let yMax = Math.max(dataMax, thresholdsMax) + yPadding;
            if (yMin < 0) yMin = 0;

            const layout = {
                xaxis: {
                    tickformat: "%Y-%m-%d",
                    showgrid: true,
                    title: "",
                    tickfont: { family: "Inter, sans-serif", size: 11 },
                    range: [timestamps[0], timestamps[timestamps.length - 1]]
                },
                yaxis: {
                    showgrid: true,
                    tickformat: ".2f",
                    ticksuffix: "m",
                    range: [yMin, yMax],
                    tickfont: { family: "Inter, sans-serif", size: 11 },
                    side: "right"
                },
                annotations: [latestReadingAnnotation],
                showlegend: false,
                font: { family: "Inter, sans-serif" },
                margin: { t: 12, b: 30, l: 0, r: 34 },
                autosize: true,
                dragmode: false
            };

            const currentLevelLine = {
                x: [timestamps[0], timestamps[timestamps.length - 1]],
                y: [latestReading.height, latestReading.height],
                mode: "lines",
                name: "Current Level",
                line: { width: 2, color: "black" },
                hoverinfo: "none"
            };

            // Create chart container
            const tabContents = document.getElementById('tab-contents');
            const chartDiv = document.createElement('div');
            chartDiv.id = `chart-${source.elementId}`;
            chartDiv.classList.add('chart', 'tab-content');
            tabContents.appendChild(chartDiv);

            Plotly.newPlot(
                `chart-${source.elementId}`,
                [waterLevelTrace, latestPointTrace, ...thresholdLines, ...thresholdLabels, currentLevelLine],
                layout,
                {
                    responsive: true,
                    displayModeBar: false,
                    scrollZoom: false
                }
            );

            // Create tab button
            const tabButtons = document.getElementById('tab-buttons');
            const tabButton = document.createElement('button');
            tabButton.classList.add('tab-button');
            tabButton.textContent = source.name;
            tabButton.dataset.target = `chart-${source.elementId}`;
            tabButtons.appendChild(tabButton);
        }

        // Initialize tabs
        function initializeTabs() {
            const tabButtons = document.querySelectorAll('.tab-button');
            const tabContents = document.querySelectorAll('.tab-content');

            // Set default active tab
            tabButtons[0].classList.add('active');
            tabContents[0].classList.add('active');
            Plotly.Plots.resize(tabContents[0]);

            tabButtons.forEach(button => {
                button.addEventListener('click', () => {
                    // Remove active class from all buttons and contents
                    tabButtons.forEach(btn => btn.classList.remove('active'));
                    tabContents.forEach(content => {
                        content.classList.remove('active');
                        content.style.display = 'none';
                    });

                    // Add active class to the clicked button and corresponding content
                    button.classList.add('active');
                    const targetContent = document.getElementById(button.dataset.target);
                    targetContent.classList.add('active');
                    targetContent.style.display = 'block';

                    // Resize Plotly chart in the active tab
                    Plotly.Plots.resize(targetContent);
                });
            });
        }

        // Render the map
        function renderMap() {
            const map = L.map('map', {
                attributionControl: false,
                scrollWheelZoom: false,
                boxZoom: false,
                keyboard: false,
                zoomControl: false
            }).setView([51.020, -2.82], 12);

            // Add OpenStreetMap tiles
            L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
                attribution:
                    "&copy; <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors"
            }).addTo(map);

            // Add zoom control to the left side
            L.control.zoom({
                position: 'bottomleft'
            }).addTo(map);

            // Add markers for each route
            SOURCES.forEach(source => {
                const sourceReading = latestReadings[source.elementId];
                if (sourceReading) {
                    source.routes.forEach(route => {
                        if (route.markerPosition) {
                            const status = determineStatus(sourceReading.height, route.amberThreshold);
                            addMarker(
                                map,
                                route.markerPosition,
                                route.name,
                                source.name,
                                status,
                                determineMarkerColor(sourceReading.height, route.amberThreshold)
                            );
                        }
                    });
                }
            });
        }

        // Add a marker to the map
        function addMarker(map, position, routeName, sourceName, status, color) {
            const popupContent = `
                <strong>${routeName}</strong><br>
                Tracks ${sourceName} level<br>
                Status: <strong>${status.message}</strong>
            `;
            L.marker(position, {
                icon: L.divIcon({
                    className: "custom-icon",
                    html: `<div style="background-color: ${color}; position: relative; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%;"></div>`
                })
            })
                .addTo(map)
                .bindPopup(popupContent);
        }

        // Determine marker color
        function determineMarkerColor(height, amberThreshold) {
            const redThreshold = amberThreshold + 0.30;
            if (height >= redThreshold) return COLORS.red;
            if (height >= amberThreshold + 0.01) return COLORS.amber;
            return COLORS.green;
        }

        // Fetch and process data on page load
        window.onload = fetchAndProcessData;
    </script>


<svg id="js-plotly-tester" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; left: -10000px; top: -10000px; width: 9000px; height: 9000px; z-index: 1;"><path class="js-reference-point" d="M0,0H1V1H0Z" style="stroke-width: 0; fill: black;"></path></svg></body></html>