CINXE.COM

Travel by air | TfW

<!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/ways-to-travel/air","20231210005657","http://web.archive.org/","web","/_static/", "1702169817"); </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.248.0.min.js.LICENSE.txt */ (()=>{var e,t,r={234:(e,t,r)=>{"use strict";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);const r=(0,n.ek)(e);r&&(r.info=a[e])}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());const r=(0,n.ek)(e);r&&(r.init=h[e])}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);const r=(0,n.ek)(e);r&&(r.loader_config=y[e])}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);const r=(0,n.ek)(e);r&&(r.runtime=S[e])}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)=>{"use strict";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)=>{"use strict";r.d(t,{Re:()=>i,gF:()=>o,lF:()=>a,q4:()=>n});const n="1.248.0",i="PROD",o="CDN",a="2.0.0-alpha.11"},385:(e,t,r)=>{"use strict";r.d(t,{FN:()=>c,IF:()=>l,LW:()=>a,Nk:()=>h,Tt:()=>u,_A:()=>o,cv:()=>p,iS:()=>s,il:()=>n,ux:()=>d,v6:()=>i,w1:()=>f});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="complete"===o?.document?.readyState,s=Boolean("hidden"===o?.document?.visibilityState),c=""+o?.location,u=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Boolean(n&&window.document.documentMode),h=!!o.navigator?.sendBeacon,p=Math.floor(o?.performance?.timeOrigin||o?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,r)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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)=>{"use strict";r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{"use strict";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)=>{"use strict";r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{"use strict";function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{"use strict";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)=>{"use strict";function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2825:(e,t,r)=>{"use strict";r.d(t,{N:()=>d,T:()=>l});var n=r(8325),i=r(5546),o=r(3325),a=r(385);const s="newrelic";const c={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]},u=new Set;function d(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(u.has(t)||(Object.entries(e).forEach((e=>{let[t,n]=e;c[t]?c[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),l[t]=Boolean(n)})),Object.keys(c).forEach((e=>{void 0===l[e]&&(c[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),l[e]=!1)})),u.add(t),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{a._A.dispatchEvent(new CustomEvent(s,{detail:e}))}catch(e){}}({loaded:!0})))}const l={}},2210:(e,t,r)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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)=>{"use strict";r.d(t,{KB:()=>a,b2:()=>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)=>{"use strict";r.d(t,{EZ:()=>d,ce:()=>o,ek:()=>u,fP:()=>a,gG:()=>l,h5:()=>c,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){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,n.z)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){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)=>{"use strict";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)=>{"use strict";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 R=r(3239);const O={},P=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!f.il||O[t.debugId])return t;O[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,P,"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,R.m$)(!1)),e.removeEventListener("error",f,(0,R.m$)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,R.m$)(!1)),e.removeEventListener("error",f,(0,R.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,R.m$)(!1)),e.addEventListener("error",f,(0,R.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={},Y=["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,R.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,Y,"-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)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.jserrors},3081:(e,t,r)=>{"use strict";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)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.sessionReplay},3614:(e,t,r)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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)=>{"use strict";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","recordReplay","pauseReplay"].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(2825);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.agentIdentifier,A||{}),(0,i.GE)(e.agentIdentifier,x||{}),w.jsAttributes??={},d.v6&&(w.jsAttributes.isWorker=!0),(0,i.CX)(e.agentIdentifier,w);const S=(0,i.P_)(e.agentIdentifier),D=[w.beacon,w.errorBeacon];v||(S.proxy.assets&&(m(S.proxy.assets),D.push(S.proxy.assets)),S.proxy.beacon&&D.push(S.proxy.beacon),p(),(0,h.EZ)("activatedFeatures",g.T)),E.denyList=[...S.ajax.deny_list||[],...S.ajax.block_internal?D:[]],(0,i.sU)(e.agentIdentifier,E),void 0===e.api&&(e.api=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/20231210005657/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.recordReplay=function(){(0,o.p)(f.xS,["API/recordReplay/called"],void 0,n.D.metrics,p),(0,o.p)("recordReplay",[],void 0,n.D.sessionReplay,p)},h.pauseReplay=function(){(0,o.p)(f.xS,["API/pauseReplay/called"],void 0,n.D.metrics,p),(0,o.p)("pauseReplay",[],void 0,n.D.sessionReplay,p)},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)(f.xS,["API/createTracer/called"],void 0,n.D.metrics,p),(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.b2)((()=>x()),!0):x(),h}(e.agentIdentifier,y)),void 0===e.exposed&&(e.exposed=_),v=!0}},1926:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},3325:(e,t,r)=>{"use strict";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.248.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.248.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,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),s.integrity=i.sriHashes[a],s.crossOrigin="anonymous"),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/20231210005657/https://js-agent.newrelic.com/",i.sriHashes={111:"sha512-ZwkW/wLO65ZnBcPIJO2VJVqTtRyXCRZiimLidZm1CYZfRiDwnchDLGFiEKDNkhfy/b1cgD3SElt5YjVudzleDQ=="},(()=>{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.248.0.PROD"]=self["webpackChunk:NRBA-1.248.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(1926);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.")}recordReplay(){(0,e.Z)("Call to agent api recordReplay failed. The agent is not currently initialized.")}pauseReplay(){(0,e.Z)("Call to agent api pauseReplay 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.b2)((()=>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 R=i(3081);class O extends f{static featureName=R.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,R.t9,r),this.importAggregator()}}var P=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=P.t;#e=new Set;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.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 Y 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 Q=i(3614);const{BST_RESOURCE:J,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=Q;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={},(0,x.h5)(r,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),(0,s.j)(this,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(){try{const t=a(this.agentIdentifier),n=[...this.desiredFeatures];n.sort(((e,t)=>r.p[e.featureName]-r.p[t.featureName])),n.forEach((n=>{if(t[n.featureName]||n.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[]}}(n.featureName);i.every((e=>t[e]))||(0,e.Z)("".concat(n.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[n.featureName]=new n(this.agentIdentifier,this.sharedAggregator)}}))}catch(t){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator,r.ee?.abort(),delete r.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:[Y,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,O,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> <meta name="description" content="Info about traveling by air"/> <link rel="canonical" href="http://web.archive.org/web/20231210005657/https://tfw.wales/ways-to-travel/air"/> <meta property="og:url" content="http://web.archive.org/web/20231210005657/https://tfw.wales/ways-to-travel/air"/> <meta property="og:title" content="Travel by air | 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/20231210005657im_/https://tfw.wales/sites/default/files/2021-06/transport-for-wales-og-social.jpg"/> <meta name="twitter:title" content="Travel by air | Transport for Wales"/> <meta name="twitter:url" content="http://web.archive.org/web/20231210005657im_/https://tfw.wales/ways-to-travel/air"/> <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/20231210005657im_/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/20231210005657/https://tfw.wales/ways-to-travel/air"/> <link rel="alternate" hreflang="cy" href="http://web.archive.org/web/20231210005657/https://trc.cymru/ffyrdd-o-deithio/hedfan"/> <title>Travel by air | TfW</title> <link rel="stylesheet" media="all" href="/web/20231210005657cs_/https://tfw.wales/sites/default/files/css/css_Jwf3g6R0FwCrKPlDM5hhYIQJeMmHesldHw6hLVN8N8g.css?delta=0&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"/> <link rel="stylesheet" media="all" href="/web/20231210005657cs_/https://tfw.wales/sites/default/files/css/css_LawvuLjLLHuxkzoq3zNPJGrULeu4syzBbf40n2fprPk.css?delta=1&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"/> <link rel="stylesheet" media="print" href="/web/20231210005657cs_/https://tfw.wales/sites/default/files/css/css_EFkMexotDh4ZqVb31MBR7WgcRwnhvj-H-ik_d65EChQ.css?delta=2&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"/> <link rel="stylesheet" media="all" href="http://web.archive.org/web/20231210005657cs_/https://dk5vcnqsuunkv.cloudfront.net/dist/build/tailwind.css"/> </head> <body class="page--hub-page"> <a href="#main-content" class="visually-hidden focusable"> Skip to main content </a> <noscript><iframe src="http://web.archive.org/web/20231210005657if_/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/20231210005657im_/https://tfw.wales/themes/custom/one_domain/dist/img/hamburger.svg"> <img src="/web/20231210005657im_/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/20231210005657/https://tfw.wales/"><img class="site-header__logo" style="width: 59px; height: 59px" src="/web/20231210005657im_/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/20231210005657/https://tfw.wales/search"> <object tabindex="-1" type="image/svg+xml" data="/web/20231210005657im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-search.svg"> <img alt="Search" src="/web/20231210005657im_/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/20231210005657im_/https://tfw.wales/themes/custom/one_domain/dist/img/icon-close.svg"> <img src="/web/20231210005657im_/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/ways-to-travel/air" data-drupal-link-system-path="node/28591" class="is-active">Air</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/info-for/passengers" data-drupal-link-system-path="node/28661">Passengers</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/info-for/communities" data-drupal-link-system-path="node/28681">Communities</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/info-for/business" data-drupal-link-system-path="node/28691">Businesses</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/service-status/timetables" data-drupal-link-system-path="node/16506">Timetables</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/help-and-contact" data-drupal-link-system-path="node/51791">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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/about-us/transparency" data-drupal-link-system-path="node/29281">Transparency</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/careers" data-drupal-link-system-path="node/27061">Careers</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/places/attractions" data-drupal-link-system-path="node/45836">Attractions</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/https://tfw.wales/places/destinations" data-drupal-link-system-path="node/39676">Destinations</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/https://tfw.wales/places/events" data-drupal-link-system-path="node/38621">Events</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/places/stations" data-drupal-link-system-path="node/26">Stations</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657im_/https://tfw.wales/themes/custom/one_domain/dist/img/hamburger.svg"> <img src="/web/20231210005657im_/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/ways-to-travel/air" data-drupal-link-system-path="node/28591" class="is-active">Air</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/info-for/passengers" data-drupal-link-system-path="node/28661">Passengers</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/info-for/communities" data-drupal-link-system-path="node/28681">Communities</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/info-for/business" data-drupal-link-system-path="node/28691">Businesses</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/service-status/timetables" data-drupal-link-system-path="node/16506">Timetables</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/help-and-contact" data-drupal-link-system-path="node/51791">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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/about-us/transparency" data-drupal-link-system-path="node/29281">Transparency</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/careers" data-drupal-link-system-path="node/27061">Careers</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/places/attractions" data-drupal-link-system-path="node/45836">Attractions</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/https://tfw.wales/places/destinations" data-drupal-link-system-path="node/39676">Destinations</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/https://tfw.wales/places/events" data-drupal-link-system-path="node/38621">Events</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/places/stations" data-drupal-link-system-path="node/26">Stations</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/http://trc.cymru/ffyrdd-o-deithio/hedfan" class="site-header__language-switcher" data-key="cy">Cymraeg</a> </div> </div> <a aria-label="Your Account" href="http://web.archive.org/web/20231210005657/https://tickets.trc.cymru/#/login-redirect"> <img role="presentation" src="/web/20231210005657im_/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/20231210005657/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/20231210005657/http://trc.cymru/ffyrdd-o-deithio/hedfan" 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: #00A5B5;"> <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">Travel by air</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/20231210005657/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/20231210005657im_/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/20231210005657/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> <a href="http://web.archive.org/web/20231210005657/https://tfw.wales/ways-to-travel">Ways to travel</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> Travel by air </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="28591" about="https://tfw.wales/ways-to-travel/air"> <footer> <article> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> </div> </div> </article> <div> Submitted by <span><span lang="" about="https://tfw.wales/user/971">drupal-admin</span></span> on <span><time datetime="2021-05-10T16:33:04+01:00" title="Monday, May 10, 2021 - 16:33">Mon, 10/05/2021 - 16:33</time> </span> </div> </footer> <div> <div> <div> <div id="paragraph-20816" class="paragraph paragraph--type--text-and-gallery-panel paragraph--view-mode--default"> <div class="text-and-gallery"> <div class="text-side"> <h2> Travel by air </h2> <p>Our trains can take you to Cardiff, Birmingham, Liverpool, and Manchester airports, so take the stress out of getting to the airport by jumping on one of our trains.</p> <p>Customers are advised to allow at least 2 hours plus check in time from when the train arrives at the airport until the departure time of the flight.</p> </div> <div class="image-side"> <div> <div> <div> <img src="/web/20231210005657im_/https://tfw.wales/sites/default/files/2021-06/Airport%20Connections%20.jpeg" width="1440" height="740" alt="Travel by air" loading="lazy" typeof="foaf:Image"/> </div> </div> </div> </div> </div> </div> </div> <div> <div id="paragraph-20831" class="paragraph paragraph--type--block-of-info-cards paragraph--view-mode--default"> <div class="block-of-info-cards"> <div class="info-card"> <a href="http://web.archive.org/web/20231210005657/https://www.cardiff-airport.com/" class="field-group-link"> <span class="card-title"> Cardiff Airport </span> <p class="card-body"> <p>Integrated bus and train tickets are now available to Cardiff International Airport. With one ticket you can catch one of our trains to Rhoose (International Airport) and then connect onto the Adventure travel 905 bus to the airport. Total journey time from Cardiff Central is 42 minutes.</p> <p>Trains run from Bridgend directly to Rhoose Cardiff International Airport every hour (every two hours on Sunday).</p> </p> <span class="card-link"> Visit the Cardiff Airport website </span> </a> </div> <div class="info-card"> <a href="http://web.archive.org/web/20231210005657/https://www.birminghamairport.co.uk/" class="field-group-link"> <span class="card-title"> Birmingham International Airport  </span> <p class="card-body"> <p>Trains run directly from Aberystwyth, Pwllheli and Shrewsbury to Birmingham International.</p> <p>There are up to nine trains an hour between Birmingham New Street and Birmingham International.</p> <p>From the station, you can get the free monorail to the airport, and it only takes two minutes. The monorail runs between 03:30 and 00:30 hours, and outside of that, the airport is only a 10-minute walk from the station.</p> </p> <span class="card-link"> Visit the Birmingham International Airport website </span> </a> </div> </div> </div> </div> <div> <div id="paragraph-20846" class="paragraph paragraph--type--block-of-info-cards paragraph--view-mode--default"> <div class="block-of-info-cards"> <div class="info-card"> <a href="http://web.archive.org/web/20231210005657/https://www.manchesterairport.co.uk/" class="field-group-link"> <span class="card-title"> Manchester Airport </span> <p class="card-body"> <p>Trains run from North Wales and Chester direct to Manchester Airport in the morning and evening.</p> <p>We run regular trains to Manchester Piccadilly and from there you can get connecting services from other operators. There are up to six trains an hour between Manchester Piccadilly and Manchester Airport. </p> </p> <span class="card-link"> Visit the Manchester Airport website </span> </a> </div> <div class="info-card"> <a href="http://web.archive.org/web/20231210005657/https://www.liverpoolairport.com/" class="field-group-link"> <span class="card-title"> Liverpool Airport  </span> <p class="card-body"> <p>Trains run every hour from Chester, Liverpool South Parkway and Liverpool Lime Street to Liverpool John Lennon Airport.</p> <p>From the train station you can travel to the airport by bus on the 80A and 86A which run every 20 minutes. Integrated rail/bus tickets are available for this journey.</p> </p> <span class="card-link"> Visit the Liverpool Airport website </span> </a> </div> </div> </div> </div> </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/20231210005657im_/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/20231210005657im_/https://tfw.wales/themes/custom/one_domain/dist/img/tfw.svg" alt="tfw"/> </div> <div class="logo-container wg-logo"> <img src="/web/20231210005657im_/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/20231210005657im_/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/20231210005657im_/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/20231210005657/https://tfw.wales/careers" data-drupal-link-system-path="node/27061">Careers</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/service-status" data-drupal-link-system-path="node/28536">Service status</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/projects" data-drupal-link-system-path="node/29246">Projects</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/https://tfw.wales/places" data-drupal-link-system-path="node/29241">Places and routes</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/info-for/communities" data-drupal-link-system-path="node/28681">Communities</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/bilingual-policy" data-drupal-link-system-path="node/461">Bilingual policy</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/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/20231210005657/https://tfw.wales/about-us" data-drupal-link-system-path="node/28546">Corporate info</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/https://tfw.wales/social-media"> <div> <a aria-label="Social Media Link" href="/web/20231210005657/https://tfw.wales/social-media"> <div class="flex items-center"> <img role="presentation" src="/web/20231210005657im_/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/20231210005657/https://apps.apple.com/us/app/trc-tfw-cheap-train-tickets/id1589080838" rel="nofollow"> <img class="block" aria-hidden="true" src="/web/20231210005657im_/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/20231210005657/https://play.google.com/store/apps/details?id=wales.tfw.rail.app" rel="nofollow"> <img class="block" aria-hidden="true" src="/web/20231210005657im_/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/20231210005657im_/https://tfw.wales/themes/custom/one_domain/dist/img/tfw.svg" alt="tfw"/> </div> <div class="logo-container wg-logo"> <img src="/web/20231210005657im_/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/20231210005657im_/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/20231210005657im_/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/20231210005657/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/20231210005657/https://tfw.wales/cookie-policy" data-drupal-link-system-path="node/476">Cookie policy</a> </li> <li> <a href="http://web.archive.org/web/20231210005657/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/20231210005657/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\/28591","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"gtm":{"tagId":null,"settings":{"data_layer":"dataLayer","include_classes":false,"allowlist_classes":"","blocklist_classes":"","include_environment":false,"environment_id":"","environment_token":""},"tagIds":["GTM-T34X6QX"]},"gtag":{"tagId":"","otherIds":[],"events":[],"additionalConfigInfo":[]},"ajaxPageState":{"libraries":"cookies\/cookiesjsr,cookies_gtag\/gtag,google_tag\/gtag,google_tag\/gtag.ajax,google_tag\/gtm,keolis_layout_blocks\/keo-pidd,keolis_layout_blocks\/language_switcher,keolis_meganav\/keolis_meganav.library,layout_discovery\/onecol,one_domain\/global-js,one_domain\/global-styling,paragraphs\/drupal.paragraphs.unpublished,system\/base","theme":"one_domain","theme_token":null},"ajaxTrustedUrl":[],"feature_toggle":{"enabled":["send_nre_station_data_to_xtm"]},"field_group":{"html_element":{"mode":"default","context":"view","settings":{"classes":"","id":"","element":"h2","show_label":false,"label_element":"h3","label_element_classes":"","attributes":"","effect":"none","speed":"fast","show_empty_fields":false}},"link":{"mode":"default","context":"view","settings":{"classes":"","id":"","target":"field_info_card_link","custom_uri":"","target_attribute":"default"}}},"cookies":{"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":"","needConsent":true}],"weight":10},"performance":{"id":"performance","services":[{"key":"gtag","type":"performance","name":"Google Tag Manager","info":{"value":"","format":"full_html"},"uri":"","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\/20231210005657\/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."}}},"cookiesTexts":{"_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":"\/node\/30291","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"},"services":{"base":{"uuid":"0fbacba6-203d-4fe9-9b5d-6aebbf42a275","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"XM4JB6AQPEeejASzikI0SZ5bJNvp4j6qJ9Ri1kK7vyw"},"id":"base","label":"Required cookies","group":"default","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"},"consentRequired":false,"purpose":"","processor":"","processorContact":"","processorUrl":"","processorPrivacyPolicyUrl":"","processorCookiePolicyUrl":"","placeholderMainText":"This content is blocked because Required cookies cookies have not been accepted.","placeholderAcceptText":"Only accept Required cookies cookies."},"gtag":{"uuid":"13110851-6ce2-4d67-bb04-4334cd8d41cf","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"cqbQDWvg17Bh-c7-1_WxErWNtcOfbeS70HdFPseBTKE"},"id":"gtag","label":"Google Tag Manager","group":"performance","info":{"value":"","format":"full_html"},"consentRequired":true,"purpose":"","processor":"","processorContact":"","processorUrl":"","processorPrivacyPolicyUrl":"","processorCookiePolicyUrl":"","placeholderMainText":"This content is blocked because Google Tag Manager cookies have not been accepted.","placeholderAcceptText":"Only accept Google Tag Manager cookies."},"recaptcha":{"uuid":"94a086b8-df63-4ddd-aa70-cffdf34a76ce","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"KjF0zxDenAn5XBAqISi0iAaVN9XTCDtOoMez23BR7rM"},"id":"recaptcha","label":"reCAPTCHA","group":"tracking","info":{"value":"","format":"full_html"},"consentRequired":true,"purpose":"","processor":"","processorContact":"","processorUrl":"","processorPrivacyPolicyUrl":"","processorCookiePolicyUrl":"","placeholderMainText":"This content is blocked because reCAPTCHA cookies have not been accepted.","placeholderAcceptText":"Only accept reCAPTCHA cookies."}},"groups":{"default":{"uuid":"234f6dd4-df58-40ba-aeef-5d1057756794","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"MWjA0PCPcQbODMR7UjJxq4hK8JzyYy4zZeQmmQVjC3M"},"id":"default","label":"Default","weight":1,"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."},"functional":{"uuid":"c3964d03-f05d-4e69-a3db-08430c7d4ed2","langcode":"en","status":true,"dependencies":[],"id":"functional","label":"Functional","weight":1,"title":"Functional","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."},"performance":{"uuid":"5bce227e-59c8-4532-81c7-82a1756bd1da","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"Jv3uIJviBj7D282Qu1ZpEQwuOEb3lCcDvx-XVHeOJpw"},"id":"performance","label":"Performance","weight":30,"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."},"social":{"uuid":"b99946bc-fede-449c-9ae7-ca5eb7653081","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"vog2tbqqQHjVkue0anA0RwlzvOTPNTvP7_JjJxRMVAQ"},"id":"social","label":"Social Plugins","weight":20,"title":"Social Plugins","details":"Comments managers facilitate the filing of comments and fight against spam."},"tracking":{"uuid":"75bf8cce-ebe2-48c0-af09-67327ed54a0a","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"_gYDe3qoEc6L5uYR6zhu5V-3ARLlyis9gl1diq7Tnf4"},"id":"tracking","label":"Tracking","weight":10,"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."},"video":{"uuid":"ccbe796b-48c5-4b52-afd5-c46abf7befd0","langcode":"en","status":true,"dependencies":[],"_core":{"default_config_hash":"w1WnCmP2Xfgx24xbx5u9T27XLF_ZFw5R0MlO-eDDPpQ"},"id":"video","label":"Videos","weight":40,"title":"Video","details":"Video sharing services help to add rich media on the site and increase its visibility."}}},"qtt":{"promo":""},"user":{"uid":0,"permissionsHash":"27d4f3b560eda86e6fa9ae6f7d9ed095200e8ffad89621c936f0b6370d569b8f"}}</script> <script src="/web/20231210005657js_/https://tfw.wales/sites/default/files/js/js_KSh890BR6kS385rWjQR9BbL6PS8XMtS2viw3W2FBlpQ.js?scope=footer&amp;delta=0&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"></script> <script src="/web/20231210005657js_/https://tfw.wales/modules/custom/keolis_layout_blocks/js/vendor/vue.min.js?s4h95w"></script> <script src="/web/20231210005657js_/https://tfw.wales/sites/default/files/js/js__xlekBt84MP9OeXo8teqJ57tfLpMLviSPr_HRMhJVoE.js?scope=footer&amp;delta=2&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"></script> <script src="/web/20231210005657js_/https://tfw.wales/modules/contrib/google_tag/js/gtm.js?s4h95w" type="text/plain" id="cookies_gtag_gtm" data-cookieconsent="gtag"></script> <script src="/web/20231210005657js_/https://tfw.wales/modules/contrib/google_tag/js/gtag.js?s4h95w" type="text/plain" id="cookies_gtag_gtag" data-cookieconsent="gtag"></script> <script src="/web/20231210005657js_/https://tfw.wales/sites/default/files/js/js_VQZLqOhert-bx1snOj90Ygv7-uwKI_FZeZAK5LHyNeo.js?scope=footer&amp;delta=5&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"></script> <script src="/web/20231210005657js_/https://tfw.wales/modules/contrib/cookies/js/cookiesjsr.conf.js?v=10.1.6"></script> <script src="/web/20231210005657js_/https://tfw.wales/libraries/cookiesjsr/dist/cookiesjsr-preloader.min.js?v=10.1.6" defer></script> <script src="/web/20231210005657js_/https://tfw.wales/sites/default/files/js/js_N0Hxe5cZ3yXGRh-vr9lCTD0xrQll9VSPRZfFOTDOI0w.js?scope=footer&amp;delta=8&amp;language=en&amp;theme=one_domain&amp;include=eJxtj1FuxCAMRC_EhsP0AMiA65A4GNlk29y-rHYbdav82JqZp5Fth3XcfARDJxVDlg1K9cQSgW_WDy6VLpLFXBJFn3VvwB_Y--DMsSRg9F2hGkMvUh-crAUtUAfyj-FIhBjDU2_vcsR_iqemQopm_6EJFvh2DRRIoc128qcz7bXtkYvNmB3DIXsPuViSO-rhx0dJ-Pc2_9qL6ZSkfl74bkUZZeHVFMenq_lh3lrJ-TplqLQDYbCv0tOMZ8mGBBXu_l1OXKKCHj-DWp5z"></script> <script src="/web/20231210005657js_/https://tfw.wales/themes/custom/one_domain/src/js/flatpickr.js"></script> <script src="/web/20231210005657js_/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":5,"applicationTime":778,"atts":"HldRE0IDGUo=","errorBeacon":"bam.eu01.nr-data.net","agent":""}</script></body> </html> <!-- FILE ARCHIVED ON 00:56:57 Dec 10, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 02:21:32 Nov 27, 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.558 exclusion.robots: 0.029 exclusion.robots.policy: 0.017 esindex: 0.009 cdx.remote: 6.773 LoadShardBlock: 156.374 (3) PetaboxLoader3.datanode: 177.568 (4) PetaboxLoader3.resolve: 173.226 (2) load_resource: 209.489 -->

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