CINXE.COM

Help and contact | Transport for Wales

<!DOCTYPE html> <html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# "> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("http://web.archive.org/web"); __wm.wombat("https://tfw.wales/help-and-contact","20231101021102","http://web.archive.org/","web","/_static/", "1698804662"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"/><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"538476161",accountID:"3139283",trustKey:"3139283",xpid:"VwcEWFRbCxAFV1FQAgcCV1c=",licenseKey:"NRJS-34dae6faa52b003b8b9",applicationID:"530256513"};;/*! For license information please see nr-loader-spa-1.246.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={234:(e,t,r)=>{r.d(t,{P_:()=>g,Mt:()=>v,C5:()=>s,DL:()=>A,OP:()=>D,lF:()=>N,Yu:()=>x,Dg:()=>m,CX:()=>c,GE:()=>w,sU:()=>j});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}const u=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,sampling_rate:50,error_sampling_rate:50,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector=t+",[data-nr-mask]":null===t?e.mask_selector=t:(0,l.Z)("An invalid session_replay.mask_selector was provided and will not be used",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},h={},p="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(p);if(!h[e])throw new Error("Configuration for ".concat(e," was never set"));return h[e]}function m(e,t){if(!e)throw new Error(p);h[e]=(0,i.D)(t,f()),(0,n.Qy)(e,h[e],"config")}function v(e,t){if(!e)throw new Error(p);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const b={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},y={};function A(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!y[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return y[e]}function w(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");y[e]=(0,i.D)(t,b),(0,n.Qy)(e,y[e],"loader_config")}const x=(0,n.mF)().o;var E=r(385),_=r(6818);const T={buildEnv:_.Re,customTransaction:void 0,disabled:!1,distMethod:_.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:Math.floor(E._A?.performance?.timeOrigin||E._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:""+E._A.location,ptid:void 0,releaseIds:{},session:void 0,xhrWrappable:"function"==typeof E._A.XMLHttpRequest?.prototype?.addEventListener,version:_.q4,denyList:void 0},S={};function D(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!S[e])throw new Error("Runtime for ".concat(e," was never set"));return S[e]}function j(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");S[e]=(0,i.D)(t,T),(0,n.Qy)(e,S[e],"runtime")}function N(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=>{r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,lF:()=>a,q4:()=>n});const n="1.246.0",i="PROD",o="CDN",a="2.0.0-alpha.11"},385:(e,t,r)=>{r.d(t,{FN:()=>s,IF:()=>d,Nk:()=>f,Tt:()=>c,_A:()=>o,cv:()=>h,iS:()=>a,il:()=>n,ux:()=>u,v6:()=>i,w1:()=>l});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=Boolean("hidden"===o?.document?.visibilityState),s=""+o?.location,c=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),l=Boolean(n&&window.document.documentMode),f=!!o.navigator?.sendBeacon,h=Math.floor(o?.performance?.timeOrigin||o?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)l(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}r.every((e=>{let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((t=>{let[r]=t;s[e].delete(r),a(r)})))}function l(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=>{r.d(t,{A:()=>c,ee:()=>u});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c="nr@context:".concat(s.a),u=function e(t,r){var n={},s={},d={},f=!1;try{f=16===r.length&&(0,o.OP)(r).isolatedBacklog}catch(e){}var h={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=p(n),c=m(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var f=b()[s[e]];f&&f.push([h,e,r,a]);return a},get:v,listeners:m,context:p,buffer:function(e,t){const r=b();if(t=t||"feature",h.aborted)return;Object.entries(e||{}).forEach((e=>{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:l,aborted:!1,isBuffering:function(e){return!!b()[s[e]]},debugId:r,backlog:f?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return h;function p(e){return e&&e instanceof a?e:e?(0,i.X)(e,c,(()=>new a(c))):new a(c)}function g(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(h,t)}function b(){return h.backlog}}(void 0,"globalEE"),d=(0,n.fP)();function l(){u.aborted=!0,u.backlog={}}d.ee||(d.ee=u)},5546:(e,t,r)=>{r.d(t,{E:()=>n,p:()=>i});var n=r(8325).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=>{r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s<e;s++)a.push(o(r,++i).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},7056:(e,t,r)=>{r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>i});var n=r(385);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n._A?.location?.protocol&&t.host===n._A?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(8325),i=r(5546),o=r(3325);const a={stn:[o.D.sessionTrace],err:[o.D.jserrors,o.D.metrics],ins:[o.D.pageAction],spa:[o.D.spa],sr:[o.D.sessionReplay,o.D.sessionTrace]},s=new Set;function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(s.has(t)||Object.entries(e).forEach((e=>{let[t,n]=e;a[t]?a[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n)})),Object.keys(a).forEach((e=>{void 0===u[e]&&(a[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),s.add(t))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(8325);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>b,u5:()=>D,QU:()=>C,_L:()=>I,Gm:()=>H,Lg:()=>L,BV:()=>G,Kf:()=>K});var n=r(8325),i=r(3117);const o="nr@original:".concat(i.a);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}var l=r(2210),f=r(385);const h={},p=f._A.XMLHttpRequest,g="addEventListener",m="removeEventListener",v="nr@wrapped:".concat(n.A);function b(e){var t=function(e){return(e||n.ee).get("events")}(e);if(h[t.debugId]++)return t;h[t.debugId]=1;var r=c(t,!0);function i(e){r.inPlace(e,[g,m],"-",o)}function o(e,t){return e[1]}return"getPrototypeOf"in Object&&(f.il&&y(document,i),y(f._A,i),y(p.prototype,i)),t.on(g+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,l.X)(n,v,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(m+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function y(e,t){let r=e;for(;"object"==typeof r&&!Object.prototype.hasOwnProperty.call(r,g);)r=Object.getPrototypeOf(r);for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];r&&t(r,...i)}var A="fetch-",w=A+"body-",x=["arrayBuffer","blob","json","text","formData"],E=f._A.Request,_=f._A.Response,T="prototype";const S={};function D(e){const t=function(e){return(e||n.ee).get("fetch")}(e);if(!(E&&_&&f._A.fetch))return t;if(S[t.debugId]++)return t;function r(e,r,i){var o=e[r];"function"==typeof o&&(e[r]=function(){var e,r=[...arguments],a={};t.emit(i+"before-start",[r],a),a[n.A]&&a[n.A].dt&&(e=a[n.A].dt);var s=o.apply(this,r);return t.emit(i+"start",[r,e],s),s.then((function(e){return t.emit(i+"end",[null,e],s),e}),(function(e){throw t.emit(i+"end",[e],s),e}))})}return S[t.debugId]=1,x.forEach((e=>{r(E[T],e,w),r(_[T],e,w)})),r(f._A,"fetch",A),t.on(A+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(A+"done",[null,r],n)}else t.emit(A+"done",[e],n)})),t}const j={},N=["pushState","replaceState"];function C(e){const t=function(e){return(e||n.ee).get("history")}(e);return!f.il||j[t.debugId]++||(j[t.debugId]=1,c(t).inPlace(window.history,N,"-")),t}var O=r(3239);const P={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!f.il||P[t.debugId])return t;P[t.debugId]=!0;var r=c(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function s(e,t){if(!e)return t;const r=e.match(a),n=r[1];return s(r[3],t[n])}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,c=a.match(i),c?c[1]:null);var a,c;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:s(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,O.m$)(!1)),e.removeEventListener("error",f,(0,O.m$)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,O.m$)(!1)),e.removeEventListener("error",f,(0,O.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,O.m$)(!1)),e.addEventListener("error",f,(0,O.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const k={};function H(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!f.il||k[t.debugId])return t;k[t.debugId]=!0;var r=c(t),i=f._A.MutationObserver;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function L(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=t.context,i=c(t),a=f._A.Promise;return a&&function(){function e(r){var n=t.context(),o=i(r,"executor-",n,null,!1);const s=Reflect.construct(a,[o],e);return t.context(s).getCtx=function(){return n},s}f._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,o=r(e);o.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];s[0]=i(s[0],"cb-",o,null,!1),s[1]=i(s[1],"cb-",o,null,!1);const u=n.apply(this,s);return o.nextPromise=u,t.emit("propagate",[e,!0],u,!1,!1),u},a.prototype.then[o]=n,t.on("executor-start",(function(e){e[0]=i(e[0],"resolve-",this,null,!1),e[1]=i(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const M={},F="setTimeout",B="setInterval",U="clearTimeout",Z="-start",V="-",q=[F,"setImmediate",B,U,"clearImmediate"];function G(e){const t=function(e){return(e||n.ee).get("timer")}(e);if(M[t.debugId]++)return t;M[t.debugId]=1;var r=c(t);return r.inPlace(f._A,q.slice(0,2),F+V),r.inPlace(f._A,q.slice(2,3),B+V),r.inPlace(f._A,q.slice(3),U+V),t.on(B+Z,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(F+Z,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}var W=r(50);const X={},Q=["open","send"];function K(e){var t=e||n.ee;const r=function(e){return(e||n.ee).get("xhr")}(t);if(X[r.debugId]++)return r;X[r.debugId]=1,b(t);var i=c(r),o=f._A.XMLHttpRequest,a=f._A.MutationObserver,s=f._A.Promise,u=f._A.setInterval,d="readystatechange",l=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],h=[],p=f._A.XMLHttpRequest=function(e){const t=new o(e),n=r.context(t);try{r.emit("new-xhr",[t],n),t.addEventListener(d,(a=n,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,l,"fn-",w)}),(0,O.m$)(!1))}catch(e){(0,W.Z)("An error occurred while intercepting XHR",e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function g(e,t){i.inPlace(t,["onreadystatechange"],"fn-",w)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,Q,"-xhr-",w),r.on("send-xhr-start",(function(e,t){g(e,t),function(e){h.push(e),a&&(m?m.then(A):u?u(A):(v=-v,y.data=v))}(t)})),r.on("open-xhr-start",g),a){var m=s&&s.resolve();if(!u&&!s){var v=1,y=document.createTextNode(v);new a(A).observe(y,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e<h.length;e++)g(0,h[e]);h.length&&(h=[])}function w(e,t){return t}return r}},7825:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.jserrors},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.sessionReplay},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>x,CB_END:()=>E,CB_START:()=>u,END:()=>w,FEATURE_NAME:()=>i,FETCH:()=>T,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>g,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>f,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>p,JS_TIME:()=>_,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>l,SPA_NODE:()=>h,START:()=>A,originalSetTimeout:()=>y});var n=r(234);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,A="-start",w="-end",x="-body",E="cb"+w,_="jsTime",T="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>i});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},7530:(e,t,r)=>{r.d(t,{j:()=>b});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(7894),c=r(8e3),u=r(3960),d=r(385),l=r(50),f=r(3081),h=r(8632);function p(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var g=r(2587);const m=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let v=!1;function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},b=arguments.length>2?arguments[2]:void 0,y=arguments.length>3?arguments[3]:void 0,{init:A,info:w,loader_config:x,runtime:E={loaderType:b},exposed:_=!0}=t;const T=(0,h.gG)();w||(A=T.init,w=T.info,x=T.loader_config),(0,i.Dg)(e,A||{}),(0,i.GE)(e,x||{}),w.jsAttributes??={},d.v6&&(w.jsAttributes.isWorker=!0),(0,i.CX)(e,w);const S=(0,i.P_)(e),D=[w.beacon,w.errorBeacon];v||(v=!0,S.proxy.assets&&(m(S.proxy.assets),D.push(S.proxy.assets)),S.proxy.beacon&&D.push(S.proxy.beacon)),E.denyList=[...S.ajax.deny_list||[],...S.ajax.block_internal?D:[]],(0,i.sU)(e,E),p();const j=function(e,t){t||(0,c.R)(e,"api");const h={};var p=a.ee.get(e),g=p.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),w(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","addRelease"].forEach((e=>{h[e]=w(m,e,!0,"api")})),h.addPageAction=w(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=w(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://web.archive.org/web/20231101021102/http://custom.transaction")+t,w(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,l.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t,"> was provided."))}else(0,l.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,l.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return b("application.version",e,"setApplicationVersion",!1);(0,l.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},h.start=e=>{try{const t=e?"defined":"undefined";(0,o.p)(f.xS,["API/start/".concat(t,"/called")],void 0,n.D.metrics,p);const r=Object.values(n.D);if(void 0===e)e=r;else{if((e=Array.isArray(e)&&e.length?e:[e]).some((e=>!r.includes(e))))return(0,l.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(r));e.includes(n.D.pageViewEvent)||e.push(n.D.pageViewEvent)}e.forEach((e=>{p.emit("".concat(e,"-opt-in"))}))}catch(e){(0,l.Z)("An unexpected issue occurred",e)}},h.interaction=function(){return(new y).get()};var A=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,p),function(){if(g.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw g.emit("fn-err",[arguments,this,e],r),e}finally{g.emit("fn-end",[(0,s.z)()],r)}}}};function w(e,t,r,i){return function(){return(0,o.p)(f.xS,["API/"+t+"/called"],void 0,n.D.metrics,p),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,p),r?void 0:this}}function x(){r.e(111).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,l.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{A[e]=w(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(f.xS,["API/noticeError/called"],void 0,n.D.metrics,p),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,p)},d.il?(0,u.b)((()=>x()),!0):x(),h}(e,y);return(0,h.Qy)(e,j,"api"),(0,h.Qy)(e,_,"exposed"),(0,h.EZ)("activatedFeatures",g.T),j}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({111:"nr-spa",164:"nr-spa-compressor",433:"nr-spa-recorder"}[e]+"-1.246.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.246.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r),e[r]=[n];var f=(t,n)=>{s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="http://web.archive.org/web/20231101021102/https://js-agent.newrelic.com/",(()=>{var e={801:0,92:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.246.0.PROD"]=self["webpackChunk:NRBA-1.246.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{var e=i(50);class t{addPageAction(t,r){(0,e.Z)("Call to agent api addPageAction failed. The page action feature is not currently initialized.")}setPageViewName(t,r){(0,e.Z)("Call to agent api setPageViewName failed. The page view feature is not currently initialized.")}setCustomAttribute(t,r,n){(0,e.Z)("Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.")}noticeError(t,r){(0,e.Z)("Call to agent api noticeError failed. The js errors feature is not currently initialized.")}setUserId(t){(0,e.Z)("Call to agent api setUserId failed. The js errors feature is not currently initialized.")}setApplicationVersion(t){(0,e.Z)("Call to agent api setApplicationVersion failed. The agent is not currently initialized.")}setErrorHandler(t){(0,e.Z)("Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.")}finished(t){(0,e.Z)("Call to agent api finished failed. The page action feature is not currently initialized.")}addRelease(t,r){(0,e.Z)("Call to agent api addRelease failed. The js errors feature is not currently initialized.")}start(t){(0,e.Z)("Call to agent api addRelease failed. The agent is not currently initialized.")}}var r=i(3325),n=i(234);const o=Object.values(r.D);function a(e){const t={};return o.forEach((r=>{t[r]=function(e,t){return!1!==(0,n.Mt)(t,"".concat(e,".enabled"))}(r,e)})),t}var s=i(7530);var c=i(8e3),u=i(5938),d=i(3960),l=i(385);class f extends u.W{constructor(e,t,r){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=i,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,n.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto&&(0,c.R)(e,r)}importAggregator(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on("".concat(this.featureName,"-opt-in"),(()=>{(0,c.R)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));const r=l.il&&!0===(0,n.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let o;this.onAggregateImported=new Promise((e=>{o=e}));const a=async()=>{let n;try{if(r){const{setupAgentSession:e}=await i.e(111).then(i.bind(i,3228));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t)}try{if(!this.shouldImportAgg(this.featureName,n))return(0,c.L)(this.agentIdentifier,this.featureName),void o(!1);const{lazyFeatureLoader:e}=await i.e(111).then(i.bind(i,8582)),{Aggregate:r}=await e(this.featureName,"aggregate");this.featAggregate=new r(this.agentIdentifier,this.aggregator,t),o(!0)}catch(t){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),t),this.abortHandler?.(),(0,c.L)(this.agentIdentifier,this.featureName),o(!1)}};l.il?(0,d.b)((()=>a()),!0):a()}shouldImportAgg(e,t){return e!==r.D.sessionReplay||!!n.Yu.MO&&(!1!==(0,n.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!t?.isNew||!!t?.state.sessionReplayMode))}}var h=i(7633);class p extends f{static featureName=h.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,h.t,r),this.importAggregator()}}var g=i(1117),m=i(1284);class v extends g.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,m.D)(e,(function(e,r){t[e]=b(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,m.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=b(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=y(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=b(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=A(this.aggregatedData[r]),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function b(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=y(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function y(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function A(e){return"object"!=typeof e?[]:(0,m.D)(e,w)}function w(e,t){return t}var x=i(8632),E=i(4402),_=i(4351);var T=i(5546),S=i(7956),D=i(3239),j=i(7894),N=i(9251);class C extends f{static featureName=N.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,N.t,r),l.il&&((0,S.N)((()=>(0,T.p)("docHidden",[(0,j.z)()],void 0,N.t,this.ee)),!0),(0,D.bP)("pagehide",(()=>(0,T.p)("winPagehide",[(0,j.z)()],void 0,N.t,this.ee))),this.importAggregator())}}var O=i(3081);class P extends f{static featureName=O.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,O.t9,r),this.importAggregator()}}var R=i(6660);class I{constructor(e,t,r,n){this.name="UncaughtError",this.message=e,this.sourceURL=t,this.line=r,this.column=n}}class k extends f{static featureName=R.t;#e=new Set;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,R.t,n);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("fn-err",((e,t,n)=>{this.abortHandler&&!this.#e.has(n)&&(this.#e.add(n),(0,T.p)("err",[this.#t(n),(0,j.z)()],void 0,r.D.jserrors,this.ee))})),this.ee.on("internal-error",(e=>{this.abortHandler&&(0,T.p)("ierr",[this.#t(e),(0,j.z)(),!0],void 0,r.D.jserrors,this.ee)})),l._A.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,T.p)("err",[this.#r(e),(0,j.z)(),!1,{unhandledPromiseRejection:1}],void 0,r.D.jserrors,this.ee)}),(0,D.m$)(!1,this.removeOnAbort?.signal)),l._A.addEventListener("error",(e=>{this.abortHandler&&(this.#e.has(e.error)?this.#e.delete(e.error):(0,T.p)("err",[this.#n(e),(0,j.z)()],void 0,r.D.jserrors,this.ee))}),(0,D.m$)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#i,this.importAggregator()}#i(){this.removeOnAbort?.abort(),this.#e.clear(),this.abortHandler=void 0}#t(e){return e instanceof Error?e:void 0!==e?.message?new I(e.message,e.filename||e.sourceURL,e.lineno||e.line,e.colno||e.col):new I("string"==typeof e?e:(0,_.P)(e))}#r(e){let t="Unhandled Promise Rejection: ";if(e?.reason instanceof Error)try{return e.reason.message=t+e.reason.message,e.reason}catch(t){return e.reason}if(void 0===e.reason)return new I(t);const r=this.#t(e.reason);return r.message=t+r.message,r}#n(e){return e.error instanceof Error?e.error:new I(e.message,e.filename,e.lineno,e.colno)}}var H=i(2210);let z=1;const L="nr@id";function M(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===l._A?0:(0,H.X)(e,L,(function(){return z++}))}function F(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,_.P)(e).length}catch(e){return}}}var B=i(1214),U=i(7243);class Z{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,n.DL)(this.agentIdentifier);if(!t)return null;var r=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!r||!i)return null;var a=(0,E.M)(),s=(0,E.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,r,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,r,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof l._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,_.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,n.Mt)(this.agentIdentifier,"distributed_tracing")&&(r=(0,n.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var i=0;i<r.allowed_origins.length;i++){var o=(0,U.e)(r.allowed_origins[i]);if(e.hostname===o.hostname&&e.protocol===o.protocol&&e.port===o.port){t=!0;break}}return t}isDtEnabled(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var V=i(7825),q=["load","error","abort","timeout"],G=q.length,W=n.Yu.REQ,X=n.Yu.XHR;class Q extends f{static featureName=V.t;constructor(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,V.t,i),(0,n.OP)(e).xhrWrappable){this.dt=new Z(e),this.handler=(e,t,r,n)=>(0,T.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};l._A?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const n={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};K(n,t.name),this.handler("xhr",[n,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,r.D.ajax)}}))}catch(e){}(0,B.u5)(this.ee),(0,B.Kf)(this.ee),function(e,t,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,D.m$)(!1)),l.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,D.m$)(!1))}function s(e){this.params={method:e[0]},K(this,e[1]),this.metrics={}}function c(t,r){var i=(0,n.DL)(e);i.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(r.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(r.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&r.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function u(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=F(i);a&&(n.txSize=a)}this.startTime=(0,j.z)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<G;s++)r.addEventListener(q[s],this.listener,(0,D.m$)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function f(e,t){var r=""+M(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function h(e,t){var r=""+M(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function p(){this.endTime=(0,j.z)()}function g(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function m(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function v(e,t,r){t instanceof X&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,j.z)()))}function b(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,j.z)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&l.il&&(t=""+l._A.location.href):e[0]&&e[0].url?t=e[0].url:l._A?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,U.e)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=o.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,n)&&(this.dt=n);else{var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),s(i.headers,n)&&(this.dt=n),e.length>1?e[1]=i:e.push(i)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function A(e,t){this.params={},this.metrics={},this.startTime=(0,j.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof W?r=i.url:l._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),K(this,r);var o=(""+(i&&i instanceof W&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=F(n.body)||0}function w(e,t){var n;this.endTime=(0,j.z)(),this.params||(this.params={}),this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,j.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,r.D.ajax)}function x(e){var t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o<G;o++)e.removeEventListener(q[o],this.listener,!1);t.aborted||(n.duration=(0,j.z)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,i("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,r.D.ajax))}}function E(e,t){e.params.status=t.status;var r=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?F(e.response):"text"===r||""===r||void 0===r?F(e.responseText):void 0}(t,e.lastSize);if(r&&(e.metrics.rxSize=r),e.sameOrigin){var n=t.getResponseHeader("X-NewRelic-App-Data");n&&(e.params.cat=n.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",a),t.on("open-xhr-start",s),t.on("open-xhr-end",c),t.on("send-xhr-start",u),t.on("xhr-cb-time",d),t.on("xhr-load-added",f),t.on("xhr-load-removed",h),t.on("xhr-resolved",p),t.on("addEventListener-end",g),t.on("removeEventListener-end",m),t.on("fn-end",b),t.on("fetch-before-start",y),t.on("fetch-start",A),t.on("fn-start",v),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator()}}}function K(e,t){var r=(0,U.e)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Y=i(3614);const{BST_RESOURCE:J,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=Y;var se=i(7144);class ce extends f{static featureName=se.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,se.t,r),this.importAggregator()}}var ue=i(7836);const{FEATURE_NAME:de,START:le,END:fe,BODY:he,CB_END:pe,JS_TIME:ge,FETCH:me,FN_START:ve,CB_START:be,FN_END:ye}=ue;var Ae=i(4649);class we extends f{static featureName=Ae.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,Ae.t,r),this.importAggregator()}}new class extends t{constructor(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,E.ky)(16);super(),l._A?(this.agentIdentifier=r,this.sharedAggregator=new v({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),Object.assign(this,(0,s.j)(this.agentIdentifier,t,t.loaderType||"agent")),this.run()):(0,e.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,n.C5)(this.agentIdentifier),init:(0,n.P_)(this.agentIdentifier),loader_config:(0,n.DL)(this.agentIdentifier),runtime:(0,n.OP)(this.agentIdentifier)}}run(){const t="features";try{const n=a(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((e,t)=>r.p[e.featureName]-r.p[t.featureName])),i.forEach((t=>{if(n[t.featureName]||t.featureName===r.D.pageViewEvent){const i=function(e){switch(e){case r.D.ajax:return[r.D.jserrors];case r.D.sessionTrace:return[r.D.ajax,r.D.pageViewEvent];case r.D.sessionReplay:return[r.D.sessionTrace];case r.D.pageViewTiming:return[r.D.pageViewEvent];default:return[]}}(t.featureName);i.every((e=>n[e]))||(0,e.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,_.P)(i),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,x.Qy)(this.agentIdentifier,this.features,t)}catch(r){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",r);for(const e in this.features)this.features[e].abortHandler?.();const n=(0,x.fP)();return delete n.initializedAgents[this.agentIdentifier]?.api,delete n.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,n.ee?.abort(),delete n.ee?.get(this.agentIdentifier),!1}}addToTrace(t){(0,e.Z)("Call to agent api addToTrace failed. The session trace feature is not currently initialized.")}setCurrentRouteName(t){(0,e.Z)("Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.")}interaction(){(0,e.Z)("Call to agent api interaction failed. The spa feature is not currently initialized.")}}({features:[Q,p,C,class extends f{static featureName=ne;constructor(e,t){if(super(e,t,ne,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;const n=this.ee;let i;(0,B.QU)(n),this.eventsEE=(0,B.em)(n),this.eventsEE.on(oe,(function(e,t){this.bstStart=(0,j.z)()})),this.eventsEE.on(ie,(function(e,t){(0,T.p)("bst",[e[0],t,this.bstStart,(0,j.z)()],void 0,r.D.sessionTrace,n)})),n.on(ae+te,(function(e){this.time=(0,j.z)(),this.startPath=location.pathname+location.hash})),n.on(ae+re,(function(e){(0,T.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,r.D.sessionTrace,n)}));try{i=new PerformanceObserver((e=>{const t=e.getEntries();(0,T.p)(J,[t],void 0,r.D.sessionTrace,n)})),i.observe({type:ee,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},ce,P,we,k,class extends f{static featureName=de;constructor(e,t){if(super(e,t,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;if(!(0,n.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,i=0;const o=this.ee.get("tracer"),a=(0,B._L)(this.ee),s=(0,B.Lg)(this.ee),c=(0,B.BV)(this.ee),u=(0,B.Kf)(this.ee),d=this.ee.get("events"),f=(0,B.u5)(this.ee),h=(0,B.QU)(this.ee),p=(0,B.Gm)(this.ee);function g(e,t){h.emit("newURL",[""+window.location,t])}function m(){i++,r=window.location.hash,this[ve]=(0,j.z)()}function v(){i--,window.location.hash!==r&&g(0,!0);var e=(0,j.z)();this[ge]=~~this[ge]+e-this[ve],this[ye]=e}function b(e,t){e.on(t,(function(){this[t]=(0,j.z)()}))}this.ee.on(ve,m),s.on(be,m),a.on(be,m),this.ee.on(ye,v),s.on(pe,v),a.on(pe,v),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),d.buffer([ve],this.featureName),c.buffer(["setTimeout"+fe,"clearTimeout"+le,ve],this.featureName),u.buffer([ve,"new-xhr","send-xhr"+le],this.featureName),f.buffer([me+le,me+"-done",me+he+le,me+he+fe],this.featureName),h.buffer(["newURL"],this.featureName),p.buffer([ve],this.featureName),s.buffer(["propagate",be,pe,"executor-err","resolve"+le],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(f,me+le),b(f,me+"-done"),b(a,"new-jsonp"),b(a,"jsonp-end"),b(a,"cb-start"),h.on("pushState-end",g),h.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,D.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,D.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,i>1)}),(0,D.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#i,this.importAggregator()}#i(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})()})();</script> <link rel="canonical" href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact"/> <meta property="og:url" content="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact"/> <meta property="og:title" content="Help and contact | Transport for Wales"/> <meta property="og:description" content="Transport for Wales | Buy Cheap Train Tickets and Check Train Times"/> <meta property="og:image" content="http://web.archive.org/web/20231101021102im_/https://tfw.wales/sites/default/files/2021-06/transport-for-wales-og-social.jpg"/> <meta name="twitter:title" content="Help and contact | Transport for Wales"/> <meta name="twitter:url" content="http://web.archive.org/web/20231101021102im_/https://tfw.wales/help-and-contact"/> <meta name="MobileOptimized" content="width"/> <meta name="HandheldFriendly" content="true"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="icon" href="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/tfw-favicon-32x32.png" type="image/png"/> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact"/> <link rel="alternate" hreflang="cy" href="http://web.archive.org/web/20231101021102/https://trc.cymru/cymorth-a-chysylltu"/> <script src="/web/20231101021102js_/https://tfw.wales/sites/default/files/google_tag/ga4/google_tag.script.js?s31ei0" defer id="cookies_gtag" type="text/plain"></script> <title>Help and contact | Transport for Wales</title> <link rel="stylesheet" media="all" href="/web/20231101021102cs_/https://tfw.wales/sites/default/files/css/css_ghxr3OqJ6dJY1Sya6471kEiu3gCAnicnXKU4qdyY-sQ.css"/> <link rel="stylesheet" media="all" href="/web/20231101021102cs_/https://tfw.wales/sites/default/files/css/css_xxAILzWx6V7hs6pOclPy6qiQclcUU4W9DwVGnfO4xyU.css"/> <link rel="stylesheet" media="print" href="/web/20231101021102cs_/https://tfw.wales/sites/default/files/css/css_XAfnNXLLoW4-SoSjyDkgmUXbsrEkSbaYpsFJepf5nLc.css"/> <link rel="stylesheet" media="all" href="http://web.archive.org/web/20231101021102cs_/https://dk5vcnqsuunkv.cloudfront.net/dist/build/tailwind.css"/> </head> <body class="page--page"> <a href="#main-content" class="visually-hidden focusable"> Skip to main content </a> <noscript><iframe src="http://web.archive.org/web/20231101021102if_/https://www.googletagmanager.com/ns.html?id=GTM-T34X6QX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <header id="siteHeader" class="site-header"> <div class="mdc-layout-grid site-header__compass-bar"> <div class="mdc-layout-grid__inner"> <div class="mdc-layout-grid__cell--span-12 site-header__nav-inner"> <a class="mobile-nav-toggle" href="#"> <object style="width: 20px; height: 16px;" tabindex="-1" type="image/svg+xml" data="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/hamburger.svg"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/hamburger.svg" alt=""> </object> <span style="vertical-align: text-bottom;">Menu</span> </a> <div class="site-header__logo-container w-[65px]"> <a href="/web/20231101021102/https://tfw.wales/"><img class="site-header__logo" style="width: 59px; height: 59px" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/logo.svg" alt="Transport for Wales Logo"/></a> </div> <nav role="navigation" aria-labelledby="block-mainmenu-menu" id="block-mainmenu" class="site-header__filter-wrapper flex flex-auto !justify-between md:ml-[10px]"> <h2 class="visually-hidden" id="block-mainmenu-menu">Main Menu</h2> <div class="mobile-nav-controls"> <a href="/web/20231101021102/https://tfw.wales/search"> <object tabindex="-1" type="image/svg+xml" data="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-search.svg"> <img alt="Search" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-search.svg"> </object> </a> <a class="mobile-nav-close" href="#"> <object tabindex="-1" type="image/svg+xml" data="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-close.svg"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-close.svg"> </object> </a> </div> <ul class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px]"> <li class="!ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/plan-a-journey" data-drupal-link-system-path="node/33251">Plan a journey</a> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel" data-drupal-link-system-path="node/28526">Ways to travel</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Ways to travel</span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/rail" title="Rail" data-drupal-link-system-path="node/28871">Rail</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/cycling" data-drupal-link-system-path="node/28561">Cycling</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/bus" data-drupal-link-system-path="node/28566">Bus</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/walking-and-wheeling" title="Walking" data-drupal-link-system-path="node/29531">Walking</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/road" title="Travel by Road" data-drupal-link-system-path="node/28551">Road</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/water" data-drupal-link-system-path="node/28581">Water</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/air" data-drupal-link-system-path="node/28591">Air</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/bus/fflecsi" data-drupal-link-system-path="node/28306">fflecsi</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for" data-drupal-link-system-path="node/28531">Info for...</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Info for...</span> <ul class="child-nav-cols-4"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/travel-safer" data-drupal-link-system-path="node/28281">Travel Safer</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers" data-drupal-link-system-path="node/28661">Passengers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/young-travellers" data-drupal-link-system-path="node/28666">Young travellers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/accessible-travel" data-drupal-link-system-path="node/29526">Accessible travel</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/over-60s" data-drupal-link-system-path="node/28671">Over 60s</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/kids-and-schools" data-drupal-link-system-path="node/28676">Kids and schools</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/communities" data-drupal-link-system-path="node/28681">Communities</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/job-hunters" data-drupal-link-system-path="node/28686">Job hunters</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/business" data-drupal-link-system-path="node/28691">Businesses</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/visitors-and-tourists" data-drupal-link-system-path="node/28696">Visitors and tourists</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/government-and-councils" data-drupal-link-system-path="node/28701">Government and councils</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/suppliers-and-partners" data-drupal-link-system-path="node/28711">Suppliers and partners</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/press-and-media" data-drupal-link-system-path="node/29316">Press and media</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status" data-drupal-link-system-path="node/28536">Service status</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span title="Service status">Service status</span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/live-arrivals-and-departures" data-drupal-link-system-path="node/2341">Live arrivals and departures</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/live-route-status" data-drupal-link-system-path="node/116">Live route status</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/check-your-journey" data-drupal-link-system-path="node/29556">Check your journey</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/capacity-checker" data-drupal-link-system-path="node/19301">Capacity Checker</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/timetables" data-drupal-link-system-path="node/16506">Timetables</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects/metro/service-changes" data-drupal-link-system-path="node/19291">Metro: changes to train services</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/planned-improvement-works" data-drupal-link-system-path="node/111">Planned improvement works</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/weekend-travel-marches" data-drupal-link-system-path="node/39791">Weekend travel on the Marches</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact" data-drupal-link-system-path="node/51791" class="is-active">Help and contact</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span title="Help and contact ">Help and contact </span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/rail" data-drupal-link-system-path="node/51961">Rail help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/bus" data-drupal-link-system-path="node/51956">Bus help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/concessionary" data-drupal-link-system-path="node/35486">Concessionary card help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/recruitment" data-drupal-link-system-path="node/35496">Recruitment help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/rail/delay-repay" data-drupal-link-system-path="node/821">Delay Repay</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/get-in-touch" data-drupal-link-system-path="node/50026">Contact us</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us" data-drupal-link-system-path="node/28546">About</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>About</span> <ul class="child-nav-cols-3"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-story" data-drupal-link-system-path="node/1606">Our story</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-culture" data-drupal-link-system-path="node/29261">Our culture</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/transparency" data-drupal-link-system-path="node/29281">Transparency</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/sustainable-development" data-drupal-link-system-path="node/32041">Sustainability</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/careers" data-drupal-link-system-path="node/27061">Careers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-team" data-drupal-link-system-path="node/27086">Our team</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/advertising-filming-and-partnerships" data-drupal-link-system-path="node/856">Advertising with us</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/whats-happening" data-drupal-link-system-path="node/27131">What&#039;s happening</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/press-and-media" data-drupal-link-system-path="node/29316">Latest news</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places" data-drupal-link-system-path="node/29241">Places</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Places</span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/attractions" data-drupal-link-system-path="node/45836">Attractions</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations" data-drupal-link-system-path="node/39676">Destinations</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/events" data-drupal-link-system-path="node/38621">Events</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/popular-routes" data-drupal-link-system-path="node/17486">Popular routes</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/stations" data-drupal-link-system-path="node/26">Stations</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/our-network-map" data-drupal-link-system-path="node/171">Our network map</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects" data-drupal-link-system-path="node/29246">Projects</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Projects</span> <ul class="child-nav-cols-1"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects/metro" data-drupal-link-system-path="node/38526">Metro</a> </li> </ul> </li> </ul> </div> </li> </ul> <div class="more-menu ml-4" tabindex="0"> <a class="more-menu__nav-toggle" href="#" tabindex="-1"> <object style="width: 20px; height: 16px;" tabindex="-1" type="image/svg+xml" data="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/hamburger.svg"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/hamburger.svg" alt=""> </object> <span style="vertical-align: text-bottom;">More</span> </a> <ul class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px]"> <li class="!ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/plan-a-journey" data-drupal-link-system-path="node/33251">Plan a journey</a> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel" data-drupal-link-system-path="node/28526">Ways to travel</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Ways to travel</span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/rail" title="Rail" data-drupal-link-system-path="node/28871">Rail</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/cycling" data-drupal-link-system-path="node/28561">Cycling</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/bus" data-drupal-link-system-path="node/28566">Bus</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/walking-and-wheeling" title="Walking" data-drupal-link-system-path="node/29531">Walking</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/road" title="Travel by Road" data-drupal-link-system-path="node/28551">Road</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/water" data-drupal-link-system-path="node/28581">Water</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/air" data-drupal-link-system-path="node/28591">Air</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/bus/fflecsi" data-drupal-link-system-path="node/28306">fflecsi</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for" data-drupal-link-system-path="node/28531">Info for...</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Info for...</span> <ul class="child-nav-cols-4"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/travel-safer" data-drupal-link-system-path="node/28281">Travel Safer</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers" data-drupal-link-system-path="node/28661">Passengers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/young-travellers" data-drupal-link-system-path="node/28666">Young travellers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/accessible-travel" data-drupal-link-system-path="node/29526">Accessible travel</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/over-60s" data-drupal-link-system-path="node/28671">Over 60s</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/kids-and-schools" data-drupal-link-system-path="node/28676">Kids and schools</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/communities" data-drupal-link-system-path="node/28681">Communities</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/job-hunters" data-drupal-link-system-path="node/28686">Job hunters</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/business" data-drupal-link-system-path="node/28691">Businesses</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/visitors-and-tourists" data-drupal-link-system-path="node/28696">Visitors and tourists</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/government-and-councils" data-drupal-link-system-path="node/28701">Government and councils</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/suppliers-and-partners" data-drupal-link-system-path="node/28711">Suppliers and partners</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/press-and-media" data-drupal-link-system-path="node/29316">Press and media</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status" data-drupal-link-system-path="node/28536">Service status</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span title="Service status">Service status</span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/live-arrivals-and-departures" data-drupal-link-system-path="node/2341">Live arrivals and departures</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/live-route-status" data-drupal-link-system-path="node/116">Live route status</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/check-your-journey" data-drupal-link-system-path="node/29556">Check your journey</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/capacity-checker" data-drupal-link-system-path="node/19301">Capacity Checker</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/timetables" data-drupal-link-system-path="node/16506">Timetables</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects/metro/service-changes" data-drupal-link-system-path="node/19291">Metro: changes to train services</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/planned-improvement-works" data-drupal-link-system-path="node/111">Planned improvement works</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status/weekend-travel-marches" data-drupal-link-system-path="node/39791">Weekend travel on the Marches</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact" data-drupal-link-system-path="node/51791" class="is-active">Help and contact</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span title="Help and contact ">Help and contact </span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/rail" data-drupal-link-system-path="node/51961">Rail help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/bus" data-drupal-link-system-path="node/51956">Bus help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/concessionary" data-drupal-link-system-path="node/35486">Concessionary card help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/recruitment" data-drupal-link-system-path="node/35496">Recruitment help</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/rail/delay-repay" data-drupal-link-system-path="node/821">Delay Repay</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/get-in-touch" data-drupal-link-system-path="node/50026">Contact us</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us" data-drupal-link-system-path="node/28546">About</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>About</span> <ul class="child-nav-cols-3"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-story" data-drupal-link-system-path="node/1606">Our story</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-culture" data-drupal-link-system-path="node/29261">Our culture</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/transparency" data-drupal-link-system-path="node/29281">Transparency</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/sustainable-development" data-drupal-link-system-path="node/32041">Sustainability</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/careers" data-drupal-link-system-path="node/27061">Careers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-team" data-drupal-link-system-path="node/27086">Our team</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/advertising-filming-and-partnerships" data-drupal-link-system-path="node/856">Advertising with us</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/whats-happening" data-drupal-link-system-path="node/27131">What&#039;s happening</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/press-and-media" data-drupal-link-system-path="node/29316">Latest news</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places" data-drupal-link-system-path="node/29241">Places</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Places</span> <ul class="child-nav-cols-2"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/attractions" data-drupal-link-system-path="node/45836">Attractions</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations" data-drupal-link-system-path="node/39676">Destinations</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/events" data-drupal-link-system-path="node/38621">Events</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/popular-routes" data-drupal-link-system-path="node/17486">Popular routes</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/stations" data-drupal-link-system-path="node/26">Stations</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/our-network-map" data-drupal-link-system-path="node/171">Our network map</a> </li> </ul> </li> </ul> </div> </li> <li class="has-children !ml-[10px] !mt-[10px]"> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects" data-drupal-link-system-path="node/29246">Projects</a> <div class="site-header__nav-bar-filter !-mt-[10px] !-ml-[10px] site-header__mega-menu"> <ul class="w-full"> <li class="has-children "> <span>Projects</span> <ul class="child-nav-cols-1"> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects/metro" data-drupal-link-system-path="node/38526">Metro</a> </li> </ul> </li> </ul> </div> </li> </ul> </div> <div class="site-header__anc-links ml-auto flex-shrink-0"> <div id="block-languageswitcher-1"> <div class="languages"> <a href="http://web.archive.org/web/20231101021102/http://trc.cymru/cymorth-a-chysylltu" class="site-header__language-switcher" data-key="cy">Cymraeg</a> </div> </div> <a aria-label="Your Account" href="http://web.archive.org/web/20231101021102/https://tickets.trc.cymru/#/login-redirect"> <img role="presentation" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/account-icon-desktop.svg"> </a> </div> <div class="site-header__mobile-anc-links"> <a class="my-account" aria-label="Your Account" href="http://web.archive.org/web/20231101021102/https://tickets.trc.cymru/#/login-redirect"> <span class="my-account-icon"></span> Your account </a> <div id="block-languageswitcher-2"> <div class="languages"> <a href="http://web.archive.org/web/20231101021102/http://trc.cymru/cymorth-a-chysylltu" class="site-header__language-switcher" data-key="cy">Cymraeg</a> </div> </div> </div> </nav> </div> </div> </div> <div> <div id="block-disruptionbanner"> <script type="text/javascript"> window.keo = window.keo || {}; window.keo.pidd = { 'labels': {"read_more":"Read more"} }; </script> <div id="pidd_js" class="disruption-banner is-pidd" v-bind:data-disruption-id="item.id" v-bind:data-retrieved="item.retrieved" v-bind:class="{ 'is-shown': item.heading != null &amp;&amp; !item.isHidden }"> <div class="container"> <div class="disruption disruption--major"> <div> <div class="heading"> <span class="disruption-header" v-text="item.heading"></span> <button type="button" class="bg-transparent border-0 read-more-link"> Read more </button> </div> <div class="read-more" v-html="item.copy"></div> </div> <div class="close" role="button" aria-label="Close"></div> </div> </div> </div> </div> </div> <!-- END IF --> <div class="site-header__banner" style="background-color: #AF1E0E;"> <div class="mdc-layout-grid"> <div class="mdc-layout-grid__inner"> <div class="mdc-layout-grid__cell--span-9-desktop mdc-layout-grid__cell--span-4-phone mdc-layout-grid__cell--span-5-tablet text-container"> <div class="text-inner"> <h1 class="site-header__title">Help and contact</h1> </div> </div> <div class="mdc-layout-grid__cell--span-3-desktop mdc-layout-grid__cell--span-3-tablet site-header__search-form"> <form action="/web/20231101021102/https://tfw.wales/search" method="get"> <label class="sr-only" for="search">Search</label> <input type="search" id="search" name="search" placeholder="Search..."> <button><img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-search.svg" alt="Search"></button> </form> </div> </div> </div> </div> <nav class="breadcrumb" role="navigation" aria-labelledby="system-breadcrumb"> <h2 id="system-breadcrumb" class="visually-hidden">Breadcrumb</h2> <ol> <li> <a aria-label="Home" href="/web/20231101021102/https://tfw.wales/"> <svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M14.7389 7.88336L7.90068 1.05016C7.85145 1.00082 7.79296 0.961685 7.72858 0.934981C7.6642 0.908277 7.59519 0.894531 7.52549 0.894531C7.45579 0.894531 7.38677 0.908277 7.32239 0.934981C7.25801 0.961685 7.19953 1.00082 7.15029 1.05016L0.312109 7.88336C0.112891 8.08258 0 8.35318 0 8.63541C0 9.22145 0.476465 9.69791 1.0625 9.69791H1.78301V14.5738C1.78301 14.8676 2.02041 15.105 2.31426 15.105H6.46299V11.3863H8.32236V15.105H12.7367C13.0306 15.105 13.268 14.8676 13.268 14.5738V9.69791H13.9885C14.2707 9.69791 14.5413 9.58668 14.7405 9.3858C15.1539 8.97076 15.1539 8.2984 14.7389 7.88336Z" fill="#003DA6"/> </svg> </a> <svg class="breadcrumb__separator" width="8" height="13" viewbox="0 0 8 13" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.57749 0.106119C7.07749 0.339119 7.31749 0.883119 7.11449 1.32112L1.93549 12.4241C1.73149 12.8621 1.16049 13.0281 0.659486 12.7941C0.159486 12.5611 -0.0805143 12.0161 0.123486 11.5781L5.30149 0.476119C5.50549 0.0381192 6.07649 -0.127881 6.57749 0.106119Z" fill="#333"/> </svg> </li> <li> Help and contact </li> </ol> </nav> </header> <div class="layout-container"> <main role="main"> <a id="main-content" tabindex="-1"></a> <div class="mdc-layout-grid"> <div class="mdc-layout-grid__inner"> <div class="mdc-layout-grid__cell--span-12"> <div class="layout-content"> <div> <div data-drupal-messages-fallback class="hidden"></div><div id="block-cookiesui"> <div id="cookiesjsr"></div> </div> <article data-history-node-id="51791" role="article" about="https://tfw.wales/help-and-contact" typeof="schema:WebPage"> <span property="schema:name" content="Help and contact" class="hidden"></span> <div> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div> <h2 class=""> Help for... </h2> <div class="m-0 no-underline text-black"> </div> </div> </div> </div> <div class="sm:flex"> <div class="px-4 py-4 w-96 layout__region col1" style="width:40rem;"> <div> <div class="rounded-tfw border-solid border-black-at25"> <a class="no-underline ..." href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/rail"> <div class="flex bg-black-at25 border-0 rounded-2xl items-center justify-center px-4 py-4"> <div class="flex shrink-0 grow-0 items-center justify-center rounded-full text-green-700" style="height: 56px; width: 56px;"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/Train.svg"/> </div> </div> <div class="bg-none pl-8 no-underline"> <h1 class="text-3xl pt-4 pb-2 m-0 no-underline" style="color: rgb(175, 30, 14);"> Rail </h1> <p class="m-0 pb-6 pt-4 pr-14 text no-underline text-black"> We can help with every stage of your journey. Find out what you can do online and how you can get in touch. </p> </div> </div> </a> </div> </div> <div class="px-4 py-4 w-96 ... layout__region col2" style="width:40rem;"> <div> <div class="rounded-tfw border-solid border-black-at25"> <a class="no-underline ..." href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/bus"> <div class="flex bg-black-at25 border-0 rounded-2xl items-center justify-center px-4 py-4"> <div class="flex shrink-0 grow-0 items-center justify-center rounded-full text-green-700" style="height: 56px; width: 56px;"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/Bus.svg"/> </div> </div> <div class="bg-none pl-8 no-underline"> <h1 class="text-3xl pt-4 pb-2 m-0 no-underline" style="color: rgb(175, 30, 14);"> Buses </h1> <p class="m-0 pb-6 pt-4 pr-14 text no-underline text-black"> Find out what you can do online and how you can get in touch. </p> </div> </div> </a> </div> </div> <div class="px-4 py-4 w-96 ... layout__region col3" style="width:40rem;"> <div> <div class="px-4 py-4 rounded-tfw border-solid border-2 border-black-at25 bg-black-at25"> <div class="px-4"> <h2 class=" m-0"> See also &#039;Ways to travel&#039; </h2> <h3 class="text-black font-normal py-2 mt-0 text-2xl"> Get from A to B. Find information for a range of travel modes. </h3> </div> <div class="pt-2 grid grid-cols-2 gap-4"> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/cycling"> <div class="shrink-0" style="height: 20px; width: 24px"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-08/Bicycle_R.svg"/> </div> <span class="pl-3 font-bold">Cycling</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/road"> <div class="shrink-0" style="height: 20px; width: 24px"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-08/Car_R.svg"/> </div> <span class="pl-3 font-bold">Road</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/walking-and-wheeling"> <div class="shrink-0" style="height: 20px; width: 24px"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-08/Walking_R.svg"/> </div> <span class="pl-3 font-bold">Walking or wheeling</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/water"> <div class="shrink-0" style="height: 20px; width: 24px"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-08/Ferry_R.svg"/> </div> <span class="pl-3 font-bold">Water</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects/metro"> <div class="shrink-0" style="height: 20px; width: 24px"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-08/Train_R.svg"/> </div> <span class="pl-3 font-bold">Metro</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/air"> <div class="shrink-0" style="height: 20px; width: 24px"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-08/Plane_R.svg"/> </div> <span class="pl-3 font-bold">Air</span> </a> </div> </dt> </div> </div> </div> </div> </div> </div> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div> <h2 class=""> Travelling advice </h2> <div class="m-0 no-underline text-black"> </div> </div> </div> </div> <div class="sm:flex"> <div class="px-4 py-4 w-96 layout__region col1" style="width:40rem;"> <div> <div class="rounded-tfw border-solid border-black-at25"> <a class="no-underline ..." href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/accessible-travel"> <div class="flex bg-black-at25 border-0 rounded-2xl items-center justify-center px-4 py-4"> <div class="flex shrink-0 grow-0 items-center justify-center rounded-full text-green-700" style="height: 56px; width: 56px;"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/Wheeling.svg"/> </div> </div> <div class="bg-none pl-8 no-underline"> <h1 class="text-3xl pt-4 pb-2 m-0 no-underline" style="color: rgb(175, 30, 14);"> Accessible travel </h1> <p class="m-0 pb-6 pt-4 pr-14 text no-underline text-black"> Get all the information you need to plan your journey and book assistance. Learn about our plans for making our services more accessible. </p> </div> </div> </a> </div> </div> <div class="px-4 py-4 w-96 ... layout__region col2" style="width:40rem;"> <div> <div class="rounded-tfw border-solid border-black-at25"> <a class="no-underline ..." href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/rail/travel-information"> <div class="flex bg-black-at25 border-0 rounded-2xl items-center justify-center px-4 py-4"> <div class="flex shrink-0 grow-0 items-center justify-center rounded-full text-green-700" style="height: 56px; width: 56px;"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/Train.svg"/> </div> </div> <div class="bg-none pl-8 no-underline"> <h1 class="text-3xl pt-4 pb-2 m-0 no-underline" style="color: rgb(175, 30, 14);"> Travel information </h1> <p class="m-0 pb-6 pt-4 pr-14 text no-underline text-black"> Check your train is on time and get more information to help you plan your journey. </p> </div> </div> </a> </div> </div> <div class="px-4 py-4 w-96 ... layout__region col3" style="width:40rem;"> <div> <div class="px-4 py-4 rounded-tfw border-solid border-2 border-black-at25 bg-black-at25"> <div class="px-4"> <h2 class=" m-0"> Information for… </h2> <h3 class="text-black font-normal py-2 mt-0 text-2xl"> </h3> </div> <div class="pt-2 grid grid-cols-2 gap-4"> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/over-60s"> <span class="pl-3 font-bold">Over 60&#039;s</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/communities"> <span class="pl-3 font-bold">Communities</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/kids-and-schools"> <span class="pl-3 font-bold">Kids and schools</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/visitors-and-tourists"> <span class="pl-3 font-bold">Visitors and tourists</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/job-hunters"> <span class="pl-3 font-bold">Job hunters</span> </a> </div> </dt> </div> <div class="... flex"> <dt class="text-[black]"> <div class="px-4 py-1"> <a class="no-underline flex" href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/business"> <span class="pl-3 font-bold">Business</span> </a> </div> </dt> </div> </div> </div> </div> </div> </div> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div> <h2 class=""> Need to get in touch? </h2> <div class="m-0 no-underline text-black"> </div> </div> </div> </div> <div class="sm:flex"> <div class="px-4 py-4 w-96 layout__region col1" style="width:40rem;"> <div> <div class="rounded-tfw"> <div class="flex rounded-tfw px-4"> <div class="flex items-center justify-center rounded-full bg-warm-grey-at50 text-green-700" style="height: 56px; width:56px"> <div class="h-14 w-14"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/WhatsApp_0.svg"/> </div> </div> <div class=""> <h2 class="pl-3 m-0 pt-2"> Rail contact details </h2> </div> </div> <p class="ml-10 mt-0 pl-16"> <div class="pl-16 ml-4"> <p>From journey planning and booking assisted travel to ticketing information, <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/rail/contact-us">we can help</a>.</p> </div> </p> </div> </div> </div> <div class="px-4 py-4 w-96 ... layout__region col2" style="width:40rem;"> <div> <div class="rounded-tfw"> <div class="flex rounded-tfw px-4"> <div class="flex items-center justify-center rounded-full bg-warm-grey-at50 text-green-700" style="height: 56px; width:56px"> <div class="h-14 w-14"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/Phone.svg"/> </div> </div> <div class=""> <h2 class="pl-3 m-0 pt-2"> Bus contact details </h2> </div> </div> <p class="ml-10 mt-0 pl-16"> <div class="pl-16 ml-4"> <p>Need help? From journey planning to ticketing information, our <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/bus">Customer Relations team can assist</a>.</p> </div> </p> </div> </div> </div> <div class="px-4 py-4 w-96 ... layout__region col3" style="width:40rem;"> <div> <div class="rounded-tfw"> <div class="flex rounded-tfw px-4"> <div class="flex items-center justify-center rounded-full bg-warm-grey-at50 text-green-700" style="height: 56px; width:56px"> <div class="h-14 w-14"> <img src="/web/20231101021102im_/https://tfw.wales/sites/default/files/2023-09/Email.svg"/> </div> </div> <div class=""> <h2 class="pl-3 m-0 pt-2"> TfW contact details </h2> </div> </div> <p class="ml-10 mt-0 pl-16"> <div class="pl-16 ml-4"> <p>You’ll find all <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/help-and-contact/get-in-touch">our contact details</a> in one place here.</p> </div> </p> </div> </div> </div> </div> <div class="container"> <main> </main> <aside> </aside> </div> </div> </article> </div> </div> </div> </div> </div> </main> <div class="mdc-layout-grid"> <div class="mdc-layout-grid__inner"> <div class="mdc-layout-grid__cell--span-12 site-footer__lower-container mobile-only"> <div class="site-footer__btt-section"> <a class="social-link" aria-label="Back to Top" href="#siteHeader"> <img role="presentation" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-btt.svg"> <span>Back to top</span></a> </div> </div> </div> </div> <div class="mdc-layout-grid"> <section class="logo-bar desktop-only-flex"> <div class="logo-container tfw-logo"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/tfw.svg" alt="tfw"/> </div> <div class="logo-container wg-logo"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/wg-logo.svg" alt="" role="presentation"> </div> <div class=" logo-container dft-logo-en"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/DfT_3298_SML_AW.png" alt="" role="presentation"> </div> <div class=" logo-container er-logo"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/erdf-logo.png" alt="" role="presentation"> </div> </section> </div> <footer class="site-footer" role="contentinfo"> <div class="mdc-layout-grid footer-menus-container"> <div class="mdc-layout-grid__inner"> <div class="mdc-layout-grid__cell--span-3-desktop mdc-layout-grid__cell--span-2-tablet mdc-layout-grid__cell--span-4-phone"> <div> <nav role="navigation" aria-labelledby="block-ticketsandrailcards-menu" id="block-ticketsandrailcards"> <h2 id="block-ticketsandrailcards-menu">Top areas</h2> <ul> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/careers" data-drupal-link-system-path="node/27061">Careers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel" data-drupal-link-system-path="node/28526">Ways to travel</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/service-status" data-drupal-link-system-path="node/28536">Service status</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us" data-drupal-link-system-path="node/28546">About Transport for Wales</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/projects" data-drupal-link-system-path="node/29246">Projects</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places" data-drupal-link-system-path="node/29241">Places and routes</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/stations" data-drupal-link-system-path="node/26">Find a station</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/popular-routes" data-drupal-link-system-path="node/17486">Popular routes</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/transparency/publications" data-drupal-link-system-path="node/27956">Publications</a> </li> </ul> </nav> </div> </div> <div class="mdc-layout-grid__cell--span-3-desktop mdc-layout-grid__cell--span-2-tablet mdc-layout-grid__cell--span-4-phone"> <div> <nav role="navigation" aria-labelledby="block-travelupdates-menu" id="block-travelupdates"> <h2 id="block-travelupdates-menu">Info for...</h2> <ul> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers" data-drupal-link-system-path="node/28661">Passengers and travellers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/young-travellers" data-drupal-link-system-path="node/28666">Young travellers</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/accessible-travel" data-drupal-link-system-path="node/29526">Accessible travel</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/over-60s" data-drupal-link-system-path="node/28671">Over 60s</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/kids-and-schools" data-drupal-link-system-path="node/28676">Kids and schools</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/visitors-and-tourists" data-drupal-link-system-path="node/28696">Visitors and tourists</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/communities" data-drupal-link-system-path="node/28681">Communities</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/job-hunters" data-drupal-link-system-path="node/28686">Job hunters</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/government-and-councils" data-drupal-link-system-path="node/28701">Government and councils</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/suppliers-and-partners" data-drupal-link-system-path="node/28711">Suppliers and partners</a> </li> </ul> </nav> </div> </div> <div class="mdc-layout-grid__cell--span-3-desktop mdc-layout-grid__cell--span-2-tablet mdc-layout-grid__cell--span-4-phone"> <div> <nav role="navigation" aria-labelledby="block-topdestinations-menu" id="block-topdestinations"> <h2 id="block-topdestinations-menu">Top destinations</h2> <ul> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/popular-routes" data-drupal-link-system-path="node/17486">Popular routes</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations/aberystwyth" data-drupal-link-system-path="node/1086">Trains to Aberystwyth</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations/cardiff" data-drupal-link-system-path="node/261">Trains to Cardiff</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations/liverpool" data-drupal-link-system-path="node/1031">Trains to Liverpool</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations/manchester" data-drupal-link-system-path="node/271">Trains to Manchester</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations/shrewsbury" data-drupal-link-system-path="node/276">Trains to Shrewsbury</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/places/destinations/swansea" data-drupal-link-system-path="node/726">Trains to Swansea</a> </li> </ul> </nav> </div> </div> <div class="mdc-layout-grid__cell--span-3-desktop mdc-layout-grid__cell--span-2-tablet mdc-layout-grid__cell--span-4-phone"> <div> <nav role="navigation" aria-labelledby="block-policiesforpeople-menu" id="block-policiesforpeople"> <h2 id="block-policiesforpeople-menu">Policies for people</h2> <ul> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/accessibility-statement-tfwwales" data-drupal-link-system-path="node/31931">Accessibility statement</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/accessible-travel/policies-and-information" data-drupal-link-system-path="node/931">Accessible travel</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/bilingual-policy" data-drupal-link-system-path="node/461">Bilingual policy</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-culture/equality" data-drupal-link-system-path="node/27651">Equality and diversity</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/gender-pay-gap-report" data-drupal-link-system-path="node/31361">Gender Pay Gap report</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/modern-slavery-statement" data-drupal-link-system-path="node/30216">Modern Slavery Statement</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/sustainable-development-and-environment-policy" data-drupal-link-system-path="node/52771">Sustainable development and environment policy</a> </li> </ul> </nav> <nav role="navigation" aria-labelledby="block-usefullinks-menu" id="block-usefullinks"> <h2 id="block-usefullinks-menu">Useful links</h2> <ul> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/cycling/bikes-on-board" data-drupal-link-system-path="node/371">Bikes on board</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/info-for/passengers/accessible-travel/booking-assistance" data-drupal-link-system-path="node/361">Booking assisted travel</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/ways-to-travel/road/car-parks" data-drupal-link-system-path="node/221">Car parking</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us" data-drupal-link-system-path="node/28546">Corporate info</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/about-us/our-culture/safety/security" data-drupal-link-system-path="node/20906">Security</a> </li> </ul> </nav> </div> </div> </div> <div class="mdc-layout-grid__inner"> <div class="mdc-layout-grid__cell--span-12 site-footer__lower-container"> <div class=""> <a class="social-link" aria-label="Social Media Link" href="/web/20231101021102/https://tfw.wales/social-media"> <div> <a aria-label="Social Media Link" href="/web/20231101021102/https://tfw.wales/social-media"> <div class="flex items-center"> <img role="presentation" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-social-group.svg"> <span class="flex items-center pl-4 !text-[16px]">Connect with us on social media </span> </div> </a> </div> </div> <div> <div class="sm:flex sm:flex-row-reverse sm:justify-center sm:m-auto"> <span class="flex justify-center pb-4 sm:items-center sm:pb-0"> <h2 class="m-0 !text-[16px] font-normal text-black">Download our rail app</h2> </span> <div class="flex gap-4 justify-center px-4 max-w-sm mx-[auto]"> <div> <a href="http://web.archive.org/web/20231101021102/https://apps.apple.com/us/app/trc-tfw-cheap-train-tickets/id1589080838" rel="nofollow"> <img class="block" aria-hidden="true" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/assets/images/apple-app-icon.png" alt="Download our TfW Rail App on the Apple App Store"> <span class="sr-only"> Download our TfW Rail App on the Apple App Store </span> </a> </div> <div> <a href="http://web.archive.org/web/20231101021102/https://play.google.com/store/apps/details?id=wales.tfw.rail.app" rel="nofollow"> <img class="block" aria-hidden="true" src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/assets/images/google-app-icon.png" alt="Download our TfW Rail App on the Google Play Store"> <span class="sr-only"> Download our TfW Rail App on the Google Play Store </span> </a> </div> </div> </div> </div> <div class="desktop-only"> <a class="" aria-label="Back to top" href="#siteHeader"> <div class="flex items-center justify-end"> <div class=""> <svg class="rounded-full shadow" xmlns="http://www.w3.org/2000/svg" width="40" height="40"><g fill="none"><path d="M0 20C0 8.954 8.954 0 20 0s20 8.954 20 20-8.954 20-20 20S0 31.046 0 20z" fill="#FFFFFF"/><path fill="#333" d="M12 20l1.41 1.41L19 15.83V28h2V15.83l5.58 5.59L28 20l-8-8z"/></g></svg> </div> <span class="px-4">Back to top</span> </div> </a> </div> </div> </div> </div> <section class="logo-bar mobile-only-flex"> <div class="logo-container tfw-logo"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/tfw.svg" alt="tfw"/> </div> <div class="logo-container wg-logo"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/wg-logo.svg" alt="" role="presentation"> </div> <div class=" logo-container dft-logo-en"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/DfT_3298_SML_AW.png" alt="" role="presentation"> </div> <div class=" logo-container er-logo"> <img src="/web/20231101021102im_/https://tfw.wales/themes/custom/one_domain/dist/img/erdf-logo.png" alt="" role="presentation"> </div> </section> <div class="site-footer__bottom-container"> <div class="mdc-layout-grid"> <div class="mdc-layout-grid__inner"> <div class="copyright mdc-layout-grid__cell--span-7-desktop mdc-layout-grid__cell--span-4-tablet mdc-layout-grid__cell--span-4-phone "> <p>© 2023 TfW</p> <a class="legal-text" href="/web/20231101021102/https://tfw.wales/transport-wales" rel="nofollow">Transport for Wales Ltd - Registered in England and Wales under number 09476013 at Llys Cadwyn, Pontypridd, CF37 4TH</a> </div> <div class="menu-cont mdc-layout-grid__cell--span-5-desktop mdc-layout-grid__cell--span-4-tablet mdc-layout-grid__cell--span-4-phone "> <div class="bottom-footer-menu"> <div> <nav role="navigation" aria-labelledby="block-bottomfootermenu-menu" id="block-bottomfootermenu"> <h2 class="visually-hidden" id="block-bottomfootermenu-menu">Bottom Footer Menu</h2> <ul> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/cookie-policy" data-drupal-link-system-path="node/476">Cookie policy</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/website-privacy-statement" data-drupal-link-system-path="node/30291">Privacy policy</a> </li> <li> <a href="http://web.archive.org/web/20231101021102/https://tfw.wales/terms-and-conditions" data-drupal-link-system-path="node/30296">Terms and conditions</a> </li> </ul> </nav> </div> </div> </div> </div> </div> </div> </footer> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"node\/51791","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"feature_toggle":{"enabled":["send_nre_station_data_to_xtm"]},"cookiesjsr":{"config":{"cookie":{"name":"cookiesjsr","expires":31536000000,"domain":"","sameSite":"Lax","secure":false},"library":{"libBasePath":"\/libraries\/cookiesjsr\/dist","libPath":"\/libraries\/cookiesjsr\/dist\/cookiesjsr.min.js","scrollLimit":0},"callback":{"method":"post","url":"\/cookies\/example\/callback.json","headers":[]},"interface":{"openSettingsHash":"#editCookieSettings","showDenyAll":true,"denyAllOnLayerClose":false,"settingsAsLink":false,"availableLangs":["en","cy"],"defaultLang":"en","groupConsent":true,"cookieDocs":true}},"services":{"default":{"id":"default","services":[{"key":"base","type":"default","name":"Required cookies","info":{"value":"\u003Ctable\u003E\r\n\t\u003Cthead\u003E\r\n\t\t\u003Ctr\u003E\r\n\t\t\t\u003Cth width=\u002215%\u0022\u003ECookie name\u003C\/th\u003E\r\n\t\t\t\u003Cth width=\u002215%\u0022\u003EDefault expiration time\u003C\/th\u003E\r\n\t\t\t\u003Cth\u003EDescription\u003C\/th\u003E\r\n\t\t\u003C\/tr\u003E\r\n\t\u003C\/thead\u003E\r\n\t\u003Ctbody\u003E\r\n\t\t\u003Ctr\u003E\r\n\t\t\t\u003Ctd\u003E\u003Ccode dir=\u0022ltr\u0022 translate=\u0022no\u0022\u003ESSESS\u0026lt;ID\u0026gt;\u003C\/code\u003E\u003C\/td\u003E\r\n\t\t\t\u003Ctd\u003E1 month\u003C\/td\u003E\r\n\t\t\t\u003Ctd\u003EIf you are logged in to this website, a session cookie is required to identify and connect your browser to your user account in the server backend of this website.\u003C\/td\u003E\r\n\t\t\u003C\/tr\u003E\r\n\t\t\u003Ctr\u003E\r\n\t\t\t\u003Ctd\u003E\u003Ccode dir=\u0022ltr\u0022 translate=\u0022no\u0022\u003Ecookiesjsr\u003C\/code\u003E\u003C\/td\u003E\r\n\t\t\t\u003Ctd\u003E1 year\u003C\/td\u003E\r\n\t\t\t\u003Ctd\u003EWhen you visited this website for the first time, you were asked for your permission to use several services (including those from third parties) that require data to be saved in your browser (cookies, local storage). Your decisions about each service (allow, deny) are stored in this cookie and are reused each time you visit this website.\u003C\/td\u003E\r\n\t\t\u003C\/tr\u003E\r\n\t\u003C\/tbody\u003E\r\n\u003C\/table\u003E\r\n","format":"full_html"},"uri":"","needConsent":false}],"weight":1},"tracking":{"id":"tracking","services":[{"key":"recaptcha","type":"tracking","name":"reCAPTCHA","info":{"value":"","format":"full_html"},"uri":"http:\/\/web.archive.org\/web\/20231101021102\/https:\/\/policies.google.com\/privacy","needConsent":true}],"weight":10},"performance":{"id":"performance","services":[{"key":"gtag","type":"performance","name":"Google Tag Manager","info":{"value":"","format":"full_html"},"uri":"http:\/\/web.archive.org\/web\/20231101021102\/https:\/\/policies.google.com\/privacy","needConsent":true}],"weight":30}},"translation":{"_core":{"default_config_hash":"C8aQz-3d6YpwuU4QQc1iaWHb3RDkc_C9qcEsgR7HR74"},"langcode":"en","bannerText":"In order to give you the best experience we have set our website to allow cookies. By continuing, you agree that you are happy for us to use these cookies.\r\n\r\nTo change your cookie settings for our website please select \u201cCookie settings\u201d","privacyPolicy":"Privacy policy","privacyUri":"http:\/\/web.archive.org\/web\/20231101021102\/https:\/\/tfw.wales\/website-privacy-statement","imprint":"","imprintUri":"","cookieDocs":"","cookieDocsUri":"","denyAll":"","alwaysActive":"Always active","settings":"Cookie settings","acceptAll":"Accept all","requiredCookies":"Required cookies","cookieSettings":"Cookie settings","close":"Close","readMore":"Read more","allowed":"allowed","denied":"denied","settingsAllServices":"Settings for all services","saveSettings":"Save","default_langcode":"en","disclaimerText":"All cookie information is subject to change by the service providers. We update this information regularly.","disclaimerTextPosition":"above","processorDetailsLabel":"Processor Company Details","processorLabel":"Company","processorWebsiteUrlLabel":"Company Website","processorPrivacyPolicyUrlLabel":"Company Privacy Policy","processorCookiePolicyUrlLabel":"Company Cookie Policy","processorContactLabel":"Data Protection Contact Details","placeholderAcceptAllText":"Accept All Cookies","officialWebsite":"View official website","default":{"title":"What are Cookies?","details":"Cookies are small text files that are placed by your browser on your device in order to store certain information. Using the information that is stored and returned, a website can recognize that you have previously accessed and visited it using the browser on your end device. We use this information to arrange and display the website optimally in accordance with your preferences. Within this process, only the cookie itself is identified on your device. Personal data is only stored following your express consent or where this is absolutely necessary to enable use the service provided by us and accessed by you."},"tracking":{"title":"Tracking cookies","details":"Marketing cookies come from external advertising companies (\u0022third-party cookies\u0022) and are used to collect information about the websites visited by the user. The purpose of this is to create and display target group-oriented content and advertising for the user."},"performance":{"title":"Performance Cookies","details":"Performance cookies collect aggregated information about how our website is used. The purpose of this is to improve its attractiveness, content and functionality. These cookies help us to determine whether, how often and for how long particular sub-pages of our website are accessed and which content users are particularly interested in. Search terms, country, region and (where applicable) the city from which the website is accessed are also recorded, as is the proportion of mobile devices that are used to access the website. We use this information to compile statistical reports that help us tailor the content of our website to your needs and optimize our offer."}}},"qtt":{"promo":""},"user":{"uid":0,"permissionsHash":"3b4164eb1afb574373c4ff3c5a1791dc14c1e58bb8279470c3d4deea364b9a28"}}</script> <script src="/web/20231101021102js_/https://tfw.wales/sites/default/files/js/js_AfqYzlW71UNW9PsotE5ELou-r50UGYw8JM2cS_29YYs.js"></script> <script src="/web/20231101021102js_/https://tfw.wales/modules/custom/keolis_layout_blocks/js/vendor/vue.min.js?s31ei0"></script> <script src="/web/20231101021102js_/https://tfw.wales/sites/default/files/js/js_HS2lJ1SjVee3q3YFEABT34aYgm_I0hJMW-G4i6W0OQw.js"></script> <script src="/web/20231101021102js_/https://tfw.wales/modules/contrib/cookies/js/cookiesjsr.conf.js?v=9.5.10"></script> <script src="/web/20231101021102js_/https://tfw.wales/libraries/cookiesjsr/dist/cookiesjsr-preloader.min.js?v=9.5.10" defer></script> <script src="/web/20231101021102js_/https://tfw.wales/sites/default/files/js/js_IhmlYvo94zm4bmAUD8i0BbXf0MUrsKnC_BPhKDXFxVI.js"></script> <script src="/web/20231101021102js_/https://tfw.wales/themes/custom/one_domain/src/js/flatpickr.js"></script> <script src="/web/20231101021102js_/https://tfw.wales/themes/custom/one_domain/dist/scripts.min.js"></script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.eu01.nr-data.net","licenseKey":"NRJS-34dae6faa52b003b8b9","applicationID":"530256513","transactionName":"MhBSZQoZCkRQWkdZXgtacVIMEQtZHn1BRUEEGWxfFxwBa3JWXURDChlcVAokKlhVXGVZVBI2X18MCgtbXVxBHQ8THFVG","queueTime":6,"applicationTime":682,"atts":"HldRE0IDGUo=","errorBeacon":"bam.eu01.nr-data.net","agent":""}</script></body> </html> <!-- FILE ARCHIVED ON 02:11:02 Nov 01, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 15:43:52 Nov 26, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.54 exclusion.robots: 0.03 exclusion.robots.policy: 0.018 esindex: 0.01 cdx.remote: 8.678 LoadShardBlock: 193.334 (3) PetaboxLoader3.datanode: 177.049 (5) PetaboxLoader3.resolve: 130.743 (2) load_resource: 135.951 loaddict: 46.48 -->

Pages: 1 2 3 4 5 6 7 8 9 10