(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{onTemplateShow:()=>ue});var n={};e.r(n),e.d(n,{onTemplateShow:()=>Qe});const r="esi_auth",o="__DEBUG__",i="feat__piano_use_vanity_domain";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function s(e){var t=function(e,t){if("object"!=a(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==a(t)?t:t+""}function c(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l={foreground:31,background:41,light:"#AA0000",dark:"#ed4e4c"},d={foreground:32,background:42,light:"#00AA00",dark:"#01c800"},u={foreground:33,background:43,light:"#AA5500",dark:"#d2c057"},p={foreground:94,background:104,light:"#5555FF",dark:"#669df6"},f="light",m="dark";const w=(e,t=null)=>{var n,r;const o=`; ${document.cookie}`.split(`; ${e}=`);return 2===o.length?decodeURIComponent(null!==(n=null===(r=o.pop())||void 0===r?void 0:r.split(";").shift())&&void 0!==n?n:""):t},g=e=>e===o?"":`[${e.replace(/^_+|_+$/g,"")}]`,y=e=>`color: ${e};`,h=e=>("undefined"==typeof window||"function"!=typeof window.matchMedia?f:window.matchMedia("(prefers-color-scheme: dark)").matches?m:f)===m?e.dark:e.light,b=new Map,v=e=>{if("undefined"==typeof window)return"prod"!=={NODE_ENV:"production",npm_config_domain:""}.SERVER;if(!b.has(e)){var t;const n=new URLSearchParams(null===(t=window)||void 0===t||null===(t=t.location)||void 0===t?void 0:t.search);b.set(e,n.has(e))}return b.get(e)||"true"===w(e)};function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}let O;let S=0;const _=()=>{return"undefined"!=typeof window&&(void 0===O&&(O=!0===(null===(e=window.JSGlobals)||void 0===e||null===(e=e.featureFlags)||void 0===e?void 0:e.feat__sentry)),O);var e},P=(e,t)=>{const n=()=>v(o)||v(e),r=(e,n)=>{const r=t.filter(({tag:e})=>""!==e);if(0===r.length)return e;const o=r.map(({tag:e,color:t})=>{const r=null!=n?n:t,o=void 0!==r;return function(e){for(var t=1;te+t,""),d=o.filter(e=>"style"in e).map(({style:e})=>e);if("string"==typeof i){return"string"==typeof a&&a.includes("color")&&i.startsWith("%c")?[`${l} ${i}`,...d.concat(a),...s]:[l,...d,i,...e.slice(1)]}return[l,...d,...e]};return{log:(...e)=>{n()&&console.log(...S>0?e:r(e))},info:(...e)=>{n()&&console.info(...S>0?e:r(e))},group:(...e)=>{n()&&(console.group(...r(e)),S+=1)},groupCollapsed:(...e)=>{n()&&(console.groupCollapsed(...r(e)),S+=1)},groupEnd:(...e)=>{n()&&(S=Math.max(0,S-1),console.groupEnd(...e))},table:(...e)=>{n()&&console.table(...e)},warn:(...e)=>{var t;n()&&console.warn(...r(e,h(u))),_()&&(null===(t=window.Sentry)||void 0===t||t.captureException(...e))},error:(...e)=>{var t;n()&&console.error(...r(e,h(l))),_()&&(null===(t=window.Sentry)||void 0===t||t.captureException(...e))},extend:(n,r)=>P(e,[...t,{tag:n,color:r}]),logDate:e=>e.toLocaleString("en-GB",{timeZone:"UTC"})}},j=({flagName:e,tagSegment:t={}})=>{const{tag:n,color:r}=t;return P(e,[{tag:null!=n?n:g(e),color:r}])},T=j({flagName:o}),{log:N,info:k,warn:x,error:A,group:C,groupEnd:I,logDate:D}=T,$=j({flagName:"__DEBUG_AUTH__",tagSegment:{color:d.dark}}),R=($.extend("[LOGGED-IN-USER]",u.dark),$.extend("[INIT-PIANO]",p.dark)),U="_",G="^",M="opt-in",J="/internal-api",L=`${J}/newsletter-component/submit`,B=`${J}/newsletter-component/submit/lite`,H=`${J}/update-user-subscription-auto-renew`,z="/login",F="regSourceNewsletter";const W=(e,{async:t=!0,defer:n=document.location.search.includes("___FORCE_DEFER___"),parent:r=document.body,attributes:o}={})=>{window.JSGlobals=window.JSGlobals||{};const i=window.JSGlobals.loadedJS=[];return new Promise((a,s)=>{const c=(e instanceof Array?e:[e]).map(e=>i.includes(e)?Promise.resolve():new Promise((a,s)=>{const c=((e,{id:t,async:n,defer:r,ok:o,error:i,attributes:a})=>{const s=document.createElement("script");return s.onload=o,s.onerror=i,t&&"undefined"!==t&&(s.id=t),n&&!r&&s.setAttribute("async",""),r&&s.setAttribute("defer",""),a&&a.forEach(([e,t])=>{s.setAttribute(e,t)}),s.src=e,s})(e,{async:t,defer:n,ok:a,error:s,attributes:o});r.appendChild(c),i.push(e)}));return Promise.all(c).then(a,s)})};const V=()=>{var e,t;return null!==(e=null===(t=window.JSGlobals)||void 0===t?void 0:t.recaptchaV3Key)&&void 0!==e?e:null},q=()=>new Promise((e,t)=>{try{var n;null===(n=grecaptcha)||void 0===n||n.enterprise.ready(e)}catch(e){t(e instanceof Error?e:new Error(String(e)))}});const K=(e,t={})=>{const n=JSON.stringify(t,null,2),r=n.split("\n").reduce((e,t)=>t.length>=e?t.length:e,0),o=e.length,i=Math.max(o,r),a=` ${e.padEnd(i)} `,s=n.split("\n").map(e=>` ${e.padEnd(i)} `),c=s.length>1?`%c${s.slice(0,1)}\n%c${s.slice(1,-1).join("\n")}\n%c${s.slice(-1)}\n`:`%c${s[0]}\n`,l=s.length>1?["font-family:monospace; background: #333; color: #eee; padding-top: 5px;","font-family:monospace; background: #333; color: #eee;","font-family:monospace; background: #333; color: #eee; padding-bottom: 10px; border-radius: 0 0 6px 6px"]:["font-family:monospace; background: #333; color: #eee; padding-top: 5px; padding-bottom: 10px; border-radius: 0 0 6px 6px"];console.log(`%c${a}\n${c}`,"font-family:monospace; background: #333; color: #eee; border-bottom: 1px solid #666; padding: 5px 0; border-radius: 6px 6px 0 0",...l)};let X=function(e){return e.SECTION_PAGE_NEWSLETTER_PROMPT="section-page-newsletter-prompt",e.ANON_SECTION_PAGE_NEWSLETTER_PROMPT="anon-section-page-newsletter-prompt",e.UNKNOWN_EVENT="unknown-event",e}({});const Y=async e=>{const{email:t,newsletter:n,offer:r=""}=e;try{if(!n||!t)throw new Error("Missing required fields");const e=await(async e=>{const t=V();if(!t)throw new Error("reCAPTCHA error: Missing key");try{return await W([`https://www.google.com/recaptcha/enterprise.js?render=${t}`]),await q(),await grecaptcha.enterprise.execute(t,{action:e})}catch(e){if(e instanceof Error)throw new Error(`reCAPTCHA error: ${e.message}`);throw e}})("signup_newsletters");if(!e)throw new Error("Missing token");ce(n);const o={[U]:t,[G]:e,[M]:r?"true":"false",[F]:"Section page newsletter prompt",newsletters:n},i=new Blob([JSON.stringify(o)],{type:"application/json"}),a=`${B}?__amp_source_origin=${encodeURIComponent(window.location.origin)}`;navigator.sendBeacon(a,i)?K(`${X.ANON_SECTION_PAGE_NEWSLETTER_PROMPT}:`,o):console.error("Newsletter signup could not be sent")}catch(e){e instanceof Error&&console.error("Newsletter signup error:",e.message),le()}},Z=async e=>{const{newsletter:t,offer:n=""}=e;try{if(!t)throw new Error("Missing required fields");ce(t);const e={[M]:n?"true":"false",newsletters:t},r=new Blob([JSON.stringify(e)],{type:"application/json"}),o=`${L}?__amp_source_origin=${encodeURIComponent(window.location.origin)}`;navigator.sendBeacon(o,r)?K(`${X.SECTION_PAGE_NEWSLETTER_PROMPT}:`,e):console.error("Newsletter signup could not be sent")}catch(e){e instanceof Error&&(console.error("Newsletter signup error:",e.message),le())}},Q=e=>{location.href=e},ee="showUpgradeSuccessMessage",te="showNewsletterSuccessMessage",ne="showErrorMessage",re="newsletterKey";const oe=(e,t={})=>{const n=((e={})=>e instanceof URLSearchParams?e:new URLSearchParams(Object.entries(e).reduce((e,[t,n])=>(e[t]=n.toString(),e),{})))(t);return 0===Array.from(n.keys()).length?`${e}`:`${e}?${n}`},ie=(e="/")=>oe(e,{[ne]:"true"}),ae=(e="/",t)=>oe(e,{[te]:"true",[re]:t});function se(){Q(((e="/")=>oe(e,{[ee]:"true"}))(window.location.href))}function ce(e){Q(ae(window.location.href,e))}function le(){Q(ie(window.location.href))}function de(e){const t=-1===e.origin.indexOf("tinypass.com"),n=-1===e.origin.indexOf("independent.co.uk");if(t&&n||!e.data)return;const r=function(e){if(e&&!Array.isArray(e)){if("object"==typeof e)return e;if("string"==typeof e)try{return JSON.parse(e)}catch{return}}}(e.data);if(r)switch(r.event){case"completeUpgradePurchase":return void se();case"customEvent":if(!r.params)return;return void function({eventName:e,params:t}){if(e)switch(e){case X.SECTION_PAGE_NEWSLETTER_PROMPT:return void Z(t);case X.ANON_SECTION_PAGE_NEWSLETTER_PROMPT:return void Y(t);default:;}}(r.params);default:return}}const ue=e=>{"OTN6797XUKB0"===e.templateId&&window.ga&&window.ga("send","event","adBlocker",location.pathname)},pe=["Registration is a free and easy way to support our truly independent journalism"];const fe="ssr-auth-state",me="ANONYMOUS";const we=()=>Math.floor(Date.now()/1e3);let ge;function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function he(e){for(var t=1;t{try{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(t));return JSON.parse(n)}catch(e){return null}};function ve(){if(void 0===globalThis.window)return null;const e=(()=>{var e;const t=null!==(e=w(r))&&void 0!==e?e:"";return be(t)})();if(!e)return null;const{email:t,given_name:n,family_name:o,userStatus:i,pUid:a,exp:s,isAdFreeUser:c,isActiveRecurringDonator:l,adFreeExpiryTimestamp:d,recurringDonatorExpiryTimestamp:u,permutiveId:p}=e;return{email:t,givenName:n,familyName:o,userStatus:i,uid:a,exp:s,isAdFreeUser:c,isActiveRecurringDonator:l,adFreeExpiryTimestamp:d,recurringDonatorExpiryTimestamp:u,permutiveId:p}}var Ee;function Oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}const Se=Math.random().toString(36).slice(2),_e={status:me,loading:!1,__id__:Se},Pe=function(e){let t=e;const n=new Set;return{get:()=>t,set:e=>{t=e,n.forEach(e=>e(t))},patch:e=>{t=he(he({},t),e),n.forEach(e=>e(t))},subscribe:e=>(n.add(e),()=>n.delete(e))}}(null!==(Ee="undefined"!=typeof window?function(e=document){if(void 0===e)return null;if(void 0!==ge)return ge;const t=e.getElementById(fe),n=null==t?void 0:t.textContent;let r=null;try{if(!n)throw new Error("No auth snapshot found in DOM");r=JSON.parse(atob(n))}catch(e){N(e)}finally{var o;null===(o=document.getElementById(fe))||void 0===o||o.remove()}return ge=r,r}(document):void 0)&&void 0!==Ee?Ee:_e),je={__id__:Se,get:Pe.get,subscribe:Pe.subscribe,actions:{set:Pe.set,patch:Pe.patch,login:e=>{Pe.patch({loading:!0});const t=new URL(z,window.location.origin);e&&t.searchParams.set("returnPath",e),window.location.href=t.toString()},logout:async()=>{Pe.patch({loading:!0});try{await fetch("/user/logout",{credentials:"include"})}finally{Pe.set(_e)}},loadProfile:()=>{const e=ve();e?Pe.patch(function(e){for(var t=1;tnew Promise(n=>{var r;null!==(r=window.JSGlobals)&&void 0!==r&&null!==(r=r.cmp)&&void 0!==r&&r.enabled?window.__tcfapi&&new Promise(e=>{var t;if(null===(t=window.JSGlobals)||void 0===t||null===(t=t.cmp)||void 0===t||!t.enabled)return void e(!0);const n=document.getElementById("sp-script");null!=n&&n.error&&e(!1),window.addEventListener(Ne,()=>{e(!1)}),window.__tcfapi("addEventListener",2,(t,n)=>{var r;if(n)if(["useractioncomplete","tcloaded"].includes(t.eventStatus))if(window.__tcfapi("removeEventListener",2,()=>{},t.listenerId),"useractioncomplete"===t.eventStatus&&(ke=!0),t.gdprApplies){if(N("Consent Or Pay: valid GDPR tcData ---\x3e",t),null!==(r=t.publisher)&&void 0!==r&&null!==(r=r.consents)&&void 0!==r&&r[1])return N('Consent Or Pay: tcData.publisher?.consents?.["1"] ---\x3e',t),void e(!0);e(!1)}else e(!0);else N("Consent Or Pay: !['useractioncomplete', 'tcloaded'].includes(tcData.eventStatus) ---\x3e",{tcData:t,eventStatus:t.eventStatus})})}).then(r=>{r?window.__tcfapi("getCustomVendorConsents",2,r=>{var o;const i=!(null===(o=r.grants)||void 0===o||null===(o=o[e])||void 0===o||!o.vendorGrant);N("CMP:getCustomVendorConsents",t,i),n(i)}):n(!1)}):n(!0)});function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}const Ce=()=>{const e=w("esi_puid");var t;e&&(null===(t=window.braze)||void 0===t||t.changeUser(e))},Ie=async()=>{if(!!window.braze)return Ce(),!0;try{var e;if(!await xe("5ed8c49c4b8ce4571c7ad801","braze"))return!1;const{braze:{sdkAPIKey:t="",sdkEndpoint:n=""}={}}=window.JSGlobals;return await W(["https://js.appboycdn.com/web-sdk/4.8/braze.min.js"]),null===(e=window.braze)||void 0===e||e.initialize(t,function(e){for(var t=1;t{try{var n;if(await Ie())null===(n=window.braze)||void 0===n||n.logCustomEvent(e,t),(()=>{var e;null===(e=window.braze)||void 0===e||e.requestImmediateDataFlush(e=>{e||x("Braze data flush was unsuccessful")})})()}catch(t){console.error(`Error logging ${e} Braze event:`,t.message)}},$e=(e,t,n)=>{const r=new Date;if(n&&(n.days||n.hours)){const e=n.days?24*n.days*60*60*1e3:60*n.hours*60*1e3;r.setTime(r.getTime()+e)}const o=[];o.push(`${e}=${encodeURIComponent(t)}`),o.push("path=/"),o.push("secure"),n&&o.push(`expires=${r.toUTCString()}`),document.cookie=o.join(";")},Re=()=>{const e="true"===w("feat__force_piano_prod");return"development"===window.JSGlobals.pianoEnvironment&&!e},Ue=async()=>{window.location.pathname.includes("/preview")||await(async()=>{const e="production"===window.JSGlobals.pianoEnvironment,t="true"===w(i)?e?"https://cdn-piano.independent.co.uk/api/tinypass.min.js":"https://cdn.independent.co.uk/api/tinypass.min.js":"https://cdn.tinypass.com/api/tinypass.min.js";await W([t])})()},Ge=()=>{const e=je.get();return e&&"string"==typeof e.status?e.status===me?Promise.reject(new Error("User is anonymous")):"number"!=typeof e.exp?Promise.reject(new Error("Invalid token expiry")):e.exp-we()>3600?(R.log("ensureAuthReady: no refresh needed"),Promise.resolve()):new Promise((e,t)=>{window.addEventListener("authTokenRefreshed",()=>{e()}),window.addEventListener("authTokenRefreshFailed",()=>{t(new Error("Token refresh failed"))}),window.setTimeout(()=>{t(new Error("Token refresh timeout"))},2e3)}):Promise.reject(new Error("Invalid auth state"))},Me=async()=>{location.search.includes("CMP=ILC-refresh")||await Ue()},Je=()=>{const e=window.tp||[];return window.tp=e,e},Le=(...e)=>{Je().push(...e)},Be=e=>{const t=new URLSearchParams;new URL(document.location.href).pathname.startsWith("/donations")&&(t.set("donations",""),t.set("regSourceMethod","Donations")),(async(e,t)=>{if(t){$e("__pianoParams",JSON.stringify(t),{hours:1});const n=new URL(location.origin);n.pathname="/internal-api/subscription/term",n.searchParams.set("__amp_source_origin",location.origin),n.searchParams.set("termId",t.termId);const r=await fetch(n.toString(),{credentials:"same-origin"}),o=await r.json();$e("__pianoTerm",JSON.stringify(o),{hours:1}),e.set("offerId",t.offerId),e.set("termId",t.termId)}location.href=`/register?${e.toString()}`})(t,e)},He=e=>{switch(e.eventName){case"openLogin":var t;null===(t=document.getElementById("loginButton"))||void 0===t||t.click();break;case"set-return-url":document.cookie=`ref_url=${location.origin}${location.pathname}; path=/;`;break;case"reg-return-url":localStorage.setItem("regReturnUrl",location.href)}};function ze(e){const[t]=document.getElementsByClassName("tp-modal"),n=(new Date).toUTCString();t&&(t.scrollTop=0),document.cookie=`__pianoTerm=null; expires=${n}; path=/;`,document.cookie=`__pianoParams=null; expires=${n}; path=/;`,fetch(H,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json"}})}function Fe(){}function We(e){if("checkoutCompleted"!==e.state){const[e]=document.getElementsByClassName("payment-methods");e.classList.remove("hide")}}const Ve=async({meterName:e,viewsLeft:t})=>{"PremiumArticleMeter"===e&&0===t&&await(async()=>{await De("premium_meter_expired",{})})()};async function qe(e){await Ve(e)}function Ke(){}function Xe(){}function Ye(e){var t,n;const o=w(r),a="true"===w(i),s=null!==(t=null==e||null===(n=e.user)||void 0===n?void 0:n.uid)&&void 0!==t?t:null,c=Re(),l=a?`vx-${c?"sandbox":"piano"}.independent.co.uk`:"tinypass.com";!o||s&&"anon"!==s||document.querySelectorAll(`.tp-modal, iframe[src*=${l}], .tp-container-inner, .tp-backdrop.tp-active`).forEach(e=>e.remove())}function Ze(){}const Qe=e=>{if(window.JSGlobals.MOCK_ENV&&"modal"===e.displayMode){const e=Je();if(Array.isArray(e))return;e.template.close()}};(async(e=!1)=>{const o=e?n:t,{onTemplateShow:a}=o;await(async e=>{try{await Ge()}catch(e){R.warn("ensureAuthReady",e)}e(w(r)||"")})(e=>{R.log("Piano initialization with token:",e);const t="true"===w(i);(()=>{const e="true"===w(i),t=Re(),n=e?window.JSGlobals.piano.pianoApiHost:window.JSGlobals.piano.pianoEndpoint;Le(["setAid",window.JSGlobals.piano.pianoAppId],["setCxenseSiteId",window.JSGlobals.piano.pianoSiteId],["setEndpoint",n],["setUseTinypassAccounts",!1],["setDebug",!1]),e||Le(["setSandbox",t])})(),t&&Le(["setPianoIdUrl",window.JSGlobals.piano.pianoAuth],["setComposerHost",window.JSGlobals.piano.pianoComposer],["setStaticDomain",window.JSGlobals.piano.pianoCdn]),Le(["setExternalJWT",e]);const n=(e=>[["addHandler","checkoutComplete",ze],["addHandler","checkoutClose",We],["addHandler","checkoutCustomEvent",Fe],["addHandler","loginRequired",Be],["addHandler","loginSuccess",Xe],["addHandler","meterExpired",qe],["addHandler","meterActive",Ke],["addHandler","experienceExecute",Ye],["addHandler","experienceExecutionFailed",Ze],["addHandler","showTemplate",e],["addHandler","customEvent",He],["setUseTinypassAccounts",!1],["setUsePianoIdUserProvider",!1],["setUsePianoIdLiteUserProvider",!0]])(a);Le(...n),window.addEventListener("message",de)}),await Me()})()})();