[
  {
    "index": 1,
    "heading": "2026-04-06 06:37:03 AREA: V",
    "published_at": "2026-04-06 06:37:03",
    "area": "V",
    "message_id": "VA13",
    "text": "ZCZC VA13\n060330 UTC APR __SELLIA MARINA RADIO\n\nCOASTAL WARNING NG\nB_  ZTU__GBY_\n_UMVMCMGYPSPJP_SONGJHYFHMZ_MJF_FSEM_MG_ZAASSZM_G)\nPORRI ISLAND SIGNAL (E.F. 2930 - E1888) IS UNLIT.\nVESSELS IN TRANSIT BEWARE.\n\nNNNN",
    "clean_text": "ZCZC VA13\n060330 UTC APR __SELLIA MARINA RADIO\n\nCOASTAL WARNING NG\nB_ ZTU__GBY_\n_UMVMCMGYPSPJP_SONGJHYFHMZ_MJF_FSEM_MG_ZAASSZM_G)\nPORRI ISLAND SIGNAL (E.F. 2930 - E1888) IS UNLIT.\nVESSELS IN TRANSIT BEWARE.\n\nNNNN",
    "resolved_station_name": "Sellia Marina",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Ionian Sea and Strait of Messina",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "SELLIA MARINA"
    ],
    "display_region_heading": "Italy - Ionian Sea and Strait of Messina",
    "display_region_label": "Sellia Marina, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Ionian Sea and Strait of Messina. Readable text says: Coastal warning ng. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Coastal warning ng",
      "Porri island signal (e.f. 2930 - e1888) is unlit",
      "Vessels in transit beware"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 2,
    "heading": "2026-04-06 06:35:46 AREA: V",
    "published_at": "2026-04-06 06:35:46",
    "area": "V",
    "message_id": "VA12",
    "text": "ZCZC VA12\n060330 UTC APR 26\nSELLIA MARINA RADIO\n\nCOASTAL WARNING NR. 127/26 XR_25_( 3 RELEASP_\n_TYS_ONIAN SEA\nFROM MAR 26TH_ 2_26 UNTIL APRI_WPWY RV GAIA BLU (ICDA\n- IMO 792867) AISM_PY+6_._!_0_0.+._:660_+_0_1!/._*.!9,_$0._+'_+_+9,3 5644_3,8-, '3-, !:!_'_.*_6!_.2._+:_$6._+!9,*0_SHIPS_IN TRANTSIT PAY MAQIMUM ATTENOFZMW_OT\nLESS THAN 1NM FIOMCP\nM_FMLSC___\nZCZC",
    "clean_text": "ZCZC VA12\n060330 UTC APR 26\nSELLIA MARINA RADIO\n\nCOASTAL WARNING NR. 127/26 XR_25_( 3 RELEASP_\n_TYS_ONIAN SEA\nFROM MAR 26TH_ 2_26 UNTIL APRI_WPWY RV GAIA BLU (ICDA\n- IMO 792867) AISM_PY+6_._!_0_0.+._:660_+_0_1!/._*.!9,_$0._+'_+_+9,3 5644_3,8-, '3-, !:!_'_.*_6!_.2._+:_$6._+!9,*0_SHIPS_IN TRANTSIT PAY MAQIMUM ATTENOFZMW_OT\nLESS THAN 1NM FIOMCP\nM_FMLSC___\nZCZC",
    "resolved_station_name": "Sellia Marina",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Ionian Sea and Strait of Messina",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "SELLIA MARINA"
    ],
    "display_region_heading": "Italy - Ionian Sea and Strait of Messina",
    "display_region_label": "Sellia Marina, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Ionian Sea and Strait of Messina. Readable text says: Coastal warning nr. 127/26 xr 25 ( 3 releasp. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Coastal warning nr. 127/26 xr 25 ( 3 releasp",
      "- imo 792867) aism py 6 . ! 0 0. . :660 0 1!/. .!9, $0. ' 9,3 5644 3,8-, '3-, !:! ' . 6! .2. : $6. !9, 0 ships in trantsit pay maqimum attenofzmw ot",
      "From mar 26th 2 26 until apri wpwy rv gaia blu (icda"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 3,
    "heading": "2026-04-06 06:34:57 AREA: V",
    "published_at": "2026-04-06 06:34:57",
    "area": "V",
    "message_id": "VA11",
    "text": "ZCZC VA11\n060330 UTC APR 26\nJPSSFM_YFMY_QF_BOASTAL WARNING NR9_134/26 APR 01  (1 RELEASE)\nESJFMJHYFHMAZPONWCPMHZMYWYM_F_CYP_MGHDPM_PJJFM_PJJPSMHY_ SERVICE WILL PROVIDE\nREDUCED SERVIC! -,$ 8,!94.-589,.\nSHIPS AND FLOAT_NYD\nFMPHYE_T FROM THE VTS AREA BEWARE.\n\nNNNN",
    "clean_text": "ZCZC VA11\n060330 UTC APR 26\nJPSSFM_YFMY_QF_BOASTAL WARNING NR9_134/26 APR 01 (1 RELEASE)\nESJFMJHYFHMAZPONWCPMHZMYWYM_F_CYP_MGHDPM_PJJFM_PJJPSMHY_ SERVICE WILL PROVIDE\nREDUCED SERVIC! -,$ 8,!94.-589,.\nSHIPS AND FLOAT_NYD\nFMPHYE_T FROM THE VTS AREA BEWARE.\n\nNNNN",
    "display_region_heading": "Unresolved B1 code V",
    "display_region_label": "B1 code V",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code V. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Jpssfm yfmy qf boastal warning nr9 134/26 apr 01 (1 release)",
      "Esjfmjhyfhmazponwcpmhzmywym f cyp mghdpm pjjfm pjjpsmhy service will provide",
      "Fmphye t from the vts area beware"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 5,
    "heading": "2026-04-06 06:32:08 AREA: V",
    "published_at": "2026-04-06 06:32:08",
    "area": "V",
    "message_id": "VA09",
    "text": "ZCZC VA09\n060330 UTC APR 26\nSA RADIO\n\nCOASTAL WARNING NR. 136/26 APR 03 \nSOUTHERN IONIAN SEA - CATANIA (CT)\nSCIARA BISCARI LIGHTHOUSE I.L. _ 9$_=_1)_'_8._+.__!.!._+*!_!+9,_0:._+_0__._._HAS RESUMED REG_SYMZ_PYHFZ_MARISICILIA COASTAL WARNING NR. 135/26 AM_ 02 STOP IK CANCELLED\n\nNNNN",
    "clean_text": "ZCZC VA09\n060330 UTC APR 26\nSA RADIO\n\nCOASTAL WARNING NR. 136/26 APR 03\nSOUTHERN IONIAN SEA - CATANIA (CT)\nSCIARA BISCARI LIGHTHOUSE I.L. _ 9$_=_1)_'_8._+.__!.!._+*!_!+9,_0:._+_0__._._HAS RESUMED REG_SYMZ_PYHFZ_MARISICILIA COASTAL WARNING NR. 135/26 AM_ 02 STOP IK CANCELLED\n\nNNNN",
    "resolved_station_name": "Sellia Marina",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Ionian Sea and Strait of Messina",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "IONIAN",
      "SOUTHERN IONIAN"
    ],
    "display_region_heading": "Italy - Ionian Sea and Strait of Messina",
    "display_region_label": "Sellia Marina, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Ionian Sea and Strait of Messina. Readable text says: Sciara biscari lighthouse i.l. 9$ 1) ' 8. . !.!. ! ! 9, 0:. 0 . . has resumed reg symz pyhfz marisicilia coastal warning nr. 135/26 am 02 stop ik cancelled. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Sciara biscari lighthouse i.l. 9$ 1) ' 8. . !.!. ! ! 9, 0:. 0 . . has resumed reg symz pyhfz marisicilia coastal warning nr. 135/26 am 02 stop ik cancelled",
      "Coastal warning nr. 136/26 apr 03",
      "Southern ionian sea - catania (ct)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 6,
    "heading": "2026-04-06 06:31:25 AREA: V",
    "published_at": "2026-04-06 06:31:25",
    "area": "V",
    "message_id": "",
    "text": "ZCZC VA_Y_\n_QIEXWY \nTHAMES. \nEAST ANGLIA ONE WIND FARM. \nTURBINE G27, 52-09.8N 002-33.5E_OG SIGNAL INOPERATIVE. \nNNNN",
    "clean_text": "ZCZC VA_Y_\n_QIEXWY\nTHAMES.\nEAST ANGLIA ONE WIND FARM.\nTURBINE G27, 52-09.8N 002-33.5E_OG SIGNAL INOPERATIVE.\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Turbine g27, 52-09.8n 002-33.5e og signal inoperative. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Turbine g27, 52-09.8n 002-33.5e og signal inoperative",
      "East anglia one wind farm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 7,
    "heading": "2026-04-06 06:21:41 AREA: U",
    "published_at": "2026-04-06 06:21:41",
    "area": "U",
    "message_id": "UA76",
    "text": "ZCZC UA76\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING NR. 196/26 APR 04\nADRIATIC SEA - TRIESTE -\nFROM 041800 UTC UNTILL TO 051800 UTC APR 2026\nTRIESTE VTS IS N.O. (NOT OPERATIONAL)\n_''._6*!_!_.*_!_*._0_609,9,++!!!:\n+:+: 7-77\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING 001/26 JAN 01 (24 REPETITION)\nSOUTHERN ADRI_F_MJPM_MGLYFWFJF_FM 01 JAN UNTIL 31 DEC 2026 FROM LOCAL TIME 06.00 TO 24.00,\nWITH EXCLUSION OF NATIONAL HOLIDAYS AND JULY AND AUGUST, WILL BE\nCARRIED OUT A MILITARY ACTIVITY WITH SMALL WEAPONS IN THE AREA\nIN FRONT OF TORRE CAVALLO FIRING RANGE:\nA) 40 38' 40''N - 18 01' 12''E, B) 40 39' 869''N - 18 03' 669''E,\nC) 40 39' 02''N - 18 04' 24''E, D) 40 37' 51''N - 18 04' 27''E,\nE) 40 36' 39''N -.1!.PJ__E, F) 40 38' 08''N - 18 01' 12''E.\nTRANSIT, ANCHORAGE AND FISHING ARE PROHIBITED.\nNNNN",
    "clean_text": "ZCZC UA76\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING NR. 196/26 APR 04\nADRIATIC SEA - TRIESTE -\nFROM 041800 UTC UNTILL TO 051800 UTC APR 2026\nTRIESTE VTS IS N.O. (NOT OPERATIONAL)\n_''._6*!_!_.*_!_*._0_609,9,++!!!:\n+:+: 7-77\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING 001/26 JAN 01 (24 REPETITION)\nSOUTHERN ADRI_F_MJPM_MGLYFWFJF_FM 01 JAN UNTIL 31 DEC 2026 FROM LOCAL TIME 06.00 TO 24.00,\nWITH EXCLUSION OF NATIONAL HOLIDAYS AND JULY AND AUGUST, WILL BE\nCARRIED OUT A MILITARY ACTIVITY WITH SMALL WEAPONS IN THE AREA\nIN FRONT OF TORRE CAVALLO FIRING RANGE:\nA) 40 38' 40''N - 18 01' 12''E, B) 40 39' 869''N - 18 03' 669''E,\nC) 40 39' 02''N - 18 04' 24''E, D) 40 37' 51''N - 18 04' 27''E,\nE) 40 36' 39''N -.1!.PJ__E, F) 40 38' 08''N - 18 01' 12''E.\nTRANSIT, ANCHORAGE AND FISHING ARE PROHIBITED.\nNNNN",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "MONDOLFO RADIO"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: Transit, anchorage and fishing are prohibited.",
    "decoded_highlights": [
      "Transit, anchorage and fishing are prohibited",
      "Coastal warning 001/26 jan 01 (24 repetition)",
      "Carried out a military activity with small weapons in the area"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 8,
    "heading": "2026-04-06 06:20:57 AREA: U",
    "published_at": "2026-04-06 06:20:57",
    "area": "U",
    "message_id": "UA75",
    "text": "ZCZC UA75\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING 148/26 MAR 24 (3 RE_PHFHFZ_SO\nG_PHYSMWYFHF_MJPM_MG_PJXY__LIGHTHOUSE OF PESCARA I.L\nOMP_C M__P\nUP E_PHMGFM_ZJFHFZ_LAT 42 27.9'N - LONG 014 14.0'E\nNOT WORKING.\n\n\nONNIII_\nZCZC",
    "clean_text": "ZCZC UA75\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING 148/26 MAR 24 (3 RE_PHFHFZ_SO\nG_PHYSMWYFHF_MJPM_MG_PJXY__LIGHTHOUSE OF PESCARA I.L\nOMP_C M__P\nUP E_PHMGFM_ZJFHFZ_LAT 42 27.9'N - LONG 014 14.0'E\nNOT WORKING.\n\nONNIII_\nZCZC",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "MONDOLFO RADIO"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: G physmwyfhf mjpm mg pjxy lighthouse of pescara i.l. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "G physmwyfhf mjpm mg pjxy lighthouse of pescara i.l",
      "Coastal warning 148/26 mar 24 (3 re phfhfz so",
      "Up e phmgfm zjfhfz lat 42 27.9'n - long 014 14.0'e"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 9,
    "heading": "2026-04-06 06:20:18 AREA: U",
    "published_at": "2026-04-06 06:20:18",
    "area": "U",
    "message_id": "UA70",
    "text": "ZCZC UA70\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING NR. 173/26 MAR _3.=0._6!'_!+\n'9,_26!_!_.*0._.__00-!._._')60''.!*'29,!._*\n_9,.6_.Y_UG_M_M_U_U_FGPONSF_DHDZCJPMYM\nY _BYHMGFH_JGJMZHM_ZYVFONONNIII\nZCZC",
    "clean_text": "ZCZC UA70\n060320 UTC APR 26\nMONDOLFO RADIO\n\nCOASTAL WARNING NR. 173/26 MAR _3.=0._6!'_!+\n'9,_26!_!_.*0._.__00-!._._')60''.!*'29,!._*\n_9,.6_.Y_UG_M_M_U_U_FGPONSF_DHDZCJPMYM\nY _BYHMGFH_JGJMZHM_ZYVFONONNIII\nZCZC",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "MONDOLFO RADIO"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: Coastal warning nr. 173/26 mar 3. 0. 6!' !. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Coastal warning nr. 173/26 mar 3. 0. 6!' !",
      "Y byhmgfh jgjmzhm zyvfononniii",
      "Mondolfo radio"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 10,
    "heading": "2026-04-06 06:19:08 AREA: T",
    "published_at": "2026-04-06 06:19:08",
    "area": "T",
    "message_id": "TA99",
    "text": "ZCZC TA99\n_54 UTC JAN\nOOSTENDERADIO MSI 027/26\nBE EEZ\nHYDROGRAPHICAL INSTRUMENT ESTABLISHED IN POS 5127.375N 00222.306E \nUNMARKED\nSHIPPING IS REQUESTED NOT TO FISH NOR TO ANCHOR IN THEV\nF__$1_+_!===_==_7_\nZCZC",
    "clean_text": "ZCZC TA99\n_54 UTC JAN\nOOSTENDERADIO MSI 027/26\nBE EEZ\nHYDROGRAPHICAL INSTRUMENT ESTABLISHED IN POS 5127.375N 00222.306E\nUNMARKED\nSHIPPING IS REQUESTED NOT TO FISH NOR TO ANCHOR IN THEV\nF__$1_+_!===_==_7_\nZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Shipping is requested not to fish nor to anchor in thev. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Shipping is requested not to fish nor to anchor in thev",
      "Hydrographical instrument established in pos 5127.375n 00222.306e",
      "Unmarked"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 11,
    "heading": "2026-04-06 06:15:04 AREA: T",
    "published_at": "2026-04-06 06:15:04",
    "area": "T",
    "message_id": "TA28",
    "text": "ZCZC TA28\nCOASTAL WARNING NR.035/26 MAR 29\n_ARNA__A - MEDITGRNEAN SEA -\nFOLLO_ING TRACK:\n38 28.636N 010 57.599E\n38 26.655N 010 45.771E\n38 27.152N _1_9 01.813N 009 20.374E\n39 06.532N 009 21.151E\n39 11.429N 009 20.377E\nFROM 30TH MAR 2026 UNTIL 30TH JUN 20-_9 5__ 43_8,-, M/P REGINA II, M/P NICOLA ARENA, M/P MARCANTONIO C_M/P JIJEL, M/P RIUCCIO, ____ =_::-49, ___5=____6+_._P OMAR, M/P MATTEO, M/P RE, (9\n__:9-:8'59,3, M/P FANTE DI PICHE, M/P GISELLA\nP GEMIN__9\n_2!*_0:*.2.'0+62+._!'_._66_.+:_.+_0_+34_____1.39(19(_-/$_1._(3B_K_EY MUST BE CONSIDERED VESSELS RESTRICTED IN THEM ABILITY TO MANOEUVRE SHIPPING FISHING-ANCHORAGE AND EVERY SURFACE/UNDERWATER ACTIVITY IS DANGEROUS.\n_LL TRA_SITING SHIPS B_WARE.\nN_N_\n___________T \nBE __Z \n_MONGIII_X\n-_+$_.(_,.GOG:::-.-.__\n73+:+: 5-81\n_UTC MAR\nOOSTENDERADIO MSI 101/26\n(-W_STHINDER \nWESTHINDER MEASURING PO_E, 51-23.31N \n_U_UEBUEGPMONGSF_DHMCYPSFLSPONGONNIII___QUU_\nU__\n__\nA_W_XCW_V_350/25\nOZJHPWP_GAPPLYC___O_G_DFMZMHDPMJPIII_WMFMHDPM\nF_F_H_MONGZ.\n_ __5N 003-03,75EON_J_FBMFKYPFJM_PPWHPWMZHMHZM_DZYMONGZYMHZMIIK_!*$.!._$0.\n!_(_\nNNNN",
    "clean_text": "ZCZC TA28\nCOASTAL WARNING NR.035/26 MAR 29\n_ARNA__A - MEDITGRNEAN SEA -\nFOLLO_ING TRACK:\n38 28.636N 010 57.599E\n38 26.655N 010 45.771E\n38 27.152N _1_9 01.813N 009 20.374E\n39 06.532N 009 21.151E\n39 11.429N 009 20.377E\nFROM 30TH MAR 2026 UNTIL 30TH JUN 20-_9 5__ 43_8,-, M/P REGINA II, M/P NICOLA ARENA, M/P MARCANTONIO C_M/P JIJEL, M/P RIUCCIO, ____ =_::-49, ___5=____6+_._P OMAR, M/P MATTEO, M/P RE, (9\n__:9-:8'59,3, M/P FANTE DI PICHE, M/P GISELLA\nP GEMIN__9\n_2!*_0:*.2.'0+62+._!'_._66_.+:_.+_0_+34_____1.39(19(_-/$_1._(3B_K_EY MUST BE CONSIDERED VESSELS RESTRICTED IN THEM ABILITY TO MANOEUVRE SHIPPING FISHING-ANCHORAGE AND EVERY SURFACE/UNDERWATER ACTIVITY IS DANGEROUS.\n_LL TRA_SITING SHIPS B_WARE.\nN_N_\n___________T\nBE __Z\n_MONGIII_X\n-_+$_.(_,.GOG:::-.-.__\n73+:+: 5-81\n_UTC MAR\nOOSTENDERADIO MSI 101/26\n(-W_STHINDER\nWESTHINDER MEASURING PO_E, 51-23.31N\n_U_UEBUEGPMONGSF_DHMCYPSFLSPONGONNIII___QUU_\nU__\n__\nA_W_XCW_V_350/25\nOZJHPWP_GAPPLYC___O_G_DFMZMHDPMJPIII_WMFMHDPM\nF_F_H_MONGZ.\n_ __5N 003-03,75EON_J_FBMFKYPFJM_PPWHPWMZHMHZM_DZYMONGZYMHZMIIK_!*$.!._$0.\n!_(_\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: 2! 0: .2.'0 62 . !' . 66 . : . 0 34 1.39(19( -/$ 1. (3b k ey must be considered vessels restricted in them ability to manoeuvre shipping fishing-anchorage and every surface/underwater activity is dangerous. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "2! 0: .2.'0 62 . !' . 66 . : . 0 34 1.39(19( -/$ 1. (3b k ey must be considered vessels restricted in them ability to manoeuvre shipping fishing-anchorage and every surface/underwater activity is dangerous",
      "Coastal warning nr.035/26 mar 29",
      "9-:8'59,3, m/p fante di piche, m/p gisella"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 12,
    "heading": "2026-04-06 06:11:27 AREA: T",
    "published_at": "2026-04-06 06:11:27",
    "area": "T",
    "message_id": "TA89",
    "text": "ZCZC TA89\n_,5. ,4 39/2026\nLOGISTIC SUPPORT IS _D_IYPWML_MHDPMJDFM_VGBYFWF_PM\nH_FSMGHZMHDPMYFM_VGJDHYH_ 011-_9_5 _ 7,58) 1) JULY 2026.\n\nCOKTCNOYMONGJ _L PURP__U_ BUOY OWFA, W. FL 5S, \n51-41.6\n5=\n_U___ ESTABLISHED  \nCANCEL THIS MTS_EPC_\nC_ _\n\n___UJTAV__XZ_D_J_WXWY\nVAARHQZ_PQ \n LSG_TBUOY _G5, __-2_\n__4_9, VEL_NO AND ELAMAS WILL CARRY OUT OCEANOGRAPHIC SURVAY ABOUT SUBMARINE CA_LE _DHUHFM _ _T BE CO_SIDERED VESSELS RESTRICTED IN THEM ABILITY TO MAN_TI SHIPPING FISHING-ANCHORAGE AND EVERY SURFACE/UNDERWATER ACTIVCTY IS DANGEROUS._ _''._6*!_!_.*_!_*.)0_6_\n,,,,\n\n_\nZCZC",
    "clean_text": "ZCZC TA89\n_,5. ,4 39/2026\nLOGISTIC SUPPORT IS _D_IYPWML_MHDPMJDFM_VGBYFWF_PM\nH_FSMGHZMHDPMYFM_VGJDHYH_ 011-_9_5 _ 7,58) 1) JULY 2026.\n\nCOKTCNOYMONGJ _L PURP__U_ BUOY OWFA, W. FL 5S,\n51-41.6\n5=\n_U___ ESTABLISHED\nCANCEL THIS MTS_EPC_\nC_ _\n\n___UJTAV__XZ_D_J_WXWY\nVAARHQZ_PQ\nLSG_TBUOY _G5, __-2_\n__4_9, VEL_NO AND ELAMAS WILL CARRY OUT OCEANOGRAPHIC SURVAY ABOUT SUBMARINE CA_LE _DHUHFM _ _T BE CO_SIDERED VESSELS RESTRICTED IN THEM ABILITY TO MAN_TI SHIPPING FISHING-ANCHORAGE AND EVERY SURFACE/UNDERWATER ACTIVCTY IS DANGEROUS._ _''._6*!_!_.*_!_*.)0_6_\n,,,,\n\n_\nZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text says: 4 9, vel no and elamas will carry out oceanographic survay about submarine ca le dhuhfm t be co sidered vessels restricted in them ability to man ti shipping fishing-anchorage and every surface/underwater activcty is dangerous. ''. 6 ! ! . ! .)0 6. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "4 9, vel no and elamas will carry out oceanographic survay about submarine ca le dhuhfm t be co sidered vessels restricted in them ability to man ti shipping fishing-anchorage and every surface/underwater activcty is dangerous. ''. 6 ! ! . ! .)0 6",
      "Coktcnoymongj l purp u buoy owfa, w. fl 5s",
      "Logistic support is d iypwml mhdpmjdfm vgbyfwf pm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 13,
    "heading": "2026-04-06 06:06:27 AREA: S",
    "published_at": "2026-04-06 06:06:27",
    "area": "S",
    "message_id": "SE83",
    "text": "ZCZC SE83\n0_Q_MG__HPT_G__LCYM_VG_X_\n\nWEATHERFORECAST FOR GERMAN BIGHT\n\nMONDAY:\nWIND: WEST TO NORTHWEST 5 TO 6, LATER VARIABLE WINDS ABOUT 3.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: FIRST 4 METER.\n\nTUESDAY:\nWIND: VARIABLE WINDS ABOUT 3, LATER SHIFTING EAST TO SOUTHEAST.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: 1,5 METER.\nNNNN",
    "clean_text": "ZCZC SE83\n0_Q_MG__HPT_G__LCYM_VG_X_\n\nWEATHERFORECAST FOR GERMAN BIGHT\n\nMONDAY:\nWIND: WEST TO NORTHWEST 5 TO 6, LATER VARIABLE WINDS ABOUT 3.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: FIRST 4 METER.\n\nTUESDAY:\nWIND: VARIABLE WINDS ABOUT 3, LATER SHIFTING EAST TO SOUTHEAST.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: 1,5 METER.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "GERMAN BIGHT"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Germany - German Bight and German North Sea. Readable text says: Visibility/weather: good visibility. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Visibility/weather: good visibility",
      "Weatherforecast for german bight",
      "Wind: west to northwest 5 to 6, later variable winds about 3"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 15,
    "heading": "2026-04-06 06:04:37 AREA: S",
    "published_at": "2026-04-06 06:04:37",
    "area": "S",
    "message_id": "SA79",
    "text": "ZCZC SA79\nNCC-HAMBURG\nN\nPNFPMG_HXM_YM\n__ONG_WARN. NO. 18:\n__06_.)!_$_\n_9,_+_943 28,$0-4( 'NORDSEE OST'.\n5 SM LF_DH__MF_Z_PYHF_PM_YZJJMHDPMPHFYPM_F_M_YB_NNNN",
    "clean_text": "ZCZC SA79\nNCC-HAMBURG\nN\nPNFPMG_HXM_YM\n__ONG_WARN. NO. 18:\n__06_.)!_$_\n_9,_+_943 28,$0-4( 'NORDSEE OST'.\n5 SM LF_DH__MF_Z_PYHF_PM_YZJJMHDPMPHFYPM_F_M_YB_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Ncc-hamburg. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Ncc-hamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 19,
    "heading": "2026-04-06 06:01:14 AREA: S",
    "published_at": "2026-04-06 06:01:14",
    "area": "S",
    "message_id": "",
    "text": "ZCZC SA!09,_/__-._74_\n\n__UMG_H_MYM\n_NAV. WARN. NO. 194\n___34.-, _8__5. WEISSE BANK.\nSURVEY_ZPYHFZJML_ 'FUGRO SYNERGY', CS 'C6XR3',\nAROUND POSITION 54-47,3N 005-58,3E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS,\nBERTH OF 2 NM REQUESTED.\nNNNN",
    "clean_text": "ZCZC SA!09,_/__-._74_\n\n__UMG_H_MYM\n_NAV. WARN. NO. 194\n___34.-, _8__5. WEISSE BANK.\nSURVEY_ZPYHFZJML_ 'FUGRO SYNERGY', CS 'C6XR3',\nAROUND POSITION 54-47,3N 005-58,3E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS,\nBERTH OF 2 NM REQUESTED.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WEISSE BANK"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Germany - German Bight and German North Sea. Readable text says: Survey zpyhfzjml 'fugro synergy', cs 'c6xr3'. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Survey zpyhfzjml 'fugro synergy', cs 'c6xr3'",
      "Around position 54-47,3n 005-58,3e",
      "Restricted manoevrability during operations"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 21,
    "heading": "2026-04-06 05:41:10 AREA: Q",
    "published_at": "2026-04-06 05:41:10",
    "area": "Q",
    "message_id": "QE93",
    "text": "ZCZC QE93\n E_UYMG_BXOK4(49,_0)85 4-$89\n\n23-5_34 _7))358, !94 -$48-58: 8''73$ _6 5_3 .-48,3 .353949)9_8:-) _-,_06.*_ 9, 06/04/2026 AT 0000 UTC\n\n1. WARNING:\nON N-ERN ADRIATIC LOC POSS FOG, MOSTLY OVERNIGHT/MORNING.\n\n2. SYNOPSIS:\nHIGH PRESSURE AREA PERSISTS OVER THE ADRIATIC, \n -9,'_._0=002._6+_'.2!*_:6)_0.7!_$.'+_._+._$0..+_._$0.26!_!_.!_._+__._+.0_\n3. FORECAST FOR THE NEXT 24 HOURS VALID UNTIL 07/04/2026 AT 0000 UTC\n\nN-ERN ADRIATIC:\nOVERNIGHT/MORNING CAM OR VRB WIND 4-8 KT, AFTERNOON SW/NW 4-12 KT.\nSEA 1-2.\nVIS 10-20 KM, LOC POSS LESS THEN 1 KM DUE TO FOG, MOSTLY OVERNIGHT/MORNING.\nMOSTLY CLEAR, LOC MOD CLOUDINESS.\n\n\nCENTRAL ADRIATIC:\nSTILL AT FIRST NW WIND 4-14 KT, THEN CALM OR VRB WIND 4-8 KT, AFTERNOON SW/NW 4-12 KT.\nSEA 1-2, STILL AT FIRST ON FAR S-ERN AREA 2-3.\nVIS 10-20 KM.\nMOSTLY CLEAR.\n\nS-ERN ADRIATIC:\n JHFSSM_RST NW WC.6:6__=__.__$0._'_.+_._6)__8_EKGB_ AFTERNOON SW/NW 4-12 KT.\nSEA 1-2, FTFSSMHM_FYJHMZ_ORE 2-3.\nV_J \n__UM_VB_BO_G_ZJ_SEM_SP_Y_NNNN",
    "clean_text": "ZCZC QE93\nE_UYMG_BXOK4(49,_0)85 4-$89\n\n23-5_34 _7))358, !94 -$48-58: 8''73$ _6 5_3 .-48,3 .353949)9_8:-) _-,_06.*_ 9, 06/04/2026 AT 0000 UTC\n\n1. WARNING:\nON N-ERN ADRIATIC LOC POSS FOG, MOSTLY OVERNIGHT/MORNING.\n\n2. SYNOPSIS:\nHIGH PRESSURE AREA PERSISTS OVER THE ADRIATIC,\n-9,'_._0=002._6+_'.2!*_:6)_0.7!_$.'+_._+._$0..+_._$0.26!_!_.!_._+__._+.0_\n3. FORECAST FOR THE NEXT 24 HOURS VALID UNTIL 07/04/2026 AT 0000 UTC\n\nN-ERN ADRIATIC:\nOVERNIGHT/MORNING CAM OR VRB WIND 4-8 KT, AFTERNOON SW/NW 4-12 KT.\nSEA 1-2.\nVIS 10-20 KM, LOC POSS LESS THEN 1 KM DUE TO FOG, MOSTLY OVERNIGHT/MORNING.\nMOSTLY CLEAR, LOC MOD CLOUDINESS.\n\nCENTRAL ADRIATIC:\nSTILL AT FIRST NW WIND 4-14 KT, THEN CALM OR VRB WIND 4-8 KT, AFTERNOON SW/NW 4-12 KT.\nSEA 1-2, STILL AT FIRST ON FAR S-ERN AREA 2-3.\nVIS 10-20 KM.\nMOSTLY CLEAR.\n\nS-ERN ADRIATIC:\nJHFSSM_RST NW WC.6:6__=__.__$0._'_.+_._6)__8_EKGB_ AFTERNOON SW/NW 4-12 KT.\nSEA 1-2, FTFSSMHM_FYJHMZ_ORE 2-3.\nV_J\n__UM_VB_BO_G_ZJ_SEM_SP_Y_NNNN",
    "resolved_station_name": "Split",
    "resolved_country": "Croatia",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "ADRIATIC"
    ],
    "display_region_heading": "Croatia - Adriatic Sea",
    "display_region_label": "Split, Croatia",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Croatia - Adriatic Sea. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "On n-ern adriatic loc poss fog, mostly overnight/morning",
      "Vis 10-20 km, loc poss less then 1 km due to fog, mostly overnight/morning",
      "3. forecast for the next 24 hours valid until 07/04/2026 at 0000 utc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 27,
    "heading": "2026-04-06 05:30:00 AREA: P",
    "published_at": "2026-04-06 05:30:00",
    "area": "P",
    "message_id": "PE84",
    "text": "ZCZC PE84\n060106 UTC APR 26\nFORECAST DUTCH EEZ FJJCPWMHM_UPXP_MG_HXM_H__EONGHDPYPMYPMZM_YFJ_BONONGJ_ZJFJONDFD__M _ OVER NORTHEASTERN FRANCE WILL MZ_PMHZMHDPMONPHDPYSWJ_\nFORECAST VALID MONDAY 03:00 TILL MONDAY 15:00 UTC\n\nTHAMES \nNORTHWEST 3-4, FROM THE SOUTH SOON DECREASING VARIABLE 1-3.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER, LATER DECREASING 0.5-1.0 MET_Y_\n\nHUMBER \nWEST TO NORTHWEST 4-5, SOON YP_PFPJPMGMGWP_YPJFM_UPMONGSHPYML_G SOUTH TO SOUTHWEST.\nGOOD.\nWAVEHEIGHT 2.0-2.5 METER, DECREASING 1.5-2.0 METER, LATER 1.\n0-1.5 METER.\n\n\nGERMAN BIGHT \nWEST TZMZYHD_PJ_M_HEMGWP_YPJFM_YHMGSHPYM_PY_ONG_ZZ__WAVEHEIGHT 2.0-3.0 METER, DECREASING 2.0-2.5 METER.\n\n\nDOGGER \nWEST TO NORTHWEST 5-6, SOON DECREASING 4-5, DECREASING 3-4, \nLATER SOUTHWEST 2-3.\nGOOD.\nWAVEHEIGHT 2.5-3.5 METER, GRADUALLY DECREASING 1.5-2.0 \nMETER.\n\n\nFORECAST VALID MONDAY 15:_0.__!''._:0*23._PX__GVH_ONONHD_PJMON_YFLSPM__PMGJZZMF_YPJF_MPJHMHZMZYHDPJHM_PYMONGZ_ALLY 5, VEERING EAST TO SOUTHEAST.\nGOOD.\nWAVEHEIGHT 0.5-1.0 METER.\n\n\nHUMBER \nSOUHDMHZMJZCHD_PJ_M_N SOON BACKING SOUTH TO SOUTHEASH_MONGF_YPJFM_UYBONG_ZZ__WAVEHEIGHT 1.0-1.5 MEHVY_MGSHPYMWP_YPJFM\n__P METER.\n\n\nGERMAN BIGHT \nWEST TO NORTHWEST 3-4, DECREASING VARIABLE 1-3.\nGOOD.\nWAVEHEIGHT 2.0-2.5 METER, IN THE COASTAL AREA AROUND 1.5 \nMETER, SOON DECREASING 1.5-2.0 METER, LATER 1.0-1.5 METER.\n\n\nDOGGER \nNJZCHD_PJ\nOKKNB_K\n_\nI_.\nWAVEHEIGHT 1.5-2__3534, D_60*!.\n __ BH\n__PH_Y_\n\n\n\nNNNN",
    "clean_text": "ZCZC PE84\n060106 UTC APR 26\nFORECAST DUTCH EEZ FJJCPWMHM_UPXP_MG_HXM_H__EONGHDPYPMYPMZM_YFJ_BONONGJ_ZJFJONDFD__M _ OVER NORTHEASTERN FRANCE WILL MZ_PMHZMHDPMONPHDPYSWJ_\nFORECAST VALID MONDAY 03:00 TILL MONDAY 15:00 UTC\n\nTHAMES\nNORTHWEST 3-4, FROM THE SOUTH SOON DECREASING VARIABLE 1-3.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER, LATER DECREASING 0.5-1.0 MET_Y_\n\nHUMBER\nWEST TO NORTHWEST 4-5, SOON YP_PFPJPMGMGWP_YPJFM_UPMONGSHPYML_G SOUTH TO SOUTHWEST.\nGOOD.\nWAVEHEIGHT 2.0-2.5 METER, DECREASING 1.5-2.0 METER, LATER 1.\n0-1.5 METER.\n\nGERMAN BIGHT\nWEST TZMZYHD_PJ_M_HEMGWP_YPJFM_YHMGSHPYM_PY_ONG_ZZ__WAVEHEIGHT 2.0-3.0 METER, DECREASING 2.0-2.5 METER.\n\nDOGGER\nWEST TO NORTHWEST 5-6, SOON DECREASING 4-5, DECREASING 3-4,\nLATER SOUTHWEST 2-3.\nGOOD.\nWAVEHEIGHT 2.5-3.5 METER, GRADUALLY DECREASING 1.5-2.0\nMETER.\n\nFORECAST VALID MONDAY 15:_0.__!''._:0*23._PX__GVH_ONONHD_PJMON_YFLSPM__PMGJZZMF_YPJF_MPJHMHZMZYHDPJHM_PYMONGZ_ALLY 5, VEERING EAST TO SOUTHEAST.\nGOOD.\nWAVEHEIGHT 0.5-1.0 METER.\n\nHUMBER\nSOUHDMHZMJZCHD_PJ_M_N SOON BACKING SOUTH TO SOUTHEASH_MONGF_YPJFM_UYBONG_ZZ__WAVEHEIGHT 1.0-1.5 MEHVY_MGSHPYMWP_YPJFM\n__P METER.\n\nGERMAN BIGHT\nWEST TO NORTHWEST 3-4, DECREASING VARIABLE 1-3.\nGOOD.\nWAVEHEIGHT 2.0-2.5 METER, IN THE COASTAL AREA AROUND 1.5\nMETER, SOON DECREASING 1.5-2.0 METER, LATER 1.0-1.5 METER.\n\nDOGGER\nNJZCHD_PJ\nOKKNB_K\n_\nI_.\nWAVEHEIGHT 1.5-2__3534, D_60*!.\n__ BH\n__PH_Y_\n\nNNNN",
    "resolved_station_name": "Netherlands Coastguard Radio",
    "resolved_country": "Netherlands",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Dutch EEZ and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "DUTCH EEZ"
    ],
    "display_region_heading": "Netherlands - Dutch EEZ and southern North Sea",
    "display_region_label": "Netherlands Coastguard Radio, Netherlands",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Netherlands - Dutch EEZ and southern North Sea. Readable text says: Forecast dutch eez fjjcpwmhm upxp mg hxm h eonghdpypmypmzm yfj bonongj zjfjondfd m over northeastern france will mz pmhzmhdpmonphdpyswj. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Forecast dutch eez fjjcpwmhm upxp mg hxm h eonghdpypmypmzm yfj bonongj zjfjondfd m over northeastern france will mz pmhzmhdpmonphdpyswj",
      "Forecast valid monday 03:00 till monday 15:00 utc",
      "Forecast valid monday 15: 0. !''. :0 23. px gvh ononhd pjmon yflspm pmgjzzmf ypjf mpjhmhzmzyhdpjhm pymongz ally 5, veering east to southeast"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 28,
    "heading": "2026-04-06 05:29:59 AREA: T",
    "published_at": "2026-04-06 05:29:59",
    "area": "T",
    "message_id": "",
    "text": "CZCZC",
    "clean_text": "CZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 29,
    "heading": "2026-04-06 05:24:42 AREA: O",
    "published_at": "2026-04-06 05:24:42",
    "area": "O",
    "message_id": "OA33",
    "text": "ZCZC OA33\nCOASTAL WRNG NR 040/26 GEN 23\nTRAIT OF SICILY LMP\n\nARTIALLY SUBMERGED RUBBER BOAT IN POSN 35 29.+27, 012 08.22E  SHIPS IN TRANSIT BEWARE\nNNNN",
    "clean_text": "ZCZC OA33\nCOASTAL WRNG NR 040/26 GEN 23\nTRAIT OF SICILY LMP\n\nARTIALLY SUBMERGED RUBBER BOAT IN POSN 35 29.+27, 012 08.22E SHIPS IN TRANSIT BEWARE\nNNNN",
    "display_region_heading": "Unresolved B1 code O",
    "display_region_label": "B1 code O",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code O. Readable text says: Artially submerged rubber boat in posn 35 29. 27, 012 08.22e ships in transit beware.",
    "decoded_highlights": [
      "Artially submerged rubber boat in posn 35 29. 27, 012 08.22e ships in transit beware",
      "Coastal wrng nr 040/26 gen 23",
      "Trait of sicily lmp"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 30,
    "heading": "2026-04-06 05:23:26 AREA: T",
    "published_at": "2026-04-06 05:23:26",
    "area": "T",
    "message_id": "",
    "text": "ZCSC O_IRISH SEA.\n798__1. TURBINE DBQ TRAPTMYG_\n.\n2. CANCEL WZ \nC TUE\nVGZFFWBW_____09_97__+!6*=_0_+_Z__ZB_DZ\n\nQ\nF_\nCD_V_0_ 8' )-8$ -)9,_ 5_3 )8,3 !49. __ - 59 098,5 _,\n!!97) -43- - KEEP A SAFE AISTAN_E \n\nH OF ANCHOR (MOANT A) 35-57.____.\n___ +_FGP_F_ZJMZ_MZ_Z_M_VXZFHML_SMPHHIOUP __\nXOYE\nNNNN",
    "clean_text": "ZCSC O_IRISH SEA.\n798__1. TURBINE DBQ TRAPTMYG_\n.\n2. CANCEL WZ\nC TUE\nVGZFFWBW_____09_97__+!6*=_0_+_Z__ZB_DZ\n\nQ\nF_\nCD_V_0_ 8' )-8$ -)9,_ 5_3 )8,3 !49. __ - 59 098,5 _,\n!!97) -43- - KEEP A SAFE AISTAN_E\n\nH OF ANCHOR (MOANT A) 35-57.____.\n___ +_FGP_F_ZJMZ_MZ_Z_M_VXZFHML_SMPHHIOUP __\nXOYE\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: H of anchor (moant a) 35-57. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "H of anchor (moant a) 35-57",
      "!!97) -43- - keep a safe aistan e",
      "798 1. turbine dbq traptmyg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 31,
    "heading": "2026-04-06 05:20:58 AREA: O",
    "published_at": "2026-04-06 05:20:58",
    "area": "O",
    "message_id": "",
    "text": "ZCZC O___9,._ AT 052 _0 UTC\n\n\n A RIDGE OF HIGH PRESSURE OVER THE SOUTHERN N SEA ON TUE EVENING WILL DRIFT E WITH N2 _8__ 3/0 '975_34, _-)58: 1033 BY MIDDAY ON WED BEFORE DRIFTING AWAY__TANWHILE, DE_ELOPING LOW WILL MOV NE, EXP ICELAND 978 BY WED EVENING WITH ASSOCIATED TRO_GHKMB__MP\nZ\nPY_C_MWMJ_SYZCWFMH\nY_ N ON THU WITH DEW _IGH _XP BISCAY 1031 OI THU EVENI3:_4-,:( ___ !48. NE_ DAVELOPANG LOW MOV NE,8EXP SE RCDZZ\nD 968 BY LTR O F I. GAOKA_NM_\n_OQY__MFMS_N ALL_A_UAS E_CEPT LUNDY, FASTNET AND IRISH SQAM_DPQMMJHYINDS ANEUS_V_NNNN",
    "clean_text": "ZCZC O___9,._ AT 052 _0 UTC\n\nA RIDGE OF HIGH PRESSURE OVER THE SOUTHERN N SEA ON TUE EVENING WILL DRIFT E WITH N2 _8__ 3/0 '975_34, _-)58: 1033 BY MIDDAY ON WED BEFORE DRIFTING AWAY__TANWHILE, DE_ELOPING LOW WILL MOV NE, EXP ICELAND 978 BY WED EVENING WITH ASSOCIATED TRO_GHKMB__MP\nZ\nPY_C_MWMJ_SYZCWFMH\nY_ N ON THU WITH DEW _IGH _XP BISCAY 1031 OI THU EVENI3:_4-,:( ___ !48. NE_ DAVELOPANG LOW MOV NE,8EXP SE RCDZZ\nD 968 BY LTR O F I. GAOKA_NM_\n_OQY__MFMS_N ALL_A_UAS E_CEPT LUNDY, FASTNET AND IRISH SQAM_DPQMMJHYINDS ANEUS_V_NNNN",
    "display_region_heading": "Unresolved B1 code O",
    "display_region_label": "B1 code O",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code O. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "A ridge of high pressure over the southern n sea on tue evening will drift e with n2 8 3/0 '975 34, -)58: 1033 by midday on wed before drifting away tanwhile, de eloping low will mov ne, exp iceland 978 by wed evening with associated tro ghkmb mp",
      "Y n on thu with dew igh xp biscay 1031 oi thu eveni3: 4-,:( !48. ne davelopang low mov ne,8exp se rcdzz",
      "D 968 by ltr o f i. gaoka nm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 35,
    "heading": "2026-04-06 05:12:48 AREA: N",
    "published_at": "2026-04-06 05:12:48",
    "area": "N",
    "message_id": "NB82",
    "text": "ZCZC NB82\n052143 UTC APR 26\nNORWEGIA_LE WARNING NO. GX378/2026\nI_D _J LWM_YUP_F_M_PHPZYZSZF_SMFJHFHCHPM\nHB_BUUEMGK_BNKKBHMD___ATAMPEN: NW OCC GALE 8 FM SUN 22UTC TO MON 02_H_ONJHZYP_\nGDSHPML_MH_M_YP_UF__MBPYFWF_W OCC GALE 8 FM MON 14UTC HOM_UTC\n\nNNNN",
    "clean_text": "ZCZC NB82\n052143 UTC APR 26\nNORWEGIA_LE WARNING NO. GX378/2026\nI_D _J LWM_YUP_F_M_PHPZYZSZF_SMFJHFHCHPM\nHB_BUUEMGK_BNKKBHMD___ATAMPEN: NW OCC GALE 8 FM SUN 22UTC TO MON 02_H_ONJHZYP_\nGDSHPML_MH_M_YP_UF__MBPYFWF_W OCC GALE 8 FM MON 14UTC HOM_UTC\n\nNNNN",
    "display_region_heading": "Unresolved B1 code N",
    "display_region_label": "B1 code N",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code N. Readable text says: Hb buuemgk bnkkbhmd atampen: nw occ gale 8 fm sun 22utc to mon 02 h onjhzyp. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Hb buuemgk bnkkbhmd atampen: nw occ gale 8 fm sun 22utc to mon 02 h onjhzyp",
      "Gdshpml mh m yp uf mbpyfwf w occ gale 8 fm mon 14utc hom utc",
      "Norwegia le warning no. gx378/2026"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 36,
    "heading": "2026-04-06 05:10:13 AREA: N",
    "published_at": "2026-04-06 05:10:13",
    "area": "N",
    "message_id": "NE16",
    "text": "ZCZC NE16\n052300 UTC M_V\n_WEATHER BULLETIN ISSUED BY NORWEGIAN METEO_GICAL __F_TE\n  SYNOPTIC SITUATION TODAY AT 18 UTC:\nLOW 983 HPA, 69 N 07 E, MOV S EXP 1006 HPA AT 66 N 08 E MON 18 UTC_M\nW 980 HPA, 61 N 07 E, MOV E EXP 994 HPA AT 59 N 25 E MON 18 UTFW_\nSIGH 1016 HPA, 77 N 22 E, MOV SW EXP  ,7:._$_._._ N 02 W, MOV NE EXP 1028 HPA AT 53 N 06 E _ON 18 U\nC.\n  FORECAST VALID NEXT 24 HOURS:\n  EAST-TAMPEN\nVRB 5, OCNL NW GALE 89._1+:$_._+_'._\n6-\n_, MO_, BECMG DRY_OD.\n  STOREGGA\nDW _D_VJ__YMHZMUM_WXSKKNBNXBEAXEWBRBBNEV_ BECMG DRY, GOOD_\n  FROEYA BANK\nNW 5, INCR TO W NEAR G_NMMZ_\nA\n___HPML_MH_M_YP_UFX_MZPYFWFON_M_AMTZ__MUM_S__ ROC_D_M_Z_SMNPY_MY_I_D_BMGYF_M___W\n__N_EBIRQOHE_M\n  HALTEN BANK\nVRB 5, S_ZMQMYMQM_S_M\nCCMDYBMZ_S_ZPYEMY_CSDYBM_FGYXZ\nG__\nNNNN",
    "clean_text": "ZCZC NE16\n052300 UTC M_V\n_WEATHER BULLETIN ISSUED BY NORWEGIAN METEO_GICAL __F_TE\nSYNOPTIC SITUATION TODAY AT 18 UTC:\nLOW 983 HPA, 69 N 07 E, MOV S EXP 1006 HPA AT 66 N 08 E MON 18 UTC_M\nW 980 HPA, 61 N 07 E, MOV E EXP 994 HPA AT 59 N 25 E MON 18 UTFW_\nSIGH 1016 HPA, 77 N 22 E, MOV SW EXP ,7:._$_._._ N 02 W, MOV NE EXP 1028 HPA AT 53 N 06 E _ON 18 U\nC.\nFORECAST VALID NEXT 24 HOURS:\nEAST-TAMPEN\nVRB 5, OCNL NW GALE 89._1+:$_._+_'._\n6-\n_, MO_, BECMG DRY_OD.\nSTOREGGA\nDW _D_VJ__YMHZMUM_WXSKKNBNXBEAXEWBRBBNEV_ BECMG DRY, GOOD_\nFROEYA BANK\nNW 5, INCR TO W NEAR G_NMMZ_\nA\n___HPML_MH_M_YP_UFX_MZPYFWFON_M_AMTZ__MUM_S__ ROC_D_M_Z_SMNPY_MY_I_D_BMGYF_M___W\n__N_EBIRQOHE_M\nHALTEN BANK\nVRB 5, S_ZMQMYMQM_S_M\nCCMDYBMZ_S_ZPYEMY_CSDYBM_FGYXZ\nG__\nNNNN",
    "resolved_station_name": "Orlandet",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Norwegian Sea and central Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "STOREGGA",
      "HALTEN BANK",
      "FROEYA"
    ],
    "display_region_heading": "Norway - Norwegian Sea and central Norwegian coast",
    "display_region_label": "Orlandet, Norway",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Norway - Norwegian Sea and central Norwegian coast. Readable text says: Vrb 5, ocnl nw gale 89. 1 :$ . '. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Vrb 5, ocnl nw gale 89. 1 :$ . '",
      "Weather bulletin issued by norwegian meteo gical f te",
      "Low 983 hpa, 69 n 07 e, mov s exp 1006 hpa at 66 n 08 e mon 18 utc m"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 39,
    "heading": "2026-04-06 05:00:39 AREA: T",
    "published_at": "2026-04-06 05:00:39",
    "area": "T",
    "message_id": "",
    "text": "ZCZCCME16\n_052300 UTC APR 26\nWEATHER _ULLETIN ISSUED BY NTRWEGIAM V_TB\nOB_GICAL INST_TUTE\nE SYNOPTIC SITUATION TODAY AT 18 UTC:\nLOW 983 HPA, 69 N 07 E, MOV S EXP =!6_\n+8._.__-\n_9_/_\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994._$_5 59 N 25 E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025./$_MYZMGM\n___GI_G_ZOMPMP_M\n _UFM_D_MHM_HPMG_N1_\n,_-)9_._\n___WMP_HM\n_YMGD_XRQ__!06.*=_06__9,7._*,_9__*_0OBEC_NB_O_N_R_NQOOEPBEI_EWB_AB_JBGI_D_ HIGH. DRY, GOOD.\n  OUTER SKAGERRAK\nW NEAR LAS\nM_CO___J_EKKNB9__ 6. VERY ROUGH TO_OD\n DRY, GOOD.\n  FISHER\nW NEAR GALE 7, DECR TO 5. VERY ROUGH TO MOD. RAIN, MOD, BECMG DRY, GOBD_ONONGONNIII_V__KAXAUPB_HP NQ_GCHHMHM\n__ORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORW G_AN METEOROLOGNCALIINSTITUTE =.4_20_6(Y_\n_WW+:+: .-25\n05_2_2_)__7_*+__6\nN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN PO__O_H_X\n_\n_TMTE\nCLOSED FOR PASSAGE.\nNNNN",
    "clean_text": "ZCZCCME16\n_052300 UTC APR 26\nWEATHER _ULLETIN ISSUED BY NTRWEGIAM V_TB\nOB_GICAL INST_TUTE\nE SYNOPTIC SITUATION TODAY AT 18 UTC:\nLOW 983 HPA, 69 N 07 E, MOV S EXP =!6_\n+8._.__-\n_9_/_\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994._$_5 59 N 25 E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025./$_MYZMGM\n___GI_G_ZOMPMP_M\n_UFM_D_MHM_HPMG_N1_\n,_-)9_._\n___WMP_HM\n_YMGD_XRQ__!06.*=_06__9,7._*,_9__*_0OBEC_NB_O_N_R_NQOOEPBEI_EWB_AB_JBGI_D_ HIGH. DRY, GOOD.\nOUTER SKAGERRAK\nW NEAR LAS\nM_CO___J_EKKNB9__ 6. VERY ROUGH TO_OD\nDRY, GOOD.\nFISHER\nW NEAR GALE 7, DECR TO 5. VERY ROUGH TO MOD. RAIN, MOD, BECMG DRY, GOBD_ONONGONNIII_V__KAXAUPB_HP NQ_GCHHMHM\n__ORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORW G_AN METEOROLOGNCALIINSTITUTE =.4_20_6(Y_\n_WW+:+: .-25\n05_2_2_)__7_*+__6\nN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN PO__O_H_X\n_\n_TMTE\nCLOSED FOR PASSAGE.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: W near gale 7, decr to 5. very rough to mod. rain, mod, becmg dry, gobd onongonniii v kaxaupb hp nq gchhmhm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "W near gale 7, decr to 5. very rough to mod. rain, mod, becmg dry, gobd onongonniii v kaxaupb hp nq gchhmhm",
      "Orwegian gale warning no. gx378/2026",
      "Weather ulletin issued by ntrwegiam v tb"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 42,
    "heading": "2026-04-06 04:55:34 AREA: L",
    "published_at": "2026-04-06 04:55:34",
    "area": "L",
    "message_id": "LA14",
    "text": "ZCZC LA14\n051128 UTC APR 26\nNORWEGIAN NAV. WARNING 138/2026\n  CHART 24\n  AREA SOGNESJOEN\nWYF_HF_MJ_PPSM_ZJHYC_HFZMYP_ZYHPWON_(_,$93:4_-_O__./(___0\n__6\nNONNIII_ZCZC",
    "clean_text": "ZCZC LA14\n051128 UTC APR 26\nNORWEGIAN NAV. WARNING 138/2026\nCHART 24\nAREA SOGNESJOEN\nWYF_HF_MJ_PPSM_ZJHYC_HFZMYP_ZYHPWON_(_,$93:4_-_O__./(___0\n__6\nNONNIII_ZCZC",
    "resolved_station_name": "Rogaland Radio",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "South-west Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "NORWEGIAN NAV WARNING"
    ],
    "display_region_heading": "Norway - South-west Norwegian coast",
    "display_region_label": "Rogaland Radio, Norway",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Norway - South-west Norwegian coast. Readable text says: Norwegian nav. warning 138/2026. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Norwegian nav. warning 138/2026",
      "Area sognesjoen",
      "Nonniii zczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 43,
    "heading": "2026-04-06 04:55:03 AREA: L",
    "published_at": "2026-04-06 04:55:03",
    "area": "L",
    "message_id": "LA17",
    "text": "ZCZC LA17\n051236 UTC APR 26\nDANISH NAV WARN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN POS. 57-43.1N 010-35.5E\nCLOSED FOR PASSAGE.\nNNNN",
    "clean_text": "ZCZC LA17\n051236 UTC APR 26\nDANISH NAV WARN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN POS. 57-43.1N 010-35.5E\nCLOSED FOR PASSAGE.\nNNNN",
    "display_region_heading": "Unresolved B1 code L",
    "display_region_label": "B1 code L",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code L. Readable text says: Entrance in pos. 57-43.1n 010-35.5e.",
    "decoded_highlights": [
      "Entrance in pos. 57-43.1n 010-35.5e",
      "Closed for passage",
      "Danish nav warn 189/26"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 44,
    "heading": "2026-04-06 04:53:53 AREA: L",
    "published_at": "2026-04-06 04:53:53",
    "area": "L",
    "message_id": "LB18",
    "text": "ZCZC LB18\n052143 UTC APR _NORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORWEGIAN METEOROLOGICAL INSTITUTE 5.4.2026 AT 22 UTC\nINNER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 09UTC\nOUTER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 12UTC\nNORTH UTSIRE: W OCC GALE 8 FM MON 01UTC TO 04UTC\nVIKING: W OCC GALE 8 FM SUN 22UTC TO MON 03UTC\nEAST-TAMPEN: NW OCC GALE 8 FM SUN 22UTC TO MON 02UTC\n\nNNNN",
    "clean_text": "ZCZC LB18\n052143 UTC APR _NORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORWEGIAN METEOROLOGICAL INSTITUTE 5.4.2026 AT 22 UTC\nINNER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 09UTC\nOUTER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 12UTC\nNORTH UTSIRE: W OCC GALE 8 FM MON 01UTC TO 04UTC\nVIKING: W OCC GALE 8 FM SUN 22UTC TO MON 03UTC\nEAST-TAMPEN: NW OCC GALE 8 FM SUN 22UTC TO MON 02UTC\n\nNNNN",
    "resolved_station_name": "Rogaland Radio",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "South-west Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "SKAGERRAK"
    ],
    "display_region_heading": "Norway - South-west Norwegian coast",
    "display_region_label": "Rogaland Radio, Norway",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Norway - South-west Norwegian coast. Readable text says: Inner skagerrak: w occ gale 8 fm sun 22utc to mon 09utc.",
    "decoded_highlights": [
      "Inner skagerrak: w occ gale 8 fm sun 22utc to mon 09utc",
      "Outer skagerrak: w occ gale 8 fm sun 22utc to mon 12utc",
      "North utsire: w occ gale 8 fm mon 01utc to 04utc"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 45,
    "heading": "2026-04-06 04:50:39 AREA: L",
    "published_at": "2026-04-06 04:50:39",
    "area": "L",
    "message_id": "LE18",
    "text": "ZCZC LE18\n052300 UTC APR 26\nWEATHER BUZ__HFMFJJCPWML_M_YUP_F_M_PHPZYZSZF_S_FJHFHCHPONMMJJZHFXMJFHCHFZMDZW_MHM__OVCOT_ N 07 E, M__ S EXP 1006 HPAM\nM\n_J_G_M_E MON 18 UTC.\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994 HPA AT 59 F_QWT E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025 HPA, 49 N 62_=-_.= ,3 3/0 1028 HPA AT 53 N 06 E MON 18 UTC.\n  FORECAST VALID NEXT 24 HOURS:\n  INNER SKAGERRAK\nW GALE 8, OCNL SEV GALE 99 BECMG 6. VERY R_UGH TO SLT, OCNL HIGHT_MG_Y_GOOD.\n  OUTER\nJV_PY__ONUMP__XSS_M_CMGZ_B_MS_MIFMGL_X__\nEZMBNEQBE_XEWBDABAUBHIRQOHE_M\n  FISHER\nW FEYM_S_MHCZOZUBEB_VERY ROUGS__ZM_ZW\n_ECMG DRY, __99$.\n  FORTIES\nW NEAR GALE 7, DECR TO SE 5. VERY ROUGH TO MOD. DRY, GOOD.\n  SOUTH UTSIRE\nW NEAR GALE 7, DECR TO VRB 4. VERY ROUGH TO MOD. RAIN, MOD, BECMG D__T_G_ZZ__  NORTH UTSIREOIUM_YMGZ_SMUM_S\nM_F_MGYZC_DMZ_M_PYEMY_CD_BMGYF_MG_ZBECMG DRY, GOOD.\n  VIKING\nW GALE 8, DECR TO VRB 4. ROUGH OR VERY ROUGH. RAIN, MOD, BECMG DRY, GOOD.\n  EAST-TAMPG\nN_YLM_HMGZ_S_UM_S_M\nF_MGYZCD_M_Z_SM_PYEMY_CD_BMGYF_MG_ZW\nMGLPBZ__IRQOHE_M\n\nNNNN",
    "clean_text": "ZCZC LE18\n052300 UTC APR 26\nWEATHER BUZ__HFMFJJCPWML_M_YUP_F_M_PHPZYZSZF_S_FJHFHCHPONMMJJZHFXMJFHCHFZMDZW_MHM__OVCOT_ N 07 E, M__ S EXP 1006 HPAM\nM\n_J_G_M_E MON 18 UTC.\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994 HPA AT 59 F_QWT E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025 HPA, 49 N 62_=-_.= ,3 3/0 1028 HPA AT 53 N 06 E MON 18 UTC.\nFORECAST VALID NEXT 24 HOURS:\nINNER SKAGERRAK\nW GALE 8, OCNL SEV GALE 99 BECMG 6. VERY R_UGH TO SLT, OCNL HIGHT_MG_Y_GOOD.\nOUTER\nJV_PY__ONUMP__XSS_M_CMGZ_B_MS_MIFMGL_X__\nEZMBNEQBE_XEWBDABAUBHIRQOHE_M\nFISHER\nW FEYM_S_MHCZOZUBEB_VERY ROUGS__ZM_ZW\n_ECMG DRY, __99$.\nFORTIES\nW NEAR GALE 7, DECR TO SE 5. VERY ROUGH TO MOD. DRY, GOOD.\nSOUTH UTSIRE\nW NEAR GALE 7, DECR TO VRB 4. VERY ROUGH TO MOD. RAIN, MOD, BECMG D__T_G_ZZ__ NORTH UTSIREOIUM_YMGZ_SMUM_S\nM_F_MGYZC_DMZ_M_PYEMY_CD_BMGYF_MG_ZBECMG DRY, GOOD.\nVIKING\nW GALE 8, DECR TO VRB 4. ROUGH OR VERY ROUGH. RAIN, MOD, BECMG DRY, GOOD.\nEAST-TAMPG\nN_YLM_HMGZ_S_UM_S_M\nF_MGYZCD_M_Z_SM_PYEMY_CD_BMGYF_MG_ZW\nMGLPBZ__IRQOHE_M\n\nNNNN",
    "resolved_station_name": "Rogaland Radio",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "South-west Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "SKAGERRAK"
    ],
    "display_region_heading": "Norway - South-west Norwegian coast",
    "display_region_label": "Rogaland Radio, Norway",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Norway - South-west Norwegian coast. Readable text says: W gale 8, ocnl sev gale 99 becmg 6. very r ugh to slt, ocnl hight mg y good. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "W gale 8, ocnl sev gale 99 becmg 6. very r ugh to slt, ocnl hight mg y good",
      "W near gale 7, decr to se 5. very rough to mod. dry, good",
      "W near gale 7, decr to vrb 4. very rough to mod. rain, mod, becmg d t g zz north utsireoium ymgz smum s"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 46,
    "heading": "2026-04-06 04:41:14 AREA: K",
    "published_at": "2026-04-06 04:41:14",
    "area": "K",
    "message_id": "",
    "text": "ZCZC KA2+9,__:6_(___)+:6.\nU_TU__V_AZGLLDVGS_MANCHE HOJHONG71__-=8_-589, _$_0**__*_5 _796 - LIGHT UNLIT\nLEZEM_FY_MJ_U_D_CCMC_:(./,__)4'=+\n1__5_ ::_!+9,+_!! __AXA_GM\n_X_WIGHT - LARGE CAYEUX-SUR-MER\nWZYVJO_G_L__ING ZPYHFZONG_YZLO_G_GG__.$__!=5_8=6+_06.+_!_09,_+._!*__)3OH_EKK_)3OUEUEHFE__FF_YDCK__EF__4_(__609,_3KB_AQPMIYGMNG.::_800$___UL_YYUGG_!33_+_\n *606=!/0-13.61N P _AWQMNB($_:,__$_9.:._0_$_)_2_01N 001-17_U_TPAQOMURN 001-04.::_09,$_::_.._)9_9.36N \n_ _ KLEQH_ND_CJUN 00 _7__.::/$__)4_788488_7_AXAXMV_\nU__VURNAV CHERBOURG 26/22+9,__+(__(__71,:_3 3'5\nFWJMHZBLKO3=2__=_,_3'\n,_!*8_54-,'.85534 975 9! '34=!__.\n._'!_$__:+*'-__.)**:68_*ZD_X_X__YKATE WITH CAUHFZONZZ_\nOOOOOOOOZ___M____ZCZC",
    "clean_text": "ZCZC KA2+9,__:6_(___)+:6.\nU_TU__V_AZGLLDVGS_MANCHE HOJHONG71__-=8_-589, _$_0**__*_5 _796 - LIGHT UNLIT\nLEZEM_FY_MJ_U_D_CCMC_:(./,__)4'=+\n1__5_ ::_!+9,+_!! __AXA_GM\n_X_WIGHT - LARGE CAYEUX-SUR-MER\nWZYVJO_G_L__ING ZPYHFZONG_YZLO_G_GG__.$__!=5_8=6+_06.+_!_09,_+._!*__)3OH_EKK_)3OUEUEHFE__FF_YDCK__EF__4_(__609,_3KB_AQPMIYGMNG.::_800$___UL_YYUGG_!33_+_\n*606=!/0-13.61N P _AWQMNB($_:,__$_9.:._0_$_)_2_01N 001-17_U_TPAQOMURN 001-04.::_09,$_::_.._)9_9.36N\n_ _ KLEQH_ND_CJUN 00 _7__.::/$__)4_788488_7_AXAXMV_\nU__VURNAV CHERBOURG 26/22+9,__+(__(__71,:_3 3'5\nFWJMHZBLKO3=2__=_,_3'\n,_!*8_54-,'.85534 975 9! '34=!__.\n._'!_$__:+*'-__.)**:68_*ZD_X_X__YKATE WITH CAUHFZONZZ_\nOOOOOOOOZ___M____ZCZC",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "U tu v azglldvgs manche hojhong71 - 8 -589, $ 0 5 796 - light unlit",
      "X wight - large cayeux-sur-mer"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 47,
    "heading": "2026-04-06 04:35:40 AREA: J",
    "published_at": "2026-04-06 04:35:40",
    "area": "J",
    "message_id": "JA85",
    "text": "ZCZC JA85\n040930 KOCMM_R\nGERMAN NAV WARN 125/26\nSOUTHERN BALTIC. ODERBANK.\nYELLOW LIGHTVJ_YMLCZEM_MFJ_YFHFWBQ_UKQQB_EKK_GO/4(.___DN_3(___1_4,)__,8,_9,,8((((((((((((((((= __\n_ZCZ_ FA71\nTEST\nNNNN",
    "clean_text": "ZCZC JA85\n040930 KOCMM_R\nGERMAN NAV WARN 125/26\nSOUTHERN BALTIC. ODERBANK.\nYELLOW LIGHTVJ_YMLCZEM_MFJ_YFHFWBQ_UKQQB_EKK_GO/4(.___DN_3(___1_4,)__,8,_9,,8((((((((((((((((= __\n_ZCZ_ FA71\nTEST\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Yellow lightvj ymlczem mfj yfhfwbq ukqqb ekk go/4(. dn 3( 1 4,) ,8, 9,,8((((((((((((((((. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Yellow lightvj ymlczem mfj yfhfwbq ukqqb ekk go/4(. dn 3( 1 4,) ,8, 9,,8((((((((((((((((",
      "German nav warn 125/26",
      "Southern baltic. oderbank"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 49,
    "heading": "2026-04-06 04:33:01 AREA: J",
    "published_at": "2026-04-06 04:33:01",
    "area": "J",
    "message_id": "JA16",
    "text": "ZCZC JA16\n191020 UTCMMYMONG_PYBM\nM_Y.\n 375739___0*_06.)'_!_BHAE_WRJQBUKEQQEBARD_F_\nGEOPHYSICAL SURVEYS CONDUCTED \nBY MV MIRANDA/T7AD2\nAROUND OF PSN: 54-33.4N 012-32.0E.\nA SAFETY DISTANCE OF 0.5 NM IS REQUIRED\nNNNN",
    "clean_text": "ZCZC JA16\n191020 UTCMMYMONG_PYBM\nM_Y.\n375739___0*_06.)'_!_BHAE_WRJQBUKEQQEBARD_F_\nGEOPHYSICAL SURVEYS CONDUCTED\nBY MV MIRANDA/T7AD2\nAROUND OF PSN: 54-33.4N 012-32.0E.\nA SAFETY DISTANCE OF 0.5 NM IS REQUIRED\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Around of psn: 54-33.4n 012-32.0e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Around of psn: 54-33.4n 012-32.0e",
      "Geophysical surveys conducted",
      "A safety distance of 0.5 nm is required"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 52,
    "heading": "2026-04-06 04:29:01 AREA: J",
    "published_at": "2026-04-06 04:29:01",
    "area": "J",
    "message_id": "JA29",
    "text": "ZCZC JA29\n25,9,__'__62.\n._6_.___\n5__\n,9,_*+:_$0*_06.)''!_9,_*$!_*.0_06/!*_88 _312100 UTC MAR THRU 302100 UTC APR\nIN AREA TEMPORARILY DANGEROUS TO SHIPPING BR-161\n55-09.50N 019-45.30E 55-09.50N 020-00.00E\n55-02.00N 020-00.00E 55-02.00N 019-39.60E\nCANCEL TSNFM_PJ__PM\nPUUMG_H__YONGONNIIIUZXAX_QU_UF___ UTC MAR\n\nKALINGRAD X\nM_Y_M_HUT_EONONGJZCHDPJHPYMLSHF_ONGJDF_JMP_PYXFJCII_312100 UTC MAR THRU 3021_=!/+_3_330\n1_3*\n+$_ *3__=_5_8' .3''-_3 302_77(_5: -04\nNNNN",
    "clean_text": "ZCZC JA29\n25,9,__'__62.\n._6_.___\n5__\n,9,_*+:_$0*_06.)''!_9,_*$!_*.0_06/!*_88 _312100 UTC MAR THRU 302100 UTC APR\nIN AREA TEMPORARILY DANGEROUS TO SHIPPING BR-161\n55-09.50N 019-45.30E 55-09.50N 020-00.00E\n55-02.00N 020-00.00E 55-02.00N 019-39.60E\nCANCEL TSNFM_PJ__PM\nPUUMG_H__YONGONNIIIUZXAX_QU_UF___ UTC MAR\n\nKALINGRAD X\nM_Y_M_HUT_EONONGJZCHDPJHPYMLSHF_ONGJDF_JMP_PYXFJCII_312100 UTC MAR THRU 3021_=!/+_3_330\n1_3*\n+$_ *3__=_5_8' .3''-_3 302_77(_5: -04\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: In area temporarily dangerous to shipping br-161. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "In area temporarily dangerous to shipping br-161",
      "Kalingrad x"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 57,
    "heading": "2026-04-06 04:24:10 AREA: J",
    "published_at": "2026-04-06 04:24:10",
    "area": "J",
    "message_id": "JA42",
    "text": "ZCZC JA42\n070600 UTC APR\nBPOL_SH NAV WARN 070/2026\nSOUTHERN BALTIC. POLISS CZJHONGWCPMHZC_1_53__ 06:00__\n_\n_ 6/F_N\nFM__YF_M__ZBM\nEXMGHZM\nU_XHZONGAZIIUIS CLOSED\nCANCEL THIS MSG 111400 UTC APR\nNNNN",
    "clean_text": "ZCZC JA42\n070600 UTC APR\nBPOL_SH NAV WARN 070/2026\nSOUTHERN BALTIC. POLISS CZJHONGWCPMHZC_1_53__ 06:00__\n_\n_ 6/F_N\nFM__YF_M__ZBM\nEXMGHZM\nU_XHZONGAZIIUIS CLOSED\nCANCEL THIS MSG 111400 UTC APR\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: U xhzongaziiuis closed. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "U xhzongaziiuis closed",
      "Bpol sh nav warn 070/2026"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 59,
    "heading": "2026-04-06 04:20:45 AREA: Q",
    "published_at": "2026-04-06 04:20:45",
    "area": "Q",
    "message_id": "",
    "text": "ZCZC Q_YZ_NGRMMKXXKXB_HP\n_R_QF_FNNAV WOXOXGNHKQ_LDFPFX__\nAMC_DTD_KFVN _U_EE.\nOBSTRUCTION VISFLSPML_B_L G__XZNM_\nAND IS A RED LCZE_MARINERS ARPMW_FJ_R.\nNNNN",
    "clean_text": "ZCZC Q_YZ_NGRMMKXXKXB_HP\n_R_QF_FNNAV WOXOXGNHKQ_LDFPFX__\nAMC_DTD_KFVN _U_EE.\nOBSTRUCTION VISFLSPML_B_L G__XZNM_\nAND IS A RED LCZE_MARINERS ARPMW_FJ_R.\nNNNN",
    "display_region_heading": "Unresolved B1 code Q",
    "display_region_label": "B1 code Q",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code Q. Readable text says: And is a red lcze mariners arpmw fj r. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "And is a red lcze mariners arpmw fj r"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 60,
    "heading": "2026-04-06 04:20:09 AREA: J",
    "published_at": "2026-04-06 04:20:09",
    "area": "J",
    "message_id": "JA51",
    "text": "ZCZC JA51\n041.=:_!._=3_9(_!*$.\n._3)9X__(____3-..9.602.'!_$_.):+88(_3.*_+_!\n.HRB_KQB_U__RGX___XA_S_N 01_.2E\nMARINEYJMYPMWB1,7__30 23)) :)3-48((\n_.9,__+!!!___7_ZCZC",
    "clean_text": "ZCZC JA51\n041.=:_!._=3_9(_!*$.\n._3)9X__(____3-..9.602.'!_$_.):+88(_3.*_+_!\n.HRB_KQB_U__RGX___XA_S_N 01_.2E\nMARINEYJMYPMWB1,7__30 23)) :)3-48((\n_.9,__+!!!___7_ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Marineyjmypmwb1,7 30 23)) :)3-48((. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Marineyjmypmwb1,7 30 23)) :)3-48(("
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 61,
    "heading": "2026-04-06 04:18:11 AREA: Q",
    "published_at": "2026-04-06 04:18:11",
    "area": "Q",
    "message_id": "",
    "text": "ZCZC QB_UF_TQOPW UTC _YONGLSHF_MJPMSKMLBKEEZ__P_Q_E1_)$ _)*_06___(\n_\n_\n_$_W _6 :._)_HPGID_LGSI_FA_CKM_HPBHL_I__LGZHFTFTS_XBHEH__HPMZ_PY_F_II_ TUESDAY DECR.\nCENTRAL LSHFX_SW __HPNBHJK__BABEL38__78!_ZVGV__VL_BR_LUPYM_K_NBKKEL1_)$=_/__,(_17 M/=*\n_.__+_(1_L_I_IPLCEFC: W 14-17 M/S. LATE MOND_MP\nP__MWPXY_BO____UH___CZC JA52\n\nH _HMG_H_M_OW SEA_EL\nTHE SO \n__._06'3._+1_8_ _\n_3)_3__4_82, 59 ______-('_-)58:.*0._$6_.2_:_\nWESTERN BAS_FX_FROM WJCOKQ__NING -50 __+.\n_\nH_BTLL_PH_V_NCA___O_U_Z_Q_Z__V____+__534,99, 48'8,___9,,888____ZCZC",
    "clean_text": "ZCZC QB_UF_TQOPW UTC _YONGLSHF_MJPMSKMLBKEEZ__P_Q_E1_)$ _)*_06___(\n_\n_\n_$_W _6 :._)_HPGID_LGSI_FA_CKM_HPBHL_I__LGZHFTFTS_XBHEH__HPMZ_PY_F_II_ TUESDAY DECR.\nCENTRAL LSHFX_SW __HPNBHJK__BABEL38__78!_ZVGV__VL_BR_LUPYM_K_NBKKEL1_)$=_/__,(_17 M/=*\n_.__+_(1_L_I_IPLCEFC: W 14-17 M/S. LATE MOND_MP\nP__MWPXY_BO____UH___CZC JA52\n\nH _HMG_H_M_OW SEA_EL\nTHE SO\n__._06'3._+1_8_ _\n_3)_3__4_82, 59 ______-('_-)58:.*0._$6_.2_:_\nWESTERN BAS_FX_FROM WJCOKQ__NING -50 __+.\n_\nH_BTLL_PH_V_NCA___O_U_Z_Q_Z__V____+__534,99, 48'8,___9,,888____ZCZC",
    "display_region_heading": "Unresolved B1 code Q",
    "display_region_label": "B1 code Q",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code Q. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 62,
    "heading": "2026-04-06 04:15:17 AREA: I",
    "published_at": "2026-04-06 04:15:17",
    "area": "I",
    "message_id": "IA54",
    "text": "ZCZC IA54\n0510_$8'_ ,\n._(6_.8/NMK___HJUMEA CHART DAO_ZMYFU___U_F___U\n\n_+/-__!\n_'_,\n0_9,_2!__2\n_.0__2\n__1$3_(N _ :_-_'__M__A_OW__9_7738__/-_.!\n6_ _\nDUP_HD_BNS_R_A_MX_IXW\nYXDYY_V_FX_Z_UMUK___IIZU __FGPON\nHJHCZLO_7\n!\n::_5__:\n_____ZCZC",
    "clean_text": "ZCZC IA54\n0510_$8'_ ,\n._(6_.8/NMK___HJUMEA CHART DAO_ZMYFU___U_F___U\n\n_+/-__!\n_'_,\n0_9,_2!__2\n_.0__2\n__1$3_(N _ :_-_'__M__A_OW__9_7738__/-_.!\n6_ _\nDUP_HD_BNS_R_A_MX_IXW\nYXDYY_V_FX_Z_UMUK___IIZU __FGPON\nHJHCZLO_7\n!\n::_5__:\n_____ZCZC",
    "display_region_heading": "Unresolved B1 code I",
    "display_region_label": "B1 code I",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code I. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 63,
    "heading": "2026-04-06 04:10:41 AREA: G",
    "published_at": "2026-04-06 04:10:41",
    "area": "G",
    "message_id": "GA89",
    "text": "ZCZC GA89\nWZ 13 573_49.-456.9,_$_ !)9-58,_ 28+._6__1. __:6'_1__90K_BM_CLG_GSB_1-21.1W_\nG SIGNAL INY_ZFPYBF\nI_OH_KTPC_KL__FL_B_GA12).9,_9,,=======\n='___\n_9$/:!98_____U_IKUICFUAIZKA_MFIKBGLZ_S. LATE S___AP_YKY\nW\nXUD_AD_V_\nH_UZ_AQU M/S_9_____'\n_BNPKSC_H* _VE__QSVFKWS_.=,(_.$__8__+:_1\n8_$_:4)99,7_-_-,_,_\n051230.____.YONGWFJDM_I_GATDYGINDV__ZHVV_OQAB_TE\n_AGE.\nNDNN\n_EUU_A_KZCZC",
    "clean_text": "ZCZC GA89\nWZ 13 573_49.-456.9,_$_ !)9-58,_ 28+._6__1. __:6'_1__90K_BM_CLG_GSB_1-21.1W_\nG SIGNAL INY_ZFPYBF\nI_OH_KTPC_KL__FL_B_GA12).9,_9,,=======\n='___\n_9$/:!98_____U_IKUICFUAIZKA_MFIKBGLZ_S. LATE S___AP_YKY\nW\nXUD_AD_V_\nH_UZ_AQU M/S_9_____'\n_BNPKSC_H* _VE__QSVFKWS_.=,(_.$__8__+:_1\n8_$_:4)99,7_-_-,_,_\n051230.____.YONGWFJDM_I_GATDYGINDV__ZHVV_OQAB_TE\n_AGE.\nNDNN\n_EUU_A_KZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says: G signal iny zfpybf. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "G signal iny zfpybf"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 64,
    "heading": "2026-04-06 04:09:41 AREA: G",
    "published_at": "2026-04-06 04:09:41",
    "area": "G",
    "message_id": "GA",
    "text": "ZCZC GA\nE__Z 180/26 \nHUMBER_4-:3 _-=._!_._6__\n1. __:6)!0.+_.*!_'*.!+_06_!9:\n___8BHC_LO_:_28*_\n2. CANCEL WZ 58/26 (GA29)9.9,_9,,888___(+: _-96\n__-.\n..._(04_\n!-_*__ 812_!1_2__39, -!1.2_6_ +.9_:05:$:(:__(.(,!= 53-12.5N 001-25((_3BX_ \nNNNN",
    "clean_text": "ZCZC GA\nE__Z 180/26\nHUMBER_4-:3 _-=._!_._6__\n1. __:6)!0.+_.*!_'*.!+_06_!9:\n___8BHC_LO_:_28*_\n2. CANCEL WZ 58/26 (GA29)9.9,_9,,888___(+: _-96\n__-.\n..._(04_\n!-_*__ 812_!1_2__39, -!1.2_6_ +.9_:05:$:(:__(.(,!= 53-12.5N 001-25((_3BX_\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 65,
    "heading": "2026-04-06 04:09:09 AREA: G",
    "published_at": "2026-04-06 04:09:09",
    "area": "G",
    "message_id": "GA71",
    "text": "ZCZC GA71\nWZA_XWY\nHC L BZIDOYALL GASM_FP_UBAQ_I_AQPMUN 002-59.1PMCJ__(7_(7_00_'_)NFMSV_GG_XKYF_V_FWM CANCEL WZM\nF_O_HKMGE\nE__ W_CFFYFF_CFUUZZCZC",
    "clean_text": "ZCZC GA71\nWZA_XWY\nHC L BZIDOYALL GASM_FP_UBAQ_I_AQPMUN 002-59.1PMCJ__(7_(7_00_'_)NFMSV_GG_XKYF_V_FWM CANCEL WZM\nF_O_HKMGE\nE__ W_CFFYFF_CFUUZZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 66,
    "heading": "2026-04-06 04:07:23 AREA: G",
    "published_at": "2026-04-06 04:07:23",
    "area": "G",
    "message_id": "GA94",
    "text": "ZCZC GA94\nWZ 220/26\nTYNE614,613,)/_,)17__$*1_1_3($_:6)___ 55-06.!_888(_\n_ KCNPKOXLJWM+3_0_3(_)\n7(-58=09,_9,!!!___AXAXM_FPONG_AM\n_ _TU_\n_MDSS. \n/.4_/._+_06\n_.9_\n144++__4__NFZ_ Q_\nZ_HL_RQL_TE 51___ 00__ ,-7_._0 \n)_+__:!'6!!_::__7ZXAXMKN_X_Z 214/26 \nL___W_W__C HUMLP__JMJFHNM__RMRN 001-27___7.+_._6_\nNNNN",
    "clean_text": "ZCZC GA94\nWZ 220/26\nTYNE614,613,)/_,)17__$*1_1_3($_:6)___ 55-06.!_888(_\n_ KCNPKOXLJWM+3_0_3(_)\n7(-58=09,_9,!!!___AXAXM_FPONG_AM\n_ _TU_\n_MDSS.\n/.4_/._+_06\n_.9_\n144++__4__NFZ_ Q_\nZ_HL_RQL_TE 51___ 00__ ,-7_._0\n)_+__:!'6!!_::__7ZXAXMKN_X_Z 214/26\nL___W_W__C HUMLP__JMJFHNM__RMRN 001-27___7.+_._6_\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 67,
    "heading": "2026-04-06 04:06:50 AREA: G",
    "published_at": "2026-04-06 04:06:50",
    "area": "G",
    "message_id": "GA02",
    "text": "ZCZC GA02\nWZ 223/26\nHUMBER. \nLEMAN GAS FIELD. \n1. PLATFORM 49/27-ED \n_EP_EG_ UBE_P\nMGCSFHMWMSSM_FWJMFZ_PYHF\nP_BM_N\n___GXXPSM_AM\n TUEMVG\nHUS_ONGONNIIIIZCZC",
    "clean_text": "ZCZC GA02\nWZ 223/26\nHUMBER.\nLEMAN GAS FIELD.\n1. PLATFORM 49/27-ED\n_EP_EG_ UBE_P\nMGCSFHMWMSSM_FWJMFZ_PYHF\nP_BM_N\n___GXXPSM_AM\nTUEMVG\nHUS_ONGONNIIIIZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Leman gas field. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Leman gas field",
      "1. platform 49/27-ed",
      "Mgcsfhmwmssm fwjmfz pyhf"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 68,
    "heading": "2026-04-06 04:06:20 AREA: G",
    "published_at": "2026-04-06 04:06:20",
    "area": "G",
    "message_id": "GA04",
    "text": "ZCZC GA04\nWZ T_U_TU_O_DSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W Z_._6_2. CANCEL WZ 213/26 (GA80).\n_ONNIII_ZCZC",
    "clean_text": "ZCZC GA04\nWZ T_U_TU_O_DSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W Z_._6_2. CANCEL WZ 213/26 (GA80).\n_ONNIII_ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. mf r/t and dsc services from gregness site 57-07.7n 002-03.2w z . 6 2. cancel wz 213/26 (ga80)",
      "Mrcc shetland"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 69,
    "heading": "2026-04-06 04:05:49 AREA: G",
    "published_at": "2026-04-06 04:05:49",
    "area": "G",
    "message_id": "GA07",
    "text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLATFORM 49/23E, 53-11.9N 002-29.1E, FOG SIGNAL INOPERATIVE.\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "clean_text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLATFORM 49/23E, 53-11.9N 002-29.1E, FOG SIGNAL INOPERATIVE.\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "BESSEMER GAS FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage near 53-11.9N 002-29.1E.",
    "decoded_highlights": [
      "1. platform 49/23e, 53-11.9n 002-29.1e, fog signal inoperative",
      "Bessemer gas field",
      "2. cancel wz 104/26 (ga54)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 70,
    "heading": "2026-04-06 04:05:24 AREA: G",
    "published_at": "2026-04-06 04:05:24",
    "area": "G",
    "message_id": "GA12",
    "text": "ZCZC GA12\nWZ 232/26 \nHUMBER. \nINNER BANK. \nPLATFORM SOUTHWARK 53-11.0N 002-05.!_0.:888(.2.'__)(_(71___C_L9,_9,,8887ZCZC",
    "clean_text": "ZCZC GA12\nWZ 232/26\nHUMBER.\nINNER BANK.\nPLATFORM SOUTHWARK 53-11.0N 002-05.!_0.:888(.2.'__)(_(71___C_L9,_9,,8887ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "INNER BANK"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Inner bank. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Inner bank"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 71,
    "heading": "2026-04-06 04:04:49 AREA: G",
    "published_at": "2026-04-06 04:04:49",
    "area": "G",
    "message_id": "GA15",
    "text": "ZCZC GA15\nWZ 221/26 \nDOGGER. \nSZFF_Z_\n1. BUOYS UNLIT: \nA. N1 55-08.1N 002-09.5E. \nB. E5 54-51.5N 002-20.7E. \n2. CANCEL WZ 95/26 (GA50). \nNNNN",
    "clean_text": "ZCZC GA15\nWZ 221/26\nDOGGER.\nSZFF_Z_\n1. BUOYS UNLIT:\nA. N1 55-08.1N 002-09.5E.\nB. E5 54-51.5N 002-20.7E.\n2. CANCEL WZ 95/26 (GA50).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOGGER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: 1. buoys unlit.",
    "decoded_highlights": [
      "1. buoys unlit",
      "2. cancel wz 95/26 (ga50)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 72,
    "heading": "2026-04-06 04:04:14 AREA: G",
    "published_at": "2026-04-06 04:04:14",
    "area": "G",
    "message_id": "GA18",
    "text": "ZCZC GA18\nWZ _WREXWY \nFORTH. \nNEART NA GAOITHE WINDFARM. \n1. NNGMPMLCZEM\nHE Y_PG_MCFNGCAPIMYW AND NNG S BUOY 56-12.3N 002-09.8W AIS INOPERATIVE. \n2. CANCEL WZ 130/26 (GA73). \nNNNN",
    "clean_text": "ZCZC GA18\nWZ _WREXWY\nFORTH.\nNEART NA GAOITHE WINDFARM.\n1. NNGMPMLCZEM\nHE Y_PG_MCFNGCAPIMYW AND NNG S BUOY 56-12.3N 002-09.8W AIS INOPERATIVE.\n2. CANCEL WZ 130/26 (GA73).\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says an AIS transmitter is inoperative near 56-12.3N 002-09.8W.",
    "decoded_highlights": [
      "He y pg mcfngcapimyw and nng s buoy 56-12.3n 002-09.8w ais inoperative",
      "Wz wrexwy",
      "Neart na gaoithe windfarm"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 73,
    "heading": "2026-04-06 04:03:47 AREA: G",
    "published_at": "2026-04-06 04:03:47",
    "area": "G",
    "message_id": "GA24",
    "text": "ZCZC GA24\nWZ 25_/26 \nGMDSS. \nMRCC SHETLAND. \nVHF R/T AND DSC SERVICES FROM FITFUL HEAD SITE 59-54.3N 001-23.0W OFF AIR. \nNNNN",
    "clean_text": "ZCZC GA24\nWZ 25_/26\nGMDSS.\nMRCC SHETLAND.\nVHF R/T AND DSC SERVICES FROM FITFUL HEAD SITE 59-54.3N 001-23.0W OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "Vhf r/t and dsc services from fitful head site 59-54.3n 001-23.0w off air",
      "Mrcc shetland"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 74,
    "heading": "2026-04-06 04:03:17 AREA: G",
    "published_at": "2026-04-06 04:03:17",
    "area": "G",
    "message_id": "GA25",
    "text": "ZCZC GA25\nWZ 254/26 \nVIKING. \nBERYL OIL FIELD. \n1. BERYL _E BUOY 59-31.7N 001-33.5E TEMPORARILY REMOVED. \n2. CANCEL WZ 143/26 (GA82). \nNNNN",
    "clean_text": "ZCZC GA25\nWZ 254/26\nVIKING.\nBERYL OIL FIELD.\n1. BERYL _E BUOY 59-31.7N 001-33.5E TEMPORARILY REMOVED.\n2. CANCEL WZ 143/26 (GA82).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "BERYL OIL FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: 1. beryl e buoy 59-31.7n 001-33.5e temporarily removed.",
    "decoded_highlights": [
      "1. beryl e buoy 59-31.7n 001-33.5e temporarily removed",
      "Beryl oil field",
      "2. cancel wz 143/26 (ga82)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 75,
    "heading": "2026-04-06 04:00:43 AREA: G",
    "published_at": "2026-04-06 04:00:43",
    "area": "G",
    "message_id": "GE24",
    "text": "ZCZC GE24\n EXTENDED OUTLOOK\n TUE TO FRI\n ISSUER_QG_M_ET\nZ_!_\n)0$'_.+._$0._6__!,88(_\n(_9-'5_7-4$ -_3,:6_\n__\n_5,_7__MHCH+++_(_373LH_H PRESSURE OVER THE SH_S__ ULILPIL\nG G__ TUE EVENING WILL DRIFT E WITH NEW HIGH EX_MJZCHDPYMLSH_XM\nVDPPMGLEM_FW__MZ_M_PWMLP_ZYXMU__. MEANWHILE, DEVELOPING LOW WILL MOV NE, EXP ICELAND 978 BY WED EVENING WITH IGDB_GS _A\nHSVMOK_YQ\nK__Q_Q_\nH_LW\n_\nH\nQDZ_Y__F Q_JMSZUM_FS_MBZ__U_MMZMHDCM_FHDMPBGEWBNF_P BISCAY 1031 ON THU EV_NING, THEN FRANCE 1026 ON FRI. NEW DEVELOPING LOW MOV NE, EXP SE ICELAND 968 BY LTR ON FRI. STRG WINDS EXP ON TUENTVENING AND WED IN VIKING, N UTSI__,:_*.:_*!888_, FORTIES, CROMARTY, FORTH, TYNE, WOH_GALES EXP LTR IN VIKING, THE UTSIRES AND FAIR ISLE. THESE WINDS WILL DECREASE DURING THU BUT STRG WINDS EXP IN THE SOUTHERN N SEA AND ENGLISH CHANNEL LTR IN THPMWE_GALES EXP IN FAIR ISLE ON FRI WITH STRG WINDS IN ALL OTHER AREAS AT \nIMPJONGONNIIICZCZC",
    "clean_text": "ZCZC GE24\nEXTENDED OUTLOOK\nTUE TO FRI\nISSUER_QG_M_ET\nZ_!_\n)0$'_.+._$0._6__!,88(_\n(_9-'5_7-4$ -_3,:6_\n__\n_5,_7__MHCH+++_(_373LH_H PRESSURE OVER THE SH_S__ ULILPIL\nG G__ TUE EVENING WILL DRIFT E WITH NEW HIGH EX_MJZCHDPYMLSH_XM\nVDPPMGLEM_FW__MZ_M_PWMLP_ZYXMU__. MEANWHILE, DEVELOPING LOW WILL MOV NE, EXP ICELAND 978 BY WED EVENING WITH IGDB_GS _A\nHSVMOK_YQ\nK__Q_Q_\nH_LW\n_\nH\nQDZ_Y__F Q_JMSZUM_FS_MBZ__U_MMZMHDCM_FHDMPBGEWBNF_P BISCAY 1031 ON THU EV_NING, THEN FRANCE 1026 ON FRI. NEW DEVELOPING LOW MOV NE, EXP SE ICELAND 968 BY LTR ON FRI. STRG WINDS EXP ON TUENTVENING AND WED IN VIKING, N UTSI__,:_*.:_*!888_, FORTIES, CROMARTY, FORTH, TYNE, WOH_GALES EXP LTR IN VIKING, THE UTSIRES AND FAIR ISLE. THESE WINDS WILL DECREASE DURING THU BUT STRG WINDS EXP IN THE SOUTHERN N SEA AND ENGLISH CHANNEL LTR IN THPMWE_GALES EXP IN FAIR ISLE ON FRI WITH STRG WINDS IN ALL OTHER AREAS AT\nIMPJONGONNIIICZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "CROMARTY",
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention gales, ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Qdz y f q jmszum fs mbz u mmzmhdcm fhdmpbgewbnf p biscay 1031 on thu ev ning, then france 1026 on fri. new developing low mov ne, exp se iceland 968 by ltr on fri. strg winds exp on tuentvening and wed in viking, n utsi ,: .: !888 , forties, cromarty, forth, tyne, woh gales exp ltr in viking, the utsires and fair isle. these winds will decrease during thu but strg winds exp in the southern n sea and english channel ltr in thpmwe gales exp in fair isle on fri with strg winds in all other areas at",
      "G g tue evening will drift e with new high ex mjzchdpymlsh xm",
      "Vdppmglem fw mz m pwmlp zyxmu . meanwhile, developing low will mov ne, exp iceland 978 by wed evening with igdb gs a"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 76,
    "heading": "2026-04-06 04:00:18 AREA: G",
    "published_at": "2026-04-06 04:00:18",
    "area": "G",
    "message_id": "",
    "text": "ZCZC GB_\nCULLERCOATSRADIO\nGALE WYF_MJCWEM_H_WQRU UTC\n\nCROMARTY _ZYHDMH_IOGGER\nLE NOW CEASED \nNNNN",
    "clean_text": "ZCZC GB_\nCULLERCOATSRADIO\nGALE WYF_MJCWEM_H_WQRU UTC\n\nCROMARTY _ZYHDMH_IOGGER\nLE NOW CEASED\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "CULLERCOATS",
      "CULLERCOATSRADIO"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. Readable text says: Gale wyf mjcwem h wqru utc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gale wyf mjcwem h wqru utc",
      "Cullercoatsradio",
      "Cromarty zyhdmh iogger"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 77,
    "heading": "2026-04-06 03:59:21 AREA: T",
    "published_at": "2026-04-06 03:59:21",
    "area": "T",
    "message_id": "",
    "text": "ZCZCV_A\nU\n\n_YW UTC NOV\nBALTICSPM_\nM_Y_M_\nYUGSGSSMYPJOARB_XET_B_INFOC\nWWW.SMHI.SE/!/0*_6\n!_09,+9_9=__==========_*__ZCZC",
    "clean_text": "ZCZCV_A\nU\n\n_YW UTC NOV\nBALTICSPM_\nM_Y_M_\nYUGSGSSMYPJOARB_XET_B_INFOC\nWWW.SMHI.SE/!/0*_6\n!_09,+9_9=__==========_*__ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Yw utc nov. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Yw utc nov",
      "Balticspm",
      "Yugsgssmypjoarb xet b infoc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 78,
    "heading": "2026-04-06 03:44:46 AREA: T",
    "published_at": "2026-04-06 03:44:46",
    "area": "T",
    "message_id": "",
    "text": "ZCZCM_PANIEL BUOYM\nH_P__ONNIKKKKKKKKKKKKKKK_\nGULF OGMYF__BH_K_AS 14-17_S. TU_SDAY MZ_H__EFEU_HHI_I_D_LGQS\nPIWZ__K_MWPXY_B__HQK__ _MP_SKGIL_S_GT_VBL_HPNBH_B_W_T MONDAY D_M MO__\n_HPQZ_QRAQCBM/S. TUES_Z__VZRI M_IRWRPQ_RCHIP\nLU_!___+*3_ OVEYF_DHM_Z_\nU_4OHL_IKQJB_ZZOCOXRKXXBHHPBD_LGQS_CPJWA_NWRPQE_ONNIIIV___D__C_KHCH_\nPWQPTO _HXM__JZBS_LTIC SEA NAV WARN \nUETUHOGJVZVXJMSOUTHEJHPYBHR__MZB_Z\nD NORLDPXB_KKDG__Q_WBIU\nF FINGAND, _KS_VN_BSERV_UB1_7_()__!___1 ___: .-4\n3'59,,+.__.((3__:\n___ _-_ +,_' _,_,2_,_-_1(_70(3B_N:(_\n___\n)_9_9,,:_(__7__!\n__2\nZCA_\n=!9,:,9_*_06.__53.094-48)6 -4+_6-_8008,_.=6\n__H__JGKG__-9_\n=_/_03.5__\n_IL__DG AP\nNNNN",
    "clean_text": "ZCZCM_PANIEL BUOYM\nH_P__ONNIKKKKKKKKKKKKKKK_\nGULF OGMYF__BH_K_AS 14-17_S. TU_SDAY MZ_H__EFEU_HHI_I_D_LGQS\nPIWZ__K_MWPXY_B__HQK__ _MP_SKGIL_S_GT_VBL_HPNBH_B_W_T MONDAY D_M MO__\n_HPQZ_QRAQCBM/S. TUES_Z__VZRI M_IRWRPQ_RCHIP\nLU_!___+*3_ OVEYF_DHM_Z_\nU_4OHL_IKQJB_ZZOCOXRKXXBHHPBD_LGQS_CPJWA_NWRPQE_ONNIIIV___D__C_KHCH_\nPWQPTO _HXM__JZBS_LTIC SEA NAV WARN\nUETUHOGJVZVXJMSOUTHEJHPYBHR__MZB_Z\nD NORLDPXB_KKDG__Q_WBIU\nF FINGAND, _KS_VN_BSERV_UB1_7_()__!___1 ___: .-4\n3'59,,+.__.((3__:\n___ _-_ +,_' _,_,2_,_-_1(_70(3B_N:(_\n___\n)_9_9,,:_(__7__!\n__2\nZCA_\n=!9,:,9_*_06.__53.094-48)6 -4+_6-_8008,_.=6\n__H__JGKG__-9_\n=_/_03.5__\n_IL__DG AP\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Zczcm paniel buoym. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Zczcm paniel buoym",
      "Uetuhogjvzvxjmsouthejhpybhr mzb z"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 79,
    "heading": "2026-04-06 03:44:25 AREA: E",
    "published_at": "2026-04-06 03:44:25",
    "area": "E",
    "message_id": "EA",
    "text": "ZCZC EA\n_AO__KBN_______4__8/:0_-_0\n66___)\n__,)_ 50-_+_:__9,_/:,_ \nNNNN",
    "clean_text": "ZCZC EA\n_AO__KBN_______4__8/:0_-_0\n66___)\n__,)_ 50-_+_:__9,_/:,_\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 80,
    "heading": "2026-04-06 03:43:16 AREA: E",
    "published_at": "2026-04-06 03:43:16",
    "area": "E",
    "message_id": "E",
    "text": "ZCZC E\nY__Z 234/26 \n__'_-._2_H_KUQB_JZCHDPJH_Y_J_\nSOUT\n _YWFFBSM_ B_OFB_B_XX_ SRPMRW U_S_ \nNNNN",
    "clean_text": "ZCZC E\nY__Z 234/26\n__'_-._2_H_KUQB_JZCHDPJH_Y_J_\nSOUT\n_YWFFBSM_ B_OFB_B_XX_ SRPMRW U_S_\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 81,
    "heading": "2026-04-06 03:42:47 AREA: E",
    "published_at": "2026-04-06 03:42:47",
    "area": "E",
    "message_id": "EA49",
    "text": "ZCZC EA49\n,__:7)/,! 61WZ 240+-_6_-'5,35. \nLS_MSPW_PMJZCHTYZL_D_DS. \nEA\n_P__I_NS_N_V_ _Q_XJZXX YP\nQ80\n__=6_82,'\n:0_1==0\n_\n,\n\n__7_ZCZC",
    "clean_text": "ZCZC EA49\n,__:7)/,! 61WZ 240+-_6_-'5,35.\nLS_MSPW_PMJZCHTYZL_D_DS.\nEA\n_P__I_NS_N_V_ _Q_XJZXX YP\nQ80\n__=6_82,'\n:0_1==0\n_\n,\n\n__7_ZCZC",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 83,
    "heading": "2026-04-06 03:35:44 AREA: P",
    "published_at": "2026-04-06 03:35:44",
    "area": "P",
    "message_id": "",
    "text": "ZCZC PB52__\n,_._=__9(3(49,_APR 23:30 UTC_DOGGER. B_YFDH\nFM_HUMBER. THAMES. DM_I__R_BNR\n_\nF V==0\n_\n\n____\n_ZCZC",
    "clean_text": "ZCZC PB52__\n,_._=__9(3(49,_APR 23:30 UTC_DOGGER. B_YFDH\nFM_HUMBER. THAMES. DM_I__R_BNR\n_\nF V==0\n_\n\n____\n_ZCZC",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 85,
    "heading": "2026-04-06 02:30:58 AREA: T",
    "published_at": "2026-04-06 02:30:58",
    "area": "T",
    "message_id": "",
    "text": "ZCZ_\n_\n191638 U\n_ _2026\nWZ 215/26\nGMDSS.\nMRCC DOVER.\nOF R/T SERVICE FROM BAUEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "clean_text": "ZCZ_\n_\n191638 U\n_ _2026\nWZ 215/26\nGMDSS.\nMRCC DOVER.\nOF R/T SERVICE FROM BAUEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Of r/t service from bauey site 51-59.6n 001-24.5e off air",
      "Mrcc dover"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 87,
    "heading": "2026-04-06 02:20:18 AREA: U",
    "published_at": "2026-04-06 02:20:18",
    "area": "U",
    "message_id": "UA70",
    "text": "ZCZC UA70\n052320 UTC APR 26\nMONDOLFOVYWFZONONYZQHKCBKKEL3_)4LBXMNHKQOHLKRONKQB_NBE_(_-JZ__FHF_MJPM_M__PPAFM_MGSLYPSSMFJSWONFM_JBIMOOKDED_38_+)_K__X_Z_\nIDU_Y_QU_'S NOT WORKING\n__C\nH\nIII___\nZCSC UA75\n052320 UTC APR 26\nCD_H\nBI\n_H_HSM_KE REW_TITIONW\nEFENTRAL ADRIATFC JPM_M_FPJXY_\nLIGHTHOUZE OF PESCARA I.L. 3871 (E2316.35 IN POSITION(\nLAT 42_27.9'NK- LONG 014 14.0'E\nNOT WORKING.\n_-_+\n7+ZCZC",
    "clean_text": "ZCZC UA70\n052320 UTC APR 26\nMONDOLFOVYWFZONONYZQHKCBKKEL3_)4LBXMNHKQOHLKRONKQB_NBE_(_-JZ__FHF_MJPM_M__PPAFM_MGSLYPSSMFJSWONFM_JBIMOOKDED_38_+)_K__X_Z_\nIDU_Y_QU_'S NOT WORKING\n__C\nH\nIII___\nZCSC UA75\n052320 UTC APR 26\nCD_H\nBI\n_H_HSM_KE REW_TITIONW\nEFENTRAL ADRIATFC JPM_M_FPJXY_\nLIGHTHOUZE OF PESCARA I.L. 3871 (E2316.35 IN POSITION(\nLAT 42_27.9'NK- LONG 014 14.0'E\nNOT WORKING.\n_-_+\n7+ZCZC",
    "display_region_heading": "Unresolved B1 code U",
    "display_region_label": "B1 code U",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code U. Readable text says: Lighthouze of pescara i.l. 3871 (e2316.35 in position(. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lighthouze of pescara i.l. 3871 (e2316.35 in position(",
      "Lat 42 27.9'nk- long 014 14.0'e",
      "Efentral adriatfc jpm m fpjxy"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 90,
    "heading": "2026-04-06 02:14:43 AREA: T",
    "published_at": "2026-04-06 02:14:43",
    "area": "T",
    "message_id": "",
    "text": "ZCZCK_A_\nOOSTED_LGAPPLYC_SPON_ZLJH_APJMZMHDPIII_X\nAVVF_JFJW\n_\nJP\nQ_,1_+6.!*3.!._$0.\n!_!(__9,9,9,_9,,_887\n\n7_ZCZC",
    "clean_text": "ZCZCK_A_\nOOSTED_LGAPPLYC_SPON_ZLJH_APJMZMHDPIII_X\nAVVF_JFJW\n_\nJP\nQ_,1_+6.!*3.!._$0.\n!_!(__9,9,9,_9,,_887\n\n7_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Avvf jfjw. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Avvf jfjw"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 91,
    "heading": "2026-04-06 02:13:26 AREA: T",
    "published_at": "2026-04-06 02:13:26",
    "area": "T",
    "message_id": "TA13",
    "text": "ZCZC TA13\n262038 UTCC_AR \n_OOSTENDERADIO MSI 132/26\nVA_RGEUL 1 \nLIGHTBUOY VG5, 51-24.7_N 002-56.7__2++_3-06,-17E  UNMARKED\nSHIPPING IS REQUESTED TO PASS AT__F_IIK0.2!*__0.2.+_._+.__$+6.+6._!*$.!._$0.\n!_!___9,9,_9,,888(ZCZC",
    "clean_text": "ZCZC TA13\n262038 UTCC_AR\n_OOSTENDERADIO MSI 132/26\nVA_RGEUL 1\nLIGHTBUOY VG5, 51-24.7_N 002-56.7__2++_3-06,-17E UNMARKED\nSHIPPING IS REQUESTED TO PASS AT__F_IIK0.2!*__0.2.+_._+.__$+6.+6._!*$.!._$0.\n!_!___9,9,_9,,888(ZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Lightbuoy vg5, 51-24.7 n 002-56.7 2 3-06,-17e unmarked. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lightbuoy vg5, 51-24.7 n 002-56.7 2 3-06,-17e unmarked"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 92,
    "heading": "2026-04-06 02:12:57 AREA: T",
    "published_at": "2026-04-06 02:12:57",
    "area": "T",
    "message_id": "",
    "text": "ZCZC TA1_\n_7+ __ .___B_E_AAQDUEKU__1_9XNRHKQ_HDPQCKQDWPYONTB_TG\nMJ_\n_VT_SG__\nANCHOR AND CHAIN LOJHMFM_ZJM\nH UYBY_T_\n_UTUE\n\nNNNN",
    "clean_text": "ZCZC TA1_\n_7+ __ .___B_E_AAQDUEKU__1_9XNRHKQ_HDPQCKQDWPYONTB_TG\nMJ_\n_VT_SG__\nANCHOR AND CHAIN LOJHMFM_ZJM\nH UYBY_T_\n_UTUE\n\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Anchor and chain lojhmfm zjm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Anchor and chain lojhmfm zjm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 94,
    "heading": "2026-04-06 02:10:24 AREA: T",
    "published_at": "2026-04-06 02:10:24",
    "area": "T",
    "message_id": "TA27",
    "text": "ZCZC TA27\n0314-\n__ \n.=-_4\nOODTENDERADIO MHI 147/26 \n33+\nOBJECT ON THE SEA_M_H __UY_N LNI_SHIPPING REQUESTEZ NOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THLS OBJECT.\nNNNN",
    "clean_text": "ZCZC TA27\n0314-\n__\n.=-_4\nOODTENDERADIO MHI 147/26\n33+\nOBJECT ON THE SEA_M_H __UY_N LNI_SHIPPING REQUESTEZ NOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THLS OBJECT.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Object on the sea m h uy n lni shipping requestez not to anchor nor to fish in a radius of 500 meter around thls object",
      "Oodtenderadio mhi 147/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 95,
    "heading": "2026-04-06 02:06:53 AREA: S",
    "published_at": "2026-04-06 02:06:53",
    "area": "S",
    "message_id": "SE82",
    "text": "ZCZC SE82\n052300 NAVTEX-HAMBURG (NCC)\n\nWEAHDPY_ZYP_J_M_ZYM_PYBMLF_DHONONG_Z_E_WIND: WEST TO NORTHWEST 5 TO 6, LATER VARIABLE WINDS ABOUT 3.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: FIRST 4 METER.\n\nTUESDAY:\nWIND: VARIABLE _INDS ABOUT 3, LATER SHIFTING EAST TO SOUTHEAST.\n/_!*!)!'!_3_5_70_$06_._ ++8__1_'*_$0__R.\nNNNN",
    "clean_text": "ZCZC SE82\n052300 NAVTEX-HAMBURG (NCC)\n\nWEAHDPY_ZYP_J_M_ZYM_PYBMLF_DHONONG_Z_E_WIND: WEST TO NORTHWEST 5 TO 6, LATER VARIABLE WINDS ABOUT 3.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: FIRST 4 METER.\n\nTUESDAY:\nWIND: VARIABLE _INDS ABOUT 3, LATER SHIFTING EAST TO SOUTHEAST.\n/_!*!)!'!_3_5_70_$06_._ ++8__1_'*_$0__R.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NAVTEX HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Germany - German Bight and German North Sea. Readable text says: Visibility/weather: good visibility. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Visibility/weather: good visibility",
      "Weahdpy zyp j m zym pybmlf dhonong z e wind: west to northwest 5 to 6, later variable winds about 3",
      "Wind: variable inds about 3, later shifting east to southeast"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 98,
    "heading": "2026-04-06 02:04:27 AREA: S",
    "published_at": "2026-04-06 02:04:27",
    "area": "S",
    "message_id": "SA80",
    "text": "ZCZC SA80\nNCC-HAMLCY_ON\n_D_PPMG_HXM_Y_\n_EIDER ESTUARY.\n'EIDER' LIGHTBUOY  54-16N 008-29E\nTEMPORARILY REPLACED BY UNLIT BUOY.\nNNNN",
    "clean_text": "ZCZC SA80\nNCC-HAMLCY_ON\n_D_PPMG_HXM_Y_\n_EIDER ESTUARY.\n'EIDER' LIGHTBUOY 54-16N 008-29E\nTEMPORARILY REPLACED BY UNLIT BUOY.\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: 'eider' lightbuoy 54-16n 008-29e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "'eider' lightbuoy 54-16n 008-29e",
      "Temporarily replaced by unlit buoy",
      "Eider estuary"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 99,
    "heading": "2026-04-06 02:03:31 AREA: S",
    "published_at": "2026-04-06 02:03:31",
    "area": "S",
    "message_id": "SA81",
    "text": "ZCZC SA81\nNCC-HAMBURG\n3113.,\n_ _/._6_\n__9,_\n_2-4,. NO. 191\nGERMAN BIGHT. SOUTHERLY WEISSE BANK.\nUNDERWATER OPERATIONS BY MV 'FUGRO QUEST', CS 'C6FO2',\nAROUND POSITION 54-46,6N 006-00,5E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS.\nBERTH OF 500 METERS REQUESTED.\nNNNN",
    "clean_text": "ZCZC SA81\nNCC-HAMBURG\n3113.,\n_ _/._6_\n__9,_\n_2-4,. NO. 191\nGERMAN BIGHT. SOUTHERLY WEISSE BANK.\nUNDERWATER OPERATIONS BY MV 'FUGRO QUEST', CS 'C6FO2',\nAROUND POSITION 54-46,6N 006-00,5E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS.\nBERTH OF 500 METERS REQUESTED.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Around position 54-46,6n 006-00,5e.",
    "decoded_highlights": [
      "Around position 54-46,6n 006-00,5e",
      "Restricted manoevrability during operations",
      "Underwater operations by mv 'fugro quest', cs 'c6fo2'"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 102,
    "heading": "2026-04-06 02:00:44 AREA: S",
    "published_at": "2026-04-06 02:00:44",
    "area": "S",
    "message_id": "SA85",
    "text": "ZCZC SA85\nNCC-HAMBURG\n020610 UH_V_V\n26\nNAV. WARN. NO. 196\nGERMAN BIGHT. NORTHWESTERLY OWF 'BARD OFFSHORE 1'.\nUXO SURVEYVLEON__\nM\nJGZ_PMYPJPY_', CS 'GWSJ_JM_YZCWMG___9!+_9$0__0___-54,2E\nRESTRICTED VRABILITY DURING OPERATIONS.\nSAFE BPYHDMZ._ ._9.60_:0*_02_NNNN",
    "clean_text": "ZCZC SA85\nNCC-HAMBURG\n020610 UH_V_V\n26\nNAV. WARN. NO. 196\nGERMAN BIGHT. NORTHWESTERLY OWF 'BARD OFFSHORE 1'.\nUXO SURVEYVLEON__\nM\nJGZ_PMYPJPY_', CS 'GWSJ_JM_YZCWMG___9!+_9$0__0___-54,2E\nRESTRICTED VRABILITY DURING OPERATIONS.\nSAFE BPYHDMZ._ ._9.60_:0*_02_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: German bight. northwesterly owf 'bard offshore 1'. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "German bight. northwesterly owf 'bard offshore 1'",
      "Uxo surveyvleon",
      "Restricted vrability during operations"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 103,
    "heading": "2026-04-06 02:00:16 AREA: S",
    "published_at": "2026-04-06 02:00:16",
    "area": "S",
    "message_id": "SA89",
    "text": "ZCZC SA89\nNCC-HAMBURG\n05(\n_5: -04 26\nNAV. WARN. NO. 201\nNAV. WARN. __+__.7__GXXPSSPW_NNNN",
    "clean_text": "ZCZC SA89\nNCC-HAMBURG\n05(\n_5: -04 26\nNAV. WARN. NO. 201\nNAV. WARN. __+__.7__GXXPSSPW_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Nav. warn. no. 201. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Nav. warn. no. 201",
      "Ncc-hamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 104,
    "heading": "2026-04-06 01:37:15 AREA: G",
    "published_at": "2026-04-06 01:37:15",
    "area": "G",
    "message_id": "GB44",
    "text": "ZCZC GB44\n 9__+=__+6_.*823.8Z_RIL 2147 UTC\n\n CROMARTY FORTH T_PMWZ_\n GALE NOW CEASED\nNNNN",
    "clean_text": "ZCZC GB44\n9__+=__+6_.*823.8Z_RIL 2147 UTC\n\nCROMARTY FORTH T_PMWZ_\nGALE NOW CEASED\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "CROMARTY"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Gale now ceased. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gale now ceased",
      "Cromarty forth t pmwz"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 105,
    "heading": "2026-04-06 01:32:37 AREA: N",
    "published_at": "2026-04-06 01:32:37",
    "area": "N",
    "message_id": "N",
    "text": "ZCZC N\nP__NU_I UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1          53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1         53-30N 006-14E FOGHORN INOPERATIVE\nK6-P_MMMMMMMMMMMM_HP_Y_G_EATWE FOGHORN INOPERATIVE\nK14-FB-_       53-11N 003-34E UNLIT\nK7-FA-1         53-34N 003-18E UNLIT\nCANCEL MSI 93/26\nNNNN",
    "clean_text": "ZCZC N\nP__NU_I UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1 53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1 53-30N 006-14E FOGHORN INOPERATIVE\nK6-P_MMMMMMMMMMMM_HP_Y_G_EATWE FOGHORN INOPERATIVE\nK14-FB-_ 53-11N 003-34E UNLIT\nK7-FA-1 53-34N 003-18E UNLIT\nCANCEL MSI 93/26\nNNNN",
    "display_region_heading": "Unresolved B1 code N",
    "display_region_label": "B1 code N",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code N. This is a weather bulletin; readable sections mention fog across the covered waters.",
    "decoded_highlights": [
      "N7-fa-1 53-30n 006-14e foghorn inoperative",
      "K6-p mmmmmmmmmmmm hp y g eatwe foghorn inoperative",
      "L2-fa-1 53-57n 004-29e foghorn unreliable"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 108,
    "heading": "2026-04-06 00:41:42 AREA: K",
    "published_at": "2026-04-06 00:41:42",
    "area": "K",
    "message_id": "KA28",
    "text": "ZCZC KA28\nWIGHT - LARGE CAYEUX-SUR-MER\nWORKS\nCABLE LAYING OPERATION\nFROM 050000 UTC MAR 26\nUNTILM_CYHDPYMZHF_PONGZM_FJDF_TRAWLING, DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50-10.44N 001-29.13E\n50-13.61N 001-21.02E\n50-15.86___\n_  ZBY_GP_N\nH _B_GX__ _ UBUGP_N\nH Z_CYGM\n_ Y_CCGPON\nH_UB  GMIIKK\n Y_ZP_50-19.36N 8, _ 7_63_0_,\n_ H__VVLON.::__,+DGKMNMHLO.::._:__9,,888_+: (-26\nAVURNAVERBOURG 26/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nAIS TRANSMITTERMZCHMZ_MJ_Y\nF__M\nMGSF_DHMCSFHONGLZCPPMLJJCYPSSPON\nH__PUBFG_\n__CBF_GPONG\nF_HPMIII_KVH_M_CHFZONGO__BWQW___W__ZB__UZJZJE_AVUQ\nIRISH SEA.\n__6$+_0.8!.6+__\n_\n8___+:+: 0_\n5__,H F_FMGCH_MYM\n_GALEWARNING, 0_== 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC KA28\nWIGHT - LARGE CAYEUX-SUR-MER\nWORKS\nCABLE LAYING OPERATION\nFROM 050000 UTC MAR 26\nUNTILM_CYHDPYMZHF_PONGZM_FJDF_TRAWLING, DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50-10.44N 001-29.13E\n50-13.61N 001-21.02E\n50-15.86___\n_ ZBY_GP_N\nH _B_GX__ _ UBUGP_N\nH Z_CYGM\n_ Y_CCGPON\nH_UB GMIIKK\nY_ZP_50-19.36N 8, _ 7_63_0_,\n_ H__VVLON.::__,+DGKMNMHLO.::._:__9,,888_+: (-26\nAVURNAVERBOURG 26/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nAIS TRANSMITTERMZCHMZ_MJ_Y\nF__M\nMGSF_DHMCSFHONGLZCPPMLJJCYPSSPON\nH__PUBFG_\n__CBF_GPONG\nF_HPMIII_KVH_M_CHFZONGO__BWQW___W__ZB__UZJZJE_AVUQ\nIRISH SEA.\n__6$+_0.8!.6+__\n_\n8___+:+: 0_\n5__,H F_FMGCH_MYM\n_GALEWARNING, 0_== 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOVER",
      "CAYEUX SUR MER",
      "WIGHT LARGE CAYEUX SUR MER",
      "DST MANCHE"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: Untilm cyhdpymzhf pongzm fjdf trawling, dredging, anchoring and diving within this area. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Untilm cyhdpymzhf pongzm fjdf trawling, dredging, anchoring and diving within this area",
      "Cable laying operation",
      "Ais transmittermzchmz mj y"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 109,
    "heading": "2026-04-06 00:41:08 AREA: K",
    "published_at": "2026-04-06 00:41:08",
    "area": "K",
    "message_id": "KA29",
    "text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER -._2*_._/$0.0*_9,_!2*._+.\n!__!+._$_0*9,_'!888_$_.):+3._._'!_$_.:'!_9,_)3+3._!6_.*:29,\n_ _7 _7G_\nPPWAQUMEPE\nNAVIGATE WITBM_CHFZONGONIII_ZCZC",
    "clean_text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER -._2*_._/$0.0*_9,_!2*._+.\n!__!+._$_0*9,_'!888_$_.):+3._._'!_$_.:'!_9,_)3+3._!6_.*:29,\n_ _7 _7G_\nPPWAQUMEPE\nNAVIGATE WITBM_CHFZONGONIII_ZCZC",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: Avurnav cherbourg 029/26. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Avurnav cherbourg 029/26",
      "Ppwaqumepe",
      "Navigate witbm chfzongoniii zczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 110,
    "heading": "2026-04-06 00:40:12 AREA: K",
    "published_at": "2026-04-06 00:40:12",
    "area": "K",
    "message_id": "KA40",
    "text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\nWIGHT - D82\nSPECIAL OP_RATIONS\n1. FIRING EXERCISE\nFROM 110730 UTC APR 26 TO 111500 UTC APR 26\nAREA BOUWPWMLE_49-59.92N 000-12.63W\n49-40.78__.\n____HGUON\nYZ_P_N 000-18.62W\n49-34.72N _ATTMQWW\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC APR 26\nNNNN",
    "clean_text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\nWIGHT - D82\nSPECIAL OP_RATIONS\n1. FIRING EXERCISE\nFROM 110730 UTC APR 26 TO 111500 UTC APR 26\nAREA BOUWPWMLE_49-59.92N 000-12.63W\n49-40.78__.\n____HGUON\nYZ_P_N 000-18.62W\n49-34.72N _ATTMQWW\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC APR 26\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: 1. firing exercise. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. firing exercise",
      "Avurnav cherbourg 40/26",
      "Special op rations"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 111,
    "heading": "2026-04-06 00:09:55 AREA: G",
    "published_at": "2026-04-06 00:09:55",
    "area": "G",
    "message_id": "GA61",
    "text": "ZCZC GA61\nWZ 180/26 \nHUMBER= \nR_C_ BZ_UVD\nH_I_F QV.*(10/2.\n_1_\n___,\n_.__ 53-15.___,\n__KW_Q__DUDGEORNWN__FRM. \nDUDGEON SOUTH BUOY 53-12.5N 001-25.6E UNLIT. \n_,,,,\n\n___+:+: _-89\n_*+ !*4*:_28,$ !-4..\n1. TURBINE HS2, 57_4'))_/._(7__,-) 8,90_8=3_\n0_2. __-12).\n_D\nN_\n_KKKKKKKKKKKKK_DTM_ZCZC",
    "clean_text": "ZCZC GA61\nWZ 180/26\nHUMBER=\nR_C_ BZ_UVD\nH_I_F QV.*(10/2.\n_1_\n___,\n_.__ 53-15.___,\n__KW_Q__DUDGEORNWN__FRM.\nDUDGEON SOUTH BUOY 53-12.5N 001-25.6E UNLIT.\n_,,,,\n\n___+:+: _-89\n_*+ !*4*:_28,$ !-4..\n1. TURBINE HS2, 57_4'))_/._(7__,-) 8,90_8=3_\n0_2. __-12).\n_D\nN_\n_KKKKKKKKKKKKK_DTM_ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Dudgeon south buoy 53-12.5n 001-25.6e unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Dudgeon south buoy 53-12.5n 001-25.6e unlit",
      "1. turbine hs2, 57 4')) /. (7 ,-) 8,90 8 3"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 112,
    "heading": "2026-04-06 00:09:23 AREA: T",
    "published_at": "2026-04-06 00:09:23",
    "area": "T",
    "message_id": "",
    "text": "ZCAC GA71\nWZ 204/26\nHUM_ER.=\nORWELL GAS FIELD _OJTHWESTWARDS.\n1. MET MAST 53-10.7N 002-/\n=3.\n2. CANCEL WZ 82/26 (GA42).\nNNNN",
    "clean_text": "ZCAC GA71\nWZ 204/26\nHUM_ER.=\nORWELL GAS FIELD _OJTHWESTWARDS.\n1. MET MAST 53-10.7N 002-/\n=3.\n2. CANCEL WZ 82/26 (GA42).\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Orwell gas field ojthwestwards.",
    "decoded_highlights": [
      "Orwell gas field ojthwestwards",
      "1. met mast 53-10.7n 002-/",
      "2. cancel wz 82/26 (ga42)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 113,
    "heading": "2026-04-06 00:08:54 AREA: G",
    "published_at": "2026-04-06 00:08:54",
    "area": "G",
    "message_id": "GA74",
    "text": "ZCZC GA74\nWZ 207/26 \nHUMBER. _\nRAVENSPURN NORTH GAS FIELD \n__(1:_0,7(_,:001-02.0E, UNLIT AND ALL NAVAIDS INOPERATIVE. \nNNNN",
    "clean_text": "ZCZC GA74\nWZ 207/26\nHUMBER. _\nRAVENSPURN NORTH GAS FIELD\n__(1:_0,7(_,:001-02.0E, UNLIT AND ALL NAVAIDS INOPERATIVE.\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: (1: 0,7( ,:001-02.0e, unlit and all navaids inoperative. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "(1: 0,7( ,:001-02.0e, unlit and all navaids inoperative",
      "Ravenspurn north gas field"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 114,
    "heading": "2026-04-06 00:08:29 AREA: T",
    "published_at": "2026-04-06 00:08:29",
    "area": "T",
    "message_id": "",
    "text": "UCZC GA81\nWZ 214/26 \nGMDSS. \nMRCC HUMBER. \nMF R/T SERVICE FROM CULLERCOATS SITE 55-04.4N 001-27.8W OFF_AIR. \nNNNN",
    "clean_text": "UCZC GA81\nWZ 214/26\nGMDSS.\nMRCC HUMBER.\nMF R/T SERVICE FROM CULLERCOATS SITE 55-04.4N 001-27.8W OFF_AIR.\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "CULLERCOATS"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "Mf r/t service from cullercoats site 55-04.4n 001-27.8w off air",
      "Mrcc humber"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 115,
    "heading": "2026-04-06 00:08:04 AREA: G",
    "published_at": "2026-04-06 00:08:04",
    "area": "G",
    "message_id": "GA83",
    "text": "ZCZC GA83\nWZ WQTXW_V\nGMDSS. \nMRCC DOV6\n_.9\n___.,/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR. \nNNNN",
    "clean_text": "ZCZC GA83\nWZ WQTXW_V\nGMDSS.\nMRCC DOV6\n_.9\n___.,/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "/t service from bawdsey site 51-59.6n 001-24.5e off air",
      "Wz wqtxw v"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 116,
    "heading": "2026-04-06 00:07:37 AREA: G",
    "published_at": "2026-04-06 00:07:37",
    "area": "G",
    "message_id": "GA94",
    "text": "ZCZC GA94\nWZ 226\nTYNE.\n'_)65_ 9!!'_943 $3.9_H_HZ_NWIND FAR\n.\nTURIFK __IH\nL\nA_MIN 00_-2 ._ UNLIT AND FOG SIGNAL INOPERATIVE\nNNNN",
    "clean_text": "ZCZC GA94\nWZ 226\nTYNE.\n'_)65_ 9!!'_943 $3.9_H_HZ_NWIND FAR\n.\nTURIFK __IH\nL\nA_MIN 00_-2 ._ UNLIT AND FOG SIGNAL INOPERATIVE\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "A min 00 -2 . unlit and fog signal inoperative"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 117,
    "heading": "2026-04-06 00:07:05 AREA: G",
    "published_at": "2026-04-06 00:07:05",
    "area": "G",
    "message_id": "GA02",
    "text": "ZCZC GA02\nWZ 223/26\nHUMBER. \nLEMAN GAS FIELD. \n1. PLATFORM 49/2 2._01.0___002-12.6E, UNLIT AND ALSM_FWJMFZ_PYHF\nPIBM_EL WZ 100/26 (GA52).\nNNN_ONNIII____ZCZC",
    "clean_text": "ZCZC GA02\nWZ 223/26\nHUMBER.\nLEMAN GAS FIELD.\n1. PLATFORM 49/2 2._01.0___002-12.6E, UNLIT AND ALSM_FWJMFZ_PYHF\nPIBM_EL WZ 100/26 (GA52).\nNNN_ONNIII____ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: 1. platform 49/2 2. 01.0 002-12.6e, unlit and alsm fwjmfz pyhf. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. platform 49/2 2. 01.0 002-12.6e, unlit and alsm fwjmfz pyhf",
      "Leman gas field",
      "Pibm el wz 100/26 (ga52)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 118,
    "heading": "2026-04-06 00:06:34 AREA: G",
    "published_at": "2026-04-06 00:06:34",
    "area": "G",
    "message_id": "GA04",
    "text": "ZCZC GA04\nWZ 225/26\nGMDSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W OFF AIR.\n2. CANCEL WZ 213/26 (GA80).\nOFONNIIIU_ZCZC",
    "clean_text": "ZCZC GA04\nWZ 225/26\nGMDSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W OFF AIR.\n2. CANCEL WZ 213/26 (GA80).\nOFONNIIIU_ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "1. mf r/t and dsc services from gregness site 57-07.7n 002-03.2w off air",
      "Mrcc shetland",
      "2. cancel wz 213/26 (ga80)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 119,
    "heading": "2026-04-06 00:06:03 AREA: G",
    "published_at": "2026-04-06 00:06:03",
    "area": "G",
    "message_id": "GA07",
    "text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLA_FZYBM__ZT_P_P_MH_ _N 002-29.1E, FOG SIGNAL INOPJRATIV .\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "clean_text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLA_FZYBM__ZT_P_P_MH_ _N 002-29.1E, FOG SIGNAL INOPJRATIV .\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "BESSEMER GAS FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. pla fzybm zt p p mh n 002-29.1e, fog signal inopjrativ",
      "Bessemer gas field",
      "2. cancel wz 104/26 (ga54)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 120,
    "heading": "2026-04-06 00:00:11 AREA: G",
    "published_at": "2026-04-06 00:00:11",
    "area": "G",
    "message_id": "GE23",
    "text": "ZCZC GE23\n ISSUED BY THE MET OFFICE AT \nU MGZMJCM_APR\n\n GALE WARNINGS: VIKING FORTIES CROMARTY FORTH TYNE DOGGER FAIR ISLE\n\n THE GENERAL SITUATION AT MIDDAY\n LOW SE ICELAND 988 LO_NN_MFHJMFWPHFH_ONONM_HR FORECASTS\n\n VIKING FORTIES\n W OR NW MAINLY 6 TO GALE 8, BUT SEV GALE 9 AT FIRST IN EASTERN S UTSIRE, BEXM\n_LOK_H_PDPWY8)$'_07___) \n0,_)\n_) )5__\n1____OTHERWISE ROUGH OR VERY ROUGH, BECMG MOD OR ROUGH LTR. SQUALLY SHWRS. MOD OR GOOD, OCNL POOR AT FIRST\n\n CROMARTY FORTH TYNE DOGGER\n W 9:'_ _AT FIRST, BACK S OR SE 3 _OMWHMGSHY_IN NE DOGGER, ROUGH OR VERY ROUGH, BECMG MOD LTR, BUT ELSEWHERE, MOD OR ROUGH BECMG SLT OR MOA\nBMGJD_QJ\n_MGBZWMZYM_ZZWONONMGDC_LPYMHD_PJON_GUM__MGHZM\n_MG_M_M\nYL_PA\n__.\n8!_76.__$0..+6.*0._..__+.__._'_6,___0.$:_)06_.6+:++___'_.+6__.29:/_._ '.995_ 94 ')5 )___XSNE__VO_OD\n\n _CZ__E__Y\nBP_CSB\n_ POOR\n\n _ZUTLOOU FW _ KZOU_S__IKX_NMGJ_Y_MA__J\n_T_W FORTIES, CROMARTY, FORTH, TYNE, W DOGGER AJM_FYMFJP_IIK___!-:\n+.*_6_._!2*.!+.__'_4+__+!!!_7_+=+: _-259\n__2 )\n5_$=_8(8,_. \nBERYL OIL FIELD. \n1. BERYL SPM3 BUOY 59_31.7N 001_33.5E TEMPORARILY REMOVEO. \n2. CA CEL WZ 1_3/_6 (\n___NZ_OI_ZF_Q_EB5,__3__)____ZCZ_ Y_LQA\n GAAM\n_PUTHWARKI_3_2.''./_!2*.!+PYHF\nP__O_VNNN_\n\nZCZC",
    "clean_text": "ZCZC GE23\nISSUED BY THE MET OFFICE AT\nU MGZMJCM_APR\n\nGALE WARNINGS: VIKING FORTIES CROMARTY FORTH TYNE DOGGER FAIR ISLE\n\nTHE GENERAL SITUATION AT MIDDAY\nLOW SE ICELAND 988 LO_NN_MFHJMFWPHFH_ONONM_HR FORECASTS\n\nVIKING FORTIES\nW OR NW MAINLY 6 TO GALE 8, BUT SEV GALE 9 AT FIRST IN EASTERN S UTSIRE, BEXM\n_LOK_H_PDPWY8)$'_07___)\n0,_)\n_) )5__\n1____OTHERWISE ROUGH OR VERY ROUGH, BECMG MOD OR ROUGH LTR. SQUALLY SHWRS. MOD OR GOOD, OCNL POOR AT FIRST\n\nCROMARTY FORTH TYNE DOGGER\nW 9:'_ _AT FIRST, BACK S OR SE 3 _OMWHMGSHY_IN NE DOGGER, ROUGH OR VERY ROUGH, BECMG MOD LTR, BUT ELSEWHERE, MOD OR ROUGH BECMG SLT OR MOA\nBMGJD_QJ\n_MGBZWMZYM_ZZWONONMGDC_LPYMHD_PJON_GUM__MGHZM\n_MG_M_M\nYL_PA\n__.\n8!_76.__$0..+6.*0._..__+.__._'_6,___0.$:_)06_.6+:++___'_.+6__.29:/_._ '.995_ 94 ')5 )___XSNE__VO_OD\n\n_CZ__E__Y\nBP_CSB\n_ POOR\n\n_ZUTLOOU FW _ KZOU_S__IKX_NMGJ_Y_MA__J\n_T_W FORTIES, CROMARTY, FORTH, TYNE, W DOGGER AJM_FYMFJP_IIK___!-:\n+.*_6_._!2*.!+.__'_4+__+!!!_7_+=+: _-259\n__2 )\n5_$=_8(8,_.\nBERYL OIL FIELD.\n1. BERYL SPM3 BUOY 59_31.7N 001_33.5E TEMPORARILY REMOVEO.\n2. CA CEL WZ 1_3/_6 (\n___NZ_OI_ZF_Q_EB5,__3__)____ZCZ_ Y_LQA\nGAAM\n_PUTHWARKI_3_2.''./_!2*.!+PYHF\nP__O_VNNN_\n\nZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOGGER",
      "CROMARTY",
      "TYNE",
      "BERYL OIL FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gale warnings: viking forties cromarty forth tyne dogger fair isle",
      "W or nw mainly 6 to gale 8, but sev gale 9 at first in eastern s utsire, bexm",
      "Low se iceland 988 lo nn mfhjmfwphfh ononm hr forecasts"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 1,
    "heading": "2026-04-05 23:45:17 AREA: E",
    "published_at": "2026-04-05 23:45:17",
    "area": "E",
    "message_id": "EA21",
    "text": "ZCZC EA21\nWZ 182/26 \nLUNDY. \nSPANIEL BUOY 51-38.1N 004-39.7W UNLIT.\nNNNN",
    "clean_text": "ZCZC EA21\nWZ 182/26\nLUNDY.\nSPANIEL BUOY 51-38.1N 004-39.7W UNLIT.\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "LUNDY",
      "SPANIEL BUOY"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. Readable text says: Spaniel buoy 51-38.1n 004-39.7w unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Spaniel buoy 51-38.1n 004-39.7w unlit"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 2,
    "heading": "2026-04-05 23:44:56 AREA: E",
    "published_at": "2026-04-05 23:44:56",
    "area": "E",
    "message_id": "EA22",
    "text": "ZCZC EA22\nWZ 185/26 \nWIGHT. \n_002'0*.'!_$_.___NZXLBG.:,$$:__.!+_06_!\n0__8_\nNNNN",
    "clean_text": "ZCZC EA22\nWZ 185/26\nWIGHT.\n_002'0*.'!_$_.___NZXLBG.:,$$:__.!+_06_!\n0__8_\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WIGHT"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 3,
    "heading": "2026-04-05 23:44:36 AREA: E",
    "published_at": "2026-04-05 23:44:36",
    "area": "E",
    "message_id": "EA27",
    "text": "ZCZC EA27\nWZ 192/26 \nLUNDY. \nLAVERNOCK SPIT BUOY 51-23.0N 003-10.8W UNLIT. \n \nNNNN",
    "clean_text": "ZCZC EA27\nWZ 192/26\nLUNDY.\nLAVERNOCK SPIT BUOY 51-23.0N 003-10.8W UNLIT.\n\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "LUNDY"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. Readable text says: Lavernock spit buoy 51-23.0n 003-10.8w unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lavernock spit buoy 51-23.0n 003-10.8w unlit"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 4,
    "heading": "2026-04-05 23:43:48 AREA: T",
    "published_at": "2026-04-05 23:43:48",
    "area": "T",
    "message_id": "",
    "text": "ZC_C EA4___/_-._0_5-$\n______Z_ 001-24.5E OFF AIR. \nNN_N\nI_ZCZC",
    "clean_text": "ZC_C EA4___/_-._0_5-$\n______Z_ 001-24.5E OFF AIR.\nNN_N\nI_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 5,
    "heading": "2026-04-05 23:42:55 AREA: E",
    "published_at": "2026-04-05 23:42:55",
    "area": "E",
    "message_id": "",
    "text": "ZCZC EAGO_\n OAMP__IT_EMO_G_J___K__YYFSMLK__M\n_FJOC007-48.5_2 7,_85. \n\nNNNN",
    "clean_text": "ZCZC EAGO_\nOAMP__IT_EMO_G_J___K__YYFSMLK__M\n_FJOC007-48.5_2 7,_85.\n\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 6,
    "heading": "2026-04-05 23:40:12 AREA: E",
    "published_at": "2026-04-05 23:40:12",
    "area": "E",
    "message_id": "EE04",
    "text": "ZCZC EE04\nISSUED BY THE MET OFFICE AT 1900 ON SUN 05 APR\n\n\nGALE WARNINGS: SOLE\n\nTHE GENERAL SITUATION AT MIDDAY\nLOW SE ICELAND 988 LOSING ITS IDENTITY\n\n24-HR FORECASTS\n\nTHAMES DOVER WIGHT\nW 4 TO 6 BECMG VRB 2 TO 4, THEN E OR SE 3 TO 5 LTR. IN NE HUMBER, ROUGH BECMG MOD, BUT ELSEWHERE, SLT OR MOD, BECMG SMOOTH OR SLT LTR. SHWRS. GOOD\n\nPORTLAND PLYMOUTH_CAY\nVRB 2 TO 4 BECMG SE 4 TO 6. MOD OR ROUGD_M_3:._ ')5 94 .9$ )\n4. MAINLY FAIWQ_NBPOOD\n\nFITZROY SOLE\nCYCLONIC 3 TO 5 AT FIRST IN S FITZROY, OTHERWISE S OR SE 4 TO 6, INCR 7 OR GALE 8 FOR A TIME IN W SOLE. MOD OR ROUGH, BECMG VERY ROUGH OR HIGH LTR IN NW FITZROY AND W SOLE. OCCASIONAL RAIN. GOOD, OCNL POOR LTR\nT\n__BACK SE, 4 TB __\nTO_DA 3 AT FIRST. MOD OR ROSGH, BEC_ ZTUHR MOD IN LUNDY Z\n\nLT__YZF QPAALTDLF _\n__\nH_=0/2__24 H_K OF STRG WINDS AN WIGHT, PORTLNWPOMG_BZ_HDMWB_1_(1+___+_!!!_ZCZC",
    "clean_text": "ZCZC EE04\nISSUED BY THE MET OFFICE AT 1900 ON SUN 05 APR\n\nGALE WARNINGS: SOLE\n\nTHE GENERAL SITUATION AT MIDDAY\nLOW SE ICELAND 988 LOSING ITS IDENTITY\n\n24-HR FORECASTS\n\nTHAMES DOVER WIGHT\nW 4 TO 6 BECMG VRB 2 TO 4, THEN E OR SE 3 TO 5 LTR. IN NE HUMBER, ROUGH BECMG MOD, BUT ELSEWHERE, SLT OR MOD, BECMG SMOOTH OR SLT LTR. SHWRS. GOOD\n\nPORTLAND PLYMOUTH_CAY\nVRB 2 TO 4 BECMG SE 4 TO 6. MOD OR ROUGD_M_3:._ ')5 94 .9$ )\n4. MAINLY FAIWQ_NBPOOD\n\nFITZROY SOLE\nCYCLONIC 3 TO 5 AT FIRST IN S FITZROY, OTHERWISE S OR SE 4 TO 6, INCR 7 OR GALE 8 FOR A TIME IN W SOLE. MOD OR ROUGH, BECMG VERY ROUGH OR HIGH LTR IN NW FITZROY AND W SOLE. OCCASIONAL RAIN. GOOD, OCNL POOR LTR\nT\n__BACK SE, 4 TB __\nTO_DA 3 AT FIRST. MOD OR ROSGH, BEC_ ZTUHR MOD IN LUNDY Z\n\nLT__YZF QPAALTDLF _\n__\nH_=0/2__24 H_K OF STRG WINDS AN WIGHT, PORTLNWPOMG_BZ_HDMWB_1_(1+___+_!!!_ZCZC",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WIGHT",
      "LUNDY",
      "PORTLAND"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - English Channel and western approaches. This is a weather bulletin; readable sections mention ice, rain across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Cyclonic 3 to 5 at first in s fitzroy, otherwise s or se 4 to 6, incr 7 or gale 8 for a time in w sole. mod or rough, becmg very rough or high ltr in nw fitzroy and w sole. occasional rain. good, ocnl poor ltr",
      "Gale warnings: sole",
      "Issued by the met office at 1900 on sun 05 apr"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 7,
    "heading": "2026-04-05 22:31:18 AREA: V",
    "published_at": "2026-04-05 22:31:18",
    "area": "V",
    "message_id": "VA63",
    "text": "ZCZC VA63\n081002_4_3_6/._*+_\nWZ 183/26 \nTHAMES. \nEAST ANGLIA ONE WIND FARM. \nTURBINE G27, 52-09.8N 002-33.5E, FOG SIGNAL IOEVYGG__DGCU_V_3_'- +:: 2_(_M EUROPE IN AE_A BOUNDED BY :\n=61 __(__/=8,____$.60_:0(_029_\n_:-,:3) 5_8\n_ZCZC",
    "clean_text": "ZCZC VA63\n081002_4_3_6/._*+_\nWZ 183/26\nTHAMES.\nEAST ANGLIA ONE WIND FARM.\nTURBINE G27, 52-09.8N 002-33.5E, FOG SIGNAL IOEVYGG__DGCU_V_3_'- +:: 2_(_M EUROPE IN AE_A BOUNDED BY :\n=61 __(__/=8,____$.60_:0(_029_\n_:-,:3) 5_8\n_ZCZC",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Turbine g27, 52-09.8n 002-33.5e, fog signal ioevygg dgcu v 3 '- :: 2 ( m europe in ae a bounded by",
      "East anglia one wind farm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 9,
    "heading": "2026-04-05 22:20:11 AREA: U",
    "published_at": "2026-04-05 22:20:11",
    "area": "U",
    "message_id": "UE43",
    "text": "ZCZC UE43\n051920 UTC_A__\n_WY\nMONDOLFO RADIO\n\nWEATHER FORECAST OVER MEDITERRANEAN AREAS ISSUED BY ROME METEOROLOGY CENTRE AT 18/UTC OF 05/04/2_\nAND VALID UP TO 06/UTC_ 06QTUUE_ WARNINGS:\nTHUNDERSTOY_JM WPYM_ZCYJP__MV_S_NDERSTORMS FORECAST: _FS_N_SPAMC__OURSE: NIL\nGALES FORECAST: NIL\n2. WEATHER S_HCHFZ__ONGFJHLFSFH_MYPMSSMX_ AROUND IS WEAKENING. INSTABILITY AREA\nOVER LIBTJ\n_L_S_H_TNING. HIGH AND FLAT FIELD OF 1026 HPA OVER\nWEST-CENTRAL MEDITERRANEAN SEA. FLAT FI _8 B___MTO_Z_XBXZYGL_I_\nI_AZ_V_\n3. FORECAST TO 06/UTC OF 06/04/2026 AND _2 (_974' 975)99(:\nNORTHERN ADRIATIC SEA: SOUTHEASTERLY 2 -FAIR -GOOD VISIBILITY\nDECREASING -GLED SEA / OUTLOOK: VARIABLE 2 -FAIR\nNM_TRAL ADRIATIC SEA: NORTHWESTERLY 2 BECOMING WEAK AND VARIABLE\n-FAIR -VERY GOOD VISIBILITY DECREASING -SMOOTH SEA WEAKENING NORTH\nSECTOR / OUTLOOK: VARIABLE 2 -FAIR.\nON ADRIATIC SEA: OYHD_PJ_PYS_M__F_SZFA_ING OVER\nOTRANT__CHANNEL -FA_R -_-' !418/UTC OF TOMORROW\nNORTHERN ADRIATIC SEA: WESTERLY 1 SEA 09_*+:_$0*_06'3._7._*0_,\n_5_80*_0_'3._ ._*0.\n_45*+:_$06'3._4.5*\n__\n_CENTRAL ADR_AEIC_S NORT\nERLY 2 SEA 1/SOUTHWESTERLY 1 SEA\n0/NORTSWESTERL 2 SEA _534)6 2 SEA 1\nSOUTHERN ADRIATIC SEA: NORTHWESTERLY 2 SEA 2/WESTERLY 2 SEA\nQXWESTERLY 3 SEA 2/WESTERLY 2 SEA 1\n\nEN_ _PH_Z_YI_ONGONR_D___I__T_CC___WFFUUUF_ZO____ZCZC",
    "clean_text": "ZCZC UE43\n051920 UTC_A__\n_WY\nMONDOLFO RADIO\n\nWEATHER FORECAST OVER MEDITERRANEAN AREAS ISSUED BY ROME METEOROLOGY CENTRE AT 18/UTC OF 05/04/2_\nAND VALID UP TO 06/UTC_ 06QTUUE_ WARNINGS:\nTHUNDERSTOY_JM WPYM_ZCYJP__MV_S_NDERSTORMS FORECAST: _FS_N_SPAMC__OURSE: NIL\nGALES FORECAST: NIL\n2. WEATHER S_HCHFZ__ONGFJHLFSFH_MYPMSSMX_ AROUND IS WEAKENING. INSTABILITY AREA\nOVER LIBTJ\n_L_S_H_TNING. HIGH AND FLAT FIELD OF 1026 HPA OVER\nWEST-CENTRAL MEDITERRANEAN SEA. FLAT FI _8 B___MTO_Z_XBXZYGL_I_\nI_AZ_V_\n3. FORECAST TO 06/UTC OF 06/04/2026 AND _2 (_974' 975)99(:\nNORTHERN ADRIATIC SEA: SOUTHEASTERLY 2 -FAIR -GOOD VISIBILITY\nDECREASING -GLED SEA / OUTLOOK: VARIABLE 2 -FAIR\nNM_TRAL ADRIATIC SEA: NORTHWESTERLY 2 BECOMING WEAK AND VARIABLE\n-FAIR -VERY GOOD VISIBILITY DECREASING -SMOOTH SEA WEAKENING NORTH\nSECTOR / OUTLOOK: VARIABLE 2 -FAIR.\nON ADRIATIC SEA: OYHD_PJ_PYS_M__F_SZFA_ING OVER\nOTRANT__CHANNEL -FA_R -_-' !418/UTC OF TOMORROW\nNORTHERN ADRIATIC SEA: WESTERLY 1 SEA 09_*+:_$0*_06'3._7._*0_,\n_5_80*_0_'3._ ._*0.\n_45*+:_$06'3._4.5*\n__\n_CENTRAL ADR_AEIC_S NORT\nERLY 2 SEA 1/SOUTHWESTERLY 1 SEA\n0/NORTSWESTERL 2 SEA _534)6 2 SEA 1\nSOUTHERN ADRIATIC SEA: NORTHWESTERLY 2 SEA 2/WESTERLY 2 SEA\nQXWESTERLY 3 SEA 2/WESTERLY 2 SEA 1\n\nEN_ _PH_Z_YI_ONGONR_D___I__T_CC___WFFUUUF_ZO____ZCZC",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "MONDOLFO RADIO"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Italy - Adriatic Sea and central Italian coast. This is a weather bulletin; readable sections mention gales across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gales forecast: nil",
      "Northern adriatic sea: southeasterly 2 -fair -good visibility",
      "-fair -very good visibility decreasing -smooth sea weakening north"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 13,
    "heading": "2026-04-05 22:15:48 AREA: T",
    "published_at": "2026-04-05 22:15:48",
    "area": "T",
    "message_id": "TA11",
    "text": "ZCZC TA11\n2610!7.= 5: .-49._9-!_(-$31($-_1_9XGHKP_HAAQDIKCSEXEE_ASQD__J_B_BDWFFKEABED IN FOLLOWING POSITIONS\n51 17,352N 002 56,610E\n51 17,281N 002 56,553E\nSHIPPING IS REQUESTED NOT TO ANCHOR NOR FISH IN THE VICINITY\n\n\nNNNN",
    "clean_text": "ZCZC TA11\n2610!7.= 5: .-49._9-!_(-$31($-_1_9XGHKP_HAAQDIKCSEXEE_ASQD__J_B_BDWFFKEABED IN FOLLOWING POSITIONS\n51 17,352N 002 56,610E\n51 17,281N 002 56,553E\nSHIPPING IS REQUESTED NOT TO ANCHOR NOR FISH IN THE VICINITY\n\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Shipping is requested not to anchor nor fish in the vicinity",
      "2610!7. 5: .-49. 9-! (-$31($- 1 9xghkp haaqdikcsexee asqd j b bdwffkeabed in following positions"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 15,
    "heading": "2026-04-05 22:14:30 AREA: D",
    "published_at": "2026-04-05 22:14:30",
    "area": "D",
    "message_id": "D",
    "text": "ZCZC D\n_GT___4/361_2/1 -4 \nOOSTENDERADIO MSI 132/26\nVAARVB_R_B_L 12\n__N 002-56.78E DRIFTING \nSHIPPING IS REQUESTED TO REPORT SIGHTING \nTO OSTEND COASTGUARD\nNNNN",
    "clean_text": "ZCZC D\n_GT___4/361_2/1 -4\nOOSTENDERADIO MSI 132/26\nVAARVB_R_B_L 12\n__N 002-56.78E DRIFTING\nSHIPPING IS REQUESTED TO REPORT SIGHTING\nTO OSTEND COASTGUARD\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. Readable text says: N 002-56.78e drifting. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "N 002-56.78e drifting",
      "Shipping is requested to report sighting",
      "To ostend coastguard"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 16,
    "heading": "2026-04-05 22:14:02 AREA: T",
    "published_at": "2026-04-05 22:14:02",
    "area": "T",
    "message_id": "TU",
    "text": "ZCZC TU\n___OQITQ UTC MAR\nHOOSTENDERADIO MSI 134/26\nTSS-WEST_I_DEK\nCM/ '5_._,:_ 6\n_=--_+\n75\n_+\n__75+\n___0N 002-39.57E\n\nNNNN",
    "clean_text": "ZCZC TU\n___OQITQ UTC MAR\nHOOSTENDERADIO MSI 134/26\nTSS-WEST_I_DEK\nCM/ '5_._,:_ 6\n_=--_+\n75\n_+\n__75+\n___0N 002-39.57E\n\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "U",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 19,
    "heading": "2026-04-05 22:11:29 AREA: T",
    "published_at": "2026-04-05 22:11:29",
    "area": "T",
    "message_id": "TA27",
    "text": "ZCZC TA27\n__++*_02062!+._*!_X_MHKQBNBX_VPVAOSGOKCTECTLMJ 5 51-27.16N 002-42.65E\nSHIPPXGP\nG REQTNOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THIS OBJECT.\nNNNN",
    "clean_text": "ZCZC TA27\n__++*_02062!+._*!_X_MHKQBNBX_VPVAOSGOKCTECTLMJ 5 51-27.16N 002-42.65E\nSHIPPXGP\nG REQTNOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THIS OBJECT.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions near 51-27.16N 002-42.65E, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "G reqtnot to anchor nor to fish in a radius of 500 meter around this object",
      "Shippxgp"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 20,
    "heading": "2026-04-05 22:10:17 AREA: T",
    "published_at": "2026-04-05 22:10:17",
    "area": "T",
    "message_id": "TE10",
    "text": "ZCZC TE10\n051910 UTC APR\nOOSTENDERADIO WX 10/26\nTHAMES:\n_7.__._20_6._+._6)__59.94492._+6!_DOVER:\nW 4-5, _$3:4 59 =4_ _1-2 TO_ZWXZUM_ZXFOS\nWN_V1-2 TOMORROW MORNING.\nALL REGIO_S:\nTHIS EVENING VRB CLOUDIN__N_WITH AMOD D_RINJ SH. TONIGHT AND TOMO_ MORNING MOD VIS ALONG THE CONTINENTA\nVCOAST.\n\nNNNN",
    "clean_text": "ZCZC TE10\n051910 UTC APR\nOOSTENDERADIO WX 10/26\nTHAMES:\n_7.__._20_6._+._6)__59.94492._+6!_DOVER:\nW 4-5, _$3:4 59 =4_ _1-2 TO_ZWXZUM_ZXFOS\nWN_V1-2 TOMORROW MORNING.\nALL REGIO_S:\nTHIS EVENING VRB CLOUDIN__N_WITH AMOD D_RINJ SH. TONIGHT AND TOMO_ MORNING MOD VIS ALONG THE CONTINENTA\nVCOAST.\n\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Belgium - Belgian coast and southern North Sea. Readable text says: This evening vrb cloudin n with amod d rinj sh. tonight and tomo morning mod vis along the continenta. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "This evening vrb cloudin n with amod d rinj sh. tonight and tomo morning mod vis along the continenta",
      "Wn v1-2 tomorrow morning",
      "All regio s"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 22,
    "heading": "2026-04-05 22:06:55 AREA: S",
    "published_at": "2026-04-05 22:06:55",
    "area": "S",
    "message_id": "SA75",
    "text": "ZCZC SA75\nNCC-HAMBURG\n2:___MG_HXM_Y_\n_NAV. WARN. NO_BM FPONGPJHMYFJFMFJSWJ_BGQCF_H_ 'JUIST-N'  LIGHTBUOY  53-44N  006-55E MISSING.\nNNNN",
    "clean_text": "ZCZC SA75\nNCC-HAMBURG\n2:___MG_HXM_Y_\n_NAV. WARN. NO_BM FPONGPJHMYFJFMFJSWJ_BGQCF_H_ 'JUIST-N' LIGHTBUOY 53-44N 006-55E MISSING.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Nav. warn. no bm fpongpjhmyfjfmfjswj bgqcf h 'juist-n' lightbuoy 53-44n 006-55e missing. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Nav. warn. no bm fpongpjhmyfjfmfjswj bgqcf h 'juist-n' lightbuoy 53-44n 006-55e missing",
      "Ncc-hamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 23,
    "heading": "2026-04-05 22:06:17 AREA: S",
    "published_at": "2026-04-05 22:06:17",
    "area": "S",
    "message_id": "SA79",
    "text": "ZCZC SA79\nNCC-H_LCY_ON\nP_F__MG_HXM_KM_AV. WARN. NO. 187\nGERMAN BIGHT.\nOFFSHORE WINDPARK 'NORDSEE OST'.\n5 SM LIGHTING INOPERATIVE ACROSS THE ENTIRE WIND FARM.\nNNNN",
    "clean_text": "ZCZC SA79\nNCC-H_LCY_ON\nP_F__MG_HXM_KM_AV. WARN. NO. 187\nGERMAN BIGHT.\nOFFSHORE WINDPARK 'NORDSEE OST'.\n5 SM LIGHTING INOPERATIVE ACROSS THE ENTIRE WIND FARM.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "GERMAN BIGHT"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: 5 sm lighting inoperative across the entire wind farm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "5 sm lighting inoperative across the entire wind farm",
      "German bight",
      "Offshore windpark 'nordsee ost'"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 29,
    "heading": "2026-04-05 22:01:31 AREA: S",
    "published_at": "2026-04-05 22:01:31",
    "area": "S",
    "message_id": "SA89",
    "text": "ZCZC SA89\nNCC-HAMBURG\n051500 UTC APR 26\nNAV. WARN. NO. 201\nNAV. WARN. NO. 200 CANCELLED.\nNNNN",
    "clean_text": "ZCZC SA89\nNCC-HAMBURG\n051500 UTC APR 26\nNAV. WARN. NO. 201\nNAV. WARN. NO. 200 CANCELLED.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Nav. warn. no. 201.",
    "decoded_highlights": [
      "Nav. warn. no. 201",
      "Nav. warn. no. 200 cancelled",
      "Ncc-hamburg"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 30,
    "heading": "2026-04-05 21:50:32 AREA: P",
    "published_at": "2026-04-05 21:50:32",
    "area": "P",
    "message_id": "PB50",
    "text": "ZCZC PB50\n051818 UTC APR 26\nGALEWARNING, 05 APR 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMLP__THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC PB50\n051818 UTC APR 26\nGALEWARNING, 05 APR 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMLP__THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, 05 apr 18:09 utc.",
    "decoded_highlights": [
      "Galewarning, 05 apr 18:09 utc",
      "No warning",
      "End of galewarning"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 31,
    "heading": "2026-04-05 21:40:14 AREA: Q",
    "published_at": "2026-04-05 21:40:14",
    "area": "Q",
    "message_id": "QA05",
    "text": "ZCZC QA05\n05_'__.____.XM\n_SPLIT RADIO\n\nNAVIGATIONAL WNG9\n_/'1.: 67/2026\n\nNORTHER_TIC - PULA PORT\nCHART: 100-16\n\nPULA PZZ\n\nMMVLY_NCE_BHHN_=3 $3=8:3 8, =8:8,856____,N_T ON:_,:_948,_ -,$ 95_34 -:58(8583' 8: 150 METERS RADIUS FROM_POSITION PROHIBITED.\n\n\n_9,,8887+:+: 1392\n\n051840 UTC APRVQ__ TJ__F_MYWFZONON_PHDPYMLCSSPHFM_ZYM_YF_FM_FJJCPWMLJO_ MZYFVM_DA_A_AT_K_O_PYMJ_SF_\nZM__TYTUUEM_HM_ CM __9,_,\n_6.26!_!/._+*_.+_\n___+*_'4.+\n06_*-.\n\n2. SYNOPSIS:\nRIDGE OF HIGH STRETCHING OVER BME\n_E NEXT 24 HO_S VALID UNTIL 06/04/2026 AT 1700 UTC\n\nN-ERN ADRIATIC:\n_UOR SW/N_MWF_M_Y KML_ \nSEA 1-2.\nVIS 10-20 KM, POSSVLESS THEN 1 KM DUE TO FOG, MOSTLY OVERNIGHT.\nMOSTLY CLEAR, LOC MOD CLOUDINESS.\n\nCEN_/NW WIND_4-14, AT FIRST UP TO 18 KT. \nSEA 12,_STILL TODAY LOC 3.\nVIS 10-20 KM.\n __+*_-_4.\n\nS-ERN ADRIATIC:\nSW/NW WIND 4-14, AT FIRST ON FAR S TO 18 KT.\nSTA 1-2, STILL TODAY LOC 3.\n/_!*_\n)6 :)3-4.NNNN",
    "clean_text": "ZCZC QA05\n05_'__.____.XM\n_SPLIT RADIO\n\nNAVIGATIONAL WNG9\n_/'1.: 67/2026\n\nNORTHER_TIC - PULA PORT\nCHART: 100-16\n\nPULA PZZ\n\nMMVLY_NCE_BHHN_=3 $3=8:3 8, =8:8,856____,N_T ON:_,:_948,_ -,$ 95_34 -:58(8583' 8: 150 METERS RADIUS FROM_POSITION PROHIBITED.\n\n_9,,8887+:+: 1392\n\n051840 UTC APRVQ__ TJ__F_MYWFZONON_PHDPYMLCSSPHFM_ZYM_YF_FM_FJJCPWMLJO_ MZYFVM_DA_A_AT_K_O_PYMJ_SF_\nZM__TYTUUEM_HM_ CM __9,_,\n_6.26!_!/._+*_.+_\n___+*_'4.+\n06_*-.\n\n2. SYNOPSIS:\nRIDGE OF HIGH STRETCHING OVER BME\n_E NEXT 24 HO_S VALID UNTIL 06/04/2026 AT 1700 UTC\n\nN-ERN ADRIATIC:\n_UOR SW/N_MWF_M_Y KML_\nSEA 1-2.\nVIS 10-20 KM, POSSVLESS THEN 1 KM DUE TO FOG, MOSTLY OVERNIGHT.\nMOSTLY CLEAR, LOC MOD CLOUDINESS.\n\nCEN_/NW WIND_4-14, AT FIRST UP TO 18 KT.\nSEA 12,_STILL TODAY LOC 3.\nVIS 10-20 KM.\n__+*_-_4.\n\nS-ERN ADRIATIC:\nSW/NW WIND 4-14, AT FIRST ON FAR S TO 18 KT.\nSTA 1-2, STILL TODAY LOC 3.\n/_!*_\n)6 :)3-4.NNNN",
    "resolved_station_name": "Split",
    "resolved_country": "Croatia",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "SPLIT RADIO"
    ],
    "display_region_heading": "Croatia - Adriatic Sea",
    "display_region_label": "Split, Croatia",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Croatia - Adriatic Sea. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Vis 10-20 km, possvless then 1 km due to fog, mostly overnight",
      "E next 24 ho s valid until 06/04/2026 at 1700 utc",
      "Sw/nw wind 4-14, at first on far s to 18 kt"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 33,
    "heading": "2026-04-05 21:31:48 AREA: P",
    "published_at": "2026-04-05 21:31:48",
    "area": "P",
    "message_id": "PA99",
    "text": "ZCZC PA99\n011714 UTC APRM\n_MSI 106/26\nWINDFARM HOLLANDSE KUST ZUID\nYELLOW SPECIAL MARK LIGHT BUOYS FL(5) Y20S\nESTABLISHED IN THE FOLLOWING POSITIONS\nMT-HKZ 3 52-10,4420N 003-56,3420E\nMT-HKZ 4 52-10,3910N 003-56,4450E..\n_._\n,-2'6!:!!_+:+: 0-26\n260848 UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1          53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1         53-30N 006-14E FOGHORN INOPERATIVE\nK6-PC            53-42N 003-52E FOGHORN INOPERATIVE\nK14-FB-1       53-11N 003-06_0.:'!_9,_FA-1         53-34N 003-18E UNLIT\nCACPSM_JFM_ZPT_NNNN",
    "clean_text": "ZCZC PA99\n011714 UTC APRM\n_MSI 106/26\nWINDFARM HOLLANDSE KUST ZUID\nYELLOW SPECIAL MARK LIGHT BUOYS FL(5) Y20S\nESTABLISHED IN THE FOLLOWING POSITIONS\nMT-HKZ 3 52-10,4420N 003-56,3420E\nMT-HKZ 4 52-10,3910N 003-56,4450E..\n_._\n,-2'6!:!!_+:+: 0-26\n260848 UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1 53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1 53-30N 006-14E FOGHORN INOPERATIVE\nK6-PC 53-42N 003-52E FOGHORN INOPERATIVE\nK14-FB-1 53-11N 003-06_0.:'!_9,_FA-1 53-34N 003-18E UNLIT\nCACPSM_JFM_ZPT_NNNN",
    "resolved_station_name": "Netherlands Coastguard Radio",
    "resolved_country": "Netherlands",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Dutch EEZ and southern North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "NORTH SEA"
    ],
    "display_region_heading": "Netherlands - Dutch EEZ and southern North Sea",
    "display_region_label": "Netherlands Coastguard Radio, Netherlands",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Netherlands - Dutch EEZ and southern North Sea. Readable text reports an aid-to-navigation fault near 52-10.4420N 003-56.3420E; 52-10.3910N 003-56.4450E.",
    "decoded_highlights": [
      "N7-fa-1 53-30n 006-14e foghorn inoperative",
      "K6-pc 53-42n 003-52e foghorn inoperative",
      "Yellow special mark light buoys fl(5) y20s"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 34,
    "heading": "2026-04-05 21:30:17 AREA: P",
    "published_at": "2026-04-05 21:30:17",
    "area": "P",
    "message_id": "PB49",
    "text": "ZCZC PB49\n051638 UTC APR 26\nGALEWARNING, 05 APR 16:31 UTC.\nDOGGER. GERMAN BIGHT_ HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC PB49\n051638 UTC APR 26\nGALEWARNING, 05 APR 16:31 UTC.\nDOGGER. GERMAN BIGHT_ HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, 05 apr 16:31 utc.",
    "decoded_highlights": [
      "Galewarning, 05 apr 16:31 utc",
      "No warning",
      "End of galewarning"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 36,
    "heading": "2026-04-05 20:07:06 AREA: T",
    "published_at": "2026-04-05 20:07:06",
    "area": "T",
    "message_id": "",
    "text": "ZCZ_22__26\nTYNE.\n_SDHD__JJDZYPMTURBIM\n_\n_DX_Z__ZBZA_Z__CB_V_Z____ZCZC",
    "clean_text": "ZCZ_22__26\nTYNE.\n_SDHD__JJDZYPMTURBIM\n_\n_DX_Z__ZBZA_Z__CB_V_Z____ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 37,
    "heading": "2026-04-05 19:51:46 AREA: P",
    "published_at": "2026-04-05 19:51:46",
    "area": "P",
    "message_id": "PB48",
    "text": "ZCZC PB48\n051638 UTC APR 26\nGALEWARNING$.HM__YM\n _XP MG_H_\nDOGGER. GERMAN BIGHT. HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNIN__M\n\nAND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC PB48\n051638 UTC APR 26\nGALEWARNING$.HM__YM\n_XP MG_H_\nDOGGER. GERMAN BIGHT. HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNIN__M\n\nAND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning$.hm ym. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Galewarning$.hm ym",
      "And of galewarning",
      "Dogger. german bight. humber"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 38,
    "heading": "2026-04-05 18:52:49 AREA: S",
    "published_at": "2026-04-05 18:52:49",
    "area": "S",
    "message_id": "SB51",
    "text": "ZCZC SB51\n_051551 !,-=53/-/__._74_ (NCC)\n_\n\n\n\n_\n_MAN BIGHT:\n0_O WARNING9\nNNNN",
    "clean_text": "ZCZC SB51\n_051551 !,-=53/-/__._74_ (NCC)\n_\n\n_\n_MAN BIGHT:\n0_O WARNING9\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code S. Readable text says: 0 o warning9. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "0 o warning9",
      "Man bight"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 39,
    "heading": "2026-04-05 18:07:56 AREA: S",
    "published_at": "2026-04-05 18:07:56",
    "area": "S",
    "message_id": "SA34",
    "text": "ZCZC SA34\nNC_VXHAMZUS LIGHT-VESSEL \n4-10N _PHE_YQXYKE\nYZ_BR_Y _FZPF O_W_O___ZTOOOOOOOOOOOOOOOOOZZZZZZZOOOZOOOOO_U__CKVA_A_VJP\nF__N\n\n _MG__0_0\n$\n6_+61__$._+.*+:_$_0*_.)+:_._.._*$!__/_ .9$34$53 =8'8_8)856.\nSEA: (!84'5 4 ME_E_.\nNNNN",
    "clean_text": "ZCZC SA34\nNC_VXHAMZUS LIGHT-VESSEL\n4-10N _PHE_YQXYKE\nYZ_BR_Y _FZPF O_W_O___ZTOOOOOOOOOOOOOOOOOZZZZZZZOOOZOOOOO_U__CKVA_A_VJP\nF__N\n\n_MG__0_0\n$\n6_+61__$._+.*+:_$_0*_.)+:_._.._*$!__/_ .9$34$53 =8'8_8)856.\nSEA: (!84'5 4 ME_E_.\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Nc vxhamzus light-vessel. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Nc vxhamzus light-vessel"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 41,
    "heading": "2026-04-05 18:04:13 AREA: S",
    "published_at": "2026-04-05 18:04:13",
    "area": "S",
    "message_id": "SA82",
    "text": "ZCZC SA82\nNCC-NAMB_RGB\nQ_Q_ODOFFSHORE 1'.\n0!'_4=36 9034-9_6ZCZC",
    "clean_text": "ZCZC SA82\nNCC-NAMB_RGB\nQ_Q_ODOFFSHORE 1'.\n0!'_4=36 9034-9_6ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Ncc-namb rgb. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Ncc-namb rgb"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 42,
    "heading": "2026-04-05 18:03:20 AREA: T",
    "published_at": "2026-04-05 18:03:20",
    "area": "T",
    "message_id": "",
    "text": "ZCZCESABIE_\n_NCC-MAMBURG\n02_420 UT_ APNTN_5_AY\n_N. 7,_. 194\nGERMAN BI_5_ PEISSJ BDNK_\n_'33(_'6,34__8)856 $7_8,_ 90_$.\nNNNN",
    "clean_text": "ZCZCESABIE_\n_NCC-MAMBURG\n02_420 UT_ APNTN_5_AY\n_N. 7,_. 194\nGERMAN BI_5_ PEISSJ BDNK_\n_'33(_'6,34__8)856 $7_8,_ 90_$.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Zczcesabie. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Zczcesabie",
      "Ncc-mamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 44,
    "heading": "2026-04-05 17:34:47 AREA: P",
    "published_at": "2026-04-05 17:34:47",
    "area": "P",
    "message_id": "PA41",
    "text": "ZCZC PA41\n290609 UTCM_Y_\n\nMSI 103/26\nTSS NORTH FRIESLAND\nUNDERWATER OBSTRUCTION REPORTED\nIN VICINITY  OF A LINE JOINING \n54-07.0N 004-39.5E AND 54-03.5N 004-39.6E.\nDANGEROUS TO FISHERY.\nCANCEL MSI 102/26\nNNNN",
    "clean_text": "ZCZC PA41\n290609 UTCM_Y_\n\nMSI 103/26\nTSS NORTH FRIESLAND\nUNDERWATER OBSTRUCTION REPORTED\nIN VICINITY OF A LINE JOINING\n54-07.0N 004-39.5E AND 54-03.5N 004-39.6E.\nDANGEROUS TO FISHERY.\nCANCEL MSI 102/26\nNNNN",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code P. Readable text says: Dangerous to fishery.",
    "decoded_highlights": [
      "Dangerous to fishery",
      "In vicinity of a line joining",
      "Tss north friesland"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 45,
    "heading": "2026-04-05 17:34:16 AREA: P",
    "published_at": "2026-04-05 17:34:16",
    "area": "P",
    "message_id": "PA19",
    "text": "ZCZC PA19\n051128 UTC APR 26\nGALEWARNING, DTG 05 APR 11:21 UTC.\nGERMAN BIGHT.\nWEST 8.\nDOGGER.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nNNNN",
    "clean_text": "ZCZC PA19\n051128 UTC APR 26\nGALEWARNING, DTG 05 APR 11:21 UTC.\nGERMAN BIGHT.\nWEST 8.\nDOGGER.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, dtg 05 apr 11:21 utc.",
    "decoded_highlights": [
      "Galewarning, dtg 05 apr 11:21 utc",
      "No warning",
      "German bight"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  }
]